Hi <@U01680FK487> <@U020J2W6Q84> can we still set ...
# openlane
n
Hi @User @User can we still set the minimum distance between IOs with the current Openlane version? Or do you know how to force the tool place IOs within the specified edge only? Ex. How can I place 100 IO pins along a 200um edge? Seems it randomly places some IOs to other edges when (edge’s length)/(number of pins) < 5um? Thanks.
Also, can we use different layers on the same edges, ex. FP_IO_VMETAL “1 3”?
v
n
Thanks @Vijayan Krishnan I tried to add couple of options such as min_distance/min_distance_in_tracks/corner_avoidance to place_pins command but seems none of them works (got the same result). Setting FP_IO_MODE=0 variable in <design>/config.tcl seems does not take any effect, this variable will be overwritten by default value (1) from configuration/ floorplan.tcl (double check under run/xxx/config.tcl?). Any further suggestions?
v
@Nguyen Dao if you're sure about variable change, change directly configuration/floorplan.tcl and try it
n
@Vijayan Krishnan yes I set variables directly from floorplan.tcl and also in scripts/openroad/or_ioplacer.tcl but the pins still be placed randomly (not follow the specified edges defined in pin_order.cfg? not sure why?
v
can you share me config.tcl? Also have you used following variable?
set ::env(FP_PIN_ORDER_CFG) -cfg xxx.cfg
n
Hi @Vijayan Krishnan sorry my bad. There was a typo in the variable setting. It now picks up the cfg pin_order file. Btw, I also tried specify different metal layers by
set ::env(FP_IO_HMETAL) "2 4"
set ::env(FP_IO_VMETAL) "1 3"
in config.tcl or directly in or_ioplacer.tcl by
-ver_layers "met2 met4"
-hor_layers "met1 met3"
but the tool only use met2 and met3? Am I missing something? The
-corner_avoidance 1
option apparently does not take any effect too? Thanks for your help.
v
./configuration/README.md:|
FP_IO_HMETAL
| The metal layer on which to place the io pins horizontally (top and bottom of the die). <br>(Default:
4
)| seems accept only one variable. where you found this
corner_avoidance varaibale
?
It shows the
-hor_layers
can be a list of layer names. Set
set ::env(FP_IO_HMETAL) "2 4"
will cause errors but set
-hor_layers "met1 met3"
(in or_ioplacer.tcl) shows no errors, just only met3 is used
v
yes you can use list of layers for top and bottom. Do you mentioned MIN and MAX layer list?
n
I mean using different layers for the IOs on the same edge, ex. metal 1 for pin1-10 and metal 3 for pin 11-20 on the top edge?
v
as per existing io_placer.tcl choose value from open road DB set tech [[ord::get_db] getTech]. It's not over-write user input. Can you open a github issue.. Follow below workaround
Update io_placer.tcl as follows: set tech [[ord::get_db] getTech] set HMETAL [[$tech findRoutingLayer $::env(FP_IO_HMETAL)] getName] set VMETAL [[$tech findRoutingLayer $::env(FP_IO_VMETAL)] getName] set HMETAL "met1 met3" set VMETAL "met2 met4"
With above update I'm able to see difference in io_placer.def
n
seems it doesn’t show up in my case. Maybe I already set
-min_distance_in_tracks 1
so it can place all the pins just with met2 on the top edge. Thanks for your help