Netlist

A list of nets. Each net has a name and the set of pins that sit on it, and that is very nearly the whole data structure. Everything a board house needs in order to build the thing is in there, and everything about how the schematic looked is not.

A schematic fragment with three parts joined at a junction dot, and beside it the same connection written as a netlist entry naming the three pins The drawing The netlist R1 U1 C1 R1.2 U1.5 C1.1 VDD export what the CAD tool writes out VDD: R1.2 U1.5 C1.1 GND: U1.8 C1.2 ... wires, dots and positions no wires, no dots, no coordinates

That gap is the whole reason a tool reading the netlist is worth having. The picture on screen is one rendering of this list, drawn by a human for other humans, and the two can disagree. A junction dot missing where a wire taps another leaves two separate nets that every reviewer read as one, and by the time the design is a netlist the dot has done its work and vanished, so the netlist cannot tell you it was absent. Two separate nets look exactly like two separate nets.

That is why a handful of checks run inside the reader rather than over the netlist. wire-no-junction and dangling-endpoint name a coordinate on a sheet, because the thing they found does not survive into the list of nets and has nothing else to be called. duplicate-net-name and single-pin-net work the other way round, reading the netlist for the shapes a drawing error leaves behind in it.

Inside the engine, a netlist is also the unit that decides where a rule belongs. If a rule can be computed from the final netlist IR alone, it is an analysis check and runs the same way on every input format. If it needs something the reader normalized away, it is an input diagnostic and has to be caught while the file is being parsed. The rules and checks page works through that split.

Where the course teaches it: chapter 2 opens on the distinction and spends the rest of the chapter on the ways a drawing and its netlist disagree.