( ESNUG 386 Item 14 ) -------------------------------------------- [01/16/02]
Subject: ( ESNUG 383 #14 ) PhysOpt 'Fixed Placement' Routing Obstructions
> Every now & then, I see a number of user questions regarding obstructions
> in PhysOpt. With PhysOpt, we classify obstruction objects as:
>
> (a) Power nets
> (b) Fixed placement
> (c) General
> (d) External
>
> In this letter I'd like to focus on "Power Net Objects".
From: "Cyrus Malek" <cyrusm@synopsys.com>
Hi John,
This is a follow-up to my earlier note (ESNUG 383 #14) on 'Power Net
Obstructions' in PhysOpt. This note covers 'Fixed Placement Objects'.
Again: *Please* read ESNUG 383 #14 before reading this!!!
Fixed Placement Instances
-------------------------
Your design may contain instances that are fixed in place, either with the
'set_dont_touch_placement' command or the "RESTRICTION FIXED_PLACEMENT"
attribute in your PDEF. These instances are always treated as placement
obstructions, and the layer obstructions and pin geometries that are part
of the physical cell description are used during congestion estimation and
delay calculation. Any placement site that is occupied (even partially)
by the fixed cell is removed from the list of available locations for cell
placement.
Note: Currently physical-only cells (filler cells, end caps, wellcaps, etc.)
MUST be fixed in place. As usual, these cells are treated as placement
obstructions.
To determine what your cell obstructions look like in the psyn_gui (when the
Physical View is opened) a cell's internal obstructions can be made visible
by checking the check box next to 'Obstruction'. Likewise, the cell's port
shapes can be made visible by checking the check box for 'Port Shape'. In
the standard display mode for cells, all cells that are fixed in place will
show up in a different color. The color setting can be modified in the Cell
Preferences menu.
Any cell that is fixed in place may have an additional constraint
attached to it called a 'keepout_margin'.
Fixed Placement Keepout Margins
-------------------------------
Typically, keepout margins are specified around hard macros such as RAMs and
ROMs to avoid routing congestion around the corners of these objects. The
keepout margin defines an extended 'no-placement-zone' around the specified
cell. PhysOpt goes one step farther and allows the user to define keepout
margins around any cell that has been fixed in place.
Prior to version 2001.08, a variable was used to define global keepout
margins. As of version 2001.08, commands relating to keepout margins have
been added to enhance the usability of keepout regions. Now users can
specify margins on a per-instance basis, as well as define keepouts on a
per-edge basis (each edge can have a different keepout margin).
set_keepout_margin -type hard | soft \
-outer {lx by rx ty} object_list
report_keepout_margin [-type hard | soft ] object_list
remove_keepout_margin [-type hard | soft ] object_list
Keepout areas can be of two types:
Hard: An area you can automatically create, within which the
rough placer AND the legalization engine avoid placing cells.
Soft: An area you can automatically create, within which the
rough placer avoids placing cells. During the legalizing
process, cells can slide into the area, but the distance they
travel is minimal.
Part of the hidden beauty of these commands is that the user can
experiment with 'soft modifications' to their floorplan without having
to re-floorplan their design.
- Cyrus Malek
Synopsys, Inc. Austin, Texas
|
|