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


von Peter (Gast)


Lesenswert?

Ich finde überall den Konstrukt:
1
if CLK'event and CLK='1' then

Ich verwende schon immer:
1
if rising_edge(CLK) then

Gibt es denn da wirklich keinen Unterschied?

Wenn doch, wo?

von Bürovorsteher (Gast)


Lesenswert?

> if rising_edge(CLK) then

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

von D. I. (Gast)


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

von guest (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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

von Bürovorsteher (Gast)


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?)

von Busy (Gast)


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

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


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-im-Prozess.html
http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html
http://www.lothar-miller.de/s9y/archives/1-Clock-Enable-in-einer-ISE-VHDL-Beschreibung.html

von Weltbester FPGA Pongo (Gast)


Lesenswert?

Du beschreist clks generell mit waits?

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


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.

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.