Anuj Dubey
04/28/2022, 6:41 PMSubcircuit pins:
Circuit 1: sky130_fd_sc_hd__conb_1 |Circuit 2: sky130_fd_sc_hd__conb_1
-------------------------------------------|-------------------------------------------
VGND |VGND
VNB |VNB
VPB |VPB
VPWR |VPWR
LO |LO
HI |(no matching pin)
---------------------------------------------------------------------------------------
My first question is, is this one of the mismatches? I guess that's an automatically added constant value drive cell and in the netlist (after synthesis) I see this cell used to drive only LO bits to all the unused outputs. How do I ensure that the HI port is not causing a mismatch, if it is indeed an issue?
|
Net: _044_/VPB |Net: start
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/start = 1
|
Net: _027_/VPB |Net: \mem_word_addr1[11]
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/mem_word_addr1[11] = 1
|
Net: _060_/VPB |Net: \mem_word_addr1[10]
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/mem_word_addr1[10] = 1
|
Net: _189_/VPB |Net: \mem_word_addr1[9]
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/mem_word_addr1[9] = 1
|
Net: _043_/VPB |Net: \mem_word_addr2[11]
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/mem_word_addr2[11] = 1
|
Net: _112_/VPB |Net: \mem_word_addr2[10]
sky130_fd_sc_hd__conb_1/VPB = 1 | soc_top/mem_word_addr2[10] = 1
.....
Net: _025_/VPWR |Net: \mem_valid1[0]
sky130_fd_sc_hd__conb_1/VPWR = 1 | sky130_sram_2kbyte_1rw1r_32x512_8/csb0 =
| soc_top/mem_valid1[0] = 1
|
Net: _008_/VPWR |Net: \mem_valid2[0]
sky130_fd_sc_hd__conb_1/VPWR = 1 | sky130_sram_2kbyte_1rw1r_32x512_8/csb1 =
| soc_top/mem_valid2[0] = 1
|
Net: _187_/VPWR |Net: \mem_out1[0][31]
sky130_fd_sc_hd__conb_1/VPWR = 1 | sky130_sram_2kbyte_1rw1r_32x512_8/dout0[
| soc_top/mem_rdata1_0[31] = 1
|
Net: _110_/VPWR |Net: \mem_out1[0][30]
sky130_fd_sc_hd__conb_1/VPWR = 1 | sky130_sram_2kbyte_1rw1r_32x512_8/dout0[
| soc_top/mem_rdata1_0[30] = 1
Why are the power pins (VPB, VPWR) of sky130_fd_sc_hd__conb_1 cells matched with the data signals of my design? Is this an issue? Seems like it to me.
Net: top/mem_word_addr1[3] |Net: \mem_wdata[15]
sky130_sram_2kbyte_1rw1r_32x512_8/addr0[ | sky130_sram_2kbyte_1rw1r_32x512_8/din0[1
soc_top/mem_word_addr1[3] = 1 | soc_top/mem_wdata[15] = 1
|
Net: top/mem_word_addr1[2] |Net: \mem_wdata[16]
sky130_sram_2kbyte_1rw1r_32x512_8/addr0[ | sky130_sram_2kbyte_1rw1r_32x512_8/din0[1
soc_top/mem_word_addr1[2] = 1 | soc_top/mem_wdata[16] = 1
|
Net: top/mem_word_addr1[1] |Net: \mem_wdata[17]
sky130_sram_2kbyte_1rw1r_32x512_8/addr0[ | sky130_sram_2kbyte_1rw1r_32x512_8/din0[1
soc_top/mem_word_addr1[1] = 1 | soc_top/mem_wdata[17] = 1
Not sure why the address bus signals are matched with the data signals.Tim Edwards
04/28/2022, 8:44 PMTim Edwards
04/28/2022, 8:46 PMTim Edwards
04/28/2022, 8:48 PMAnuj Dubey
04/28/2022, 9:42 PMTim Edwards
04/28/2022, 10:04 PMAnuj Dubey
04/29/2022, 12:10 AMInstance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 39 |
|
Instance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__tapvpwrvgnd_1:T |(no matching instance)
VGND = 23635 |
VPWR = 13 |
......
Instance: sky130_fd_sc_hd__decap_12:FILLER |(no matching instance)
VGND = 23635 |
VNB = 23635 |
VPB = 13 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__decap_12:FILLER |(no matching instance)
VGND = 23635 |
VNB = 23635 |
VPB = 13 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__decap_12:FILLER |(no matching instance)
VGND = 23635 |
VNB = 23635 |
VPB = 13 |
VPWR = 13 |
|
Instance: sky130_fd_sc_hd__decap_12:FILLER |(no matching instance)
VGND = 23635 |
VNB = 23635 |
VPB = 13 |
VPWR = 13 |
|
Anuj Dubey
04/29/2022, 12:28 AMset ::env(PDK) "sky130A"
set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd"
source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/fixed_wrapper_cfgs.tcl
source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/default_wrapper_cfgs.tcl
set script_dir [file dirname [file normalize [info script]]]
set ::env(DESIGN_NAME) user_project_wrapper
set ::env(RUN_KLAYOUT_XOR) 0
set ::env(RUN_KLAYOUT_DRC) 0
set ::env(MAGIC_DRC_USE_GDS) 0
set ::env(RUN_MAGIC_DRC) 0
set ::env(QUIT_ON_MAGIC_DRC) 0
set ::env(VERILOG_FILES) "\
$script_dir/../../caravel/verilog/rtl/defines.v \
$script_dir/../../verilog/rtl/user_project_wrapper.v"
## Clock configurations
set ::env(CLOCK_PORT) "wb_clk_i"
set ::env(CLOCK_NET) "wb_clk_i"
set ::env(CLOCK_PERIOD) "100"
### Macro Placement
set ::env(MACRO_PLACEMENT_CFG) $script_dir/macro_placement.tcl
### Black-box verilog and views
set ::env(VERILOG_FILES_BLACKBOX) "\
$script_dir/../OpenRAM/sky130_sram_2kbyte_1rw1r_32x512_8.v \
$script_dir/../../verilog/rtl/soc_top.v"
### user projects gds and lef files
set ::env(EXTRA_LEFS) "\
$script_dir/../OpenRAM/sky130_sram_2kbyte_1rw1r_32x512_8.lef \
$script_dir/../lef/soc_top.lef"
set ::env(EXTRA_GDS_FILES) "\
$script_dir/../OpenRAM/sky130_sram_2kbyte_1rw1r_32x512_8.gds \
$script_dir/../gds/soc_top.gds"
set ::env(GLB_RT_ALLOW_CONGESTION) "1"
set ::env(ROUTING_CORES) 64
set ::env(FP_PDN_CHECK_NODES) 0
set ::env(PL_RANDOM_GLB_PLACEMENT) 1
set ::env(PL_RESIZER_DESIGN_OPTIMIZATIONS) 0
set ::env(PL_RESIZER_TIMING_OPTIMIZATIONS) 0
set ::env(PL_RESIZER_BUFFER_INPUT_PORTS) 0
set ::env(PL_RESIZER_BUFFER_OUTPUT_PORTS) 0
set ::env(FP_PDN_ENABLE_RAILS) 0
set ::env(DIODE_INSERTION_STRATEGY) 0
set ::env(CLOCK_TREE_SYNTH) 0
Maybe I should enable the FP_PDN_CHECK_NODES and FP_PDN_ENABLE_RAILS flags?Tim Edwards
04/29/2022, 1:55 PMMAGIC_EXT_USE_GDS
(just set it to 1
) which tells netgen to ignore decap and tap cells, because on the layout side, they resolve connectivity of the power supplies but then get flattened and disappear from the netlist because they don't contain any active devices.Anuj Dubey
04/29/2022, 7:50 PM---------------------------------------------------------------------------------------
Net: BANK\[3\].RAM/vccd1 |(no matching net)
sky130_sram_2kbyte_1rw1r_32x512_8/vccd1 |
|
Net: BANK\[4\].RAM/vccd1 |(no matching net)
sky130_sram_2kbyte_1rw1r_32x512_8/vccd1 |
---------------------------------------------------------------------------------------
Tim Edwards
05/03/2022, 12:07 PMBANK\[3\].RAM
and BANK\[4\].RAM
are two different SRAMs? The LVS is suggesting that both of them have their power supplies disconnected.Anuj Dubey
05/09/2022, 2:02 PM