Blockages are the specific area where the placing of the cells is prevented or blocked. These act as the guidelines for placing the standard cell in the design. A blockage will not be guiding the placement tool to place standard cells, but it won’t allow the placement tool to place standard cells at specified locations.
In this, if macros moved from one place to another place, blockages will not move.
We need blockages because there is some area which we want to reserve for routing only, and that’s why we don’t want the standard cell to be placed in a certain area. Also, it will reduce congestion.
Fig.1 Hard and Soft Blockage
Type of Blockages
It specifies an area where only buffers can be placed. That means standard cells can’t be placed in the region. We apply soft blockages between two adjacent macros. In this area there is a narrow channel and if we place standard cells then it will create congestion, so avoid placing standard cells.
But in that area there are pins of macro and there may be a chance that you need to put buffers/inverter before those pins to increase the drive strength, or improve transition.
In hard blockage, no standard cell and buffer/inverter can be placed within the specified area. They used to avoid congestion at macros corner
In partial blockage by default, the blockage factor is 100% i.e. no standard cell can be placed in that area, but the flexibility of blockage can be chosen by the partial blockage.
If we want to reduce placement density without blocking 100% of the area we will change the blockage factor of an existing region to a flexible value will be a better option.
Ex. If we change the placement percentage to 30%, this means the maximum cell density allowed in this area is 30%.
Routing blockages prevent routing in an area for a specified layer. In this we have to define layer number which you want to block
Ex: Let us take an area Z and in that area you don’t want any net to route using M1, M2 and M4, but you are okay with M3 passing over that area. This type of blockage come under Routing Blockage
Halo (Keep out margin)
Halos are placed around the macros. They do not allow the placement of any other standard cell around macro till a certain boundary. The width of the halo on each side of the fixed cell can be the same or different. Keeping the placement of cells out of such regions avoids congestion and better quality of the result.
If macros move from one place to another place, the halo will also move. The Halo of two macros can overlap.