這里沒有對(duì)所有的子程序都進(jìn)行驗(yàn)證,由于版本或抄寫問題,可能會(huì)有所疏漏,歡迎指正。建議使用時(shí)再仔細(xì)研究對(duì)應(yīng)類型的子程序,多多參考其他例子中參數(shù)的類型及設(shè)置。
ACC 子程序主要分為 5 大類:句柄(handle)、后繼(next)、值變鏈接(VCL)、取值(fetch)、雜項(xiàng)(miscellaneous)、修改(modify)。
返回類型 | 調(diào)用格式及說明 |
---|---|
handle | ◆acc_handle_by_name(char *name, handle scope) |
根據(jù)名稱和范圍獲取任何命名對(duì)象的句柄 | |
handle | ◆acc_handle_calling_mod_m() |
獲取包含調(diào)用 PLI 應(yīng)用程序的用戶定義系統(tǒng)任務(wù)或函數(shù)實(shí)例的模塊句柄。 | |
handle | ◆acc_handle_condition(handle object) |
獲取模塊路徑、數(shù)據(jù)路徑或時(shí)序檢查終端的條件表達(dá)式的句柄 | |
handle | ◆acc_handle_conn(handle terminal) |
獲取連接到原始終端、路徑終端或時(shí)序檢查終端的網(wǎng)絡(luò)的句柄。 | |
handle | ◆acc_handle_datapath(handle modpath) |
獲取邊緣敏感模塊路徑的數(shù)據(jù)路徑句柄。 | |
handle | ◆acc_handle_hiconn(handle port) |
獲得到標(biāo)量模塊端口或向量端口的位選擇的層次更高的網(wǎng)絡(luò)連接。 | |
handle | ◆acc_handle_interactive_scope() |
掌握軟件工具的當(dāng)前交互范圍。 | |
handle | ◆acc_handle_loconn(handle port) |
獲取到標(biāo)量模塊端口或向量端口的位選擇的層次較低的網(wǎng)絡(luò)連接。 | |
handle | ◆acc_handle_modpath(handle module, char *source, char *dest, handle source, handle dest) |
獲取指定源的模塊路徑的句柄。 | |
handle | ◆acc_handle_notifier(handle tchk) |
獲取與特定時(shí)間檢查關(guān)聯(lián)的通知器注冊(cè)。 | |
handle | ◆acc_handle_object(char *name) |
獲取任何命名對(duì)象的句柄。 | |
handle | ◆acc_handle_parent(handle object) |
獲取對(duì)象的父原始實(shí)例或模塊實(shí)例的句柄。 | |
handle | ◆acc_handle_path(handle output, handle input) |
獲取模塊間路徑的句柄,該路徑表示從輸出或輸入端口到輸入或輸入端口的連接。 | |
handle | ◆acc_handle_pathin(handle path) |
獲取連接到模塊路徑源的第一個(gè)網(wǎng)絡(luò)的句柄。 | |
handle | ◆acc_handle_pathout(handle path) |
獲取連接到模塊路徑目標(biāo)的第一個(gè)網(wǎng)絡(luò)的句柄。 | |
handle | ◆acc_handle_port(handle module, int port_index) |
根據(jù)端口的位置獲取模塊端口的句柄。 | |
handle | ◆acc_handle_scope(handle object) |
獲取包含對(duì)象的范圍的句柄。 | |
handle | ◆acc_handle_simulated_net(handle collapsed_net_handle) |
獲取與作為參數(shù)傳遞的折疊網(wǎng)絡(luò)關(guān)聯(lián)的模擬網(wǎng)絡(luò)。 | |
handle | ◆acc_handle_tchk(handle module, int tchk_type, char *conn_name1, int edge_type1, char *conn_name2, int edge_type2, handle conn_name1_handle, handle conn_name2_handle) |
獲取模塊(或單元)的指定時(shí)序檢查的句柄。 | |
handle | ◆acc_handle_tchkarg1(handle tchk) |
獲取連接到時(shí)序檢查的第一個(gè)參數(shù)的時(shí)序檢查終端的句柄。 | |
handle | ◆acc_handle_tchkarg2(handle tchk) |
獲取連接到計(jì)時(shí)檢查的第二個(gè)參數(shù)的計(jì)時(shí)檢查終端的句柄。 | |
handle | ◆acc_handle_terminal(handle primitive, int terminal_index) |
根據(jù)原始終端的位置獲取原始終端的句柄。 | |
handle | ◆acc_handle_tfarg(int arg_num)
◆acc_handle_itfarg(int arg_num, handle instance) |
獲取調(diào)用 PLI 例程的用戶定義系統(tǒng)任務(wù)或函數(shù)的指定參數(shù)的句柄。 | |
handle | ◆acc_handle_tfinst() |
獲取當(dāng)前用戶定義的系統(tǒng)任務(wù)或函數(shù)調(diào)用的句柄。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
handle | ◆acc_next(int object_type_array, handle reference, handle object) |
獲取引用范圍內(nèi)數(shù)組中指定的每種類型的對(duì)象的句柄。 | |
handle | ◆acc_next_bit(handle reference, handle current_bit) |
獲取端口或擴(kuò)展向量中的位句柄。 | |
handle | ◆acc_next_cell(handle reference, hand current_cell) |
獲取區(qū)域內(nèi)單元實(shí)例的句柄,該區(qū)域包括模塊下方的整個(gè)層次結(jié)構(gòu)。 | |
handle | ◆acc_next_cell_load(handle reference, hand current_cell_load) |
獲取網(wǎng)絡(luò)上單元負(fù)載的句柄。 | |
handle | ◆acc_next_child(handle reference, handle current_child) |
獲取模塊子級(jí)的句柄。 | |
handle | ◆acc_next_driver(handle reference, handle current_driver) |
獲取驅(qū)動(dòng)網(wǎng)絡(luò)的原始終端的句柄。 | |
handle | ◆acc_next_hiconn(handle referenct, handle current_net) |
獲取到模塊端口的分層更高網(wǎng)絡(luò)連接的句柄。 | |
handle | ◆acc_next_input (handle reference, handle current_terminal) |
獲取模塊路徑的輸入路徑終端、數(shù)據(jù)路徑的源終端或時(shí)序檢查終端的句柄。 | |
handle | ◆acc_next_load(handle reference, handle current_load) |
獲取由網(wǎng)絡(luò)驅(qū)動(dòng)的原始終端的句柄。 | |
handle | ◆acc_next_loconn(handle reference, handle current_net) |
獲取到模塊端口的分層較低網(wǎng)絡(luò)連接的句柄。 | |
handle | ◆acc_next_modpath(handle reference, handle path) |
獲取模塊的模塊路徑句柄。 | |
handle | ◆acc_next_net(handle reference, handle curretn_net) |
獲取模塊中網(wǎng)絡(luò)的句柄。 | |
handle | ◆acc_next_output(handle reference, handle current_terminal) |
獲取模塊路徑或數(shù)據(jù)路徑的輸出路徑終端的句柄。 | |
handle | ◆acc_next_parameter(handle reference, handle current_parameter) |
獲取模塊內(nèi)參數(shù)的句柄。 | |
handle | ◆acc_next_port(handle reference, handle current_port) |
獲取模塊端口的句柄,或連接到給定網(wǎng)絡(luò)或注冊(cè)的端口的句柄。 | |
handle | ◆acc_next_portout(handle reference, handle current_port) |
獲取模塊的輸出或輸入端口的句柄。 | |
handle | ◆acc_next_primitive(handle reference, handle current_primitive) |
獲取模塊中的門、開關(guān)或用戶定義的原語 (UDP) 的句柄。 | |
handle | ◆acc_next_scope(handle reference, handle current_scope) |
獲取范圍內(nèi)層次結(jié)構(gòu)范圍的句柄。 | |
handle | ◆acc_next_specparam(handle reference, handle current_specparam) |
獲取句柄以指定模塊內(nèi)的塊參數(shù)。 | |
handle | ◆acc_next_tchk(handle reference, handle timing_check) |
獲取模塊內(nèi)定時(shí)檢查的句柄。 | |
handle | ◆acc_next_terminal(handle reference, handle terminal) |
獲取門、開關(guān)或用戶定義原語的終端句柄。 | |
handle | ◆acc_next_topmod(handle top_module) |
獲取頂級(jí)模塊的句柄。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
void | ◆acc_vcl_add(handle object, C_function unquoted name, char *user_data, int vcl_flag) |
每當(dāng)對(duì)象更改值時(shí),使用值更改信息設(shè)置對(duì)消費(fèi)者例程的回調(diào)。
consumer_routine() 是要調(diào)用的 C 函數(shù)的不帶引號(hào)的名稱。 |
|
void | ◆acc_vcl_delete(handle object, C_function consumer_routine() , char *user_data, int vcl_flag) |
刪除 VCL 回調(diào) monitor
consumer_routine() 是要調(diào)用的 C 函數(shù)的不帶引號(hào)的名稱。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆acc_fetch_argc() |
獲取 Verilog 軟件工具調(diào)用提供的命令行參數(shù)的數(shù)量。 | |
char * | ◆acc_fetch_argv() |
獲取組成 Verilog 軟件產(chǎn)品調(diào)用的命令行參數(shù)的字符指針數(shù)組。 | |
double | ◆acc_fetch_attribute(handle object, char *attribute, double default) |
獲取在 Verilog 源描述中命名為屬性的參數(shù)或 specparam 的值。 | |
int | ◆acc_fetch_attribute_int(handle object, char *attribute, int default) |
獲取在 Verilog 源描述中命名為屬性的參數(shù)或 specparam 的整數(shù)值。 | |
char * | ◆acc_fetch_attribute_str(handle object, char *attribute, char *default) |
獲取在 Verilog 源描述中命名為屬性的參數(shù)或 specparam 的值。 | |
char * | ◆acc_fetch_defname(handle object) |
獲取模塊實(shí)例或原始實(shí)例的定義名稱。 | |
int | ◆acc_fetch_delay_mode(handle module) |
獲取模塊實(shí)例的延遲模式。 | |
int | ◆acc_fetch_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
◆acc_fetch_delays(handle object, double *rise_delay, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12) |
獲取原語、模塊路徑、時(shí)序檢查、模塊輸入端口和模塊間路徑的現(xiàn)有延遲。 | |
int | ◆acc_fetch_direction(handle object) |
獲取端口或終端的方向 | |
int | ◆acc_fetch_edge(handle pathio) |
獲取模塊路徑或時(shí)序檢查終端的邊緣說明符。 | |
char * | ◆acc_fetch_fullname(handle object) |
獲取任何命名對(duì)象或模塊路徑的完整層次名稱。 | |
int | ◆acc_fetch_fulltype(handle object) |
獲取對(duì)象的完整類型。 | |
int | ◆acc_fetch_index(handle object) |
獲取端口或終端的索引號(hào)。 | |
int | ◆acc_fetch_location(p_location loc_p, handle object) |
在 Verilog-HDL 源文件中獲取對(duì)象的位置。
p_location 是一個(gè)數(shù)據(jù)結(jié)構(gòu),在 acc_user.h 中定義。 |
|
char * | ◆acc_fetch_name(handle object) |
獲取任何命名對(duì)象或模塊路徑的實(shí)例名稱。 | |
int | ◆acc_fetch_paramtype(handle parameter) |
獲取參數(shù)或 specparam 的數(shù)據(jù)類型。 | |
double | ◆acc_fetch_paramval(handle parameter) |
獲取參數(shù)或規(guī)范參數(shù)的值。 | |
int | ◆acc_fetch_polarity(handle path) |
獲取路徑的極性。 | |
int | ◆acc_fetch_precision() |
獲取給定設(shè)計(jì)中所有 `timescale 編譯器指令中指定的最小時(shí)間精度參數(shù)。 | |
int | ◆acc_fetch_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12) |
獲取模塊路徑、模塊間路徑或模塊輸入端口的當(dāng)前脈沖處理 reject_limit 和 e_limit。
|
|
int | ◆acc_fetch_range(handle vector, int *msb, int *lsb) |
獲取向量的最高有效位和最低有效位范圍值。 | |
int | ◆acc_fetch_size(handle object) |
獲取網(wǎng)絡(luò)、注冊(cè)、整數(shù)、時(shí)間、實(shí)數(shù)或端口的位大小。 | |
double | ◆acc_fetch_tfarg(int arg_number)
◆acc_fetch_itfarg(int arg_number, handle tfinst) |
獲取與 PLI 應(yīng)用程序關(guān)聯(lián)的系統(tǒng)任務(wù)或函數(shù)的指定參數(shù)的值; 該值作為雙精度數(shù)返回 | |
int | ◆acc_fetch_tfarg_int(int arg_number)
◆acc_fetch_itfarg_int(int arg_number, handle tfinst) |
獲取與 PLI 應(yīng)用程序關(guān)聯(lián)的系統(tǒng)任務(wù)或函數(shù)的指定參數(shù)的值; 該值以整數(shù)形式返回。 | |
char * | ◆acc_fetch_tfarg_str(int arg_number)
◆acc_fetch_itfarg_str(int arg_number, handle tfinst) |
獲取與 PLI 應(yīng)用程序關(guān)聯(lián)的系統(tǒng)任務(wù)或函數(shù)的指定參數(shù)的值; 該值作為指向字符串的指針返回。 | |
void | ◆acc_fetch_timescale_info(handle object, p_timescale_info timescale_p) |
獲取對(duì)象或活動(dòng) $timeformat 系統(tǒng)任務(wù)調(diào)用的時(shí)間刻度信息。
p_timescale_info 是一個(gè)數(shù)據(jù)結(jié)構(gòu),在 acc_user.h 中定義。 |
|
int | ◆acc_fetch_type(handle object) |
獲取對(duì)象的類型。 | |
char * | ◆acc_fetch_type_str(int type) |
獲取指示其參數(shù)類型的字符串。 | |
char * | ◆acc_fetch_value(handle object, char *format, s_acc_value *value) |
獲取 net、reg 或變量的邏輯或強(qiáng)度值
s_acc_value 是一個(gè)數(shù)據(jù)結(jié)構(gòu),在 acc_user.h 中定義。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
void | ◆acc_close() |
ACC 例程使用的空閑內(nèi)存; 將所有配置參數(shù)重置為默認(rèn)值。 | |
handle * | ◆acc_collect(handle *next_routine, handle object, int num_of_objects) |
獲取與特定引用對(duì)象相關(guān)的所有對(duì)象的句柄數(shù)組; 獲取收集的對(duì)象數(shù)量。 | |
int | ◆acc_compare_handles(handle object1, handle object2) |
確定兩個(gè)句柄是否引用同一個(gè)對(duì)象。 | |
int | ◆acc_configure(int config_param, char *config_value) |
設(shè)置控制各種 ACC 程序操作的參數(shù)。 | |
int | ◆acc_count(handle *next_routine, handle object) |
計(jì)算與特定參考對(duì)象相關(guān)的對(duì)象數(shù)量。 | |
int | ◆acc_initialize() |
初始化 ACC 例程的環(huán)境。 | |
int | ◆acc_object_in_typelist(handle object, int object_type_array[]) |
確定一個(gè)對(duì)象是否符合輸入數(shù)組中指定的類型或全類型或特殊屬性。 | |
int | ◆acc_object_of_type(handle object, int object_type) |
確定一個(gè)對(duì)象是否適合指定類型或完整類型,或特殊屬性。 | |
int | ◆acc_product_type() |
獲取調(diào)用 PLI 應(yīng)用程序的軟件產(chǎn)品類型。 | |
char * | ◆acc_product_version() |
獲取鏈接到 ACC 例程的軟件產(chǎn)品版本。 | |
int | ◆acc_release_object(handle object) |
釋放調(diào)用 acc_next_input() 和 acc_next_output() 分配的內(nèi)存。 | |
void | ◆acc_reset_buffer() |
將字符串緩沖區(qū)重置為開頭。 | |
handle | ◆acc_set_interactive_scope(handle scope, int callback_flag) |
設(shè)置軟件工具的交互范圍。 | |
char* | ◆acc_set_scope(handle module, char *module_name) |
設(shè)置 acc_handle_object() 的范圍以在設(shè)計(jì)層次結(jié)構(gòu)中進(jìn)行搜索時(shí)使用。 | |
char * | ◆acc_version() |
獲取指向表示 ACC 例程軟件版本號(hào)的字符串的指針。 |
返回類型 | 調(diào)用格式及說明 |
---|---|
int | ◆acc_append_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
◆acc_append_delays(handle object, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12) ◆acc_append_delays(handle object, double limit) |
在原語、模塊路徑、模塊間路徑、時(shí)序檢查和模塊輸入端口的現(xiàn)有延遲上添加延遲。 | |
int | ◆acc_append_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12) |
為模塊路徑、模塊間路徑或模塊輸入端口的現(xiàn)有脈沖處理 reject_limit 和 e_limit 添加延遲。 | |
int | ◆acc_release_object(handle object) |
釋放調(diào)用 acc_next_input() 和 acc_next_output() 分配的內(nèi)存。 | |
int | ◆acc_replace_delays(handle object, double *rise_delay, double *fall_delay, double *trunoff_delay)
◆acc_replace_delays(handle object, double *d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12) ◆acc_replace_delays(handle object, double limit) |
替換原語、模塊路徑、時(shí)序檢查、模塊輸入端口和模塊間路徑的現(xiàn)有延遲。 | |
int | ◆acc_replace_pulsere(handle object, double *r1, double *e1, double *r2, double *e2, ......, double *r12, double *e12) |
替換模塊路徑、模塊間路徑或模塊輸入端口的現(xiàn)有脈沖處理 reject_limit 和 e_limit。 | |
int | ◆acc_set_pulsere(handle path, double reject_percentage, double e_percentage) |
將模塊路徑、模塊間路徑或模塊輸入端口的脈沖處理值設(shè)置為延遲百分比。 | |
int | ◆acc_set_value(handle object, p_setval_value value_p, p_setval_delay delay_p) |
在 reg、變量、用戶定義的系統(tǒng)函數(shù)或順序 UDP 上設(shè)置和傳播值; 程序分配一個(gè)reg或變量; 強(qiáng)制一個(gè) reg、variable 或 net。
p_setval_value 和 p_setval_delay 是數(shù)據(jù)結(jié)構(gòu),在 acc_user.h 中定義。 |
下面對(duì) ACC 子程序設(shè)計(jì)的一些結(jié)構(gòu)體進(jìn)行說明。
涉及的函數(shù) | 結(jié)構(gòu)體 |
---|---|
acc_fetch_location | typedef struct t_location
{ PLI_INT32 line_no; PLI_BYTE8 *filename; } s_location, *p_location; |
p_timescale_info | typedef struct t_timescale_info
{ PLI_INT16 unit; PLI_INT16 precision; } s_timescale_info, *p_timescale_info; |
acc_fetch_value
acc_set_value |
typedef struct t_setval_value
{ PLI_INT32 format; union { PLI_BYTE8 *str; PLI_INT32 scalar; PLI_INT32 integer; double real; p_acc_vecval vector; } value; } s_setval_value, *p_setval_value, s_acc_value, *p_acc_value; |
acc_set_value | typedef struct t_setval_delay
{ s_acc_time time; PLI_INT32 model; } s_setval_delay, *p_setval_delay; |
更多建議: