Hardwarebeschrijvingstalen en verificatie
Als sel in de bovenstaande beschrijving X (onbepaald) is, wordt in Verilog-simulatie b voor y gekozen. Welke reden waarom deze eigenschap bij verificatie een probleem is, is juist?
always @(*)
if (sel) y = a;
else y = b;
- AOmdat y altijd X wordt en de simulatie stopt
- BOmdat bij sel gelijk aan X ook in de echte chip altijd b wordt gekozen
- COmdat X als 'onwaar' wordt behandeld en de bepaalde waarde b het resultaat is, zodat de fout dat sel onbepaald is in de simulatie niet zichtbaar wordt
Antwoord en toelichting tonen
Antwoord: C. Omdat X als 'onwaar' wordt behandeld en de bepaalde waarde b het resultaat is, zodat de fout dat sel onbepaald is in de simulatie niet zichtbaar wordt
De if-instructie van Verilog behandelt X als voorwaarde als onwaar en voert de else-tak uit. Daardoor krijgt y de bepaalde waarde b en blijft de fout dat sel onbepaald is in simulatie verborgen. In de echte schakeling is sel 0 of 1, en soms wordt a gekozen. Dit heet X-optimisme, en men pakt het aan door te schrijven op een manier die X doorgeeft en door assertions op te nemen die X detecteren.
Verder: nog 9 vragen over Hardwarebeschrijvingstalen en verificatie