Monday, November 9, 2015

Create_bounds

Move bounds are placement constraints that control the placement of groups of leaf cells and hierarchical cells. Move bounds can be either soft, hard, or exclusive.

- Soft move bounds specify placement goals, with no guarantee that the cells will be placed inside the    bounds.

- Hard move bounds force placement of the specified cells inside the bounds.

- Exclusive move bounds force the placement of the specified cells inside the bounds. All other cells     must be placed outside the bounds.

Defining a move bound allows you to group cells to minimize wire length and place the cells at the most appropriate locations. For example, you might want to define a move bound for clock-gating cells or extremely timing-critical groups of cells that you want to guarantee  will not be disrupted for placement by other logic.  During placement, ICC ensures that the cells you grouped remian together. However, defining move bounds restricts placement and defining too many can lower QoR.
For best results, make the number of cells you place in placement bounds relatively small compared to the total number of cells in the design.

To create a move bound in ICC, use the create_bounds cmd ( or choose Floorplan > Create Bound in the GUI). This is the command syntax:

create_bounds
    [-name bound_name]
    [-coordinate {llx1 lly1 urx1 ury1 ...}]
    [-dimension {width height}]
    [-effort low |  medium |  high  | ultra}\]
    [-type soft | hard ]
    [-exclusive]
    [-color range_0_to_63]
    [-cycle_color]
    object_list

For example,
icc_shell> create_bounds -name "b1" -coordinate { 100 100 200 200} INST_1

You must specify a list of cells, ports, and pins to be included in the bound. If a hierarchical cell is included, all cells in the subdesign belong to the bound. You can also specify the characteristics of the bound, including the name, the coordinates of one or more rectangles for the bound, the dimensions, the effort level to bring the cells closer together, the type ( soft, hard, or exclusive; soft is the default). You can also specify the color used to display the bound in the GUI.

To add or remove cells from a move bound, use the update_bounds command.
To report the move bounds in your design, use the report_bounds command.
To return a collection of move bounds in the current design that match certain criteria, use the get_bounds command.
To remove move bounds from your design, use the remove_bounds command.







3 comments:

  1. May I know what exactly there inside any of these soft/hard bounds?

    ReplyDelete
  2. Sir, module constraints and move bounds are same or different

    ReplyDelete