In the VLSI design flow, the Gate Level Netlist is the pivotal bridge between abstract code (RTL) and physical reality (Silicon). It is the result of the Logic Synthesis process, where high-level behavioral descriptions (like Verilog `if-else` statements or `assign` blocks) are translated into a specific set of logic gates available in the foundry's standard cell library.
A netlist is essentially a text-based representation of a circuit schematic. It defines:
Unlike RTL, which describes what the circuit does, a netlist describes how the circuit is built using components. It removes ambiguity and is the definitive guide for the Place and Route (PnR) tools.
Synthesis tools map your code to a Standard Cell Library. A unique feature of netlists is the concept of Drive Strength. A simple logic function like "AND" might have multiple versions in the library:
The synthesis tool chooses the best size based on your timing constraints (clock frequency) and power budget.
The conversion from RTL to Netlist involves three main steps:
The tool converts Verilog keywords into generic boolean logic (GTECH). For example, `c = a + b` becomes a generic adder circuit.
The tool manipulates the boolean logic to remove redundancy and flatten hierarchy. It tries to create the most efficient logic structure possible.
The generic logic is mapped to the specific standard cells provided by the foundry (e.g., TSMC 7nm or Intel 22nm). This is where timing arcs and wire delays are first estimated.
While Verilog (`.v`) is the most common format for netlists, you might also encounter:
Why do we simulate the netlist if we already simulated the RTL?
RTL simulation is ideal; it assumes zero delay. Gate Level Simulation (GLS) includes timing delays. It helps catch: