This example presents HITAS database construction, case analysis, OCV, Xtalk analysis, based upon a small 4-bit microprocessor design.
It takes place in the cpu2901/ directory.
The complete configuration required for the database generation takes place in the db.tcl. The script also launches the commands that effectively generate that database.
Configuration variables are set in the Tcl script by the mean of the avt_config function.
avt_config tasGenerateConeFile yes | |
tells the tool to dump on disk the .cns file, which contains the partitions (the cones) created by the partitioning algorithm. | |
inf_SetFigureName cpu2901 | |
tells the tool to apply the SDC constraints to the cpu design. | |
set_case_analysis 0 test | |
Applies a 0 constraint on the pin test | |
set_case_analysis 1 func | |
Applies a 1 constraint on the pin func |
The temperature and supplies specifications take place in the cpu2901.spi file:
.TEMP 125 .GLOBAL vdd vss Vsupply vdd 0 DC 1.62 Vground vss 0 DC 0 |
As the cpu2901.spi subcircuit is not instantiated, the vdd and vss signals appear in the .GLOBAL statement.
The generation launch is done through the command hitas:
avt_LoadFile cpu2901.spi set fig [hitas cpu2901] |
The complete configuration required for the database browsing takes place in the report.tcl.
The command:
set fig [ttv_LoadSpecifiedTimingFigure cpu2901] |
reads the timing database from disk.
The command:
set clist [ttv_GetPaths $fig * * rr 5 critic path max] |
gives the 5 most critical paths (critic and path arguments) of the design, that begin and end on a rising transition (rr argument), with no specification of signal name (* * arguments), in the database pointed out by $fig. The function returns a pointer on the newly created list.
The command:
ttv_DisplayPathListDetail $log $clist |
displays in the log file the detail of all the paths of the path list given by the ttv_GetPaths function.
The complete configuration required for stability analysis takes place in the sta.tcl.
Timing constraints are set in SDC format. Let's review the constraints commands applied to the cpu2901:
inf_SetFigureName cpu2901 | |
tells the tool to apply the SDC constraints to the design cpu2901. | |
create_clock -period 10000 -waveform {5000 0} ck | |
Creates of clock of period 10000 | |
set_input_delay -min 2000 -clock ck -clock_fall [all_inputs] | |
set_input_delay -max 3000 -clock ck -clock_fall [all_inputs] | |
Defines a switching window between times 2000 and 3000 on the input connectors |
Launch of the static timing analysis is done by invoking the following commands:
As before, the command:
set fig [ttv_LoadSpecifiedTimingFigure cpu2901] |
reads the timing database from disk.
The command:
set stbfig [stb $fig] |
launches the STA
The function:
stb_DisplaySlackReport [fopen slack.rep w] $fig * * ?? 10 all 10000 |
displays a global slack report in the file slack.rep.
Comment out the command inf_DefinePathDelayMargin and observe the differences in the slack file. This command adds a margin of 1ns on all data paths
Launch of the crosstalk analysis is done by invoking the following commands (script xtalk.tcl):
As before, the command:
set fig [ttv_LoadSpecifiedTimingFigure cpu2901] |
reads the timing database from disk.
The crosstalk analysis is activated by switching on the following variables:
avt_config stbDetailedAnalysis yes avt_config stbCrosstalkMode yes |
The command:
set stbfig [stb $fig] |
launches the crosstalk-aware STA
The function:
stb_DisplaySlackReport [fopen slack_xtalk.rep w] $fig * * ?? 10 all 10000 |
prints a global slack report in the file slack_xtalk.rep, displaying variations due to crosstalk effects.