hallo zusammen, hätte gern eine Frage: in VHDL gibts so was wie in C für synthesezeit: #if constant == 10 #error "error!" #endif vielen dank:) Tomy
Stachele schrieb: > Stichwort: Assertions vielen Dank für deine Antwort! "Assert" Anweisung ist nur in Simulation zu verwenden, oder? Gibts sowas wie "Assert" jedoch für Synthese(Compilieren)-Zeit? lg Tomy
Es gibt Assertions, die zu Beginn der Synthese anschlagen können, z.B.
1 | entity xy is |
2 | generic( gModus : positive := 1); |
3 | end entity; |
4 | |
5 | architecture rtl of xy is |
6 | begin
|
7 | |
8 | b_CheckModus: block |
9 | begin
|
10 | assert (gModus <= 4) report "Modus error" severity failure; |
11 | end block; |
12 | |
13 | end rtl; |
Diese Art von Assertions ist immer dann hilfreich, wenn man über Generics einstellbare Konfigurationen eines Modules absichern will. Das Synthese-Tool bricht im obigen Beispiel ab. Wenn Du jedoch synthetisierbare Assertions haben willst, die zur Laufzeit bspw. Aktivitäten überwachen sollen, dann kommst Du nicht daran vorbei, VHDL-Signale hierfür zu verwenden, die du dann in einem Embedded-Logic-Analyzer als Trigger verwenden kannst. z.B.:
1 | process(...) |
2 | begin
|
3 | if IrgendEtwas = '1' then |
4 | report "Da ist was passiert" severity note; -- Simulation |
5 | debug_irgendetwas <= '1'; -- Synthese |
6 | end if; |
7 | end process; |
Da Du das zur Synthesezeit machen willst, nehme ich nicht an, dass Du (Error)-Messages ausgeben willst (?!) sondern vielmehr Code-Sequenzen reinsynthetisieren oder eben nicht. Da wäre dann das Stichwort "generate-Statement". Funktioniert aber nur ausserhalb von Prozessen (sprich für concurrent Statements oder Instantierungen). Falls es eine Lösung für innerhalb von Prozessen gäbe, wäre ich daran auch sehr interessiert...
>Falls es eine Lösung für innerhalb von Prozessen gäbe, wäre ich daran >auch sehr interessiert... Ja gibt es als Extra-Wurst: "DiaLite Platform" von Temento
1 | This IP allows designers to embed their system assertion conditions along with their system specifications before synthesis and then check them at speed. |
2 | |
3 | The Assertion Checker is built on the PSL and SVA standard, which makes all your format verification tests and system properties reusable. |
VG, SuperWilly
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.