LVX(1)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… 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 πŸ₯βœ¨


πŸ‘‘ 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 -f option is present, down to the cells contained in the catalog file πŸ“š. Where's the catalog file path at? It's indicated in the MBK_CATA_LIB(1) variable for the cell library, and in the MBK_WORK_LIB(1) variable together with the name MBK_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 ( VDD or VSS ). If those connectors are not internally connected, they'll have different indexed names ( VDD1 , VDD2 etc...) in the extracted net-list. With the -a option you can perform a reduction on those power and ground connectors before the comparison. After reduction, each instance contains only one VDD connector and one VSS connector, as the main figure 🫢
  • -o β€” In this case, lvx produces a modified net-list (saved with the name filename2 ), 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 the MBK_OUT_LO(1) format, so the user has to set this variable before running lvx . 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 -a option is used, then the saved net-list is the reduced net-list with only one VDD and one VSS .
  • -u β€” This option forces lvx to 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 -o option is present. The suffix depends on the MBK_OUT_LO(1) environment variable πŸŽ€

🧚 ENVIRONMENT VARIABLES 🧚

  • MBK_CATA_LIB β€” contains the directories where the cell libraries are. MBK_WORK_LIB contains 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 β€” lvx cannot 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