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