Link for ModelSim - All

Transcription

Link for ModelSim - All
CAE/CAD
Simulation
Link for ModelSim
Verifikation von Signalverarbeitungs- und Kommunikations-Hardware
durch Co-Simulation
Dr. Hans Martin Ritt, The Mathworks
Link for ModelSim ist ein Co-Simulations-Interface, das Matlab und Simulink in den Hardware-Entwicklungsprozess für
FPGAs und ASICs einbindet. Es stellt eine schnelle bidirektionale Verbindung zwischen Matlab/Simulink und dem HDLSimulator ModelSim von Mentor Graphics zur Verfügung. Durch diese direkte Co-Simulation können ModelSim RTL-level
Modelle gegen Matlab und Simulink verifiziert werden.
S
imulink unterstützte bisher die Nutzung von Matlab, C/C++ und Simulink-Blöcken. Durch die Einbindung
von HDL-Komponenten in Matlab bzw. Simulink schließt Link for ModelSim die Lücke
zwischen Algorithmen-Entwicklung bzw.
System-Design und der Hardware-Implementierung.
Link for ModelSim basiert auf einer ClientServer Architektur, um ein Interface zwischen Matlab bzw. Simulink und ModelSim
zur Verfügung zu stellen. Es ermöglicht die
Verbindung von mehreren HDL-Entities
bzw. ModelSim-Instanzen mit Matlab oder
einem Simulink-Modell. Da die Interfaces
zwischen Matlab und ModelSim bzw. Simulink und ModelSim unabhängig voneinander sind, können diese sowohl einzeln als
auch gleichzeitig genutzt werden.
Typische Anwendungsfelder von Link for
ModelSim sind insbesondere die Verifikation von manuell implementierten HDL-Kom-
ponenten gegen eine in Matlab oder Simulink implementierte Spezifikation und die
Erstellung von Test-Benches,
die Stimuli erzeugen und
anschließend Visualisierungsfunktionen von Matlab bzw.
Simulink zur Analyse nutzen.
ModelSim mit
Matlab
Bild 2: Einordnung von Link for ModelSim in die Entwicklungsumgebung.
Mit dem Einsatz von Link for
ModelSim ergeben sich neue Möglichkeiten
für die Nutzung von Matlab und entsprechender Toolboxen für die AlgorithmenEntwicklung von signalverarbeitenden Systemen oder technischen Computeranwendungen. Teile des Algorithmus können in
HDL ausgelagert werden und dann in direkter Co-Simulation mit dem restlichen Algorithmus in Matlab laufen. Matlab kann dann
insbesondere für die Generierung von Stimuli und für anspruchsvolle Visualisierungsaufgaben genutzt werden.
Das Interface zu ModelSim wird in Matlab in
Form eines standardisierten Funktionsaufrufes zur Verfügung gestellt, der von ModelSim initiiert wird. Diese vom Anwender
nach einer Vorlage erstellte Funktion läuft
auf dem für diese Anwendung gestarteten
Matlab-Server. ModelSim ist in dieser Beziehung also der Client, der die Kommunikation anstößt bzw. kontrolliert.
ModelSim mit Simulink
Bild 1: Co-Simulation und Software Test-Bench für einen Manchester Receiver, der in
Simulink unter Nutzung des DSP und des Communications Blocksets modelliert wurde. Der Manchester Receiver ist in VHDL implementiert und läuft hier in ModelSim.
40
Im Modell-basierten Entwicklungsprozess
entsteht in den frühen Phasen der Entwicklung ein Modell des Signalverarbeitungsoder Kommunikationssystems unter Nutzung der spezifischen, ergänzenden Blocksets in Simulink. Teile dieses Modells werden
dann in HDL implementiert. Um diese zu
verifizieren, können nun sowohl einzelne
HDL-Komponenten in Simulink eingebunden und dort mit Testsignalen beaufschlagt
werden, als auch schrittweise Teile des Modells durch HDL-Komponenten ersetzt werden, um die Erhaltung der Funktionsfähigkeit des Algorithmus nachzuweisen.
Das Interface zu ModelSim wird in Simulink
in Form eines Blocks zur Verfügung gestellt.
In diesem Block werden die Beziehungen
zwischen den Ein- und Ausgängen des
Blocks und der jeweiligen ModelSim Entity
definiert. Daneben werden dort auch die
Kommunikationsverbindung und die Nutzung von Clock-Signalen konfiguriert. Simulink generiert das Clock-Signal für Mo-
elektronik industrie 09-2004
CAE/CAD
Simulation
Bild 3: Matlab-VHDL Co-Simulation und Visualisierung.
delSim und übernimmt dadurch die Steuekann die Entwicklungsumgebung den Berung der ModelSim-Simulation. In diesem
dürfnissen weitgehend angepasst werden.
Fall ist also ModelSim der Server und SimuDurch einen Funktionsprototypen für Matlink der Client.
lab bzw. Blöcke für die Co-Simulation in eiDie Einbindung in den typischen Arbeitsabner Simulink-Bibliothek wird der Konfiguralauf eines Hardware-Designers wird darüber
tionsaufwand begrenzt. Dabei unterstützt
hinaus z. B. durch die Erzeugung von VCDLink for ModelSim mehrere, gleichzeitig lauFiles (value change dump) aus Simulink herfende ModelSim-Instanzen bzw. HDL-Entiaus unterstützt, wodurch die Nutzung
ties aus einem Simulink-Modell bzw. einer
der Post-Simulations-Analyse mit
ModelSim möglich wird.
Standardmäßig ermöglicht Link
for ModelSim die Simulation von
VHDL-Code. Verilog wird durch
die automatische Erzeugung eines VHDL-Wrappers unterstützt,
der nur einen minimalen Performance-Verlust verursacht. Der
Wrapper übernimmt einfach die
Kommunikationsfunktion
zu
Matlab bzw. Simulink. Damit stehen die Stimulusgenerierungs-,
Visualisierungs- und Verifikations- Bild 4: Test-Bench für HDL-Code in Matlab: Erzeumöglichkeiten auch für Verilog- gen von Eingangsdaten für die VHDL-Entity in
Matlab und Übergabe der Ausgangsdaten von
Designs zur Verfügung.
ModelSim zurück an Matlab.
Integration von Xilinxund Altera-Tools
Link for ModelSim ist sowohl mit dem
Xilinx-System-Generator als auch mit dem
Altera-DSP-Builder kompatibel. D. h. man
kann diese Werkzeuge nutzen, um Teile des
Systems zu implementieren. In der integrierten Entwicklungsumgebung von Simulink
können dann also Matlab, C/C++, Simulink
Blöcke und eigene HDL-Komponenten zusammen mit Xilinx-System-GeneratorBlöcken bzw. Altera-DSP-Builder-Blöcken simuliert werden.
Zusammenfassung
Das in Zusammenarbeit von The MathWorks und Mentor Graphics entwickelte
Link for ModelSim verbindet ModelSim mit
Matlab bzw. Simulink für die bidirektionale
Co-Simulation, Verifikation und Visualisierung von VHDL-Code. Durch die Wahl der
Kommunikationsschnittstelle
zwischen
Matlab bzw. Simulink und ModelSim über
Shared Memory (optimale Geschwindigkeit)
oder TCP/IP (größtmögliche Flexibilität)
elektronik industrie 09-2004
Matlab-Funktion. Link for ModelSim ermöglicht damit sowohl die interaktive als auch
batch mode Arbeitsweise für Co-Simulation, Debugging, Testen und Verifizieren von
HDL-Code gegen Matlab bzw. Simulink. (jj)
www.mathworks.de
The MathWorks
506
Über infoDIRECT erhalten Sie weitere Produktberichte und Fachartikel zum Thema
CAD/CAE.
506ei0904
Dr. Hans Martin Ritt ist
bei The Mathworks in
Aachen im Bereich Application Engineering tätig.
41