门级建模

 

学习目标

学习Verilog提供的门级原语

理解门的实例引用、门的符号以及and/or,buf/not类型的门的真值表

学习如何根据电路的罗技图来生成Verilog描述

讲述门级设计中的上升、下降和关断延迟

解释门级设计中的最小、最大和典型延迟

1.门的类型

1.1与门(and)和或门(or)

具有一个标量输出端和多个标量输入端。端口列表中的第一个端口必定是输出端口,其后为输入端

可以使用的属于与/或门类的其他门的术语包括:

and(与门) or(或门) xor(异或门) nand(与非门) nor(或非门) xnor(同或门)

wire OUT,IN1,IN2;
//基本门的实例引用
and a1(OUT,IN1,IN2);
nand na1(OUT,IN1,IN2);
or or1(OUT,IN1,IN2);
nor nor1(OUT,IN1,IN2);
xnor nx1(OUT,IN1,IN2);

//输入端超过两个,三输入端的与非门
nand na1_3inp(OUT,IN1,IN2,IN3);

//实例引用门时,不给实例命名
and(OUT,IN1,IN2);//合法的门实例引用

基本门的真值表

and 0 1 x z
0 0 0 0 0
1 0 1 x x
x 0 x x x
z 0 x x x
nand 0 1 x z
0 1 1 1 1
1 1 0 x x
x 1 x x x
z 1 x x x
or 0 1 x z
0 0 1 x x
1 1 1 1 1
x x 1 x x
z x 1 x x
nor 0 1 x z
0 1 0 x x
1 0 0 0 0
x x 0 x x
z x 0 x x
xor 0 1 x z
0 0 1 x x
1 1 0 x x
x x x x x
z x x x x
xnor 0 1 x z
0 1 0 x x
1 0 1 x x
x x x x x
z x x x x

1.2缓冲器/非门

buf/not门具有一个标量输入和多个标量输出。

缓冲门(buf)/非门(not)

输入端口必须是在实例端口列表的最后一个。

//基本门的实例引用
buf b1(OUT1,IN);
not n1(OUT1,IN);

//输出端多余两个
buf b1_2out(OUT1,OUT2,IN);

//实例引用门时,不给实例命名
not (OUT1,IN );//合法的门实例引用
    

真值表

buf in out
  0 0
  1 1
  x x
  z z
not in out
  0 1
  1 0
  x x
  z x

带控制端的缓冲器/非门(bufif/notif)

Verilog提供了其他4个带有控制信号端口的buf/not门

bufif1 bufif0 notif1 notif0

真值表

    ctrl
  bufif1 0 1 x z
in 0 z 0 L L
1 z 1 H H
x z x x x
z z x x x
    ctrl
  bufif0 0 1 x z
in 0 0 z L L
1 1 z H H
x x z x x
z x z x x
    ctrl

  notif1 0 1 x z
in 0 z 1 H H
1 z 0 L L
x z x x x
z z x x x
    ctrl

  notif0 0 1 x z
in 0 1 z H H
1 0 z L L
x x z x x
z x z x x

2.门延迟

2.1上升、下降、关断延迟

上升延迟

门的输出从0,x,z变化为1所需的时间称为上升延迟。

下降延迟

门的输出从1,x,z变化为0所需的时间

关断延迟

关断延迟是指门的输出从0,1,x变化为z所需的时间

PS如果值变化到不确定值x,则所需的时间可以看成是以上三种延迟值中最小的那个。

延迟值说明的类型

//以下三种延迟都等于delay_time所表示的延迟时间
and #(delay_time) a1(out,i1,i2);

//说明上升延迟和下降延迟
and #(rise_val,fall_val) a2(out,i1,i2);

//说明上升延迟,下降延迟和关断延迟
bufif0 #(rise_val,fall_val, turnoff_val) b1(out,in,control);

2.2最小/典型/最大延迟

//一个延迟
//若最小延迟=4
//若典型延迟=5
//若最大延迟=6
and #(4:5:6) a1(out,i1,i2);

//两个延迟
//若最小延迟,上升延迟=3,下降延迟=5,关断延迟=min(3,5)
//若典型延迟,上升延迟=4,下降延迟=6,关断延迟=min(4,6)
//若最小延迟,上升延迟=5,下降延迟=7,关断延迟=min(5,7)
and #(3:4:5,5:6:7) a2(out,i1,i2);

//三个延迟
//若最小延迟,上升延迟=2,下降延迟=3,关断延迟=4
//若最小延迟,上升延迟=3,下降延迟=4,关断延迟=5
//若最小延迟,上升延迟=4,下降延迟=5,关断延迟=6
and #(2:3:4,3:4:5,4:5:6) a3(out,i1,i2);

//启动仿真器,使用最大延迟进行仿真
>verilog test.v +maxdelays

//启动仿真器,使用最小延迟进行仿真
>verilog test.v +mindelays

//启动仿真器,使用典型延迟进行仿真
>verilog test.v +typedelays
时间: 2024-12-18 17:12:54

门级建模的相关文章

Verilog门级建模

门级建模就是将逻辑电路图用HDL规定的文本语言表示出来,即调用Verilog语言中内置的基本门级元件描述逻辑图中的元件以及元件之间的连接关系. Verilog语言内置了12个基本门级元件模型,如下表所示.门级元件的输出.输入必须为线网类型的变量. 1.多输入门 and.nand.or.nor.xor和xnor是具有多个输入的逻辑门,它们的共同特点是:只允许有一个输出,但可以有多个输入.and的一般调用格式为: and A1(out, in1, in2, in3); 其中,调用名A1可以省略.na

[转]Verilog门级建模

门级建模就是将逻辑电路图用HDL规定的文本语言表示出来,即调用Verilog语言中内置的基本门级元件描述逻辑图中的元件以及元件之间的连接关系. Verilog语言内置了12个基本门级元件模型,如下表所示.门级元件的输出.输入必须为线网类型的变量. 1.多输入门 and.nand.or.nor.xor和xnor是具有多个输入的逻辑门,它们的共同特点是:只允许有一个输出,但可以有多个输入.and的一般调用格式为: and A1(out, in1, in2, in3); 其中,调用名A1可以省略.na

No.5 门级建模

VerilogHDL内建基元门: 多输入门:and, nand, or, nor, xor, xnor; 多输出门:buf, not 三态门:bufif0, bufif1, notif0, notif1; 上拉.下拉门:pullup, pulldown; MOS开关:cmos, nmos, pmos, rcmos, rnmos, rpmmos; 双向开关:tran, tranif0, tranif1, rtran, rtranif0, rtranif1; 示例1:2-4译码器 module de

对比学习UIKit和AppKit--入门级

UIKit是用来开发iOS的应用的,AppKit是用来开发Mac应用的,在使用过程中他们很相似,可是又有很多不同之处,通过对比分析它们的几个核心对象,可以避免混淆. UIKit和AppKit都有一个Application类,每个应用都只创建一个Application对象,分别是UIAplication和NSApplication的实例.但是创建这个对象的方式还是稍有不同,看iOS应用的main函数: ? 1 2 3 4 5 6 int main(int argc, char * argv[])

QuartusII 中采用门级原语

QuartusII  中采用门级原语 默认的是前面第一个 为output  后面所有信号为输入 图中的工程实现的是 一个二选一多路选择器 QuartusII 中采用门级原语,码迷,mamicode.com

(数字IC)低功耗设计入门(六)——门级电路低功耗设计优化

三.门级电路低功耗设计优化 (1)门级电路的功耗优化综述 门级电路的功耗优化(Gate Level Power Optimization,简称GLPO)是从已经映射的门级网表开始,对设计进行功耗的优化以满足功耗的约束,同时设计保持其性能,即满足设计规则和时序的要求.功耗优化前的设计是已经映射到工艺库的电路,如下图所示: 门级电路的功耗优化包括了设计总功耗,动态功耗以及漏电功耗的优化.对设计做优化时,优化的优先次序如下: 由此我们可以找到, 优化时,所产生的电路首先要满足设计规则的要求,然后满足延

【Spring】Spring学习笔记-01-入门级 实例

</pre><p></p><p><span style="font-size:18px">听说当前Spring框架非常流行,我也准备好好学学Spring开发,并将学习的过程和大家分享,希望能对志同道合的同学有所帮助.</span></p><p><span style="font-size:18px">下面是一个学习Spring的第一个例子.</span&

verilog HDL学习笔记(基本概念)

1. 作为一种硬件描述语言,verilog可以直接描述硬件结构,也可以通过描述系统行为实现建模,其主要特点和功能有: *描述基本逻辑门和基本开关模型. * 允许用户定义基元. * 可以指定设计中的端口到端口的延时,路径时延和设计中的时序检查. *可以采用多种方式进行建模,这些方式包括(1)顺序行为描述建模——使用过程化结构建模,(2)数据流行为方式——使用连续赋值语句方式建模,(3)结构化方式——使用门和模块实例语句描述建模. * Verilog中有两类数据类型,线网数据类型和寄存器数据类型.线

Verilog的关键字及意义

always ifnone rnmos and incdir rpmos assign//标记赋值 include rtran automatic initial rtranif0 begin inout rtranif1 buf input//输入 scalared bufif0 instance showcancelled bufif1 integer signed case join small casex large specify casez liblist specparam cel