Chargement…
Chargement…
SystemVerilog is used here to verify Verilog circuits. The design under test (DUT) is provided: write a testbench with stimulus and self-checking assertions.
0/70 exercises completed
AND gate testbench
SystemVerilogWrite a self-checking testbench that covers the complete truth table of an AND gate.
2-to-1 multiplexer testbench
SystemVerilogAutomatically verify both data paths and both selector values.
4-bit counter testbench
SystemVerilogBuild a clock and verify asynchronous reset, enable, counting and wrap-around.
Testbench: OR gate
SystemVerilogVerify all four rows of an OR gate truth table.
Testbench: XOR gate
SystemVerilogVerify the truth table and both cases where exactly one input is active.
Testbench: Inverter gate
SystemVerilogVerify that the output is inverted for both input values.
Complete Testbench: XOR gate
Testbench: NAND gate
SystemVerilogVerify the negated product, especially the two-input-high case.
Complete Testbench: Inverter gate
Testbench: NOR gate
SystemVerilogVerify the low output when an input is active and the high idle output.
Complete Testbench: NAND gate
Testbench: 2-to-4 decoder
SystemVerilogVerify one-hot decoding and the enable behavior.
Complete Testbench: NOR gate
Testbench: 4-bit comparator
SystemVerilogVerify less-than, equal and greater-than relations on representative values.
Complete Testbench: 2-to-4 decoder
Testbench: 4-bit parity generator
SystemVerilogVerify even parity for zero, an odd value and a two-bit value.
Complete Testbench: 4-bit comparator
Testbench: Half adder
SystemVerilogVerify sum and carry for all four input pairs.
Complete Testbench: 4-bit parity generator
Testbench: 1-bit full adder
SystemVerilogVerify sum and carry with and without an input carry.
Complete Testbench: Half adder
Testbench: 4-bit adder
SystemVerilogVerify carries, zero operands and addition overflow.
Complete Testbench: 1-bit full adder
Testbench: 4-bit subtractor
SystemVerilogVerify difference and borrow for subtractions with and without borrow.
Complete Testbench: 4-bit adder
Testbench: 4-bit priority encoder
SystemVerilogVerify most-significant-bit priority and the no-request case.
Complete Testbench: 4-bit subtractor
Testbench: 7-segment decoder
SystemVerilogVerify digits 0, 1, 8 and an out-of-range value.
Complete Testbench: 4-bit priority encoder
Testbench: 4-bit shifter
SystemVerilogVerify left and right shifts with discarded outgoing bits.
Complete Testbench: 7-segment decoder
Testbench: 4-bit enabled register
SystemVerilogVerify asynchronous reset, capture and hold while enable is disabled.
Complete Testbench: 4-bit shifter
Testbench: Serial shift register
SystemVerilogVerify serial insertion and bit progression across several edges.
Complete Testbench: 4-bit enabled register
Testbench: Rising-edge detector
SystemVerilogVerify that a one-cycle pulse appears only on a rising transition.
Complete Testbench: Serial shift register
Testbench: Enabled D flip-flop
SystemVerilogVerify rising-edge capture and hold when enable is low.
Complete Testbench: Rising-edge detector
Testbench: 4-bit down counter
SystemVerilogVerify reset, hold and wrap-around from zero to fifteen.
Complete Testbench: Enabled D flip-flop
Testbench: Modulo-10 counter
SystemVerilogVerify the decimal sequence and return to zero after nine.
Complete Testbench: 4-bit down counter
Testbench: 4-bit ring counter
SystemVerilogVerify the active-bit rotation and cyclic return.
Complete Testbench: Modulo-10 counter
Testbench: 4-bit LFSR
SystemVerilogVerify the pseudo-random sequence and the non-zero state after reset.
Complete Testbench: 4-bit ring counter
Testbench: Pulse stretcher
SystemVerilogVerify that an input pulse produces the defined output duration.
Complete Testbench: 4-bit LFSR
Testbench: Debounce filter
SystemVerilogVerify that an input remains stable for several cycles before acceptance.
Complete Testbench: Pulse stretcher
Testbench: 4-bit PWM
SystemVerilogVerify duty-cycle boundaries and ramp transitions.
Complete Testbench: Debounce filter
Testbench: 4-bit timer
SystemVerilogVerify loading, countdown and the completion pulse.
Complete Testbench: 4-bit PWM
Testbench: Traffic-light FSM
SystemVerilogVerify cyclic state transitions and reset to the initial state.
Complete Testbench: 4-bit timer
Testbench: 101 sequence detector
SystemVerilogVerify overlapping detection and incomplete sequences.
Complete Testbench: Traffic-light FSM
Testbench: 4-bit accumulator
SystemVerilogVerify conditional addition, hold and modulo overflow.
Complete Testbench: 101 sequence detector
Testbench: 4-bit saturating adder
SystemVerilogVerify saturation at fifteen instead of wrap-around.
Complete Testbench: 4-bit accumulator
Testbench: Binary-to-Gray converter
SystemVerilogVerify zero, maximum and multi-bit transition values.
Complete Testbench: 4-bit saturating adder
Testbench: One-hot checker
SystemVerilogVerify zero, one active position and multiple active bits.
Complete Testbench: Binary-to-Gray converter
Testbench: 5-input majority voter
SystemVerilogVerify the four-to-one and three-to-two thresholds.
Complete Testbench: One-hot checker
Testbench: 8-bit parity generator
SystemVerilogVerify even, odd and extreme data words.
Complete Testbench: 5-input majority voter
Testbench: Register with priority clear
SystemVerilogVerify clear priority over writes and the hold behavior.
Complete Testbench: 8-bit parity generator
Testbench: Majority voter: symmetry
SystemVerilogVerify decisions on profiles close to the threshold.
Complete Testbench: Register with priority clear
Testbench: 4-way round-robin arbiter
SystemVerilogVerify priority rotation after each grant and the no-request case.
Testbench: 4-word synchronous FIFO
SystemVerilogVerify FIFO order, empty, full and simultaneous operations.
Testbench: Valid/ready buffer
SystemVerilogVerify data preservation under backpressure and recovery.
Testbench: Two-cycle latency pipeline
SystemVerilogVerify exact latency and ordering of multiple transactions.
Testbench: Configurable 8-bit PWM
SystemVerilogVerify duty cycle, configuration reload and boundaries.
Testbench: Simplified UART transmitter
SystemVerilogVerify start bit, eight data bits and stop bit at the requested baud tick.
Complete Testbench: Configurable 8-bit PWM
Testbench: SPI mode-0 transmitter
SystemVerilogVerify clock edges, MSB-first order and transaction completion.
Complete Testbench: Simplified UART transmitter
Testbench: Watchdog with service pulse
SystemVerilogVerify timeout, service and alarm output.
Complete Testbench: SPI mode-0 transmitter
Testbench: One-shot generator
SystemVerilogVerify a fixed-width pulse and ignored triggers while active.
Complete Testbench: Watchdog with service pulse
Testbench: Four-cycle stability filter
SystemVerilogVerify acceptance latency and rejection of short changes.
Complete Testbench: One-shot generator
Testbench: 1101 sequence detector
SystemVerilogVerify overlap, partial overlap and absence of false positives.
Complete Testbench: Four-cycle stability filter
Testbench: 4-bit CRC calculator
SystemVerilogVerify CRC results on several words and reset between frames.
Complete Testbench: 1101 sequence detector
Testbench: 8-bit priority encoder
SystemVerilogVerify priority, validity and transitions between multiple requests.
Complete Testbench: 4-bit CRC calculator
Testbench: 4x8 register bank
SystemVerilogVerify read, write, addressing and reserved-address protection.
Complete Testbench: 8-bit priority encoder
Testbench: Synchronous reset controller
SystemVerilogVerify asynchronous reset assertion and release after two clock edges.
Complete Testbench: 4x8 register bank
Testbench: Credit counter
SystemVerilogVerify consume, return, boundary saturation and simultaneous events.
Complete Testbench: Synchronous reset controller
Testbench: Packet-length checker
SystemVerilogVerify start, counting, early end and correct length.
Complete Testbench: Credit counter
Testbench: Baud tick generator
SystemVerilogVerify division, reload and the exactly periodic pulse.
Complete Testbench: Packet-length checker
Testbench: Simple dual-port memory
SystemVerilogVerify writes, reads and independence of both ports.
Complete Testbench: Baud tick generator
Testbench: Handshake controller
SystemVerilogVerify valid/ready, data hold and transaction completion.
Complete Testbench: Simple dual-port memory
Testbench: Synchronous FIFO
SystemVerilogVerify ordering, empty/full flags and simultaneous operations.
Testbench: Single-port RAM 256x8
SystemVerilogVerify synchronous writes and reads at several addresses.
Testbench: Dual-port RAM 128x16
SystemVerilogVerify writes on port A and independent reads on port B.
Testbench: Interrupt generator
SystemVerilogVerify pulse width and interrupt-vector capture in the status register.
Testbench: UART transmitter
SystemVerilogVerify start, data and stop bits together with the busy signal.
Testbench: Tick-driven stopwatch timer
SystemVerilogVerify reset, loading, countdown and the completion pulse.
Complete Testbench: UART transmitter
Testbench: Memory arbiter
SystemVerilogVerify rotating priority, one-hot grants and respect for backpressure.
Complete Testbench: Tick-driven stopwatch timer
Testbench: Signed multiplier
SystemVerilogVerify signed products, zero and representable boundaries.
Complete Testbench: Memory arbiter
Testbench: Modulo-m adder-subtractor
SystemVerilogVerify sum and difference reduction within the modulo interval.
Complete Testbench: Signed multiplier
Testbench: Nonrestoring divider
SystemVerilogVerify quotient, remainder and explicit division-by-zero behavior.
Complete Testbench: Modulo-m adder-subtractor