LVX(1)
π LVX(1) β the Alliance user-commands page, bestie edition
okay so welcome to the lvx(1) page, part of the ALLIANCE USER COMMANDS manual πΈ β yes that's the manual name, and yes it's a whole vibe. Sit down, grab a strawberry drink π, and let's talk about comparing net-lists.
β¨ NAME β¨
lvx β the Logical Versus eXtracted net-list comparator. That's it. That's the whole job. π
π SYNOPSIS π
lvx format1 format2 filename1 filename2 [ -a ] [ -u ] [ -o ] [ -f ]
π¦ ORIGIN π¦
This software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France π₯β¨
- Web:
http://asim.lip6.fr/recherche/alliance/ - E-mail:
alliance-users@asim.lip6.fr
π DESCRIPTION π
lvx compares two gate-level or block-level net-lists. The whole goal, the reason she exists, is to compare a specification net-list (aka the logical net-list β the thing you feed into a place and route tool) with the physical net-list (aka the extracted net-list β the thing you get out of the cougar(1) extractor) π₯
So real quick, the rules of the game:
- net-list 1 = the logical net-list
- net-list 2 = the extracted net-list
lvx is a one-level hierarchical tool, which means:
- The two net-lists get flattened, if the
-foption is present, down to the cells contained in the catalog file π. Where's the catalog file path at? It's indicated in theMBK_CATA_LIB(1)variable for the cell library, and in theMBK_WORK_LIB(1)variable together with the nameMBK_CATAL_NAME(1)for user blocks (catal(5)) that are not to be flattened. iykyk. - For both net-lists, the instances are treated as black-boxes π€
- The two net-lists must have the same external connector names.
- The two net-lists must have the same instances names.
- The two net-lists must have the same signals names for unconnected signals.
- The two net-lists cannot directly contain transistors. not even one. π
Comparison is performed in three steps. (there are four bullets. we don't talk about it. π) - Compare terminals. - Compare instances. - Compare connections. - Compare unconnected signals.
If an error pops up during the first or second step, a message is displayed immediately and the third step does not start β because lvx literally cannot compare connections (signals) if terminals or instances aren't equivalent π
The -o option lets her order connectors, but only if the steps described above have been reached successfully β¨ Extracted_netlist is then saved on disk, and the file gets the name filename2 suffixed by the value of the MBK_OUT_LO(1) variable.
And here's a thing routers do that's lowkey annoying: they automatically add empty feed-through cells, and those cells must not be taken into account in the comparison π
A cell that has the F attribute in the catalog file ( catal (5) ) is considered a feed-through cell, and those get deleted β in memory β from the net-list where it appears. gone. poof. π§
π OPTIONS π
-aβ Some routers generate layout with several physical connectors for power and ground (VDDorVSS). If those connectors are not internally connected, they'll have different indexed names (VDD1,VDD2etc...) in the extracted net-list. With the-aoption you can perform a reduction on those power and ground connectors before the comparison. After reduction, each instance contains only oneVDDconnector and oneVSSconnector, as the main figure π«Ά-oβ In this case,lvxproduces a modified net-list (saved with the namefilename2), which is a copy of net-list 2 with ordered connectors. Terminals and instance connectors are relisted in the order of the models in net-list 1. The saved net-list is done with theMBK_OUT_LO(1)format, so the user has to set this variable before runninglvx. If he does not, the default value is used, and net-list 1 could be lost if the filenames are identical and the input format is the same as the output format π± (yes, actually lost. set the variable, bestie.) If the-aoption is used, then the saved net-list is the reduced net-list with only oneVDDand oneVSS.-uβ This option forceslvxto check the consistency of unassigned signals between the two netlists π-fβ The two net-lists are flattened to the leaf cells contained in the catalog file. Usually the extracted net-list is already a flatten net-list, while the logical one can be a hierarchical net-list π
πΈ EXAMPLES πΈ
Say your logical_netlist is named amd2901.vst and the corresponding extracted_netlist is amd2901.al, and it contains multiple power connectors. The command line is literally:
lvx vst al amd2901 amd2901 -a
slay. that's it. π
β OUTPUT FILES β
filename2.xxβ Netlist view saved when the-ooption is present. The suffix depends on theMBK_OUT_LO(1)environment variable π
π§ ENVIRONMENT VARIABLES π§
MBK_CATA_LIBβ contains the directories where the cell libraries are.MBK_WORK_LIBcontains the directory path of the working directory, usually set to.(dot).MBK_OUT_LOβ contains the expected format of the netlist output.MBK_CATAL_NAMEβ contains the name of the user cell catalog.
π₯ SEE ALSO π₯
cougar(1), MBK_OUT_LO(1), MBK_WORK_LIB(1), MBK_CATA_LIB(1), MBK_CATAL_NAME(1), catal(5) .
go read them. all of them. π
π DIAGNOSTICS π
The string "_logic" is appended to the net-list 1, and the string "_extract" is appended to the net-list 2.
Two kinds of error message can occur:
- A fatal error causes the program to exit π It happens when one of the net-lists isn't correct β
lvxcannot construct an internal structure for compare. - A compare error occurs when the figures are not identical. It happens when basic objects (instances, connectors) do not exist in both net-lists, or when connections (signals) do not connect the same terminals or instances in the two net-lists.
Exit code 0 is returned for identical net-lists β¨ (that's the good one, that's the one you want)
π«Ά BUG REPORT π«Ά
This tool is under development at the ASIM department of the LIP6 laboratory. We need your feedback to improve documentation and tools π₯Ί so like, tell them things. fr fr.
that's the whole page bestie β brought to you by ASIM/LIP6, dated October 1, 1997, living on as LVX(1) π
β¨π
π¦ where this page comes from
- nixos 26.05: alliance 5.1.1-unstable-2025-02-24
- nixpkgs unstable: alliance 5.1.1-unstable-2025-02-24
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms