Forum: FPGA, VHDL & Co. Simualtion nach bestimmter Bedingung beenden


von Olli (Gast)


Lesenswert?

Hallo,
wollt mal fragen, wie schaffe ich es das die Simulation nach einer 
bestimmten bedingung aufhört.
Ich habe eine Bedingung z.B.
1
if n > "00000011" then x <= x"0000"; --ich möchte, wenn n grösser als drei wird, soll die simulation beendet werden, hierbei wird lediglich dieses Signal auf 0 gesetzt aber die Simulation wird weiter fortgeführt
2
else case n is 
3
                when "00000010" =>  x <= x"0000";
4
                when others => x <= signal(6 downto 0);
5
      end case;
6
end if;

Ich bin offen für jede Anregung.Danke.

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


Lesenswert?

Du brauchst eine Assertion.

Allerdings gehört die nicht in einen synthesefähigen Code in eine 
if-Abfrage, sondern (wenn schon, dann) einfach davor:
1
  assert  (n <= "00000011") 
2
    report "n ist größer als 3"
3
    severity failure;   
4
  case n is 
5
         when "00000010" =>  x <= x"0000";
6
         when others => x <= signal(6 downto 0);
7
  end case;

Allerdings hätte ich da noch eine Frage:
Was ist dein eigentliches Problem?

von Olli (Gast)


Lesenswert?

hallo danke für deine Hilfe, hat geklappt, wunderbar.

Mein eigentliches Signal, sind werte die an einen DA wandler gegeben 
werden, mit den werten generiere ich ein Rechtecksignal, und nach 3 
rechtecken wollte ich einfach schluss machen.

Aber super hat geklappt. 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.