建議使用時再仔細(xì)研究對應(yīng)類型的子程序。這里也沒有對所有的子程序都進(jìn)行驗證,由于版本或抄寫問題,可能會有所疏漏,歡迎指正。
TF 子程序常用于 Verilog 和用戶 C 子程序之間的雙向數(shù)據(jù)傳輸。當(dāng)以 ?tf_
? 為前綴的子程序有一個以 ?tf_i
? 為前綴的子程序與之對應(yīng)時,這個以 ?tf_i
? 為前綴的對應(yīng)子程序中發(fā)生操作的實例指針必須被當(dāng)做變量列表最后的附加變量加以傳遞。
TF 子程序在命名形式上沒有明確的分類標(biāo)志,簡單做如下總結(jié)。
返回類型 | 調(diào)用格式及說明 |
---|---|
char * | ◆tf_getinstance() |
獲取指向用戶定義的系統(tǒng)任務(wù)或函數(shù)的當(dāng)前實例的指針。 | |
char * | ◆tf_mipname()
◆tf_imipname(char *instance_p) |
以字符串形式獲取分層模塊實例路徑名。 | |
char * | ◆tf_spname()
◆tf_ispname(char *instance_p) |
以字符串形式獲取范圍分層路徑名。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆tf_nump()
◆tf_inump(char *instance_p) |
獲取任務(wù)或函數(shù)參數(shù)的數(shù)量。 | |
int | ◆tf_typep(int narg)
◆tf_itypep(int narg, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)類型。 | |
int | ◆tf_sizep(narg)
◆tf_isizep(int narg, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)的位長。 | |
t_tfexprinfo * | ◆tf_exprinfo(int narg, t_tfexprinfo *exprinfo_p)
◆tf_iexprinfo(int narg, t_tfexprinfo *exprinfo_p, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)表達(dá)式信息。
t_tfexprinfo 是一個數(shù)據(jù)結(jié)構(gòu),在 veriuser.h 中定義。 |
|
t_tfnodeinfo * | ◆tf_nodeinfo(int narg, t_tfnodeinfo *nodeinfo_p)
◆tf_inodeinfo(int narg, t_tfnodeinfo *nodeinfo_p, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)節(jié)點信息。
t_tfnodeinfo 是一個數(shù)據(jù)結(jié)構(gòu),在 veriuser.h 中定義。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆tf_getp(int narg)
◆tf_igetp(int narg, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)值作為整數(shù)或字符串指針 | |
double | ◆tf_getrealp(int narg)
◆tf_igetrealp(int narg, char *instance_p) |
獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)值作為雙精度值。 | |
int | ◆tf_getlongp(int *aof_highvalue, int narg)
◆tf_igetlongp(int *aof_highvalue, int narg, char *instance_p) |
以 64 位整數(shù)形式獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)值。 | |
char * | ◆tf_strgetp(int narg, int format)
◆tf_istrgetp(int narg, int format, char *instance_p) |
獲取格式化的系統(tǒng)任務(wù)/函數(shù)參數(shù)值。 | |
char * | ◆tf_getcstringp(int narg)
◆tf_igetcstringp(int narg, char *instance_p) |
以字符串形式獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)值。 | |
int | ◆tf_evaluatep(int narg)
◆tf_ievaluatep(int narg, char *instance_p) |
評估系統(tǒng)任務(wù)/函數(shù)參數(shù)表達(dá)式。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆tf_putp(int narg, int value)
◆tf_iputp(int narg, int value, char *instance_p) |
將整數(shù)值放入系統(tǒng)任務(wù)/函數(shù)參數(shù)或函數(shù)返回。 | |
int | ◆tf_putrealp(int narg, double value)
◆tf_iputrealp(int narg, double value, char *instance_p) |
將實際值寫入系統(tǒng)任務(wù)/函數(shù)參數(shù)或函數(shù)返回。 | |
int | ◆tf_putlongp(int narg, int lowvalue, int highvalue)
◆tf_iputlongp(int narg, int lowvalue, int highvalue, char *instance_p) |
將 64 位整數(shù)值寫入系統(tǒng)任務(wù)/函數(shù)參數(shù)或函數(shù)返回。 | |
int | ◆tf_propagatep(int narg)
◆tf_ipropagatep(int narg, char *instance_p) |
傳播系統(tǒng)任務(wù)/函數(shù)參數(shù)值。 | |
int | ◆tf_strdelputp(int narg, int bitlength, char format, char *value_p, int delay, int delaytype)
◆tf_istrdelputp(int narg, int bitlength, char format, char *value_p, int delay, int delaytype, char *instance_p) |
使用 32 位整數(shù)延遲將值從字符串值規(guī)范寫入系統(tǒng)任務(wù)/函數(shù)參數(shù)。 | |
int | ◆tf_strrealdelputp(int narg, int bitlength, char format, char *value_p, double realdelay, int delaytype)
◆tf_istrrealdelputp(int narg, int bitlength, char format, char *value_p, double realdelay, int delaytype, char *instance_p) |
使用實數(shù)延遲將值從字符串值規(guī)范寫入系統(tǒng)任務(wù)/函數(shù)參數(shù)。 | |
int | ◆tf_strlongdelputp(int narg, int bitlength, char format, char *value_p, int lowdelay, int highdelay, int delaytype)
◆tf_istrlongdelputp(int narg, int bitlength, char format, char *value_p, int lowdelay, int highdelay, int delaytype, char *instance_p) |
使用 64 位整數(shù)延遲將值從字符串值規(guī)范寫入系統(tǒng)任務(wù)/函數(shù)參數(shù)。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆tf_asynchon()
◆tf_iasynchon(char *instance_p) |
為系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改啟用 misctf 應(yīng)用程序的異步調(diào)用。 | |
int
(always 0) |
◆tf_asynchoff()
◆tf_iasynchoff(char *instance_p) |
禁用 misctf 應(yīng)用程序的異步調(diào)用。 | |
int | ◆tf_synchronize()
◆tf_isynchronize(char *instance_p) |
同步到仿真時間步的結(jié)束。 | |
int | ◆tf_rosynchronize()
◆tf_irosynchronize(char *instance_p) |
同步到仿真時間步的結(jié)束。 | |
int | ◆tf_getpchange(int narg)
◆tf_igetpchange(int narg, char *instance_p) |
獲取下一個更改值的系統(tǒng)任務(wù)/函數(shù)參數(shù)的索引號。 | |
int | ◆tf_copypvc_flag(int narg)
◆tf_icopypvc_flag(int narg, char *instance_p) |
復(fù)制系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改標(biāo)志。 | |
int | ◆tf_movepvc_flag(int narg)
◆tf_imovepvc_flag(int narg, char *instance_p) |
移動系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改標(biāo)志。 | |
int | ◆tf_testpvc_flag(int narg)
◆tf_itestpvc_flag(int narg, char *instance_p) |
測試系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改標(biāo)志。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆tf_gettime()
◆tf_igettime(char *instance_p) |
以 32 位整數(shù)形式獲取當(dāng)前仿真時間。 | |
double | ◆tf_getrealtime()
◆tf_igetrealtime(char *instance_p) |
以雙精度格式獲取當(dāng)前仿真時間。 | |
int | ◆tf_getlongtime(int *aof_hightime)
◆tf_igetlongtime(int *aof_hightime, char *instance_p) |
以 64 位整數(shù)形式獲取當(dāng)前仿真時間。
返回最低有效(最右邊)32 位仿真時間 |
|
char * | ◆tf_strgettime() |
以字符串形式獲取當(dāng)前模擬時間。 | |
int | ◆tf_getnextlongtime(int *aof_lowtime, int *aof_hightime) |
獲取下一次安排模擬事件的時間 | |
int | ◆tf_gettimeprecision()
◆tf_igettimeprecision(char *instance_p) |
獲取模塊或模擬的時間刻度精度。 | |
int | ◆tf_gettimeunit()
◆tf_igettimeunit(char *instance_p) |
獲取模塊或模擬的時間刻度單位。 | |
int | ◆tf_setdelay(int delay)
◆tf_isetdelay(int delay, char *instance_p) |
在特定的模擬時間激活 misctf 應(yīng)用程序。 | |
int | ◆tf_setlongdelay(int lowdelay, int highdelay)
◆tf_isetlongdelay(int lowdelay, int highdelay, char *instance_p) |
在特定的模擬時間激活 misctf 應(yīng)用程序。 | |
int | ◆tf_setrealdelay(double realdelay)
◆tf_isetrealdelay(double realdelay, char *instance_p) |
在特定的模擬時間激活 misctf 應(yīng)用程序。 | |
void | ◆tf_scale_longdelay(char *instance_p, int delay_lo, int delay_hi, int *aof_delay_lo, int *aof_delay_hi) |
將 64 位整數(shù)延遲轉(zhuǎn)換為模塊實例的時間刻度。 | |
void | ◆tf_scale_realdelay(char *instance_p, double realdelay, double *aof_realdelay) |
將雙精度浮點延遲轉(zhuǎn)換為模塊實例的時間刻度。 | |
void | ◆tf_unscale_longdelay(char *instance_p, int delay_lo, int delay_hi, int *aof_delay_lo, int *aof_delay_hi) |
將內(nèi)部仿真時間單位的延遲轉(zhuǎn)換為特定模塊的時間尺度。 | |
void | ◆tf_unscale_realdelay(char *instance_p, double realdelay, double *aof_realdelay) |
將以內(nèi)部仿真時間單位表示的延遲轉(zhuǎn)換為特定模塊的時間尺度。 | |
int | ◆tf_clearalldelays()
◆tf_iclearalldelays(char *instance_p) |
通過 tf_setdelay() 或 tf_isetdelay() 清除所有計劃的重新激活。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int
(always 0) |
◆tf_add_long(int *aof_low1, int *aof_high1, int low2, int high2) |
添加兩個 64 位整數(shù)。 | |
int
(always 0) |
◆tf_subtract_long(int *aof_low1, int *aof_high1, int low2, int high2) |
減去兩個 64 位整數(shù)。 | |
void | ◆tf_multiply_long(int *aof_low1, int *aof_high1, int low2, int high2) |
將兩個 64 位整數(shù)相乘。 | |
void | ◆tf_divide_long(int *aof_low1, int *aof_high1, int low2, int high2) |
將兩個 64 位整數(shù)相除。 | |
int | ◆tf_compare_long(int low1, int high1, int low2, int high2) |
比較兩個 64 位整數(shù)值。 | |
char * | ◆tf_longtime_tostr(int lowtime, int hightime) |
將 64 位整數(shù)時間值轉(zhuǎn)換為字符串。 | |
void | ◆tf_real_to_long(double realvalue, int *aof_low, int *aof_high) |
將實數(shù)轉(zhuǎn)換為 64 位整數(shù)。 | |
void | ◆tf_long_to_real(int low, int high, double *aof_real) |
將 64 位整數(shù)轉(zhuǎn)換為實數(shù)。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
void | ◆io_printf(char *format, arg1, ..., arg12) |
將格式化消息打印到調(diào)用 PLI 應(yīng)用程序的軟件產(chǎn)品的輸出通道和產(chǎn)品的日志文件。 | |
void | ◆io_mcdprintf(int mcd, char *format, arg1, ..., arg12) |
將格式化的消息寫入一個或多個文件。 | |
int
(always 0) |
◆tf_error(char *format, arg1,..., arg5) |
報告錯誤消息。 | |
int
(always 0) |
◆tf_warning(char *format, arg1, ..., arg5) |
報告警告消息。 | |
int
(always 0) |
◆tf_message(int level, char *facility, char *code, char *message, arg1,..., arg5) |
使用軟件產(chǎn)品中斷控制報告錯誤或警告消息。 | |
int
(always 0) |
◆tf_text(char *message, arg1,..., arg5) |
存儲錯誤消息信息。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int
(always 0) |
◆tf_setworkarea(char *workarea)
◆tf_isetworkarea(char *workarea, char *instance_p) |
將用戶數(shù)據(jù)指針存儲在工作區(qū)中。 | |
char * | ◆tf_getworkarea()
◆tf_igetworkarea(char *instance_p) |
獲取工作區(qū)指針。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int
(always 0) |
◆tf_dostop() |
使軟件產(chǎn)品進(jìn)入交互模式。 | |
int
(always 0) |
◆tf_dofinish() |
退出軟件產(chǎn)品執(zhí)行。 | |
char * | ◆mc_scan_plusargs(char *startarg) |
掃描軟件產(chǎn)品調(diào)用命令行以獲取加號 (+) 選項。 | |
int | ◆tf_write_save(char *blockptr, int blocklen) |
將數(shù)據(jù)塊附加到保存文件。 | |
int | ◆tf_read_restart(char *blockptr, int blocklen) |
從先前寫入的保存文件中獲取數(shù)據(jù)塊。 |
更多建議: