Hardwarebeschrijvingstalen en verificatie

Welke uitspraak over de werking van de niet-blokkerende toekenning (<=) in Verilog is juist?

  1. AHet linkerlid wordt direct bijgewerkt en de nieuwe waarde wordt in de volgende regel gebruikt
  2. BEerst worden alle rechterleden van hetzelfde tijdstip geëvalueerd en daarna worden de linkerleden gezamenlijk bijgewerkt
  3. CHet resultaat van de toekenning wordt weggegooid en er verandert niets
Antwoord en toelichting tonen

Antwoord: B. Eerst worden alle rechterleden van hetzelfde tijdstip geëvalueerd en daarna worden de linkerleden gezamenlijk bijgewerkt

Bij niet-blokkerende toekenning worden op de klokflank eerst alle rechterleden van <= met de oude waarden geëvalueerd, en daarna worden de linkerleden tegelijk herschreven. Dit komt overeen met de werking van een echte schakeling, waarin veel flipflops die op dezelfde klok werken tegelijk de waarde vlak vóór de flank overnemen. Voor de beschrijving van sequentiële schakelingen die op de klok werken, geldt daarom als basisregel niet-blokkerende toekenning te gebruiken.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. 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?
  2. Bedoeld als een tweetraps schuifregister is het zoals hierboven geschreven met blokkerende toekenning (=). Welk probleem treedt op?
  3. Welke algemene richtlijn voor het onderscheiden van soorten toekenning in Verilog is juist?
  4. Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?
  5. Dit is zoals hierboven geschreven als een combinatorische schakeling bedoeld. Welk mogelijk probleem is juist?

Vergelijkingen bij dit onderwerp