Sanchit Gupta
02/16/2025, 2:26 PMMitch Bailey
02/16/2025, 3:11 PM"FP_PDN_MACRO_HOOKS": "user_proj_example.sram0 vccd1 vssd1 vccd1 vssd1, user_proj_example.sram1 vccd1 vssd1 vccd1 vssd1, user_proj_example.sram2 vccd1 vssd1 vccd1 vssd1, user_proj_example.sram3 vccd1 vssd1 vccd1 vssd1",
to
"FP_PDN_MACRO_HOOKS": "sram0 vccd1 vssd1 vccd1 vssd1, sram1 vccd1 vssd1 vccd1 vssd1, sram2 vccd1 vssd1 vccd1 vssd1, sram3 vccd1 vssd1 vccd1 vssd1",
Sanchit Gupta
02/16/2025, 4:31 PMMitch Bailey
02/16/2025, 8:15 PMdir::../../verilog/rtl/user_proj_example.v
? If this is not open source, you can send it in a DM.Sanchit Gupta
02/17/2025, 3:50 AMMitch Bailey
02/17/2025, 4:38 AMsram0
is ok, but shows an error for sram1
, sram2
or sram3
.
I noticed that the user_proj_example.v
rtl file include the sky130_sram_1kbyte_1rw1r_32x256_8
. You probably shouldn’t have that there because it’s supposed to be a blackbox.Mitch Bailey
02/17/2025, 4:39 AM`ifdef USE_POWER_PINS
.vccd1(),
.vssd1(),
`endif
Can you try changing this to
`ifdef USE_POWER_PINS
.vccd1(vccd1),
.vssd1(vssd1),
`endif
Sanchit Gupta
02/17/2025, 9:35 AMMitch Bailey
02/17/2025, 11:39 AMconfig.json
, macro_placement.cfg
, and verilog/rtl/user_proj_example.v
files?
It looks like sram files have been copied to the verilog/rtl/files
directory.
You can use this syntax to access the files directly from the pdk
pdk_dir::libs.ref/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef
Sanchit Gupta
02/17/2025, 12:15 PMMitch Bailey
02/17/2025, 1:18 PMuser_proj_example.v
module sky130_sram_1kbyte_1rw1r_32x256_8(
I would not put this module in the user_proj_example.v
file, but instead include it in the configuration.
I don’t know if this is what is causing the problem or not.
Can you try this config.json
file? Note that I’ve also changed the clock to clk0
since demo_top.clk
doesn’t exist.
{
"DESIGN_NAME": "user_proj_example",
"DESIGN_IS_CORE": 0,
"VERILOG_FILES": [
"dir::../../verilog/rtl/defines.v",
"pdk_dir::libs.ref/sky130_sram_macros/verilog/sky130_sram_2kbyte_1rw1r_32x512_8.v",
"dir::../../verilog/rtl/user_proj_example.v"
],
"VERILOG_FILES_BLACKBOX": [
"pdk_dir::libs.ref/sky130_sram_macros/verilog/sky130_sram_2kbyte_1rw1r_32x512_8.v"
],
"CLOCK_PERIOD": 20,
"CLOCK_PORT": "wb_clk_i",
"CLOCK_NET": "clk0",
"FP_SIZING": "absolute",
"DIE_AREA": "0 0 2850 3320",
"FP_PIN_ORDER_CFG": "dir::pin_order.cfg",
"FP_PDN_MACRO_HOOKS": "sram0 vccd1 vssd1 vccd1 vssd1, sram1 vccd1 vssd1 vccd1 vssd1, sram2 vccd1 vssd1 vccd1 vssd1, sram3 vccd1 vssd1 vccd1 vssd1",
"MACRO_PLACEMENT_CFG": "dir::macro_placement.cfg",
"EXTRA_LEFS": "pdk_dir::libs.ref/sky130_sram_macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef",
"EXTRA_GDS_FILES": "pdk_dir::libs.ref/sky130_sram_macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds",
"EXTRA_LIBS": "pdk_dir::libs.ref/sky130_sram_macros/lib/sky130_sram_1kbyte_1rw1r_32x256_8_TT_1p8V_25C.lib",
"PL_BASIC_PLACEMENT": 0,
"PL_TARGET_DENSITY": 0.42,
"VDD_NETS": [
"vccd1"
],
"GND_NETS": [
"vssd1"
],
"SYNTH_USE_PG_PINS_DEFINES": "USE_POWER_PINS",
"DIODE_INSERTION_STRATEGY": 3,
"RUN_CVC": 1,
"RUN_KLAYOUT_XOR": false,
"MAGIC_DRC_USE_GDS": false,
"QUIT_ON_MAGIC_DRC": false,
"pdk::sky130*": {
"FP_CORE_UTIL": 45,
"RT_MAX_LAYER": "met4",
"scl::sky130_fd_sc_hd": {
"CLOCK_PERIOD": 20
},
"scl::sky130_fd_sc_hdll": {
"CLOCK_PERIOD": 10
},
"scl::sky130_fd_sc_hs": {
"CLOCK_PERIOD": 8
},
"scl::sky130_fd_sc_ls": {
"CLOCK_PERIOD": 10,
"SYNTH_MAX_FANOUT": 5
},
"scl::sky130_fd_sc_ms": {
"CLOCK_PERIOD": 10
}
},
"pdk::gf180mcuC": {
"STD_CELL_LIBRARY": "gf180mcu_fd_sc_mcu7t5v0",
"CLOCK_PERIOD": 24,
"FP_CORE_UTIL": 40,
"RT_MAX_LAYER": "Metal4",
"SYNTH_MAX_FANOUT": 4,
"PL_TARGET_DENSITY": 0.45
}
}
Sanchit Gupta
02/17/2025, 1:48 PMMitch Bailey
02/19/2025, 4:16 AMSanchit Gupta
02/20/2025, 7:03 AMMitch Bailey
02/20/2025, 1:04 PMconfig.json
file?Sanchit Gupta
02/20/2025, 2:13 PM{
"DESIGN_NAME": "user_proj_example",
"DESIGN_IS_CORE": 0,
"VERILOG_FILES": [
"dir::../../verilog/rtl/defines.v",
"pdk_dir::libs.ref/sky130_sram_macros/verilog/sky130_sram_2kbyte_1rw1r_32x512_8.v",
"dir::../../verilog/rtl/user_proj_example.v"
],
"VERILOG_FILES_BLACKBOX": [
"pdk_dir::libs.ref/sky130_sram_macros/verilog/sky130_sram_2kbyte_1rw1r_32x512_8.v"
],
"CLOCK_PERIOD": 20,
"CLOCK_PORT": "wb_clk_i",
"CLOCK_NET": "clk0",
"FP_SIZING": "absolute",
"DIE_AREA": "0 0 2850 3320",
"FP_PIN_ORDER_CFG": "dir::pin_order.cfg",
"FP_PDN_MACRO_HOOKS": "sram0 vccd1 vssd1 vccd1 vssd1, sram1 vccd1 vssd1 vccd1 vssd1, sram2 vccd1 vssd1 vccd1 vssd1, sram3 vccd1 vssd1 vccd1 vssd1",
"MACRO_PLACEMENT_CFG": "dir::macro_placement.cfg",
"EXTRA_LEFS": "pdk_dir::libs.ref/sky130_sram_macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef",
"EXTRA_GDS_FILES": "pdk_dir::libs.ref/sky130_sram_macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds",
"EXTRA_LIBS": "pdk_dir::libs.ref/sky130_sram_macros/lib/sky130_sram_1kbyte_1rw1r_32x256_8_TT_1p8V_25C.lib",
"PL_BASIC_PLACEMENT": 0,
"PL_TARGET_DENSITY": 0.42,
"VDD_NETS": [
"vccd1"
],
"GND_NETS": [
"vssd1"
],
"SYNTH_USE_PG_PINS_DEFINES": "USE_POWER_PINS",
"DIODE_INSERTION_STRATEGY": 3,
"RUN_CVC": 1,
"RUN_KLAYOUT_XOR": false,
"MAGIC_DRC_USE_GDS": false,
"QUIT_ON_MAGIC_DRC": false,
"pdk::sky130*": {
"FP_CORE_UTIL": 45,
"RT_MAX_LAYER": "met4",
"scl::sky130_fd_sc_hd": {
"CLOCK_PERIOD": 20
},
"scl::sky130_fd_sc_hdll": {
"CLOCK_PERIOD": 10
},
"scl::sky130_fd_sc_hs": {
"CLOCK_PERIOD": 8
},
"scl::sky130_fd_sc_ls": {
"CLOCK_PERIOD": 10,
"SYNTH_MAX_FANOUT": 5
},
"scl::sky130_fd_sc_ms": {
"CLOCK_PERIOD": 10
}
},
"pdk::gf180mcuC": {
"STD_CELL_LIBRARY": "gf180mcu_fd_sc_mcu7t5v0",
"CLOCK_PERIOD": 24,
"FP_CORE_UTIL": 40,
"RT_MAX_LAYER": "Metal4",
"SYNTH_MAX_FANOUT": 4,
"PL_TARGET_DENSITY": 0.45
}
}