Travis Jakl
02/16/2025, 10:23 PMMitch Bailey
02/17/2025, 1:05 AMTravis Jakl
02/17/2025, 3:03 AMMitch Bailey
02/17/2025, 4:31 AMnetgen -batch source lvs.script
Here is a sample lvs.script that might work for your case.
puts "Reading layout mag/dec24/Priority_Encoder_16t4.spice ..."
set layout [readnet spice mag/dec24/Priority_Encoder_16t4.spice]
set source [readnet spice /dev/null]
puts "Reading source $env(PDK_ROOT)/$env(PDK)/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap_12.spice..."
readnet spice $env(PDK_ROOT)/$env(PDK)/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap_12.spice $source
puts "Reading source $env(PDK_ROOT)/$env(PDK)/libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice..."
readnet spice $env(PDK_ROOT)/$env(PDK)/libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice $source
puts "Reading source xschem/StandardCells/dec24/Priority_Encoder_16t4.spice..."
readnet spice xschem/StandardCells/dec24/Priority_Encoder_16t4.spice $source
lvs "$layout Priority_Encoder_16t4" "$source Priority_Encoder_16t4" $env(PDK_ROOT)/$env(PDK)/libs.tech/netgen/$env(PDK)_setup.tclTravis Jakl
02/17/2025, 4:06 PMMitch Bailey
02/17/2025, 5:35 PMXdecap1[5:0] if there were 6 instances.
You can also modify the setup file to ignore decap cells (but this may cause problems with precheck because precheck checks them).Travis Jakl
02/17/2025, 7:21 PMMitch Bailey
02/17/2025, 11:56 PMFlattening unmatched subcell sky130_fd_sc_hd__decap_12 in circuit Priority_Encoder_16t4 (1)(4 instances)
Flattening instances of sky130_ef_sc_hd__decap_12 in cell Priority_Encoder_16t4 (0) makes a better match
In the schematic, try changing the prefix for the decap_12 cell to sky130_ef_sc_hd__.
2. The bulk and nwell connections for the decap cells in the schematic should probably be VPWR and VGND. Currently the pins appear to be VNB and VPB.
(no matching net)                          |Net: VNB                                   
                                           |  sky130_fd_sc_hd__decap_8/VNB = 1         
                                           |  sky130_fd_sc_hd__decap_3/VNB = 1         
                                           |  sky130_fd_sc_hd__decap_6/VNB = 1         
                                           |  sky130_fd_pr__nfet_01v8/4 = 1            
                                           |                                           
(no matching net)                          |Net: VPB                                   
                                           |  sky130_fd_sc_hd__decap_8/VPB = 1         
                                           |  sky130_fd_sc_hd__decap_3/VPB = 1         
                                           |  sky130_fd_sc_hd__decap_6/VPB = 1         
                                           |  sky130_fd_pr__pfet_01v8_hvt/4 = 1
Just edit the symbol properties to VPB=VPWR VNB=VGND.
Let me know if that cleans things up.Travis Jakl
02/18/2025, 5:07 AMTravis Jakl
02/18/2025, 5:09 AMMitch Bailey
02/18/2025, 5:13 AM(no matching net)                          |Net: VNB                                   
                                           |  sky130_fd_sc_hd__decap_8/VNB = 1         
                                           |                                           
(no matching net)                          |Net: VPB                                   
                                           |  sky130_fd_sc_hd__decap_8/VPB = 1Travis Jakl
02/18/2025, 5:34 AMMitch Bailey
02/18/2025, 6:04 AMdecap_12 cell has reversed connections in the schematic.
Net: VPWR                                  |Net: VPWR                                  
...
  sky130_ef_sc_hd__decap_12/VPWR = 1       |  sky130_ef_sc_hd__decap_12/VNB = 1        
                                           |                                           
Net: VGND                                  |Net: VGND                                  
...
  sky130_ef_sc_hd__decap_12/VNB = 1        |  sky130_ef_sc_hd__decap_12/VPWR = 1Travis Jakl
02/18/2025, 10:54 PMMitch Bailey
02/18/2025, 11:19 PM.subckt sky130_fd_sc_hd__decap_12 VGND VNB VPB VPWR
vs
.subckt sky130_ef_sc_hd__decap_12 VGND VPWR VPB VNB
The quick and dirty fix is to change the property on the schematic instance from sky130_ef_sc_hd__ (back) to sky130_ef_sc_hd__. This will cause an unmatch on the cell names and flatten the cells so that LVS should pass.
The other way would be to modify the lvs_format property on decap_12 symbol to match the spice order. However, this is a pdk file, so anytime the pdk gets updated, you’d have to fix it again. You could make a local copy of the symbol, but I think it should be fixed in the by the pdk owners. I’ll log an issue. Thanks for reporting.Mitch Bailey
02/18/2025, 11:47 PMlibs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap_12.spice to match libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice
Can you try that and see if it works?Travis Jakl
02/19/2025, 5:30 AMlibs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap_12.spice lead to a successful LVS. Thank you very much for your help!Linen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by