Hallo, ich habe ein Frage zur sensitivity list eines Prozesses: In der Theorie wird der Prozess neu ausgeführt, sobald sich ein Signal in der sensitivity Liste (SL) ändert. Sobald ich ein Signal innerhalb meines Prozesses lese, welches nicht in der SL vorkommt, kriege ich vom Synthesizer eine Warnung. Diese Warnung muss ja nichts schlechtes bedeuten, da ich möglicherweise genau dieses Verhalten will? Bspw: D-FF mit sync reset Meine Frage ist nun wie verhält es sich von der Simulation zur Synthese. Ich habe gelesen, dass bei einer 'fehlerhaften' SL das Verhalten von Simulation und der synthetisierten Schaltung abweicht. Dies wäre ganz schlecht, da die Simulation dann total sinnlos wäre? Werden während der Synthese fehlende Signale zur SL hinzugefühgt? Hängt es vom Synthesetool ab? Weiss das jemand genauer? Grüsse, Florian
Für die Synthese ist die Sensitivitätsliste völlig_irrelevant! Die hat nur für die Simulation was zu sagen. Da wird einfach der Prozess nur dann neu berechnet, wenn sich an den Signalen was ändert, die in der Liste sind. Daher können die Ergebnisse abweichen. Und daher sollte die Liste dringend immer vollständig sein. Die Synthese warnt dich nur, dass eventuell deine Simulation dann falsch ist und nicht zur Hardware passt.
F. D. schrieb: > Bspw: D-FF mit sync reset
1 | process begin |
2 | wait until rising_edge(clk); |
3 | if sync_reset = '1' then |
4 | q <= '0'; |
5 | else
|
6 | q <= d; |
7 | end if; |
8 | end process; |
F. D. schrieb: > ich habe ein Frage zur sensitivity list eines Prozesses: In der Theorie > wird der Prozess neu ausgeführt, sobald sich ein Signal in der > sensitivity Liste (SL) ändert. Der Blickwinkel ist falsch! Ein Prozess wird nicht ausgeführt und er kann sich auch nicht selber ausführen. Es ist einfach so, dass der Simulator den Prozess neu berechnen muss, wenn sich eines der Signale in der Sensitivliste ändert. > Weiss das jemand genauer? Such mal hier im Forum, die Frage kommt immer wieder mal... Mit http://www.mikrocontroller.net/search?query=sensitivliste&forums[]=9 hättest du z.B. den Beitrag "Re: Sensitivity list wird ignoriert" gefunden. > Sobald ich ein Signal innerhalb meines Prozesses lese, welches nicht in > der SL vorkommt, kriege ich vom Synthesizer eine Warnung. > Verhalten will? Bspw: D-FF mit sync reset Hast du da mal ein Beispiel? Mich würde wundern, wenn in einem komplett getakteten Prozess ein beliebiges Signal (nicht der Takt) als fehlend angemeckert würde... Die narrensichere Methode hat Alexander schon gepostet: http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html
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.