mikrocontroller.net

Forum: FPGA, VHDL & Co. Verilog UDLY


Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss gerade etwas Verilog-Code verstehen, kenne mich aber nur mit 
VHDL aus. Mit dem #UDLY in der folgenden Zeile kann ich nichts anfangen.

     read_valid          <= #UDLY 1'b0;

Was bedeutet es.

Danke

Tom

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scheint ein "time delay" zu sein, das über eine Konstante eingestellt 
wird.

Gruß,
SuperWilly

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Reinemann schrieb:
> Mit dem #UDLY in der folgenden Zeile kann ich nichts anfangen.
>
>      read_valid          <= #UDLY 1'b0;
>
> Was bedeutet es.

Das ist ein sogenanntes intra-assignment delay. Der Ausdruck auf der 
rechten Seite wird ausgewertet (hier trivial: 1'b0) und mit 
entsprechender Verzögerung der Variablen read_valid zugewiesen. Wobei 
UDLY möglicherweise ein definierter Parameter ist, oder ebenfalls eine 
Variable.

Gruß
Marcus
http://www.doulos.com/knowhow/verilog_designers_guide/

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcus Harnisch schrieb:
> Thomas Reinemann schrieb:
>> Mit dem #UDLY in der folgenden Zeile kann ich nichts anfangen.
>>
>>      read_valid          <= #UDLY 1'b0;
>>
>> Was bedeutet es.
>
> Das ist ein sogenanntes intra-assignment delay. Der Ausdruck auf der
> rechten Seite wird ausgewertet (hier trivial: 1'b0) und mit
> entsprechender Verzögerung der Variablen read_valid zugewiesen. Wobei
> UDLY möglicherweise ein definierter Parameter ist, oder ebenfalls eine
> Variable.

Hä, die Zeile kommt aus einem Modul, dass synthetisiert wird, 
Wishbone-Decoder vom Mic32.

Ein paar Zeilen weiter vorn steht:
   parameter         UDLY    = 1;

Was bedeutet das dann insgesamt?

Danke tom

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Reinemann schrieb:
> Ein paar Zeilen weiter vorn steht:
>    parameter         UDLY    = 1;

Sag' ich doch.

> Was bedeutet das dann insgesamt?

Ein Parameter ist soetwas ähnliches wie ein Generic in VHDL. Insgesamt 
ergibt sich also der Ausdruck

read_valid          <= #1 1'b0;

Wobei die Verzögerung von der jeweils gültigen Zeiteinheit des Moduls 
abhängt. Vielleicht findest Du ja irgendwo weiter oben im Modul eine 
Direktive die in etwa so aussieht: "`timescale 1ns/100ps". Dann ist (in 
diesem Beispiel) die Zeiteinheit 1ns und die Verzögerung errechnet sich 
zu ebenfalls 1ns.

In synthetisierter HW wird die Verzögerung (genau wie in VHDL) einfach 
ignoriert.

Da wollte jemand in seinen Waveforms etwas deutlicher sehen, dass 
read_valid mit einer Verzögerung zugewiesen wird.

--
Marcus

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.