Skip to content

Commit

Permalink
OpenROAD.IOPlacement: Add annealing FP_IO_MODE (#290)
Browse files Browse the repository at this point in the history
* `OpenROAD.IOPlacement`, `OpenROAD.GlobalPlacementSkipIO`
  * Added new value for `FP_IO_MODE` which places I/O pins by annealing
  • Loading branch information
kareefardi authored Dec 11, 2023
1 parent ab82054 commit 7b57e30
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
5 changes: 5 additions & 0 deletions openlane/scripts/openroad/ioplacer.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,14 @@ if { $::env(FP_IO_MIN_DISTANCE) != "" } {
lappend arg_list -min_distance $::env(FP_IO_MIN_DISTANCE)
}

if { $::env(FP_IO_MODE) == "annealing" } {
lappend arg_list -annealing
}

set HMETAL $::env(FP_IO_HLAYER)
set VMETAL $::env(FP_IO_VLAYER)

puts "\[INFO] place_pins args: $arg_list"
place_pins {*}$arg_list \
-random_seed 42 \
-hor_layers $HMETAL \
Expand Down
4 changes: 2 additions & 2 deletions openlane/steps/openroad.py
Original file line number Diff line number Diff line change
Expand Up @@ -768,7 +768,7 @@ class IOPlacement(OpenROADStep):
+ [
Variable(
"FP_IO_MODE",
Literal["matching", "random_equidistant"],
Literal["matching", "random_equidistant", "annealing"],
"Decides the mode of the random IO placement option.",
default="matching",
),
Expand Down Expand Up @@ -945,7 +945,7 @@ class GlobalPlacementSkipIO(GlobalPlacement):
config_vars = GlobalPlacement.config_vars + [
Variable(
"FP_IO_MODE",
Literal["matching", "random_equidistant"],
Literal["matching", "random_equidistant", "annealing"],
"Decides the mode of the random IO placement option.",
default="matching",
)
Expand Down

0 comments on commit 7b57e30

Please sign in to comment.