Hardwarebeschreibungssprachen und Verifikation

Was entsteht bei der Logiksynthese, wenn wie oben als kombinatorische Schaltung gedachter Code geschrieben wird?

always @(*) begin
    if (en)
        y = d;
end
  1. AEine kombinatorische Schaltung, in der y bei en gleich 0 automatisch 0 wird
  2. BEin vom Takt gesteuertes D-Flipflop
  3. CEin unbeabsichtigtes Latch, weil y bei en gleich 0 seinen Wert halten muss
Antwort und Erläuterung anzeigen

Antwort: C. Ein unbeabsichtigtes Latch, weil y bei en gleich 0 seinen Wert halten muss

Bei en gleich 0 gibt es keine Zuweisung an y, sodass y den vorherigen Wert behalten muss. Da kombinatorische Schaltungen nichts speichern, erzeugt die Logiksynthese ein Latch, das den Wert hält. Latches erschweren die Timing-Analyse und können durch Rauschen Fehlfunktionen verursachen, weshalb sie zu vermeiden sind, wenn sie nicht beabsichtigt sind. Wird in allen Fällen ein Wert zugewiesen, etwa mit „else y = 0;“, entsteht eine kombinatorische Schaltung.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Kombination aus Grund für das Entstehen eines Latches in der obigen Beschreibung und Gegenmaßnahme ist korrekt?
  2. Welche Schreibweise wird häufig verwendet, um in einem always-Block einer kombinatorischen Schaltung unbeabsichtigte Latches zu verhindern?
  3. Welche der folgenden Verilog-Beschreibungen wird bei der Logiksynthese nicht zur Schaltung, sondern ignoriert (Beschreibung für die Simulation)?
  4. Welche Schaltung entsteht bei der Logiksynthese der obigen Beschreibung, die die Einsen in 8-Bit-d zählt?
  5. Welche Art von Reset und welches Verhalten hat die obige Beschreibung?

Vergleiche zu diesem Thema