Hardwarebeschrijvingstalen en verificatie
Als dit zoals hierboven wordt geschreven als combinatorische schakeling, wat ontstaat er dan bij logische synthese?
always @(*) begin
if (en)
y = d;
end
- AEen combinatorische schakeling waarbij y automatisch 0 is als en=0 is
- BEen D-flipflop die op de klok werkt
- COmdat y de waarde moet behouden als en=0 is, ontstaat er een onbedoelde latch
Antwoord en toelichting tonen
Antwoord: C. Omdat y de waarde moet behouden als en=0 is, ontstaat er een onbedoelde latch
Als en=0 is, is er geen toekenning aan y, dus y moet de vorige waarde onthouden. Een combinatorische schakeling heeft geen geheugenwerking, dus logische synthese maakt een latch om de waarde vast te houden. Een latch bemoeilijkt timinganalyse en kan door ruis tot storingen leiden, dus ze worden vermeden als ze niet bedoeld zijn. Met een toekenning in alle gevallen, zoals 'else y = 0;', ontstaat een combinatorische schakeling.
Verder: nog 9 vragen over Hardwarebeschrijvingstalen en verificatie