LVS
Layout vs Schematic (or LVS) is an important verification step.
After the design has been finished and we have the GDS2 files that we can send to the foundry, we want to check that the design is the same as the input that was described by the HDL or schematic.
In the OpenLane tool, at the end we have the LVS step. The netlist is extracted using Magic A tool called Netgen can compare this extracted netlist with the one we get after the synthesis step.
You will get some reports in the run directory. In the inverter example I have this file: results/lvs/inverter.lvs.log
The end of the file shows the input and output are equivalent.
Subcircuit pins:
Circuit 1: inverter |Circuit 2: inverter
-------------------------------------------|-------------------------------------------
in |in
out |out
VGND |VGND
VPWR |VPWR
---------------------------------------------------------------------------------------
Cell pin lists are equivalent.
Device classes inverter and inverter are equivalent.
Circuits match uniquely.
The most common types of LVS errors I’ve seen with OpenLane are:
- when power supplies aren’t connected for some reason,
- there is a short circuit during routing.
Verification essentially tries to show that the final design meets the designer’s intention. This takes various stages:
- simulate the initial design (HDL or schematic) to show it behaves in the intended way
- synthesise this down to a netlist,
- simulate this again to show it still works - or use other tools such as formal proof to show it is equivalent to the original design
- place and route it to get a final design
- use LVS to show that this design is still the same as the netlist from synthesis
- use other steps (simulation, or preferably STA) to show the final design performs well enough
Course feedback
ASICs are a chunk of the stack that just seems so impenetrable because typically you need enormous amounts of money and access to PDKs and Cadence and all this stuff. It seemed like an awesome way to fill in that missing piece of how computers work top to bottom.
Ben Newhouse (digital course)