Verilog设计的层次与风格_第1页
Verilog设计的层次与风格_第2页
Verilog设计的层次与风格_第3页
Verilog设计的层次与风格_第4页
Verilog设计的层次与风格_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系第七章第七章 Verilog设计的层次与风格设计的层次与风格7.1 Verilog 设计的层次设计的层次7.2 门级结构描述门级结构描述7.3 行为描述行为描述7.4 数据流描述数据流描述 7.5 不同描述风格的设计不同描述风格的设计7.6 多层次结构电路的设计多层次结构电路的设计7.7 基本组合电路设计基本组合电路设计7.8 基本时序电路设计基本时序电路设计属性属性7.9 三态逻辑设计三态逻辑设计第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系

2、材料与能源学院微电子工程系7.1 Verilog设计的层次设计的层次Verilog HDL是硬件描述语言的一种,用于数字电是硬件描述语言的一种,用于数字电子系统设计。设计者可用它进行各种级别的逻辑设子系统设计。设计者可用它进行各种级别的逻辑设计,可用它进行数字逻辑系统的仿真验证、时序分计,可用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件描析、逻辑综合。它是目前应用最广泛的一种硬件描述语言。述语言。Verilog既是一种行为描述的语言也是一种结构描既是一种行为描述的语言也是一种结构描述语言。述语言。Verilog 较为适合系统级较为适合系统级(System)、算

3、法级、算法级(Alogrithem)、寄存器传输级、寄存器传输级(RTL)、逻辑、逻辑(Logic)、门级门级(Gate)和电路开关级和电路开关级(Switch)的设计。的设计。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系Verilog描述的模型可以是实际电路描述的模型可以是实际电路五五级不同级别的抽级不同级别的抽象:象:系统级系统级(system level): 用高级语言结构(如用高级语言结构(如case语句)语句)实现的设计模块外部性能的模型;实现的设计模块外部性能的模型;算算法级法级(algorithmic level

4、): 用高级语言结构实现的设用高级语言结构实现的设计算法模型(写出逻辑表达式);计算法模型(写出逻辑表达式);RTL级级(register transfer level): 描述数据在寄存器之描述数据在寄存器之间流动和如何处理这些数据的模型;间流动和如何处理这些数据的模型;门级门级(gate level): 描述逻辑门(如与门、非门、或门、描述逻辑门(如与门、非门、或门、与非门、三态门等)以及逻辑门之间连接的模型;与非门、三态门等)以及逻辑门之间连接的模型;开关级开关级(switch level): 描述器件中三极管和储存节点描述器件中三极管和储存节点及其之间连接的模型。及其之间连接的模型。第

5、七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系Verilog设计的描述风格设计的描述风格(建模建模)分为分为3种:种:结构结构(Structural)描述:描述:先描述功能的逻辑电路图,先描述功能的逻辑电路图,再调用库中的标准元器件或已设计好的模块加以再调用库中的标准元器件或已设计好的模块加以描述描述,就是表示元器件之间的互连,就是表示元器件之间的互连,将它们组装将它们组装起来,形成更为复杂的设计起来,形成更为复杂的设计。行为行为(Behavioural)描述:描述:对设计实体按算法的路径对设计实体按算法的路径来描述来描述,只描述

6、所希望电路的功能或者说电路行为,只描述所希望电路的功能或者说电路行为,而没有直接指明或涉及实现这些行为的硬件结构。而没有直接指明或涉及实现这些行为的硬件结构。数据流数据流(Data Flow)描述:描述:以规定设计中的各种寄存以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑,器形式为特征,然后在寄存器之间插入组合逻辑,描述数据流程的运动路径、运动方向和运动结果描述数据流程的运动路径、运动方向和运动结果。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.2 用库元件实现结构描述用库元件实现结构描述调用调用Veril

7、og HDL内置内置(内部预先定义好的内部预先定义好的)基本门基本门级元件,或用户自定义基本元件级元件,或用户自定义基本元件(UDP)来对硬件电来对硬件电路进行路进行结构描述结构描述。实现方法:实现方法:调用开关级元件;调用开关级元件;调用调用Verilog内置的基本门级元件;内置的基本门级元件;用户自定义元件:用户自定义元件:根据不同用户的需要,由根据不同用户的需要,由用户自己定义的模块,定义好以后可以象内用户自己定义的模块,定义好以后可以象内置基本门级元件一样被调用置基本门级元件一样被调用;通过例化方式调用以不同方式表述的模块元通过例化方式调用以不同方式表述的模块元件件。第七章第七章 Ve

8、rilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系内置基本门级元件内置基本门级元件(14个)个)多输入门多输入门u and(与门)(与门)u nand(与非门)(与非门)u or(或门)(或门)u nor(或非门)(或非门)u xor(异或门)(异或门)u xnor(异或非门)(异或非门)多输出门多输出门u buf(缓冲器)(缓冲器)u not(非门)(非门)三态门三态门u bufif0(低电平使能缓冲低电平使能缓冲器)器)u bufif1(高电平使能缓冲高电平使能缓冲器)器)u notif0(低电平使能非门)低电平使能非门)u notif1(高电平

9、使能非门)高电平使能非门)上拉、下拉电阻上拉、下拉电阻u pullup(上拉电阻)上拉电阻)u pulldown(下拉电阻)下拉电阻)第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系基本门的逻辑真值表基本门的逻辑真值表 nand 有有0则则1,全,全1则则0,其它,其它x; nor 有有1则则0,全,全0则则1,其它,其它x; xor 01则则1, 全全1则则0,全,全0则则0,其它,其它x; xnor 全全0则则1,全

10、,全1则则1,01则则0, 其它其它x; buf 入出相同;入出相同; not 01相反,其它相反,其它x; bufif1 0控则控则z,1控则同;控则同; bufif0 1控则控则z,0控则同;控则同; notif1 0控则控则z,1控则反;控则反; notif0 1控则控则z,0控则反。控则反。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系多输入门多输入门包括包括6种门级元件:种门级元件:and、nand、or、nor、xor、xnor。特点:有特点:有1个或多个输出,但只有个或多个输出,但只有1个输入。个输入。多输出门多输

11、出门包括包括2种门级元件:种门级元件:not 和和buf。特点:有特点:有1个或多个输出,但只有个或多个输出,但只有1个输入。个输入。 第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系三态门三态门有一个输出、一个数据输入和一个控制输入。有一个输出、一个数据输入和一个控制输入。特点:数据输出端可以实现三态输出特点:数据输出端可以实现三态输出 。bufif0(低电平使能缓冲器低电平使能缓冲器):若控制输入为:若控制输入为1,则输出为,则输出为z(输出输出端处于高阻状态端处于高阻状态);若控制输入为;若控制输入为0,输入数据被传输至输出

12、端。,输入数据被传输至输出端。bufif1(高电平使能缓冲器高电平使能缓冲器):若控制输入为:若控制输入为1,则输入数据被传,则输入数据被传输至输出端;若控制输入为输至输出端;若控制输入为0,则输出为,则输出为z。notif0(低电平使能非门低电平使能非门):若控制输入为:若控制输入为1,则输出为,则输出为z;若控制;若控制输入为输入为0,则输出端是输入数据值的逻辑非。,则输出端是输入数据值的逻辑非。notif1(高电平使能非门高电平使能非门):若控制输入为:若控制输入为1,则输出端是输入数,则输出端是输入数据值的逻辑非;若控制输入为据值的逻辑非;若控制输入为0;则输出为;则输出为z。第七章第

13、七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系上拉门、下拉门上拉门、下拉门(电阻电阻)上拉门:上拉门:pullup,将输出置为,将输出置为1。下拉门:下拉门:pulldown,将输出置为,将输出置为0。它们都只有一个输出端口而没有输入端口。它们都只有一个输出端口而没有输入端口。库元件调用格式:库元件调用格式:基本门元件名基本门元件名 ();列表顺序:列表顺序:(输出输出1,输出,输出2,输入,输入1,输入输入2,);端口连接须用位置关联法。端口连接须用位置关联法。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院

14、微电子工程系材料与能源学院微电子工程系各门元件的调用各门元件的调用 (1)多输入门多输入门端口列表顺序端口列表顺序 (输出输出, 输入输入1, 输入输入2, 输入输入3 ); and a1(out, in1, in2, in3); (2)三态门三态门端口列表顺序端口列表顺序 (输出输出, 输入输入, 使能控制端使能控制端); bufif1 mytri1(out, in, enable); (3)多输出门多输出门端口列表顺序端口列表顺序 (输出输出1, 输出输出2, , 输入输入); not N1(out1, out2, in);第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与

15、能源学院微电子工程系材料与能源学院微电子工程系门级结构描述门级结构描述用基本门实现的用基本门实现的4选选1 MUX原理图原理图 第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例【例7.1】 调用门元件实现的调用门元件实现的4选选1 MUXmodule mux4_1a(out,in1,in2,in3,in4,s0,s1);input in1,in2,in3,in4,s0,s1; output out;wire s0_n,s1_n,w,x,y,z;not (s0_n,s0),(s1_n,s1);and (w,in1,s0_n,s1

16、_n),(x,in2,s0_n,s1), (y,in3,s0,s1_n),(z,in4,s0,s1);or (out,w,x,y,z);endmodule第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程系9. 用户自定义元件用户自定义元件(UDP)(9.2:P272)UDP:User Defined Primitive可利用可利用UDP来定义有自己特色的用于仿真的基本来定义有自己特色的用于仿真的基本逻辑元件模块并建立相应的原语库。逻辑元件模块并建立相应的原语库。使用使用UDP定义后,就能够象调用基本门元件一样定义后,就能够

17、象调用基本门元件一样在模块中使用,但端口列表只能有位置关联。在模块中使用,但端口列表只能有位置关联。UDP在在ModelSimt和和Quartus 等等EDA工具可综工具可综合,但在合,但在Pynplify Pro 等等EDA工具不可综合。工具不可综合。UDP模块的结构与一般模块类似,只是不用模块的结构与一般模块类似,只是不用module而改用而改用primitive关键词开始,不用关键词开始,不用endmodule而改用而改用endprimitive关键词结束。关键词结束。第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程

18、系与一般的模块相比,与一般的模块相比,UDP模块具有下面一些特点:模块具有下面一些特点:UDP的输出端口只能有一个,且必须位于端口列表的的输出端口只能有一个,且必须位于端口列表的第一项。只有输出端口能被定义为第一项。只有输出端口能被定义为reg类型。类型。UDP的输入端口可有多个,一般时序电路的输入端口可有多个,一般时序电路UDP的输入的输入端口可多至端口可多至9个,组合电路个,组合电路UDP的输入端口可多至的输入端口可多至10个。个。 所有的端口变量必须是所有的端口变量必须是1位标量。位标量。在在table表项中,只能出现表项中,只能出现0、1、x三种状态,不能出三种状态,不能出现现z状态。

19、状态。第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程系UDP的定义的定义(primitiveendprimitive)primitive 元件名(输出端口,输入端口元件名(输出端口,输入端口1,输入端口,输入端口2,)output 输出端口名;输出端口名;input 输入端口输入端口1,输入端口,输入端口2,;reg 输出端口名;输出端口名;initial begin 输出端口或内部寄存器赋初值(输出端口或内部寄存器赋初值(0,1或或x);); endtable /输入输入1 输入输入2 :输出:输出 真值列表真值列表e

20、ndtableendprimitive只有一个输出端口只有一个输出端口第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程系组合电路组合电路UDP元件元件primitive carry_udp(cout,cin,a,b);input cin,a,b; output cout;table/cin a b : cout /真值表真值表 0 0 0 : 0; 0 1 0 : 0; 0 0 1 : 0; 0 1 1 : 1; 1 0 0 : 0; 1 0 1 : 1; 1 1 0 : 1; 1 1 1 : 1;endtableendp

21、rimitive 【例例9.3】 1位全加器进位输出位全加器进位输出UDP元件元件第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表 0 0 0 : 0; 0 1 0 : 0; 0 0 1 : 0; 0 1 1 : 1; 1 0 0 : 0; 1 0 1 : 1; 1 1 0 : 1; 1 1 1 : 1; 0 0 x : 0; 0 x 0 : 0; x 0

22、 0 : 0; 1 1 x : 1; 1 x 1 : 1; x 1 1 : 1;endtableendprimitive 【例例9.4】包含包含x态输入的态输入的1位全加器进位输出位全加器进位输出UDP元件元件第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系 【例例9.5】用简缩符用简缩符“?”表述的表述的1位全加器进位输出位全加器进位输出UDP元件元件primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表

23、? 0 0 : 0; /只要有两个输入为只要有两个输入为0,则进位输出肯定为,则进位输出肯定为0 0 ? 0 : 0; 0 0 ? : 0; ? 1 1 : 1; /只要有两个输入为只要有两个输入为1,则进位输出肯定为,则进位输出肯定为1 1 ? 1 : 1; 1 1 ? : 1;endtableendprimitive第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程系时序电路时序电路UDPprimitive latch(q,clk,reset,d);input clk,reset,d;output q;reg q;ini

24、tial q=1b1; /初始化初始化table/clk reset d : state : q ? 1 ? : ? : 0; 0 0 0 : ? : 0; 0 0 1 : ? : 1; 1 0 ? : ? : -; endtableendprimitive【例例9.6】 电平敏感的电平敏感的1位数据锁存器位数据锁存器UDP元件元件第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系 【例例9.7】 上升沿触发的上升沿触发的D触发器触发器UDP元件元件primitive dff_udp(q,d,clk);input d,clk; ou

25、tput q;reg q;table/clk d : state : q(01) 0 : ? : 0; /上升沿到来,输出上升沿到来,输出q=d(01) 1 : ? : 1;(0 x) 1 : 1 : 1;(0 x) 0 : 0 : 0;(?0) ? : ? : -; /没有上升沿到来,输出没有上升沿到来,输出q保持原值保持原值? (?) : ? : -; /时钟不变,输出也不变时钟不变,输出也不变endtableendprimitive第五章第五章 Verilog运算符与结构描述语句运算符与结构描述语句 材料与能源学院微电子工程系材料与能源学院微电子工程系UDP中的缩记符中的缩记符第七章第七

26、章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.3 行为描述行为描述行为描述就是对设计实体的数学模型的描述,其抽行为描述就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现的精力关注设计功能的门级实现。第七章第七章

27、 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例7.2】 用case语句描述的4选1 MUXmodule mux4_1b(out,in1,in2,in3,in4,s0,s1);input in1,in2,in3,in4,s0,s1; output reg out;always(*) /使用通配符case(s0,s1)2b00:out=in1;2b01:out=in2;2b10:out=in3;2b11:out=in4;default:out=2bx;endcaseendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风

28、格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.3】行为描述的行为描述的4位计数器位计数器module count4(clk, clr, out);input clk, clr;output3:0 out;reg3:0 out;always (posedge clk or posedge clr)beginif(clr) out = 0; else out = out + 1;endendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系采用行为描述方式时需注意:采用行为描述方式时需注意:用行为描述模式设

29、计电路,可以降低设计难度。用行为描述模式设计电路,可以降低设计难度。行为描述只需表示输入与输出之间的关系,不行为描述只需表示输入与输出之间的关系,不需要包含任何结构方面的信息。需要包含任何结构方面的信息。设计者只需写出源程序,而挑选电路方案的工设计者只需写出源程序,而挑选电路方案的工作由作由EDA软件自动完成。软件自动完成。在电路的规模较大或者需要描述复杂的逻辑关在电路的规模较大或者需要描述复杂的逻辑关系时,应首先考虑用行为描述方式设计电路,系时,应首先考虑用行为描述方式设计电路,如果设计的结果不能满足资源占有率的要求,如果设计的结果不能满足资源占有率的要求,则应改变描述方式。则应改变描述方式

30、。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.4 数据流描述数据流描述数据流描述方式主要使用持续赋值语句,多用于描数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为:述组合逻辑电路,其格式为: assign LHS_net=RHS_expression;右边表达式中的操作数无论何时发生变化,都会引右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算起表达式值的重新计算, 并将重新计算后的值赋予并将重新计算后的值赋予左边表达式的左边表达式的net型变量。型变量。第七章第七章 Verilog设计的

31、层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例7.4】 数据流描述的4选1 MUXmodule mux4_1c(out,in1,in2,in3,in4,s0,s1);input in1,in2,in3,in4,s0,s1; output out;assign out=(in1 & s0 & s1)|(in2 & s0 & s1)|(in3& s0 & s1)|(in4 & s0 & s1);endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系用数据流描述方式设计电路与用传统的逻辑方

32、程设用数据流描述方式设计电路与用传统的逻辑方程设计电路很相似。设计中只要有了布尔代数表达式就计电路很相似。设计中只要有了布尔代数表达式就很容易将它用数据流方式表达出来。很容易将它用数据流方式表达出来。表达方法是用表达方法是用Verilog中的逻辑运算符置换布尔逻辑中的逻辑运算符置换布尔逻辑运算符即可。比如,如果逻辑表达式为:运算符即可。比如,如果逻辑表达式为:f=ab+cd,则用数据流方式描述为:则用数据流方式描述为: assign F=(a&b)|(c&d)数据流描述有时也表示行为,有时也含有结构数据流描述有时也表示行为,有时也含有结构信息,因此,有的描述形式究竟属于哪一种会很信息,因此,有

33、的描述形式究竟属于哪一种会很难界定,但这绝对不会影响具体描述的应用。难界定,但这绝对不会影响具体描述的应用。下面是下面是2选选1MUX三种不同的描述。三种不同的描述。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.6】门级结构描述的门级结构描述的2选选1MUXmodule MUX2_1a(output out, input a, b, sel);wire sel_, a1, a2;not (sel_, sel);and (a1, a, sel_), (a2, b, sel);or (out, a1, a2);endmod

34、uleabselsel_a1a2out第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.7】行为描述的行为描述的2选选1MUXmodule MUX2_1b(out, a, b, sel);output out;input a, b, sel;reg out;always (a or b or sel)beginif(sel) out = b; else out = a;endendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.8】数据流

35、描述的数据流描述的2选选1MUXmodule MUX2_1c(out, a, b, sel);output out;input a, b, sel;assign out = sel ? b : a;endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.5 不同描述风格的设计不同描述风格的设计对设计者而言,采用的描述级别越高,设计越容易;对设计者而言,采用的描述级别越高,设计越容易;对综合器而言,行为级的描述为综合器的优化提供对综合器而言,行为级的描述为综合器的优化提供了更大的空间,较之门级结构描述更能发挥综合器了更

36、大的空间,较之门级结构描述更能发挥综合器的性能,所以在电路设计中,除非一些关键路径的的性能,所以在电路设计中,除非一些关键路径的设计采用门级结构描述外,一般更多地采用行为建设计采用门级结构描述外,一般更多地采用行为建模方式。模方式。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.5.1 半加器设计半加器设计【例例7.10】数据流描述的数据流描述的1位半加器位半加器module h_add2 (a, b, so, co);input a, b;output so, co;assign so = a b;assign co = a

37、 & b;endmodule 【例例7.9】门级结构描述的门级结构描述的1位半加器位半加器module h_add1(a, b, so, co);input a, b;output sum, cout;and (co, a, b);xor (so, a, b);endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.11】行为描述的行为描述的1位半加器位半加器module h_add3(a, b, so, co);input a, b;output sum, cout; reg sum, cout;always

38、 ( a or b)begin case(a, b) 2b00: begin so = 0; co = 0; end 2b01: begin so = 1; co = 0; end 2b10: begin so = 1; co = 0; end 2b11: begin so = 0; co = 1; endendcaseendendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系1位全加器门级结构原理图位全加器门级结构原理图absumcoutcs1m 1m 2m 37.5.2 1位全位全加器设计加器设计第七章第七章 V

39、erilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.12】调用元件实现调用元件实现(门级结构描述门级结构描述)的的1位全加器位全加器module full_add1(a, b, cin, sum, cout);input a, b, cin;output sum, cout;wire s1, m1, m2, m3;and (m1, a, b), (m2, b, cin), (m3, a, cin);xor (s1, a, b), (sum, s1, cin);or (cout, m1, m2, m3);endmoduleabsumcoutc

40、s1m 1m 2m 3第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.13】数据流描述的数据流描述的1位全加器位全加器module full_add2(a, b, cin, sum, cout);input a, b, cin;output sum, cout;/ 方式方式1assign sum = a b cin;assign cout = (a & b ) | (b & cin ) | (cin & a );/ 方式方式2/assign cout, sum = a + b +cin;endmoduleabsumcou

41、tcs1m 1m 2m 3第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.14】行为描述的行为描述的1位全加器位全加器module full_add4(a, b, cin, sum, cout);input a, b, cin;output sum, cout;reg sum, cout;reg m1, m2, m3;always ( a or b or cin )beginsum = (a b) cin;m1 = a & b; m2 = b & cin; m3 = a & cin;cout = (m1 | m2) |

42、m3;endendmoduleabsumcoutcs1m 1m 2m 3第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系采用层次化方式设计采用层次化方式设计1位全加器位全加器两个半加器和一个或门构成一个全加器:两个半加器和一个或门构成一个全加器: 半加器为底层模块,全加器为顶层模块,在顶半加器为底层模块,全加器为顶层模块,在顶层模块中调用底层模块(模块例化)来构成整个系层模块中调用底层模块(模块例化)来构成整个系统,类似在原理图设计中调用元器件。统,类似在原理图设计中调用元器件。第七章第七章 Verilog设计的层次与风格设计的层

43、次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.15】 用模块例化方式设计的用模块例化方式设计的1位全加器位全加器顶层设计顶层设计module full_add(ain,bin,cin,sum,cout);input ain,bin,cin; output sum,cout;wire d,e,f; /用于内部连接的节点信号用于内部连接的节点信号half_add u1(ain,bin,e,d); /半加器模块调用,采用位置关联方式半加器模块调用,采用位置关联方式half_add u2(e,cin,sum,f); or u3(cout,d,f); /或门调用或门调用endmo

44、dule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.16】 半加器定义半加器定义module half_add(a,b,so,co);input a,b; output so,co;assign co=a&b; assign so=ab;endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系4位全加器结构示意图位全加器结构示意图a0b0cinsum01位全加器a1b1cin11位全加器a3b3cin31位全加器sum1sum3a2b2cin2

45、1位全加器sum2cout7.5.3 4位全位全加器设计加器设计第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.17】结构描述的结构描述的4位级联全加器位级联全加器include full_add1.vmodule add4_1(sum, cout, a, b, cin);output 3:0 sum;output cout;input 3:0 a, b;input cin;full_add1 f0(a0, b0, cin, sum0, cin1); full_add1 f1(a1, b1, cin1, sum1, ci

46、n2);full_add1 f2(a2, b2, cin2, sum2, cin3);full_add1 f3(a3, b3, cin3, sum3, cout);endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系结构描述的结构描述的4位全加器位全加器RTL图图第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.18】数据流描述的数据流描述的4位全加器位全加器module add4_2(cout, sum, a, b, cin);output3:

47、0 sum;output cout;input3:0 a, b;input cin;assign cout, sum = a + b + cin;endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系【例例7.19】行为描述的行为描述的4位全加器位全加器module add4_3(cout, sum, a, b, cin);output3:0 sum;output cout;input3:0 a, b;input cin;reg3:0 sum;reg cout;always (a or b or cin)beginco

48、ut, sum = a + b + cin;endendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系行为和数据流描述的行为和数据流描述的4位全加器位全加器RTL图图第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.6 多层次结构电路的设计多层次结构电路的设计如果数字系统比较复杂,可采用如果数字系统比较复杂,可采用“Top-down”的方的方法进行设计。法进行设计。首先把系统分为几个模块,每个模块再分为几个子首先把系统分为几个模块,每个模块再分为几个子

49、模块,以此类推,直到易于实现为止。模块,以此类推,直到易于实现为止。这种这种“Top-down”的方法能够把复杂的设计分解为的方法能够把复杂的设计分解为许多简单的逻辑来实现,同时也适合于多人进行分许多简单的逻辑来实现,同时也适合于多人进行分工合作,如同用工合作,如同用C语言编写大型软件一样。语言编写大型软件一样。Verilog语言能够很好地支持这种语言能够很好地支持这种“Top-down”的设的设计方法计方法。多层次结构电路的描述既可以采用文本方式,也可多层次结构电路的描述既可以采用文本方式,也可以用图形和文本混合设计的方式。以用图形和文本混合设计的方式。第七章第七章 Verilog设计的层次

50、与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系用一个用一个8位累加器的设计为例来说明这两种设计方式。位累加器的设计为例来说明这两种设计方式。图形与文本混合设计图形与文本混合设计: 用文本先设计一个用文本先设计一个8位全加器和一个位全加器和一个8位寄存位寄存器,再用电路图连接起来。器,再用电路图连接起来。第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系8位全加器位全加器module add8(sum,cout,b,a,cin);output7:0 sum;output cout;input7:0 a,b;

51、input cin;assign cout,sum=a+b+cin;endmodule8位寄存器位寄存器module reg8(qout,in,clk,clear);output7:0 qout;input7:0 in;input clk,clear;reg7:0 qout;always (posedge clk or posedge clear)beginif(clear) qout=0; /异步清异步清0else qout=in;endendmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系将设计项目设置成可调用的元

52、件将设计项目设置成可调用的元件 将所需元件全部调入原理图编辑窗并连接好将所需元件全部调入原理图编辑窗并连接好第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系文本设计文本设计累加器顶层文本描述累加器顶层文本描述module acc(accout,cout,accin,cin,clk,clear);output7:0 accout;output cout;input7:0 accin;input cin,clk,clear;wire7:0 sum;add8 accadd8(sum,cout,accout,accin,cin); /调用

53、调用add8子模块子模块reg8 accreg8(accout,sum,clk,clear); /调用调用reg8子模块子模块endmodule*第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系对于上面的模块调用,可采用位置对应的方式,即对于上面的模块调用,可采用位置对应的方式,即调用时模块端口列表中信号的排列顺序与模块定义调用时模块端口列表中信号的排列顺序与模块定义时端口列表中的信号排列顺序相同;也可以采用信时端口列表中的信号排列顺序相同;也可以采用信号名对应方式,此时不必按顺序。号名对应方式,此时不必按顺序。例如上面对例如上面

54、对reg8的调用:的调用:module reg8(qout,in,clk,clear);/reg8的模块声明的模块声明底层底层reg8 accreg8(accout,sum,clk,clear); /调用方式调用方式1,位置对应,位置对应顶层,位置关联顶层,位置关联reg8 accreg8 (.qout (accout), .clear(clear), .in(sum), .clk(clk);/调用方式调用方式2,信号名对应,信号名对应顶层,名字关联顶层,名字关联第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系模块调用的指定方式模

55、块调用的指定方式-和所用的综合器有关和所用的综合器有关(1)文件复制方式:文件复制方式:将将add8和和 reg8的代码复制到的代码复制到acc.v中,在综中,在综合时指明顶层模块。合时指明顶层模块。module acc(accout,cout,accin,cin,clk,clear);output7:0 accout; output cout;input7:0 accin; input cin,clk,clear;wire7:0 sum;add8 accadd8(sum,cout,accout,accin,cin); /调用调用add8子模块子模块reg8 accreg8(accout,su

56、m,clk,clear);/调用调用reg8子模块子模块endmodule module add8(sum,cout,b,a,cin); output7:0 sum; output cout; input7:0 a,b; input cin; assign cout,sum=a+b+cin; endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系(2)库管理方式)库管理方式第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系7.7 基本组合逻辑电路基本组合逻辑

57、电路(Combinational Logic Circuit)设计设计组合逻辑主要用于进行电路中的数学和逻辑运算,如实现加组合逻辑主要用于进行电路中的数学和逻辑运算,如实现加法、乘法、与、非运算等。法、乘法、与、非运算等。组合逻辑没有组合逻辑没有“记忆记忆”功能,即任何时刻输入变化时,输出功能,即任何时刻输入变化时,输出也在同一时刻变化也在同一时刻变化 。组合逻辑示意图组合逻辑示意图第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系门级结构描述门级结构描述 module gate1(F,A,B,C,D);input A,B,C,D;

58、output F;nand(F1,A,B); /调用门元件调用门元件and(F2,B,C,D);or(F,F1,F2);endmodule数据流描述数据流描述module gate2(F,A,B,C,D);input A,B,C,D;output F;assign F=(A&B)|(B&C&D);endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系译码器译码器译码是译码是将输入代码转换成特定的输出信号。能实现这种将输入代码转换成特定的输出信号。能实现这种译码译码功能的逻辑电路称为译码器。现以功能的逻辑电路称为译码器。

59、现以74138为例。为例。74138真值表真值表74138引脚图引脚图第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系module ttl74138(a,y,g1,g2a,g2b);input2:0 a; input g1,g2a,g2b; output reg7:0 y;always (*)begin if(g1 & g2a & g2b) /只有当只有当g1、g2a、g2b为为100时,译码器使能时,译码器使能begin case(a)3b000:y=8b11111110; /译码输出译码输出3b001:y=8b11111101

60、;3b010:y=8b11111011;3b011:y=8b11110111;3b100:y=8b11101111;3b101:y=8b11011111;3b110:y=8b10111111;3b111:y=8b01111111;default:y=8b11111111;endcase endelse y=8b11111111;end endmodule第七章第七章 Verilog设计的层次与风格设计的层次与风格材料与能源学院微电子工程系材料与能源学院微电子工程系七段显示译码器七段显示译码器真值表与字体结构:真值表与字体结构:共阴极共阴极第七章第七章 Verilog设计的层次与风格设计的层次与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论