From f9a18188def2301ac0b3311d748732a47fb6108f Mon Sep 17 00:00:00 2001 From: Leo Moser Date: Sun, 7 Jan 2024 16:58:18 +0100 Subject: [PATCH] Support for gf180mcuD (#190) It seems like support for gf180mcu is currently broken. I fixed up gf180mcuC and renamed it to gf180mcuD since this is the PDK which is currently used for the MPW shuttles. The 8x32 RAM successfully builds: `./dffram.py -p gf180mcuD -s gf180mcu_fd_sc_mcu7t5v0 -b ram 8x32` But I seem to get a lot of hold violations. Well, better than nothing for now :) --- dffram.py | 4 +++- platforms/gf180mcuC/process_data.yml | 2 -- platforms/{gf180mcuC => gf180mcuD}/fill_cells.yml | 0 .../gf180mcu_fd_sc_mcu7t5v0/block_definitions.v | 0 .../gf180mcu_fd_sc_mcu7t5v0/tech.yml | 7 ++++++- platforms/gf180mcuD/process_data.yml | 2 ++ 6 files changed, 11 insertions(+), 4 deletions(-) delete mode 100644 platforms/gf180mcuC/process_data.yml rename platforms/{gf180mcuC => gf180mcuD}/fill_cells.yml (100%) rename platforms/{gf180mcuC => gf180mcuD}/gf180mcu_fd_sc_mcu7t5v0/block_definitions.v (100%) rename platforms/{gf180mcuC => gf180mcuD}/gf180mcu_fd_sc_mcu7t5v0/tech.yml (78%) create mode 100644 platforms/gf180mcuD/process_data.yml diff --git a/dffram.py b/dffram.py index a52a4f9..21fa5ed 100755 --- a/dffram.py +++ b/dffram.py @@ -316,6 +316,8 @@ def main( if building_blocks == "rf": logical_width = word_width + rt_max_layer = tech_info["metal_layers"]["rt-max-layer"] + TargetFlow = Flow.factory.get(flow_name) or DFFRAM dffram_flow = TargetFlow( { @@ -324,7 +326,7 @@ def main( "CLOCK_PERIOD": clock_period, "GPL_CELL_PADDING": 0, "DPL_CELL_PADDING": 0, - "RT_MAX_LAYER": "met4", + "RT_MAX_LAYER": rt_max_layer, "GRT_ALLOW_CONGESTION": True, "PDK": pdk, "STD_CELL_LIBRARY": scl, diff --git a/platforms/gf180mcuC/process_data.yml b/platforms/gf180mcuC/process_data.yml deleted file mode 100644 index cefc2e4..0000000 --- a/platforms/gf180mcuC/process_data.yml +++ /dev/null @@ -1,2 +0,0 @@ -volare_pdk_family: gf180mcu -volare_pdk_version: 9f1c2b06d2b5a6708cfe0b55679c7e84d37220cc \ No newline at end of file diff --git a/platforms/gf180mcuC/fill_cells.yml b/platforms/gf180mcuD/fill_cells.yml similarity index 100% rename from platforms/gf180mcuC/fill_cells.yml rename to platforms/gf180mcuD/fill_cells.yml diff --git a/platforms/gf180mcuC/gf180mcu_fd_sc_mcu7t5v0/block_definitions.v b/platforms/gf180mcuD/gf180mcu_fd_sc_mcu7t5v0/block_definitions.v similarity index 100% rename from platforms/gf180mcuC/gf180mcu_fd_sc_mcu7t5v0/block_definitions.v rename to platforms/gf180mcuD/gf180mcu_fd_sc_mcu7t5v0/block_definitions.v diff --git a/platforms/gf180mcuC/gf180mcu_fd_sc_mcu7t5v0/tech.yml b/platforms/gf180mcuD/gf180mcu_fd_sc_mcu7t5v0/tech.yml similarity index 78% rename from platforms/gf180mcuC/gf180mcu_fd_sc_mcu7t5v0/tech.yml rename to platforms/gf180mcuD/gf180mcu_fd_sc_mcu7t5v0/tech.yml index fcd9d99..2c3ba5d 100644 --- a/platforms/gf180mcuC/gf180mcu_fd_sc_mcu7t5v0/tech.yml +++ b/platforms/gf180mcuD/gf180mcu_fd_sc_mcu7t5v0/tech.yml @@ -29,4 +29,9 @@ sta: "512x*": 11.21 "1024x*": 12.83 "2048x*": 14.1 - rf: {} \ No newline at end of file + rf: {} +fills: + decap: gf180mcu_fd_sc_mcu7t5v0__fillcap_(\d+) + fill: gf180mcu_fd_sc_mcu7t5v0__fill_(\d+) + tap: gf180mcu_fd_sc_mcu7t5v0__filltie + diode: gf180mcu_fd_sc_mcu7t5v0__antenna diff --git a/platforms/gf180mcuD/process_data.yml b/platforms/gf180mcuD/process_data.yml new file mode 100644 index 0000000..2344047 --- /dev/null +++ b/platforms/gf180mcuD/process_data.yml @@ -0,0 +1,2 @@ +volare_pdk_family: gf180mcu +volare_pdk_version: e0f692f46654d6c7c99fc70a0c94a080dab53571