Verilog HDL的自定义原语(UDP)
Verilog HDL不仅有自带的门级原语,还允许用户进行自定义原语。
1.UDP的定义
(1)UDP在Verilog HDL中可以被看成一个模块,与模块的定义在语法是同一级别的,所以UDP的定义不能在module和endmodule之间,一般一个UDP定义也是单独一个文件
(2)UDP的输出只有一个标量输出,而输入可以有多个标量输入,输出标量的值可以是0值,1值和x值,输入标量的值可以是0值,1值,x值与z值,但z值被看成x值对待。
2.UDP定义的基本语法:
primitive udp_name(port_list)//port_list为端口列表,其中第一个是输出端口,后面是输入端口
port_declaration
udp_body//udp_body为UDP实现逻辑功能的实现部分,一般用table/endtable语句描述
endprimitive
组合电路UDP建模:
例如:
primitive udp_mux2to1(y,a,b,sel)
output y;
input a;
input b;
input sel;
table
// a b sel : y
0 ? 1 : 0
1 ? 1 : 1
? 0 0 : 0
? 1 0 : 1
? ? x : z
endtable
endprimitive
时序UDP建模
例子:
q(next)代表输出。
Verilog HDL的自定义原语(UDP)(2021-3-14)
最新推荐文章于 2024-07-06 16:28:43 发布