Hardwarebeschrijvingstalen en verificatie

Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?

  1. AHet stelt een flipflop voor die bij elke stijgende klokflank wordt uitgevoerd
  2. BHet wordt één keer aan het begin van de simulatie uitgevoerd
  3. CHet stelt een combinatorische schakeling voor die wordt uitgevoerd telkens wanneer een van de signalen die in het blok worden gelezen verandert
Antwoord en toelichting tonen

Antwoord: C. Het stelt een combinatorische schakeling voor die wordt uitgevoerd telkens wanneer een van de signalen die in het blok worden gelezen verandert

Wat na always tussen @( ) staat heet de sensitivity list en geeft aan bij welke signaalwijzigingen het blok wordt uitgevoerd. Met '*' worden automatisch alle in het blok gelezen signalen opgenomen, zodat een combinatorische schakeling juist wordt voorgesteld. Handmatig opsommen leidt gemakkelijk tot weglatingen, dus voor combinatorische schakelingen is '@(*)' of always_comb van SystemVerilog het veiligst.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Dit is zoals hierboven geschreven als een combinatorische schakeling bedoeld. Welk mogelijk probleem is juist?
  2. Als dit zoals hierboven wordt geschreven als combinatorische schakeling, wat ontstaat er dan bij logische synthese?
  3. Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?
  4. Welke schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?
  5. Welke van de volgende Verilog-beschrijvingen wordt door logische synthese niet tot een schakeling gemaakt maar genegeerd (een beschrijving voor simulatie)?

Vergelijkingen bij dit onderwerp