macro name (x1, y1 x2, y2) {
macro_statements
}
name
Specifies the macro name identifier
Specifies the lower-left coordinate of the macro.
Specifies the upper-right coordinate of the macro.
Any of the following statements:
set_location (x, y) hier_inst_name;
set_initial_location (x, y) hier_inst_name;
set_empty_location (x, y);
You can use the set_location or set_initial_location statements to place or initially place a sub-design instance by calling its macro and then applying a translation and rotation.
set_initial_location (x, y) hier_inst_name
macro_name [transformations];
Where hier_inst_name is the hierarchical name of the instance of the sub-design, x, y is the final location of the lower-left corner of the macro after all transformations have been completed, macro_name is the name of previously defined macro, and transformations are optional, and any of the following in any order:
flip lr - flip cell from left to right
flip ud - flip cell from up to down
rotate 90 cw - rotate 90° clockwise
rotate 270 cw - rotate 270° clockwise
rotate 90 ccw - rotate 90° counter-clockwise
rotate 180 ccw - rotate 180° counter-clockwise
rotate 270 ccw - rotate 270° counter-clockwise
The transformations are processed in the order in which they are defined in the statement.
macro mult (1,1 6,6) {
set_location...
}
None
set_location (3,3) a/b mult flip lr;
set_initial_location (3,3) a/b mult flip lr;