Macro Placement Guidelines

There are some guidelines that need to be followed while placing macros to avoid congestion and other design problems from occurring at the later stages of the design.

Macros and all other logics will be sitting outside the die area, once the core and die gets created.

What are macros?

Macros are larger functional blocks like the IC’s memories (SRAM, ROM), analog devices (DAC, ADC), clock macros (PLLs), or interface macros. These macros are typically provided by third-party IP (Intellectual Property) vendors or developed in-house by the design team. Some of the qualities of a macro are:

  1. They consume a larger area.
  2. They are power-hungry devices i.e. they consume huge power.
  3. They are placed at the boundary of the core area.

After executing shape_blocks command, tool will do a rough placement of macros.

Macro Placement guidelines:

What guidelines should I follow when placing hard macros in the floorplan?

This solution provides designers performing physical design (Place & Route) with tips and guidelines to create an initial floorplan. These guidelines will help you maximize the space available for standard cell placement, avoid routing congestion problems, and achieve the power supply routing requirements.

This solution focuses on two main areas to help you achieve high-density designs:

  • Macro Placement
  • Row Generation

These tips range from simple guidelines to more advanced ones that may or may not apply to your design. For your design, you also have to take into account specific conditions and constraints such as:

  • Timing
  • Clock
  • Power
  • IP specific restriction
  • DFT test
  1. Place macros around chip periphery

If you do not have a rationale to place the macro inside the core area, place macros around the chip periphery. Placing a macro inside the core can invite serious consequences during routing due to a lot of detour routing.

This is because macros are equal to a large obstacle for routing. Also, placing the hard macros around the core-periphery makes it easier to supply power to these macros, and reduces the chance of IR drop problems for macros consuming high amounts of power.

No alt text provided for this image

2. Consider connections to fixed cells when placing macros

When you decide the macro position, you have to pay attention to connections to fixed elements such as I/O and pre-placed macros. Place macros near the corresponding associate fixed elements. Check connections by displaying flight lines in the GUI.

No alt text provided for this image

 3. Orient macros to minimize the distance between pins

When you decide the orientation of macros, you also have to take into account the positions of the pins and the respective connections.

No alt text provided for this image

4. Reserve enough room around macros

For regular net routing and power grid, you have to reserve enough routing space around macros. In this case, estimating routing resources with precision is very important. 

Use the congestion map from trialRoute to identify hotspots between macros and adjust the placement as needed.

No alt text provided for this image

5. Reduce open fields as much as possible

Except for reserved routing resources, remove dead space to increase the area for random logic.

Choosing a different aspect ratio (if that option is available) can eliminate open fields.

No alt text provided for this image

6. Reserve space for power grid

The number of required power routes can change based on the power consumption.

You have to estimate the power consumption and reserve enough room for the power grid. If you underestimate the space required for power routing, you can encounter routing problems.

No alt text provided for this image

Note: At least one pair of metal layer tracks must be between two macros. This pair of tracks will be used as Vss and Vdd in the power planning stage. If the standard cell is present between the macros and if the metal layers between the macros are not, then this will lead to an IR drop.

Leave a Comment

Your email address will not be published. Required fields are marked *

error: Content is protected !!
Scroll to Top