<@U016EM8L91B> <@U016HSALFAN> <@U01634FSETZ> Curre...
# verification-be
m
@User @User @User Currently, the openlane flow performs LVS on the maglef views which may miss some problems. In my attempts to perform device level LVS, so far we've discovered the following errors which have already been fixed: 1. missing terminals in the cdl libraries 2. errors extracting mosfet capacitors 3. missing poly resistors in the magic rule file The current hurdle with device LVS is that magic extracts basic devices as X-subcircuits, but the devices in the cdl libraries are basic M-devices. Is there a standard method to resolve this?
t
The usual method to resolve this is to use the .spice files, not the .cdl files. There is another way, which is to set the extraction style in magic to "extract style ngspice(orig)", which will extract transistors as "M" devices. The problem arises from differences between spectre and ngspice; in ngspice the models are definitely subcircuits, so I think that all LVS should be done on netlists using subcircuits for the primitive devices, and if there are no such netlists, then we should be making them available.
m
@Tim Edwards Thanks for the advice. I'll switch to the spice library.
@Tim Edwards LVS with the spice library does go somewhat smoother. There are a few issues that I'll log later, but I noticed that the problem with parallel series circuits that I had with the CDL doesn't show up with the spice libraries. I looked at the spice libraries and it looks like the subcircuits are extracted data! (Although maybe a slightly older version of the tech file). Is this correct? Wouldn't that make LVS somewhat meaningless?
t
@Mitch Bailey: Well, the idea here is that those were extracted by themselves, and if we trust that, then you can compare against anything that you might have done in the layout to mess up that device, like shorting across it or something.