21.6.12 PLACEROUTE
(Ask a Question)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.
| Parameter | Type | Description | 
|---|---|---|
| TDPR | boolean | Set to true or 1 to enable Timing-Driven Place and Route. Default is true or 1. | 
| PDPR | boolean | Set to true or 1 to enable Power-Driven Place and Route. Default is false or 0. | 
| IOREG_COMBINING | boolean | Set to true or 1 to enable I/O Register Combining. Default is false or 0. | 
| GB_DEMOTION | boolean | Set to true or 1 to enable Global Pins Demotion. Default is true or 1. | 
| REPLICATION | boolean | Set to true or 1 to enable Driver Replication. Default is false or 0. | 
| EFFORT_LEVEL | boolean | Set to true or 1 to enable High Effort Layout to optimize design performance. Default is false or 0. | 
| INCRPLACEANDROUTE | boolean | Set 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_DELAY | boolean | Set to True or 1 to enable Repair Minimum Delay violations. Default is false or 0. | 
| MULTI_PASS_LAYOUT | boolean | Set to true or 1 to enable Multi-Pass Layout Mode for Place and Route. Default is false or 0. | 
| NUM_MULTI_PASSES | integer | Specifies the positive number of passes to run. The default is 5. | 
| START_SEED_INDEX | integer | Indicates 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_CRITERIA | string | Specifies the criteria used to run multi-pass layout. The acceptable values are the following: 
  | 
| SPECIFIC_CLOCK | string | Applies 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_ANALYSIS | string | Applies 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: 
  | 
| STOP_ON_FIRST_PASS | boolean | Applies 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_CRITERIA | string | Applies only when MULTI_PASS_CRITERIA is set to VIOLATIONS. Specifies how to evaluate the timing violations (slacks). The acceptable values are the following: 
  | 
| RGB_COUNT | integer | Allows 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_SEED | integer | Sets 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.
| Parameter | Type | Description | 
|---|---|---|
| TDPR | boolean | Set to true or 1 to enable Timing-Driven Place and Route. Default is true or 1. | 
| PDPR | boolean | Set to true or 1 to enable Power-Driven Place and Route. Default is false or 0. | 
| IOREG_COMBINING | boolean | Set to true or 1 to enable I/O Register Combining. Default is false or 0. | 
| EFFORT_LEVEL | boolean | Set to true or 1 to enable High Effort Layout to optimize design performance. Default is false or 0. | 
| INCRPLACEANDROUTE | boolean | Set to true or 1 to use previous placement data as the initial placement for the next run. Default is false or 0. | 
| REPAIR_MIN_DELAY | boolean | Set 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_PASSES | integer | Specifies the positive number of passes to run. The default is 5. Maximum is 25. | 
| START_SEED_INDEX | integer | Indicates 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_LAYOUT | boolean | Set to true or 1 to enable Multi-Pass Layout Mode for Place and Route. Default is false or 0. | 
| MULTI_PASS_CRITERIA | string | Specifies the criteria used to run multi-pass layout. The acceptable values are the following: 
  | 
| SPECIFIC_CLOCK | string | Applies 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_ANALYSIS | string | Used only when MULTI_PASS_CRITERIA is set to “VIOLATIONS”. Specifies the type of timing
                                violations (slacks) to be examined. The default is "max." 
  | 
| STOP_ON_FIRST_PASS | boolean | Applies 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_CRITERIA | string | Applies only when "MULTI_PASS_CRITERIA" is set to "VIOLATIONS." Specifies how to evaluate the
                                timing violations (slacks). The acceptable values are the following: 
  | 
| RGB_COUNT | integer | Allows 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 Type | Description | 
|---|---|
| Integer | Returns 0 on success and 1 on failure. | 
Error Codes
| Error Code | Description | 
|---|---|
| None | EFFORT_LEVEL is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | INCRPLACEANDROUTE is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | MULTI_PASS_CRITERIA is set to an illegal value 'value'. Legal values are SLOWEST_CLOCK, SPECIFIC_CLOCK, VIOLATIONS and TOTAL_POWER. | 
| None | IOREG_COMBINING is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | PDPR is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | REPAIR_MIN_DELAY is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | SLACK_CRITERIA is set to an illegal value 'value'. Legal values are WORST_SLACK and TOTAL_NEGATIVE_SLACK. | 
| None | START_SEED_INDEX is set to an illegal value 'value'. Legal values must be between 1 and 101. | 
| None | STOP_ON_FIRST_PASS is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | TDPR is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | GB_DEMOTION is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | REPLICATION is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | MULTI_PASS_LAYOUT is set to an illegal value 'value'. Legal value are true, false, 0 or 1. | 
| None | DELAY_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}