門級建模中介紹的內(nèi)置門單元,例如 and,or , nor 等,均屬于 Verilog 自帶的一整套標準原語,即通常所說的內(nèi)置原語。
此外,Verilog 還為用戶提供了自己編寫原語的能力,這種原語就是用戶自定義原語(User Defined Primitive,簡稱 UDP)。
在 UDP 中,不能調(diào)用其他 module 或 primitive,調(diào)用方式和門級原語完全相同。
UDP 類型主要有以下 2 種,后面將逐一介紹。
UDP 的定義不依賴于模塊定義,因此可以出現(xiàn)在模塊定義外,也可以單獨在文件里定義。
UDP 格式定義如下:
primitive UDP_name (
output_name,
list_of_input) ;
output_declaration ;
list_of_input_declaration ;
[reg_declaration] ;
[initial_statement] ;
table
list_of_table_entries ;
endtable
endprimitive
可以用 initial 語句對時序邏輯 UDP 的輸出端口(reg 類型)進行初始化,該語句是可選的。
更多建議: