Raymond Yang
06/06/2022, 1:08 PMRyan R
06/06/2022, 1:21 PMRaymond Yang
06/06/2022, 1:28 PMMitch Bailey
06/06/2022, 1:34 PMTim Edwards
06/06/2022, 1:35 PMRaymond Yang
06/06/2022, 1:47 PMTim Edwards
06/06/2022, 1:52 PMRaymond Yang
06/06/2022, 1:54 PMTim Edwards
06/06/2022, 1:55 PMRaymond Yang
06/06/2022, 1:57 PMTim Edwards
06/06/2022, 2:45 PMRaymond Yang
06/06/2022, 2:48 PMTim Edwards
06/06/2022, 3:03 PMRaymond Yang
06/06/2022, 3:12 PMsh run_magic_extraction.sh
to extract the LVS netlist, then sh run_netgen_lvs.sh
to run LVS.Tim Edwards
06/06/2022, 3:42 PMTim Edwards
06/06/2022, 3:45 PMWarning: Ports "a_probe_3" and "out" are electrically shorted.
Warning: Ports "a_probe_2" and "out" are electrically shorted.
They should have no bearing on the issue with VSS
, but just be aware that they can cause issues with LVS.Raymond Yang
06/06/2022, 3:49 PMRaymond Yang
06/06/2022, 3:51 PMota
and ota_w_test
instances?Tim Edwards
06/06/2022, 3:54 PMextract do local ; extract all
and errors will be output to the console.
So I ran LVS myself, and I do get errors at the level of ota_w_test
, but I don't see anything specifically related to VSS, which shows up in both netlists. What I do get is this:
Class ota_w_test (0): Merged 748 parallel devices.
Subcircuit summary:
Circuit 1: ota_w_test |Circuit 2: ota_w_test
-------------------------------------------|-------------------------------------------
sky130_fd_pr__pfet_01v8_lvt (80->9) |sky130_fd_pr__pfet_01v8_lvt (72->8) **Mism
sky130_fd_pr__nfet_01v8_lvt (88->7) |sky130_fd_pr__nfet_01v8_lvt (88->7)
sky130_fd_pr__nfet_01v8 (571->49) |sky130_fd_pr__nfet_01v8 (548->48) **Mismat
sky130_fd_pr__pfet_01v8 (92->18) |sky130_fd_pr__pfet_01v8 (86->17) **Mismatc
sc_cmfb (1) |sc_cmfb (1)
Number of devices: 84 **Mismatch** |Number of devices: 81 **Mismatch**
Number of nets: 42 |Number of nets: 42
---------------------------------------------------------------------------------------
which suggests an underlying problem with device counts (9 vs. 8, 48 vs. 48, 18 vs. 17).Raymond Yang
06/06/2022, 4:38 PMTim Edwards
06/06/2022, 4:44 PMota_w_test
now passes. What I see is this:
Subcircuit summary:
Circuit 1: clock_v2 |Circuit 2: clock_v2
-------------------------------------------|-------------------------------------------
sky130_fd_sc_hd__clkbuf_16 (16) |sky130_fd_sc_hd__clkbuf_16 (16)
sky130_fd_pr__pfet_01v8_hvt (464->1) |(no matching element)
sky130_fd_pr__nfet_01v8 (464->1) |(no matching element)
sky130_fd_sc_hd__clkdlybuf4s50_1 (120) |sky130_fd_sc_hd__clkdlybuf4s50_1 (120)
sky130_fd_sc_hd__clkinv_4 (12) |sky130_fd_sc_hd__clkinv_4 (12)
sky130_fd_sc_hd__nand2_4 (4) |sky130_fd_sc_hd__nand2_4 (4)
sky130_fd_sc_hd__dfxbp_1 (2) |sky130_fd_sc_hd__dfxbp_1 (2)
sky130_fd_sc_hd__nand2_1 (5) |sky130_fd_sc_hd__nand2_1 (5)
sky130_fd_sc_hd__clkinv_1 (7) |sky130_fd_sc_hd__clkinv_1 (7)
sky130_fd_sc_hd__mux2_1 (1) |sky130_fd_sc_hd__mux2_1 (1)
Number of devices: 169 **Mismatch** |Number of devices: 167 **Mismatch**
Number of nets: 172 |Number of nets: 172
---------------------------------------------------------------------------------------
which is due to the schematic side not representing the decap cells in the digital. It should be correctable simply by instantiating one each of the decap cells used in the layout in the schematic, and setting M to the number of that type of decap cell used.Raymond Yang
06/06/2022, 5:29 PMRaymond Yang
06/06/2022, 10:58 PMSubcircuit summary:
Circuit 1: clock_v2 |Circuit 2: clock_v2
-------------------------------------------|-------------------------------------------
sky130_fd_sc_hd__decap_4 (1) |sky130_fd_sc_hd__decap_4 (1)
sky130_fd_sc_hd__decap_3 (1) |sky130_fd_sc_hd__decap_3 (1)
sky130_fd_sc_hd__decap_8 (1) |sky130_fd_sc_hd__decap_8 (1)
sky130_fd_sc_hd__decap_12 (1) |sky130_fd_sc_hd__decap_12 (1)
sky130_fd_sc_hd__nand2_1 (5) |sky130_fd_sc_hd__nand2_1 (5)
sky130_fd_sc_hd__clkinv_4 (12) |sky130_fd_sc_hd__clkinv_4 (12)
sky130_fd_sc_hd__clkinv_1 (7) |sky130_fd_sc_hd__clkinv_1 (7)
sky130_fd_sc_hd__clkdlybuf4s50_1 (120) |sky130_fd_sc_hd__clkdlybuf4s50_1 (120)
sky130_fd_sc_hd__nand2_4 (4) |sky130_fd_sc_hd__nand2_4 (4)
sky130_fd_sc_hd__dfxbp_1 (2) |sky130_fd_sc_hd__dfxbp_1 (2)
sky130_fd_sc_hd__mux2_1 (1) |sky130_fd_sc_hd__mux2_1 (1)
sky130_fd_sc_hd__clkbuf_16 (16) |sky130_fd_sc_hd__clkbuf_16 (16)
Number of devices: 171 |Number of devices: 171
Number of nets: 172 **Mismatch** |Number of nets: 173 **Mismatch**
---------------------------------------------------------------------------------------
NET mismatches: Class fragments follow (with fanout counts):
Circuit 1: clock_v2 |Circuit 2: clock_v2
---------------------------------------------------------------------------------------
Net: VDD |Net: VDD
sky130_fd_sc_hd__decap_4/VPB = 1 | sky130_fd_sc_hd__decap_4/VPB = 1
sky130_fd_sc_hd__decap_4/VPWR = 1 | sky130_fd_sc_hd__decap_4/VPWR = 1
sky130_fd_sc_hd__decap_3/VPB = 1 | sky130_fd_sc_hd__decap_3/VPB = 1
sky130_fd_sc_hd__decap_3/VPWR = 1 | sky130_fd_sc_hd__decap_3/VPWR = 1
sky130_fd_sc_hd__decap_8/VPB = 1 | sky130_fd_sc_hd__decap_8/VPB = 1
sky130_fd_sc_hd__decap_8/VPWR = 1 | sky130_fd_sc_hd__decap_8/VPWR = 1
sky130_fd_sc_hd__decap_12/VNB = 1 | sky130_fd_sc_hd__decap_12/VPB = 1
sky130_fd_sc_hd__nand2_1/VPB = 5 | sky130_fd_sc_hd__nand2_1/VPB = 5
sky130_fd_sc_hd__nand2_1/VPWR = 5 | sky130_fd_sc_hd__nand2_1/VPWR = 5
sky130_fd_sc_hd__clkinv_4/VPB = 12 | sky130_fd_sc_hd__clkinv_4/VPB = 12
sky130_fd_sc_hd__clkinv_4/VPWR = 12 | sky130_fd_sc_hd__clkinv_4/VPWR = 12
sky130_fd_sc_hd__clkinv_1/VPB = 7 | sky130_fd_sc_hd__clkinv_1/VPB = 7
sky130_fd_sc_hd__clkinv_1/VPWR = 7 | sky130_fd_sc_hd__clkinv_1/VPWR = 7
sky130_fd_sc_hd__clkdlybuf4s50_1/VPB = 1 | sky130_fd_sc_hd__clkdlybuf4s50_1/VPB = 1
sky130_fd_sc_hd__clkdlybuf4s50_1/VPWR = | sky130_fd_sc_hd__clkdlybuf4s50_1/VPWR =
sky130_fd_sc_hd__nand2_4/VPB = 4 | sky130_fd_sc_hd__nand2_4/VPB = 4
sky130_fd_sc_hd__nand2_4/VPWR = 4 | sky130_fd_sc_hd__nand2_4/VPWR = 4
sky130_fd_sc_hd__dfxbp_1/VPB = 2 | sky130_fd_sc_hd__dfxbp_1/VPB = 2
sky130_fd_sc_hd__dfxbp_1/VPWR = 2 | sky130_fd_sc_hd__dfxbp_1/VPWR = 2
sky130_fd_sc_hd__mux2_1/VPB = 1 | sky130_fd_sc_hd__mux2_1/VPB = 1
sky130_fd_sc_hd__mux2_1/VPWR = 1 | sky130_fd_sc_hd__mux2_1/VPWR = 1
sky130_fd_sc_hd__clkbuf_16/VPB = 16 | sky130_fd_sc_hd__clkbuf_16/VPB = 16
sky130_fd_sc_hd__clkbuf_16/VPWR = 16 | sky130_fd_sc_hd__clkbuf_16/VPWR = 16
| sky130_fd_sc_hd__decap_12/VPWR = 1
|
Net: VSS |(no matching net)
sky130_fd_sc_hd__decap_4/VGND = 1 |
sky130_fd_sc_hd__decap_4/VNB = 1 |
sky130_fd_sc_hd__decap_3/VGND = 1 |
sky130_fd_sc_hd__decap_3/VNB = 1 |
sky130_fd_sc_hd__decap_8/VGND = 1 |
sky130_fd_sc_hd__decap_8/VNB = 1 |
sky130_fd_sc_hd__decap_12/VGND = 1 |
sky130_fd_sc_hd__decap_12/VPB = 1 |
sky130_fd_sc_hd__decap_12/VPWR = 1 |
sky130_fd_sc_hd__nand2_1/VGND = 5 |
sky130_fd_sc_hd__nand2_1/VNB = 5 |
sky130_fd_sc_hd__clkinv_4/VGND = 12 |
sky130_fd_sc_hd__clkinv_4/VNB = 12 |
sky130_fd_sc_hd__clkinv_1/VGND = 7 |
sky130_fd_sc_hd__clkinv_1/VNB = 7 |
sky130_fd_sc_hd__clkdlybuf4s50_1/VGND = |
sky130_fd_sc_hd__clkdlybuf4s50_1/VNB = 1 |
sky130_fd_sc_hd__nand2_4/VGND = 4 |
sky130_fd_sc_hd__nand2_4/VNB = 4 |
sky130_fd_sc_hd__dfxbp_1/VGND = 2 |
sky130_fd_sc_hd__dfxbp_1/VNB = 2 |
sky130_fd_sc_hd__mux2_1/VGND = 1 |
sky130_fd_sc_hd__mux2_1/VNB = 1 |
sky130_fd_sc_hd__clkbuf_16/VGND = 16 |
sky130_fd_sc_hd__clkbuf_16/VNB = 16 |
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
(no matching net) |Net: VSUBS
| sky130_fd_sc_hd__clkbuf_16/VNB = 16
| sky130_fd_sc_hd__decap_4/VNB = 1
| sky130_fd_sc_hd__decap_8/VNB = 1
| sky130_fd_sc_hd__decap_12/VNB = 1
| sky130_fd_sc_hd__clkdlybuf4s50_1/VNB = 1
| sky130_fd_sc_hd__clkinv_4/VNB = 12
| sky130_fd_sc_hd__nand2_4/VNB = 4
| sky130_fd_sc_hd__decap_3/VNB = 1
| sky130_fd_sc_hd__dfxbp_1/VNB = 2
| sky130_fd_sc_hd__nand2_1/VNB = 5
| sky130_fd_sc_hd__clkinv_1/VNB = 7
| sky130_fd_sc_hd__mux2_1/VNB = 1
|
(no matching net) |Net: VSS
| sky130_fd_sc_hd__clkbuf_16/VGND = 16
| sky130_fd_sc_hd__decap_4/VGND = 1
| sky130_fd_sc_hd__decap_8/VGND = 1
| sky130_fd_sc_hd__decap_12/VGND = 1
| sky130_fd_sc_hd__clkdlybuf4s50_1/VGND =
| sky130_fd_sc_hd__clkinv_4/VGND = 12
| sky130_fd_sc_hd__nand2_4/VGND = 4
| sky130_fd_sc_hd__decap_3/VGND = 1
| sky130_fd_sc_hd__dfxbp_1/VGND = 2
| sky130_fd_sc_hd__nand2_1/VGND = 5
| sky130_fd_sc_hd__clkinv_1/VGND = 7
| sky130_fd_sc_hd__mux2_1/VGND = 1
---------------------------------------------------------------------------------------
Raymond Yang
06/06/2022, 11:00 PMx1 VSS VSS VDD VDD sky130_fd_sc_hd__decap_3
. The device number for the clock_v2 subcircuit is correct, however, comparing to your lvs report, mine has an extra net? The designs should be exactly the same. Maybe there's something going on during Magic extraction? I get many warnings after extract all
but I didn't find the command to print these warnings in the Magic command reference. Thank you.Raymond Yang
06/06/2022, 11:05 PMTim Edwards
06/07/2022, 1:51 AMout
and a_probe_3
and a_probe_2
. This is caused by a small label out
attached to the two probe signal metal lines, one at roughly (202.7um, 28.53um) and one at (202.7um, -6.44um). Because they have the same name, they are considered shorted unless you use extract unique
(which is usually a good idea to use on a final top level layout, to make sure you aren't connecting things virtually by label name instead of physically by metal).Tim Edwards
06/07/2022, 2:00 AMInstance: clock_v2:6 |Instance: clock_v2_0
...
p2 = 8 | p2 = 7
p2_b = 8 | p2_b = 7
p2d = 7 | p2d = 8
clk = 1 | clk = 1
p2d_b = 7 | p2d_b = 8
So it looks like maybe p2 and p2d, and p2_b and p2d_b are swapped between the schematic and layout.Raymond Yang
06/07/2022, 2:36 AMRaymond Yang
06/07/2022, 1:10 PM