Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions flow/platforms/gf180/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ export FILL_CELLS ?= gf180mcu_fd_sc_mcu$(TRACK_OPTIO
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_2 \
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_1

# Metal density fill rules (OpenROAD density_fill). Applied at chip level
# only when USE_FILL=1; macro/block builds leave USE_FILL=0 (the default).
export FILL_CONFIG ?= $(PLATFORM_DIR)/fill.json

export TIE_CELL = gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__filltie
export ENDCAP_CELL = gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__endcap
export RC_FILE = $(PLATFORM_DIR)/setRC.tcl
Expand Down
78 changes: 78 additions & 0 deletions flow/platforms/gf180/fill.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"layers" : {
"Metal1" : {
"layer": 34,
"name": "Metal1",
"dir": "H",
"datatype": 0,
"space_to_outline": 5,
"non-opc": {
"datatype": 4,
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 1,
"space_to_non_fill": 1
}
},

"Metal2" : {
"layer": 36,
"name": "Metal2",
"dir": "V",
"datatype": 0,
"space_to_outline": 5,
"non-opc": {
"datatype": 4,
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 1,
"space_to_non_fill": 1
}
},

"Metal3" : {
"layer": 42,
"name": "Metal3",
"dir": "H",
"datatype": 0,
"space_to_outline": 5,
"non-opc": {
"datatype": 4,
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 1,
"space_to_non_fill": 1
}
},

"Metal4" : {
"layer": 46,
"name": "Metal4",
"dir": "V",
"datatype": 0,
"space_to_outline": 5,
"non-opc": {
"datatype": 4,
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 1,
"space_to_non_fill": 1
}
},

"Metal5" : {
"layer": 81,
"name": "Metal5",
"dir": "H",
"datatype": 0,
"space_to_outline": 5,
"non-opc": {
"datatype": 4,
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 0.5,
"space_to_non_fill": 0.5
Comment on lines +71 to +74

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current minimum fill size and spacing of 0.5 for Metal5 is valid for the default 9K thick metal option (KVALUE=9, where min width/spacing is 0.44 um). However, the gf180 platform also supports the 11K thick metal option (KVALUE=11), which has a minimum width and spacing requirement of 0.6 um. Using 0.5 will result in DRC violations (rules MT.1 and MT.2) when KVALUE=11 is selected.

Changing the minimum size and spacing to 0.6 makes these rules robust and compatible with both 9K and 11K metal stack options without significantly impacting density fill coverage.

Suggested change
"width": [2.00, 1.00, 0.5],
"height": [2.00, 1.00, 0.5],
"space_to_fill": 0.5,
"space_to_non_fill": 0.5
"width": [2.00, 1.00, 0.6],
"height": [2.00, 1.00, 0.6],
"space_to_fill": 0.6,
"space_to_non_fill": 0.6

}
}
}
}