COSIMULATIONSSYSTEM MIT LANGSAMEN BETRIEBSMODUS IN DEM ANFRAGEN VON DER HARDWARE BEARBEITET WERDEN UND SCHNELLEM MODUS
Beschreibung
Die Erfindung bezieht sich auf ein
Hardware/Software-Cosimulationssystem umfassend einen Simulator und einen damit gekoppelten Hardwareblock, der einen I/O-Manager und wenigstens ein DUT ("Device under Test") besitzt, wobei das Cosimulationssystem einen ersten Betriebsmodus aufweist, bei dem der I/O-Manager bei jedem Takt eine Anfrage vom Simulator an das DUT weiterleiten kann, und auf ein Verfahren zur Hardware/Software-Cosimulation eines Simulators mit einem getakteten elektronischen System, bei dem der Simulator mit einem Hardwareblock gekoppelt wird, der einen I/O-Manager und wenigstens ein DUT ("Device under Test") besitzt, wobei in einem ersten Betriebsmodus der I/O-Manager bei jedem Takt eine Anfrage vom Simulator an das DUT weiterleiten kann.
Heutzutage werden elektronische Entwicklungen immer komplexer aufgrund der Funktionalität und der Simulationen, aber die Entwicklungszeiten bleiben gleich oder verringern sich sogar. Um die Funktionsweise eines solchen komplexen Systems zu garantieren, werden immer mehr Simulationen benötigt. Für die Simulation des vollständigen Systems ist es erforderlich, eine Cosimulation durchzuführen oder einen1 Prototypen herzustellen.
Bekannte Hardware/Software-Cosimulationssysteme für die Cosimulation eines Simulators mit einem getakteten
elektronischen System umfassen einen Simulator und einen damit gekoppelten Hardwareblock, der einen I/O-Manager und wenigstens ein DUT ("Device under Test") besitzt. Das DUT soll in eine laufende Simulation des Simulators eingebunden werden. Ein Teil des Simulators und der I/O-Manager sind dafür zuständig, das DUT als Simulationsmodell in die Simulation einzubinden. Nach dem Stand der Technik werden dabei vom I/O-Manager bei jedem Takt eine Anfrage vom Simulator an das DUT weitergeleitet . Man spricht hier auch von einer engen Kopplung, weil bei jedem Takt Daten zwischen dem Simulator und dem gekoppelten DUT ausgetauscht werden können. Nachteilhaft ist bei dem Stand der Technik, daß je nach Art der Simulation erhebliche Simulationszeiten in Kauf genommen werden müssen.
Demgegenüber besteht die Aufgabe der Erfindung darin, ein Hardware/Software-Cosimulationssystem und ein Verfahren zur Hardware/Software-Cosimulation anzugeben, mit denen die Simulationszeiten erheblich verringert werden können.
Gelöst wird diese Aufgabe mit den Merkmalen der unabhängigen Ansprüche. Das Hardware/Software-Cosimulationssystem umfaßt einen Simulator und einen damit gekoppelten Hardwareblock, der einen I/O-Manager und wenigstens ein DUT ("Device under Test", zu überprüfendes Gerät) besitzt. Das
Cosimulationssystem weist einen ersten Betriebsmodus auf, bei dem der I/O-Manager bei jedem Takt eine Anfrage vom Simulator an das DUT weiterleiten kann. Darüber hinaus ist nach der Erfindung ein zweiter Betriebsmodus des Cosimulationssystems vorgesehen, bei dem der I/O-Manager nur den Takt (DUTCIk) an das DUT ausgibt, ohne weitere Anfragen an das DUT weiterzuleiten, und ein nahtloses Umschalten zwischen diesen beiden Betriebsmodi während einer Simulation ermöglicht. Die Erfindung erlaubt die Beschleunigung von Hardware/Software-Cosimulationen dadurch, daß Teile der
Simulation ohne der ansonsten für dieses Problemgebiet notwendigen engen Kopplung zwischen Software und dem gekoppelten Hardwareteil simuliert werden. Die enge Kopplung besagt, daß bei jedem Taktsignal, das an das gekoppelte System gesendet wird, auch andere Daten über den Zustand des gekoppelten Systems ausgetauscht werden können. Die Erfindung erlaubt die nahtlose Umschaltung von der engen Kopplung zu einer losen Kopplung, bei der keine Daten zwischen der simulierten Software und dem gekoppelten Hardwareteil ausgetauscht werden. Lediglich der Takt wird an die Hardware ausgegeben, um die Simulation der Hardware beschleunigt durchführen zu können. Dabei ist eine beliebige Anzahl von nahtlosen Umschaltungen zwischen der engen und der losen Kopplung im Ablauf einer Hardware/Software-Cosimulation möglich.
Die Unteransprüche betreffen vorteilhafte Ausgestaltungen der Erfindung.
Vorteilhafterweise handelt es sich bei dem Simulator um ein Computerprogramm, das in einem Computer abläuft. Sowohl die Art des Computerprogramms als auch der Computer können dabei den Anforderungen der Praxis entsprechend ausgewählt werden.
Der i/O-Manager und das DUT können sich auf einem gemeinsamen Hardwarebaustein oder auf getrennten Bausteinen befinden.
Die Erfindung kann für die Cosimulation eines Simulators mit einem getakteten elektronischen System verwendet werden, wobei das DUT in eine laufende Simulation des Simulators eingebunden wird. Ein Teil des Simulators und der I/O-Manager sind dafür zuständig, das DUT als Simulationsmodell in die Simulation einzubinden.
Das Konzept der Erfindung kann in zwei Betriebsmodi unterteilt werden. In einem ersten Betriebsmodus
(Cosimulation) , der einer herkömmlichen Cosimulation entspricht, kann der I/O-Manager bei jedem Takt eine Anfrage
(Request) vom Simulator an das DUT weiterleiten, so daß sich eine enge Kopplung zwischen dem Simulator und dem gekoppelten DUT ergibt. In einem zweiten Betriebsmodus (Clock Acceleration, Taktbeschleunigung) läuft die Simulation schneller, weil der I/O-Manager nur den Takt (DUTCIk) an das DUT ausgibt . Keine weiteren Anfragen werden in diesem Betriebsmodus an das DUT weitergeleitet . Dieser Betriebsmodus realisiert eine lose Kopplung, weil während der Ausgabe des Taktes am DUTCIk keine Interaktion zwischen dem Simulator
(Softwareteil) und der gekoppelten Hardware stattfindet. Die Erfindung erlaubt dabei ein nahtloses Umschalten zwischen diesen beiden Betriebsmodi während einer Simulation.
Dabei kann nach einer Ausgestaltung im zweiten Betriebsmodus eine Mitteilung vom Simulator an den I/O-Manager über die Anzahl der Taktzyklen, die schnell abgearbeitet werden sollen, (NumOfClks) und/oder über eine Haltebedingung (Breakpoint Condition) , die vom Zustand des DUT abhängt, erfolgen.
Eine Weiterbildung dieser Ausgestaltung sieht vor, daß der I/O-Manager eine Haltebedingungslogik (Breakpoint Logic) aufweist, die im zweiten Betriebsmodus die Erfüllung der Haltebedingung überprüft .
Eine effektive Beschleunigung der Cosimulation wird insbesondere dann erreicht, wenn im zweiten Betriebsmodus der vom I/O-Manager an das DUT ausgegebene Takt (DUTCIk) höher ist als im ersten Betriebsmodus, d.h. auch höher als der Takt des Simulators (SimClk) .
_. C —
In der Zeichnung ist die Erfindung näher erläutert. Es zeigen:
Fig. 1 eine Struktursicht für den ersten Betriebsmodus
(Cosimulation) , Fig. 2 eine Struktursicht für den zweiten Betriebsmodus
(Clock Acceleration) und Fig. 3 eine Timingabfolge der beiden Betriebsmodi.
Die Fig. 1 zeigt den ersten Betriebsmodus Mode 1 (Cosimulation) . In diesem Betriebsmodus kann für jeden Taktzyklus eine Anfrage (Request) gesendet werden. Dieser Request wird über den l/θ-Manager an das DUT weitergeleitet. Danach wird eine Taktflanke am DUTCIk ausgegeben. Nach jedem Taktzyklus wird ein Ergebnis (Response) vom I/O-Manager berechnet und an den Simulator zurückgesendet. Zwischen IO-Manager und DUT kann ein beiderseitiger Datenaustausch Read/Write stattfinden. Nach jedem Taktzyklus kann der Simulator entscheiden, ob die Simulation mit Mode 1 oder mit Mode 2 fortgesetzt wird.
Die Fig. 2 zeigt den zweiten Betriebsmodus Mode 2. In diesem Betriebsmodus sendet der Simulator die Anzahl der Taktzyklen, die schnell abgearbeitet werden sollen (NumOfClks) . Zusätzlich besteht die Möglichkeit, eine Haltebedingung, die vom Zustand des DUT abhängt, zu definieren. Die Haltebedingung wird im weiteren als Breakpoint condition bezeichnet .
Sobald der I/O-Manager die Anzahl der Taktzyklen und die optionale Haltebedingung erhalten hat, beginnt" er, Taktflanken am DUTCIk auszugeben. Diese Taktflanken im Mode 2 haben eine höhere Taktfrequenz als im Mode 1 (daher die Bezeichnung "Clock acceleration" für den Mode 2) . Die Ausgabe
des Takts am DUTCIk wird gestoppt, sobald eine der beiden Bedingungen eintritt :
• Die mittels NumOfClks spezifizierte Anzahl der Taktflanken wurde ausgegeben .
• Die Bedingung, die über die Breakpoint condition spezifiziert wurde, ist erfüllt. Diese Bedingung wird von der Haltebedingungslogik (Breakpoint Logic) im I/O-Manager ständig überprüft .
Zwischen I/O-Manager und DUT findet nur ein einseitiger Datenaustausch Read statt . Nachdem die Taktausgabe am DUTCIk gestoppt worden ist, sendet der I/O-Manager eine Antwort (Response) an den Simulator zurück. Nun kann der Simulator entscheiden, ob mit Mode 1 oder mit Mode 2 weitersimuliert wird.
Die Fig. 3 zeigt ein beispielhaftes Timingdiagramm, das den Takt vom Simulator (SimClk) , den Takt, den der I/O-Manager zum DUT sendet (DUTCIk) , sowie den Request vom Simulator an den I/O-Manager und den Response vom I/O-Manager an den Simulator darstellt.
Die Abbildung zeigt, dass im Mode 1 der Takt durch den Simulator angeregt wird. Zudem können bei jeder Taktflanke Daten zum DUT geschickt werden (Request) und auch Daten vom DUT an den Simulator geschickt werden (Response) . Bei Mode 2 hingegen, wird die Generierung des DUTCIk nur vom Simulator angestoßen. Während der Ausgabe der Taktflanken am DUTCIk gibt es keine Interaktion zwischen dem I/O-Manager und dem Simulator. Lediglich eine Antwort (Response) wird an den Simulator nach der Ausgabe des letzten Taktes oder dem Eintreten der Breakpoint condition gesendet .
Die Fig. 3 zeigt auch, dass zwischen den beiden Modi nahtlos umgeschaltet werden kann. Die Abbildung stellt einen Ausschnitt einer Simulation dar, bei der natürlich wesentlich mehr Taktflanken generiert werden.