Hardwarebeschrijvingstalen en verificatie

Welke algemene richtlijn voor het onderscheiden van soorten toekenning in Verilog is juist?

  1. AOveral alleen blokkerende toekenning (=) gebruiken
  2. BVoor sequentiële schakelingen op de klok niet-blokkerende toekenning (<=) gebruiken en voor always van combinatorische schakelingen blokkerende toekenning (=)
  3. CIn één always-blok beide soorten willekeurig door elkaar gebruiken
Antwoord en toelichting tonen

Antwoord: B. Voor sequentiële schakelingen op de klok niet-blokkerende toekenning (<=) gebruiken en voor always van combinatorische schakelingen blokkerende toekenning (=)

Als een sequentiële schakeling met niet-blokkerende toekenning wordt geschreven, komt dat overeen met de werking van een schakeling waarin alle flipflops tegelijk de waarde overnemen, en hangt het resultaat niet af van de volgorde van beschrijving of van de uitvoeringsvolgorde met andere always-blokken. Bij combinatorische schakelingen is het natuurlijk om van boven naar beneden tussenwaarden te berekenen, dus blokkerende toekenning wordt gebruikt. Ook is het belangrijk beide niet in één always-blok te mengen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?
  2. Dit is zoals hierboven geschreven als een combinatorische schakeling bedoeld. Welk mogelijk probleem is juist?
  3. Als dit zoals hierboven wordt geschreven als combinatorische schakeling, wat ontstaat er dan bij logische synthese?
  4. Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?
  5. Welke schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?

Vergelijkingen bij dit onderwerp