Aleksandar Pajkanovic
11/10/2023, 10:27 AMAleksandar Pajkanovic
11/10/2023, 10:38 AMOEB
...
STDOUT: No DRC Violations found
STDOUT: {{Klayout ZeroArea CHECK PASSED}} The GDS file, user_analog_project_wrapper.gds, has no DRC violations.
STDOUT: {{STEP UPDATE}} Executing Check 12 of 12: OEB
STDOUT: Loading LVS environment from UNIC-CASS_precheck_dac.git/lvs/user_analog_project_wrapper/lvs_config.json
STDOUT: Loading LVS environment from /opt/checks/be_checks//tech/sky130A/lvs_config.base.json
STDOUT: EXTRACT_FLATGLOB : *sky130_fd_pr__*[A-Z]*
STDOUT: EXTRACT_ABSTRACT : *__fill_* *__fakediode_* *__tapvpwrvgnd_*
STDOUT: LVS_FLATTEN :
STDOUT: LVS_NOFLATTEN :
STDOUT: LVS_IGNORE :
STDOUT: LVS_SPICE_FILES : /opt/pdks/sky130A/libs.ref/sky130_fd_sc_hvl/spice/*.spice
STDOUT: LVS_VERILOG_FILES :
STDOUT: LAYOUT_FILE : UNIC-CASS_precheck_dac.git/gds/user_analog_project_wrapper.gds
STDOUT: run: run_oeb_check
STDOUT: OEB output directory: /mnt/users_data/jobs/apaj/UNIC-CASS_precheck_dac/4381a605-65e1-45b3-94ef-c9953ae155b7
STDOUT: ERROR OEB FAILED, stat=5, see /mnt/users_data/jobs/apaj/UNIC-CASS_precheck_dac/4381a605-65e1-45b3-94ef-c9953ae155b7/logs/OEB_check.log
STDOUT: {{OEB CHECK FAILED}} The design, user_analog_project_wrapper, has OEB violations.
STDOUT: {{FINISH}} Executing Finished, the full log 'precheck.log' can be found in '/mnt/users_data/jobs/apaj/UNIC-CASS_precheck_dac/4381a605-65e1-45b3-94ef-c9953ae155b7/logs'
STDOUT: {{FAILURE}} 1 Check(s) Failed: ['OEB'] !!!
STDERR: Generating LALR tables
STDERR: WARNING: 183 shift/reduce conflicts
Here are precheck logs and outputs. Please, what we can do to solve this?Tim Edwards
11/10/2023, 1:56 PMOEB_check.log
looks like this:
ERROR: No model match dac_top_cell/RX9 R sky130_fd_pr__res_xhigh_po_2p85 l=1.25
Missing models
sky130_fd_pr__res_xhigh_po_2p85 R
ERROR: Model file problem
** Stage 1/7: Enter command ?> c 6
> c 6
continuing for 6 step(s)
ERROR: skipped due to problems in model/power/fuse files
gpio | in | out | analog | oeb min/sim/max | Message
Why is it complaining about the res_xhigh_po_2p85
model??
(Also, as a nit-pick: Why do all of these checks and related output end up in the file "OEB_check.log" when they have nothing to do specifically with OEB checks?)Mitch Bailey
11/10/2023, 3:02 PMmpw-9f
?
It may be that the platform is missing some updates. I’ll check.
@Tim Edwards OEB check are done on the CVC results. In this case, CVC is complaining because it can’t find a model. I’ve added models for all the test cases but not for all devices in the pdk. This will continue to be an issue when new models are introduced.Aleksandar Pajkanovic
11/10/2023, 3:49 PMAleksandar Pajkanovic
11/10/2023, 3:52 PMAleksandar Pajkanovic
11/10/2023, 6:46 PMMitch Bailey
11/10/2023, 7:44 PMAleksandar Pajkanovic
11/10/2023, 7:49 PMAleksandar Pajkanovic
11/10/2023, 7:50 PMMitch Bailey
11/10/2023, 10:43 PMHieu Bui
11/11/2023, 2:29 AMMitch Bailey
11/11/2023, 2:32 AMHieu Bui
11/11/2023, 2:33 AMAleksandar Pajkanovic
11/13/2023, 7:36 AMMitch Bailey
11/13/2023, 1:00 PMAleksandar Pajkanovic
11/13/2023, 1:02 PMAleksandar Pajkanovic
11/13/2023, 1:02 PMAleksandar Pajkanovic
11/14/2023, 7:37 AMAleksandar Pajkanovic
11/14/2023, 7:38 AMTim Edwards
11/14/2023, 2:04 PMAleksandar Pajkanovic
11/14/2023, 2:05 PMMitch Bailey
11/15/2023, 4:38 PMHieu Bui
11/15/2023, 8:07 PMCVC: Setting models ...
ERROR: No model match dac_top_cell/RX0 R sky130_fd_pr__res_xhigh_po_2p85 l=1.25
ERROR: No model match dac_top_cell/RX3 R sky130_fd_pr__res_xhigh_po_2p85 l=1.25
ERROR: No model match dac_top_cell/RX6 R sky130_fd_pr__res_xhigh_po_2p85 l=1.25
ERROR: No model match dac_top_cell/RX9 R sky130_fd_pr__res_xhigh_po_2p85 l=1.25
Missing models
Nathan is pushing us to submit the design but I don't know how can we do it without precheck passed.Aleksandar Pajkanovic
11/15/2023, 8:17 PMTim Edwards
11/15/2023, 8:26 PMAleksandar Pajkanovic
11/15/2023, 8:42 PMTim Edwards
11/15/2023, 8:43 PMAleksandar Pajkanovic
11/15/2023, 8:51 PMTim Edwards
11/15/2023, 8:52 PMAleksandar Pajkanovic
11/15/2023, 8:54 PMTim Edwards
11/15/2023, 8:55 PMTim Edwards
11/15/2023, 9:05 PMmpw-precheck
repository, and I don't see how your PR solves this error (which may explain why the error is still happening). Of all the various device names that you added in the PR, the one in question which is causing the CVC failure, sky130_fd_pr__res_xhigh_po_2p85
, is actually one of the devices that was already there to begin with, both in the models and the fix_spice script. So the "missing model" error must be caused by something else.Tim Edwards
11/15/2023, 9:07 PMMitch Bailey
11/15/2023, 11:01 PMHieu Bui
11/15/2023, 11:03 PMHieu Bui
11/15/2023, 11:03 PMHieu Bui
11/15/2023, 11:04 PMMitch Bailey
11/15/2023, 11:22 PM$PRECHECK_ROOT/checks/be_checks/tech/sky130A/cvc.models
MN nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
MP pfet_01v8_hvt Vth=-0.2 Vgs=1.8 Vds=1.8
R short model=switch_on
D sky130_fd_pr__diode_pw2nd_05v5
D sky130_fd_pr__diode_pw2nd_11v0
D sky130_fd_pr__diode_pw2nd_05v5_lvt
D sky130_fd_pr__diode_pw2nd_05v5_nvt
D sky130_fd_pr__diode_pd2nw_05v5
D sky130_fd_pr__diode_pd2nw_05v5_lvt
D sky130_fd_pr__diode_pd2nw_11v0
D sky130_fd_pr__model__parasitic__diode_ps2dn
D sky130_fd_pr__model__parasitic__diode_ps2nw
D sky130_fd_pr__model__parasitic__diode_pw2dn
D condiode
#R sky130_fd_pr__res_generic_m1 R=l/w*0.125
#R sky130_fd_pr__res_generic_m2 R=l/w*0.125
#R sky130_fd_pr__res_generic_m3 R=l/w*0.047
#R sky130_fd_pr__res_generic_m4 R=l/w*0.047
#R sky130_fd_pr__res_generic_nd R=l/w*0.029
R sky130_fd_pr__res_generic_l1 model=switch_on
R sky130_fd_pr__res_generic_m1 model=switch_on
R sky130_fd_pr__res_generic_m2 model=switch_on
R sky130_fd_pr__res_generic_m3 model=switch_on
R sky130_fd_pr__res_generic_m4 model=switch_on
R sky130_fd_pr__res_generic_m5 model=switch_on
R sky130_fd_pr__res_generic_nd R=l/w*120
R sky130_fd_pr__res_generic_pd R=l/w*197
R sky130_fd_pr__res_generic_nd__hv R=l/w*114
R sky130_fd_pr__res_generic_pd__hv R=l/w*191
R sky130_fd_pr__res_generic_po R=l/w*48
R sky130_fd_pr__res_xhigh_po R=l/w*2000
R sky130_fd_pr__res_xhigh_po_0p35 R=l/0.35*2000
R sky130_fd_pr__res_xhigh_po_0p69 R=l/0.69*2000
R sky130_fd_pr__res_xhigh_po_1p41 R=l/1.41*2000
R sky130_fd_pr__res_xhigh_po_2p85 R=l/2.85*2000
R sky130_fd_pr__res_xhigh_po_5p73 R=l/5.73*2000
R sky130_fd_pr__res_high_po R=l/w*300
R sky130_fd_pr__res_high_po_0p35 R=l/0.35*300
R sky130_fd_pr__res_high_po_0p69 R=l/0.69*300
R sky130_fd_pr__res_high_po_1p41 R=l/1.41*300
R sky130_fd_pr__res_high_po_2p85 R=l/2.85*300
R sky130_fd_pr__res_high_po_5p73 R=l/5.73*300
R sky130_fd_pr__res_iso_pw R=l/w*4400
MN sky130_fd_pr__nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__nfet_01v8_lvt Vth=0.1 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__special_nfet_latch Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__special_nfet_pass Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__nfet_03v3_nvt Vth=0.2 Vgs=3.3 Vds=3.3
MN sky130_fd_pr__esd_nfet_g5v0d10v5 Vth=0.2
MN sky130_fd_pr__nfet_05v0_nvt Vth=0.2
MN sky130_fd_pr__nfet_g5v0d10v5 Vth=0.2
MN sky130_fd_bs_flash__special_sonosfet_star Vth=0.2
MP sky130_fd_pr__pfet_01v8 Vth=-0.2 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_01v8_lvt Vth=-0.1 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_01v8_hvt Vth=-0.3 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__special_pfet_pass Vth=-0.2 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__special_pfet_latch Vth=-0.2 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_g5v0d10v5 Vth=-0.2
C sky130_fd_pr__cap_mim_m3_1
C sky130_fd_pr__cap_mim_m3_2
C sky130_fd_pr__cap_var
C sky130_fd_pr__cap_var_lvt
Q sky130_fd_pr__pnp_05v5
Q sky130_fd_pr__pnp_05v5_W0p68L0p68
Q sky130_fd_pr__pnp_05v5_W3p40L3p40
Q sky130_fd_pr__npn_11v0
Q sky130_fd_pr__npn_11v0_W1p00L1p00
And see if the local precheck will complete without errors?Hieu Bui
11/15/2023, 11:56 PMHieu Bui
11/15/2023, 11:57 PMMitch Bailey
11/16/2023, 12:02 AMHieu Bui
11/16/2023, 12:04 AMMitch Bailey
11/16/2023, 12:11 AMmpw-9g
. But that still won’t have the necessary fix.
Should be able to
MPW_TAG=mpw-9g make precheck
and then replace
$PRECHECK_ROOT/checks/be_checks/tech/sky130A/cvc.models
(PRECHECK_ROOT
defaults to the user home direcotry).Mitch Bailey
11/16/2023, 12:17 AMMitch Bailey
11/16/2023, 1:03 AMViolation Message 'P-diff distance to N-tap must be < 15.0um (LU.3)' found 16 times.
Violation Message 'N-diff distance to P-tap must be < 15.0um (LU.2)' found 260 times.
Mitch Bailey
11/16/2023, 1:11 AMHieu Bui
11/16/2023, 1:25 AMMitch Bailey
11/16/2023, 1:37 AMl
and w
of a mim_cap as reversed. Since the total area and perimeter are the same there is no physical difference. You could switch the schematic values to get a clean LVS result.
Circuit 1: opamp |Circuit 2: opamp
----------------------------------------------------------------------------------|----------------------------------------------------------------------------------
sky130_fd_pr__pfet_01v8_lvt (19->6) |sky130_fd_pr__pfet_01v8_lvt (6)
sky130_fd_pr__nfet_01v8_lvt (9->5) |sky130_fd_pr__nfet_01v8_lvt (5)
sky130_fd_pr__cap_mim_m3_1 (2) |sky130_fd_pr__cap_mim_m3_1 (2)
Number of devices: 13 |Number of devices: 13
Number of nets: 11 |Number of nets: 11
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Netlists match uniquely with property errors.
sky130_fd_pr__cap_mim_m3_1:6 vs. sky130_fd_pr__cap_mim_m3_1:C1:
w circuit1: 4 circuit2: 2 (delta=66.7%, cutoff=1%)
l circuit1: 2 circuit2: 4 (delta=66.7%, cutoff=1%)
sky130_fd_pr__cap_mim_m3_1:3 vs. sky130_fd_pr__cap_mim_m3_1:C2:
w circuit1: 4 circuit2: 2 (delta=66.7%, cutoff=1%)
l circuit1: 2 circuit2: 4 (delta=66.7%, cutoff=1%)
In the lvs_config file, I moved the netlist from LVS_SPICE_FILES_TO_FIX
to LVS_SPICE_FILES
. Fixed spice files have generic poly resistors while the current extraction rules yield poly resistors with model names that contain the device width.
The esd_cell
has a device, R1
that uses a generic sky130_fd_pr__res_high_po
model with W=0.35
. I changed this to sky130_fd_pr__res_high_po_0p35
.Aleksandar Pajkanovic
11/16/2023, 4:18 AMAleksandar Pajkanovic
11/16/2023, 4:20 AMMitch Bailey
11/16/2023, 4:42 AMAleksandar Pajkanovic
11/16/2023, 5:26 AMHieu Bui
11/16/2023, 5:51 AMHieu Bui
11/16/2023, 5:52 AMHieu Bui
11/16/2023, 5:56 AMAleksandar Pajkanovic
11/16/2023, 6:14 AMHieu Bui
11/16/2023, 6:16 AMAleksandar Pajkanovic
11/16/2023, 6:57 AMMitch Bailey
11/16/2023, 6:59 AM