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.
Hm, da musst du einen Altera-Experten fragen. Ich hab nur Erfahrung mit Xilinx, da klappt das immer.
könntest du vielleicht mal ein .do file einstellen, in welcher reihenfolge und welche librarys du compilierst und simulierst? Danke Daniel
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.