Stitch Flow Use Model (stitch)
Description
Stitching enables Spectre APS to plug in the parasitic elements while simulation is running. Compared to the flat RC netlist and the hierarchical RC netlist approaches, the Stitching flow has the following advantages:
- Reuse of the pre-layout simulation test-bench. There is no need to change the probe and the measure statements.
- What-if analysis powered by selective stitching.
Spectre APS stitching is enabled by options.
Parasitic File Loading Parameters
-
spf
This option specifies the to-be-stitched DSPF file and its stitching scope. The syntax isspf="scope filename". The scope can be a subcircuit or an instance. When a subcircuit is specified as the scope, the DSPF file is stitched to all the instances of that subcircuit. When an instance is specified as the scope, the DSPF file is stitched to that instance only. Multiple DSPF files can be specified for stitching by using the option multiple times.
Example:spf="mem mem.dspf"
-
dpf
This option specifies the to-be-stitched DPF file and its stitching scope. The syntax isdpf="scope filename". The scope can be a subcircuit or an instance. When a subcircuit is specified as the scope, the DPF file is stitched to all the instances of that subcircuit. When an instance is specified as the scope, the DPF file is stitched to that instance only. Multiple DPF files can be specified for stitching by using the option multiple times.
Example:dpf="X1.XPLL PLL.dpf" dpf="X1.XMEM mem.dpf"
This means that thePLL.dpffile needs to be stitched to theX1.XPLLinstance and themem.dpffile needs to be stitched to theX1.XMEMinstance. -
spef
This option specifies the to-be-stitched SPEF file and its stitching scope. The syntax isspef="scope filename". The scope can be a subcircuit or an instance. When a subcircuit is specified as the scope, the SPEF file is stitched to all the instances of that subcircuit. When an instance is specified as the scope, the SPEF file is stitched to that instance only. Multiple SPEF files can be specified for stitching by using the option multiple times.
Example:spef="adc a.spef"
Stitching Parsing Options
-
spfscale
This option specifies the scaling factor of all the elements in the parasitic files (DSPF/SPEF/DPF). For example, consider that the width of a device in the DSPF file is w=2. If spfscale=1.0e-6 is used, the actual width will be w=2.0e-6. -
spfscalec
This option specifies the scaling factor of all the capacitors in the parasitic files (DSPF/SPEF/DPF). Example, suppose a capacitor's value in the DSPF file is 2. Ifspfscalec=1.0e-15is used, the actual capacitor value will be 2.0e-15. -
spfscaler
This option specifies the scaling factor of all the resistors in the parasitic files (DSPF/SPEF/DPF). Example, suppose a resistor’s value in the DSPF file is 2. Ifspfscaler=1.0e-3is used, the actual capacitor value will bew=2.0e-3. -
spfswapterm
This option specifies the swappable terminals of a subcircuit macro-model. The syntax isspfswapterm="terminal1 terminal2 subcktname".
Example:spfswapterm="n1 n2 nch_mac"
This indicates that terminalsn1andn2ofsubckt nch_macare swappable. In general, this is applicable to devices that are modeled by subcircuits. Multiplespfswaptermstatements are supported. -
spfxtorprefix
This option specifies the prefix in the names (devices and nets) in the DSPF/SPEF/DPF file. The device names in the prelayout netlist and the DSPF/SPEF file often do not match. Thespfxtorprefixoption can be used to help match the device names. The syntax isspfxtorprefix="<substring> [<replace_substring>]".
Example:spfxtorprefix="XM X"
XX1/XM1exists in the prelayout netlist but the corresponding device name in the DSPF file isXMX1/XM1. This option will changeXMtoX. -
spfaliasterm
Sometimes the terminal names of devices in DSPF/SPEF/DPF files are different from those in the simulation model library. This happens often in the technology nodes that uses subcircuits to model devices. The syntax isspfaliasterm="<model|subckt><prelayout_term1>=<spf_alias1> <prelayout_term2>=<spf_alias2>...<prelayout_termN>=<spf_aliasN>". Multiple statements are supported.
Example:spfaliasterm="nfet_mac n1=D n2=G n3=S n4=B"
This means that in subcktnfet_mac, terminaln1corresponds to terminalDin the DSPF file,n1corresponds to terminalG,n3corresponds to terminalSandn4corresponds to terminalB. -
speftriplet
This option specifies the value that should be used for stitching in the SPEF file. This is effective only when the values in the SPEF file are represented by triplets (for instance,0.325:0.41:0.495). Default value is 2. Possible values are 1, 2 and 3. -
spfinstancesection
This option controls the backannotation of device parameters in the instance section of the DSPF file. Ifspfinstancesectionis turned off, the instance section is ignored (that is, the device parameters are not changed during stitching). Default is on. -
spfbusdelim = busdelim_schematic [busdelim_parasitic]
This option maps the bus delimiter between schematic netlist and parasitic file (i.e. DSPF, SPEF, or DPF). The option defines the bus delimiter in the schematic netlist, and optionally the bus delimiter in the parasitic file. By default, the bus delimiter of the parasitic file is taken from the parasitic file header (i.e.*|BUSBIT [],*|BUS_BIT [], or*|BUS_DELIMITER []). If the bus delimiter is not defined in the parasitic file header, you need to specify it by using thespfbusdelimoption in schematic netlist.
Example: -
spfinstarraydelim
This option specifies the supplemental bus delimiter, if more than one bus delimiter is used in the pre-layout netlist (usually for instance array indexing). This option is similar tospfbusdelim.
Selective Stitching Options
-
spfcnet
This option specifies the net that has its total capacitance stitched. All other parasitic components, say parasitic resistors, associated with this net are ignored. The full hierarchical names are required. Multiple statements are supported. Wildcards are supported.
Example:spfcnet=X1.netA
-
spfcnetfile
This option has the same functionality asspfcent.However, it accepts a text file in which all the C-only stitched nets are listed. Only one file can be specified. The syntax isspfcnetfile="filename". The format in the file is one line per net.
Example:spfcnetfile="nets.tex"
The format in the nets.tex is:netA
netB
netC
-
spfrcnet
This option specifies the name of the net to be stitched with parasitic resistors and capacitors. The other nets are stitched with lumped total capacitances. Multiple statements are supported. Wildcards are supported and you can specify multiple nets. Full hierarchical names are required.
Example:spfrcnet=netA
-
spfrcnetfile
This option has the same functionality asspfrcnet. However, it accepts a text file in which all the RC stitched nets are specified. Only one file can be specified. The syntax isspfrcnetfile="filename". The format in the file is one line per net.
Example:spfrcnetfile="nets.tex"
The format in the nets.tex is:netA
netB
netC
-
spfnetcmin
This option allows you to select the net for stitching by the value of its total node capacitance. If a net’s total node capacitance exceedsspfnetcmin, all parasitics associated with the net are stitched correctly; otherwise, only the total capacitance is added to the net node.
Example:spfnetcmin=1.0e-6
-
spfskipnet
This option specifies the net to be skipped for stitching, that is, all parasitic components of the net are not stitched. Wildcards and multiple statements are supported.
Example:spfskipnet=X1.nodeA
-
spfskipnetfile
This option allows you to specify the nets to be skipped as a list in the text file calledfile_name. The syntax isspfskipnetfile="filename". Only one file can be specified. The format in the file is one line per net.
Example:spfskipnetfile="nets.tex"
nets.texfile format is:netA
netB
netC
Stitching Message Control Option
-
spfmsglimit
This option specifies the maximum number of messages to be printed in thespfrptfile. The messages in thespfrptfile are categorized by their ID number (STITCH-ID). This option specifies the maximum number of messages for a particular type of messages by using their STITCH-ID. The syntax isspfmsglimit="number STITCH-ID_1 STITCH-ID_2". When STITCH-ID is not specified, the tool assigns the maximum message number limit to all messages categories (STITCH-IDs).
Example:spfmsglimit="10 STITCH-0010"
This tells the tool to print not more than 10 messages for the STITCH-0010 message category, in the meantime, for the other message categories, the default maximum limit of 50 messages will apply.
For additional information, see Parasitic Backannotation of DPSF/SPEF/DPF Files in the Spectre Classic Simulator, Spectre APS, Spectre X, and Spectre XPS User Guide.
Return to top