From 09df5b32cbadf159e514afc2a8fa93a96eca813a Mon Sep 17 00:00:00 2001 From: Donn Date: Thu, 21 Sep 2023 15:37:54 +0300 Subject: [PATCH] Move fills to SCL tech file + remove ef cells --- placeram/cli.py | 7 +++---- platforms/sky130A/fill_cells.yml | 5 ----- platforms/sky130A/sky130_fd_sc_hd/tech.yml | 11 ++++++++--- 3 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 platforms/sky130A/fill_cells.yml diff --git a/placeram/cli.py b/placeram/cli.py index ac7fb24..b5cbd95 100644 --- a/placeram/cli.py +++ b/placeram/cli.py @@ -239,8 +239,8 @@ def cli( odb_in, ): pdk, scl, blocks = building_blocks.split(":") - fill_cells_file = os.path.join(".", "platforms", pdk, "fill_cells.yml") - if not os.path.isfile(fill_cells_file): + platform_tech_file = os.path.join(".", "platforms", pdk, scl, "tech.yml") + if not os.path.isfile(platform_tech_file): eprint("Platform %s not found." % pdk) exit(os.EX_NOINPUT) @@ -264,7 +264,6 @@ def cli( "WARNING: Word length must be a non-zero multiple of 8. Results may be unexpected." ) - platform_tech_file = os.path.join(".", "platforms", pdk, scl, "tech.yml") platform_tech_config = yaml.safe_load(open(platform_tech_file)) tap_distance = platform_tech_config["tap_distance"] @@ -272,7 +271,7 @@ def cli( for input in [odb_in]: check_readable(input) - fill_cell_data = yaml.load(open(fill_cells_file).read(), Loader=yaml.SafeLoader) + fill_cell_data = platform_tech_config["fills"] placer = Placer( odb_in, diff --git a/platforms/sky130A/fill_cells.yml b/platforms/sky130A/fill_cells.yml deleted file mode 100644 index 0655728..0000000 --- a/platforms/sky130A/fill_cells.yml +++ /dev/null @@ -1,5 +0,0 @@ -# Non-logical Cells -decap: sky130_\w+__decap_(\d+) -fill: sky130_\w+__fill_(\d+) -tap: sky130_\w+__tapvpwrvgnd_(\d+) -diode: sky130_\w+__diode_(\d+) diff --git a/platforms/sky130A/sky130_fd_sc_hd/tech.yml b/platforms/sky130A/sky130_fd_sc_hd/tech.yml index b65aa9a..7b0edf5 100644 --- a/platforms/sky130A/sky130_fd_sc_hd/tech.yml +++ b/platforms/sky130A/sky130_fd_sc_hd/tech.yml @@ -1,5 +1,5 @@ tap_distance: 15 -metal_layers: +metal_layers: hor-layer: met3 ver-layer: met2 rt-max-layer: met4 @@ -7,11 +7,11 @@ site: width: 0.46 height: 2.72 name: unithd -tie: +tie: tie_lo_cell: sky130_fd_sc_hd__conb_1 tie_lo_port: LO tie_hi_cell: sky130_fd_sc_hd__conb_1 - tie_hi_port: HI + tie_hi_port: HI sta: driving_cell: name: sky130_fd_sc_hd__inv_8 @@ -30,3 +30,8 @@ sta: "1024x*": 16.5 "2048x*": 16.5 rf: {} +fills: + decap: sky130_fd_sc_hd__decap_(\d+) + fill: sky130_fd_sc_hd__fill_(\d+) + tap: sky130_fd_sc_hd__tapvpwrvgnd_(\d+) + diode: sky130_fd_sc_hd__diode_(\d+)