The following sections summarize the syntax for timing constraints.
The following table lists the syntax used when creating TNMs, which you enter directly on the primitive symbol, macro symbol, net, or driver pin.
TNM Attribute Syntax | Where Applied |
---|---|
Schematic syntax: TNM=identifier TNM=predefined_group identifier UCF syntax: {NET | PIN | INSTANCE} name TNM=identifier {NET | PIN | INSTANCE} name TNM=predefined_group:identifier; | Net, Symbol, Pin, Macro |
The following table lists the syntax used with the TIMEGRP primitive.
Group Type | TIMEGRP Attribute Syntax |
---|---|
Combine | Schematic syntax in TIMEGRP primitive: new_group=group1 group2 [ group3 . . .] UCF syntax: TIMEGRP new_group=group1:group2 [ group3 . . .]; |
Exclude | Schematic syntax in TIMEGRP primitive: new_group=group1[:group2 . . .] EXCEPT group3[ group4 ...] UCF syntax: TIMEGRP new_group=group1[:group2 . . .] EXCEPT group3[ group4 ...]; |
Clock Edge (flip-flops) | Schematic syntax in TIMEGRP primitive: new_group=RISING group1 new_group=FALLING group1 UCF syntax: TIMEGRP new_group=RISING group1; TIMEGRP new_group=FALLING group1; |
Gate Edge (latches) | Schematic syntax in TIMEGRP primitive: new_group=TRANSHI group1 new_group=TRANSLO group1 UCF syntax: TIMEGRP new_group=TRANSHI group1; TIMEGRP new_group=TRANSLO group1; |
Pattern Matching | Schematic syntax in TIMEGRP primitive: new_group=predefined_group (name_qualifier1[ name_qualifier2 . . .]) UCF syntax: TIMEGRP new_group=predefined_group (name_qualifier1[ name_qualifier2 . . .]); |
Net-specific OFFSETs | Schematic syntax when attached to a net: OFFSET = {IN|OUT} offset_time [units] {BEFORE|AFTER} clk_name [TIMEGRP group_name] UCF syntax: NET name OFFSET = {IN|OUT} offset_time [units] {BEFORE|AFTER} clk_name [TIMEGRP group_name]; PCF syntax: COMP iob_name OFFSET = {IN|OUT} offset_time [units] {BEFORE|AFTER} COMP clk_iob_name [TIMEGRP group_name]; |
The following table lists the syntax used for parameters that define TS attributes, which reside in the TIMESPEC primitive or appear in UCF or NCF files.
Spec Type | TS Attribute Syntax |
---|---|
Basic From-To | Schematic syntax in TIMESPEC primitive: TSid=FROM source_group TO dest_group delay TSid=FROM source_group delay TSid=TO dest_group delay UCF syntax: TIMESPEC TSid=FROM:source_group TO dest_group delay; TIMESPEC TSid=FROM source_group delay; TIMESPEC TSid=TO dest_group delay; |
Ignore | Schematic syntax in TIMESPEC primitive: TSid=IGNORE UCF syntax: TIMESPEC TSid=IGNORE; |
Through point | Schematic syntax in TIMESPEC primitive: TSid=FROM source_group THRU thru_point[ THRU thru_point] TO dest_group delay TSid=FROM source_group THRU thru_point[ THRU thru_point] delay TSid=THRU thru_point[ THRU thru_point] TO dest_group delay UCF syntax: TIMESPEC TSid=FROMsource_group:THRU thru_point[ THRU thru_point] TO dest_group delay; TIMESPEC TSid=FROM source_group THRU thru_point[ THRU thru_point] delay; TIMESPEC TSid=THRU thru_point[ THRU thru_point] TO dest_group delay; |
Linked specification | Schematic syntax in TIMESPEC primitive: TSid=FROM source_group TO dest_group another_TSid [*|/]number TSid=FROM source_group another_TSid [*|/]number TSid=TO dest_group another_TSid[*|/]number UCF syntax: TIMESPEC TSid=FROM source_group TO dest_group another_TSid [*|/]number; TIMESPEC TSid=FROM source_group another_TSid [*|/]number; TIMESPEC TSid=TO dest_group another_TSid[*|/]number; |
Clock period | Schematic syntax in TIMESPEC primitive: TSid=PERIOD TNM_reference period {HIGH|LOW} [high_or_low_time] UCF syntax: TIMESPEC TSid=PERIOD TNM_reference period:{HIGH|LOW} [high_or_low_time]; |
Derived clocks | Schematic syntax in TIMESPEC primitive: TSid=PERIOD TNM_reference another_PERIOD_identifier [/|*]number{HIGH|LOW} [high_or_low_time] UCF syntax: TIMESPEC TSid=PERIOD:TNM_reference another_PERIOD_identifier [/|*]number{HIGH|LOW} [high_or_low_time]; |
TS attribute priority | normal_timespec_syntax PRIORITY integer |
Group OFFSETs | Schematic syntax in TIMESPEC primitive: TSidentifier=TIMEGRP name OFFSET= {IN|OUT} offset_time [units] {BEFORE|AFTER} clk_name [TIMEGRP group_name] The UCF and PCF syntax do not require the TSidentifier. UCF syntax: [TIMEGRP name] OFFSET= {IN|OUT} offset_time [units] {BEFORE|AFTER} clk_name [TIMEGRP group_name]; PCF syntax: [TIMEGRP name] OFFSET= {IN|OUT} offset_time [units] {BEFORE|AFTER} COMP clk_iob_name [TIMEGRP group_name]; |
The following table lists additional attributes or constraints that are used in or affect TS attributes.
Attribute Syntax | Where Applied | How Used |
---|---|---|
Schematic syntax on net, pin, symbol, or macro: TPTHRU=identifier UCF syntax: {NET | PIN | INSTANCE} name TPTHRU=identifier; | Net, symbol, pin, macro | In through point TS attribute |
Schematic syntax on net, pin, symbol, or macro: TPSYNC=identifier UCF syntax: {NET | PIN | INSTANCE} name TPSYNC=identifier; | Net, symbol, pin, macro | As group in TS attribute |
Schematic syntax on net or pin: TIG TIG=identifier UCF syntax: {NET | PIN} name TIG; {NET | PIN} name TIG=identifier; | Net, pin | Prevents timing analysis |
TSidentifier=DROP_SPEC; (Constraints file only) | N/A | Prevents timing analysis for TSidentifier |
The following table lists additional timing constraints.
Attribute Syntax | Where Applied | How Used |
---|---|---|
Schematic syntax on net or pin: PERIOD period {HIGH|LOW} [high_or_low_time] UCF syntax: {NET | PIN} name PERIOD period {HIGH|LOW} [high_or_low_time]; | Nets, pins | Specifies register clock period |
Schematic syntax: MAXSKEW=allowable_skew UCF syntax: NET name MAXSKEW=allowable_skew; PCF Syntax: {NET | TIMEGRP | ALLCLOCKNETS} name MAXSKEW=allowable_skew; | Nets, timegroups, ALLCLOCKNETS | Specifies skew |
Schematic syntax: MAXDELAY= path_value [PRIORITY integer] UCF syntax: NET net_name MAXDELAY= path_value [PRIORITY integer]; PCF syntax: TSidentifier=MAXDELAY path path_value [PRIORITY integer]; {NET | TIMEGRP | ALLCLOCKNETS} name MAXDELAY= path_value [PRIORITY integer]; PATH path_name MAXDELAY= path_value [PRIORITY integer]; ALLPATHS MAXDELAY= path_value [PRIORITY integer]; FROM group_item THRU group_item1... group_itemn MAXDELAY= path_value [PRIORITY integer]; FROM group_item THRU group_item1... group_itemn TO group_item MAXDELAY= path_value [PRIORITY integer]; THRU group_item1... group_itemn TO group_item MAXDELAY= path_value [PRIORITY integer]; | Nets, Paths, FROM:THRU, FROM:THRU:TO, THRU:TO | Specifies delay |