Assertions werden ignoriert

Gast #5054911
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 ?
Moderator (Firma: Titel) Persönliche Seite #5054959
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.
Gast #5056324
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren