SPI(5)
β¨ SPI(5) β¨
okay bestie, gather round π this is the SPI(5) page from the File Formats corner of the manual, and it's all about spi β the Alliance parser and driver for Spice netlists. yes, both. it's giving dual-threat. π
π NAME π
spi β Alliance parser and driver for Spice netlist.
πΈ 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
π¦ FILES π¦
The description of a netlist foo must be contained in a .SUBCKT of a file named foo.spi. This description can include other .SUBCKTs that must be in the same file, or in files included with the command .INCLUDE in the source file.
Recognized elements are:
- Resistances
- Capacitances
- Instances
- MOS transistors
Others elements are not considered. ngl, if it's not on the list, it's not getting in. π
Nodes can be either numbered or nameed. It's possible to assign a name to a node which is designated by a number with the directive
* NET number = name
in the .SUBCKT. The word NET can be replaced by positioning the environment variable MBK_SPI_NETNAME. Names are used to named the signals and the connectors in the LOFIG.
On the .SUBCKT interface, nodes of the same name followed by a period and a number are considered to be on the net, even if no connected in the circuit. For example:
.SUBCKT nand2 in out out.1 out.2 vss vdd out.3
The nodes out, out.1, out.2 and out.3 are considered to be the same signal of the Alliance LOFIG. This feature can be turned off if the environment variable MBK_SPI_MERGE is set, and the period can be replaced by another character with the environment variable MBK_SPI_SEPAR.
No particular information is needed to build a LOFIG from a .SUBCKT β the parser rebuild all signals, even they contains many resistances and capacitances. If names are not provided, the parser will create then in order to provide a valid lofig. it literally handles all of that for you, no cap. π
π DRIVER π
The driver creates a Spice netlist of the LOFIG passed as a parameter. The file contain a single .SUBCKT representing the figure and commands .INCLUDE with name of instances contained in the LOFIG. Nodes are number named with the directive * NET, or strings, depending on MBK_SPI_NAMEDNODES. A comment at the beginning of the file represents the interface of the LOFIG. This comment is not used by the parser.
Environment variable considered are:
MBK_SPI_MODELMBK_SPI_NETNAMEMBK_SPI_NAMEDNODES
π§ PARSER π§
The parser load all .SUBCKT in memory, even those in files included with the command .INCLUDE, until the required LOFIG is loaded. For each .SUBCKT loaded, the parser build the equipotentials with both nodes of resistances on the same net and both nodes of capacitances on differents net unless more information is given. The RCN library is used to handle resistances and capacitances.
As the LOWIRE can contain a resistance and a capacitance, the parser groups a resistance and two capacitances in a single LOWIRE if the following conditions are met:
- The resistance is named
nameand the two capacitances are namedname1andname2 - The two capacitances must have the same value
- The two capacitances must be between the net of the resistance and VSS
The driver supports this feature. slay. π₯
Environment variable considered are:
MBK_SPI_MODELMBK_SPI_NETNAMEMBK_SPI_SEPARMBK_SPI_MERGEMBK_SPI_FILEMBK_SPI_VERBOSEMBK_SPI_ONE_NODE_NORCMBK_SPI_NO_AFF_UNK
π ENVIRONMENT VARIABLES π
MBK_SPI_MODELβ File name where transistors models are described. Syntax for file is:
MODELNAME N|P [FAST] [HVIO]
Blank lines are allowed, and line comment begin with a #.
MBK_SPI_NETNAMEβ Comment used to name the nodes. Default isNET.MBK_SPI_SEPARβ Character used to separate a name from a node number on the interface of the.SUBCKT. The parser considers nodes of the same name to be on the same equipotential. Default is..MBK_SPI_NOMERGEβ If this variable is set, the parser does not merge interface nodes of the same name, but different number, on the same equipotential.MBK_SPI_FILEβ If this variable is set, the name of the files opened are displayed on the error output.MBK_SPI_VERBOSEβ If this variable is set, display debug various information on the error output.MBK_SPI_ONE_NODE_NORCβ If this variable is set, an RCN view is not created for a net containing only one node.MBK_SPI_NO_AFF_UNKβ Default behaviour of Spice parser is to display an error message when an unknown element is read in the input file. Setting this variable prevent this display. Useful when file contain command for Spice simulator.MBK_SPI_NAMEDNODESβ When this environment variable is set, spice netlist's nodes are named using one of the following convention, if signal name is set or no, or if signal has an RCN view:"SIGNAL NAME" $MBK_SEPAR "RCN NODE""SIGNAL NAME"SIG "SIGNAL INDEX" $MBK_SEPAR "RCN NODE"SIG "SIGNAL INDEX"
$MBK_SEPAR is a single character defined by a environment variable with the same name.
π«Ά heads up bestie: theFILESsection up there talks aboutMBK_SPI_MERGEturning the merge feature off, and then theENVIRONMENT VARIABLESlist hasMBK_SPI_NOMERGEdoing the not-merging thing. i'm just the messenger, i'm telling you exactly what the page says. π
β EXAMPLE β
This is an example of a file generated by the Spice driver.
* Spice description of gxor
* Spice driver version 700
* Date ( dd/mm/yyyy hh:mm:ss ): 29/03/1999 at 17:43:53
* INTERF a b s vdd vdd vdd vdd vss vss vss vss
.INCLUDE mx2_y.spi
.INCLUDE ndrvp_y.spi
.subckt gxor 24 42 49 52 53 61 54 63 64 71 72
* NET 1 = implicit
* NET 4 = auxsc1
* NET 13 = auxsc3
* NET 26 = a
* NET 40 = b
* NET 49 = s
* NET 52 = vdd
* NET 65 = vss
xauxsc1 64 65 53 55 33 35 2 8 ndrvp_y
xs 66 70 56 60 48 50 11 21 5 9 34 36 38 45 mx2_y
xauxsc3 70 71 60 61 41 46 18 22 ndrvp_y
R2_1 4 7 6
C2_11 4 63 6.9e-15
C2_12 7 63 6.9e-15
R2_2 3 2 0.15
C2_21 3 63 7.2e-16
[----- CUT -----]
C4_51 69 63 6.525e-15
C4_52 72 63 6.525e-15
R4_6 68 69 0.001
R4_7 68 67 0.001
.ends gxor
π SEE ALSO π
Alliance(1) MBK(1) Al(1) RCN(1) MBK_SEPAR(1)
π AUTHOR π
Gregoire AVOT. Gregoire.AVOT@lip6.fr
π BUG REPORT π
This tool is under development at the ASIM department of the LIP6 laboratory. We need your feedback to improve documentation and tools.
and that's the whole page, bestie, you ate it πβ¨ this one shipped from ASIM/LIP6 on 30 March 1999, and yeah it's the SPI(5) page, so go forth and parse those netlists. π«Άπ
π¦ where this page comes from
- fedora 43: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-libs 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