10. CPU2901

10. 1. Design Description

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.

10. 2. Database Generation

10. 2. 1. Global Configuration

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.

10. 2. 2. Database Generation

The generation launch is done through the command hitas:

avt_LoadFile cpu2901.spi
set fig [hitas cpu2901] 

10. 3. Database Analysis

10. 3. 1. Path Searching with the Tcl Interface

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.

10. 4. Timing Checks

The complete configuration required for stability analysis takes place in the sta.tcl.

10. 4. 1. Timing Constraints

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

10. 4. 2. STA

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.

10. 4. 3. OCV

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

10. 4. 4. Crosstalk Analysis

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.