Hardwarebeschrijvingstalen en verificatie
Als in een testbench de ingangen van de schakeling met blokkerende toekenning op hetzelfde tijdstip als de stijgende klokflank worden gewijzigd, kan een probleem ontstaan. Welke combinatie van de belangrijkste reden en de tegenmaatregel is juist?
- AOmdat het afhangt van de uitvoeringsvolgorde of de schakeling de waarde van vóór of na de verandering overneemt (race). De ingangen iets verschoven van de klokflank of met niet-blokkerende toekenning wijzigen
- BOmdat de klokfrequentie automatisch daalt. De klok sneller maken
- COmdat blokkerende toekenning in een testbench niet kan worden gebruikt. Alles met assign-statements doen
Antwoord en toelichting tonen
Antwoord: A. Omdat het afhangt van de uitvoeringsvolgorde of de schakeling de waarde van vóór of na de verandering overneemt (race). De ingangen iets verschoven van de klokflank of met niet-blokkerende toekenning wijzigen
Als op hetzelfde tijdstip de bewerking waarmee de testbench de ingangen herschrijft en de bewerking waarmee de flipflops van de schakeling de ingangen overnemen plaatsvinden, kan de overgenomen waarde de oude of de nieuwe waarde zijn, afhankelijk van welke de simulator als eerste uitvoert. Dit is een race in de simulatie, en het resultaat kan per simulator verschillen. Men voorkomt het door de ingangen bij de dalende flank te wijzigen, ze iets te vertragen of niet-blokkerende toekenning of de clocking blocks van SystemVerilog te gebruiken.
Verder: nog 9 vragen over Hardwarebeschrijvingstalen en verificatie