HDLForge problem library

Hardware Design Practice Problems

Browse the complete HDLForge problem set. Each problem has its own crawlable page with the task, constraints, concepts and related practice, while the interactive editor remains available from HDLForge.

RTL Design

Study the RTL Design topic guide

2:1 MultiplexerEasy · Verilog / SystemVerilog / VHDLParameterized CounterEasy · Verilog / SystemVerilog / VHDLPriority EncoderMedium · Verilog / SystemVerilog / VHDLSynchronous FIFOHard · Verilog / SystemVerilog / VHDLShift RegisterEasy · Verilog / SystemVerilog / VHDLRising Edge DetectorEasy · Verilog / SystemVerilog / VHDL4-Request Priority ArbiterMedium · Verilog / SystemVerilog / VHDLSmall Register FileMedium · Verilog / SystemVerilog / VHDL8-bit LFSRMedium · Verilog / SystemVerilog / VHDLProgrammable Clock DividerMedium · Verilog / SystemVerilog / VHDLReady/Valid Skid BufferHard · Verilog / SystemVerilog / VHDLElastic Pipeline RegisterMedium · Verilog / SystemVerilog / VHDLAsynchronous-Assert Reset SynchronizerMedium · Verilog / SystemVerilog / VHDLBinary to Gray CounterMedium · Verilog / SystemVerilog / VHDLSimple Dual-Port RAMMedium · Verilog / SystemVerilog / VHDLOne-Hot Traffic-Light FSMMedium · Verilog / SystemVerilog / VHDL3-to-8 DecoderEasy · Verilog / SystemVerilog / VHDL4-Way One-Hot MultiplexerMedium · Verilog / SystemVerilog / VHDL16-bit Magnitude ComparatorEasy · Verilog / SystemVerilog / VHDL8-bit Barrel ShifterMedium · Verilog / SystemVerilog / VHDLLeading-Zero CounterMedium · Verilog / SystemVerilog / VHDL8-bit Population CountMedium · Verilog / SystemVerilog / VHDLFour-Input Min/MaxMedium · Verilog / SystemVerilog / VHDLEven-Parity GeneratorEasy · Verilog / SystemVerilog / VHDLRegister with Clock EnableEasy · Verilog / SystemVerilog / VHDLToggle Flip-FlopEasy · Verilog / SystemVerilog / VHDLSticky Status FlagEasy · Verilog / SystemVerilog / VHDLPulse StretcherMedium · Verilog / SystemVerilog / VHDL4-Cycle Delay LineMedium · Verilog / SystemVerilog / VHDLSerial-to-Parallel ReceiverMedium · Verilog / SystemVerilog / VHDL1011 Sequence DetectorMedium · Verilog / SystemVerilog / VHDLRequest/Acknowledge ControllerMedium · Verilog / SystemVerilog / VHDLPedestrian Crossing FSMMedium · Verilog / SystemVerilog / VHDLTimeout and Retry FSMHard · Verilog / SystemVerilog / VHDLPacket Header Parser FSMHard · Verilog / SystemVerilog / VHDLFour-Beat Burst ControllerMedium · Verilog / SystemVerilog / VHDLVending Machine FSMMedium · Verilog / SystemVerilog / VHDLStart/Busy/Done ControllerEasy · Verilog / SystemVerilog / VHDLCounted Synchronous FIFOHard · Verilog / SystemVerilog / VHDLFIFO Almost-Full / Almost-Empty FlagsMedium · Verilog / SystemVerilog / VHDLFirst-Word Fall-Through BufferHard · Verilog / SystemVerilog / VHDLFIFO Overflow / Underflow Sticky FlagsMedium · Verilog / SystemVerilog / VHDLTwo-Entry Elastic BufferHard · Verilog / SystemVerilog / VHDLPacket FIFO Boundary TrackerMedium · Verilog / SystemVerilog / VHDLCircular Sample BufferMedium · Verilog / SystemVerilog / VHDLSingle-Entry Bypass BufferHard · Verilog / SystemVerilog / VHDLRISC-V Program CounterEasy · SystemVerilogRISC-V Instruction DecoderEasy · SystemVerilogRISC-V Register FileMedium · SystemVerilogRISC-V Immediate GeneratorMedium · SystemVerilogRISC-V ALUMedium · SystemVerilogRISC-V Branch ControlMedium · SystemVerilogRISC-V Load/Store ControlMedium · SystemVerilogIntegrate the 32-bit RISC-V CoreHard · SystemVerilogUART Baud Tick GeneratorEasy · SystemVerilogUART TX Frame ShifterEasy · SystemVerilogUART Transmit ControllerMedium · SystemVerilogUART RX Start-Bit DetectorEasy · SystemVerilogUART RX Data ShifterMedium · SystemVerilogUART Receive ControllerMedium · SystemVerilogIntegrate the UART ControllerHard · SystemVerilogAXI-Lite Register BankEasy · SystemVerilogAXI-Lite AW Channel CaptureMedium · SystemVerilogAXI-Lite W Channel CaptureMedium · SystemVerilogAXI-Lite Write CommitMedium · SystemVerilogAXI-Lite B Response ChannelMedium · SystemVerilogAXI-Lite AR Channel CaptureMedium · SystemVerilogAXI-Lite R Response ChannelMedium · SystemVerilogIntegrate the AXI4-Lite SlaveHard · SystemVerilogAsync FIFO Dual-Port MemoryEasy · SystemVerilogAsync FIFO Binary PointersMedium · SystemVerilogBinary-to-Gray Pointer ConversionEasy · SystemVerilogSynchronize Gray PointersMedium · SystemVerilogAsync FIFO Empty DetectionEasy · SystemVerilogAsync FIFO Full DetectionHard · SystemVerilogPer-Domain Reset SynchronizerMedium · SystemVerilogIntegrate the Asynchronous FIFOHard · SystemVerilogIF/ID Pipeline RegisterMedium · SystemVerilogID/EX Pipeline RegisterMedium · SystemVerilogEX Forwarding UnitHard · SystemVerilogLoad-Use Hazard DetectorHard · SystemVerilogBranch Redirect and FlushMedium · SystemVerilogWriteback Result SelectEasy · SystemVerilogPipeline Hazard Control IntegrationHard · SystemVerilogCache Address DecodeMedium · SystemVerilogCache Hit DetectionMedium · SystemVerilogCache Line StoreHard · SystemVerilogCache Miss / Refill FSMHard · SystemVerilogFour-Beat Refill CounterMedium · SystemVerilogDirect-Mapped Cache ControllerHard · SystemVerilog2-bit Saturating CounterEasy · SystemVerilogBranch History TableMedium · SystemVerilogBranch Target BufferHard · SystemVerilogPredicted Next-PC SelectEasy · SystemVerilogMisprediction DetectionMedium · SystemVerilogBranch Predictor TopHard · SystemVerilogSoC Address DecoderMedium · SystemVerilogBoot ROMEasy · SystemVerilogWord-Addressed Data RAMMedium · SystemVerilogMemory-Mapped GPIOMedium · SystemVerilogMachine Timer PeripheralMedium · SystemVerilogInterrupt ControllerMedium · SystemVerilogSmall RISC-V SoC IntegrationHard · SystemVerilogVector Register FileMedium · SystemVerilogSIMD Execute Pipeline RegisterEasy · SystemVerilogDMA Control RegistersMedium · SystemVerilogDMA Address GeneratorMedium · SystemVerilogDMA Read ChannelHard · SystemVerilogDMA Write ChannelHard · SystemVerilogDMA Transfer CounterMedium · SystemVerilogDMA Transfer ControllerHard · SystemVerilogAXI Crossbar Address DecoderMedium · SystemVerilogTwo-Master Round-Robin ArbiterMedium · SystemVerilogAXI Request RouterHard · SystemVerilogAXI Write Ownership LockHard · SystemVerilogAXI Response RouterHard · SystemVerilogAXI Decode Error ResponderMedium · SystemVerilog2x3 AXI-Lite Crossbar TopHard · SystemVerilogPeripheral Reset ControllerMedium · SystemVerilogAPB Peripheral DecoderMedium · SystemVerilogAPB Read/Response MultiplexerMedium · SystemVerilogAPB GPIO PeripheralMedium · SystemVerilogAPB Timer PeripheralMedium · SystemVerilogUART Register BlockMedium · SystemVerilogAPB Peripheral Subsystem TopHard · SystemVerilogI²C START / STOP DetectorMedium · SystemVerilogI²C Address MatcherEasy · SystemVerilogI²C Byte ReceiverMedium · SystemVerilogI²C ACK / NACK DriverMedium · SystemVerilogI²C Byte TransmitterMedium · SystemVerilogI²C Register PointerMedium · SystemVerilogI²C Clock-Stretch ControlEasy · SystemVerilogMemory-Mapped I²C Register SlaveHard · SystemVerilog

SystemVerilog

Study the SystemVerilog topic guide

SVA

Study the SVA topic guide

UVM

Study the UVM topic guide

Protocols

Study the Protocols topic guide

FPGA

Study the FPGA topic guide

Accelerators

Study the hardware accelerator design guide

Signed INT8 Multiply-AccumulateEasy · Verilog / SystemVerilogFour-Lane INT8 Dot ProductMedium · Verilog / SystemVerilogEight-Lane Reduction AdderMedium · Verilog / SystemVerilogReLU with 8-bit SaturationMedium · Verilog / SystemVerilogSystolic Array Processing ElementHard · Verilog / SystemVerilogValid-Tagged Pipelined MultiplierHard · Verilog / SystemVerilog32-bit Population CountMedium · Verilog / SystemVerilogFour-Lane Signed Vector MaximumMedium · Verilog / SystemVerilogQ1.7 Fixed-Point MultiplierHard · Verilog / SystemVerilogValid-Ready Streaming AccumulatorHard · Verilog / SystemVerilog2x2 Matrix Multiply DatapathHard · Verilog / SystemVerilogThree-Tap INT8 ConvolutionMedium · Verilog / SystemVerilogSigned Fixed-Point MACMedium · Verilog / SystemVerilogFour-Tap FIR DatapathMedium · Verilog / SystemVerilogSigned Saturation StageHard · Verilog / SystemVerilogMatrix MAC Processing ElementMedium · Verilog / SystemVerilogTwo-Element Dot ProductEasy · Verilog / SystemVerilog2x2 Input Tile RegistersMedium · Verilog / SystemVerilogMatrix Compute ControllerMedium · Verilog / SystemVerilogMatrix Result BufferMedium · Verilog / SystemVerilog2x2 Matrix-Multiply AcceleratorHard · Verilog / SystemVerilogThree-Row Line BufferMedium · Verilog / SystemVerilog3x3 Sliding WindowMedium · Verilog / SystemVerilogNine-Tap Convolution MACHard · Verilog / SystemVerilogConvolution Valid PipelineEasy · Verilog / SystemVerilog8-bit Output ClampMedium · Verilog / SystemVerilogStreaming 3x3 Convolution AcceleratorHard · Verilog / SystemVerilogSIMD Lane ALUMedium · Verilog / SystemVerilogFour-Lane SIMD DatapathMedium · Verilog / SystemVerilogVector Mask MergeEasy · Verilog / SystemVerilogVector Reduction UnitMedium · Verilog / SystemVerilogFour-Lane SIMD Execution UnitHard · Verilog / SystemVerilogMemory-Copy DMA EngineHard · Verilog / SystemVerilog