Hallo zusammen
Ich bin ein ModelSim Neuling, stecke momentan gerade fest und die
anderen Forumbeiträge haben mir nicht weitergeholfen =(
Ich möchte mit dem ModelSim nach der Synthese eine TimingSimulation
machen. Nun habe ich mit ISE die Libaries compiliert.
compxlib -w -s mti_se -f virtex -l vhdl -o
/products/modelsim/xilinx_libs/5_1
Danach habe ich wie gewünscht alle Simprim und unisim File im Pfad:
C:\products\modelsim\xilinx_libs\5_1
Meine Frage ist nun, wie binde ich diese Files in ModelSim ein? Über
Import->Libary geht es nicht. Muss ich dazu das Modesim.ini file
abändern?
gruäss,
mike
Warum wollen eigentlich alle Modelsim-Neulinge eine Timingsimulation
machen? Steht das im Lahrplan an den Unis? Oder lesen alle Neulinge das
selbe (schlechte?) Buch/Tutorial?
Ich arbeite nicht erst seit gestern mit Modelsim im FPGA-Bereich und
habe noch nie eine Timingsimulation gebraucht (im Gegensatz zur
Simulation von Netzlisten, um Synthesefehler aufzuspüren).
> Ich möchte mit dem ModelSim nach der Synthese eine TimingSimulation> machen. Nun habe ich mit ISE die Libaries compiliert.
Warum compilierst die Libs mit Xilinx, wenn Du sie im Modelsim verwenden
willst?
vmap und vcom sind da die Mittel der Wahl.
Duke
Eine Timing-Simulation nach der Synthese? Was soll das? Wenn dann eine
nach Place&Route. Und auch das ist nur in ganz seltenen Fällen bei
wirklich seltsamen Timing-Geschichten nötig. Die meisten lassen sich
sich durch Constraints erschlagen. Ich nutze die Timing-Simulation ganz
selten für die Simulation des Zusammenspiels zweier FPGA...
> Ich arbeite nicht erst seit gestern mit Modelsim im FPGA-Bereich> und habe noch nie eine Timingsimulation gebraucht...
ACK.
Mit dem Simulator wird die Verhaltensweise des (synchronen) Designs
kontrolliert. Ob das Timing passt, wird im Zweifelsfall (wenn
Timingconstraints nicht erfüllt wurden) mit der Statischen Timinganalyse
der FPGA-Toolchain geklärt.
Ich garantiere: auch mit einer Timing-Simulation werden keine (oder
bestenfalls zufällig irgendwelche) Fehler des Designs (z.B. an
Taktdomänenübergängen) erkannt.
> Ich arbeite nicht erst seit gestern mit Modelsim im FPGA-Bereich> und habe noch nie eine Timingsimulation gebraucht...
NAK
Manchmal kann es trotzdem hilfreich sein, eine Timing-Simulation
durchzuführen, wenn man bspw. Pin-To-Pin-Delays oder Pin-To-LUT-To-Pin-
Delays nachvollziehen möchte.
Gruß,
SuperWilly
> wenn man bspw. Pin-To-Pin-Delays oder Pin-To-LUT-To-Pin-> Delays nachvollziehen möchte.
Wobei das dann leicht in die Irre führen kann, weil es ja "nur" eine
Worst-Case-Simulation ist. Einige Fehler kommen erst dann zutage, wenn
das FPGA zu schnell ist. Das Denken bleibt einem durch die
Timing-Simulation nicht erspart und diese Worst-Case-Delays sind ja auch
in der statischen Timinganalyse aufgeführt.
Wenn man etwas mit den "sensitivity list" vergeigt hat, dann sind Timing
Simulationen auch ganz hilfreich =)
@ Mike: - Auf den Reiter Library klicken
- Rechtsklick, new Library
- Name und Pfad eintragen
-> Dann läuft schon alles
@ Rest: Könnt ihr nicht auf eine Frage antworten?
Gruss, der Checker
>Wobei das dann leicht in die Irre führen kann, weil es ja "nur" eine>Worst-Case-Simulation ist.
Es gibt drei Attribute, die man der Timing-Simulation mit auf den Weg
geben kann: min, typ, max
Simuliert man also Min UND Max hat man wahrscheinlich eine gute Aussage
bezüglich des Timings. Außerdem kann man durch die Timing-Simulation
überprüfen, ob die statische Timingberechnung richtig ist. Manchmal wird
das
Timing einfach falsch berechnet, sowohl von Timing-Tools als auch von
Menschenhand. Kann in den besten Familien vorkommen ;O)
Gruß,
SuperWilly
> Außerdem kann man durch die Timing-Simulation überprüfen, ob die statische >
Timingberechnung richtig ist. Manchmal wird das
> Timing einfach falsch berechnet ..
Ich würde behaupten, dass es eher ein Timing Modell falsch ist als dass
der Timing Analyzer oder die Routing Tools mit falschen Zeiten arbeiten.
Letztere werden nämlich viel häufiger verwendet und es müßte auffallen
wenn dort ein Fehler ist.
Es gibt möglicherweise wirklich Fälle, wo eine Timing Analyse nützlich
ist. (ich selbst weiss keinen).
Außerdem :
Was passiert, wenn ein Timing Fehler genau dann auftritt, wenn ein
Baustein minimale Verzögerung hat, und ein zweiter maximale?
> Was passiert, wenn ein Timing Fehler genau dann auftritt, wenn ein> Baustein minimale Verzögerung hat, und ein zweiter maximale?
Da hilft nur:
vorher nachdenken, zwischendurch mitdenken,
zum Schluss alles noch einmal überdenken. ;-)
Lothar Miller schrieb:
>> Was passiert, wenn ein Timing Fehler genau dann auftritt, wenn ein>> Baustein minimale Verzögerung hat, und ein zweiter maximale?> Da hilft nur:> vorher nachdenken, zwischendurch mitdenken,> zum Schluss alles noch einmal überdenken. ;-)
Ja, aber was ich meinte, ist dass bei der Timing Simulation je nach
Parameter ALLE Verzögerungen entweder auf den Minimalwert, Maximalwert
oder auf den typischen Wert gesetzt werden.
Es könnnen möglicherweise aber auch Timingverletzungen nur genau dann
auftreten, wenn ein Pfad minimale Verzögerung hat und der andere Pfad
maximale. Meiner Meinung nach ist eben genau deshalb die Timing
Simulation KEIN Werkzeug, um eventuelle Probleme im Timing aufzuzeigen.
Nur die Timing Analyse betrachtet jeden Pfad im Worst Case und erkennt
Probleme.
Hallo,
ich habe ein ähnliches Problem. Ich arbeite mit Altera Quartus II und
Modelsim. Habe mir die rtl und gate level Libraries in Altera Quartus II
erstellt und habe diese auch in Modelsim eingebunden. Jetzt seh ich
allerdings in der Simulierten Waveform kein Timing. Es wird z.B. bei
einer Division das Ergebnis genau zur gleichen Zeit angezeigt wie die
eingangssignale anliegen.
Muss ich um das Timing zu sehen noch eine andere Library in Quartus II
erstellen?
Danke für eure Antwort
LG Daniel
Hast du denn die Delay-Datei auch mit der Simulator übergeben? Dazu muss
es irgendwo da wo deine vhd Datei für die Post Route Simulation her ist,
eine .sdf Datei geben. Die kannst du mit -sdfmin (Setup) oder -sdfmax
(hold) dem vsim mit übergeben. Erst dann weiß der das Timing.
Danke für den Tipp, leider funktioniert es immer nocht nicht so ganz.
Ich habe eine .sdo Datei, in der die sdf informationen liegen,wenn ich
diese mit -sdfmin einbinde bekomme ich Fehlermeldungen des Types
# ** Error: (vsim-SDF-3250) ssc_7_1200mv_125c_vhd_slow.sdo(10713):
Failed to find INSTANCE '\Div0|auto_generated|divider|divider|op_6~32\'.
Allerdings wenn ich ohne den zusatz -sdfmin simuliere, grieg ich im
simulations-Tab unter meiner UUT genau alle Instances angezeigt, die die
SDF datei nicht finden kann. Woran kann das liegen?
Danke schonmal für die sehr hilfreiche Antwort.
Ich muss überhaupt keine Librarys kompilieren, die sind bei ModelSim XE
schon vorkompiliert dabei.
Lediglich die VHD Datei nach dem Place&Route und dann wie oben
geschrieben mit sdfmax die Delay-Datei anhängen.
Etwas mehr Syntax hat man, wenn man 2 FPGA-Designs in der
Timing-Simulation zusammen simulieren will. Aber mit einem einfach nur:
vsim -lib work -sdfmax /uut=Design.sdf -t 1ps Design_TB
Vielen dank, ich habe den fehler gefunden, ich hatte die sdf datei nicht
auf das UUT angewand, sondern einfach so ohne den /uut= "parameter"
Und in der Testbench konnte er die Instanzen dann auch nicht finden.
Vielen dank für die Hilfe
Achso. Dann ist klar. So lassen sich übrigens bei mehreren Designs, die
in einer Simulation zusammen gefasst sind, die verschiedenen SDF Dateien
zuordnen. Da kann man zum Beispiel die Verbindung zwischen 2 FPGAs auch
im Timing simulieren. Manchmal nützlich.