...
Name | Type | Description (Default value in bold) | |
searchPathLimit | unsigned | maximum number of paths computed for each domain. (default value is 10) | |
maximumSlack | integer | maximum reportable slack in ps. (default is unlimited) | |
conditions | string
| ‘bestcase’ : Voltage = typical core voltage + 0.1V Temperature = -40°C 'typical’ : Voltage = typical core voltage Temperature = 25°C ‘worstcase’ : Voltage = typical core voltage - 0.1V Temperature = 125°C | |
...
Name | Type | Description |
group1 | string | Mandatory. Specifies how to get a group of clocks. A valid clock should be a clock created by command createClock. A valid argument can be: |
group2 | string | Mandatory. Same as the argument "group1" |
option | string | Mandatory. A valid option can be 'asynchronous' or 'exclusive': Asynchronous clocks are those that are completely unrelated. Exclusive clocks are not actively used in the design at the same time. For asynchronous clocks, paths between clock domains are reported without raising violations. For exclusive clocks, paths between clock domains are reported and so no violation is reported neither. By default, clocks are considered synchronous, paths between clock domains are reported and violations can be raised. |
Examples:
Code Block | ||
---|---|---|
| ||
project = createProject() project.load('routed.nym') project.createClock(name ='clk1', period = 2.7, target= 'getRegister(UUT1\|Gen_seq[2].seq_i\|temp_reg[13])') project.createClock(name = 'clk2', period = 5, rising = 0, falling = 2, target= 'getClockNet(CLOCK[2])') project.setClockGroup(group1 = 'getClock(clk1)', group2 = 'getClock(clk2)', option = 'exclusive') |
...
This method specifies the data arrival times at the specified input ports relative to the clock. The clock must refer to a clock name in the design. This constraint is used by timing driven algorithms and static timing analysis. Depending on the unit define in the project, timings are in ns or ps.
Arguments:
Name | Type | Description |
clock | string | Mandatory. Specifies how to get a clock specified. A valid clock should be a clock created by command createClock. The valid argument is |
clockMode | string | Optional. Specifies that input delay is relative to the falling or rising edge of the clock. It must be "rise"' or "fall". Default value is rise. |
min | float | Optional. Applies value as minimum data delay, it refers to the longest path. The default value is max if the max is defined, otherwise it is set to 0. |
max | float | Optional. Applies value as maximum data delay, it refers to the shortest path. The default value is min if the min is defined, otherwise it is set to 0. |
ports | string | Mandatory. Specifies how to get a list of input pads. A valid argument can be: |
...
This command specifies the data required times at the specified output ports relative to the clock. The clock must refer to a clock defined in the design. This constraint is used by timing driven algorithms and static timing analysis. Depending on the unit defined in the project, timings could be in ns or ps.
Arguments:
...
Name
...
Type
Arguments:
Name | Type | Description |
clock | string | Mandatory. Specifies how to get a clock specified. A valid clock should be a clock created by command createClock. A valid argument can be: |
clockMode | string | Optional. Specifies that output delay is relative to the falling or rising edge of the clock. It must be "rise"' or "fall". The default value is “rise”. |
min | float | Optional. Applies value as minimum data delay, it refers to the longest path. The default value is max if the max is defined, otherwise it is set to 0. |
max | float | Optional. Applies value as maximum data delay, it refers to the shortest path. The default value is min if the min is defined, otherwise it is set to 0. |
ports | string | Mandatory. Specifies how to get a list of input pads. A valid argument can be: |
...
Code Block |
---|
Timing_analysis = p.createAnalyzer() Timing_analysis.addReportTimingRequest(source = 'getRegister(i_cpt_0|s_cpt_out_reg[1])', target ='getRegister(i_cpt_1|s_cpt_out_reg[2])') Timing_analysis.launch() |
reportTiming(source=‘source_reg', target=
...
‘target_reg’,[conditions=’conditions'],[maximumSlack=slack],[searchPathsLimit=limit],[persistent=persistent])
This method gives the shortest and the longest delays of a path.
...
Name | Type | Description |
---|---|---|
source_reg | string | Specifies the starting points of the timing paths to be analyzed. A valid argument can only be a register : |
target_reg | string | Specifies the ending points or destination objects of timing paths to be analyzed. A valid argument can be: |
conditions |
Example:
This method should be launched after creating an Analyzer, as follow :
...
string | ‘bestcase’ : Voltage = typical core voltage + 0.1V / Temperature = -40°C 'typical’ : Voltage = typical core voltage /Temperature = 25°C ‘worstcase’ : Voltage = typical core voltage - 0.1V /Temperature = 125°C | |
maximumSlack | float | maximum reportable slack. (default is unlimited) |
searchPathsLimit | integer | maximum number of paths computed for each domain. (default value is 10) |
persistent | bool | If enable, the report request is kept by Analyzer even after the analysis ended (default value is True) |
Example:
This method should be launched after creating an Analyzer, as follow :
Code Block |
---|
Timing_analysis = p.createAnalyzer() Timing_analysis.ReportTiming(source = 'getRegister(i_cpt_0|s_cpt_out_reg[1])', target ='getRegister(i_cpt_1|s_cpt_out_reg[2])'])') Timing_analysis.ReportTiming(source = 'getRegister(i_cpt_0|s_cpt_out_reg[1])', target ='getRegister(i_cpt_1|s_cpt_out_reg[2])', conditions='worstcase', maximumSlack=10, searchPathLimit=1000, persistent=True) |
addReportPathRequest(source = ‘source_pin', target = 'target_pin’)
...
Note |
---|
It is not possible to report a clock path with this method. Rather use reportTiming. |
reportPath(source = ‘source_pin', target = 'target_pin’
...
,[conditions=’conditions'],[maximumSlack=slack],[searchPathsLimit=limit],[persistent=persistent]
This method gives the shortest and the longest delays of a path.
...
Timing log files will only contain paths found between sources and targets from these queries.
Arguments:
Name | Type | Description | sourceDescription | |
---|---|---|---|---|
source_pin | string | Specifies the starting points of the timing paths to be analyzed. A valid argument can be a a pin or a port: | ||
target_pin | string | Specifies the starting ending points or destination objects of the timing paths to be analyzed. A valid argument can be a a pin or a port: | ||
target_pinconditions | stringSpecifies the ending points or destination objects of timing paths to be analyzed. A valid argument can be a pin or a port: | ‘bestcase’ : Voltage = typical core voltage + 0.1V / Temperature = -40°C 'typical’ : Voltage = typical core voltage /Temperature = 25°C ‘worstcase’ : Voltage = typical core voltage - 0.1V /Temperature = 125°C | ||
maximumSlack | float | maximum reportable slack. (default is unlimited) | ||
searchPathsLimit | integer | maximum number of paths computed for each domain. (default value is 10) | ||
persistent | bool | If enable, the report request is kept by Analyzer even after the analysis ended (default value is True) |
Example:
This method should be launched after creating an Analyzer, as follow :
...
:
Code Block |
---|
Timing_analysis = p.createAnalyzer() Timing_analysis.reportPath(source = p.createAnalyzer()'getPin(i_cpt_0|s_cpt_out_reg[1].CK)', target ='getPin(i_cpt_1|s_cpt_out_reg[2].I)') Timing_analysis.ReportPathreportPath(source = 'getPin(i_cpt_0|s_cpt_out_reg[1].CK)', target ='getPin(i_cpt_1|s_cpt_out_reg[2].I)', conditions='worstcase', maximumSlack=10, searchPathLimit=1000, persistent=True)) |
Note |
---|
It is not possible to report a clock path with this method. Rather use reportTiming. |
...