第5章门电平模型化
本章讲述.. Verilog HDL为门级电路建模的能力,包括可以使用的内置基本门和如何使用它
们来进行硬件描述。
5.1 内置基本门
Verilog HDL中提供下列内置基本门:
1) 多输入门:
and, nand, or, nor, xor, xnor
2) 多输出门:
buf, not
3) 三态门:
bufif0, bufif1, notif0,notif1
4) 上拉、下拉电阻:
pullup, pulldown
5) MOS开关:
cmos, nmos, pmos, rcmos, rnmos, rpmos
6) 双向开关:
tran,tranif0, tranif1, rtran, rtranif0, rt r a n i f 1
门级逻辑设计描述中可使用具体的门实例语句。下面是简单的门实例语句的格式。
gate _ type[instance _ name] (term1, term2, . . . ,termN) ;
注意,instance_name是可选的;gate_type为前面列出的某种门类型。各term用于
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示与门的输入/输出端口相连的线网或寄存器。
同一门类型的多个实例能够在一个结构形式中定义。语法如下:
gate_ type
[instance_name1] (term11, term12, . . .,term1N) ,
[instance_name2] (term21, term22, . . .,term2N) ,
[instance_nameM] (termM1, termM2, . . .,termMN) ;
5.2 多输入门
内置的多输入门如下:
and nand nor or xor xnor多输入门
这些逻辑门只有单个输出,1个或多个输入。多输入
门实例语句的语法如下:
图5-1 多输入门
multiple_input_gate_type
[instance_name] (OutputA, Input1, Input2, . . .,InputN) ;
第一个端口是输出,其它端口是输入。如图5-1所示。
下面是几个具体实例。图5-2为对应的逻辑图。
and A1(Out1, In1, In2) ;
and RBX (Sty, Rib, Bro, Qit, Fix) ;
xor (Bar, Bud[0],Bud[1],Bud[2]) ,
(Car,Cut[0],Cut[1]),
(Sar, Sut[2],Sut[1],Sut[0],Sut[3]) ;
图5-2 多输入门实例
第一个门实例语句是单元名为 A1、输出为O u t1、并带有两个输入In1和In2的两输入与门。第二个门实例语句是四输入与门,单元名为 RBX,输出为Sty,4个输入为Rib、Bro、Qit和Fix。第三个门实例语句是异或门的具体实例,没有单元名。它的输出是 Bar,三个输入分别为Bud[0]、Bud[1]和Bud[2]。同时,这一个实例语句中还有两个相同类型的单元。
下面是这些门的真值表。注意在输入端的z与对x的处理方式相同;多输入门的输出决不能是z。
5.3 多输出门
多输出门有:
buf not
这些门都只有单个输入,一个或多个输出。如图 5-3所示。这些门的实例语句的基本语法如下:
multiple_output_gate_type
[instance_name] (Out1, Out2, . . . OutN,InputA) ;
最后的端口是输入端口,其余的所有端口为输出端口。
图5-3 多输出门
例如:
buf B1(Fan[0],Fan[1],Fan[2],Fan[3],clk);
not N1(PhA,PhB,Ready);
在第一个门实例语句中,Clk是缓冲门的输入。门B1有4个输出:Fa n[0]到Fan[3]。在第二个门实例语句中,Ready是非门的唯一输入端口。门N1有两个输出:PhA和PhB。
这些门的真值表如下:
5.4 三态门
三态门有:
bufif0 bufif1 notif0 notif1
这些门用于对三态驱动器建模。这些门有一个输出、一个数据输入和一个控制输入。三
态门实例语句的基本语法如下:
trisate_gate[instance_name] (OutputA, InputB,ControlC) ;
第一个端口OutputA是输出端口,第二个端口 InputB是数据输入,ControlC是控制输入。参见图5-4。根据控制输入,输出可被驱动到高阻状态,即值z。对于bufif0,若通过控制输入为1,则输出为z;否则数据被传输至输出端。对于bufif1,若控制输入为0,则输出为z。对于notif0,如果控制输出为1,那么输出为z;否则输入数据值的非传输到输出端。对于notif1,若控制输入为0;则输出为z。
例如:
bufif1 BF1(Dbus,MemData,Strobe);
notif0 NT2 (Addr, Abus, Probe);
当Strobe为0时,bufif1门BF1驱动输出Dbus为高阻;否则MemData被传输至Dbus。在第2个实例语句中,当Probe为1时,Addr为高阻;否则Abus的非传输到Addr。
下面是这些门的真值表。表中的某些项是可选项。例如,0 /z表明输出根据数据的信号强度和控制值既可以为 0也可以为z,信号强度在第1 0章中讨论。
5.5 上拉、下拉电阻
上拉、下拉电阻有:
pullup pulldown
这类门设备没有输入只有输出。上拉电阻将输出置为1。下拉电阻将输出置为0。
门实例语句形式如下:
pull_gate[instance_name](OutputA) ;
门实例的端口表只包含1个输出。例如:
pullup PUP(Pwr);
此上拉电阻实例名为PUP,输出Pwr置为高电平1。
5.6 MOS开关
MOS开关有:
cmos pmos nmos rcmos rpmos rnmos
这类门用来为单向开关建模。即数据从输入流向输出,并且可以通过设置合适的控制输
入关闭数据流。
pmos(p类型MOS管)、nmos(n类型MOS管),rnmos(r代表电阻)和rpmos开关有一个输出、一个输入和一个控制输入。实例的基本语法如下:
gate_type[instance_name] (OutputA, InputB, ControlC) ;
第一个端口为输出,第二个端口是输入,第三个端口是控制输入端。如果nmos和rnmos开关的控制输入为0,pmos和rpmos开关的控制为1,那么开关关闭,即输出为z;如果控制是1,输入数据传输至输出;如图5-5所示。与nmos和pmos相比,rnmos和rpmos在输入引线和输出引线之间存在高阻抗(电阻)。因此当数据从输入传输至输出时,对于rpmos和rmos,存在数据信号强度衰减。信号强度将在第10章进行讲解。
图5-5 nmos和p m o s开关
例如:
pmos P1 (BigBus, SmallBus, GateControl) ;
rnmos RN1 (ControlBit, ReadyBit, Hold) ;
第一个实例为一个实例名为P1的pmos开关。开关的输入为SmallBus,输出为BigBus,控制信号为GateControl。
这些开关的真值表如下所示。表中的某些项是可选项。例如,1/z表明,根据输入和控制信号的强度,输出既可以为1,也可以为z。
cmos (mos求补)和rcmos (cmos的高阻态版本)开关有一个数据输出,一个数据输入和两个控制输入。这两个开关实例语句的语法形式如下:
(r)cmos[instance_name]
(OutputA, InputB, NControl, PControl);
第一个端口为输出端口,第二个端口为输入端口,第三个端口为n通道控制输入,第四个端口为是P通道控制输入。cmos(rcmos)开关行为与带有公共输入、输出的pmos(rpmos)和nmos(rnmos)开关组合十分相似。参见图5-6。
图5-6 (r)cmos开关
5.7双向开关
双向开关有:
tran rtran tranif0 rtranif0 tranif1 rtranif1
这些开关是双向的,即数据可以双向流动,并且当数据在开关中传播时没有延时。后4个开关能够通过设置合适的控制信号来关闭。tran和rtran开关不能被关闭。
tran或rtran (tran的高阻态版本)开关实例语句的语法如下:
(r)tran [instance_name] (SignalA, SignalB) ;
端口表只有两个端口,并且无条件地双向流动,即从SignalA向SignalB,反之亦然。
其它双向开关的实例语句的语法如下:
gate_type[instance_name](SignalA, SignalB, ControlC) ;
前两个端口是双向端口,即数据从SignalA流向SignalB,反之亦然。第三个端口是控制信号。如果对tranif0和tranif0,ControlC是1;对tranif1和rtranif1,ControlC是0;那么禁止双向数据流动。对于rtran、rtranif0和rtranif1,当信号通过开关传输时,信号强度减弱。
5.8 门时延
可以使用门时延定义门从任何输入到其输出的信号传输时延。门时延可以在门自身实例
语句中定义。带有时延定义的门实例语句的语法如下:
gate_type[delay] [instance_name] (terminal_list) ;
时延
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
了门时延,即从门的任意输入到输出的传输时延。当没有强调门时延时,缺省
的时延值为0。
门时延由三类时延值组成:
1) 上升时延
2) 下降时延
3) 截止时延
门时延定义可以包含 0个、1个、2个或3个时延值。下表为不同个数时延值说明条件下,各种具体的时延取值情形。
① min是minimum的缩写词。
注意转换到x的时延(to_x )不但被显式地定义,还可以通过其它定义的值决定。