门级建模2025年3月17日 | 阅读 7 分钟 在 Verilog 中,大多数数字设计都是在 RTL 这样的较高抽象级别上完成的。 但是,通过使用 与 和 或 这样的组合元素,在较低级别构建较小的确定性电路是很自然的。 在此级别完成的建模称为门级建模,因为它涉及 门 并且在硬件示意图和 Verilog 代码之间存在一一对应的关系。 Verilog 支持一些基本的逻辑门,称为 原语,因为它们可以像模块一样被实例化,并且它们是已经预定义的。 门级建模实际上是最低的抽象级别,因为很少使用开关级抽象。 门级建模用于在设计中实现最低级别的模块,例如 多路复用器、全加器 等。 Verilog 具有所有基本门的门原语。 Verilog 支持内置的原语门建模。 支持的门是 多输入、多输出、三态 和 下拉门。 多输入门是 与、与非、或、或非、异或 和 异或非,它们的输入数量为两个或更多,并且只有一个输出。 多输出门是 buf 和 not,它们的输出是一个或多个,并且只有一个输入。 该语言还支持对三态门进行建模,包括 bufif0、bufif1、notif0 和 notif1。 这些门有一个输入、一个控制信号和一个输出。 下拉门是 pullup 和 pulldown,只有一个输出。 语法 以下是每种类型的零延迟门的基本语法,例如 人们也可以在一个构造中拥有同一类型门的多个实例,并用逗号分隔 当电路是一个简单的组合电路(例如 多路复用器)时,门级建模非常有用。 多路复用器是一个简单的电路,它将多个输入之一连接到一个输出。 门原语门原语是 Verilog 中预定义的模块,可以直接使用。 门原语分为两类
1. 单输入门原语单输入门原语具有单个输入和一个或多个输出。 门原语是 not、buf、notif 和 bufif,它们也有一个控制信号。 只有在断言控制信号时,这些门才会传播,否则输出为高阻抗状态。 1.1 Not, buf 门 这些门只有一个标量输入,但可能有多个输出。 buf 代表缓冲器,并将值从输入传输到输出,而不会改变极性。 not 代表反相器,它反转输入信号的极性。 因此,输入端的 0 将产生 1,反之亦然。 语法 示例 1.2 Bufif, Notif 门 Bufif 和 notif 原语分别是缓冲器和反相器,具有额外的控制信号以启用输出,可以通过 bufif 和 notif 原语获得。 只有在启用控制信号时,这些门才具有有效的输出,否则输出将处于高阻抗状态。 这些有两个版本,一个具有由 1 指示的控制的正常极性,例如 bufif1 和 notif1。 另一个具有由 0 指示的控制的倒置极性,例如 bufif0 和 notif0。 语法 示例 2. 多输入门原语多输入门原语包括 AND、OR、XOR、NAND、NOR 和 XNOR。 它们可以有多个输入和一个输出。 2.1 AND、OR、XOR 门 与、或和异或门需要多个标量输入并产生单个标量输出。 这些原语的参数列表中的第一个端子是输出,它会随着任何输入的变化而改变。 语法 示例 1.2 NAND、NOR、XNOR 门 所有上述门的逆是 NAND、NOR 和 XNOR。 上面的相同设计被重用,只是原语与其逆版本互换。 语法 示例 所有这些门也可能具有两个以上的输入。 多路复用器的门级建模下图显示了 4x1 多路复用器的门级电路图。 它用于编写 4x1 多路复用器的模块。 ![]() 全加器的门级建模这是使用半加器实现全加器的方法。 1. 半加器 ![]() 2. 全加器 ![]() 下一个主题开关级建模 |
我们请求您订阅我们的新闻通讯以获取最新更新。