目录
一 UDP符号
1.1 组合UDP
1.2 时序UDP
1.2.1 电平UDP
1.2.2 边沿UDP
标准的Verilog原语,如nand和not,有时可能不足以或不便用于表示复杂逻辑。为了建模组合逻辑或时序逻辑,可以定义称为用户定义原语(UDP)的新原语元素。
所有UDP都有且仅有一个输出,该输出可以是0、1或X,但绝不能是Z(不支持)。任何输入如果为Z值,将被视为X。
一 UDP符号
Verilog用户定义原语可以与模块定义处于同一层级编写,但绝不能位于module和endmodule之间。它们可以有多个输入端口,但总是只有一个输出端口,且不支持双向端口。所有端口信号都必须是标量,即它们必须是1位宽。
硬件行为通过原语状态表来描述,该表列出了输入的不同可能组合及其在表中的对应输出,使用endtable结束表格。输入和输出信号的值使用以下符号表示。
Symbol | Comments |
---|---|
0 | Logic 0 |
1 | Logic 1 |
x | Unknown, can be either logic 0 or 1. Can be used as input/output or current state of sequential UDPs |
? | Logic 0, 1 or x. Cannot be output of any UDP |
- | No change, only allowed |