Hardwarebeschreibungssprachen und Verifikation

Welche Schaltung erzeugt die obige Verilog-Beschreibung bei der Logiksynthese?

always @(posedge clk)
    q <= d;
  1. AEine UND-Schaltung aus d und clk
  2. BEin D-Flipflop, das d bei der steigenden Taktflanke übernimmt
  3. CEin Latch, das d durchlässt, solange der Takt 1 ist
Antwort und Erläuterung anzeigen

Antwort: B. Ein D-Flipflop, das d bei der steigenden Taktflanke übernimmt

„always @(posedge clk)“ bedeutet, dass die Zuweisungen darin nur im Moment der steigenden Taktflanke erfolgen; die Logiksynthese macht daraus ein flankengesteuertes Flipflop. q hält den Wert von d zum Zeitpunkt der steigenden Flanke bis zur nächsten steigenden Flanke. In synchronen Schaltungen wird fast jeder Speicher in dieser Form geschrieben. Davon ist ein Latch zu unterscheiden, das nicht flanken-, sondern pegelgesteuert arbeitet.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zum Verhalten der nichtblockierenden Zuweisung (<=) in Verilog ist korrekt?
  2. Bei der obigen Beschreibung war unmittelbar vor der steigenden Taktflanke a=0 und b=1. Welche Werte haben a und b nach der steigenden Flanke?
  3. Ein zweistufiges Schieberegister sollte entstehen, wurde aber wie oben mit blockierenden Zuweisungen (=) geschrieben. Welches Problem tritt auf?
  4. Welche Richtlinie zur Verwendung der Zuweisungsarten in Verilog ist allgemein korrekt?
  5. Was bedeutet „always @(*)“ in Verilog?

Vergleiche zu diesem Thema