Verilog TF子程序列表

2022-05-20 14:39 更新

建議使用時(shí)再仔細(xì)研究對(duì)應(yīng)類(lèi)型的子程序。這里也沒(méi)有對(duì)所有的子程序都進(jìn)行驗(yàn)證,由于版本或抄寫(xiě)問(wèn)題,可能會(huì)有所疏漏,歡迎指正。

TF 子程序常用于 Verilog 和用戶(hù) C 子程序之間的雙向數(shù)據(jù)傳輸。當(dāng)以 ?tf_? 為前綴的子程序有一個(gè)以 ?tf_i? 為前綴的子程序與之對(duì)應(yīng)時(shí),這個(gè)以 ?tf_i? 為前綴的對(duì)應(yīng)子程序中發(fā)生操作的實(shí)例指針必須被當(dāng)做變量列表最后的附加變量加以傳遞。

TF 子程序在命名形式上沒(méi)有明確的分類(lèi)標(biāo)志,簡(jiǎn)單做如下總結(jié)。

取任務(wù)、函數(shù)信息

返回類(lèi)型 調(diào)用格式及說(shuō)明
char * ◆tf_getinstance()
  獲取指向用戶(hù)定義的系統(tǒng)任務(wù)或函數(shù)的當(dāng)前實(shí)例的指針。
char * ◆tf_mipname()
◆tf_imipname(char *instance_p)
  以字符串形式獲取分層模塊實(shí)例路徑名。
char * ◆tf_spname()
◆tf_ispname(char *instance_p)
  以字符串形式獲取范圍分層路徑名。

取變量列表信息

返回類(lèi)型 調(diào)用格式及說(shuō)明
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ù)類(lèi)型。
int ◆tf_sizep(narg)
◆tf_isizep(int narg, char *instance_p)
  獲取系統(tǒng)任務(wù)/函數(shù)參數(shù)的位長(zhǎng)。
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 是一個(gè)數(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é)點(diǎn)信息。
t_tfnodeinfo 是一個(gè)數(shù)據(jù)結(jié)構(gòu),在 veriuser.h 中定義。

取參數(shù)值

返回類(lèi)型 調(diào)用格式及說(shuō)明
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)
  評(píng)估系統(tǒng)任務(wù)/函數(shù)參數(shù)表達(dá)式。

置參數(shù)值

返回類(lèi)型 調(diào)用格式及說(shuō)明
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)
  將實(shí)際值寫(xiě)入系統(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ù)值寫(xiě)入系統(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ī)范寫(xiě)入系統(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í)數(shù)延遲將值從字符串值規(guī)范寫(xiě)入系統(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ī)范寫(xiě)入系統(tǒng)任務(wù)/函數(shù)參數(shù)。

監(jiān)視參數(shù)值變化

返回類(lèi)型 調(diào)用格式及說(shuō)明
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)
  同步到仿真時(shí)間步的結(jié)束。
int ◆tf_rosynchronize()
◆tf_irosynchronize(char *instance_p)
  同步到仿真時(shí)間步的結(jié)束。
int ◆tf_getpchange(int narg)
◆tf_igetpchange(int narg, char *instance_p)
  獲取下一個(gè)更改值的系統(tǒng)任務(wù)/函數(shù)參數(shù)的索引號(hào)。
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)
  移動(dòng)系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改標(biāo)志。
int ◆tf_testpvc_flag(int narg)
◆tf_itestpvc_flag(int narg, char *instance_p)
  測(cè)試系統(tǒng)任務(wù)/函數(shù)參數(shù)值更改標(biāo)志。

任務(wù)同步

返回類(lèi)型 調(diào)用格式及說(shuō)明
int ◆tf_gettime()
◆tf_igettime(char *instance_p)
  以 32 位整數(shù)形式獲取當(dāng)前仿真時(shí)間。
double ◆tf_getrealtime()
◆tf_igetrealtime(char *instance_p)
  以雙精度格式獲取當(dāng)前仿真時(shí)間。
int ◆tf_getlongtime(int *aof_hightime)
◆tf_igetlongtime(int *aof_hightime, char *instance_p)
  以 64 位整數(shù)形式獲取當(dāng)前仿真時(shí)間。
返回最低有效(最右邊)32 位仿真時(shí)間
char * ◆tf_strgettime()
  以字符串形式獲取當(dāng)前模擬時(shí)間。
int ◆tf_getnextlongtime(int *aof_lowtime, int *aof_hightime)
  獲取下一次安排模擬事件的時(shí)間
int ◆tf_gettimeprecision()
◆tf_igettimeprecision(char *instance_p)
  獲取模塊或模擬的時(shí)間刻度精度。
int ◆tf_gettimeunit()
◆tf_igettimeunit(char *instance_p)
  獲取模塊或模擬的時(shí)間刻度單位。
int ◆tf_setdelay(int delay)
◆tf_isetdelay(int delay, char *instance_p)
  在特定的模擬時(shí)間激活 misctf 應(yīng)用程序。
int ◆tf_setlongdelay(int lowdelay, int highdelay)
◆tf_isetlongdelay(int lowdelay, int highdelay, char *instance_p)
  在特定的模擬時(shí)間激活 misctf 應(yīng)用程序。
int ◆tf_setrealdelay(double realdelay)
◆tf_isetrealdelay(double realdelay, char *instance_p)
  在特定的模擬時(shí)間激活 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)換為模塊實(shí)例的時(shí)間刻度。
void ◆tf_scale_realdelay(char *instance_p, double realdelay, double *aof_realdelay)
  將雙精度浮點(diǎn)延遲轉(zhuǎn)換為模塊實(shí)例的時(shí)間刻度。
void ◆tf_unscale_longdelay(char *instance_p, int delay_lo, int delay_hi, int *aof_delay_lo, int *aof_delay_hi)
  將內(nèi)部仿真時(shí)間單位的延遲轉(zhuǎn)換為特定模塊的時(shí)間尺度。
void ◆tf_unscale_realdelay(char *instance_p, double realdelay, double *aof_realdelay)
  將以?xún)?nèi)部仿真時(shí)間單位表示的延遲轉(zhuǎn)換為特定模塊的時(shí)間尺度。
int ◆tf_clearalldelays()
◆tf_iclearalldelays(char *instance_p)
  通過(guò) tf_setdelay() 或 tf_isetdelay() 清除所有計(jì)劃的重新激活。

算術(shù)運(yùn)算

返回類(lèi)型 調(diào)用格式及說(shuō)明
int
(always 0)
◆tf_add_long(int *aof_low1, int *aof_high1, int low2, int high2)
  添加兩個(gè) 64 位整數(shù)。
int
(always 0)
◆tf_subtract_long(int *aof_low1, int *aof_high1, int low2, int high2)
  減去兩個(gè) 64 位整數(shù)。
void ◆tf_multiply_long(int *aof_low1, int *aof_high1, int low2, int high2)
  將兩個(gè) 64 位整數(shù)相乘。
void ◆tf_divide_long(int *aof_low1, int *aof_high1, int low2, int high2)
  將兩個(gè) 64 位整數(shù)相除。
int ◆tf_compare_long(int low1, int high1, int low2, int high2)
  比較兩個(gè) 64 位整數(shù)值。
char * ◆tf_longtime_tostr(int lowtime, int hightime)
  將 64 位整數(shù)時(shí)間值轉(zhuǎn)換為字符串。
void ◆tf_real_to_long(double realvalue, int *aof_low, int *aof_high)
  將實(shí)數(shù)轉(zhuǎn)換為 64 位整數(shù)。
void ◆tf_long_to_real(int low, int high, double *aof_real)
  將 64 位整數(shù)轉(zhuǎn)換為實(shí)數(shù)。

顯示信息

返回類(lèi)型 調(diào)用格式及說(shuō)明
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)
  將格式化的消息寫(xiě)入一個(gè)或多個(gè)文件。
int
(always 0)
◆tf_error(char *format, arg1,..., arg5)
  報(bào)告錯(cuò)誤消息。
int
(always 0)
◆tf_warning(char *format, arg1, ..., arg5)
  報(bào)告警告消息。
int
(always 0)
◆tf_message(int level, char *facility, char *code, char *message, arg1,..., arg5)
  使用軟件產(chǎn)品中斷控制報(bào)告錯(cuò)誤或警告消息。
int
(always 0)
◆tf_text(char *message, arg1,..., arg5)
  存儲(chǔ)錯(cuò)誤消息信息。

內(nèi)部任務(wù)維護(hù)

返回類(lèi)型 調(diào)用格式及說(shuō)明
int
(always 0)
◆tf_setworkarea(char *workarea)
◆tf_isetworkarea(char *workarea, char *instance_p)
  將用戶(hù)數(shù)據(jù)指針存儲(chǔ)在工作區(qū)中。
char * ◆tf_getworkarea()
◆tf_igetworkarea(char *instance_p)
  獲取工作區(qū)指針。

其他子程序

返回類(lèi)型 調(diào)用格式及說(shuō)明
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)用命令行以獲取加號(hào) (+) 選項(xiàng)。
int ◆tf_write_save(char *blockptr, int blocklen)
  將數(shù)據(jù)塊附加到保存文件。
int ◆tf_read_restart(char *blockptr, int blocklen)
  從先前寫(xiě)入的保存文件中獲取數(shù)據(jù)塊。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)