Forum: FPGA, VHDL & Co. # in Verilog?


von Konrad Neugebauer (Gast)


Lesenswert?

Hallo!

Verzeihung für die vermutlich dumme Frage, aber ich habe nun schon 
etliche VHDL Beiträge nach der Funktion einer Raute in VHDL/Verilog 
durchsucht, jedoch nichts nütziches gefunden.

Im Detail gehts um dieses Codefragment:  counter_out <= #1 counter_out + 
1;

ich weiß, dass hiebei der Counter inkrementiert wird, kann mir aber 
nicht erklären was #1 dazu beiträgt...

Bitte um Aufklärung.

Danke schon mal für die Mühe!!

von Uwe Bonnes (Gast)


Lesenswert?

# ist eine Verzoegerung, allerdings nur in der Simulation wirksam.

von Konrad Neugebauer (Gast)


Lesenswert?

AHA. Danke vielmals!
Wie kommt man denn auf diese Verzögerungswerte (Rein aus Interesse)?

MFG Konrad

von Nicht angemeldet (Gast)


Lesenswert?

#1 verzögert um ein Zeitdingens. Was ein Zeitdingens ist, wird durch die 
timescale-Direktive festgelegt.

Oder war deine Frage anders zu verstehen?

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Das ist ein intra-assignment delay. Der Ausdruck auf der rechten
Seite wird zu einem Zeitpunkt t ausgewertet und das Ergebnis nach der
angegebenen Verzögerung zugewiesen.

In Verilog kann man nur sogenannte einheitenlose ganzzahlige
unit delays angeben, d.h. keine Zeiteinheiten wie man sie in VHDL
kennt.[1]

Konrad Neugebauer schrieb:
> Wie kommt man denn auf diese Verzögerungswerte (Rein aus Interesse)?

#1 ist insofern besonders, dass es sich um die kleinste überhaupt
mögliche Verzögerung handelt. Die Gründe können vielfältig sein, die
meisten sind aber falsch :-)

Beliebt ist das "Sichtbar-machen" von Kausalitäten in den
Waveforms. Ebenfalls beliebt ist das Konstrukt leider auch zur
Verdeckung von race conditions, die man in den Code eingebaut hat.

Viele Grüße
Marcus

Footnotes:
[1]  In SystemVerilog hat man Zeiteinheiten.

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.