Wat is Combinatorische schakeling?

Logische schakeling waarvan de uitgang alleen van de huidige ingangen afhangt. Voorbeelden zijn opteller, multiplexer en decoder.

Japanse benaming: 組み合わせ回路

“Combinatorische schakeling” komt voor in 14 oefenvragen uit 2 onderwerpen, bijv. Hardwarebeschrijvingstalen en verificatie, Testen en inspectie.

Vakgebied: Logische schakelingen

Nu oefenen: vragen over Combinatorische schakeling

Welke schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?

  1. AZoveel mogelijk voorwaardelijke takken schrijven en else weglaten
  2. BAan het begin van het blok aan alle uitgangssignalen een standaardwaarde toekennen en daarna de voorwaardelijke takken schrijven
  3. CAlle uitgangssignalen als wire declareren en in always toekennen
Antwoord en toelichting tonen

Antwoord: B. Aan het begin van het blok aan alle uitgangssignalen een standaardwaarde toekennen en daarna de voorwaardelijke takken schrijven

Als aan het begin van het blok aan uitgangen standaardwaarden worden gegeven, zoals 'y = 0; valid = 0;', is bij elk pad door de latere voorwaardelijke takken in elk geval de standaardwaarde toegekend, zodat geen waarde behouden hoeft te worden en geen latch ontstaat. Het is vooral nuttig bij de beschrijving van uitgangen van toestandsmachines met veel voorwaarden. Met always_comb van SystemVerilog waarschuwt de tool als er een latch ontstaat.

Welke uitspraak is juist bij vergelijking in een combinatorische schakeling van een lange keten if en else if met een case-beschrijving waarvan de voorwaarden elkaar niet overlappen?

  1. AEen keten van if en else if wordt een schakeling met prioriteit voor eerdere voorwaarden, die gemakkelijk veel trappen heeft en traag is, terwijl case gemakkelijk een parallel kiezende schakeling wordt
  2. BMet beide schrijfwijzen wordt precies dezelfde schakeling gesynthetiseerd
  3. Ccase kan niet worden gesynthetiseerd en alleen if kan dat wel
Antwoord en toelichting tonen

Antwoord: A. Een keten van if en else if wordt een schakeling met prioriteit voor eerdere voorwaarden, die gemakkelijk veel trappen heeft en traag is, terwijl case gemakkelijk een parallel kiezende schakeling wordt

Een keten van if en else if betekent 'als de eerste voorwaarde waar is, die; anders de volgende controleren', dus het wordt een schakeling met rangorde (zoals een prioriteitsencoder), waarbij zoveel multiplexers als er voorwaarden zijn in serie staan en de vertraging gemakkelijk lang wordt. Een case die kiest op elkaar niet overlappende waarden wordt gemakkelijk een parallelle schakeling zoals één grote multiplexer en is sneller. Moderne synthesetools optimaliseren echter vaak beide.

“Combinatorische schakeling” in de toelichting

Vragen met “Combinatorische schakeling” (14)

  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 schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?
  4. Hoe heet de vorm uit de bovenstaande beschrijving waarin de uitgang van een combinatorische schakeling zonder flipflop naar de eigen ingang terugkeert, en waarom moet die worden vermeden?
  5. Welke uitspraak is juist bij vergelijking in een combinatorische schakeling van een lange keten if en else if met een case-beschrijving waarvan de voorwaarden elkaar niet overlappen?
  6. Welke beschrijving van scanontwerp, een vorm van Design for Test (DFT), is juist?
  7. Welke uitspraak over het verschil tussen het wire-type en het reg-type in Verilog is juist?
  8. Welke uitspraak over de schakeling die door het bovenstaande Verilog-assign-statement wordt voorgesteld, is juist?
  9. Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?
  10. Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?
  11. Wat voor schakeling ontstaat als de bovenstaande beschrijving, die het aantal enen in de 8-bits d telt, logisch wordt gesynthetiseerd?
  12. Welke uitspraak over de basisopbouw van een in HDL geschreven toestandsmachine (state machine) is juist?
  13. Wat is de juiste reden waarom in de bovenstaande beschrijving van een toestandsmachine aan het begin van het tweede always-blok 'next = state;' wordt geschreven?
  14. Welk voordeel van het gebruik van always_ff en always_comb van SystemVerilog in plaats van always van Verilog is juist?

Vergelijkingen met deze term

Verwante termen

SystemVerilog Verilog Logische synthese Flipflop Hardwarebeschrijvingstaal (HDL) Sensitivity list Numerieke apertuur (NA) STA (statische timinganalyse) Multiplexer DFT (design for testability)

Naar de woordenlijst