https://open-source-silicon.dev logo
#general
Title
# general
r

Ruediger Ehlers

03/05/2022, 12:31 PM
Also Hi Everyone. Not sure if anybody has the same problem. For me, detailed placement fails because of the inability to place "ANTENNA" elements - all others seem to be placed correctly. I've already tried a tip from OpenLane Github issue 948
set ::env(CELL_PAD_EXCLUDE) {sky130_fd_sc_hd__tap* sky130_fd_sc_hd__decap* sky130_fd_sc_hd__fill* sky130_fd_sc_hd__diode*}
into config.tcl. Also, I've put
set ::env(CELL_PAD) {4}
into that file, as otherwise during global routing, routing congestion is too high (values of 4 and 5 seem to work). Still, there are ~15 antenna diodes that could not be placed:
[INFO DPL-0034] Detailed placement failed on:
[INFO DPL-0035]  ANTENNA__9446__CLK
[INFO DPL-0035]  ANTENNA_input13_A
[INFO DPL-0035]  ANTENNA_input13_A
[INFO DPL-0035]  ANTENNA_input13_A
[INFO DPL-0035]  ANTENNA_input33_A
[INFO DPL-0035]  ANTENNA_output204_A
[INFO DPL-0035]  ANTENNA_output204_A
[INFO DPL-0035]  ANTENNA_output204_A
[INFO DPL-0035]  ANTENNA_output204_A
[INFO DPL-0035]  ANTENNA_output237_A
[INFO DPL-0035]  ANTENNA_output237_A
[INFO DPL-0035]  ANTENNA_output237_A
[INFO DPL-0035]  ANTENNA_output248_A
[INFO DPL-0035]  ANTENNA_output248_A
[INFO DPL-0035]  ANTENNA_output248_A
[INFO DPL-0035]  ANTENNA_output270_A
[INFO DPL-0035]  ANTENNA_output270_A
[ERROR DPL-0036] Detailed placement failed.
There seems to be no additional information on why exactly placement failed. Any idea where to typically look for ideas to fix this problem? The diode insertion strategy is currently "4", but changing it to "1" doesn't make a difference.
a

Arman Avetisyan

03/05/2022, 12:36 PM
There is not enough info to help you. First thing I would check if placement is too dense.
r

Ruediger Ehlers

03/05/2022, 1:50 PM
The problem even occurs when PL_TARGET_DENSITY is 0.12. But to help others with the same problem: It appears to only occur if PL_BASIC_PLACEMENT is 1 - perhaps then not enough space is left at the boundaries of the macro to place antennas or so. With PL_BASIC_PLACEMENT set to 0, detailed placement succeeds
a

Arman Avetisyan

03/05/2022, 2:27 PM
"PL_BASIC_PLACEMENT" literally means, just do basic placement and it's only usable for very small designs with super low density. You cant use basic placement for normal macros. Since you didn't give any details about your design I assume it's something different than 10-20 cells, in that case using basic placement is unacceptable, it will fail 99.999% of the time
r

Ruediger Ehlers

03/05/2022, 3:01 PM
Yes, this makes sense. Thanks for the clarification. It's not obvious from the documentation at https://openlane-docs.readthedocs.io/en/rtd-develop/configuration/README.html that "basic placement" is an alternative to another placement flow/configuration and not just serves as a step of the the overall placement flow. The Formulation "Run <X>" in the documentation is the same as the case below it in the documentation, which seems to be about a step that can be switched on or off.
n

Nanditha Rao

03/19/2022, 10:35 AM
I am having a similar issue, when i have
set ::env(PL_BASIC_PLACEMENT) 1
and
set ::env(PL_TARGET_DENSITY) 0.05
. It fails saying routing congestion. I had to change the BASIC_PLACEMENT to 0 to get through this error