21.6.21 SYNTHESIZE

Description

"SYNTHESIZE" is a command tool used in configure_tool and run_tool. Configure_tool is a general purpose Tcl command that allows you to configure a tool’s parameters and values prior to executing the tool. Configure tool then executes the specified tool with the configured parameters with run_tool command.

configure_tool -name {SYNTHESIZE} [-params {name:value}]
run_tool -name {SYNTHESIZE} 

Arguments

ParameterTypeDescription
CLOCK_ASYNCintegerSpecifies the threshold value for asynchronous pin promotion to a global net. The default is 12.
CLOCK_GLOBALintegerSpecifies the threshold value for Clock pin promotion. The default is 2.
CLOCK_DATAintegerSpecifies the threshold value for data pin promotion.The default is 5000. The possible values are integer values between 1000 and 200,000.
RAM_OPTIMIZED_FOR_POWERbooleanSet to true or 1 to optimize RAM for Low Power; RAMS are inferred and configured to ensure the lowest power consumption. Set to false or 0 to optimize RAM for High Speed at the expense of more FPGA resources. The possible values are boolean {true | false | 1 | 0}.
RETIMINGbooleanSet to true or 1 to enable Retiming during synthesis. Set to false or 0 to disable Retiming during synthesis. The possible values are boolean {true | false | 1 | 0}.
SYNPLIFY_OPTIONSstringSpecifies additional synthesis-specific options. Options specified by this parameter override the same options specified in the user Tcl file if there is a conflict.
SYNPLIFY_TCL_FILEstringSpecifies the absolute or relative path name to the user Tcl file containing synthesis-specific options.
BLOCK_MODEbooleanSet to true or 1 when you have blocks in your design and you want to enable the Block mode. Set it to false or 0 if you don’t have blocks in your design. Default is false or 0. The possible values are boolean {true | false | 1 | 0}.
BLOCK_PLACEMENT_CONFLICTSstringInstructs the COMPILE engine what to do when the software encounters a placement conflict. When set to: ERROR - Compile errors out if any instance from a Designer block becomes unplaced. This is the default.KEEP - If some instances get unplaced for any reason, the non-conflicting elements remaining are preserved but not locked. Therefore, the placer can move them into another location if necessary. LOCK- If some instances get unplaced for any reason, the non-conflicting elements remaining are preserved and locked.DISCARD – Discards any placement from the block,even if there are no conflicts. The possible values are {ERROR | KEEP | LOCK | DISCAR D}.
BLOCK_ROUTING_CONFLICTSstringInstructs the COMPILE engine what to do when the software encounters a routing conflict. When set to: ERROR - Compile errors out if any route in any preserved net from a Designer block is deleted. This is the default. KEEP – If a route is removed from a net for any reason, the routing for the non-conflicting nets is kept unlocked. The router can re-route these nets. LOCK – If routing is removed from a net for any reason, the routing for the non- conflicting nets is kept as locked, and the router will not change them. DISCARD - Discards any routing from the block,even if there are no conflicts. The possible values are {ERROR | KEEP | LOCK | DISCAR D}.
PA4_GB_COUNTintegerThe number of available global nets is reported. Minimum for all dies is “0”. Default and Maximum values are die-dependent: 005/010 die: Default =Max = 8 025/050/060/090/150 die: Default=Max=16 RT4G075/RT4G150: Default=24, Max=48.Note: For RTG4, default is 48.
PA4_GB_MAX_RCLKINT_INSERTIONintegerSpecifies the maximum number of global nets that could be demoted to row-globals. Default is 16, Minis 0 and Max is 50.
PA4_GB_MIN_GB_FANOUT_TO_USE_RCLKINTintegerSpecifies the Minimum fanout of global nets that could be demoted to row-globals. Default is 300.Min is 25 and Max is 5000.
LANGUAGE_SYSTEM_VLOGbooleanSet to true if the Verilog files contain System Verilog constructs. The possible values are boolean {true | false}.
LANGUAGE_VERILOG_2001booleanSet to true if Verilog files contain Verilog 2001 constructs. The possible values are boolean {true | false}.
CDC_MIN_NUM_SYNC_REGS

integer

Minimum number of synchronizer registers. Range: 2 - 9. Default: 2

CDC_REPORTboolean

The generated CDC report will not contain any synchronizer circuits formed with macros instantiated from the catalog. The generated report, with the name <root_name>_cdc.csv, will be visible in the respective Synthesis node of the report view. The report contains all CDC inferred from the RTL design and explains the reason(s) why a synchronizer is considered unsafe.

The possible values are boolean {true | false}.
Return TypeDescription
IntegerBoth for "configure_tool -name {SYNTHESIZE}" and "run_tool -name {SYNTHESIZE}" returns 0 on success and 1 on failure.

Error Codes

Error CodeDescription
NoneParameter 'params' has illegal value.
NoneRequired parameter 'params' is missing.
NoneParameter 'name' has illegal value.
NoneParameter 'param_name' is not defined. Valid command formatting is 'configure_tool -name "tool name" [-params "params"]+'.
NoneRETIMING is set to an illegal value value. Legal value are true, false, 0 or 1.
NoneRETIMING has no value. Legal values are true, false, 0 or 1.
NoneRAM_OPTIMIZED_FOR_POWER is set to an illegal value value. Legal value are true, false, 0 or 1.
NoneRAM_OPTIMIZED_FOR_POWER has no value. Legal values are true, false, 0 or 1.
NonePA4_GB_MIN_GB_FANOUT_TO_USE_RCLKINT is set to an illegal value value. Legal value must be between 25 and 5000.
NonePA4_GB_MIN_GB_FANOUT_TO_USE_RCLKINT has no value. Legal value must be between 25 and 5000.
NonePA4_GB_MAX_RCLKINT_INSERTION has no value. Legal value must be between 0 and 50.
NoneCLOCK_GLOBAL is set to an illegal value value. Legal value must be between 2 and 200000.
NoneCLOCK_GLOBAL has no value. Legal value must be between 2 and 200000.
NoneCLOCK_DATA is set to an illegal value value. Legal value must be between 1000 and 200000.
NoneCLOCK_DATA has no value. Legal value must be between 1000 and 200000.
NoneCLOCK_ASYNC is set to an illegal value value. Legal value must be between 12 and 200000.
NoneCLOCK_ASYNC has no value. Legal value must be between 12 and 200000.
NoneBLOCK_ROUTING_CONFLICTS is set to an illegal value value. Legal values for BLOCK_ROUTING_CONFLICTS are ERROR, LOCK, KEEP and DISCARD.
NoneBLOCK_ROUTING_CONFLICTS has no value. Legal values for BLOCK_ROUTING_CONFLICTS are ERROR, LOCK, KEEP and DISCARD.
NoneBLOCK_PLACEMENT_CONFLICTS is set to an illegal value value. Legal values for BLOCK_PLACEMENT_CONFLICTS are ERROR, LOCK, KEEP and DISCARD.
NoneBLOCK_PLACEMENT_CONFLICTS has no value. Legal values for BLOCK_PLACEMENT_CONFLICTS are ERROR, LOCK, KEEP and DISCARD.
NoneBLOCK_MODE is set to an illegal value value. Legal value are true, false, 0 or 1.

Supported Families

Supported Families
PolarFire®
PolarFire SoC
RTG4
SmartFusion® 2
IGLOO® 2

Example

Configure "SYNTHESIZE" tool and run.

configure_tool -name {SYNTHESIZE} \ -params {BLOCK_MODE:false} \ 
               -params {BLOCK_PLACEMENT_CONFLICTS:ERROR} \
               -params {BLOCK_ROUTING_CONFLICTS:ERROR} \
               -params {CLOCK_ASYNC:12} -params {CLOCK_DATA:5010} \
               -params {CLOCK_GLOBAL:2} \
               -params {PA4_GB_MAX_RCLKINT_INSERTION:16} \
               -params {PA4_GB_MIN_GB_FANOUT_TO_USE_RCLKINT:299} \
               -params {RAM_OPTIMIZED_FOR_POWER:false} \
               -params {RETIMING:false} \
               -params {SYNPLIFY_TCL_FILE:./test.tcl} \
               -params {SYNPLIFY_OPTIONS:set_option \
               -run_prop_extract 1;
               set_option -maxfan 10000;
               set_option -clock_globalthreshold 2;
               set_option -async_globalthreshold 12;
               set_option -globalthreshold 5000;
               set_option -low_power_ram_decomp 0;} 
run_tool -name {SYNTHESIZE}

To configure Synthesis tool for adding the IDC file:

configure_tool -name {SYNTHESIZE} -params {ACTIVE_IMPLEMENTATION:synthesis}
-params {CREATE_IMPLEMENTATION_IDENTIFY:Synthesis_Jan27_N} -params
{SYNPLIFY_OPTIONS:} -params {SYNPLIFY_TCL_FILE:D:/Syn_27.tcl}
Where Syn_27.tcl script contains the following given command for adding IDC file:

set_option -ident_constraint  D:/MK.idc