LVX(1)
π lvx β Logical Versus eXtracted net-list comparator
okay bestie, welcome to lvx(1) β it lives in the ALLIANCE USER COMMANDS section and it is exactly the kind of tool that sounds scary and is actually just a vibe check for your net-lists. let's get into it π«Ά
β¨ 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. π«π·β¨ iconic lineage, no cap.
- 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 point?? compare a specification net-list (the logical net-list, aka the input you feed to a place and route tool) against the physical net-list (the extracted net-list) that you get out of the cougar(1) extractor. it's giving "did what I designed actually match what got built" π
net-list 1 is treated as the logical net-list and net-list 2 as the extracted net-list. periodt.
lvx is an one-level hierarchical tool, so here's the tea:
- The two net-list are flattened, if the
-foption is present, to the cells contained in the catalog file. the path to the catalog file is indicated in theMBK_CATA_LIB(1)variable for the cell library, and in theMBK_WORK_LIB(1)variable with the nameMBK_CATAL_NAME(1)for user blocks (catal(5)) that are not to be flattened. - For both net-list, the instances are considered as black-boxes.
- The two net-list must have the same external connectors names.
- The two net-list must have the same instances names.
- The two net-list must have the same signals names for unconnected signals.
- The two net-list cannot directly contain transistors.
bestie. those "must"s are not a suggestion. they are the law. π
Comparison is performed in three steps:
- Compare terminals.
- Compare instances.
- Compare connections.
- Compare unconnected signals.
If an error occurs during first or second step, a message is immediately displayed and the third step will not start: lvx cannot compare connections (signals) if terminals or instances are not equivalent. it literally cannot, don't ask. π
The -o option allows to order connectors if the steps described before have been reached successfully. Extracted_netlist is then saved on disk. The file get the name filename2 suffixed by the value of MBK_OUT_LO(1) variable. πΎβ¨
Routers add automatically empty feed-through cells. These cells must not be taken into account in the comparison. A cell that have the F attribute in the catalog file ( catal (5) ) is considered as feed-through cell, and are deleted, in memory, from the net-list where it appears. poof. gone. π¦
π OPTIONS π
-aβ Some routers generate layout with several physical connectors for power and ground (VDDorVSS). If those connectors are not internally connected, they will have different indexed names (VDD1,VDD2etc...) in the extracted net-list. It is possible to perform reduction on those power and ground connectors before comparison, using the-aoption. 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 user has to set this variable before runninglvx. If he does not, default value is used, and net-list 1 could be lost if filename are identical and input format same as output format. π If-aoption is used, then the saved net-list is the reduced net-list with only oneVDDand oneVSS.-uβ This option forcelvxto 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 a flatten net-list, while the logical one can be a hierarchical net-list.
πΈ EXAMPLES πΈ
With logical_netlist named amd2901.vst and the corresponding extracted_netlist as amd2901.al containing multiple power connectors, the command line is :
lvx vst al amd2901 amd2901 -a
π§ OUTPUT FILES π§
filename2.xxβ Netlist view saved when the-ooption is present. The suffixe depend on theMBK_OUT_LO(1)environment variable.
β ENVIRONMENT VARIABLES β
MBK_CATA_LIBβ contains the directories where the cell librtaries 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) .
π 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 is not correct,
lvxcannot construct 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-list, or when connections (signals) do not connect same terminals or instances in the two net-lists.
Exit code 0 is returned for identical net-lists. π slay.
π BUG REPORT π
This tool is under development at the ASIM department of the LIP6 laboratory. We need your feedback to improve documentation and tools. fr fr, they literally want your thoughts, so send them. π«Ά
okay that's the whole page bestie, you ate it π
β¨ this was the lvx(1) page from the ASIM/LIP6 crew, dated October 1, 1997 β vintage but still serving. go compare some net-lists, mwah πππ
π¦ where this page comes from
- fedora 43: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms