mikrocontroller.net

Forum: FPGA, VHDL & Co. CLK'EVENT die 17.te


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde überall den Konstrukt:
if CLK'event and CLK='1' then

Ich verwende schon immer:
if rising_edge(CLK) then

Gibt es denn da wirklich keinen Unterschied?

Wenn doch, wo?

Autor: Bürovorsteher (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
> if rising_edge(CLK) then

Das kostenfreie Xilinx-Synthesewerkzeug in der ISE kennt das nicht, 
ansonsten ist es egal.

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bürovorsteher schrieb:
>> if rising_edge(CLK) then
>
> Das kostenfreie Xilinx-Synthesewerkzeug in der ISE kennt das nicht,
> ansonsten ist es egal.

so ein quatsch, xilinx kann das schon lange

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin mir nicht ganz sicher, aber ich glaube das die Funktion 
rising_edge() nur für Datentypen vom Typ std_logic definiert ist.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nur für Datentypen vom Typ std_logic definiert
Kann man denn eine Clock mit noch etwas anderem definieren, als 
std_logic?

Autor: Bürovorsteher (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
> so ein quatsch, xilinx kann das schon lange

Hm, eben noch mal probiert, jetzt geht es...
Hatte ich wohl immer einen Syntaxfehler drin.:-((
(Klammern vergessen?)

Autor: Busy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
>Gibt es denn da wirklich keinen Unterschied?

Doch, den gibt es schon ist aber in der Praxis eher theoretischer Natur:

rising_edge bezeichnet den Uebergang von 0 auf 1, wohingegen CLK'event 
and CLK='1' z.B. auch beim Uebergang von 'X' nach '1' erfuellt ist.

Je nach Modellierung des Clocks und Aufbau der Testbench koennen sich 
also Differenzen zur Hardware ergeben ( welche ja nur zwei Zustaende 
einnehmen kann, Metastabilitaeten mal ausgenommen ;)

Gruss

Busy

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Busy schrieb:
> wohingegen CLK'event and CLK='1'
> z.B. auch beim Uebergang von 'X' nach '1' erfuellt ist.
Oder sogar von 'H' nach '1'...  :-o
Und das kann durchaus einen 'Unterschied machen (zwar nicht bei FPGAs 
aber z.B. bei ASICs). Was hinter der Funktion rising_edge() steckt kann 
man sich ja einfach mal im std_logic Package anschauen.

Bürovorsteher schrieb:
> Das kostenfreie Xilinx-Synthesewerkzeug in der ISE kennt das nicht,
> ansonsten ist es egal.
Oh, die XST kann einiges, was andere erst hinterher konnten...  ;-)
Speziell in der Beschreibung von Takten und Clock-Enables wundert man 
sich da manchmal:
http://www.lothar-miller.de/s9y/archives/47-wait-i...
http://www.lothar-miller.de/s9y/archives/16-Takt-i...
http://www.lothar-miller.de/s9y/archives/1-Clock-E...

Autor: Weltbester FPGA Pongo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du beschreist clks generell mit waits?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weltbester FPGA Pongo schrieb im Beitrag #1870900:
> Du beschreist clks generell mit waits?
Beschreien? :-o

Wie auch immer: ich beschreibe Takte lieber über das wait until();
Nur bieten sich manchmal andere Beschreibungsarten an, weil sich 
irgendwas einfach eleganter oder besser darstellen lässt.

Deshalb gilt mein Motto:
Ich beschreibe es generell so, dass das herauskommt, was ich will.

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.