mikrocontroller.net

Forum: FPGA, VHDL & Co. Frage zu clock'event


Autor: Alex H. (lightningboy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal ne kleine Frage

hier in dem Beispiel wird in der if abfrage einmal <clock>'event erwähnt
was hat das zu bedeuten und wo wird sowas noch benutzt.

--Beispiel
process (<clock>)
begin
   if <clock>='1' and <clock>'event then
      <count> <= <count> - 1;
   end if;
end process;

 danke schonmal für eure hilfe :)

Autor: Stock Hecht (winkelmesser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bedeutet, dass der Zustand von clock sich geändert hat. Wenn der Clock 
sich geändert hat, und nun den Wert 1 hat, ist die Bedingung erfüllt.

Das ganze prüft, ob eine positive Taktflanke vorliegt.

Autor: Sven Johannes (svenj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...

altbekannter Fehler, aber meistens tolerabel:
Auch jeder Wechsel aus einem anderen Zustand nach '1' wird hier gezählt.
"Korrekt" ist rising_edge(clk).

--
 SJ

Autor: Simon Huwyler (simi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und um die Antwort auf die mit Sicherheit folgende Frage vorwegzunehmen:

Ja, es gibt noch mehr Zustände als 0 und 1 in STD_LOGIC

Z.B. H. Das bedeutet, dass er schwach (durch einen Pull-Up) nach oben 
gezogen wird. Ein Wechsel von H nach 1 wird durch 'event also erkannt. 
Eine synthetisierte Logik aber wird den Unterschied nicht erkennen.

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eine synthetisierte Logik aber wird den Unterschied nicht erkennen

Ja, was das FF angeht! Aber wie ist es mit der Initialisierung?

Die Simulation wird bei dem event/1 - Konstrukt reagieren - unabhängig 
von einer fehlenden Initialisierung. Damit wird sie die Flanke "sehen" 
und das Schaltwerk als "laufend" simulieren, während es dank der sinplen 
Synthese als FF einmal real laeuft und einmal still bleibt - je nach 
physikalsischem Startzustand. Der dieser z.T. von der Synthese 
festgelegt wird, hat man also einen Zufall.

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... es fehlt noch die Schlussfolgerung: Man hat also einen Zufall, der 
von der Simulation FALSCH simuliert wird. Will man also effizient 
simulieren, dann nutzt man den obigen Konstrukt, will man aber 
realitätsnah simulieren, dann benutzt man besser immer rising edge!

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.