set_multitile_location macro_name [-fixed value]\
-location {x y} \
-tile {name1 relative_x1 relative_y1} \
-tile {name2 relative_x2 relative_y2} \
[-tile {name3 relative_x3 relative_y3} \ ]
[-tile {name4 relative_x4 relative_y4} \ ]
macro_name
Specifies the hierarchical name of the macro in the netlist to assign to a particular location on the chip.
-fixed value
Sets whether the location of this set of macros is fixed (that is, locked). Locked macros are not moved during layout. The default is yes. The following table shows the acceptable values for this argument:
Value |
Description |
yes |
The location of this instance is locked. |
no |
The location of this instance is unlocked. |
-location {x y}
The x and y coordinates specify the absolute placement of the macro on the chip. You can use the ChipPlanner tool to determine the x and y coordinates of the location.
-tile {name1 relative_x1 relative_y1}
Specifies the hierarchical name and location, relative to the macro specified as the macro_name, of the first tile in a two- or four-tile macro. The relative placement of macro name1 inside the macro cannot be offset by more than one. (See Notes below for placement rules.) If the macro uses four-tile macros, then you must define all four tiles. Likewise, if the macro uses two-tile macros, you must define both tiles.
You can place the following two-tile and four-tile macros with the set_multitile_location command:
Four-tile macro |
DFN1P1C1 |
DFI1P1C1 |
DFN0P1C1 |
DFI0P1C1 |
Two-tile macro |
DLN1P1C1 |
DLI1P1C1 |
DLN0P1C1 |
DLI0P1C1 |
Due to the ProASIC3/E architecture, if the CLR and PRE pins are NOT driven by a clock net (global, quadrant or local clock net), the enable flip-flop macros (shown below) are mapped to two-tile flip-flop macros. When CLR and PRE pins are not driven by a clock net, you must use the set_multitile_location command instead of the set_location command.
DFN1E1C0 DFN0E1C1 DFN1E0P1 DFN0E0P0 DFI1E1C0 DFI0E1P1 DFI1E0P0 |
DFN0E1C0 DFN1E0C1 DFN0E0P1 DFI1E1C1 DFI0E1C0 DFI1E0P1 DFI0E0P0 |
DFN1E0C0 DFN0E0C1 DFN1E1P0 DFI0E1C1 DFI1E0C0 DFI0E0P1 |
DFN0E0C0 DFN1E1P1 DFN0E1P0 DFI1E0C1 DFI0E0C0 DFI1E1P0 |
DFN1E1C1 DFN0E1P1 DFN1E0P0 DFI0E0C1 DFI1E1P1 DFI0E1P0 |
During compile, Designer maps the specified enable flip-flop macro to a two-tiled macro.
If the CLR and PRE pins are driven by a clock net, Designer maps these macros to one tile during compile. In this case, you cannot use the set_multitile_location command to place them. Instead, you must use the set_location command.
Four-tile macros: U0
--- U1 --- U2 --- U3
Two-tile macros: U0
--- U1
None
set_multitile_location multi_tileff -location {10 10} \
-tile { multi_tileff/U0 0 0 } \
-tile { multi_tileff/U1 0 1 } \
-tile { multi_tileff/U2 0 2 } \
-tile { multi_tileff/U3 0 3 } -fixed yes
set_multitile_location multi_tileff -location {10 10} \
-tile { multi_tileff/U0 0 0 } \
-tile { multi_tileff/U1 1 0 }