Skip to content

Commit e601dee

Browse files
committed
gt2n: revert local tap-cell rename to match upstream GDS
Upstream commit 42e1034 ("Update gt2_6t_w31_lvt.lef") moves the BPR shapes on the tap cell from OBS to PORT (the issue #12 fix we needed), but in the same commit it also renames the macro `gt2_6t_tap_w31_lvt` into a split `gt2_6t_tapfspdn_w31_lvt` / `gt2_6t_tapbspdn_w31_lvt` pair in the LEF and lib. The matching GDS cells for the new names were not added upstream (azadnaeemi/GT2N#16), so the post-rename PDK is internally inconsistent: the LEF/lib advertise two new tap-cell names, but neither exists in the GDS, only the original `gt2_6t_tap_w31_lvt` does. KLayout GDS-merge at the end of the flow cannot resolve the tap instances and the final GDS is incomplete. Keep the BPR PORT geometry from the upstream commit (this is the fix we wanted) but undo the rename here: collapse the LEF macros and lib cells back into a single `gt2_6t_tap_w31_lvt`, point TAP_CELL_NAME and DONT_USE_CELLS at it, and update the README to explain the situation and link to the upstream issue tracking the GDS gap. Revisit once upstream #16 is resolved. Smoke: gt2n/gcd 2_3_floorplan_tapcell clean (110 endcaps + 28 tapcells inserted). Signed-off-by: Matthew Guthaus <mrg@ucsc.edu>
1 parent d732616 commit e601dee

4 files changed

Lines changed: 8 additions & 48 deletions

File tree

flow/platforms/gt2n/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# GT2N PDK
22

3-
> **Source:** copied verbatim from [azadnaeemi/GT2N](https://github.com/azadnaeemi/GT2N) at commit [`54f81feb2b`](https://github.com/azadnaeemi/GT2N/commit/54f81feb2b9c334d283538c1bc91bf3a34b02c02) (2026-06-05). This release split the original `gt2_6t_tap_w31_lvt` into a frontside-PDN variant (`gt2_6t_tapfspdn_w31_lvt`) and a backside-PDN variant (`gt2_6t_tapbspdn_w31_lvt`); the latter is what this ORFS platform points `TAP_CELL_NAME` at, since the PDN here is backside-only. Resolves the original BPR `OBS``PORT` issue ([azadnaeemi/GT2N#12](https://github.com/azadnaeemi/GT2N/issues/12)).
3+
> **Source:** copied from [azadnaeemi/GT2N](https://github.com/azadnaeemi/GT2N) at commit [`54f81feb2b`](https://github.com/azadnaeemi/GT2N/commit/54f81feb2b9c334d283538c1bc91bf3a34b02c02) (2026-06-05), which incorporates the BPR `OBS``PORT` fix from [azadnaeemi/GT2N#12](https://github.com/azadnaeemi/GT2N/issues/12). That commit also renames the tap cell `gt2_6t_tap_w31_lvt` into a `gt2_6t_tapfspdn_w31_lvt` / `gt2_6t_tapbspdn_w31_lvt` pair in the LEF and lib, but the matching GDS cells for the new names were not added upstream ([azadnaeemi/GT2N#16](https://github.com/azadnaeemi/GT2N/issues/16)). To keep the LEF, lib, and GDS consistent so KLayout GDS-merge resolves the tap instances at flow exit, this local copy keeps the BPR PORT geometry but undoes the rename: there is one macro / lib cell `gt2_6t_tap_w31_lvt`, matching the single tap cell still present in the GDS. Revisit once upstream resolves #16.
44
55
<img src="./VirtualFabricationDemo.gif" alt="VirtualFabricationDemo" width="400">
66

flow/platforms/gt2n/config.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ export GDS_FILES = $(PLATFORM_DIR)/gds/gt2_6t_std_cells_w31_lvt.gds \
1616
$(ADDITIONAL_GDS)
1717

1818
# Cells that should not be used in synthesis/optimization
19-
export DONT_USE_CELLS = gt2_6t_filler_w31_lvt gt2_6t_tapbspdn_w31_lvt \
20-
gt2_6t_tapfspdn_w31_lvt gt2_6t_decapcc_w31_lvt \
19+
export DONT_USE_CELLS = gt2_6t_filler_w31_lvt gt2_6t_tap_w31_lvt \
20+
gt2_6t_decapcc_w31_lvt \
2121
gt2_6t_tiehigh_w31_lvt gt2_6t_tielow_w31_lvt
2222

2323
# Fill cells used in fill cell insertion
@@ -56,7 +56,7 @@ export PDN_TCL ?= $(PLATFORM_DIR)/pdn.tcl
5656

5757
# Endcap and Welltie cells
5858
export TAPCELL_TCL ?= $(PLATFORM_DIR)/tapcell.tcl
59-
export TAP_CELL_NAME = gt2_6t_tapbspdn_w31_lvt
59+
export TAP_CELL_NAME = gt2_6t_tap_w31_lvt
6060

6161
export MACRO_PLACE_HALO ?= 1.0 1.0
6262

flow/platforms/gt2n/lef/gt2_6t_w31_lvt.lef

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4549,12 +4549,12 @@ MACRO gt2_6t_or3_x1_w31_lvt
45494549
END
45504550
END gt2_6t_or3_x1_w31_lvt
45514551

4552-
MACRO gt2_6t_tapfspdn_w31_lvt
4552+
MACRO gt2_6t_tap_w31_lvt
45534553
CLASS CORE ;
45544554
ORIGIN 0 0 ;
45554555
SYMMETRY X Y ;
45564556
SITE gt2_6t ;
4557-
FOREIGN gt2_6t_tapfspdn_w31_lvt 0 0 ;
4557+
FOREIGN gt2_6t_tap_w31_lvt 0 0 ;
45584558
SIZE 0.084 BY 0.144 ;
45594559
PIN vdd
45604560
DIRECTION INOUT ;
@@ -4581,32 +4581,7 @@ MACRO gt2_6t_tapfspdn_w31_lvt
45814581
RECT 0.01 0.042 0.0755 0.054 ;
45824582
RECT 0.01 0.09 0.034 0.102 ;
45834583
END
4584-
END gt2_6t_tapfspdn_w31_lvt
4585-
4586-
MACRO gt2_6t_tapbspdn_w31_lvt
4587-
CLASS CORE ;
4588-
ORIGIN 0 0 ;
4589-
SYMMETRY X Y ;
4590-
SITE gt2_6t ;
4591-
FOREIGN gt2_6t_tapbspdn_w31_lvt 0 0 ;
4592-
SIZE 0.042 BY 0.144 ;
4593-
PIN vdd
4594-
DIRECTION INOUT ;
4595-
USE POWER ;
4596-
PORT
4597-
LAYER BPR ;
4598-
RECT 0 0.128 0.042 0.16 ;
4599-
END
4600-
END vdd
4601-
PIN vss
4602-
DIRECTION INOUT ;
4603-
USE GROUND ;
4604-
PORT
4605-
LAYER BPR ;
4606-
RECT 0 -0.016 0.042 0.016 ;
4607-
END
4608-
END vss
4609-
END gt2_6t_tapbspdn_w31_lvt
4584+
END gt2_6t_tap_w31_lvt
46104585

46114586
MACRO gt2_6t_tiehigh_w31_lvt
46124587
CLASS CORE ;

flow/platforms/gt2n/lib/gt2_6t_w31_lvt_tt_0p7v25c.lib

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22275,7 +22275,7 @@ library(gt2_6t_w31_lvt_tt_0p7v25c) {
2227522275
}
2227622276
}
2227722277

22278-
cell (gt2_6t_tapfspdn_w31_lvt) {
22278+
cell (gt2_6t_tap_w31_lvt) {
2227922279
cell_leakage_power : 0 ;
2228022280
area : 0.012096;
2228122281

@@ -22290,19 +22290,4 @@ library(gt2_6t_w31_lvt_tt_0p7v25c) {
2229022290
}
2229122291
}
2229222292

22293-
cell (gt2_6t_tapbspdn_w31_lvt) {
22294-
cell_leakage_power : 0 ;
22295-
area : 0.006048;
22296-
22297-
pg_pin(vdd) {
22298-
pg_type : primary_power ;
22299-
voltage_name : vdd ;
22300-
}
22301-
22302-
pg_pin(vss) {
22303-
pg_type : primary_ground ;
22304-
voltage_name : vss ;
22305-
}
22306-
}
22307-
2230822293
}

0 commit comments

Comments
 (0)