ModelSim

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Beschreibung

Modelsim ist eine mächtige Simulationsumgebung für HDLs. Diese erlaubt die taktsynchrone oder timinggenaue Simulation von digitalen Logikelementen. Anders, als reine Logiksimulatoren erlaubt Modelsim auch das Berechnen und Darstellen von Analogwerten, da Integer und Dezimaltypen intern als normale Variablen (Real) gehandhabt werden. Somit lassen sich auch analoge Modelle verwenden, wennman sie zuvor in eine gerasterte digitale Darstellung (Signalbus oder Integer) überführt.

Versionen

Kommerzielle Versionen

Derzeit werden folgende Versionen von ModelTech vertrieben:

  • ModelSim SE (Special Edition)
  • ModelSim LE (Linux Edition)
  • ModelSim PE (Personal Editon)
  • ModelSim Designer

SE ist dabei die leistungsfähigste Version und auch für Unix sowie 64bit-Systeme verfügbar. Die Linux Edition (LE) kann kein VHDL (nur Verilog HDL, 07/2008) und die Personal Edition arbeitet nur mit 40% der Geschwindigkeit von SE und enthält z.B. keinen Optimizer (vopt). Der Designer entspricht ungefähr der PE-Version und besitzt die Möglichkeit VHDL per Schaltplan zu erzeugen.

Vergleichen lassen sich die Versionen direkt auf der ModelTech-Seite. Zu Einschränkungen/ Geschwindigkeit der Xilinx Edition (XE) bzw. XE Starter siehe auch folgenden Forumsbeitrag.

Freie Versionen

Eine kostenlose Simulationsumgebung für Xilinx Bausteine ist z.B. im ISE WebPack als ModelSim XE III Starter enthalten, das kostenlos bei Xilinx erhältlich ist. Sie simuliert bei mehr als 10000 Codezeilen nur noch mit geringerer Geschwindigkeit (siehe Xilinx-Answer Record). Für die Alteraumgebung, gibt es mittlerweile ebenfalls eine kostenlose "Altera Web Edition".

Tips und Tricks

Unter Modelsim XE Altera Bauteile simulieren

Für die Simulation Altera-spezifischer Bausteine wie BRAM, DDR, IOs, PLL werden die Libraries von Altera benötigt, die eingebunden werden müssen.

Dazu die Modelsim Altera Version downloaden und installieren, das Verzeichnis Modelsim ae/altera nach modelsim xe/altera kopieren und die INI-Datei im Modelsim_xe verzeichnis folgendermassen erweitern:

[Library]

  • std = $MODEL_TECH/../std
  • ieee = $MODEL_TECH/../ieee
  • verilog = $MODEL_TECH/../verilog
  • vital2000 = $MODEL_TECH/../vital2000
  • std_developerskit = $MODEL_TECH/../std_developerskit
  • synopsys = $MODEL_TECH/../synopsys
  • modelsim_lib = $MODEL_TECH/../modelsim_lib
  • lpm = $MODEL_TECH/../altera/vhdl/220model
  • alt_vtl = $MODEL_TECH/../altera/vhdl/alt_vtl
  • altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
  • altgxb = $MODEL_TECH/../altera/vhdl/altgxb
  • cyclone = $MODEL_TECH/../altera/vhdl/cyclone
  • sgate = $MODEL_TECH/../altera/vhdl/sgate

Modelsim_xe starten, die neu hinzugekommenen Libraries rekompilieren

Farben

Schriftfarbe beim Waveform Print Postscript ändern

Bsp Schwarz in der .ps Datei 0.5 0.5 0.5 durch 0.0 0.0 0.0 ersetzen.

Waveform

Viele wissen nicht, daß man sowohl den Namen als auch den Graphen eines Signales einfärben kann. (Eigenschaften). So wird die Darstellung erheblich verbessert.

Simulation von Speicherinhalten von Quartus unter Modelsim

Der Inhalt des Speichers muss im Intel hex Format vorliegen. Falls dies nicht der Fall ist müssen folgende Schritte durchgeführt werden:

  • Quartus öffnen
  • Speicher Datei öffnen (mif)
  • Datei/speichern unter..
    • hex als Dateiendung wählen
  • Hinweis: Dateiname und Endung immer klein schreiben!!!

Im Design muss noch die File Endung von mif in hex geändert werden.

  • init_file => "prog.hex"

Hinweis: Der Speicherinhalt kann unter View/debug/memory angeschaut werden.