Tom
11/23/2023, 9:03 PMdin[0].t0
in the resistor extracted netlist goes to the gate of the nFET but I can'd find an equivalent path to the pFET, which aligns with the failing simulation.
My extraction procedure is as follows:
load $MAG_CELL
flatten ${CELL_NAME}_pex
load ${CELL_NAME}_pex
box values 0 0 0 0
extract all
ext2sim labels on
ext2sim
extresist tolerance 10
extresist all
ext2spice lvs
ext2spice cthresh 0
ext2spice extresist on
ext2spice -o $OUTPUT_FILE_NAME
exit
Thanks in advance!Tim Edwards
11/24/2023, 2:04 AMTom
11/24/2023, 4:23 PMTim Edwards
11/24/2023, 10:07 PMTom
11/25/2023, 3:12 AMTom
11/25/2023, 3:38 AMcommit 84af8016081eb5d433a910512a9ff0b6cd319aeb (HEAD -> master, origin/master, origin/HEAD)
Author: Tim Edwards <tim@opencircuitdesign.com>
Date: Fri Nov 24 16:51:26 2023 -0500
Fixed two independent errors, both of which can cause devices to be
missing from a netlist generated by ext2spice with the "extresist"
option enabled. The first had to do with some parts of nets being
given alias names for a net, and the second was caused during
"extresist" and would also result in error messages about devices
missing terminals.
With the following commands:
load $MAG_CELL
flatten ${CELL_NAME}_pex
load ${CELL_NAME}_pex
box values 0 0 0 0
extract all
ext2sim labels on
ext2sim
extresist tolerance 10
extresist all
ext2spice lvs
ext2spice cthresh 0
ext2spice extresist on
ext2spice -o $OUTPUT_FILE_NAME
exit
And the netlist (attached) still seems to be missing the din[0] buffer pFET connection. I also get the following singular matrix errors which I do not get when I only extract pcaps (extresist off)
Note: No compatibility mode selected!
Circuit:
binary raw file "/home/tom/results/dacr2r/tb_tran.raw"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
Note: v1: dc value used for op instead of transient time=0 value.
No. of Data Columns : 8289
Warning: singular matrix: check node x1.a_20476_10878.t1
Note: Starting dynamic gmin stepping
Trying gmin = 1.0000E-03 Note: One successful gmin step
Trying gmin = 1.0000E-04 Note: One successful gmin step
Trying gmin = 1.0000E-05 Note: One successful gmin step
Trying gmin = 1.0000E-06 Note: One successful gmin step
Trying gmin = 1.0000E-07 Note: One successful gmin step
Trying gmin = 1.0000E-08 Note: One successful gmin step
Trying gmin = 1.0000E-09 Note: One successful gmin step
Trying gmin = 1.0000E-10 Note: One successful gmin step
Trying gmin = 1.0000E-11 Note: One successful gmin step
Trying gmin = 1.0000E-12 Note: One successful gmin step
Trying gmin = 1.0000E-12 Note: One successful gmin step
Warning: singular matrix: check node x1.a_8828_27650.t1
Warning: Dynamic gmin stepping failed
Note: Starting true gmin stepping
Trying gmin = 1.0000E-03 Warning: singular matrix: check node x1.a_8828_27650.t1
Warning: Further gmin increment
Trying gmin = 5.6234E-03 Warning: singular matrix: check node x1.a_8828_27650.t1
Warning: Further gmin increment
Trying gmin = 8.6596E-03 Warning: singular matrix: check node x1.a_8828_27650.t1
Warning: Further gmin increment
Trying gmin = 9.6466E-03 Warning: singular matrix: check node x1.a_8828_27650.t1
Warning: Further gmin increment
Trying gmin = 9.9105E-03 Warning: Further gmin increment
Tom
11/25/2023, 3:39 AMTim Edwards
11/25/2023, 4:17 PMflatten *-dotoplabels
.* I think that a lot if not all of the problems are coming from the handling of multiple labels on a net. The "dotoplabels" option will retain only the ports of the cell, and remove the rest of the labels.Tom
11/25/2023, 9:14 PMTim Edwards
11/25/2023, 9:15 PMTom
11/25/2023, 9:15 PMTom
11/25/2023, 9:17 PMTim Edwards
11/26/2023, 6:57 PM-toplevel
option will remove all the lower-level labels completely.
However, in general, if you want to make sure that ports aren't connected by having the same label, then use extract unique
before running extraction.Tim Edwards
11/27/2023, 9:26 PMflatten -toplevel
. It was really just allowing non-port labels to take priority over port labels during a node merge.Tom
11/28/2023, 1:18 AM