Hardwarebeschreibungssprachen und Verifikation

Welche Aussage zum Vergleich einer langen Kette aus if-else-if und einer case-Beschreibung mit sich nicht überlappenden Bedingungen in einer kombinatorischen Schaltung ist korrekt?

  1. AEine if-else-if-Kette ergibt eine Schaltung mit Vorrang früherer Bedingungen und wird tendenziell tief und langsam, case dagegen eine Schaltung mit paralleler Auswahl
  2. BBei beiden Schreibweisen entsteht genau dieselbe Schaltung
  3. Ccase ist nicht synthetisierbar, nur if ist synthetisierbar
Antwort und Erläuterung anzeigen

Antwort: A. Eine if-else-if-Kette ergibt eine Schaltung mit Vorrang früherer Bedingungen und wird tendenziell tief und langsam, case dagegen eine Schaltung mit paralleler Auswahl

Eine if-else-if-Kette bedeutet „trifft die erste Bedingung zu, gilt diese, sonst wird die nächste geprüft“ und ergibt daher eine Schaltung mit Prioritäten (etwa wie ein Prioritätsencoder), in der so viele Multiplexer in Reihe liegen, wie es Bedingungen gibt, sodass die Verzögerung leicht lang wird. Ein case mit sich nicht überlappenden Werten ergibt tendenziell eine parallele Schaltung wie ein großer einstufiger Multiplexer und ist schneller. Moderne Synthesewerkzeuge optimieren aber häufig beides.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zum Unterschied zwischen den Gleichheitsoperatoren „==“ und „===“ in Verilog ist korrekt?
  2. Welche Aussage zum wesentlichen Unterschied zwischen einer in einer HDL wie Verilog geschriebenen Beschreibung und einem Softwareprogramm, etwa in C, ist korrekt?
  3. Was ist der Zweck von module in Verilog?
  4. Welche Aussage zum Unterschied zwischen den Typen wire und reg in Verilog ist korrekt?
  5. Welche Schaltung stellt die obige assign-Anweisung in Verilog dar?

Vergleiche zu diesem Thema