Verilog practice
Write the module, press Run, and your design is tested in the browser against expected results. When it fails you see the exact cycle, as a waveform. No account and no install. Your progress stays in this browser.
0day streak
Easy0 of 12
Medium0 of 15
Hard0 of 7
1Four gates at once22-to-1 multiplexer, 8 bits wide34-to-1 multiplexer42-to-4 decoder with enable5Full adder64-bit adder with carry7Even parity bit8Binary to Gray code9D flip-flop with synchronous reset108-bit register with enable114-bit up counter12Rising-edge detector138-to-3 priority encoder144-bit magnitude comparator15Small 8-bit ALU16Rotate left by any amount17Count the ones18Gray code back to binary194 × 4 multiplier20Decade counter with enable21Up/down counter with load22Serial in, parallel out234-bit LFSR24Johnson counter25Tick every fifth cycle26Detect both edges27Find 101 in a bit stream28Two-bit branch predictor29Traffic light controller30Round-robin arbiter31PWM generator32Button debouncer33Vending machine34Sum of the last four samples
Each problem is checked with a hidden test of up to a few hundred cycles. Expected results were made with Icarus Verilog. The checker in your browser supports one module at a time with the common synthesizable subset: no module instances, memories or initial blocks yet.