Forum: FPGA, VHDL & Co. Assertions werden ignoriert


von Incanus (Gast)


Lesenswert?

Hallo,
ich möchte in meinen VHDL Code gerne Assertions einbauen, die gewisse 
Fehler vermeiden.
Hierbei geht es mir im speziellen um bestimmte Wertebereiche von 
Generics, die sich gegenseitig Beeinflussen.

Z.B. Ich verwender 2 Generics:
1
g_MaxCommAdr        : integer       := 1600;
2
g_start_point       : integer       := 15;

Und jetzt möchte sicherstellen, das der Startpunkt NIEMALS über der 
maximal möglichen Adresse liegt.

Um das prinzipielle Funktionieren der Asserts zu testen habe ich 
folgendes in meinen Code geschrieben:
1
[...]
2
begin
3
4
assert (false) report "Assertion violation." severity error; -- müsste immer passieren
5
assert (true) report "Assertion violation." severity error; -- dürfte nie passieren

Allerdings synthetisiert und Implementiert er das File ohne 
Fehlermeldungen durch, was mich sehr verdutzt.
Jetzt weiß ich natürlich, wenn diese Bedingungen schon NICHT korrekt mit 
einem Fehler belegt werden, brauch ich einen Vergleich der Generics 
garnicht erst in einen logischen Ausdruck zu packen, weil es damit dann 
auch nicht funktionieren wird.
Irgendwelche Tipps ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Incanus schrieb:
> Allerdings synthetisiert und Implementiert er das File ohne
> Fehlermeldungen durch
Wer ist "er"?
Sind irgendwelche Schalter so gesetzt, dass "er" gar keine Assertions 
bearbeitet?

Probier mal diesen Dreizeiler mit gerader Vektorlänge zu implementieren:
http://www.lothar-miller.de/s9y/categories/29-Ringoszillator
Bei mir kommen dann Fehler in Xilinx ISE und beim Lattice Synthesizer.

von Incanus (Gast)


Lesenswert?

Lothar M. schrieb:
> Wer ist "er"?

"Er" ist Vivado 2016.3

> Sind irgendwelche Schalter so gesetzt, dass "er" gar keine Assertions
> bearbeitet?

Danke für den Tipp, es ist tatsächlich so, das man das separat 
aktivieren muss (was für mich bei assertions rein logisch garkeinen Sinn 
ergibt).
Es funktioniert jetzt (bzw. es es kommen jetzt die "gewünschten" 
Fehlermeldungen).
Vielen Dank.

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
Noch kein Account? Hier anmelden.