Verilog设计初步与入门实用教案_第1页
Verilog设计初步与入门实用教案_第2页
Verilog设计初步与入门实用教案_第3页
Verilog设计初步与入门实用教案_第4页
Verilog设计初步与入门实用教案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描述描述 4.1.1 2选选1多路选择器及其多路选择器及其Verilog描述描述(mio sh) 第1页/共44页第一页,共45页。4.1.1 2选选1多路选择器及其多路选择器及其Verilog描述描述(mio sh) 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 第2页/共44页第二页,共45页。1模块模块(m kui)表达表达 2端口语句、端口信号端口语句、端口信号(xnho)名和端口模式名和端口模式 4.1 4.1 组合组合(zh)(zh)电路的电路

2、的VerilogVerilog描描述述 4.1.1 2选选1多路选择器及其多路选择器及其Verilog描述描述 module MUX21a(a,b,s,y);input a,b,s;output y;assign y=(s? a:b);endmodule第3页/共44页第三页,共45页。3赋值语句赋值语句(yj)和条件操作符和条件操作符 4关键字关键字 5标识符标识符 6规范规范(gufn)的程序书写格式的程序书写格式 7文件取名文件取名(q mn)和存盘和存盘 4.1 4.1 组合电路的组合电路的VerilogVerilog描述描述 4.1.1 2选选1多路选择器及其多路选择器及其Veril

3、og描述描述 module MUX21a(a,b,s,y);input a,b,s;output y;assign y=(s? a:b);endmodule第4页/共44页第四页,共45页。4.1.2 4选选1多路选择器及其多路选择器及其case语句表述语句表述(bio sh)方式方式 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描述描述 module MUX41a(a,b,c,d,s1,s0,y);input a,b,c,d;input s1,s0;output y;reg y;always (a,b,c,d,s1,s0)begincase (s1

4、,s0)2b00 : y=a;2b01 : y=b;2b10 : y=c;2b11 : y=d;default: y=a;endcaseendendmodule 第5页/共44页第五页,共45页。4.1.2 4选选1多路选择器及其多路选择器及其case语句语句(yj)表述方式表述方式 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 第6页/共44页第六页,共45页。1reg型变量型变量(binling)定定义义 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描描述述 4.1.2 4选选1多路选择器及其多路选择器及其ca

5、se语句语句(yj)表述方式表述方式 (1)Verilog中最常用的两种变量:寄存器型和网线型中最常用的两种变量:寄存器型和网线型 (2)模块中涉及的信息必须定义其类型;)模块中涉及的信息必须定义其类型;(3)默认的变量类型为网线型()默认的变量类型为网线型(wire););(4)过程语句中被赋值的变量必须为寄存器型;)过程语句中被赋值的变量必须为寄存器型;第7页/共44页第七页,共45页。选择选择(xunz)(xunz)正确的数据正确的数据类型类型module top;wire y; reg a, b;DUT u1 (y, a, b) ;initial begina = 0; b = 0;

6、#5 a = 1; endendmodulemodule DUT (Y, A, B);output Y;input A, B;wire Y, A, B;and (Y, A, B) ;endmodule输入(shr)端口可以由net/register驱动,但输入(shr)端口只能是net输出端口可以是net/register类型(lixng),输出端口只能驱动net在过程块中只能给register类型赋值若Y,A,B说明为reg则会产生错误。in1in2OABY双向端口输入双向端口输入/输出输出只能是只能是net类型类型4.1 组合电路的Verilog描述 第8页/共44页第八页,共45页。2过

7、程过程(guchng)语句语句 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.2 4选选1多路选择器及其多路选择器及其case语句表述语句表述(bio sh)方式方式 (1)可用)可用 or 连接所有敏感信号;连接所有敏感信号;(2)可用)可用 逗号(逗号(,)区分或连接所有敏感信号;)区分或连接所有敏感信号;(3)可用通配符)可用通配符 * 省略形式给出所有敏感信息;省略形式给出所有敏感信息;注:试图通过选择性地列出敏感信号来改变逻辑设计是无效的。注:试图通过选择性地列出敏感信号来改变逻辑设计是无效的。第9页/共44页第九页,共45页。3块

8、语句块语句(yj)begin_ end 4case条件语句和条件语句和4种逻辑种逻辑(lu j)状态状态 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.2 4选选1多路选择器及其多路选择器及其case语句表述方式语句表述方式 第10页/共44页第十页,共45页。case语句使用(shyng)事项:case语句是测试表达式与另外一系列表达式分支是否语句是测试表达式与另外一系列表达式分支是否(sh fu)匹配的一个多路条件匹配的一个多路条件语句。语句。 Case语句(yj)进行逐位比较以求完全匹配(包括x和z)。 Default语句(yj)可选,

9、在没有任何条件成立时执行。此时如果未说明default,Verilog不执行任何动作。 多个default语句(yj)是非法的。重要内容:使用default语句是一个很好的编程习惯,特别是用于检测x和z。Casez和casex为case语句的变体,允许比较无关(dont-care)值。case表达式或case项中的任何位为无关值时,在比较过程中该位不予考虑。在casez语句中,? 和 z 被当作无关值。在casex语句中,?,z 和 x 被当作无关值。case , :赋值语句或空语句;:赋值语句或空语句; , :赋值语句或空语句;:赋值语句或空语句; default:赋值语句或空语句;:赋值语

10、句或空语句;case语法:语法:4.1 组合电路的Verilog描述 第11页/共44页第十一页,共45页。5并位操作和数字并位操作和数字(shz)表达表达 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 4.1.2 4选选1多路选择器及其多路选择器及其case语句语句(yj)表述方式表述方式 (1)B 二进制;二进制;O:八进制;:八进制;H:十六进制;:十六进制;D:十进制。(不区分大小):十进制。(不区分大小)(2)Verilog中只要标明了数制才能确定其二进制位数;中只要标明了数制才能确定其二进制位数;(3)Verilog-2001可定

11、义有符号二进制数;可定义有符号二进制数;(4b1010与与4sb1010为不同)为不同)第12页/共44页第十二页,共45页。4.1.3 4选选1多路选择器及其数据流描述多路选择器及其数据流描述(mio sh)方式方式 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 第13页/共44页第十三页,共45页。1按位逻辑按位逻辑(lu j)操作符操作符 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 4.1.3 4选选1多路选择器及其数据流描述多路选择器及其数据流描述(mio sh)方方式式 2等式操

12、作符等式操作符 第14页/共44页第十四页,共45页。3assign连续连续(linx)赋值语句赋值语句 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 4.1.3 4选选1多路选择器及其数据流描述多路选择器及其数据流描述(mio sh)方式方式 注:注:assign连续赋值语句中不允许有不同的数据赋给同一连续赋值语句中不允许有不同的数据赋给同一变量;(如下将出现错误)。变量;(如下将出现错误)。 第15页/共44页第十五页,共45页。4wire定义定义(dngy)网线型变量网线型变量 4.1 4.1 组合电路组合电路(dinl)(dinl)的

13、的VerilogVerilog描述描述 4.1.3 4选选1多路选择器及其数据流描述多路选择器及其数据流描述(mio sh)方方式式 (1)用用wire定义的网线型变量可以在任何类型的表达式或赋值语定义的网线型变量可以在任何类型的表达式或赋值语句中用作输入信号;句中用作输入信号; 第16页/共44页第十六页,共45页。4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描述描述 4.1.3 4选选1多路选择器及其数据流描述多路选择器及其数据流描述(mio sh)方式方式 module MUX41a(a,b,c,d,s1,s0,y);input a,b,c,d

14、;input s1,s0;output y;wire AT=s0? d:c;wire BT=s0? a:b;wire y=s1? AT:BT;endmodule 用用wirewire定义描述定义描述(mio sh)4(mio sh)4选选1 1语句语句 第17页/共44页第十七页,共45页。4.1.4 4选选1多路选择器及其多路选择器及其if语句描述语句描述(mio sh)方式方式4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 第18页/共44页第十八页,共45页。1if_ else条件条件(tiojin)语句语句 2过程过程(guchng)赋值语句赋

15、值语句 (1)阻塞)阻塞(zs)式赋值式赋值 (2)非阻塞式赋值)非阻塞式赋值 4.1 4.1 组合电路的组合电路的VerilogVerilog描述描述 4.1.4 4选选1多路选择器及其多路选择器及其if语句描述方式语句描述方式module MUX41a(a,b,c,d,s1,s0,y);input a,b,c,d;input s1,s0;output y;reg1:0 SEL;reg y;always (a,b,c,d,SEL)beginSEL=s1,s0;if(SEL=0)y=a;else if(SEL=1)y=b;else if(SEL=2)y=c;elsey=d;endendmodu

16、le l 用=作为阻塞式赋值语句; l 执行完毕立即更新数据;l 多条阻塞语句将阻塞后面语句;l 用=作为非阻塞式赋值语句; l 在块语句执行完毕后才更新数据;l 其他语句处于并行执行;第19页/共44页第十九页,共45页。4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) 1. 半加器描述半加器描述(mio sh) 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 第20页/共44页第二十页,共45页。4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.5 加法器及其加法器及其V

17、erilog描述描述(mio sh) module h_adder(a,b,so,co);input a,b;output so,co;assign so=ab;assign co=a & b;endmodule 1. 半加器描述半加器描述(mio sh) 第21页/共44页第二十一页,共45页。1. 半加器描述半加器描述(mio sh) 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) module h_adder(a,b,so,co);input a,b;output s

18、o,co;reg so,co;always (a,b) begin case (a,b)0: begin so=0;co=1b0; end/使用块语句1: begin so=1;co=1b0; end2: begin so=1;co=1b0; end3: begin so=0;co=1b1; enddefault: begin so=0;co=1b0; endendcaseendendmodule 第22页/共44页第二十二页,共45页。1. 半加器描述半加器描述(mio sh) 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.5 加法器及其加

19、法器及其Verilog描述描述(mio sh) module h_adder(a,b,so,co);input a,b;output so,co;assign co,so=a+b;endmodule第23页/共44页第二十三页,共45页。2. 全加器描述全加器描述(mio sh) 4.1 组合(zh)电路的Verilog描述 4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) 第24页/共44页第二十四页,共45页。2. 全加器顶层文件全加器顶层文件(wnjin)设计和例化语句设计和例化语句 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描

20、述描述 4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) module f_adder(ain,bin,cin,cout,sum);input ain,bin,cin;output cout,sum;wire e,d,f;h_adder u1(ain,bin,e,d); /位置关联h_adder u2(.a(e),.so(sum),.b(cin),.co(f);/端口关联or2a u3(.a(d),.b(f),.c(cout);endmodule第25页/共44页第二十五页,共45页。2. 全加器顶层文件全加器顶层文件(wnjin)设计和例化语句设计和例化语句 4.1 4

21、.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) h_adder u1(ain,bin,e,d); /位置关联h_adder u2(.a(e),.so(sum),.b(cin),.co(f);/端口关联or2a u3(.a(d),.b(f),.c(cout);第26页/共44页第二十六页,共45页。4. 8位加法器描述位加法器描述(mio sh) 4.1 4.1 组合电路组合电路(dinl)(dinl)的的VerilogVerilog描描述述 4.1.5 加法器及其加法器及其Verilog描述

22、描述(mio sh) module ADDER8B(A,B,CIN,COUT,DOUT);input 7:0 A,B;input CIN;output 7:0 DOUT;output COUT;wire 8:0 DATA;assign DATA=A+B+CIN;assign COUT=DATA8;assign DOUT=DATA7:0;endmodulemodule 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第2

23、7页/共44页第二十七页,共45页。3. 8位加法器描述位加法器描述(mio sh) 4.1 4.1 组合组合(zh)(zh)电路的电路的VerilogVerilog描述描述 4.1.5 加法器及其加法器及其Verilog描述描述(mio sh) 第28页/共44页第二十八页,共45页。4.2 4.2 时序模块时序模块(m kui)(m kui)及其及其VerilogVerilog表述表述 4.2.1 边沿触发边沿触发(chf)型触发型触发(chf)器及其器及其Verilog表述表述 module DFF1(CLK,D,Q);input CLK,D;output Q;reg Q;always

24、(posedge CLK)Q=D;endmodule 第29页/共44页第二十九页,共45页。4.2.2 电平电平(din pn)触发型锁存器及其触发型锁存器及其Verilog表述表述 4.2 4.2 时序时序(sh x)(sh x)模块及其模块及其VerilogVerilog表述表述 module LATCH1(CLK,D,Q);input CLK,D;output Q;reg Q;always (D,CLK)if(CLK)Q=D; else Q=Q;endmodule第30页/共44页第三十页,共45页。4.2.3 含异步复位含异步复位(f wi)/时钟使能型触发器及其时钟使能型触发器及其

25、Verilog表述表述 4.2 4.2 时序时序(sh x)(sh x)模块及其模块及其VerilogVerilog表述表述 module DFF2(CLK,D,Q,RST,EN); input CLK,D,RST,EN; output Q; reg Q; always (posedge CLK,negedge RST) beginif(!RST) Q=0;else if(EN) Q=D;endendmodule 第31页/共44页第三十一页,共45页。4.2.4 同步复位同步复位(f wi)型触发器及其型触发器及其Verilog表述表述 4.2 4.2 时序时序(sh x)(sh x)模块及

26、其模块及其VerilogVerilog表述表述 module DFF2(CLK,D,Q,RST);input CLK,D,RST;output Q;reg Q;always (posedge CLK)beginif(RST=1)Q=0;else if(RST=0)Q=D;elseQ=Q;endendmodule 第32页/共44页第三十二页,共45页。4.2.5 异步复位异步复位(f wi)型锁存器及其型锁存器及其Verilog表述表述 4.2 4.2 时序模块时序模块(m kui)(m kui)及其及其VerilogVerilog表述表述 第33页/共44页第三十三页,共45页。4.2.5

27、异步复位异步复位(f wi)型锁存器及其型锁存器及其Verilog表表述述 4.2 4.2 时序时序(sh x)(sh x)模块及其模块及其VerilogVerilog表表述述 module LATCH3(CLK,D,Q,RST); input CLK,D,RST; output Q; assign Q=(!RST) ? 0:(CLK ? D:Q);endmodulemodule LATCH4(CLK,D,Q,RST);input CLK,D,RST;output Q;reg Q;always(D,CLK,RST)if(!RST)Q=0;else if(CLK) Q=D;endmodule 第

28、34页/共44页第三十四页,共45页。4.2.6 Verilog的时钟过程表述的时钟过程表述(bio sh)的特点的特点和规律和规律 4.2 4.2 时序模块时序模块(m kui)(m kui)及其及其VerilogVerilog表述表述 1、如果将某信号、如果将某信号A定义定义(dngy)为边沿敏感时钟信号,则必须在敏感信号表中给出对应为边沿敏感时钟信号,则必须在敏感信号表中给出对应的表述;但在的表述;但在always 过程结构中不能在出现信号过程结构中不能在出现信号A;2、如果将某信号定义为对应于时钟的电平敏感的异步控制信号,则除了在敏感信号表、如果将某信号定义为对应于时钟的电平敏感的异步

29、控制信号,则除了在敏感信号表中给出对应的表述外;在中给出对应的表述外;在always 过程结构中必须明示信号的逻辑行为;过程结构中必须明示信号的逻辑行为;、如果将某信号定义为对应于时钟的同步控制信号,则绝不能以任何形式出现、如果将某信号定义为对应于时钟的同步控制信号,则绝不能以任何形式出现在敏感信号表中;在敏感信号表中;、敏感信号表中一旦出现边沿表述形式,则不允许出现其他非敏感信号的、敏感信号表中一旦出现边沿表述形式,则不允许出现其他非敏感信号的表述;表述;第35页/共44页第三十五页,共45页。.2.7 异步时序异步时序(sh x)模块的模块的Verilog表述表述 4.2 4.2 时序时序

30、(sh x)(sh x)模块及其模块及其VerilogVerilog表述表述 module AMOD(D,A,CLK,Q);input D,A,CLK;output Q;reg Q,Q1;always (posedge CLK)beginQ1=(A|Q);endalways (posedge Q1) begin Q=D;endendmodule第36页/共44页第三十六页,共45页。.3.1 4位二进制计数器及其位二进制计数器及其Verilog表述表述(bio sh) 4.3 4.3 二进制计数器及其二进制计数器及其VerilogVerilog设计设计(shj) (shj) module CNT4(CLK,Q);input CLK;output3:0 Q;reg3:

温馨提示

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

评论

0/150

提交评论