介绍
Verilog有内置的原语,如门、传输门和开关。这些都是比较小的单元,如果我们需要更加复杂的原语,Verilog提供了UDP(用户自定义原语)
UDP可以定义组合逻辑和时序逻辑
语法
primitive开头,以endprimitive结尾- 只能有一个输出端口
- 可以有多个输入端(最多十个?)
- UDP不能出现在
module...endmodule中 - 输出端口必须在列表中的第一个
- 组合逻辑:输出端不能是reg
- 时序逻辑:输出端必须是reg
- UDP中所有的端口都是标量
组合逻辑
primitive or_gate(dout, a, b); //dout是输出端口,必须放在第一位
output dout; //输出端口
input a, b; //输入端口
table //这是一个 或门,UDP中逻辑关系出现在 table和endtable中
//B C :A
? 1 : 1;
1 0 : 1;
1 1 : 1;
0 0 : 0;
endtable
endprimitive
逻辑描述语句,要写在table和endtable之中,每一行代表一个case
在UDP

本文介绍了Verilog中的用户自定义原语(UDP),包括如何定义组合逻辑和时序逻辑的UDP。在组合逻辑中,以或门为例,通过table描述逻辑关系;在时序逻辑中,展示了高电平触发的D触发器和上升沿触发的D触发器的UDP定义。每个UDP定义包括输入和输出端口,以及相应的逻辑关系表。
最低0.47元/天 解锁文章
2304





