Verilog设计入门.ppt

上传人:牧羊曲112 文档编号:5452072 上传时间:2023-07-08 格式:PPT 页数:79 大小:1.23MB
返回 下载 相关 举报
Verilog设计入门.ppt_第1页
第1页 / 共79页
Verilog设计入门.ppt_第2页
第2页 / 共79页
Verilog设计入门.ppt_第3页
第3页 / 共79页
Verilog设计入门.ppt_第4页
第4页 / 共79页
Verilog设计入门.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《Verilog设计入门.ppt》由会员分享,可在线阅读,更多相关《Verilog设计入门.ppt(79页珍藏版)》请在三一办公上搜索。

1、第3章,Verilog设计入门,3.1 组合电路的Verilog描述,3.1.1 2选1多路选择器及其Verilog描述,3.1 组合电路的Verilog描述,3.1.1 2选1多路选择器及其Verilog描述,1)关键字module endmodule引导的完整的电路模块描述。,2)标识符MUX21a是用户自定义电路名,有其命名规则。,3)端口表的表述。,5)关键字assign引导的赋值语句,条件语句的表述。,4)关键字input output描述电路外部端口的信号类型和流动方向。,3.1 组合电路的Verilog描述,3.1.1 2选1多路选择器及其Verilog描述,1模块表达,2端口语

2、句、端口信号名和端口模式,3.1 组合电路的Verilog描述,3.1.1 2选1多路选择器及其Verilog描述,3赋值语句和条件操作符,4关键字,5标识符,6规范的程序书写格式,7文件取名和存盘,第3章,Verilog设计入门,本次课程的学习要点,进一步掌握Verilog语言的语法特点:,wire和reg数据(信号)类型;always引导的过程语句结构和assign引导的并行语句;case语句;阻塞式赋值“=”和非阻塞式赋值“=”;If_else语句;Verilog中的数字表达、并位操作及操作符的使用,包括逻辑操作符、等式操作符、算术操作符;顶层文件的概念和例化语句的使用。,3.1 组合电

3、路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,1reg型变量类型定义,Verilog常用两种信号类型:wire和reg类型,1)信号类型定义:,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,2)范围:,3)特殊使用,可定义为wire类型的信号包括:所有输入信号、assign引导的连续赋值语句的输出信号、实体元件例化中的输出信号、assi

4、gn语句中需要的端口以外的连线信号。,可定义为reg类型的信号包括:always引导的块语句中被赋值的信号、时序逻辑电路中需要的寄存器类型变量。,以下两条语句:,可简化为:,3.1 组合电路的Verilog描述,3.1.3 4选1多路选择器及其数据流描述方式,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,2always引导的过程语句结构,1)两类语句一般表述,2)两类语句的特点,always引导的过程语句的特点:,引导由begin和end扩起来的多条语句块,

5、形成语句块;块中各语句顺序执行;块语句中被赋值的变量必须为reg类型。,Verilog常用两种语句结构:always和assign,3.1 组合电路的Verilog描述,assign连续赋值语句的特点:只能引导一条语句,多条语句要用多个assign引导;并行性,当驱动表达式中的变量发生变化时,语句才被执行,否则不执行;assign引导的语句中的所有信号为wire型;同一目标变量名不允许有多个驱动源,例如以下表达方式不允许:,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Veri

6、log描述,3.1.2 4选1多路选择器及其case语句表述方式,5并位操作和数字表达,4b0010=4B0010,表示00103o5=3O5=3b101,表示1014hA=4HA=4b1010,表示10104d9=4D9=4b1001,表示1001,3.1 组合电路的Verilog描述,3.1.2 4选1多路选择器及其case语句表述方式,4case条件语句和4种逻辑状态,注意:1)表达式取值必须在case以下列出的取值范围内,且数据类型匹配;,2)允许case以下列出的多个值同时满足表达式,执行最先满足表达 式的分支项;,3)default的使用。,3.1 组合电路的Verilog描述,两

7、种过程赋值操作:,(1)阻塞式赋值“=”:语句执行结束,右侧表达式的值立刻赋给左侧目标变量。,(2)非阻塞式赋值“=”:,对于always引导的块语句中含有多条阻塞式赋值语句时,当执行某一条语句时,其它语句不允许执行,被阻塞了,具有顺序执行的特点。,对于always引导的块语句中含有多条非阻塞式赋值语句时,当执行某一条语句时,对于块中的其它语句的执行不被阻塞,可以理解为并行执行,但是块中所有信号的赋值是在块语句结束时同时进行的。,3.1.2 4选1多路选择器及其case语句表述方式,6赋值操作符“=”,只能用于顺序语句,不能用于assign引导的并行语句,3.1 组合电路的Verilog描述,

8、例:,always(A、B)begin M1=A;M2=B&M1;Q=M1|M2;end,always(A、B)begin M1=A;M2=B&M1;Q=M1|M2;end,3.1.2 4选1多路选择器及其case语句表述方式,3.1 组合电路的Verilog描述,3.1.3 4选1多路选择器及其数据流描述方式,3.1 组合电路的Verilog描述,3.1.3 4选1多路选择器及其数据流描述方式,1按位逻辑操作符,注意:若两个操作数长度不同,则综合器自动将短的数据按左端补0的规则进行运算操作,3.1 组合电路的Verilog描述,3.1.3 4选1多路选择器及其数据流描述方式,2等式操作符,注

9、意:1)等式操作符的结果为1位逻辑值,真或伪;2)“=”的两个操作二进制数中有“Z”或“X”时,判为假;“=”将两个操作数中的“Z”或“X”,当成确定值比较。,3.1 组合电路的Verilog描述,3.1.4 4选1多路选择器及其if语句描述方式,3.1 组合电路的Verilog描述,3.1.4 4选1多路选择器及其if语句描述方式,1if_ else条件语句,if(表达式)begin 语句1;语句2;.语句n;endelse begin 语句n+1;语句n+2;.语句n+n;end,3.1 组合电路的Verilog描述,3.1.4 4选1多路选择器及其if语句描述方式,2数据表示方式,1)操

10、作符两端数据类型不匹配时,Verilog能自动匹配;,2)当所赋的值大于被赋值信号的最大值时,首先将所赋值便换为二进制,然后根据被赋值信号的位宽向左端截取多余位数。,例:定义Y1:0,当执行Y=9时,Y得到的赋值是2b01。,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,1.半加器描述,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,1.基于assign引导的赋值语句和逻辑操作符的描述,module h_adder(a,b,so,co);input a,b;output so,co;assign so=a b;assign co

11、=a endmodule,3.1 组合电路的Verilog描述,module h_adder2(a,b,so,co);input a,b;output so,co;reg so,co;always(a,b,so,co)begincase(a,b)0:begin so=0;co=1b0;end1:begin so=1;co=1b0;end2:begin so=1;co=1b0;end3:begin so=0;co=1b1;enddefault:begin so=0;co=0;endendcaseendendmodule,2.基于always 引导的过程语句和逻辑操作符的描述,3.1.5 加法器及

12、其Verilog描述,3.1 组合电路的Verilog描述,module h_adder(a,b,so,co);input a,b;output so,co;assign co,so=a+b;endmodule,3.基于assign引导的连续赋值语句和算数操作符的描述,3.1.5 加法器及其Verilog描述,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,4.算数操作符的使用,3.1 组合电路的Verilog描述,5.全加器描述-用半加器模块和或门模块描述,3.1.5 加法器及其Verilog描述,3.1 组合电路的Verilog描述,5.全加器描述-用半加器

13、、或门模块及例化语句描述,3.1.5 加法器及其Verilog描述,module or2a(a,b,c);input a,b;output c;assign c=a|b;endmodule,3.1 组合电路的Verilog描述,5.全加器描述-用半加器、或门模块及例化语句描述,3.1.5 加法器及其Verilog描述,module f_adder(ain,bin,cin,sum,cout);input ain,bin,cin;output sum,cout;wire e,d,f;h_adder u1(ain,bin,e,d);/位置例化法例化语句 h_adder u2(.a(e),.b(cin

14、),.so(sum),.co(f);/端口关联法例化语句 or2a(.a(d),.b(f),.c(cout);/端口关联法例化语句endmodule,3.1 组合电路的Verilog描述,5.全加器描述-用半加器、或门模块及例化语句描述,3.1.5 加法器及其Verilog描述,3.1 组合电路的Verilog描述,5.全加器描述-顶层文件及例化语句描述,3.1.5 加法器及其Verilog描述,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,5.全加器顶层文件设计和例化语句,信号关联法例化语句:,位置关联法例化语句:,注意:被例化的元件可以是任何HDL语言描述

15、的模块、FPGA库元件,甚至IP核。,(.例化元件端口(例化元件外接端口),);,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,6.8位加法器描述,module ADDER8B(A,B,CIN,DOUT,COUT);output7:0 DOUT;output COUT;input7:0 A,B;input CIN;wire8:0 DATA;assign DATA=A+B+CIN;assign COUT=DATA8;/注意数值表示assign DOUT=DATA7:0;/注意数值表示endmodule,3.1 组合电路的Verilog描述,3.1.5 加法器及其

16、Verilog描述,6.8位加法器描述,module ADDER8B(A,B,CIN,COUT,DOUT);input 7:0 A,B;input CIN;output 7:0 DOUT;output COUT;assign COUT,DOUT=A+B+CIN;endmodule,3.1 组合电路的Verilog描述,3.1.5 加法器及其Verilog描述,3.8位加法器描述,作 业,习题3-6:1)用两个过程语句结构描述MUXK模块;2)用例化语句描述 MUXK模块。,作 业,习题3-7:用Verilog描述减法器,(1)首先设计1位半减器,然后用例化语句将它们连接起来,图3-30中h_s

17、uber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。(2)根据图3-30设计1位全减器。(3)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计。,作 业,半减器的真值表:,diff=x y;s_out=(x)&y;,表达式:,case、if_else语句描述,表达式、算数操作符描述,作 业,1)半减器分别用case语句、if_else语句、逻辑操作符、算数操作符4种方式描述,用逻辑操作符半减器描述:,作 业,2)1位全减器用半减器及例化语句描述,作 业,3)8位减法器用1位全加器例化语句描述,作 业,8位减法器仿真波形:,3.2 时序

18、模块及其Verilog表述,3.2.1 边沿触发型触发器及其Verilog表述,工作原理:时钟上升沿到来时,将D送入Q。,3.2 时序模块及其Verilog表述,3.2.1 边沿触发型触发器及其Verilog表述,3.2 时序模块及其Verilog表述,3.2.1 边沿触发型触发器及其Verilog表述,新语法:posedge定义:对上升沿敏感的表述。作用:告诉综合器构建边沿触发型时序元件。与posedge对应的negedge,下降沿敏感表述。凡是边沿触发性质的时序元件必须在敏感信号表中使用边沿敏感表述,而不用此表述产生的时序电路都是电平敏感时序电路。,3.2 时序模块及其Verilog表述,

19、3.2.2 电平触发型锁存器及其Verilog表述,当CLK为高电平时,Q随着D的变化而更新,当CLK为低电平时,将保存其在高电平时锁入的数据。,3.2 时序模块及其Verilog表述,3.2.2 电平触发型锁存器及其Verilog表述,3.2 时序模块及其Verilog表述,3.2.2 电平触发型锁存器及其Verilog表述,思考:,2)为什么综合结果是锁存器而不是触发器?,1)描述方式与纯组合逻辑电路相似,为什么综合结果是时序电路?,3)没有nesedge和posedge同样可以综合出时序电路,通过使用不完整的if_else语句。,3.2 时序模块及其Verilog表述,3.2.2 电平触

20、发型锁存器及其Verilog表述,工作原理:时钟上升沿到来时,将D送入Q,属于边沿触发,敏感信号表中posedge表述。,当CLK=1,Q随着D的变化而更新,当CLK=0时,Q值保持,属于电平触发,敏感信号表列电平信号。,3.2 时序模块及其Verilog表述,3.2.3 含异步复位/时钟使能型触发器及其Verilog表述,异步:独立于时钟控制的复位控制端RST,在任意时刻,只要RST=0,D触发器的输出端即刻被清零,与时钟的状态无关。EN的功能是,只有当EN=1时,时钟上升沿才有效。,3.2 时序模块及其Verilog表述,3.2.3 含异步复位/时钟使能型触发器及其Verilog表述,mo

21、dule DFF2(RST,CLK,EN,D,Q);input RST,CLK,EN,D;output Q;reg Q;always(posedge CLK or negedge RST)beginif(!RST)Q=0;else if(EN)Q=D;endendmodule,3.2 时序模块及其Verilog表述,3.2.3 含异步复位/时钟使能型触发器及其Verilog表述,复位信号RST=0时,不管时钟信号是何种状态,Q即刻被清0。,3.2 时序模块及其Verilog表述,3.2.4 同步复位型触发器及其Verilog表述,同步:指RST信号只有在时钟信号有效时,才能起作用。,3.2 时

22、序模块及其Verilog表述,3.2.4 同步复位型触发器及其Verilog表述,module DFF3(RST,CLK,D,Q);input RST,CLK,D;output Q;reg Q;always(posedge CLK)beginif(RST=1)Q=0;else Q=D;endendmodule,3.2 时序模块及其Verilog表述,3.2.4 同步复位型触发器及其Verilog表述,复位信号RST=1时,且时钟上升沿到来,才对Q清0;反之复位信号RST=1时,时钟上升沿没有到来,则Q不能被清0。,3.2 时序模块及其Verilog表述,3.2.5 异步复位型锁存器及其Veri

23、log表述,异步复位:RST独立于时钟的状态;锁存器:属电平敏感型电路,类似组合逻辑电路描述法。,3.2 时序模块及其Verilog表述,3.2.5 异步复位型锁存器及其Verilog表述,3.2 时序模块及其Verilog表述,3.2.5 异步复位型锁存器及其Verilog表述,RST=0时,不管CLK是何种状态,Q即刻被清0。,RST=1时,CLK=1时,Q随D的变化而变化,CLK=0时,Q保持CLK=1时的值。,3.2 时序模块及其Verilog表述,3.2.6 Verilog的时钟过程表述的特点和规律,1)敏感信号表含有negedge和posedge时,选择性地改变敏感信号的放置是可以

24、影响综合结果的,例如,同步复位型触发器和异步复位型触发器;,2)敏感信号表中一旦含有negedge或posedge的边沿敏感信号后,所有其他电平敏感型信号都不能放在敏感信号表中;,3)如果在同一模块中含有独立于主时钟的时序或组合逻辑,必须在另一过程描述。,3.2 时序模块及其Verilog表述,3.2.6 Verilog的时钟过程表述的特点和规律,对于边沿触发型时序电路,遵循以下规律:1)如果将信号定义为边沿敏感信号,则必须在敏感信号表中用negedge或posedge给出表述,但在always过程结构中不能再出现该信号了,例如,时钟触发器时钟CLK。2)如果一个对应于时钟的电平敏感的异步控制

25、信号,则除了在敏感信号表中给出对应的表述外,在always过程结构中必须明示这一信号的逻辑功能,如异步RST。3)如果一个信号是对应于时钟的同步控制信号,则不允许在敏感信号表中出现,如同步RST。4)敏感信号分为两种类型:电平敏感信号和边沿敏感信号,在同一过程的敏感信号表中,只能放置一种敏感信号,不能混放。,3.2 时序模块及其Verilog表述,3.2.7 异步时序模块的Verilog表述,3.2 时序模块及其Verilog表述,3.2.7 异步时序模块的Verilog表述,module AMOD(D,A,CLK,Q);input D,A,CLK;output Q;reg Q,Q1;alwa

26、ys(posedge CLK)begin Q1=(A|Q);end always(posedge Q1)begin Q=D;endendmodule,3.3 二进制计数器及其Verilog设计,3.3.1 4位二进制计数器及其Verilog表述,分析:最简单的4位二进制计数器应该有一个时钟输入CLK,4位二进制的计数值输出Q3:0,每进入一个时钟,输出数据Q将增加1,随着时钟CLK的不断出现,计数值Q从0000至1111循环输出值。,3.3 二进制计数器及其Verilog设计,3.3.1 4位二进制计数器及其Verilog表述,module CNT4(CLK,Q);input CLK;outp

27、ut 3:0 Q;reg 3:0Q1;always(posedge CLK)begin Q1=Q+1;end assign Q=Q1;endmodule,3.3 二进制计数器及其Verilog设计,3.3.1 4位二进制计数器及其Verilog表述,3.3 二进制计数器及其Verilog设计,3.3.1 4位二进制计数器及其Verilog表述,3.3 二进制计数器及其Verilog设计,3.3.2 功能更全面的计数器设计,带有异步复位、同步使能和预置型十进制计数器。输入输出分析:输入信号包括时钟信号CLK、异步复位信号RST,同步使能信号EN,同步预置信号LOAD,预置数DATA3:0。输出信号包括计数输出DOUT3:0,计数溢出时的进位信号COUT。逻辑功能分析:1)异步复位:任意时刻,只要RST为0,计数器都有清0;2)当RST=1、使能EN=1,且CLK上升沿到来时,当LOAD=0将DATA预置给计数输出值;LOAD为1时,计数器正常计数,当计数值为9时,COUT输出进位值1。,3.3 二进制计数器及其Verilog设计,3.3.2 功能更全面的计数器设计,3.3 二进制计数器及其Verilog设计,3.3.2 功能更全面的计数器设计,习 题,3-9,习 题,3-13,习 题,3-13,习 题,3-13,习 题,3-13,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号