www.mikrocontroller.net

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


Autor: Konrad Neugebauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
# ist eine Verzoegerung, allerdings nur in der Simulation wirksam.

Autor: Konrad Neugebauer (Gast)
Datum:

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

MFG Konrad

Autor: Nicht angemeldet (Gast)
Datum:

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

Oder war deine Frage anders zu verstehen?

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.