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?
- 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
- BBei beiden Schreibweisen entsteht genau dieselbe Schaltung
- 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.