Hardwarebeschreibungssprachen und Verifikation

Welche Schaltung stellt die obige assign-Anweisung in Verilog dar?

assign y = (a & b) | c;
  1. AEine kombinatorische Schaltung, die a und b per UND und mit c per ODER verknüpft, wobei sich y sofort mit den Eingängen ändert
  2. BEin Flipflop, das y bei jedem Takt aktualisiert
  3. CEine Schaltung, die einmal berechnet und sich danach nicht mehr ändert
Antwort und Erläuterung anzeigen

Antwort: A. Eine kombinatorische Schaltung, die a und b per UND und mit c per ODER verknüpft, wobei sich y sofort mit den Eingängen ändert

Eine assign-Anweisung heißt kontinuierliche Zuweisung und stellt eine Verbindung dar, bei der der Wert des Ausdrucks auf der rechten Seite stets in das Signal auf der linken Seite übernommen wird. Ändert sich einer der Eingänge der rechten Seite, ändert sich auch der Ausgang y sofort (nach der Gatterverzögerung). Dieses Beispiel ergibt eine kombinatorische Schaltung aus UND- und ODER-Gatter. Sie speichert nichts; soll ein Wert gehalten werden, wird ein taktgesteuerter always-Block verwendet.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Schaltung erzeugt die obige Verilog-Beschreibung bei der Logiksynthese?
  2. Welche Aussage zum Verhalten der nichtblockierenden Zuweisung (<=) in Verilog ist korrekt?
  3. 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?
  4. Ein zweistufiges Schieberegister sollte entstehen, wurde aber wie oben mit blockierenden Zuweisungen (=) geschrieben. Welches Problem tritt auf?
  5. Welche Richtlinie zur Verwendung der Zuweisungsarten in Verilog ist allgemein korrekt?

Vergleiche zu diesem Thema