Once the architecture and interfaces are frozen, RTL design is where a chip stops being a document and starts being code. RTL, register-transfer-level, describes a design as registers and the logic that moves data between them, written in a hardware description language like Verilog, SystemVerilog, or VHDL. It's the layer everything downstream, including synthesis, verification, and physical design, is built from.
RTL isn't just "code that simulates correctly." A synthesis tool has to be able to translate it into actual gates, which means designers write to a deliberately restricted, synthesizable subset of the language: no arbitrary delays, no unbounded loops, none of the purely behavioral constructs a testbench is free to use. Code that simulates fine but uses a non-synthesizable construct creates a silent mismatch between what was verified and what actually gets built. It's one of the more insidious bug classes to catch, because everything looks correct right up until synthesis.
The rest of this guide is for registered members. Registration is free and takes a minute. You come back to this page afterwards.