21.6.12 PLACEROUTE

Description

To place and route a design in Libero SoC, you must first configure the "PLACEROUTE" tool with the configure_tool command and then execute the "PLACEROUTE" tool with the run_tool command.

Note: At least one "parameter:value" must be specified. You can repeat -params argument for multiple parameters.
configure_tool -name {PLACEROUTE} -params {parameter:value} 
run_tool -name {PLACEROUTE}

Arguments

The following table list the "PLACEROUTE" arguments for PolarFire.

ParameterTypeDescription
TDPRbooleanSet to true or 1 to enable Timing-Driven Place and Route. Default is true or 1.
PDPRbooleanSet to true or 1 to enable Power-Driven Place and Route. Default is false or 0.
IOREG_COMBININGbooleanSet to true or 1 to enable I/O Register Combining. Default is false or 0.
GB_DEMOTIONbooleanSet to true or 1 to enable Global Pins Demotion. Default is true or 1.
REPLICATIONbooleanSet to true or 1 to enable Driver Replication. Default is false or 0.
EFFORT_LEVELbooleanSet to true or 1 to enable High Effort Layout to optimize design performance. Default is false or 0.
INCRPLACEANDROUTEbooleanSet to true or 1 to use previous placement data as the initial placement for the next run. Default is false or 0. This parameter gets reset to false or 0 after each run of Place and Route to prevent inadvertent loss of performance across large design changes. Incremental Place and Route should be used in conjunction with Compile points synthesis.
REPAIR_MIN_DELAYbooleanSet to True or 1 to enable Repair Minimum Delay violations. Default is false or 0.
MULTI_PASS_LAYOUTbooleanSet to true or 1 to enable Multi-Pass Layout Mode for Place and Route. Default is false or 0.
NUM_MULTI_PASSESintegerSpecifies the positive number of passes to run. The default is 5.
START_SEED_INDEXintegerIndicates the random seed index(positive integer) which is the starting point for the Multi-pass Layout. If not specified, the default behavior is to continue after the last seed index which was used.
MULTI_PASS_CRITERIAstringSpecifies the criteria used to run multi-pass layout. The acceptable values are the following:
  • SLOWEST_ClOCK: Use the slowest clock Fmax in the design in a given pass as the performance reference for the layout pass.
  • SPECIFIC_CLOCK: Use a specific clock performance as the reference for all layout passes.
  • VIOLATIONS: Apply SLACK_CRITERIA from the Timing violations report as the performance reference for all passes. This is the default criterion.
  • TOTAL_POWER: Specifies the best pass to be the one that has the lowest total power (static + dynamic) out of all layout passes.
SPECIFIC_CLOCKstringApplies only when MULTI_PASS_CRITERIA is set to SPECIFIC_CLOCK. It specifies the name of the clock in the design used for performance measurement.
DELAY_ANALYSISstringApplies only when MULTI_PASS_CRITERIA is set to VIOLATIONS. Specifies the type of timing violations (slacks) to be examined. The acceptable values are the following:
  • max: Use timing violations (slacks) obtained from maximum delay analysis. This is the default.
  • min: Use timing violations (slacks) obtained from minimum delay analysis.
STOP_ON_FIRST_PASSbooleanApplies only when MULTI_PASS_CRITERIA is set to VIOLATIONS. It stops performing remaining passes if all timing constraints are met (when there are no negative slacks reported in the timing violations report).
Note: The type of timing violations (slacks) used is determined by the DELAY_ANALYSIS parameter.
SLACK_CRITERIAstringApplies only when MULTI_PASS_CRITERIA is set to VIOLATIONS. Specifies how to evaluate the timing violations (slacks). The acceptable values are the following:
  • WORST_SLACK: The largest amount of negative slack (or least amount of positive slack if all constraints are met) for each pass is identified and then the largest value out of all passes will determine the best pass. This is the default value.
  • TOTAL_NEGATIVE_SLACK: The sum of negative slacks from the first 100 paths for each pass in the Timing Violation report is identified. The largest value out of all passes will determine the best pass. If no negative slacks exist for a pass, then use the worst slack to evaluate that pass.
    Note: The type of timing violations (slacks) used is determined by the DELAY_ANALYSIS parameter.
RGB_COUNTintegerAllows an entity to override the placer's RGB/RCLK bandwidth constraint. This option is useful for Block Creation. The possible values for this parameter are 1-18.
RANDOM_SEEDintegerSets the actual seed non-negative integer value for next Place and Route run. When MULTI_PASS_LAYOUT is True or 1, the START_SEED_INDEX takes precedence over RANDOM_SEED. It overrides RANDOM_SEED for the first run to $START_SEED_INDEX-1.

The following table list the "PLACEROUTE" arguments for SmartFusion 2, IGLOO 2 and RTG4.

ParameterTypeDescription
TDPRbooleanSet to true or 1 to enable Timing-Driven Place and Route. Default is true or 1.
PDPRbooleanSet to true or 1 to enable Power-Driven Place and Route. Default is false or 0.
IOREG_COMBININGbooleanSet to true or 1 to enable I/O Register Combining. Default is false or 0.
EFFORT_LEVELbooleanSet to true or 1 to enable High Effort Layout to optimize design performance. Default is false or 0.
INCRPLACEANDROUTEbooleanSet to true or 1 to use previous placement data as the initial placement for the next run. Default is false or 0.
REPAIR_MIN_DELAYbooleanSet to True or 1 to enable Repair Minimum Delay violations for the routher when TDPR option is set to true or 1. Default is false or 0.
NUM_MULTI_PASSESintegerSpecifies the positive number of passes to run. The default is 5. Maximum is 25.
START_SEED_INDEXintegerIndicates the random seed index(positive integer) which is the starting point for the passes. Its value should range from 1 to 100. If not specified, the default behavior is to continue from the last seed index which was used.
MULTI_PASS_LAYOUTbooleanSet to true or 1 to enable Multi-Pass Layout Mode for Place and Route. Default is false or 0.
MULTI_PASS_CRITERIAstringSpecifies the criteria used to run multi-pass layout. The acceptable values are the following:
  • SLOWEST_ClOCK: Use the slowest clock frequency in the design in a given pass as the performance reference for the layout pass.
  • SPECIFIC_CLOCK: Use a specific clock frequency as the performance reference for all layout passes.
  • VIOLATIONS: Use the pass that best meets the slack or timing-violations constraints. This is the default.
  • TOTAL_POWER: Specifies the best pass to be the one that has the lowest total power (static + dynamic) out of all layout passes.
SPECIFIC_CLOCKstringApplies only when MULTI_PASS_CRITERIA is set to SPECIFIC_CLOCK. It specifies the name of the clock in the design used for Timing Violation Measurement.
DELAY_ANALYSISstringUsed only when MULTI_PASS_CRITERIA is set to “VIOLATIONS”. Specifies the type of timing violations (slacks) to be examined. The default is "max."
  • max: Use timing violations (slacks) obtained from maximum delay analysis.
  • min: Use timing violations (slacks) obtained from minimum delay analysis.
STOP_ON_FIRST_PASSbooleanApplies only when "MULTI_PASS_CRITERIA" is set to "VIOLATIONS." It stops performing remaining passes if all timing constraints are met (when there are no negative slacks reported in the timing violations report).
Note: The type of timing violations (slacks) used is determined by the "DELAY_ANALYSIS" parameter.
SLACK_CRITERIAstringApplies only when "MULTI_PASS_CRITERIA" is set to "VIOLATIONS." Specifies how to evaluate the timing violations (slacks). The acceptable values are the following:
  • WORST_SLACK: The largest amount of negative slack (or least amount of positive slack if all constraints are met) for each pass is identified and then the largest value out of all passes will determine the best pass. This is the default value.
  • TOTAL_NEGATIVE_SLACK: The sum of negative slacks from the first 100 paths for each pass in the Timing Violation report is identified. The largest value out of all passes will determine the best pass. If no negative slacks exist for a pass, then use the worst slack to evaluate that pass.
    Note: The type of timing violations (slacks) used is determined by the "DELAY_ANALYSIS" parameter.
RGB_COUNTintegerAllows an entity to override the placer's RGB/RCLK bandwidth constraint. This option is useful for Block Creation. The possible values for this parameter are 1-18.
Return TypeDescription
IntegerReturns 0 on success and 1 on failure.

Error Codes

Error CodeDescription
NoneEFFORT_LEVEL is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneINCRPLACEANDROUTE is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneMULTI_PASS_CRITERIA is set to an illegal value 'value'. Legal values are SLOWEST_CLOCK, SPECIFIC_CLOCK, VIOLATIONS and TOTAL_POWER.
NoneIOREG_COMBINING is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NonePDPR is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneREPAIR_MIN_DELAY is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneSLACK_CRITERIA is set to an illegal value 'value'. Legal values are WORST_SLACK and TOTAL_NEGATIVE_SLACK.
NoneSTART_SEED_INDEX is set to an illegal value 'value'. Legal values must be between 1 and 101.
NoneSTOP_ON_FIRST_PASS is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneTDPR is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneGB_DEMOTION is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneREPLICATION is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneMULTI_PASS_LAYOUT is set to an illegal value 'value'. Legal value are true, false, 0 or 1.
NoneDELAY_ANALYSIS is set to an illegal value 'value'. Legal values are MAX and MIN.

Supported Families

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

Example

The following example configures "PLACEROUTE" for PolarFire:

configure_tool -name {PLACEROUTE} \
               -params {TDPR:true} \
               -params {EFFORT_LEVEL:true} \
               -params {GB_DEMOTION:true} \
               -params {INCRPLACEANDROUTE:false} \
               -params {IOREG_COMBINING:false} \
               -params {PDPR:false} \
               -params {REPAIR_MIN_DELAY:true} \
               -params {REPLICATION:false} \
               -params {MULTI_PASS_LAYOUT:true} \
               -params {MULTI_PASS_CRITERIA:VIOLATIONS} \
               -params {NUM_MULTI_PASSES:5} \
               -params {SLACK_CRITERIA:WORST_SLACK} \
               -params {START_SEED_INDEX:1} \
               -params {STOP_ON_FIRST_PASS:false}
run_tool -name {PLACEROUTE}

The following example configures "PLACEROUTE" for SmartFusion 2:

configure_tool -name {PLACEROUTE} \
               -params {EFFORT_LEVEL:true} \
               -params {INCRPLACEANDROUTE:false} \
               -params {IOREG_COMBINING:false} \
               -params {MULTI_PASS_CRITERIA:VIOLATIONS} \
               -params {MULTI_PASS_LAYOUT:false} \
               -params {NUM_MULTI_PASSES:5} \
               -params {PDPR:false} \
               -params {REPAIR_MIN_DELAY:true} \
               -params {SLACK_CRITERIA:WORST_SLACK} \
               -params {SPECIFIC_CLOCK:} \
               -params {START_SEED_INDEX:1} \
               -params {STOP_ON_FIRST_PASS:false} \
               -params {TDPR:true}