Hardwarebeschrijvingstalen en verificatie

In de bovenstaande beschrijving waren vlak vóór de stijgende klokflank a=0 en b=1. Wat zijn de waarden van a en b na de stijgende flank?

always @(posedge clk) begin
    a <= b;
    b <= a;
end
  1. Aa=1, b=0 (verwisseld)
  2. Ba=1, b=1
  3. Ca=0, b=0
Antwoord en toelichting tonen

Antwoord: A. a=1, b=0 (verwisseld)

Bij niet-blokkerende toekenning worden eerst de twee rechterleden (de oude waarde van b, 1, en de oude waarde van a, 0) geëvalueerd, en daarna worden a=1 en b=0 tegelijk geschreven, zodat de waarden worden verwisseld. Als schakeling zijn de uitgangen van twee flipflops kruislings met elkaars ingang verbonden. Bij blokkerende toekenning (=) wordt a in de eerste regel 1, krijgt b in de tweede regel de nieuwe a, 1, en worden beide 1.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Bedoeld als een tweetraps schuifregister is het zoals hierboven geschreven met blokkerende toekenning (=). Welk probleem treedt op?
  2. Welke algemene richtlijn voor het onderscheiden van soorten toekenning in Verilog is juist?
  3. Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?
  4. Dit is zoals hierboven geschreven als een combinatorische schakeling bedoeld. Welk mogelijk probleem is juist?
  5. Als dit zoals hierboven wordt geschreven als combinatorische schakeling, wat ontstaat er dan bij logische synthese?

Vergelijkingen bij dit onderwerp