magic icon indicating copy to clipboard operation
magic copied to clipboard

Extraction Issue using gf180mcu technology

Open marwaneltoukhy opened this issue 3 years ago • 4 comments

I am having issues extracting both gds and mag using magic. For example the gf180mcu_fd_sc_mcu7t5v0__clkbuf_8 cell in the extracted spice has wrong ports w_n86_352# and VSUBS

.subckt gf180mcu_fd_sc_mcu7t5v0__clkbuf_8 Z VSS VDD I w_n86_352# VSUBS
X0 Z a_224_552# VSS VSUBS nmos_6p0 w=0.43u l=0.6u
X1 Z a_224_552# VDD w_n86_352# pmos_6p0 w=1.22u l=0.5u
X2 a_224_552# I VSS VSUBS nmos_6p0 w=0.405u l=0.6u
X3 VSS a_224_552# Z VSUBS nmos_6p0 w=0.43u l=0.6u
X4 Z a_224_552# VSS VSUBS nmos_6p0 w=0.43u l=0.6u
X5 VSS a_224_552# Z VSUBS nmos_6p0 w=0.43u l=0.6u
X6 VDD a_224_552# Z w_n86_352# pmos_6p0 w=1.22u l=0.5u
X7 a_224_552# I VDD w_n86_352# pmos_6p0 w=0.82u l=0.5u
X8 VDD I a_224_552# w_n86_352# pmos_6p0 w=0.82u l=0.5u
X9 Z a_224_552# VDD w_n86_352# pmos_6p0 w=1.22u l=0.5u
X10 VDD a_224_552# Z w_n86_352# pmos_6p0 w=1.22u l=0.5u
X11 VSS I a_224_552# VSUBS nmos_6p0 w=0.405u l=0.6u
X12 a_224_552# I VDD w_n86_352# pmos_6p0 w=0.82u l=0.5u
X13 VDD a_224_552# Z w_n86_352# pmos_6p0 w=1.22u l=0.5u
X14 VSS a_224_552# Z VSUBS nmos_6p0 w=0.43u l=0.6u
X15 Z a_224_552# VDD w_n86_352# pmos_6p0 w=1.22u l=0.5u
X16 Z a_224_552# VSS VSUBS nmos_6p0 w=0.43u l=0.6u
X17 VSS a_224_552# Z VSUBS nmos_6p0 w=0.43u l=0.6u
X18 Z a_224_552# VSS VSUBS nmos_6p0 w=0.43u l=0.6u
X19 Z a_224_552# VDD w_n86_352# pmos_6p0 w=1.22u l=0.5u
X20 VDD I a_224_552# w_n86_352# pmos_6p0 w=0.82u l=0.5u
X21 VDD a_224_552# Z w_n86_352# pmos_6p0 w=1.22u l=0.5u
X22 a_224_552# I VSS VSUBS nmos_6p0 w=0.405u l=0.6u
.ends

The script I'm using to extract gds:

set extdir $::env(ext_out)/tmp_ext
file mkdir $extdir
cd $extdir
crashbackups stop
drc off
gds readonly true
gds flatten true
gds rescale false
tech unlock *
gds read $::env(ext_inp1)
select top cell
extract do local
extract all
ext2spice lvs
ext2spice -o $::env(ext_out)/[file rootname [file tail $::env(ext_inp1)]]-gds-extracted.spice
exit

NOTE: This might be an issue with gds and mag generation, as abstract LVS is passing

simple design for testing: mprj_io_buffer can be found here (branch: PnR)

magic version: 8.3.346
open_pdks version: a519523b0d9bc913a6f87a5eed083597ed9e2e93 

marwaneltoukhy avatar Nov 29 '22 13:11 marwaneltoukhy

@RTimothyEdwards can you please take a look

marwaneltoukhy avatar Nov 29 '22 13:11 marwaneltoukhy

@marwaneltoukhy Looks like those nets correspond to VNB and VPB in sky130. I don't think the standard cells have well/substrate taps. Do they have well/substrate pins like in sky130?

d-m-bailey avatar Nov 29 '22 14:11 d-m-bailey

@d-m-bailey : I just came to the same sinking realization. The PDK cells are missing connections for well in substrate in every single view except for CDL. Even the GDS doesn't have port connections for these, so the standard cells won't extract correctly into a SPICE netlist by themselves, because the connections are assumed to be internal to the cell.

RTimothyEdwards avatar Nov 29 '22 16:11 RTimothyEdwards

@marwaneltoukhy @d-m-bailey : The overhaul of the GF standard cell libraries is, I think, complete. I am now rebuilding the PDK from open_pdks since the last updates were pushed to the efabless fork of mcu7t5v0. As of last night, I had it building correctly (visually correct but not tested) using the unmerged branch.

RTimothyEdwards avatar Nov 30 '22 14:11 RTimothyEdwards