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
  1. AEen combinatorische schakeling waarbij y automatisch 0 is als en=0 is
  2. BEen D-flipflop die op de klok werkt
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?
  2. Welke schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?
  3. Welke van de volgende Verilog-beschrijvingen wordt door logische synthese niet tot een schakeling gemaakt maar genegeerd (een beschrijving voor simulatie)?
  4. Wat voor schakeling ontstaat als de bovenstaande beschrijving, die het aantal enen in de 8-bits d telt, logisch wordt gesynthetiseerd?
  5. Welke uitspraak over het soort reset en de werking in de bovenstaande beschrijving is juist?

Vergelijkingen bij dit onderwerp