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. 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 


    1. 3.Placement Blockage:

    Create necessary placement blockages in areas prone to congestion.

    create_placement_blockage


    1. 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.) 


    1. 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. 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. 


    1. 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


    1. 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

    Must Read

    Understanding of Placement (Physical Design) - Part 1

    Interview Question - Physical Design (PD) | Clock Skew

    Dealing with Congestion in a Practical Way (Physical Design) :

    Scripting Interview Question | Physical Design | VLSI

    LVS Issue | Physical verification | VLSI

    Port Punching | Physical Design | VLSI

    Low Power Design | Physical Design | Part 1

    PPA Optimization in Synthesis & Physical Design | Area | VLSI Design

    Placement - Physical Design - Part 2 - General Setup

    Longer Routing Length | Tcl Scripting | Routing | Physical Design | VLSI