Hardwarebeschrijvingstalen en verificatie
Leer met meerkeuzevragen de basis van Verilog en SystemVerilog, synthetiseerbare beschrijvingen, blocking en non-blocking toewijzing, onbedoelde latches, toestandsmachines, testbenches en assertions.
Hardwarebeschrijvingstalen en verificatie: kernpunten
Digitale schakelingen worden geschreven in hardwarebeschrijvingstalen (HDL) zoals Verilog en SystemVerilog. Ze lijken op programmeertalen, maar wat u schrijft beschrijft schakelingen die gelijktijdig werken. HDL kent eigen regels, zoals welke beschrijvingen met logische synthese in een schakeling kunnen worden omgezet, het gebruik van blocking en non-blocking toewijzingen en onbedoelde latches door een onvolledige voorwaarde.
Of een geschreven schakeling correct is, wordt gecontroleerd met een testbench die ingangen aanlegt. U leert de basis van ontwerpen en verifiëren met HDL: het schrijven van toestandsmachines, automatische controle van eigenschappen met assertions, het beoordelen van de volledigheid van verificatie met coverage en high-level synthese, waarmee schakelingen uit bijvoorbeeld C worden gegenereerd.
Alle vragen over Hardwarebeschrijvingstalen en verificatie (50)
- Welke uitspraak over het belangrijkste verschil tussen een beschrijving in een HDL zoals Verilog en een softwareprogramma in bijvoorbeeld C is juist?
- Welke uitspraak over het doel van het gebruik van een module in Verilog is juist?
- Welke uitspraak over het verschil tussen het wire-type en het reg-type in Verilog is juist?
- Welke uitspraak over de schakeling die door het bovenstaande Verilog-assign-statement wordt voorgesteld, is juist?
- Welke uitspraak over de schakeling die door logische synthese uit de bovenstaande Verilog-beschrijving ontstaat, is juist?
- Welke uitspraak over de werking van de niet-blokkerende toekenning (<=) in Verilog is juist?
- 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?
- Bedoeld als een tweetraps schuifregister is het zoals hierboven geschreven met blokkerende toekenning (=). Welk probleem treedt op?
- Welke algemene richtlijn voor het onderscheiden van soorten toekenning in Verilog is juist?
- Welke uitspraak over de betekenis van 'always @(*)' in Verilog is juist?
- Dit is zoals hierboven geschreven als een combinatorische schakeling bedoeld. Welk mogelijk probleem is juist?
- Als dit zoals hierboven wordt geschreven als combinatorische schakeling, wat ontstaat er dan bij logische synthese?
- Welke combinatie van de reden waarom in de bovenstaande beschrijving een latch ontstaat en de tegenmaatregel is juist?
- Welke schrijfwijze wordt veel gebruikt om onbedoelde latches in een always-blok van een combinatorische schakeling te voorkomen?
- Welke van de volgende Verilog-beschrijvingen wordt door logische synthese niet tot een schakeling gemaakt maar genegeerd (een beschrijving voor simulatie)?
- Wat voor schakeling ontstaat als de bovenstaande beschrijving, die het aantal enen in de 8-bits d telt, logisch wordt gesynthetiseerd?
- Welke uitspraak over het soort reset en de werking in de bovenstaande beschrijving is juist?
- Welke uitspraak over het verschil tussen synchrone en asynchrone reset is juist?
- Waarom wordt in een schakeling met asynchrone reset het loslaten van de reset (verandering van 0 naar 1) met een flipflop van twee trappen op de klok gesynchroniseerd voordat het over de schakelingen wordt verdeeld?
- Welke uitspraak over de basisopbouw van een in HDL geschreven toestandsmachine (state machine) is juist?
- 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?
- Welke uitspraak over de kenmerken van een toestandsmachine van het Mealy-type is juist?
- Welke uitspraak over de kenmerken van one-hot-codering bij het coderen van toestanden van een toestandsmachine is juist?
- Welke combinatie van het aantal flipflops dat nodig is om de toestand te onthouden bij een toestandsmachine met drie toestanden is juist (binaire codering/one-hot-codering)?
- Wat wordt count bij de bovenstaande 4-bits teller wanneer de klok stijgt terwijl count 15 is?
- In Verilog worden de 8-bits signalen a en b opgeteld en wordt het resultaat aan het 8-bits signaal s toegekend (assign s = a + b;). Welk aandachtspunt is juist?
- Als a zoals hierboven is geschreven als een ondertekende -1, werd gt 1. Welke reden is juist?
- Welke combinatie van waarden van de vierwaardige logica die in Verilog-simulatie wordt gebruikt is juist?
- In de simulatie was de waarde van een register zonder reset eerst X. Wat wordt aangenomen dat er in een echte chip gebeurt?
- Als sel in de bovenstaande beschrijving X (onbepaald) is, wordt in Verilog-simulatie b voor y gekozen. Welke reden waarom deze eigenschap bij verificatie een probleem is, is juist?
- Welke uitspraak over de beschrijving van tri-state, dat Z (hoge impedantie) uitvoert, in HDL is juist?
- Welke uitspraak over de testbench die bij HDL-verificatie wordt gebruikt is juist?
- Hoe groot is de periode van de klok die door de bovenstaande beschrijving in de testbench wordt gemaakt (tijdseenheid 1 ns)?
- Als in een testbench de ingangen van de schakeling met blokkerende toekenning op hetzelfde tijdstip als de stijgende klokflank worden gewijzigd, kan een probleem ontstaan. Welke combinatie van de belangrijkste reden en de tegenmaatregel is juist?
- Welke uitspraak over de kenmerken van een zelfcontrolerende testbench is juist?
- Welk doel van het gebruik van een referentiemodel (golden model) dat in bijvoorbeeld C is geschreven bij verificatie is juist?
- Wat is het belangrijkste doel van het wegschrijven van simulatieresultaten naar een bestand in een formaat zoals VCD?
- Welke reden waarom bij tests met willekeurige ingangen de seed (zaad) van het toevalsgetal wordt vastgelegd is juist?
- Welke uitspraak over beperkte willekeurige verificatie (constrained-random) in SystemVerilog is juist?
- Welke uitspraak over regressietests bij het ontwerpen van schakelingen is juist?
- Welk voordeel van het logic-type van SystemVerilog is juist?
- Welk voordeel van het gebruik van always_ff en always_comb van SystemVerilog in plaats van always van Verilog is juist?
- Welk voordeel van het schrijven van een module met parameter zoals hierboven is juist?
- Welke uitspraak over de werking van de bovenstaande generate-statement is juist?
- Welke uitspraak over de rol van lint-tools die bij HDL-verificatie worden gebruikt is juist?
- Wat is het belangrijkste doel van het uitvoeren van simulatie met vertragingsinformatie op de schakeling na logische synthese en plaatsen en routeren (gate-level netlist)?
- 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?
- Hoe wordt de bovenstaande beschrijving in het algemeen behandeld bij logische synthese voor FPGA's?
- 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?
- Welke uitspraak over het verschil tussen de gelijkheidsoperatoren '==' en '===' in Verilog is juist?
Vergelijkingen bij dit onderwerp
- Verilog versus VHDL: twee hardwarebeschrijvingstalen vergelekenVerilog en VHDL vergeleken in een tabel: herkomst, syntaxis, typen, hoofdlettergevoeligheid, verificatiemogel…
- Blocking versus non-blocking assignment: timing, volgorde en gebruik vergelekenBlocking (=) en non-blocking assignment (<=) in Verilog vergeleken: moment van bijwerken, volgordeafhankelijk…
- Synchrone versus asynchrone reset: timing, klok en aandachtspunten bij vrijgaveSynchrone en asynchrone reset vergeleken: werkingsmoment, klokvereiste, glitchgevoeligheid, timinganalyse, sy…
Andere onderwerpen in Computersystemen
- Computerarithmetiek IEEE 754, vaste komma, afrondingsfouten
- Instructieset en assembly RISC-V, adresseringsmodi, aanroepconventies
- Compilers Parsing, SSA, optimalisatie, registertoewijzing
- Linker, loader en uitvoerbare formaten ELF, symbolen, relocatie, dynamisch linken
- Besturingssysteem en hardware Interrupts, systeemaanroepen, paginafouten
- Geheugenhiërarchie en prestaties Cache, vervangingsbeleid, drie soorten misses
- Multicore en synchronisatie MESI, atomaire instructies, geheugenbarrières
- GPU-programmeren Warps, gedeeld geheugen, coalescing, occupancy
- AI-hardware en softwarestack Inferentie vs training, kwantisatie, roofline
- Embedded systemen en firmware GPIO, UART/SPI/I2C, RTOS
- Interfaces en busstandaarden PCIe, USB, SerDes, CXL
- Prestatiemeting en profiling Wet van Amdahl, CPI, knelpunten
- Hardwarebeveiliging Side channels, secure boot, TEE, PUF
- Energiebeheer (softwaregestuurd) DVFS, power gating, slaaptoestanden