Placement | Physical Design | Congestion / Power / Area Setup | Part 3
Dear Readers,
In our previous vlogs, we looked into the fundamentals of placement flow and algorithms, as well as the general setup mandatory for placement runs.
Below are the links to access these blogs :
Placement - Part 1
https://compile-vlsi.blogspot.com/2024/03/understanding-of-placement-physical.html
Placement - Part 2
https://compile-vlsi.blogspot.com/2024/03/placement-physical-design-part-2.html
In today's vlog, let's explore congestion and power/area-driven setup for placement runs.
- 1. Congestion Effort Level:
Low/medium/high/ultra effort levels could be set for global routing during placement. A low effort level is recommended for the initial run to achieve faster runtime. After the initial placement run, analyze the congestion. If the congestion overflow is high or borderline, rerun placement with a higher effort level.
route_global -congestion_map_only true -effort_level high
Apart from the global route effort level, we can also adjust the placement effort level of different placement stages to a higher effort level.
place_opt.initial_place.effort high
place_opt.final_place.effort high
2.Keepout Margin (Halo):
Ensure that a keep-out margin has been applied to macros/memory.
create_keepout_margin
- 3.Placement Blockage:
Create necessary placement blockages in areas prone to congestion.
create_placement_blockage
- 4.Cell density/Pin density:
Congestion could occur due to high cell/pin density. Control the cell/pin density in prone areas using partial blockage. Alternatively, define an overall density percentage.
create_placement_blockage -type partial -blocked_percentage 40 -boundary <>
place.coarse.pin_density_aware
place.legalize.optimize_pin_access_using_cell_spacing
(The above command will improve the routability of areas with high pin density by redistributing the cells.)
- 5. Congestion Driven Restructuring (CDR):
Cells with high pin density, like AOI/OAI, could cause many net crossings, creating congestion hotspots.
CDR setup identifies these, reorders, and places them optimally, reducing wirelength and alleviating congestion.
place.coarse.cong_restruct
place.coarse.cong_restruct_effort
Power and Area Setup:
- 1.Effort level:
We can set effort levels for power and area. The tool will use available algorithms to reduce power and area by default.
opt.power.effort -value high
opt.area.effort -value high
The above settings may reduce area/power at the cost of timing degradation.
- 2.Pre-Route Layer Optimization:
This setting automatically assigns longer and more timing-critical nets to higher layers. With this setting, the number of buffers required for the same path may be reduced.
place_opt.flow.optimize_layers -value true
- 3.Low Power Placement:
Low-power placement requires a switching activity file. This setting will reduce dynamic power by shortening high-activity nets.
place.coarse.low_power_placement -value true
read_saif <>
The switching activity file can be read using the above command.
These are the basic setup requirements for congestion and power/area. Let's look into timing-driven setup in the next vlogs.
Happy learning!
#physicaldesign #vlsi #india #infineon #semiconductor #physicalverification #timing #sta #design #learning #development #jobs #freshers
Comments
Post a Comment