Learn to build chips by watching your own code run.
Write Verilog and see it animate. Change a value and watch the circuit respond. Follow a plan built for your role or your interview date. It's free, with no account.
68lessons
53animations
42bugs to find
37quiz questions
Binary, hex and two's complementLogic gates and truth tablesBoolean algebra and De MorganKarnaugh mapsWhat a gate is made of: CMOSMultiplexersDecoders and priority encodersHalf, full and ripple addersCarry look-ahead and prefix addersSubtractors, comparators and an ALUBarrel shifters and glitchesModules, ports and hierarchywire, reg, logic and 4-state valuesassign and always blocksBlocking and non-blocking assignmentsAccidental latchesParameters and generateYour first self-checking testbenchReading waveforms like an engineerSR and D latchesThe D flip-flopSetup and hold: the two promisesSynchronous and asynchronous resetsEnables and clock gatingShift registersLFSRsUp, down and loadable countersRing, Johnson and Gray countersDivide by 2, 4 and any even numberOdd division with 50% duty cycleEdge detectors and pulse generatorsStates, transitions and outputsMoore and Mealy machinesWriting FSMs: encoding and styleDetecting 1101, with overlapNon-overlapping detectionTraffic light and vending machineDebugging and safe FSMsRegister filesUsing SRAM in RTLSynchronous FIFOFIFO depth calculationValid/ready handshakesSkid buffersMultipliers and Booth encodingFixed-point arithmeticPipeliningRetiming and area-speed trade-offsThe timing pathClock skew and jitterFixing violationsConstraints, false and multicycle pathsMetastability and MTBFThe two-flop synchronizerPulse crossing fast to slowMulti-bit transfers and handshakesGray code pointersAsynchronous FIFOReset synchronizers and RDCWhat synthesis does to your codeLint and code qualityLow-power RTLArbitersMinor project: UART transmitter and receiverMinor project: SPI controllerMajor project: small RISC-style CPUIndustry project: streaming packet engineInterview patterns
A FIFO is a ring. Turn it.
Drag it, change the clocks, and watch the pointers chase each other.
Try one now
Write a state machine and watch it runYour code drives the diagram, and it stops at the exact clock where it goes wrong.Find the bug42 broken designs. Read what goes wrong, find the line, and learn why it fails.Scroll through a protocol, clock by clockAXI, APB, SPI, I2C and UART, with the waveform following you.Have an interview soon?Pick your role and the days left, and get the key concepts in order.
Which role do you want?
RTL Design EngineerVerification EngineerPhysical Design EngineerDFT EngineerAnalog DesignerDevice EngineerMemory DesignerPost-Silicon Validation EngineerFPGA Engineer
All 16 courses
FoundationsPlanned6 topics plannedDigital DesignReady to study68 lectures3 minor projects2 major projects1 industry projectRTL and SystemVerilogPlanned6 topics plannedDevice Physics and ModellingPlanned7 topics planned1 minor projectSPICE SimulationPlanned8 topics planned1 major projectAnalog and Mixed SignalPlanned8 topics plannedCustom Layout and MemoryPlanned7 topics planned1 industry projectLogic Synthesis and STAPlanned7 topics plannedVerificationPlanned8 topics planned1 major project1 industry projectDesign for TestPlanned6 topics planned1 major projectPhysical DesignPlanned9 topics planned1 industry projectPost-Silicon ValidationPlanned7 topics planned1 major projectFPGAPlanned6 topics planned1 major projectProtocols LibraryPlanned15 topics plannedComputer Architecture and AI HardwarePlanned6 topics plannedFabrication, Packaging and CareersPlanned7 topics planned