Nam Nguyễn Hồ Giang
12/09/2023, 11:58 AMMitch Bailey
12/09/2023, 1:56 PMsm
instance isn’t connected to power.
What does your physical hierarchy look like? What modules are you hardening?Nam Nguyễn Hồ Giang
12/15/2023, 6:53 AMNam Nguyễn Hồ Giang
12/15/2023, 6:56 AMMitch Bailey
12/15/2023, 12:59 PMWhat does your physical hierarchy look like? What modules are you hardening?What are the top metal layers on each hierarchy?
Nam Nguyễn Hồ Giang
01/10/2024, 4:04 AMNam Nguyễn Hồ Giang
01/10/2024, 4:13 AMMitch Bailey
01/10/2024, 4:54 AMmake synapse_matrix_design
?Nam Nguyễn Hồ Giang
01/10/2024, 6:36 AMNam Nguyễn Hồ Giang
01/10/2024, 6:40 AMMitch Bailey
01/10/2024, 3:11 PMneuron_core_dffram
and synapse_matrix_design
in user_project_wrapper
and synthesize the top level instead of only elaborating? Are you planning on having multiple DFFRAMs?Nam Nguyễn Hồ Giang
01/10/2024, 4:51 PMneuron_core_dffram
so I want to wrap it into the macro. I plan to use a lot of neuron_core_dffram
in my design. Flattening the interconnection architectures will be done in user_project_wrapper
. Is there a way for me to successfully flatten my design?Mitch Bailey
01/10/2024, 6:07 PMsynapse_matrix_design
seemed rather large. How many can you fit in the caravel user_project_wrapper
area?Nam Nguyễn Hồ Giang
01/11/2024, 1:51 AMneuron_core_dfframs
as possible.Nam Nguyễn Hồ Giang
01/11/2024, 1:59 AMneuron_core_dffram
as possibleMitch Bailey
01/11/2024, 3:46 AMsynapse_matrix_design
is 2000x2000.
Caravel openframe user area is only 3100x4700.
The DFFRAM is 1100x500.
You might be able to create the neuron_core_dffram with a top layer of met4 and then manually connect the DFFRAM power. You could then use openlane to connect several neuron_core_dfframs.Nam Nguyễn Hồ Giang
01/11/2024, 7:24 AMCaravel
increases the area for users
, right? That's very good news for me.
Previously, I used full flow completely automatically using OpenLane.
So I don't know how to connect power to DFFRAM manually. I think the reason for the error in STEP PDN and IR DROP is that I am not providing manual power to DFFRAM, so the battery power is not connected
• (if using the default automatic current, it will connect the power grid at metal layer
6 and some in metal layer 5
a while caravel_user_project
only supports metal layer 5
. I think that's my problem).
It would be great if you could assist me in connecting the DFFRAM source and neron_core_dffram manually.Mitch Bailey
01/11/2024, 12:59 PM{
"DESIGN_NAME": "neuron_core_dffram",
"DESIGN_IS_CORE": 0,
"ROUTING_CORES": 1,
"VERILOG_FILES": [
"dir::../../verilog/neuron_core_dffram/synapse_matrix_design.v",
"dir::../../verilog/neuron_core_dffram/neuron_core_dffram.v",
"dir::../../verilog/neuron_core_dffram/neuron_block_design.v",
"dir::../../verilog/neuron_core_dffram/neuron_parameters_design.v",
"dir::../../verilog/neuron_core_dffram/neuron_spike_out_design.v",
"dir::../../verilog/neuron_core_dffram/AddressDecoder.v"
],
"CLOCK_PERIOD": 16.5,
"CLOCK_PORT": "wb_clk_i",
"CLOCK_NET": "sm.wb_clk_i",
"FP_PDN_MACRO_HOOKS": "sram0 VPWR VGND VPWR VGND",
"MACRO_PLACEMENT_CFG": "dir::macro.cfg",
"FP_TAP_HORIZONTAL_HALO": 20,
"FP_TAP_VERTICAL_HALO": 20,
"FP_PDN_HORIZONTAL_HALO": 20,
"FP_PDN_VERTICAL_HALO": 20,
"FP_PDN_HSPACING": 30,
"FP_PDN_VSPACING": 30,
"FP_PDN_CORE_RING": 1,
"FP_PDN_CORE_RING_VWIDTH": 5,
"FP_PDN_CORE_RING_HWIDTH": 5,
"FP_PDN_CORE_RING_VOFFSET": 14,
"FP_PDN_CORE_RING_VSPACING": 1,
"FP_PDN_VWIDTH": 5,
"PL_RESIZER_SETUP_MAX_BUFFER_PERCENT": 50,
"GLB_RESIZER_SETUP_MAX_BUFFER_PERCENT": 50,
"VERILOG_FILES_BLACKBOX": [
"dir::../../verilog/gl/DFFRAM256x32.v"
],
"EXTRA_LEFS": "dir::../../lef/DFFRAM256x32.lef",
"EXTRA_GDS_FILES": "dir::../../gds/DFFRAM256x32.gds",
"EXTRA_LIBS": "dir::../../lib/DFFRAM256x32.lib",
"EXTRA_SPEFS": [
"DFFRAM256x32",
"dir::../../spef/multicorner/DFFRAM256x32.max.spef",
"dir::../../spef/multicorner/DFFRAM256x32.min.spef",
"dir::../../spef/multicorner/DFFRAM256x32.nom.spef"
],
"FP_SIZING": "absolute",
"DIE_AREA": "0 0 2700 2700",
"MAX_TRANSITION_CONSTRAINT": 1,
"MAX_FANOUT_CONSTRAINT": 16,
"PL_TARGET_DENSITY": 0.3,
"PL_RESIZER_SETUP_SLACK_MARGIN": 0.4,
"GLB_RESIZER_SETUP_SLACK_MARGIN": 0.2,
"GLB_RESIZER_HOLD_SLACK_MARGIN": 0.2,
"PL_RESIZER_HOLD_SLACK_MARGIN": 0.4,
"FP_PDN_HPITCH": 200,
"MAGIC_DEF_LABELS": 0,
"SYNTH_BUFFERING": 1,
"RUN_LINTER": 0,
"RUN_HEURISTIC_DIODE_INSERTION": 1,
"GRT_REPAIR_ANTENNAS,": 1,
"DIODE_ON_PORTS,": 1,
"PL_ROUTABILITY_DRIVEN": 1,
"FP_PDN_IRDROP": 1,
"QUIT_ON_MAGIC_DRC": 0,
"SYNTH_USE_PG_PINS_DEFINES": "USE_POWER_PINS",
"VDD_NETS": [
"VPWR"
],
"GND_NETS": [
"VGND"
],
"IO_SYNC": 0,
"BASE_SDC_FILE": "dir::base_neuron_core.sdc",
"RUN_CVC": 1,
"pdk::sky130*": {
"FP_CORE_UTIL": 30,
"RT_MAX_LAYER": "met4",
"scl::sky130_fd_sc_hd": {
"CLOCK_PERIOD": 16.5
},
"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
}
}
Change macro.cfg
to place the sram macro.Nam Nguyễn Hồ Giang
01/15/2024, 3:57 AMNam Nguyễn Hồ Giang
01/15/2024, 4:01 AMmetal layers
does Caravel_user_project_wapper
support? That is, how many metal layers
can my design use?
2. If I have my Hard macro in metal layer 4, then when flattening the next design using hard macro, my routing and power grid will probably be in the metal layer. Could it be in the lower metal layers? And can I flatten my design in the same metal layer as the hard macro?
3. After Flow completes, I receive the result folder containing the metric.csv
file. These include the parameters sythesis_cell
, Decap_cell
, WelltapCells
, FillCells
, DiodeCells
, and total_cell. I want to know clearly what those parameters are. And what will I base on to calculate the gate count
I use? And are there any ways I can reduce that gate count
?Mitch Bailey
01/15/2024, 5:37 AMuser_project_wrapper
runs CVC-RV which will give you device counts. You could add the number of mosfets (you probably don’t want diodes included), subtract the decap cells (x2 one pmos, one nmos) and divide by 4 (number of transistors in a 2 nand gate) to get a rough estimate for gate count.