Verilog基本单元(primitives)
- Verilog基本单元提供基本的逻辑功能,这些逻辑功能是预定义的,用户不需要再定义这些基本功能即可直接使用。
- 基本单元是Verilog开发库的一部分。大多数ASIC和FPGA元件库是用这些基本单元开发的。基本单元库是自下而上的设计方法的一部分。
内置基本单元
- Verilog HDL中提供了26个内置的基本单元:
内置基本门:
• 多输入门:and, nand, or, nor, xnor
• 多输出门:buf, not
• 三态门: bufif0, bufif1, notif0, notif1
MOS开关
• cmos, nmos, pmos, rcmos, rnmos, rpmos
上拉/下拉电阻
• pullup, pulldown
双向开关
• Tran, tranif0, tranif1, rtran, rtainif0, rtranif1 用户定义的基本单元UDP
- UDP: 用户定义的基本单元,其行为和Verilog内部的基本单元相似。其功能用真值表定义。
- 一个UDP可以替代多个基本单元构成的逻辑,因此可以大幅减少仿真时间和存储需求。
- UDP只能有一个输出;
- UDP可以有1到10个输入;
- 所有端口必须为标量且不允许双向端口
- 不支持逻辑值Z
- 输出端口必须列为端口列表的第一个
- UDP不可综合
多输入门
- 多个输入,单个输出。
与门and,与非门nand,或门or,或非门nor,异或门xor,异或非门xnor - 语法:
门类型 [实例名] (output, input1, …, inputN);
例:nand nand1(Y, A, B); //2输入与非门
xor xor1 (Y, A, B, C); //3输入或非门 多输出门
- 一个输入,可以有一个或多个输出
buf:缓冲门
not:非门(反相器)例:buf buf1(Out[0],Out[1],Out[2],In);
not not2(Out,In); 三态门
- 用于对三态驱动器建模。有三个端口:一个数据输入端、一个控制信号输入端、一个数据输出端。
bufif0, bufif1, notif0, notif1
例:
bufif0 BF1(out, enable, data);
// 当enable=0时, out=data, enable=1时, out=z
// 即使能信号无效时,输出高阻状态。

上拉/下拉电阻、 MOS开关、双向开关
- 上拉/下拉电阻:
只有一个端口(输出端),上拉输出为1,下拉输出为0。 - MOS开关:
单向开关,数据由输入端流向输出端,控制信号控制MOS晶体管导通或不导通。 - 双向开关
数据在两个端口之间双向流动,并能够通过控制信号对开关进行关闭。
|