Hallo! Habe schon vieles durchgelesen aber leider nichts gefunden... Ich habe im Anhang als Beispielprojekt einen 4 Bit Zähler. Das Verhalten dieses Zählers, kann ich auch mit eine Verilog Testbench simulieren und das Ergebnis in ISim anzeigen lassen -> Test Bench ist auch im Projekt enthalten. Jetzt möchte ich aber gerne ein Post Route Simulation machen... und da beginnt das Problem. Wenn ich die Simulation von Behavioral auf Post-Route umstelle erscheinen die Test Benches wie in der Beh. Simulation - die Module die getestet werden erscheinen mit einem Fragezeichen (siehe Bild)... Ich habe auch schon gelesen, dass es bei der PR Simulation nur noch eine Datei gibt - ich glaube in meinem Fall die glbl(main_timesim.v) - die Simuliert werden kann. Wenn ich diese auswähle kommt auch direkt ein Fehler (Static elaboration of top level Verilog design unit(s) in library work failed) FRAGE: Wer kann mir Schritt für Schritt erklären, wie ich eine PR Simulation mit ISim für diesen Zähler machen kann (benutze ISE WebPack 11.4)?? Später würde ich gerne ein größeres Design mit mehreren Einzelmodulen simulieren und dann eine PR Simulation für die einzelene Module machen... geht das??
Simon D. schrieb: > wie ich eine PR Simulation mit ISim für diesen Zähler machen kann Wozu brauchst du sowas? Vor der Implementierung werden die Timingwünsche mit entsprechenden Timing Constraints angegeben. Und nach der Implementierung wird das Timing (von synchronen Designs) mit der Statischen Timinganalyse analysiert.
Lothar Miller schrieb: > Wozu brauchst du sowas? Weil ich in meiner Master Thesis extrem schnelle Netzwerke realisieren muss (zwei 250 MSPS ADC einlesen und dazu noch ein Anregungssignal erzeugen) und ich wissen muss, warum meine Timing Constraints nicht eingehalten werden... ich bin so langsam am verzweifeln... jeder spricht von PR Simulation aber mir scheint es als ob keiner weiß wie man die macht....
Die fehlenden X_BUF und X_INC etc. findest Du in den Xilinx-Bibliotheken (simprim). Ich weiß aber nicht wie man mit Verilog und Bibliotheken simuliert. Deine Netzliste hast Du Dir schon erstellt? (siehe Anhang) Duke
Duke Scarring schrieb: > Deine Netzliste hast Du Dir schon erstellt? (siehe Anhang) ja (siehe Anhang). Duke Scarring schrieb: > X_BUF und X_INC sind das Elemente die in den Schaltplan eingefügt werden und dann später die Testbench drauf zugreift? wie gehts weiter?
----(snip)---- ich bin so langsam am verzweifeln... jeder spricht von PR Simulation aber mir scheint es als ob keiner weiß wie man die macht.... ----(snap)---- Mach' ich nahezu täglich, aber halt mit Quartus und ModeSim, kann also leider nicht helfen. ----(snip)---- Weil ich in meiner Master Thesis extrem schnelle Netzwerke realisieren muss (zwei 250 MSPS ADC einlesen und dazu noch ein Anregungssignal erzeugen) und ich wissen muss, warum meine Timing Constraints nicht eingehalten werden... ----(snap)---- Wenn DAS allerdings dein Begehr ist, dann möchte ich Zweifel anmelden, dass Du das mit einer gate level-Simulation herausfinden wirst. Wenn Timing Constraints nicht eingehalten werden, dann solltest Du deinen Fokus auf die Timing Analyse richten.
Simon D. schrieb: >> X_BUF und X_INC > > sind das Elemente die in den Schaltplan eingefügt werden und dann später > die Testbench drauf zugreift? Nein. Dein Schaltplan wurde in "FPGA"-Elemente umgewandelt. Die Testbench greift ganz normal nur über die oberste Ebene auf Dein Modul zu. > wie gehts weiter? Vielleicht die Simulation starten? Aber prinzipiell muß ich Harald recht geben, die Timing-Simulation wird Dir nicht wirklich helfen den Fehler zu beheben. Duke P.S.: Hast Du schon den Ordner ......\Xilinx\12.2\ISE_DS\ISE\verilog\src\simprims gefunden?
Duke Scarring schrieb: > P.S.: Hast Du schon den Ordner > ......\Xilinx\12.2\ISE_DS\ISE\verilog\src\simprims gefunden? ja, unter C:\Xilinx\11.1\ISE\verilog\src\simprims. Da sind z.B. drin X_AND2.v, X_BUF.v, ... Harald Flügel schrieb: > dann solltest Du deinen > Fokus auf die Timing Analyse richten. ja da hast du bzw. ihr schon recht. Ich habe jetzt sehr wahrscheinlich die Lösung von TI bekommen, wie ich den ADC Wandler betreiben muss (hat 250 MSPS und DDR-Daten Interface). Schaut euch das Schaubild an: Die DDR-LVDS-ADC-Daten und der ADC-DDR-Clock werden alle über den Eingangsbuffer geführt (mit 100 Ohm terminiert) und dann kommt anscheinend die Lösung, sie werden zuerst auf IDELAYs geführt und dann erst auf die IDDRs. Ich habe den Fehler gemacht und keine IDELAYs eingebaut und dann kommt eine Timing Constraint Fehlermeldung wie im Anhang zu sehen ist. Ich muss also simulieren können, wie schnell die Daten an den IDELAYs anstehen und dann diese entsprechend parametrieren... Deshalb würde ich u. a. auch gerne eine Post Route Analyse machen... Duke Scarring schrieb: >> wie gehts weiter? > Vielleicht die Simulation starten? Wenn das ginge würde ich eucht nicht fragen :-) Also wie lauten die Schritte bis zum Simulationsergebnis?
Simon D. schrieb: >>> wie gehts weiter? >> Vielleicht die Simulation starten? Ist denn Dein ISE Projektexplorer immer noch mit den vielen Fragezeichen versehen? Falls ja, füge doch mal die ganzen Verilog-Dateien zum Projekt hinzu. Und eine Fehlermeldung oder konkrete Beschreibung, was Du wo geklickt/eingegeben/gemacht hast um die Simulation zu starten, wäre - zumindest für mich - ganz hilfreich. Duke
Duke Scarring schrieb: > füge doch mal die ganzen Verilog-Dateien zum Projekt Hallo! Also ich habe ein komplettes Projekt erstellt: Den Zähler in Verilog beschrieben, daraus ein Schaltplansymbol gemacht und dieses in den main Schaltplan eingefügt und auch das Constraint File geschrieben. Um euch zu zeigen, dass die "Behavioral Simulation" funktioniert, habe ich das Projekt auf "Simulation" "Behavioral" umgestellt und eine Testbench hinzugefügt. Das Verilog Modul "Counter" wurde auch ordnungsgemäß als Unterprogramm der Testbench angeordnet. Dann habe ich auf die Testbench geklickt und "ISim Simulator" -> "Simulate Behavioral Model" gewählt, dann hat sich ModSim geöffnet und das Simulationsergebnis war zu sehen... Dann habe ich die Simulation auf "Post Route" umgestellt und nun erscheinen diese Fragezeichen überall... Was ist der Fehler??? Wie wäre die normale funktionierende Vorgehensweise??? Ich habe euch das Mini-Projekt mal als Anhang hinzugefügt...
Wenn ich es richtig in Erinnerung habe, dann werden die IDEALY Elemente automatisch hinzugefügt, wenn man Timing-Constraints verwendet.
Du kannst auch IP-Core Logikanalysator implementieren. Ich weiß nicht welchen FPGA Du verwendest. Es gibt auf der Xilinx Seite Videos, wie man sehr schnell eine Analyse durchführen kann.
Johann schrieb: > dann werden die IDEALY Elemente > automatisch hinzugefügt, wenn man Timing-Constraints verwendet ja, das habe ich mir auch schon gedacht - bräuchte aber eine 100prozentige Bestätigung, dass das so ist... Johann schrieb: > Du kannst auch IP-Core Logikanalysator implementieren. Ich weiß nicht > welchen FPGA Du verwendest. Es gibt auf der Xilinx Seite Videos, wie man > sehr schnell eine Analyse durchführen kann. ich benutze einen Virtex 4 FPGA - die Implementierung eines Logikanalysators ist mir zu aufwendig und meines Wissens auch nicht im Web Pack enthalten... Ich möchte "nur" eine ganz normale PR-Simulation machen. Das muss doch irgendwie möglich sein...
Simon D. schrieb: > Dann habe ich die Simulation auf "Post Route" umgestellt und nun > erscheinen diese Fragezeichen überall... > > Was ist der Fehler??? Du mußt noch die Dateien aus dem ISE/Verilog-Ordner zum Projekt hinzufügen. Duke
Die Frage ist noch, was du hoffst, aus der Timing-Simulation zu erkennen. Ich hab sowas auch ab und an mit Modelsim gemacht, aber mehr als Timing-Verletzungen an verschiedenen Registern konnte der dann auch nicht sagen. Versuche eher das Design so zu machen, dass alle Constraints eingehalten werden. Wenn nötig halt mit den IDELAY. Ob die automatisch hinzugefügt werden, weiß ich auch immer nicht so. Auf jeden Fall kann man die manuell für jeden Input einstellen, hat aber insgesamt nur eine begrenzte Anzahl IDELAY Control Elemente. Und die benötigen außerdem einen 200MHz Referenz-Takt. Beim Spartan 3e hab ich hier, dass ISE je nach Constraints schon mal selber dann ein IOB-Delay in der IOB Liste anzeigt (0/3 beispielsweise), beim Virtex 4 hab ich diese Automatik noch nicht beobachtet.
Duke Scarring schrieb: > Du mußt noch die Dateien aus dem ISE/Verilog-Ordner zum Projekt > hinzufügen. > > Duke könntest du das etwas genauer spezifizieren?? Die Daten sind doch vorhanden gewesen, warum sollte ich sie jetzt wieder hinzufügen?? Ich glaube mittlerweile, dass man die einzelnen Module gar nicht alleine simulieren kann sondern nur das komplette Top Level Modul..?? Christian R. schrieb: > Die Frage ist noch, was du hoffst, aus der Timing-Simulation zu > erkennen. Ich werde neben dem DDR Interface noch andere Signale generieren müssen für die ich eine PR-Simulation brauchen werde! Deswegen bitte nicht mehr die Frage warum wieso weshalb ... Christian R. schrieb: > Ich hab sowas auch ab und an mit Modelsim gemacht, Könntest du es dann bitte mal Schritt für Schritt kurz und bündig erklären, ausgehend davon, dass das Projekt schonmal komplett compiliert wurde und Behavioral Simulations Testbench besteht und auch funktioniert...
Simon D. schrieb: > Die Daten sind doch > vorhanden gewesen, warum sollte ich sie jetzt wieder hinzufügen? Nein. XST wandelt Dein Modul um. Du kannst ja gern mal in die erzeugte Netzlisten-Datei reingucken. Die Netzliste wiederum bezieht sich auf einzelne Primitivs und die hast Du vorher sicher nicht verwendet. > komplette Top Level Modul Davon bin ich eigentlich ausgegangen... Oder hast Du zu jedem Untermodul eine einzelne Testbench? Duke
Duke Scarring schrieb: > Nein. XST wandelt Dein Modul um. Du kannst ja gern mal in die erzeugte > Netzlisten-Datei reingucken. Die Netzliste wiederum bezieht sich auf > einzelne Primitivs und die hast Du vorher sicher nicht verwendet. verstehe ich leider nicht... Er hat doch schon alles geroutet - folglich müsste auch alles in der Netzliste drin sein. Duke Scarring schrieb: > Oder hast Du zu jedem Untermodul eine einzelne Testbench? Ich habe ja nur ein Untermodul und zwar der Zähler. Für den Zähler habe ich auch eine Testbench (für Beh. Sim.)... Jetzt würde ich gerne mit dieser Testbench eine Post Route Sim. machen... oder für das gesamte Design... auf jeden Fall mal einen Schritt nach vorne, bis jetzt ging gar nichts... Könntest du dir das Design mal anschauen (siehe ca. 10 Anwort : Counter.zip) und mir sagen wie ich das machen soll... Danke...
Das Netzlistenmodul hat einen neuen Namen bekommen (main). Außerdem fehlen dann im Projekt noch die ganzen simprim-Primitives (X_*). Danach startet zumindest ISIM, auch wenn Dein generierter Takt nicht zu laufen scheint. Duke
Duke Scarring schrieb: > Das Netzlistenmodul hat einen neuen Namen bekommen (main). > Außerdem fehlen dann im Projekt noch die ganzen simprim-Primitives > (X_*). ich sehe, dass bei dir schonmal etwas funktioniert, was bei mir nicht klappt... Wenn du mir jetzt erklären könntest, wie du da hin gekommen bist, wäre ich sehr dankbar... Benötige ich die simprim - Primitives (X_) um zu definieren, welche Signale ich simulieren und erfassen möchte???
Simon D. schrieb: > Benötige ich die simprim - Primitives (X_) um zu definieren, welche > Signale ich simulieren und erfassen möchte??? Irgendwie sagt mir Deine Frage, das da noch ein Mißverständnis/Verständnisproblem vorliegt... Antwort: Nein, nicht dafür. Solange wie Du nicht dokumentierst, an welcher Stelle es hängt, kann ich Dir auch nicht wirklich weiterhelfen. Duke
Hallo! Ein letzter Versuch bevor das Wochenende naht... Ich beschreibe mal beispielhaft wie ich ein Behavioral Simulation mache: 1. Im Modus "Implementation" legt man ein neues Verilog Modul an z.B. Counter und speichert es ab (es ist nun in der Design Hierarchy zu sehen) 2. Man wechselt in den Modus "Simulation" und wählt dort "Behavioral" 3. Man lege ein neues "Verilog Test Fixture" File an, wählt dort das zu testende File und schreibt die Testbench und speichert diese ab 4. Im Design Hierarchy ist diese Testbench nun zu sehen - untergeordnet muss das zu testende Verilog Modul sein. 5. Man wählt "Simulate Behavioral Model" 6. Modsim startet automatisch und zeigt die Simulationsergebnisse.... In solchen Schritten hätte ich gerne erklärt wie man die Post Route Simulation macht - denn wenn ich "Post Route" auswähle erscheinen in allen Modulen Fragezeichen und ich habe keine Ahnung weshalb... die Antwort, er findet die Verilog Files nicht, reicht mir nicht aus Also wie wird von Grund auf an eine Post Route Sim. gemacht?? Ist die Ähnlich wie die Beh. Sim (also mit der gleichen Test Bench) oder ist der Weg ein ganz anderer?? Ich möchte einfach das Verilog Modul Counter simulieren können....
Simon D. schrieb: > Könntest du es dann bitte mal Schritt für Schritt kurz und bündig > erklären, ausgehend davon, dass das Projekt schonmal komplett compiliert > wurde und Behavioral Simulations Testbench besteht und auch > funktioniert... ISE legt bei "Generate Post Place & Route Simulation Model" (Bei Implement) einen Ordner im Projektverzeichnis an: netgen/par darin ist eine _timesim.vhd und eine _timesim.sdf. Die VHD ist die Netzliste und die SDF ist das Delay-File. Beide brauchst du für die Simulation. Die Testbench kannst du von der Behavioral Simulation nehmen. In Modelsim dann ein Projekt erstellen, dass die _timesim.vhd und deine Testbench enthält. Die Simulation startet man dann mit:
1 | vsim -lib work -sdfmax /Instance_Name=/xxx/netgen/par/xxx_timesim.sdf -t 1ps xxx_TB_vhd |
Wobei Instance_Name der Name der Instanz deines UUT in der Testbench ist. Man kann ja auch mehrere Designs gleichzeitig in der Timing-Simulation betrachten, dann muss man für jede Instanz das SDF File angeben. Mit dem -sdfmax erhältst du eine Timing-Simulation, die die Setup-Zeiten akkurat simuliert, mit -sdfmin die Hold-Zeiten. Bei Verlig müsste es genauso sein, von der Endung der Dateien abgesehn.
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.