The Netlist object describes the electrical view of a Subcircuit. It may be either flat or hierarchical, and contains components of the files it originates from: mosfets, resistances, capacitances and instances.
Property codes:
TOP_LEVEL | TimingFigure*. Top level TimingFigure the current TimingFigure belongs to. |
STABILITY_FIGURE | StabilityFigure*. Stability figure built on the current TimingFigure. |
NAME | char*. Name of the timing figure given as parameter. |
TEMP | double. Reference temperature the TimingFigure has been built with. |
DEF_SUPPLY | double. Reference power supply the TimingFigure has been built with. |
DEF_LOAD | double. Default load for output connectors. |
DEF_SLOPE | double. Default slope for input connectors. |
TH_LOW | double. Low threshold in slope computing |
TH_HIGH | double. High threshold in slope computing |
TECH_NAME | char*. Technolgy name |
DATE | char*. Date of generation |
TIME | char*. Time of generation |
Properties described above are available through function:
ttv_GetTimingFigureProperty <timing_figure> <code> |
Property codes:
IS_CLOCK | char*. Returns yes if the timing signal is defined as a clock. no otherwise. |
IS_ASYNCHRONOUS | char*. Returns yes if the timing signal is defined as an asynchronous pin. no otherwise. |
DIR | char. Direction of connector. Values can be i (input), o (output), b (bidirectional), t (tristate), z (HZ), u (unknown). |
CAPA | double. Total capacitance on signal (in Farads). |
LOAD | double. External load if the signal is an output connector (in Farads). |
LEFT_BOUND | int. Left bound of connector range. If signal is not a vector, value is -1. |
RIGHT_BOUND | int. Right bound of connector range. If signal is not a vector, value is -1. |
TOP_LEVEL | TimingFigure*. Top level timing figure the timing signal belongs to. |
NET_NAME | char*. Net name of timing signal. |
NAME | char*. Name of timing signal. |
TYPE | char*. Type of a timing signal. Possible values are connector, command, latch, flip-flop, precharge, breakpoint, internal, signal or an eventual concatenation of possible configurations. |
EVENT_UP | TimingEvent*. Pointer to the rising TimingEvent related to the TimingSignal. |
EVENT_DOWN | TimingEvent*. Pointer to the falling TimingEvent related to the TimingSignal. |
RISING_SLOPE | double. Input slope set on TimingSignal as an external constraint (only valid for input connectors). |
FALLING_SLOPE | double. Input slope set on TimingSignal as an external constraint (only valid for input connectors). |
LEAKAGE_UP_MAX | double. Maximum leakage current in the high state (in Amps). |
LEAKAGE_UP_MIN | double. Minimum leakage current in the high state (in Amps)e. |
LEAKAGE_DN_MAX | double. Maximum leakage current in the low state (in Amps). |
LEAKAGE_DN_MIN | double. Minimum leakage current in the low state (in Amps). |
GATE_TYPE | char*. Returns the name of the gate type driving the timing signal if it is known. |
VOLTAGE_SWING | char*. Returns the voltage difference between the vdd and vss sypply nodes on the signal. |
Properties described above are available through function:
ttv_GetTimingSignalProperty <sig> <code> |
Property codes:
SIGNAL | TimingSignal. Signal of the timing event. |
TRANS | char. Transition direction of the timing event. Value can be u (rising) or d (falling). |
STABILITY | list of list. The list of instability gaps of the timing event available when STB has been run on the timing figure. A range is a list of 2 values. eg: {{0 10} {20 40}}. |
Properties described above are available through function:
ttv_GetTimingEventProperty <timing_event> <code> |
Property codes:
DELAY | double. Delay attached to the timing path. If a crosstalk analysis has been run on the timing figure, this delay take into account the crosstalk effect. |
REF_DELAY | double. Delay attached to the timing path. Crosstalk effect is not taken into account. |
SIM_DELAY | double. Simulated delay attached to the timing path. Returns -1 if simulation had failed. |
DATA_LAG | double. Only for clock-to-q access paths: waiting delay for the data to be available on the latch's input, after the latch opening (value is present only after stability analysis). |
SLOPE | double. Output slope attached to the timing path. If a crosstalk analysis has been run on the timing figure, this slope take into account the crosstalk effect. |
REF_SLOPE | double. Output slope attached to the timing path. Crosstalk effect is not taken into account. |
SIM_SLOPE | double. Simulated output slope attached to the timing path. Returns -1 if simulation had failed. |
START_TIME | double. Start time of the timing path. |
START_SLOPE | double. Start slope of the timing path. |
START_SIG | TimingSignal*. Starting node of the timing path. |
END_SIG | TimingSignal*. Ending node of the timing path. |
START_EVENT | TimingEvent*. Starting timing event of the timing path. |
END_EVENT | TimingEvent*. Ending timing event of the timing path. |
COMMAND | TimingEvent*. Timing event corresponding to the command of the timing path terminating on a register. In the case of a flip-flop this event is the triggering edge, in the case of a latch it is the event which opens the latch for writing. |
ACCESS_COMMAND | TimingEvent*. Timing event corresponding to the command of the latch or precharge crossed by the timing path when the path is an access. The result is the event which opens the latch for writing. |
ACCESS_LATCH | TimingEvent*. Timing event corresponding to the latch or precharge crossed by the timing path when the path is an access. |
START_TRAN | char. Transition direction on the starting node of the timing path. The value can be u (rising) or d (falling). |
END_TRAN | char. Transition direction on the ending node of the timing path. The value can be u (rising) or d (falling). |
TYPE | char*. Returns either min or max. |
IS_HZ | char*. Returns "yes" if the timing path is a HZ path. "no" otherwise. |
PATH_MARGIN_FACTOR | double. Path margin factor defined for this timing path. |
PATH_MARGIN_DELTA | double. Path margin delta defined for this timing path. |
Properties described above are available through function:
ttv_GetTimingPathProperty <timing_path> <code> |
Property codes:
DELAY_MAX | double. Max delay attached to the timing line. If a crosstalk analysis has been run on the timing figure, this delay take into account the crosstalk effect. |
REF_DELAY_MAX | double. Max reference delay attached to the timing path. Crosstalk effect is not taken into account. |
DELAY_MIN | double. Min delay attached to the timing line. If a crosstalk analysis has been run on the timing figure, this delay take into account the crosstalk effect. |
REF_DELAY_MIN | double. Min reference delay attached to the timing path. Crosstalk effect is not taken into account. |
SLOPE_MAX | double. Max slope attached to the timing line. If a crosstalk analysis has been run on the timing figure, this slope take into account the crosstalk effect. |
REF_SLOPE_MAX | double. Max reference slope attached to the timing path. Crosstalk effect is not taken into account. |
SLOPE_MIN | double. Min slope attached to the timing line. If a crosstalk analysis has been run on the timing figure, this slope take into account the crosstalk effect. |
REF_SLOPE_MIN | double. Min reference slope attached to the timing path. Crosstalk effect is not taken into account. |
TYPE | char. Line type: setup, hold, access, hz, rc, prech, eval or data. |
START_EVENT | TimingEvent*. Start event of the timing line. |
END_EVENT | TimingEvent*. End event of the timing line. |
COMMAND | TimingEvent*. Command event of the timing line. Returns NULL if the line is not commanded. |
Properties described above are available through function:
ttv_GetTimingLineProperty <timing_line> <code> |
Property codes:
HZ | int. Indicates if the detail is an HZ state. If true, the signal direction indicates the state of the output before being HZ. 0 if false, 1 if true. |
EVENT | TimingEvent*. Pointer to the related TimingEvent |
NODE_NAME | char*. The name of the node in timing detail |
NET_NAME | char*. The name of the net in timing detail |
SIGNAL_TYPE | char*. Type of the timing signal. Possible values are connector, command, latch, flip-flop, precharge, breakpoint, internal, signal or an eventual concatenation of possible configurations. |
DELAY | double. The delay (in seconds) of the path detail. If a crosstalk analysis has been run on the timing figure, this delay take into account the crosstalk effect. |
SLOPE | double. The slope (in seconds) of the path detail. If a crosstalk analysis has been run on the timing figure, this delay take into account the crosstalk effect. |
REF_DELAY | double. The delay (in seconds) of the path detail |
REF_SLOPE | double. The slope (in seconds) of the path detail |
SIM_DELAY | double. The simulated delay (in seconds) of the path detail. -1 if no simulation has been done or an error occurred. |
SIM_SLOPE | double. The simulated slope (in seconds) of the path detail. -1 if no simulation has been done or an error occurred. |
DATA_LAG | double. Only for clock-to-q access paths: waiting delay for the data to be available on the latch's input, after the latch opening (value is present only after stability analysis). |
TYPE | char*. A string identifying whether the path detail is a gate or RC delay. |
TRANS | char. The transition direction of the node. u (rising) or d (falling). |
Properties described above are available through function:
ttv_GetTimingDetailProperty <timing_detail> <code> |
The StabilityFigure object is a back-annotation of the TimingFigure object. It contains the switching windows associated to the TimingSignal objects of the TimingFigure object. The switching window information of the StabilityFigure object is obtained by functions accessing directly the TimingSignal objects.
Property codes:
TIMING_FIGURE | TimingFigure*. The TimingFigure the StabilityFigure has be created from. |
Properties described above are available through function:
stb_GetStabilityFigureProperty <slack_object> <code> |
Property codes:
TYPE | char*. Slack type: setup or hold. |
VALUE | double. Slack value |
DATA_VALID | double. Arrival time of the DATA VALID event. |
DATA_REQUIRED | double. Arrival time of the DATA REQUIRED event. |
DATA_VALID_PATH | TimingPath*. Path related to the DATA VALID event. |
DATA_REQUIRED_PATH | TimingPath*. Path related to the DATA REQUIRED event. Can return NULL if the data required time is a user specified one set up with SDC command set_output_delay. |
START_EVENT | TimingEvent*. Starting event of the DATA VALID path. |
END_EVENT | TimingEvent*. Ending event of the DATA VALID path. |
THRU_EVENT | TimingEvent*. In case DATA VALID is an access, the event of the access latch. |
THRU_COMMAND_EVENT | TimingEvent*. In case DATA VALID is an access, the command event enabling the data thru the latch. |
IS_HZ | char*. Returns "yes" if the DATA VALID path is a HZ path. "no" otherwise. |
DATA_VALID_PATH_MARGIN | double. Computed margin to be added to the DATA VALID path delay. |
DATA_REQUIRED_PATH_MARGIN | double. Computed margin to be added to the DATA REQUIRED path delay. |
INTRINSIC_CONSTRAINT | double. Setup or hold constraint at the DATA VALID node. |
SKEW_COMPENSATION | double. Skew compensation value to be added to the DATA REQUIRED path delay. Skew compensation is deduced from common clock tree between DATA REQUIRED and DATA VALID paths. |
UNCERTAINTY | double. Clock uncertainty to be added to the DATA REQUIRED path delay. Clock uncertainty is a user given value. |
Properties described above are available through function:
stb_GetSlackProperty <slack_object> <code> |
Property codes:
TYPE | char*. Constraint type: setup or hold. |
VALUE | double. Constraint value. |
DATA_PATH | TimingPath*. Path related to the data of the constraint. If the constraint is a directive, the data path can be a clock path if specified in the directive. |
CLOCK_PATH | TimingPath*. Path related to the clock of the constraint. If the constraint is a directive, the clock path can be a data path if specified in the directive. |
INTRINSIC_MARGIN | double. Intrinsic setup or hold margin for a constraint on a latch node or user defined margin in case of a directive. |
INTRINSIC_MARGIN_MODEL | char*. Intrinsic setup or hold model name (most likely a .lib table model name). Can return NULL if not no model is associated with the intrisic margin. |
DATA_PATH_MARGIN | double. Computed margin to be added to the DATA_PATH delay. |
CLOCK_PATH_MARGIN | double. Computed margin to be added to the CLOCK_PATH delay. |
MASTER_CLOCK | TimingEvent*. TimingEvent of the clock at the interface of the netlist if the CLOCK_PATH comes from a generated clock. If it is not the case, the MASTER_CLOCK is the starting event of the CLOCK_PATH. |
MASTER_CLOCK_LATENCY | double. Value of the delay from the master clock to the generated clock. |
Properties described above are available through function:
ttv_GetTimingConstraintProperty <constraint_object> <code> |
The BehavioralFigure structure describes the functionality of a circuit.
Properties:
SCORE_NOISE | The noise score. |
SCORE_ACTIVITY | The activity score. |
SCORE_CTK | The crosstalk score. |
SCORE_INTERVAL | The interval score. |
SCORE | The total score. |
VOLTAGE_THRESHOLD | The worst gate threshold among all of the fanout gates. |
NOISE_RISE_MAX | The maximum rise peak, considering active all aggressors |
NOISE_FALL_MAX | The maximum fall peak, considering active all aggressors |
NOISE_RISE_REAL | The real rise peak, considering active overlapping aggressors only |
NOISE_FALL_REAL | The real fall peak, considering active overlapping aggressors only |
CAPA_GROUND | The ground interconnect capacitance. |
CAPA_CTK | The crosstalk interconnect capacitance. |
CAPA_CGATE | The load of all gate input driver. |
Properties described above are available through function:
ctk_GetStatNodeProperty <stability_figure> <index> <property> |
Properties.
START_NODE | The starting event of delay. |
END_NODE | The ending event of delay. |
DELAY_MIN_STA | The minimum delay without crosstalk. |
DELAY_MAX_STA | The maximum delay without crosstalk. |
SLOPE_MIN_STA | The minimum slope without crosstalk. |
SLOPE_MAX_STA | The maximum slope without crosstalk. |
DELAY_MIN_CTK | The minimum delay with crosstalk. |
DELAY_MAX_CTK | The maximum delay with crosstalk. |
SLOPE_MIN_CTK | The minimum slope with crosstalk. |
SLOPE_MAX_CTK | The maximum slope with crosstalk. |
Properties described above are available through function:
ctk_GetStatLineProperty <stability_figure> <index> <property> |
Properties.
SIGNAL | The timing signal (optionnal). |
NETNAME | The netname. |
CAPA_CTK | The coupling capacitance. |
DELAYBESTAGR | Return "no", "yes" or "excluded" if this aggressor is quiet, active or if it has not been taken into account due to switching mutual exclusion. |
DELAYWORSTAGR | idem. |
NOISERISE | idem. |
NOISEFALL | idem. |
Properties described above are available through function:
ctk_GetAggressorProperty <stability_figure> <property> |
All values given as inputs to Tcl functions of the HITAS platform need to be specified in the International Units System.
Values given as inputs to SDC functions are not given within the International Units System. Units are controlled by the variable sdcUnits
All values returned by Tcl functions are given in the in the International Units System, except for timing reports, which are controlled by the ttv_SetupReport function.
void avt_Config(char *var, char *val) |
|
Main way to configure the tool. Affects a value to one of the variables listed
in the Configuration Variables section
|
|
var | Configuration variable to be set |
val | New value |
EXAMPLE | avt_Config tasGenerateConeFile yes |
|
|
char *avt_GetConfig(char *var) |
|
returns the configurated value for configuration variable var
|
|
var | Configuration variable to be set |
EXAMPLE | set cone_cfg [avt_GetConfig tasGenerateConeFile] |
|
void avt_SetBlackBoxes(List *list) |
|
Allows the user to blackbox subcircuits. Blackboxed subcircuits will not be analyzed.
Instead, the tool will let a hole. Whether this hole should
be filled up or not by a timing description depends on configuration variables tasIgnoreBlackbox and tasTreatBlackboxHierarchically.
If a blackbox name is prefixed with "unused:", no hole will be created but instead
all transistors in the blackbox will be marked as unused. Those blackboxes can still
be retreived with GNS if the recognition rule uses the same transistor names as in
the blackbox.
This command is equivalent to and overrides the creation of a BLACKBOX file.
|
|
list | List of subcircuits to be blackboxed. All intended blackboxed subcircuits should present as only one avt_SetBlackBoxes command is allowed. |
EXAMPLE | avt_SetBlackBoxes [list "sense_amp"] |
|
|
BehavioralFigure *avt_LoadBehavior(char *filename, char *format) |
|
Loads behavioral descriptions and construct internal representation according
to the file format
|
|
filename | File to be loaded |
format | Available formats are vhdl and verilog |
EXAMPLE | avt_LoadFile model.v verilog |
|
|
void avt_DriveBehavior(BehavioralFigure *befig, char *format) |
|
Drives a behavioral description according to the file format from the given internal
representation
|
|
befig | Behavior to be driven |
format | Available formats are vhdl and verilog |
EXAMPLE | avt_DriveBehavior $befig output.v verilog |
|
|
void avt_LoadFile(char *filename, char *format) |
|
Loads files and construct internal representation according to the file format
|
|
filename | File to be loaded |
format | Available formats are spice, tlf4, tlf3, lib, verilog, vhdl, spf, dspf, inf, spef and ttv |
EXAMPLE | avt_LoadFile design.hsp spice |
|
|
void avt_EncryptSpice(char *inputname, char *outputname) |
|
Encrypts all sections of a Spice file (netlist or technology file) which are encapsulated
by the .protect and .unprotect spice cards.
|
|
inputname | File to be encrypted |
outputname | Destination for encrypted output |
EXAMPLE | avt_EncryptSpice techno.hsp techno.hsp.enc |
|
|
void avt_SetCatalog(List *argv) |
|
Sets the leaves when flattening a netlist to catal level; equivalent to create
a CATAL file
|
|
argv | List of subcircuits that will be used as leaves |
EXAMPLE | avt_SetCatalog [list "nand2" "inv" ] |
|
|
StringList *avt_GetCatalog() |
|
Returns the current list of cells set as leaves for a catal-level flatten
|
|
EXAMPLE | set catal [avt_GetCatalog] |
|
|
void avt_CheckTechno(char *label, char *tn, char *tp) |
|
Runs a set of benchs to findout possible technology errors
|
|
label | A prefix label for the output result files |
tn | NMOS transistor characteristics. It's a space separated string with coming first the NMOS transistor name followed by the parameters. Authorized parameters are: l, w, delvt0, mulu0, sa, sb, sd, nf, nrs, nrd, sc, sca, scb, scc. |
tp | same as tn for PMOS transistor. |
EXAMPLE | avt_CheckTechno check1 "nmos l=0.4u w=0.8u" "pmos l=0.4u w=1.6u" |
|
Netlist *avt_GetNetlist(char *name) |
|
Retrieves a netlist from memory and returns its pointer
|
|
name | Name of the netlist to get in the program's memory |
EXAMPLE | set netlist [avt_GetNetlist "my_design"] |
|
|
void avt_FlattenNetlist(Netlist *lf, char *level) |
|
Flattens a netlist to a given level.
|
|
lf | Pointer on the netlist to be flattened |
level | Hierarchical level (coming from top-level) the nelist will be flattened to. Available levels are trs, catal or bbox (transistor, catalog or blackbox). If none of those levels are used, level will be considered an instance name, to which the netlist will be flattened. |
EXAMPLE | avt_FlattenNetlist $netlist trs |
|
|
void avt_DriveNetlist(Netlist *lf, char *filename, char *format) |
|
Saves the netlist on disk according to the given format
|
|
lf | Pointer on the netlist to be saved |
filename | Name of the file to be created |
format | Available formats are spice, verilog, vhdl and spef |
EXAMPLE | avt_DriveNetlist $netlist design.spi spice |
|
|
void avt_DisplayNetlistHierarchy(FILE *f, char *netlistname, int maxdepth) |
|
Displays hierarchy information of a given netlist, and other info such as number
of transistors
|
|
f | Pointer on the file where to save information, for standard output set stdout |
netlistname | Pointer on the netlist |
maxdepth | Maximum hierarchical depth coming from top level; can be set to 0 for infinite depth |
EXAMPLE | avt_DisplayNetlistHierarchy stdout "my_design" 3 |
|
|
void avt_DisplayResistivePath(FILE *f, Netlist *lf, char *connector1, char *connector2) |
|
Displays one resistive path between two connectors at the interface of a netlist.
|
|
f | Pointer on the file where to save information, for standard output set stdout |
lf | Pointer on the netlist |
connector1 | first connector name |
connector2 | second connector name |
EXAMPLE | avt_DisplayResistivePath stdout [avt_GetNetlist "mynetlistname"] vdd_0 vdd_1 |
|
|
void avt_RemoveResistances(Netlist *lf, char *nameregex) |
|
Removes all resistances on signals matching a regular expression
|
|
lf | Pointer on the netlist where to remove resistances |
nameregex | Regular expression to be matched, for all signals use * |
EXAMPLE | avt_RemoveResistances $netlist "cpu.*.sig3*" |
|
|
void avt_RemoveCapacitances(Netlist *lf, char *nameregex) |
|
Removes all capacitances on signals matching a regular expression
|
|
lf | Pointer on the netlist where to remove capacitances |
nameregx | Regular expression to be matched, for all signals use * |
EXAMPLE | avt_RemoveCapacitances $netlist "cpu.*.sig3*" |
|
void avt_StartWatch(char *name) |
|
Starts a timer; if the timer already exixts it'll be reset to 0.
|
|
name | Timer name |
EXAMPLE | avt_StartWatch "CPU_TIME" |
|
|
void avt_StopWatch(char *name) |
|
Stops a timer; the timer must be started for the function to work
|
|
name | Name of the timer to stop |
EXAMPLE | avt_StopWatch "CPU_TIME" |
|
|
char *avt_PrintWatch(char *name) |
|
Returns a string with the value of a timer; the timer must have been started
|
|
name | Name of the timer to print |
EXAMPLE | avt_PrintWatch "CPU_TIME" |
|
|
long avt_GetMemoryUsage() |
|
Returns an integer with the memory usage of the program in bytes
|
|
EXAMPLE | set memory [avt_GetMemoryUsage] |
|
|
int avt_RegexIsMatching(char *nametocheck, char *template) |
|
Returs 1 if nametocheck matches the regular expression template, 0 otherwise.
|
|
nametocheck | name to check. |
template | regular expression to use. |
EXAMPLE | set match [avt_RegexIsMatching tatoo5 *too*] |
|
Signal naming: only disassembly directives accept all hierarchical names as inputs. Other directives take as input the hierarchical name of the highest level.
void inf_SetFigureName(char *name) |
|
Sets the target figure on which to apply the INF functions
|
|
name | Name of the target figure |
EXAMPLE | inf_SetFigureName cpu |
|
|
void inf_AddFile(char *filename, char *figname) |
|
Loads an INF file and applies included statements on a figure (this function does
not invoke inf_SetFigureName).
|
|
filename | INF file to load |
figname | Figure on which to apply INF statements. Those statements will be added to the ones that my be already present. |
EXAMPLE | inf_AddFile cpu.inf cpu |
|
|
void inf_Drive(char *outputname) |
|
Saves applied INF statements on disk
|
|
outputname | File where to save INF statements (the .inf suffix is not automatically added) |
EXAMPLE | inf_Drive cpu.inf |
|
|
void inf_ExportSections(char *outputname, char *section) |
|
Saves on disk applied INF statements related to specific INF sections
|
|
outputname | File where to save INF statements |
section | OperatingCondition, PinSlew, Rename, Stop, Sensitive, Suppress, Inputs, NotLatch, CkLatch, Ckprech, Precharge, Dirout, Mutex, CrosstalkMutex, Constraint, ConnectorDirections, PathIN, PathOUT, PathDelayMargin, MulticyclePath, Ignore, NoCheck, Bypass, NoRising, NoFalling, Break, Inter, Asynchron, DoNotCross, Transparent, RC, NORC, SIGLIST, Falsepath, Delay, Dlatch, FlipFlop, Slopein, Capaout, OutputCapacitance, SwitchingProbability, Directives, Stb and Stuck. |
EXAMPLE | inf_ExportSections cpu.inf "Dirout CrosstalkMutex" |
|
|
void inf_CleanFigure() |
|
Removes all INF statements on current figure
|
|
|
void inf_DefineIgnore(char *type, List *list) |
|
The tool ignores specified components. Equivalent to commenting out elements in
a SPICE netlist.
|
|
list | Pointer on the list of components to ignore. An component name can be a regular expression. |
type | Supported types are Instances, Transistors, Resistances, Capacitances, Diodes, Parasitics and SignalNames. Parasitics affects only DSPF files. SignalNames affects only the flattening of a hierarchical netlist, by ignoring the given name if several hierarchical names are available for one net. |
EXAMPLE | inf_DefineIgnore Transistors *.M23* |
|
void inf_DefineMutex(char *type, List *list) |
|
Adds mutual exclusion constraints on signals, in order to help the disassembly
process. May be especially usefull when dealing with shifters or multiplexors, in
case mutual exclusion constraints can not be directly derived from internal combinational
circuitry (if the mutual exclusions constraints come from latched values or come from
constraints on external pins).
|
|
type | Mutual exclusion constraints, legal values for are muxup, muxdn, cmpup and cmpdn (see INF file description) |
list | List of signals mutual exclusions constraints should be applied on |
EXAMPLE | inf_DefineMutex cmpup [list a_0 a_1 a_2 a_3] |
|
|
void inf_DefineInputs(char *name) |
|
Sets a signal as a circuit input, in order to help the disassembly process.
|
|
name | Signal's name |
|
|
void inf_DefineDirout(char *name, int level) |
|
Defines the level of a signal for transistor orientation, in order to help the
disassembly process.
|
|
name | Signal's name |
level | Signal's level; transistors are oriented (the sense of the current is) from high-level to low-level signals. |
|
|
void inf_DefineDLatch(char *name) |
|
Sets a signal as a dynamic latch. Works only if the surrounding circuitry permits
a HZ state on the signal. Commands are then
identified automatically.
|
|
name | Signal's name |
|
|
void inf_DefineNotDLatch(char *name) |
|
Disables a dynamic latch directive on a signal. To be used together with yagMarkTristateMemory
|
|
name | Signal's name |
|
|
void inf_DefineNotLatch(char *name) |
|
Disables the identification of a latch on a signal
|
|
name | Signal's name |
|
|
void inf_DefineKeepTristateBehaviour(char *name) |
|
Disables the transformation of bus into register when configurations 'avtVerilogTristateIsMemory'
or 'yagleTristateIsMemory' is used to drive a behavioural model.
|
|
name | Signal's name |
|
|
void inf_DefinePrecharge(char *name) |
|
Sets a signal as a precharge.
|
|
name | Signal's name |
|
|
void inf_DefineNotPrecharge(char *name) |
|
Disables the identification of a precharge on a signal
|
|
name | Signal's name |
|
|
void inf_DefineModelLatchLoop(char *name) |
|
Feedback loop is explicitly modeled in behavioural model if signal is a static
latch.
|
|
name | Signal's name |
|
|
void inf_DefineMemsym(char *name0, char *name1) |
|
Sets a pair of signals to be a symmetric memory so long as there is a loop between
the two signals.
|
|
name0 | name of first memsym signal. |
name1 | name of second memsym signal. |
EXAMPLE | inf_DefineMemsym memsym0 memsym1 |
|
|
void inf_DefineRS(char *name, char *type) |
|
Allows control of how individual RS are handled. Overrides the global setting
in yagAutomaticRSDetection.
|
|
name | Signal's name, either the set or the reset one is enough. |
type | LEGAL, ILLEGAL or MARK_ONLY. |
EXAMPLE | inf_DefineRS rsnode "LEGAL" |
|
|
void inf_MarkSignal(char *name, char *marks) |
|
Allows application of special signal markings, such as latch identification.
|
|
name | Signal's name |
marks | For a complete list of markings please refer to the INF section of this manual, MARKSIG subsection. |
EXAMPLE | inf_MarkSignal dff_m "LATCH+MASTER" |
|
|
void inf_MarkTransistor(char *name, char *marks) |
|
Allows application of special transistor markings, such as latch commands identification.
|
|
name | Signal's name |
marks | Legal markings are "Bleeder", "Feedback", "Command", "NonFunctional", "Blocker", "Short", "Unused". Types may be concatenated with the '+' character and are case-insensitive. For a description of the types please refer to the INF section of this manual, MARKTRANS subsection. |
EXAMPLE | inf_MarkTrans m0 "FEEDBACK+NOT_FUNCTIONAL" |
|
void inf_DefineConnectorSwing(char *name, double lowlevel, double highlevel) |
|
Sets the switching voltage magnitude for a connector. This is usefull for multivoltage
analysis.
|
|
name | Connector's name |
lowlevel | Lower-bound voltage level, in Volts |
highlevel | Upper-bound voltage level, in Volts |
|
|
void inf_DefinePathDelayMargin(char *type, char *name, double factor, double delta,
char *pathtype) |
|
Defines a derating to be applied on a path delay, with the following formula:
new_delay = real_delay * factor + delta. This derating is only used for the computation of setup and hold slacks by the by
slack report functions.
|
|
type | Arrival point type of the path on which to apply the derating. Valid values are any, latch, break, prech and con (connector) |
name | Arrival point name of the path on which to apply the derating. Wildcards can be used. |
factor | Integer value |
delta | Integer value |
pathtype | String with tokens separated by spaces or _. Valid token values for pathtype are clockpath, datapath, min, max, rise and fall. An empty string means that all the tokens are used. |
|
|
void inf_DefineConnectorDirections(char *type, List *list) |
|
Modifies the direction of connectors
|
|
type | Affected direction, can be Input, Output, InOut, Tristate, HZ or Unknown |
list | List of signals a new direction will be affected to |
|
|
void inf_DefineNORC(char *name) |
|
Disables RC delay computation on a signal
|
|
name | Signal's name |
|
|
void inf_DefineDoNotCross(char *name) |
|
Disables the transparency of a latch or precharge, so that no path can traverse
it.
Effective only when static timing analysis has been run (stb). To be used together with avtMaxPathPeriodDepth.
|
|
name | Signal's name |
|
|
void inf_DefineTransparent(char *name) |
|
Force transparency of a latch or precharge, so that path can traverse it.
|
|
name | Signal's name |
|
|
void inf_DisableTimingArc(char *input, char *output, char *direction) |
|
Disables the construction of timing arcs between timing signals.
|
|
input | Source timing signal of the timing arc to disable |
output | Sink timing signal node of the timing arc to disable |
direction | Transition to disable: du, ud, dd, uu, ?u... |
EXAMPLE | inf_DisableTimingArc in out ud |
|
|
void inf_DefineFalsePath(List *arglist) |
|
Defines a false path.
The parameters use the same syntax as in the .inf file except for the signal direction
specification which does not allow spaces. Valid values <up> and <down>.
|
|
EXAMPLE | inf_DefineFalsePath [list sig1 <up> sig2 <down> sig3 sig4]. |
|
void inf_DefineSlopeRange(char *name, List *argv, char *type) |
|
Sets a range for input slopes in lookup tables construction (.lib file purpose),
values in Seconds. This function must be called before database construction (hitas function) for ranges to be taken into account.
|
|
name | Connector the defined range will be applied on, default is for all connectors. |
type | custom or linear. |
argv | If type is custom, list of values defining the slope range. If type is linear, 3-uple (first_slope, last_slope, step). |
EXAMPLE | inf_DefineSlopeRange default [list 50e-12 120e-12 240e-12] custom |
|
|
void inf_DefineCapacitanceRange(char *name, List *argv, char *type) |
|
Sets a range for ouput capacitances in lookup tables construction (.lib file purpose),
values in Fahrads. This function must be called before database construction (hitas function) for ranges to be taken into account.
|
|
name | Connector the defined range will be applied on, default is for all connectors. |
type | custom or linear. |
argv | If type is custom, list of values defining the capacitance range. If type is linear, 3-uple (first_capa, last_capa, step). |
EXAMPLE | inf_DefineCapacitanceRange default [list 100e-15 200e-15 300e-15] custom |
|
void inf_DefineStrictSetup(char *name) |
|
Defines an latch whose setup must be check on the command opening event rather
than the closing event.
|
|
name | Name of the latch |
EXAMPLE | inf_DefineStrictSetup mylatch |
|
|
void inf_DefineAsynchron(char *name) |
|
Defines an asynchronous pin, i.e. reset pin. Necessary to obtain recovery/removal
timing groups in .lib characterization.
|
|
name | Name of the reset pin |
EXAMPLE | inf_DefineAsynchron reset |
|
|
void inf_DefineEquivalentClockGroup(char *domain, List *list) |
|
Sets clocks as belonging to the same timing domain.
|
|
domain | Timing domain name |
list | Set of clocks belonging to the domain |
EXAMPLE | inf_DefineEquivalentClockGroup domain1 [list ck1 ck2] |
|
|
void inf_DefineClockPriority(char *name, char *clock) |
|
Defines the preferred clock for a signal in case of multiple clock possibility.
|
|
name | Signal's name |
clock | Priority clock |
|
|
inf_DefineDirective <mode> [type1] <signal1> [dir1] <operation> [type2] <signal2> [dir2] [margin]
|
|
Adds a custom timing check between any two nodes. This timing check will be taken
into account in STA and slack reports.
|
|
mode | Type of operation: check or filter. |
type1 | Type of propagated information on signal1 to check: clock or data. Default is data. |
signal1 | Net name of the first signal. |
dir1 | Edge or value of signal1 to consider: rising or falling. Default is both. |
operation | before, after or with. Operation with checks that signal1 is stable when signal2's state is up or down. with cannot be used with signal1 as a clock or signal2 as a data, and dir2 as falling or rising. Operations before and after compare arrival times between clock/data and clock/data. dir1 and dir2 can be rising or falling only. |
type2 | Type of propagated information on signal2 to check: clock or data. Default is data. |
signal2 | Net name of the second signal. |
dir2 | Edge or value of signal2 to consider: rising, falling, up or down. Default is rising and falling. |
margin | Margin to add when computing slack or constraint. |
EXAMPLE | inf_DefineDirective check "data" with clock "data" up. Checks that "data" is stable when the propagated clock state on data is high. |
|
|
inf_DefineFalseSlack [<restriction>:] <startclock> [<startclock_dir>] <startnode> [<startnode_dir>] <endnode> [<endnode_dir>] [<endnode_hz_state>] <endclock>
|
|
Defines a slack as being invalid.
|
|
restriction | a '-' separated list of checks/signal types. Possible values: setup, hold, latch, prech. latch and prech define endnode signal type. Default is "setup-hold". |
startclock | name of the clock generating the startnode data |
startclock_dir | transition of startclock : <up>, <down>, <rise> or <fall>. Default is both. |
startnode | name of the generated data node |
startnode_dir | transition of startnode : <up>, <down>, <rise> or <fall>. Default is both. |
endnode | name of the data arrival node |
endnode_dir | transition of endnodestartnode : <up>, <down>, <rise> or <fall>. Default is both. |
endnode_hz_state | specify whether the end node transition goes to hz state or not: <hz> or <nothz>. Default is both. |
endclock | name of the clock controlling the arrival node |
EXAMPLE | inf_DefineFalseSlack setup: "ck" <rise> "data" <rise> "arrival" "ck2". |
|
|
inf_DefineSwitchingProbability signal switching probability
|
|
[IN ALPHA DEVELOPMENT STAGE] Associates a switching probability to signal. This probability can be used by CTK to remove non interesting agressions (see also
variable: stbCtkMinOccurenceProbability).
|
|
signal | signal to associate the probability to. |
switching probability | probability value from 0 to 1. |
EXAMPLE | inf_DefineSwitchingProbability "enable" 0.25. Signal "enable" can switch 1 time each 4 clock cycles. |
|
void inf_DefineCrosstalkMutex(char *type, List *list) |
|
Sets mutually exclusive signals with regard to crosstalk analysis.
|
|
type | Legal values are muxup and muxdn. |
list | List of signals on which to apply mutual exclusion constraints |
|
Timing constraints can also be defined with SDC commands. Use the sdcUnits configuration variable to define the time unit for all commands. Only the commands that follow are supported as API functions.
all_clocks | Applies a command to all clocks. |
all_inputs | Applies a command to all inputs. No options are supported. |
all_outputs | Applies a command to all outputs. No options are supported. |
get_clocks | Returns only the patterns given in argument. The name is verified to be a clock name by the calling command. |
get_pins | Returns only the patterns given in argument. |
get_ports | Returns only the patterns given in argument. |
SYNTAX
set_case_analysis 0 | zero | 1 | one | rise | rising | fall | falling signal_list |
ARGUMENTS
0 | zero | Sets logical constraint 0 on specified signals (connectors or internal signals) |
1 | one | Sets logical constraint 1 on specified signals (connectors or internal signals) |
rise | rising | Only rising transitions are propagated on specified signals (connectors or internal signals) |
fall | falling | Only falling transitions are propagated on specified signals (connectors or internal signals) |
INF EQUIVALENT
set_case_analysis 0 | 1 translates to the CONSTRAINT section
set_case_analysis rise | fall translates to the NORISING and NOFALLING sections
SYNTAX
set_disable_timing signal_list |
INF EQUIVALENT
set_disable_timing translates to the BYPASS section
SYNTAX
set_false_path [-setup | -hold] [-rise] [-fall] [-from fr_list] [-through through_list] [-to to_list] |
ARGUMENTS
-rise | Restricts false paths to those ending on a rising edge |
-fall | Restricts false paths to those ending on a falling edge |
-from | Specifies a list of false paths starting points |
-through | Specifies a list of intermediary points the false paths must go through. Multiple groups of intermediary points can be specified using multiple -through options |
-to | Specifies a list of false paths ending points |
-setup | Disables setup verifications on signals specified in the to_list. The -setup option is ignored if to_list is not present. -rise and -fall options do not apply on setup verification disabling. from_list and through_list are not taken into account. |
-hold | Disables hold verifications on signals specified in the to_list. The -hold option is ignored if to_list is not present. -rise and -fall options do not apply on hold verification disabling. from_list and through_list are not taken into account. |
INF EQUIVALENT
set_false_path -from | -through | -to translates to the BYPASS section
set_false_path -from -through -to translates to the FALSEPATH section
set_false_path -rise | -fall translates to the NORISING and NOFALLING sections
set_false_path -setup | -hold translates to the NOCHECK section
SYNTAX
create_clock [-name clock_name] -period period_value [-waveform edge_list] connector_list |
ARGUMENTS
-name | Specifies the name of the clock to be created. |
-period | Sets the clock period. |
-waveform | Sets the rising and falling edge times of the clock waveform. |
connector_list | Connectors to apply the waveform on. If no connector is specified, the clock is assumed to be virtual |
INF EQUIVALENT
create_clock translates to the CLOCK CONNECTORS and ASYNCHRONOUS CLOCK GROUPS section
SYNTAX
create_generated_clock [-name clock_name] -source source_connector [-divide_by factor | -multiply_by factor] [-duty_cycle duty_cycle_value] [-invert] [-edges edge_list] [-edge_shift shift_list] connector_list |
ARGUMENTS
-name | Name of the clock to be created. |
-source | Clock source from which the clock is generated. |
-divide_by | Divides the clock source frequency by factor. factor must be a power of 2. |
-multiply_by | Multiplicates the clock source frequency by factor. factor must be a power of 2. |
-duty_cycle | Sets the duty cycle in percents. |
-invert | Inverts the waveform of the generated clock. |
-edges | Specifies the number of clock source edges to form the edges of the generated clock. |
-edge_shift | For each edge specified in the edge_list, sets the shift value to be applied to. |
INF EQUIVALENT
create_generated_clock translates to the CLOCK CONNECTORS and ASYNCHRONOUS CLOCK GROUPS section
SYNTAX
set_clock_latency [-source] [-rise] [-fall] [-late] [-early] delay_value clock_list |
ARGUMENTS
-source | Specifies clock source latency. If not set, ideal clock latency is assumed. |
-rise | Sets the delay for the clock's rising edge. |
-fall | Sets the delay for the clock's falling edge. |
-late | The delay affects only the max time of the clock's corresponding edge. Only for source latency. |
-early | The delay affects only the min time of the clock's corresponding edge. Only for source latency. |
-max | The delay affects only the max time of the clock's corresponding edge. Only for ideal clock latency. |
-min | The delay affects only the min time of the clock's corresponding edge. Only for ideal clock latency. |
INF EQUIVALENT
set_clock_latency translates to the CLOCK CONNECTORS and ASYNCHRONOUS CLOCK GROUPS section
SYNTAX
set_clock_uncertainty [-from from_clock] [-to to_clock] [-rise_from rise_from_clock] [-fall_from fall_from_clock] [-rise_to rise_to_clock] [-fall_to fall_to_clock] [-rise] [-fall] [clock_pin_list] [-setup] [-hold] uncertainty |
DESCRIPTION
Specifies the clock uncertainty (skew characteristics) of specified clock networks. This command can specify either interclock uncertainty or simple uncertainty.
ARGUMENTS
-from | Specifies the source clock pins for interclock uncertainty. |
-to | Specifies the destination clock pins for interclock uncertainty. |
-rise_from | Same as -from, but uncertainty only applies to rising edge of source clock. |
-fall_from | Same as -from, but uncertainty only applies to falling edge of source clock. |
-rise_to | Same as -to, but uncertainty only applies to rising edge of destination clock. |
-fall_to | Same as -to, but uncertainty only applies to falling edge of destination clock. |
-rise | Deprecated option. Same as -rise_to. |
-fall | Deprecated option. Same as -fall_to. |
clock_pin_list | Specifies the destination clock pins for simple uncertainty. |
-setup | Indicates that the uncertainty only applies to setup checks. |
-hold | Indicates that the uncertainty only applies to hold checks. |
uncertainty | A floating-point number (usually positive) that specifies the uncertainty value. |
EXAMPLE
set_clock_uncertainty CLK1 100 set_clock_uncertainty -from CLK1 -to CLK2 200 |
SYNTAX
set_input_transition [-rise] [-fall] [-max] [-min] transition port_list |
ARGUMENTS
-rise | Sets rising transition only |
-fall | Sets falling transition only |
-min | Not supported |
-max | Not supported |
transition | Transition value |
port_list | List of input pins |
EXAMPLE
set_input_transition -rise 100 di set_input_transition -fall 120 di |
INF EQUIVALENT
set_input_delay translates to the PINSLEW section
SYNTAX
set_load [-min] [-max] [-substract_pin_load] [-pin_load] [-wire_load] value objects |
DESCRIPTION
Sets the capacitance to a specified value on specified ports and nets. This function should be called before database construction or database loading. In order to operate correctly, this function should be used together with the configuration variable avtPrecisionLevel set to 1.
ARGUMENTS
-min | Not supported |
-max | Not supported |
-substract_pin_load | Not supported |
-pin_load | Not supported |
-wire_load | Not supported |
value | Capacitance value |
objects | List of output pins |
EXAMPLE
avt_config avtPrecisionLevel 1 inf_SetFigureName my_design set_load 0.31 [get_ports [all_outputs]] set fig [ttv_LoadSpecifiedTimingFigure my_design] set clist [ttv_GetPaths $fig * * uu 5 critic path max] |
INF EQUIVALENT
set_load translates to the OUTPUT CAPACITANCE section
SYNTAX
set_input_delay [-clock clock_name] [-clock_fall] [-rise] [-fall] [-max] [-min] delay_value connector_list |
ARGUMENTS
-clock | Relative clock. |
-clock_fall | Reference edge is the falling edge of a clock. Affects the From and After statements. If not specified reference edge is rising edge. |
-rise | Delay for input rising edge only. |
-fall | Delay for input falling edge only. |
-min | Minimum arrival time on input. Corresponds to the Unstable subsection in the .inf file. |
-max | Maximum arrival time on input. Corresponds to the Stable subsection in the .inf file. |
EXAMPLE
set_input_delay -clock ck -clock_fall -rise -min 200 di set_input_delay -clock ck -clock_fall -rise -max 300 di |
INF EQUIVALENT
set_input_delay translates to
SPECIFY INPUT CONNECTORS BEGIN "di" Rising From "ck" Falling: Unstable 200 After "ck" Falling; Stable 300 After "ck" Falling; END; |
SYNTAX
set_output_delay [-clock clock_name] [-clock_fall] [-rise] [-fall] [-max] [-min] delay_value connector_list |
ARGUMENTS
-clock | Relative clock. |
-clock_fall | Reference edge is the falling edge of a clock. Affects the For and After statements. If not specified reference edge is rising edge. |
-rise | Delay for output rising edge only. |
-fall | Delay for output falling edge only. |
-min | Minimum departure time on output. Corresponds to the Unstable subsection in the .inf file. |
-max | Maximum departure time on output. Corresponds to the Stable subsection in the .inf file. |
INF EQUIVALENT
set_input_delay translates to VERIFY OUTPUT CONNECTORS section.
SYNTAX
set_multicycle_path [-setup] [-hold] [-rise] [-fall] [-start] [-end] [-from from_list] [-to to_list] path_multiplier |
ARGUMENTS
-setup | Uses path_multiplier for setup calculation only. |
-hold | Uses path_multiplier for hold calculation only. |
-rise | Affects rising path delays only. |
-fall | Affects falling path delays only. |
-start | Calculation is relative to the clock's period at path startpoint. |
-end | Calculation is relative to the clock's period at path endpoint. |
-from | Specify a list of timing path startpoints. Valid startpoints are latches, input pins, or inout pins. |
-to | Specify a list of timing path endpoints. Valid endpoints are latches, output pins, or inout pins. |
INF EQUIVALENT
set_multicycle_path translates to MULTICYCLE PATH section.
SYNTAX
set_max_delay [-rise] [-fall] [-from from_list] [-rise_from from_list] [-fall_from from_list] [-to to_list] [-rise_to to_list] [-fall_to to_list] delay_value |
DESCRIPTION
Specifies a required maximum delay for the specified timing paths. Appears as a setup check in slack reports.
ARGUMENTS
-rise | Only rising paths are constrained. |
-fall | Only falling paths are constrained. |
-from | Specifies the timing path source. |
-rise_from | Same as -from, but constraint only applies to rising edge of source. |
-fall_from | Same as -from, but constraint only applies to falling edge of source. |
-to | Specifies the timing path destination. |
-rise_to | Same as -to, but constraint only applies to rising edge of destination. |
-fall_to | Same as -to, but constraint only applies to falling edge of destination. |
delay_value | A floating-point number (usually positive) that specifies the delay value. |
EXAMPLE
set_max_delay -from CLK1 -to LATCH1 500 |
SYNTAX
set_min_delay [-rise] [-fall] [-from from_list] [-rise_from from_list] [-fall_from from_list] [-to to_list] [-rise_to to_list] [-fall_to to_list] delay_value |
DESCRIPTION
Specifies a required minimum delay for the specified timing paths. Appears as a hold check in slack reports.
ARGUMENTS
-rise | Only rising paths are constrained. |
-fall | Only falling paths are constrained. |
-from | Specifies the timing path source. |
-rise_from | Same as -from, but constraint only applies to rising edge of source. |
-fall_from | Same as -from, but constraint only applies to falling edge of source. |
-to | Specifies the timing path destination. |
-rise_to | Same as -to, but constraint only applies to rising edge of destination. |
-fall_to | Same as -to, but constraint only applies to falling edge of destination. |
delay_value | A floating-point number that specifies the delay value. |
EXAMPLE
set_max_delay -from CLK1 -to LATCH1 500 |
<TimingFigure *> hitas <figname> [-annotatefromcns] [-startfromcns] |
|
Generates a timing figure from a pre- or post-layout transistor netlist. It is
assumed that an internal representation of the netlist exists in the program's memory,
i.e., that the related files (including MOS models) have already been loaded. See
avt_LoadFile function.
|
|
figname | Name of the subcircuit the timing figure is to be derived |
-annotatefromcns | [experimental] If a $filename.cns file exist, disassembling circuit stage is replaced by annotate the circuit from cns file information. |
-startfromcns | [experimental] Same as -annotatefromcns expect that the netlist saved in the cns file is used, not the user loaded one. |
EXAMPLE | set fig [hitas my_design] |
|
|
int hitas_pvt_count() |
|
Returns the number of PVT errors encountered in the last hitas run.
|
|
EXAMPLE | set pvterrors [hitas_pvt_count] |
|
TimingFigure *ttv_LoadSDF(Netlist *fig, char *sdf_file) |
|
Constructs a timing figure from a netlist and an SDF file. The netlist must have
been constructed before (related files loaded)
|
|
fig | Pointer on a netlist |
sdf_file | Name of the corresponding SDF file |
|
void ttv_CreateTimingFigure(Netlist *lf) |
|
Initiates the creation of a timing figure. Computes the connectors capacitances
assuming the netlist provided is a flat-transistor one.
|
|
lf | Netlist the timing figure is based on. |
EXAMPLE | ttv_CreateTimingFigure $netlist |
|
|
void ttv_EditTimingFigure(TimingFigure *tvf) |
|
Edit an existing timing timing figure.
ttv_FinishTimingFigure must be called after the modifications to make the timing figure usable.
|
|
tvf | TimingFigure to edit. |
EXAMPLE | ttv_EditTimingFigure $fig |
|
|
TimingSignal *ttv_AddConnector(char *name, char dir) |
|
Creates a connector timing signal.
|
|
name | Name of the newly created command. If this timing signal already exists, no new timing signal is created. In the last case, incompatible timing signal types will raise a warning and the timing signal type will be overridden |
dir | Direction of the connector: i=in, o=out, t=tristate, z=hz, x=unknown, b=inout (output reused internaly) |
EXAMPLE | set con [ttv_AddCommand input i] |
|
|
TimingSignal *ttv_AddCommand(char *name) |
|
Creates a command timing signal.
|
|
name | Name of the newly created command. If this timing signal already exists, no new timing signal is created. In the last case, incompatible timing signal types will raise a warning and the timing signal type will be overridden |
EXAMPLE | set com [ttv_AddCommand com0] |
|
|
TimingSignal *ttv_AddLatch(char *name) |
|
Creates a latch timing signal.
|
|
name | Name of the newly created latch. If this timing signal already exists, no new timing signal is created. In the last case, incompatible timing signal types will raise a warning and the timing signal type will be overridden |
EXAMPLE | set latch [ttv_AddLatch lt0] |
|
|
TimingSignal *ttv_AddPrecharge(char *name) |
|
Creates a precharge timing signal.
|
|
name | Name of the newly created precharge. If this timing signal already exists, no new timing signal is created. In the last case, incompatible timing signal types will raise a warning and the timing signal type will be overridden |
|
|
TimingSignal *ttv_AddBreakpoint(char *name) |
|
Creates a breakpoint timing signal.
|
|
name | Name of the newly created breakpoint. If this timing signal already exists, no new timing signal is created. In the last case, incompatible timing signal types will raise a warning and the timing signal type will be overridden |
|
|
TimingLine *ttv_AddTiming(char *input, char *output, double max_delay, double max_slop,
double min_delay, double min_slope, char *dir) |
|
Creates a data delay line.
|
|
input | Delay line start point |
output | Delay line end point |
max_slope | Maximum slope associated with delay line |
min_slope | Minimum slope associated with delay line |
max_delay | Maximum propagation delay associated with delay line |
min_delay | Minimum propagation delay associated with delay line |
dir | Transitions on start and end points: uu for input rising/output rising, ud for input rising/output falling, dd for input falling/output falling, du for input falling/output rising. |
|
|
TimingLine *ttv_AddHZTiming(char *input, char *output, double max_delay, double min_delay,
char *dir) |
|
Creates a HZ data delay line.
|
|
input | Delay line start point |
output | Delay line end point |
max_slope | Maximum slope associated with delay line |
max_delay | Maximum propagation delay associated with delay line |
dir | Transitions on start and end points: uu for input rising/output rising, ud for input rising/output falling, dd for input falling/output falling, du for input falling/output rising. |
|
|
TimingLine *ttv_AddSetup(char *input, char *output, double delay, char *dir) |
|
Creates a setup line.
|
|
input | Data point |
output | Clock point |
delay | Constraint associated with the setup line |
dir | Transitions on data and clock points: uu for input rising/output rising, ud for input rising/output falling, dd for input falling/output falling, du for input falling/output rising. |
|
|
TimingLine *ttv_AddAccess(char *input, char *output, double max_delay, double max_slop,
double min_delay, double min_slope, char *dir) |
|
Creates a data access delay line
|
|
input | Data access line start point |
output | Data access line end point |
max_slope | Maximum slope associated with delay line |
min_slope | Minimum slope associated with delay line |
max_delay | Maximum propagation delay associated with delay line |
min_delay | Minimum propagation delay associated with delay line |
dir | Transitions on start and end timing signals: uu, ud, dd or du. |
|
|
TimingLine *ttv_AddHZAccess(char *input, char *output, double max_delay, double min_delay,
char *dir) |
|
Creates a HZ data access line.
|
|
input | Delay line start point |
output | Delay line end point |
max_slope | Maximum slope associated with delay line |
max_delay | Maximum propagation delay associated with delay line |
dir | Transitions on start and end points: uu for input rising/output rising, ud for input rising/output falling, dd for input falling/output falling, du for input falling/output rising. |
|
|
TimingLine *ttv_AddHold(char *input, char *output, double delay, char *dir) |
|
Creates a hold constraint line between a data pin and a clock pin.
|
|
input | Data pin |
output | Clock pin |
delay | Nominal constraint value associated with the line |
dir | Transitions on the data and clock pins: uu for input rising/output rising, ud for input rising/output falling, dd for input falling/output falling, du for input falling/output rising. |
|
|
void ttv_SetLineCommand(TimingLine *tl, char *max_command, char *min_command, char
*dir) |
|
Associates commands to a line. The command is the signal that enables reading
or writing in a latch point.
|
|
max_command | Command generating the maximum delay |
min_command | Command generating the minimum delay |
dir | First character is the edge of the max command and the second of the min command. |
|
|
void ttv_SetLineModel(TimingLine *tl, char *modelname, char *where) |
|
Associates a model name to a line.
|
|
tl | Timing Line to set the model name |
modelname | name of the model to associate. |
where | value to associate model to: "delay max", "delay min", "slope max" or "slope min". |
|
|
TimingFigure *ttv_FinishTimingFigure() |
|
Returns the finished timing figure currently in creation. No more modification
will be
permitted on the timing figure after this step.
|
|
|
|
void ttv_DriveTimingFigure(TimingFigure *tvf, char *filename, char *format) |
|
Drives a timing figure on disk
|
|
tvf | Figure to be driven |
filename | Full filename |
format | File format, dtx or ttx |
|
|
void ttv_CreateTimingTableModel(TimingFigure *tvf, char *name, DoubleListTimeValue
*axis1, DoubleListCapaValue *axis2, DoubleTable *values, char *type) |
|
Creates a timing table model using the given axis and table values. |
|
tvf | Timing figure where table model will be created |
name | Name of the table model |
axis1 | Y-axis values of the table |
axis2 | X-axis values of the table |
values | Values to set into the table. It's a 2D array. |
type | defines the type of the table axis: "slope-slope", "slope-capa" or "slope-ckslope". |
EXAMPLE | ttv_CreateTimingTableModel $fig mymodel {1e-12 3e-12} {1e-15 2e-15} {{1e-12 2e-12}{3e-12 4e-12}} "slope-capa" |
|
|
void ttv_CreateEnergyTableModel(TimingFigure *tvf, char *name, DoubleListTimeValue
*axis1, DoubleListCapaValue *axis2, DoubleTable *values, char *type) |
|
Associate an energy table model using the given axis and table values. |
|
tvf | Timing figure where table model will be created |
name | Name of the table model |
axis1 | Y-axis values of the table |
axis2 | X-axis values of the table |
values | Values to set into the table. It's a 2D array. |
type | defines the type of the table axis: "slope-slope", "slope-capa" or "slope-ckslope". |
EXAMPLE | ttv_CreateTimingTableModel $fig mymodel {1e-12 3e-12} {1e-15 2e-15} {{1e-12 2e-12}{3e-12 4e-12}} "slope-capa" |
|
|
void ttv_SetTimingFigureName(TimingFigure *tvf, char *name) |
|
Change the name of a timing figure.
|
|
tvf | Figure to be changed |
name | New figure name |
|
<TimingPathList *> ttv_GetTimingFigure <name>
|
|
Gets a timing figure from memory, assuming it has already been loaded. Only usefull
when a timing figure comes from a .lib of .tlf file.
|
|
name | Timing figure's name |
EXAMPLE | set fig [ttv_GetTimingFigure my_design] |
|
|
TimingFigure *ttv_LoadSpecifiedTimingFigure(char *name) |
|
Reads a DTX timing figure from disk.
|
|
name | Timing figure's name. The name of the timing figure should be the same as its file name, without the dtx suffix. |
EXAMPLE | set fig [ttv_LoadSpecifiedTimingFigure "my_design"] |
|
|
TimingFigure *ttv_LoadSpecifiedTimingPathFigure(char *name) |
|
Reads a TTX timing path figure from disk.
|
|
name | Timing figure's name. The name of the timing figure should be the same as its file name, without the ttx suffix. |
EXAMPLE | set fig [ttv_LoadSpecifiedTimingPathFigure "my_design"] |
|
|
int ttv_LoadCrosstalkFile(TimingFigure *tvf) |
|
Loads a CTX file, result of a previous crosstalk analysis, and annotates a timing
figure with crosstalk information such as delta-delays. The CTX file should have the
same name of the timing figure, with the ctx extension. Returns 1 on failure, 0 on success.
|
|
tvf | Pointer on the timing figure to annotate |
EXAMPLE | ttv_LoadCrosstalkFile $fig |
|
|
void ttv_RecomputeDelays(TimingFigure *tvf) |
|
Recomputes delays and slopes in a timing figure according to new input slopes
and output capacitances.
|
|
tvf | Pointer on the timing figure |
EXAMPLE | ttv_RecomputeDelays $fig |
|
|
Property *ttv_GetTimingFigureProperty(TimingFigure *fig, char *code) |
|
Returns a property of a timing figure. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
fig | Pointer on the timing figure |
code | Property code; for available property codes, see the TimingFigure object section |
|
<TimingPathList *> ttv_GetPaths [<TimingFigue *tf>] [-from <startnodelist>] [-to
<endnodelist>] [-thru <accessnodelist>] [-dir <dir>] [-nb <nb>] [-critic|-all] [-path|-access]
[-max|-min] |
|
Gets a selection of paths/accesss, depending upon configuration. |
|
tf | Related timing figure to use. |
-from <startnodelist> | Path start node list (clock node if -access is used). If not specified, all possible start nodes are considered. |
-thru <accessnodelist> | Path access node list (latchs, precharges, breakpoints). Used only with -access. If not specified, all possible access nodes are considered. |
-to <endnodelist> | Path end node list (latchs, precharges, breakpoints, connectors). If not specified, all possible end nodes are considered. |
-dir <dir> | Path transitions: uu, dd, ud, du; u or d can be replaced by the wildcard ?. z or / can be added to the usual direction to respectively retreive only HZ path or only non-HZ path. Default is ??. |
-nb <nb> | Maximum number of paths that will appear in the returned list. If <nb> is negative or zero, no path number limit will be considered. Default is -1. |
-critic | Returns only critical paths. This is the default. |
-all | Returns critical and parallel paths. |
-path | Searches for paths. This is the default. |
-access | Searches for accesses. |
-max | Uses maximum delays for the search. This is the default. |
-min | Uses minimum delays for the search. |
Obsolete options: | |
start | Path starting point (clock signal for an access path) |
end | Path destination point |
dir | Path transitions: uu, dd, ud, du; u or d can be replaced by the wildcard ?. z or / can be added to the usual direction to respectively retreive only HZ path or only non-HZ path. |
number | Number of paths/access that will appear in the returned list. If number is negative, no path number limit will be considered |
all | all or critic: all paths appear in the returned list or only critical paths disregarding parallel paths |
path | Type of paths to return, either path or access |
minmax | Maximum (max) or minimum (min) paths are returned |
EXAMPLE | set p_list [ttv_GetPaths $fig -to {*outsig* out} -dir ?r -nb 10 -critic -path -min] or with Timing Signals myclock1 and myclock2: set p_list [ttv_GetPaths -from {$myclock1 $myclock2} -access] Obsolete use: set p_list [ttv_GetPaths $fig * * ?? 10 critic path max] |
|
|
TimingPathList *ttv_CharacPaths(TimingFigure *tf, double slopein, char *start, char
*end, char *dir, long number, char *all, char *path, char *minmax, double capaout,
int propagate) |
|
Search for timing paths. Path delay is computed with regard to input slope and
output load.
|
|
tf | Related timing figure to be driven |
slopein | Path input slope to be propagated, if 0, default slope is taken into account. |
start | Path starting point (clock signal for an access path) |
end | Path destination point. |
dir | Path transitions: uu, dd, ud, du; u or d can be replaced by the wildcard ? |
number | Number of paths/access that will appear in the returned list. If number is negative, no path number limit will be considered |
all | all or critic: all paths appear in the returned list or only critical paths disregarding parallel paths |
path | Type of paths to return, either path or access |
minmax | Maximum (max) or minimum (min) paths are returned |
capaout | Load to add to output connectors (on-path bidir connectors affected only in full propagation, see below). If negative load, default is taken into account. |
propagate | Type of slope propagation, can take values 0 (no propagation), 1 (full propagation) or 2 (1-stage propagation) |
EXAMPLE | set p_list [ttv_CharacPaths $fig 100e-12 a b ud 1 critic path max 10e-15 1] |
|
|
TimingPathList *ttv_GetParallelPaths(TimingPath *ta, long num) |
|
Returns a list of paths parallel to a given path, i.e. starting end ending on
the same nodes, with same transitions, but crossing different intermediary nodes.
|
|
ta | Pointer to a timing path |
num | Max number of parallel paths to report |
EXAMPLE | set pr_list [ttv_GetParallelPaths [lindex $p_list 1] 10] |
|
|
TimingPathList *ttv_ProbeDelay <TimingFigure *tf> <StringList *nodenamelist> [flags] |
|
Retreives the paths by specifying a list of nodes on the paths without the need
for intermediate nodes to be forcibly path stop nodes (latches, precharges, connectors,
...). |
|
tf | Timing figure |
nodenamelist | Nodes that the path must cross. Must be present at least the start node, all memory/intermediate
nodes on the path in the right order and the end node. The types of the nodes can be specified by adding the prefixes: "-any=", "-latch=", "-prech=" and "-con=". Respectively for any node, latch, precharge and connector. If wildcards are used for the intermediate nodes without precising the node types, "-latch=" is assumed. Using "-any=" for intermediate nodes can be very time consuming because all the matching nodes combinations will be considered. Adding -access before one of this option (eg. -access-latch) will indicate a probe thru the access timing line to the specified node. |
flags: | |
-dir <dir> | Requested start-to-end transition. Default is ?? (all transitions). |
-slope <inputslope> | Value of the input slope to propagate through the path. If negative, the slope computed during database creation will be propagated. |
-nb <maxpath> | If positive maximum number of paths returned. Default, is -1 (unlimited). |
-min | Search for minimum-delay paths |
-max | Search for maximum-delay paths. This is the default. |
-nosync | Disable synchornization to the latch opening when crossing latches if stb has been run on the timing figure. |
-noprop | Disable slope propagation thru the found path gates. <inputslope> is ignored. |
EXAMPLE | To probe a delay from node "net23" to node "net045" thru node "lt1": set p_list [ttv_ProbeDelay $fig {net23 lt1 net045} -slope 100e-12 -dir ud -nbpaths 1] To probe paths from all connectors to node "net045" thru any latch: set p_list [ttv_ProbeDelay $fig {-con=* -latch=* net045} -slope 100e-12]. To probe the minimum accesses from connector "ck" thru any latch to node "endnode": set p_list [ttv_ProbeDelay $fig {-con=ck -access-latch=* endnode} -min]. |
|
|
void ttv_FreePathList(TimingPathList *lst) |
|
Frees the paths in a list
|
|
lst | Pointer on the head of a path list |
EXAMPLE | ttv_FreePathList $p_list |
|
|
void ttv_SearchExcludeNodeType(char *conf) |
|
Allows the exclusion of nodes of a given type for path searching
|
|
conf | List of node types separated by spaces. Valid types are Command, Precharge, Latch, Connector and Breakpoint. |
EXAMPLE | ttv_SearchExcludeNodeType "Command Precharge" |
|
|
ListOfDoubleTable *ttv_CharacPathTables(TimingPath *pth, DoubleListTimeValue *slopes,
DoubleListCapaValue *capas, int propagate) |
|
Recompute path delay and output slope with all the combinations of slopes and capacitances.
Returns a list of 2 matrices (list of lists). The first list contains the delays and
the second the slopes. Each line correspond to an input slope and each element of
a line to a capacitance.
|
|
pth | Timing path to recompute |
slopes | List of slope values to use |
capas | List of capacitance values to use |
propagate | type of slope propagation, can take values 0 (no propagation), 1 (full propagation)) |
EXAMPLE | set res [ttv_CharacPathTables $mypath {1e-12 3e-12} {1e-15 2e-15} 1] |
|
|
Property *ttv_GetTimingPathProperty(TimingPath *fig, char *code) |
|
Returns a property of a timing path. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
fig | Pointer on the timing path |
code | Property code; for available property codes, see the TimingPath object section |
|
|
void ttv_DetectFalseClockPath(TimingFigure *tf) |
|
Checks the evidence of signal propagation of clock paths arriving on command signals
(and not on other signals), in order to eliminate possible false paths. Detected false
paths are added to the INF file.
|
|
tf | Pointer on a timing figure |
|
|
void ttv_DetectFalsePath(TimingFigure *tvf, char *start, char *end) |
|
Checks the evidence of signal propagation between two signals, in order to eliminate
possible false paths. Detected false paths are added to the INF file.
|
|
tf | Pointer on a timing figure |
start | Name of the starting point |
end | Name of the ending point |
|
|
TimingPathList *ttv_GetGeneratedClockPaths(TimingFigure *tvf, TimingEvent *tve, char
*minmax) |
|
Gets the path list from a top level clock to the specified generated clock timing
event.
|
|
tvf | Timing figure |
tve | Generated clock timing event |
minmax | Maximum (max) or minimum (min) paths are returned |
EXAMPLE | set p_list [ttv_GetGeneratedClockPaths $fig $clockevent max] |
|
TimingLineList *ttv_GetLines(TimingFigure *tvf, char *start, char *end, char *dir,
char *linetype) |
|
Gets a selection of lines, depending upon configuration.
|
|
tf | Related timing figure |
start | Line starting point |
end | Line destination point |
dir | Line transitions: uu, dd, ud, du; u or d can be replaced by the wildcard ? |
type | Line type filters: setup, hold, access, hz, rc, prech, eval, data or all |
EXAMPLE | set l_list [ttv_GetLines $fig * * ?? "access setup hold"] |
|
|
double ttv_ComputeLineDelay(TimingLine *tl, double slope_in, double output_capa, char
*delayslope, char *maxmin) |
|
Recomputes a line delay or slope depending on an input slope and an output capacitance.
|
|
tl | Related timing line |
slope_in | desired input slope |
output_capa | desired output capacitance |
delayslope | type of delay to recompute delay or slope |
maxmin | type of delay to recompute max or min |
EXAMPLE | set val [ttv_ComputeLineDelay $line 1.5e-12 0.3e-15 delay max] |
|
|
void ttv_SetTimingLineDelay(TimingLine *tl, char *delayslope, char *maxmin, double
value) |
|
Forces the value of the propagation delay or output slope of a line. The line's
propagation delay or output slope will
never be reevaluated.
|
|
tl | Related timing line |
delayslope | type of delay to set delay or slope |
maxmin | type of delay to set max, min or all |
value | new value |
EXAMPLE | ttv_SetTimingLineDelay $line delay max 1e-9] |
|
|
DoubleTable *ttv_CharacTimingLineModel(TimingFigure *tf, char *name, DoubleListTimeValue
*input_slope, DoubleListCapaValue *output_capa, char *type) |
|
Compute delays or slopes using a given timing line model name.
Returns a matrix of values. Each line correspond to an input slope and each element
of a line to a capacitance.
|
|
tvf | Timing figure with the timing model |
name | Name of the timing model |
slopes | List of slope values to use |
capas | List of capacitance/slope values to use |
type | defines the type of the table axis: "slope-slope", "slope-capa:delay" or "slope-capa:slope". "slope-slope" (capas contains slopes values) returns delay values "slope-capas:delays" returns delay values "slope-capa:slope" returns slope values |
EXAMPLE | set res [ttv_CharacTimingLineModel $fig "hold__EN/CP_01_1" {1e-12 3e-12} {1e-15 2e-15} slope-capa:slope] |
|
|
Property *ttv_GetTimingLineProperty(TimingLine *tl, char *code) |
|
Returns a property of a timing line. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
tl | Pointer on the timing line |
code | Property code; for available property codes, see the TimingLine object section |
|
void ttv_DisplayPathList(FILE *f, TimingPathList *tpl) |
|
Prints summary information about paths given in a path list
|
|
tpl | Pointer on a path list |
f | File where to save the report, stdout for standard output |
|
|
void ttv_DisplayPathListDetail(FILE *f, TimingPathList *tpl) |
|
Prints detailed information about paths given in a path list
|
|
tpl | Pointer on a path list |
f | File where to save the report, stdout for standard output |
|
|
void ttv_DisplayPathDetail(FILE *f, int num, TimingPath *tp) |
|
Prints detailed information about a given path
|
|
tp | Pointer on a path |
f | File where to save the report, stdout for standard output |
num | Number to identify the path |
|
|
void ttv_DisplayPathDetailShowColumn(char *conf) |
|
Selects the columns to be displayed in the reports provided by ttv_DisplayPath.
By default, all columns are displayed when available information. Wild cards can be
used, eg. dt.*slope. Prefix pl. refers to path reports, .dt to path detail reports, c2l. to connector to latch and stab to stability reports.
|
|
conf | list of column IDs separated by spaces. Valid IDs are: pl.index, pl.starttime, pl.startslope, pl.pathdelay, pl.totaldelay, pl.datalag, pl.endslope, pl.startnode, pl.endnode, dt.simacc, dt.simdelta, dt.simslope, dt.simerror, dt.refacc, dt.refdelta, dt.refslope, dt.reflagacc, dt.reflagdelta, dt.ctkacc, dt.ctkdelta, dt.ctkslope, dt.ctklagacc, dt.ctklagdelta, dt.capa, dt.nodetype, dt.nodename, dt.netname, dt.linetype, dt.transistors, dt.clockinfo, stab.from, stab.thru, c2l.absdata or all. |
|
|
void ttv_DisplayPathDetailHideColumn(char *conf) |
|
Selects the columns not to be displayed in the reports provided by ttv_DisplayPath.
By default, all columns are displayed when available information. Wild cards can be
used, eg. dt.*slope. Prefix pl. refers to path reports, dt. to path detail reports, c2l. to connector to latch and stab to stability reports. Hidding dt.linetype activates the merge of RC delays with gate delays.
|
|
conf | list of column IDs separated by spaces. Valid IDs are: pl.index, pl.starttime, pl.startslope, pl.pathdelay, pl.totaldelay, pl.datalag, pl.endslope, pl.startnode, pl.endnode, dt.simacc, dt.simdelta, dt.simslope, dt.simerror, dt.refacc, dt.refdelta, dt.refslope, dt.reflagacc, dt.reflagdelta, dt.ctkacc, dt.ctkdelta, dt.ctkslope, dt.ctklagacc, dt.ctklagdelta, dt.capa, dt.nodetype, dt.nodename, dt.netname, dt.linetype, dt.transistors, dt.clockinfo, stab.from, stab.thru, c2l.absdata or all. |
|
|
void ttv_DisplayClockPathReport(FILE *f, TimingFigure *tf, char *clock, char *minmax,
int number) |
|
Prints a detailed report of timing paths originating from a clock.
|
|
f | File where to save the report, stdout for standard output |
tf | Pointer on the timing figure to consider |
clock | Starting point name; can be a wildcard name |
minmax | min or max; type of path to be searched |
number | Maximum number of paths to report |
|
|
void ttv_DisplayConnectorToLatchMargin(FILE *f, TimingFigure *tf, char *inputconnector,
char *mode) |
|
Prints a report displaying setup and hold constraints on latch points, originating
from input connectors (both from rising and falling transitions).
|
|
f | File where to save the report, stdout for standard output |
tf | Pointer on the timing figure to consider |
inputconnector | Names of the connectors to consider, can be wildcards. |
mode | Controls the amount of information displayed. Valid values are summary or all (display path detail) associated with split. Using split displays the report connector one connector at a time. This option can also be used to reduce memory usage on huge UTDs. margins will show the computed contsraints for each path in the summary. pathcomp permits will display the spice total error as total spice delay versus total tas delay + path margin. By default, the path margin is not included. |
EXAMPLE | ttv_DisplayConnectorToLatchMargin $ofile $fig "*" "summary split" |
|
|
void ttv_PlotPathDetail(FILE *f, TimingPath *tp) |
|
Plots the waveforms of nodes on a given path.
|
|
tp | Pointer on a path |
f | File where to save the report, stdout for standard output |
|
|
void ttv_SetupReport(char *conf) |
|
Changes units and format used in path reports. Default units are ns and pf. Formats affect the way most of the values are displayed in the report columns. By
default, values are justified right, node and net names are displayed together, and
delay deviations are given relatively to the path delay.
|
|
conf | List of names separated by spaces. Valid units are: ns, ps, pf, ff and #digits (which defines the precision for delay values, # ranging from 1 to 9). Valid formats are: JustifyRight, JustifyLeft, OnlyNetName, NodeName, HideRC, ShowRC, LocalError (which gives local delay deviations), PathComp (compares simulated delay versus hitas delay+path margin). |
|
|
void ttv_DumpHeader(FILE *f, TimingFigure *tvf) |
|
Prints information about the given timing figure and the running script
|
|
f | File where to save the report, stdout for standard output |
tvf | Pointer on a timing figure |
|
|
ttv_DumpFigure <FILE *f> <TimingFigure *tvf> [type]
|
|
Prints a table with the Timing Lines of a TimingFigure.
|
|
f | File where to save the report, stdout for standard output |
tvf | Pointer on a timing figure |
type | Same type as ttv_GetLines API to filter output. Valid values: setup, hold, access, hz, rc, prech, eval, data or all. |
|
TimingDetailList *ttv_GetPathDetail(TimingPath *ta) |
|
Returns the list of elementary timing arcs (lines) making up a critical path
|
|
ta | Pointer on the timing path to consider |
EXAMPLE | set detail [ttv_GetPathDetail $path] |
|
|
Property *ttv_GetTimingDetailProperty(TimingDetail *det, char *property) |
|
Returns a property of a timing detail. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
ev | Pointer on the timing detail |
code | Property code; for available property codes, see the TimingDetail object section |
|
ttv_SimulatePath <TimingFigure *tvf> <TimingPath *ta> [-force] [-mc <number>]
[-plot]
|
|
Constructs and saves on disk the spice netlist and stimuli required for simulation,
relative to the given path. This requires all configuration variables related to simulation
to be set correctly. Returns 0 on success, 1 on error.
|
|
tvf | Pointer on a timing figure |
path | Pointer on the timing path the spice deck is to be extracted from |
-force | The path will be simulated even if it has already been |
-mc <number> | The number of monte-carlo simulations to be performed |
-plot | Generated a waveform file for viewing with gnuplot or gwave. Note that simUsePrint must be set. |
No description | |
|
|
TimingPathTable *ttv_SimulateCharacPathTables(TimingFigure *tvf, TimingPath *tp, DoubleListTimeValue
*slopes, DoubleListCapaValue *capas, int maxsim) |
|
Simulates path with all the combinations of slopes and capacitances values.
Returns a matrix (list of lists) of paths. Each line corresponds to an input slope
and each element of a line to a capacitance. Each path in the matrix is a replica
of the user given path except for the simulated slopes and delays.
|
|
tvf | Timing figure of the path |
tp | Timing path to simulate |
slopes | List of slope values to use |
capas | List of capacitance values to use |
maxsim | maximum number of concurent simulation authorized. |
EXAMPLE | set res [ttv_SimulateCharacPathTables $myfig $mypath {1e-12 3e-12} {1e-15 2e-15} 3] |
|
|
int ttv_DriveSpiceDeck(TimingFigure *tvf, TimingPath *path, char *filename) |
|
Constructs and saves on disk the spice netlist and stimuli required for simulation,
relative to a given path. This requires all configuration variables related to simulation
to be set correctly. Returns 0 on success, 1 on error.
|
|
tvf | Pointer on a timing figure |
path | Pointer on the timing path the spice deck is to be extracted from |
filename | File where to save the report |
|
|
int ttv_DriveSetupHoldSpiceDeck(TimingFigure *tvf, TimingPathList *datapath, TimingPathList
*clockpathlist, char *filename) |
|
Constructs and saves on disk the spice netlist and stimuli required for simulation,
relative to the computation of a setup or hold value. This requires all configuration
variables related to simulation to be set correctly. Returns 0 on success, 1 on error.
|
|
tvf | Pointer on a timing figure |
datapath | Pointer on the data path the spice deck is to be extracted from |
clockpathlist | Pointer on the clock path the spice deck is to be extracted from |
filename | File where to save the report |
|
|
void ttv_DisplayActivateSimulation(char mode) |
|
Enables the construction and simulation of the spice deck of a given path, when
a reporting request occurs for this path. The simulation columns in the report appear
automatically except explicitly disabled with ttv_DisplayPathDetailHideColumn.
|
|
mode | yes or no to activate or deactivate spice deck construction and simulation |
|
|
void ttv_Simulate_AddDelayToVT(TimingFigure *tvf, TimingPath *pth, TimingEvent *latch) |
|
Applyed on the path, indicate to CPE to add a measure to retreive the delay
to VT of the ending node of pth which is a command generating the event latch on the latch. |
|
tvf | Pointer on a timing figure. |
pth | Pointer on the timing path. |
latch | Event of the latch generated by the ending node of pth. |
|
|
int ttv_Simulate_FoundSolutions() |
|
Returns the number of path activation solutions found by CPE. |
|
|
TimingSignalList *ttv_GetTimingSignalListByNet(TimingFigure *tvf, char *name) |
|
Retreives a timing signal list from a net name
|
|
tvf | Pointer on a timing figure |
name | Name of the timing signal to retrieve. Should repect the naming conventions defined with avtCaseSensitive and avtVectorize configuration variables. |
EXAMPLE | set siglist [ttv_GetTimingSignalListByNet $fig net045] |
|
|
TimingSignal *ttv_GetTimingSignal(TimingFigure *tvf, char *name) |
|
Retreives a timing signal from the timing figure; returns NULL on failure.
|
|
tvf | Pointer on a timing figure |
name | Name of the timing signal to retrieve. Should repect the naming conventions defined with avtCaseSensitive and avtVectorize configuration variables. |
EXAMPLE | set sig [ttv_GetTimingSignal $fig net045] |
|
|
TimingSignalList *ttv_GetTimingSignalList(TimingFigure *tvf, char *type, char *location) |
|
Retreives a list of timing signals of a given type and location
|
|
tvf | Pointer on a timing figure |
type | connector, precharge, latch, command or breakpoint |
location | interface, internal or all |
EXAMPLE | set ext_latches [ttv_GetTimingSignalList $fig latch interface] |
|
|
TimingSignalList *ttv_GetClockList(TimingFigure *tvf) |
|
Returns the list of signals marked as clock in a given timing figure, with a create_clock command for example.
Returns an empty list if the timing figure is NULL, or if there are no clock connectors.
|
|
tvf | Pointer on a timing figure |
EXAMPLE | set clock_list [ttv_GetClockList $fig] |
|
|
Property *ttv_GetTimingSignalProperty(TimingSignal *fig, char *code) |
|
Returns a property of a timing signal. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
fig | Pointer on the timing signal |
code | Property code; for available property codes, see the TimingSignal object section |
|
|
double ttv_GetLatchAccess(TimingFigure *tvf, TimingSignal *latch, char dir, TimingSignal
*command, char *minmax) |
|
Returns a latch's intrinsic access delay, from command to latch output
|
|
tvf | Pointer on a timing figure |
latch | Pointer on the latch to consider |
dir | Indicates that the access delay is given for the falling or rising edge of the latch node. Use both to be able to choose between min and max values. |
command | Associated command node; if NULL, all commands will be considered |
minmax | min or max; defines if min or max value is to be chosen when there are multiple choices. |
EXAMPLE | set intrinsic [ttv_GetLatchAccess $fig $lt1 falling $com1 min] |
|
|
double ttv_GetLatchSetup(TimingFigure *tvf, TimingSignal *latch, char dir, TimingSignal
*command) |
|
Returns a latch's intrinsic setup constraint, from latch input to command
|
|
tvf | Pointer on a timing figure |
latch | Pointer on the latch to consider |
dir | Indicates that the setup constraint is given for the falling or rising edge of the latch node. Use both to be able to choose between min and max values. |
command | Associated command node; if NULL, all commands will be considered |
minmax | min or max; defines if min or max value is to be chosen when there are multiple choices. |
EXAMPLE | set intrinsic [ttv_GetLatchSetup $fig $lt1 falling $com1] |
|
|
double ttv_GetLatchHold(TimingFigure *tvf, TimingSignal *latch, char dir, TimingSignal
*command) |
|
Returns a latch's intrinsic hold constraint, from latch input to command
|
|
tvf | Pointer on a timing figure |
latch | Pointer on the latch to consider |
dir | Indicates that the hold constraint is given for the falling or rising edge of the latch node. Use both to be able to choose between min and max values. |
command | Associated command node; if NULL, all commands will be considered |
minmax | min or max; defines if min or max value is to be chosen when there are multiple choices. |
EXAMPLE | set intrinsic [ttv_GetLatchHold $fig $lt1 falling $com1] |
|
|
DoubleList *ttv_GetSignalCapaList(TimingSignal *tvs) |
|
Returns the list of capacitance values (in Farads) for a given timing signal.
Values are given in the order: nominal, min and max for rise transition then nominal,
min and max for fall transition.
|
|
tvs | Pointer on the timing signal to consider |
EXAMPLE | set capa_list [ttv_GetSignalCapaList] |
|
|
char *ttv_GetFullSignalNetName(TimingFigure *tvf, TimingSignal *tvs) |
|
Returns the full hierarchical net name of a given timing signal. Returned name
is to be pasted for further use. Up to 16 full names are kept in order to reduce memory
consumption.
|
|
tvf | Pointer on a timing figure |
tvs | Pointer on the timing signal to consider |
EXAMPLE | set name [ttv_GetFullSignalNetName $fig $sig] |
|
|
char *ttv_GetFullSignalName(TimingFigure *tvf, TimingSignal *tvs) |
|
Returns the full hierarchical name of a given timing signal. Returned name is
to be pasted for further use. Up to 16 full names are kept in order to reduce memory
consumption.
|
|
tvf | Pointer on a timing figure |
tvs | Pointer on the timing signal to consider |
EXAMPLE | set name [ttv_GetFullSignalName $fig $sig] |
|
Property *ttv_GetTimingEventProperty(TimingEvent *ev, char *code) |
|
Returns a property of a timing event. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
ev | Pointer on the timing event |
code | Property code; for available property codes, see the TimingEvent object section |
|
|
TimingEventList *ttv_GetLatchCommands(TimingSignal *tvs) |
|
Returns the list of commands enabling writing in a given latch
|
|
ts | Pointer on the latch to consider |
EXAMPLE | set com_list [ttv_GetLatchCommands $lt1] |
|
|
TimingEventList *ttv_GetLatchEventCommands(TimingSignal *tvs, char dir) |
|
Returns the list of commands enabling writing of a specific transition in a given
latch
|
|
tvs | Pointer on the timing signal to consider |
dir | u or d; transition to be written |
EXAMPLE | set com_list [ttv_GetLatchCommands $lt1 u] |
|
StabilityFigure *stb(TimingFigure *tf) |
|
Launches the static timing analysis, based upon SDC and INF constraints.
The analysis can be tuned with configuration variables through avt_Config ().
The function returns a stability figure, which is a mapping of stabilty information
(switching windows) on the timing figure.
|
|
tf | Pointer on the timing figure the analysis is to be run on |
|
|
StabilityFigure *stb_LoadSwitchingWindows(TimingFigure *tvf, char *filename) |
|
Reads an STO file (.sto extension), result of a static timing analysis (stb funcion). Back-annotates (maps) a timing figure with stability information.
Warning: it is not yet compatible with false paths configuration.
|
|
tvf | Pointer on the timing figure to back-annotate |
filename | Name of the STO file to load |
|
|
void stb_FreeStabilityFigure(StabilityFigure *sf) |
|
Deletes a stability figure from memory
|
|
sf | Pointer on the stability figure to be freed |
|
|
Property *stb_GetStabilityFigureProperty(StabilityFigure *sf, char *property) |
|
Returns a property of a stability figure. A Property is a polymorphic type, the
returned type depends on the property code.
|
|
sf | Pointer on the stability figure. |
code | Property code; for available property codes, see the StabilityFigure object section. |
|
void stb_DisplayErrorList(FILE *f, StabilityFigure *stbfig, double margin, int nberror) |
|
Prints a report of signals presenting timing violations (setup and hold)
|
|
f | File where to save the report, stdout for standard output |
stbfig | Pointer on a stability figure |
margin | Value below which a setup/hold slack is reported as a violation. For example, if the margin is 100ps (100e-12 second), a signal with a setup or a hold slack below 100ps will be reported as a violation. |
nberror | Maximum number of reported violations |
|
|
TimingSignalList *stb_GetErrorList(StabilityFigure *sf, double margin, int nberror) |
|
Returns a sorted list of the signals having the worst violations.
|
|
sf | Pointer on a stability figure |
margin | Value below which a setup/hold slack is reported as a violation. For example, if the margin is 100ps (100e-12 second), a signal with a setup or a hold slack below 100ps will be reported as a violation. |
nberror | Maximum number of reported violations |
|
|
double stb_GetSetupSlack(StabilityFigure *fig, char *signame, char dir) |
|
Returns the setup slack value of a given signal. If there is no setup slack value,
-1 is returned.
|
|
fig | Pointer on a stability figure |
signame | Name of the signal to consider |
dir | u, d or ?; reports slack value for a given transition |
|
|
double stb_GetHoldSlack(StabilityFigure *fig, char *signame, char dir) |
|
Returns the hold slack value of a given signal. If there is no hold slack value,
-1 is returned.
|
|
fig | Pointer on a stability figure |
signame | Name of the signal to consider |
dir | u, d or ?; reports slack value for a given transition |
|
|
stb_DisplaySlackReport <FILE *file> <StabilityFigure *stbfig> [-from <nodename>]
[-to <nodename>] [-thru_node <nodename>] [-dir <dir>] [-nbslacks <nb>] [-margin <marginval>]
[-noprechlag] [common-options] |
|
Retreives and prints or only prints a slack report.
|
|
file | File where to save the report, stdout for standard output. |
stbfig | Stability figure. |
-from <nodename> | DATA VALID start point (clock or input pin). |
-to <nodename> | DATA VALID end point (latch, precharge, output or directive node). |
-thru_node nodename | DATA VALID access node when the DATA VALID is an acces path. |
-dir <dir> | Start and end points transitions, u, d, ?. z or / can be added to the usual direction to respectively display only HZ slacks or only non-HZ slacks. Default is ??. |
-nbslacks <nb> | Maximum number of reported setup and hold slacks. Default is unlimited (<nb><=0). |
-margin <marginval> | Value below which a setup/hold slack is reported as a violation. For example, if the margin is 100ps (100e-12 second), a signal with a setup or a hold slack below 100ps will be reported as a violation. Default is 0. |
-noprechlag | Removes slacks whose DATA VALID passes thru transparent precharges when DATA VALID is an access. |
common-options: | |
-setuponly | Displays only setup slacks. |
-holdonly | Displays only hold slacks. |
-summary | Displays only the summary of the slacks. |
-displaythru | Displays access node in the summary if the DATA VALID path is an access. |
-displaymargins | Displays the path margins and the intrinsic margin in the summary. |
-simple | Displays less detailed slack details by hiding period change operations. |
EXAMPLE | To display an already obtained StabilitySlack list: stb_DisplaySlackReport $myfile -slacks $myslacklist -displaythru -simple -summary -displaymargins To display a slack report: stb_DisplaySlackReport $myfile $sf -margin 100e-9 -from myclock -to mylatch -dir ?f -simple |
obsolete options: | |
mode | Selects the displayed slack types: setup, hold, all, margins, summary setup, summary hold or summary all. all means setup and hold. margins will show in the summary the internal margins used for the slack computation. thru shows in the summary the latch through which the data arrives as well as the latch command which enables this data. |
|
|
stb_DisplayCoverage <FILE *file> <StabilityFigure *stbfig> [-detail] |
|
Prints a coverage report concerning all the signals checked or not checked in
the design.
|
|
file | File where to save the report, stdout for standard output. |
stbfig | Stability figure. |
-detail | Output the list of the signals not checked. |
EXAMPLE | stb_DisplayCoverage stdout $sfig -detail |
|
|
<StabilitySlackList *> stb_GetSlacks <StabilityFigure *stbfig> [-from <nodename>]
[-to <nodename>] [-thru_node <nodename>] [-dir <dir>] [-nbslacks <nb>] [-margin <marginval>]
[-noprechlag] [-setuponly] [-holdonly] |
|
Returns a list of stability slack objects.
|
|
stbfig | Stability figure. |
-from <nodename> | DATA VALID start point (clock or input pin). |
-to <nodename> | DATA VALID end point (latch, precharge, output or directive node). |
-thru_node nodename | DATA VALID access node when the DATA VALID is an acces path. |
-dir <dir> | Start and end points transitions, u, d, ?. z or / can be added to the usual direction to respectively display only HZ slacks or only non-HZ slacks. Default is ??. |
-nbslacks <nb> | Maximum number of retreived setup and hold slacks. Default is unlimited (<nb><=0). |
-margin <marginval> | Value below which a setup/hold slack is reported as a violation. For example, if the margin is 100ps (100e-12 second), a signal with a setup or a hold slack below 100ps will be reported as a violation. Default is 0. |
-noprechlag | Removes slacks whose DATA VALID passes thru transparent precharges when DATA VALID is an access. |
-setuponly | Retreives only setup slacks. |
-holdonly | Retreives only hold slacks. |
EXAMPLE | set sl [stb_GetSlacks $sf -from ck -to end* -setuponly -nbslacks 10] Obsolete: set sl [stb_GetSlacks $sf * * ?? 0 setup 100e-9] |
|
|
void stb_FreeSlackList(StabilitySlackList *cl) |
|
Frees a list of stability slack objects.
|
|
cl | slack object list |
|
|
Property *stb_GetSlackProperty(StabilitySlack *so, char *property) |
|
Returns a property of a slack object. A Property is a polymorphic type, the returned
type depends on the property code.
|
|
so | Pointer on the slack object |
code | Property code; for available property codes, see the StabilitySlack object section |
|
|
<StabilitySlackList *> stb_SortSlacks [<StabilitySlackList *> l1] [<StabilitySlackList
*> l2] ...
|
|
Concatenates the given slack lists and sorts the resulting list from the worst
slack to the best.
|
|
l1, l2, ... | StabilitySlack list to merge and sort. |
EXAMPLE | set result [stb_SortSlacks $slacklist1 $slacklist2 $slacklist3] |
|
|
<StabilitySlackList *> stb_ComputeSlacks <StabilityFigure *sf> <char *datavalid>
<operation> <char *datarequired> [options] |
|
Computes slacks for a combination of data valid path list and required path list. |
|
sf | Stability figure. |
datavalid | DATA VALID specification or path list. |
datarequired | DATA REQUIRED specification or path list. |
operation | Operation to do between the two lists. Value can be before or after. before corresponds to a setup and after to a hold. |
options: | |
-margin <val> | Adds an additionnal margin to the calculus. The higher the margin the worse is the slack values. If a negative value is given and the datariquired path ends on the command of the dala valid path end latch, the UTD latch to command intrinsic margin is will be used. |
-nextperiod | If the data required path and the data valid path comes from the same clock edge, tells the API that the data required is generated by the next cycle. |
-nosync | Disables all kind of guessed data required period changes done automatically by the API hence the given paths are compared directly. |
EXAMPLE | By using the specifications: set slacks [stb_ComputeSlacks $sf "{-con=ck* -access-latch=convlat convsig}" before "{ck1 convck convsig} -dir ?d" -margin 1ps] By using the path lists: set slacks [stb_ComputeSlacks $data_paths_min after $clock_path_max -margin 2ps -nextperiod] |
|
|
stb_FindLagPaths <file> <slacklist> [-margin <value>] [-lagmargin <value>] [-maxdepth
<number>] [-closingpath]
|
|
Reports the lag paths for each given slack. This API can help find possible false
paths generating data lag hence creating wrong negative slacks.
|
|
file | File where to save the report, stdout for standard output. |
slacklist | List of slacks to analyse. |
-margin <value> | Only analyse slacks whose value is lower than or equal to value. Default is 1s (i.e. all given slacks). |
-lagmargin <value> | Only analyse slacks where the data lag value is greater than value. Default is 0. |
-maxdepth <number> | Stop backtracking after a maximum of number paths for each slack. Default is 3. |
-closingpath | Displays the closing clock path in case of huge lags where the latch closing is responsible for the lag maximum value. |
EXAMPLE | stb_FindLagPaths stdout $myslacks -lagmargin 100e-12 |
|
|
void stb_DriveReport(StabilityFigure *stbfig, char *filename) |
|
Drives a report file corresponding to a stability figure
|
|
stbfig | Stability figure |
filename | File where to save the report |
|
void avt_SetMainSeed(int value) |
|
Sets the main seed to use when evaluating random mathematical function with monte-carlo
runs enabled. The main seed is used for anything but model parameters in a ".mcparam"
spice section concerning transistor model alterations. This function goal is to enable
the reproducibility of past results.
|
|
value | seed value. |
EXAMPLE | avt_SetMainSeed 123456 |
|
|
int avt_GetMainSeed() |
|
Returns the main seed used to evaluate random mathematical function with monte-carlo
runs enabled. The main seed is used for anything but model parameters in a ".mcparam"
spice section concerning transistor model alterations. This function goal is to enable
the reproducibility of past results. |
|
EXAMPLE | puts [avt_GetMainSeed] |
|
|
void avt_SetGlobalSeed(int value) |
|
Sets the seed to use when evaluating random mathematical function with monte-carlo
runs enabled. Global seed is used only for parameters in a ".mcparam" spice section
concerning transistor model alterations. This function goal is to enable the reproducibility
of past results.
|
|
value | seed value. |
EXAMPLE | avt_SetGlobalSeed 654321 |
|
|
int avt_GetGlobalSeed() |
|
Returns the main seed used to evaluate random mathematical function with monte-carlo
runs enabled. Global seed is used only for parameters in a ".mcparam" spice section
concerning transistor model alterations. This function goal is to enable the reproducibility
of past results. |
|
EXAMPLE | puts [avt_GetGlobalSeed] |
|
runStatHiTas <numberofruns> [-slavescript <name>] [-jobscript <name>] [-datafile
<name>] [-incremental | -override] |
|
Initiates monte-carlo statistical timing runs through the call of several independent
hitas (slave) runs. |
|
numberofruns | Scheduling description of the jobs define as <total number of runs>:<maximum number of parallel runs> to run. Or simply the number of run desired if no parallelism is wanted. |
-jobscript <name> | Script file name. This script is called to spawn each slave runs. By default the slave scripts run on the same machine in separate sub-directories. |
-slavescript <name> | The slave monte-carlo script name which run a single monte carlo job. This argument can be used if the slave script is not the one using the API runStatHiTas. By default it's the current script. |
-datafile <name> | Result file name. If the file already exists, a number is added to the filename if neither -incremental nor -override are specified. By default the name is set to "ssta_data.log". |
-incremental | Force all the results to be added at the end of the data file preserving previous results. |
-override | Overrides existing datafile. |
EXAMPLE | runStatHiTas 500:2 -slavescript slave-script.tcl -datafile monte-data.log Runs 500 slave-script.tcl (2 max in parallel) with the result file monte-data.log. |
|
|
void avt_McPostData(char *msg) |
|
Used by a slave monte-carlo run, tells the master to write the given message (result)
to the result file. |
|
msg | Message to send. |
EXAMPLE | avt_McPostData [list $myworstsetupslack $myworstholdslack] |
|
|
void avt_McInfo(char *msg) |
|
Used by a slave monte-carlo run, tells the master to display/log the given message. |
|
msg | Message to send. |
EXAMPLE | avt_McInfo "Running into STA stage" |
|
ssta_ToolBox [-parsedatafile] [-getfield <filednum>] [-getdistrib] [options] |
|
Handles various operations related to statistical timing analysis results. |
|
-parsedatafile | Reads a SSTA data file and returns its content as a list (one entry per SSTA run) of 2 element lists with the SSTA run number and the line corresponding to the SSTA run from the file: {{<ssta run number> <file line>} {...} ...}. |
-getdistrib | Returns a distribution from the list of values. The distribution is a list of list with 5 elements: {{<low range value> <high range value> <number of occurence> <cumulative number of occurence> <cumulative % of occurence>} {...} ...}. |
-getfield <filednum> | Reads and returns the <filednum>'th field of each line of a file: {<line1 field value> <line2 field value> ...}. |
options: | |
-values <valuelist> | List of values to use. Works with -getdistrib. |
-filename <fname> | Filename of the file to read from or to drive to. Works with -getfield, -parsedatafile. |
-parsefunction <funcname> | Function name to run while parsing result file. Each line parsed is feed to the function
as one argument which is a list with 2 values: {<ssta run number> <file line>}. When
-parsefunction is used, the API returns nothing. Works with -parsedatafile. |
-nbrange <number> | Specifies the number of range to use when building a distribution. The default value
is 20. Works with -getdistrib. |
-fixedrange <time> | Specifies a range length rather than a range number to build a distribution. Works with -getdistrib. |
EXAMPLE | ssta_ToolBox -getdistrib -values {1 3 5 1 8} |
|
|
Usage 1: ssta_PathReport -senddata <path list> <methodname> |
|
Sends a predefined monte-carlo result from a given path list to the master ssta
script or drives a report from predefined sent data file.
|
|
Usage 1: | |
-senddata <path list> <methodname> | Sends a predefined result extracted from the given <path list>. <path list> is standard path list obtained thru ttv_GetPaths for instance. Only one method (kind of results to output) exists for now called "simple". |
Usage 2: | |
-display <ssta result file> <filedescriptor> | Uses the predefined data writen into result file <ssta result file> to output a specific report concerning the path monte-carlo characteristics. <filedescriptor> if the result of a "fopen" command call in with the report will be written. |
EXAMPLE | ssta_ToolBox -senddata $mypathlist simple |
|
|
Usage 1: ssta_SlackReport -senddata <stability figure> <methodname>
Usage 2: ssta_SlackReport -display <ssta result file> <filedescriptor>
Usage 3: ssta_SlackReport -plot <ssta result file> <output filename>
|
|
Sends a predefined monte-carlo result from a given path list to the master ssta
script or drives a report from predefined sent data file.
|
|
Usage 1: | |
-senddata <stability figure> <methodname> | Sends a predefined result extracted from the given <stability figure>. Only one method (kind of results to output) exists for now called "simple". |
Usage 2: | |
-display <ssta result file> <filedescriptor> | Uses the predefined data writen into result file <ssta result file> to output a specific report concerning the path monte-carlo characteristics. <filedescriptor> if the result of a "fopen" command call in with the report will be written. |
Usage 3: | |
-plot <ssta result file> <output filename> | Uses the predefined data writen into result file <ssta result file> to output a gnuplot view of the distributions of worst setup and hold slacks. The gnuplot file output are prefixed with <output filename>. |
EXAMPLE | ssta_ToolBox -senddata $stbfig simple or ssta_SlackReport -plot "ssta_data.log" "distrib" |
|
DoubleList *tma_GetConnectorAxis(TimingFigure *tvf, char *type, char *name) |
|
Returns the defined connector axis set for a connector/signal. |
|
fig | Pointer on the timing figure. |
type | Type of axis: slope or capacitance |
name | Name of the signal. |
EXAMPLE | set slopeaxis [tma_GetConnectorAxis $fig slope ck] |
|
|
TimingFigure *tmabs <TimingFigure *fig> <BehavioralFigure *befig> <clocks> <inputs>
<outputs> [flags] |
|
Generates a characterization from a timing database and associates functionality
if provided. |
|
fig | Pointer on the timing figure to be blackboxed. |
befig | Pointer on the behavioral figure to associate with the blackbox. Set to NULL if no info is available. |
clocks | list of clock names to consider in the timing figure. |
inputs | list of input names to consider in the timing figure. |
outputs | list of output names to consider in the timing figure. |
flags: | |
-simulate <list> | Indicates what to simulate. <list> is a list of path description. A path description is a list of 1 or 2 pin names. The list looks like {pin_name related_pin_name} following .lib convention. if the related_pin_name is omited it is considered to be *. |
-maxsim <number> | Maximum number of parallel simulations to launch to speed up characterisations done with simulations. |
-enablecache | Enables the use of a cache file with already simulated path delays to continue a previously stopped run. |
-scalevalues <list> | Gives a list of factors to use to computed default slope and capacitance axis in case they are not specified in the information file. |
-verbose | Enables verbose mode. |
-detailfile <filename> | Drives in the file <filename> the detail of the paths used for each characterisation. |
-minonly | Computes only min delays. |
-maxonly | Computes only max delays. |
-setuponly | Computes only setups. |
-holdonly | Computes only holds. |
-dumpdtx | Drive the computed blackbox at the end of the process. |
-exitonerror | Exit on any error. Most likely simulation errors. |
-ignoremargins | Dot not add defined path margins to the computed/simulated delays. |
-detectfalsepath | Run a falsepath detection prior to begin the blackbox creation. |
-addpins <pinlist> | Add non existing connectors into the blackbox. Direction of pins can be defined in the list. eg. input0 input1 i output o. See ttv_AddConnector for available pin directions. |
EXAMPLE | set bbox [tmabs $tf NULL * * * -maxsim 4 -simulate * -verbose -enablecache] |
|
|
void tma_SetMaxCapacitance(TimingFigure *bbox, char *name, CapaValue value) |
|
Sets the max capacitance to report in .lib file.
|
|
bbox | Blackbox timing figure. |
name | Name of the connector (can be a regular expression). |
value | Capacitance value |
EXAMPLE | set slopeaxis [tma_GetConnectorAxis $fig slope ck] |
|
|
void lib_DriveFile(List *fig_list, List *befig_list, char *file, char *delaytype) |
|
Saves a list of blackboxed timing figures on disk, in a single .lib file
|
|
fig_list | List of timing figures to print in the .lib file. For a single timing figure, use a list of one element (example given below) |
befig_list | List of behavioral figures to associate with the timing figures. There should be a one-to-one correspondence between the elements in befig_list and fig_list, and there should be the same number of elements if the two lists. Use NULL to fill the gaps in befig_list. |
file | Name of the .lib file to create |
delaytype | Defines if the cell_rise and cell_fall timing groups will have only maximum delays (max), minimum delays (min) or both (both). |
EXAMPLE | lib_DriveFile [list $bbox] NULL cpu.lib max |
|
|
void lib_DriveHeader(TimingFigure *fig, FILE *file, char *libname) |
|
Prints a .lib header in a file, regarding to the information present in the given timing figure
|
|
fig | Pointer on the timing figure to consider |
file | Pointer on the file where to print the .lib header |
libname | Name to be put in the library statement of the .lib header |
|
|
char *lib_CanonicPinName(char *name) |
|
Adapts pin names according to the .lib syntax (typically bus delimiter are replaced by _)
|
|
name | Pin's name |
|
TimingConstraintList *ttv_GetConstraints(TimingFigure *tf, char *inputconnector, char
*towhat) |
|
Computes the constraints at the interface of a timing figure.
Returns a list of TimingConstraint.
|
|
tf | Timing figure |
inputconnector | Connector whose constraints must be computed |
towhat | Ending path node types, can be a mix of latch, precharge, clockgating, precharge or all |
EXAMPLE | set cl [ttv_GetConstraints $fig * all |
|
|
ttv_FreeConstraints <allobj>
|
|
Frees the constraints.
|
|
allobj | Constraint objects to free |
EXAMPLE | ttv_FreeConstraints $myconstraints |
|
|
Property *ttv_GetTimingConstraintProperty(TimingConstraint *co, char *property) |
|
Returns a property of a timing constraint. A Property is a polymorphic type, the
returned type depends on the property code.
|
|
co | Pointer on the timing constraint |
property | Property code; for available property codes, see the TimingConstraint object section |
|
void ctk_LoadAggressionFile(StabilityFigure *stbfig) |
|
Loads the crosstalk database (generated with stb in crosstalk mode), and back-annotates a stability figure
|
|
stbfig | Pointer on the stability figure to back-annotate |
|
|
ctk_LoadCrosstalkResults <timingfigure>
|
|
Puts the UTD in the same state as after the crosstalk analysis was done. The corresponding
StabilityFigure is returned.
Functions 'ttv_LoadCrosstalkFile', 'stb_LoadSwitchingWindows' then 'ctk_LoadAggressionFile'
are called to do this action.
|
|
timingfigure | TimingFigure to put into post-crosstalk analysis state |
EXAMPLE | set stabfig [ctk_LoadCrosstalkResults $myUTD]. |
|
|
void ctk_DriveStatCtk(StabilityFigure *stbfig) |
|
Drives a .ctk crosstalk analysis report file
|
|
stbfig | Pointer on the stability figure associated |
|
|
void ctk_BuildCtkStat(StabilityFigure *stbfig) |
|
Builds the internal crosstalk table of statistics for events and delays
|
|
stbfig | Pointer on the stability figure associated |
|
Property *ctk_GetStatNodeProperty(StabilityFigure *stbfig, int index, char *property) |
|
Returns a property of a crosstalk node. A Property is a polymorphic type, the
returned type depends on the property code.
|
|
stbfig | Pointer on a stability figure |
index | Number between 1 and the value returned by ctk_GetNumberOfCtkStatNode |
property | Property code; for available property codes, see the StatNode object section |
|
|
int ctk_GetNumberOfCtkStatNode(StabilityFigure *stbfig) |
|
Returns the number crosstalk node statistics
|
|
stbfig | Pointer on a stability figure |
|
|
int ctk_GetCtkStatNodeFromEvent(StabilityFigure *stbfig, TimingEvent *event) |
|
Returns the crosstalk statistic index of a given timing event
|
|
stbfig | Pointer on a stability figure |
event | Pointer on a timing event |
|
|
int ctk_GetNumberOfCtkStatLine(StabilityFigure *stbfig) |
|
Returns the number crosstalk delay statistics
|
|
stbfig | Pointer on a stability figure |
|
|
Property *ctk_GetStatLineProperty(StabilityFigure *stbfig, int index, char *property) |
|
Returns a property of a crosstalk delay line. A Property is a polymorphic type,
the returned type depends on the property code.
|
|
stbfig | Pointer on a stability figure |
index | Number between 1 and the value returned by ctk_GetNumberOfCtkStatLine |
property | Property code; for available property codes, see the StatLine object section |
|
void ctk_SortCtkStatLine(StabilityFigure *stbfig, char *criterion) |
|
Sorts crosstalk delay statistics according to various criteria
|
|
stbfig | Pointer on a stability figure |
criterion | ABSOLUTE_DELAY, ABSOLUTE_MAX_DELAY, ABSOLUTE_MIN_DELAY, RELATIVE_DELAY, RELATIVE_MAX_DELAY, RELATIVE_MIN_DELAY, ABSOLUTE_SLOPE, ABSOLUTE_MAX_SLOPE, ABSOLUTE_MIN_SLOPE, RELATIVE_SLOPE, RELATIVE_MAX_SLOPE or RELATIVE_MIN_SLOPE. |
|
AggressorList *ctk_GetAggressorList(StabilityFigure *stbfig, TimingEvent *event) |
|
Returns the list of all the aggressors of an event. This list must be freed with
the ctk_FreeAggressorList command.
|
|
stbfig | Pointer on a stability figure |
event | Pointer on a timing event |
|
|
Property *ctk_GetAggressorProperty(Aggressor *aggressor, char *property) |
|
Returns a property of a aggressor node. A Property is a polymorphic type, the
returned type depends on the property code.
|
|
aggressor | Pointer on a aggressor |
property | Property code; for available property codes, see the Aggressor object section |
|
|
void ctk_FreeAggressorList(AggressorList *list) |
|
Frees the list given by ctk_GetAggressorList
|
|
list | Pointer on the aggressor list to be freed |
|
cpe_DefineCorrelation <net1> <relation> <net2> |
|
Defines the relation between 2 signals to help computing propagation condition
for simulations.
|
|
net1 | First net name. |
relation | Value '=' means net1=net2 Value '!=' means net1=not(net2) |
net2 | Second net name. |
EXAMPLE | cpe_DefineCorrelation clk != clkb |
|