1 #include "avt_API_types.h"
7 Main way to configure the tool. Affects a value to one of the variables listed in the Configuration Variables section
9 var % Configuration variable to be set
11 EXAMPLE % {avt_Config tasGenerateConeFile yes}
13 void avt_config (char *var
, char *val
);
14 void avt_Config (char *var
, char *val
);
20 returns the configurated value for configuration variable {var}
22 var % Configuration variable to be set
23 EXAMPLE % {set cone_cfg [avt_GetConfig tasGenerateConeFile]}
25 char *avt_GetConfig (char *var
);
32 Allows the user to blackbox subcircuits. Blackboxed subcircuits will not be analyzed. Instead, the tool will let a hole. Whether this hole should
33 be filled up or not by a timing description depends on configuration variables {tasIgnoreBlackbox} and {tasTreatBlackboxHierarchically}.
34 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.
35 This command is equivalent to and overrides the creation of a {BLACKBOX} file.
37 list % List of subcircuits to be blackboxed. All intended blackboxed subcircuits should present as only one {avt_SetBlackBoxes} command is allowed.
38 EXAMPLE % {avt_SetBlackBoxes [list "sense_amp"]}
40 void avt_SetBlackBoxes(List
*list
);
47 Loads behavioral descriptions and construct internal representation according to the file format
49 filename % File to be loaded
50 format % Available formats are {vhdl} and {verilog}
51 EXAMPLE % {avt_LoadFile model.v verilog}
53 BehavioralFigure
*avt_LoadBehavior(char *filename
, char *format
);
60 Drives a behavioral description according to the file format from the given internal representation
62 befig % Behavior to be driven
63 format % Available formats are {vhdl} and {verilog}
64 EXAMPLE % {avt_DriveBehavior $befig output.v verilog}
66 void avt_DriveBehavior(BehavioralFigure
*befig
, char *format
);
73 Loads files and construct internal representation according to the file format
75 filename % File to be loaded
76 format % Available formats are {spice}, {tlf4}, {tlf3}, {lib}, {verilog}, {vhdl}, {spf}, {dspf}, {inf}, {spef} and {ttv}
77 EXAMPLE % {avt_LoadFile design.hsp spice}
79 void avt_LoadFile(char *filename
, char *format
);
86 Encrypts all sections of a Spice file (netlist or technology file) which are encapsulated by the {.protect} and {.unprotect} spice cards.
88 inputname % File to be encrypted
89 outputname % Destination for encrypted output
90 EXAMPLE % {avt_EncryptSpice techno.hsp techno.hsp.enc}
92 void avt_EncryptSpice(char *inputname
, char *outputname
);
99 Retrieves a netlist from memory and returns its pointer
101 name % Name of the netlist to get in the program's memory
102 EXAMPLE % {set netlist [avt_GetNetlist "my_design"]}
104 Netlist
*avt_GetNetlist(char *name
);
108 MAN avt_FlattenNetlist
111 Flattens a netlist to a given level.
113 lf % Pointer on the netlist to be flattened
114 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.
115 EXAMPLE % {avt_FlattenNetlist $netlist trs}
117 void avt_FlattenNetlist(Netlist
*lf
, char *level
);
124 Saves the netlist on disk according to the given format
126 lf % Pointer on the netlist to be saved
127 filename % Name of the file to be created
128 format % Available formats are {spice}, {verilog}, {vhdl} and {spef}
129 EXAMPLE % {avt_DriveNetlist $netlist design.spi spice}
131 void avt_DriveNetlist(Netlist
*lf
, char *filename
, char *format
);
135 MAN avt_DisplayNetlistHierarchy
138 Displays hierarchy information of a given netlist, and other info such as number of transistors
140 f % Pointer on the file where to save information, for standard output set {stdout}
141 netlistname % Pointer on the netlist
142 maxdepth % Maximum hierarchical depth coming from top level; can be set to 0 for infinite depth
143 EXAMPLE % {avt_DisplayNetlistHierarchy stdout "my_design" 3}
145 void avt_DisplayNetlistHierarchy(FILE *f
, char *netlistname
, int maxdepth
);
149 MAN avt_DisplayResistivePath
152 Displays one resistive path between two connectors at the interface of a netlist.
154 f % Pointer on the file where to save information, for standard output set {stdout}
155 lf % Pointer on the netlist
156 connector1 % first connector name
157 connector2 % second connector name
158 EXAMPLE % {avt_DisplayResistivePath stdout [avt_GetNetlist "mynetlistname"] vdd_0 vdd_1}
160 void avt_DisplayResistivePath(FILE *f
, Netlist
*lf
, char *connector1
, char *connector2
);
164 MAN avt_RemoveResistances
167 Removes all resistances on signals matching a regular expression
169 lf % Pointer on the netlist where to remove resistances
170 nameregex % Regular expression to be matched, for all signals use {*}
171 EXAMPLE % {avt_RemoveResistances $netlist "cpu.*.sig3*"}
174 void avt_RemoveResistances(Netlist
*lf
, char *nameregex
);
178 MAN avt_RemoveCapacitances
181 Removes all capacitances on signals matching a regular expression
183 lf % Pointer on the netlist where to remove capacitances
184 nameregx % Regular expression to be matched, for all signals use {*}
185 EXAMPLE % {avt_RemoveCapacitances $netlist "cpu.*.sig3*"}
187 void avt_RemoveCapacitances(Netlist
*lf
, char *nameregex
);
194 Starts a timer; if the timer already exixts it'll be reset to 0.
197 EXAMPLE % {avt_StartWatch "CPU_TIME"}
202 void avt_StartWatch(char *name
);
209 Stops a timer; the timer must be started for the function to work
211 name % Name of the timer to stop
212 EXAMPLE % {avt_StopWatch "CPU_TIME"}
214 void avt_StopWatch(char *name
);
221 Returns a string with the value of a timer; the timer must have been started
223 name % Name of the timer to print
224 EXAMPLE % {avt_PrintWatch "CPU_TIME"}
226 char *avt_PrintWatch(char *name
);
230 MAN avt_GetMemoryUsage
233 Returns an integer with the memory usage of the program in bytes
235 EXAMPLE % {set memory [avt_GetMemoryUsage]}
237 unsigned long avt_GetMemoryUsage();
243 Sets the leaves when flattening a netlist to catal level; equivalent to create a CATAL file
245 argv % List of subcircuits that will be used as leaves
246 EXAMPLE % {avt_SetCatalog [list "nand2" "inv" ]}
248 void avt_SetCatalog(List
*argv
);
254 Returns the current list of cells set as leaves for a catal-level flatten
256 EXAMPLE % {set catal [avt_GetCatalog]}
258 StringList
*avt_GetCatalog();
260 void avt_SetSEED(int val
);
261 void avt_AddRC(Netlist
*lofig
, int maxwire
, double minc
, double maxc
, double minr
, double maxr
);
262 void avt_AddCC(Netlist
*lofig
, double minc
, double maxc
);
263 void avt_RemoveNetlist(char *name
);
264 void avt_ViewNetlist(char *name
);
265 void avt_ViewSignal(char *name
, char *signal
);
266 List
* avt_SigList(char *name
);
267 List
* avt_PinList(char *name
);
268 void avt_DriveSignalInfo( Netlist
*lf
, char *nameregex
, char *filename
);
270 int avt_CodeName(char *name
);
276 Runs a set of benchs to findout possible technology errors
278 label % A prefix label for the output result files
279 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.
280 tp % same as {tn} for PMOS transistor.
281 EXAMPLE % avt_CheckTechno check1 "nmos l=0.4u w=0.8u" "pmos l=0.4u w=1.6u"
284 void avt_CheckTechno(char *label
, char *tn
, char *tp
);
289 MAN avt_RegexIsMatching
292 Returs 1 if {nametocheck} matches the regular expression {template}, 0 otherwise.
294 nametocheck % name to check.
295 template % regular expression to use.
296 EXAMPLE % {set match [avt_RegexIsMatching tatoo5 *too*]}
299 int avt_RegexIsMatching(char *nametocheck
, char *template);
305 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.
308 EXAMPLE % {avt_SetMainSeed 123456}
311 void avt_SetMainSeed(unsigned int value
);
317 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.\$This function must be called after HiTas execution.
319 EXAMPLE % {puts [avt_GetMainSeed]}
322 unsigned int avt_GetMainSeed();
325 MAN avt_SetGlobalSeed
328 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.
331 EXAMPLE % {avt_SetGlobalSeed 654321}
334 void avt_SetGlobalSeed(unsigned int value
);
337 MAN avt_GetGlobalSeed
340 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.\$This function must be called after HiTas execution.
342 EXAMPLE % {puts [avt_GetGlobalSeed]}
345 unsigned int avt_GetGlobalSeed();
347 void avt_banner (char *tool
, char *comment
, char *date
);