Macro

Defines the locations of a sub-design as a macro so that you are able to reuse this placement in different instantiations of the sub-design.

 

macro name (x1, y1 x2, y2) {

macro_statements

}

Arguments

name

Specifies the macro name identifier

 

x1, y1

Specifies the lower-left coordinate of the macro.

 

x2, y2

Specifies the upper-right coordinate of the macro.   

 

macro_statements

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:

The transformations are processed in the order in which they are defined in the statement.

Supported Families

ProASIC

Description

The macro constraint must precede the corresponding set_location that places the macro in the GCF file(s) as in the following example:

macro mult (1,1 6,6) {

set_location...

}

Nested macros are not allowed. The location statements inside a macro definition must refer to individual cell instances and not to complete sub-designs.

Exceptions

Examples

set_location (3,3) a/b mult flip lr;

 

set_initial_location (3,3) a/b mult flip lr;

See Also

Constraint support by family

Constraint entry table

GCF syntax conventions