Verilog设计初步与入门.ppt_第1页
Verilog设计初步与入门.ppt_第2页
Verilog设计初步与入门.ppt_第3页
Verilog设计初步与入门.ppt_第4页
Verilog设计初步与入门.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

可编程逻辑器件与EDA,第四讲 Verilog设计入门,4.1 组合电路的Verilog描述,4.1.1 2选1多路选择器及其Verilog描述,4.1.1 2选1多路选择器及其Verilog描述,4.1 组合电路的Verilog描述,1模块表达,2端口语句、端口信号名和端口模式,4.1 组合电路的Verilog描述,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赋值语句和条件操作符,4关键字,5标识符,6规范的程序书写格式,7文件取名和存盘,4.1 组合电路的Verilog描述,4.1.1 2选1多路选择器及其Verilog描述,module MUX21a(a,b,s,y); input a,b,s; output y; assign y=(s? a:b); endmodule,4.1.2 4选1多路选择器及其case语句表述方式,4.1 组合电路的Verilog描述,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) begin case (s1,s0) 2b00 : y=a; 2b01 : y=b; 2b10 : y=c; 2b11 : y=d; default: y=a; endcase end endmodule,4.1.2 4选1多路选择器及其case语句表述方式,4.1 组合电路的Verilog描述,1reg型变量定义,4.1 组合电路的Verilog描述,4.1.2 4选1多路选择器及其case语句表述方式,(1)Verilog中最常用的两种变量:寄存器型和网线型,(2)模块中涉及的信息必须定义其类型;,(3)默认的变量类型为网线型(wire);,(4)过程语句中被赋值的变量必须为寄存器型;,选择正确的数据类型,module top; wire y; reg a, b; DUT u1 (y, a, b) ; initial begin a = 0; b = 0; #5 a = 1; end endmodule,module DUT (Y, A, B); output Y; input A, B; wire Y, A, B; and (Y, A, B) ; endmodule,输入端口可以由net/register驱动,但输入端口只能是net,输出端口可以是net/register类型,输出端口只能驱动net,在过程块中只能给register类型赋值,若Y,A,B说明为reg则会产生错误。,in1,in2,O,A,B,Y,双向端口输入/输出只能是net类型,4.1 组合电路的Verilog描述,2过程语句,4.1 组合电路的Verilog描述,4.1.2 4选1多路选择器及其case语句表述方式,(1)可用 or 连接所有敏感信号;,(2)可用 逗号(,)区分或连接所有敏感信号;,(3)可用通配符 * 省略形式给出所有敏感信息;,注:试图通过选择性地列出敏感信号来改变逻辑设计是无效的。,3块语句begin_ end,4case条件语句和4种逻辑状态,4.1 组合电路的Verilog描述,4.1.2 4选1多路选择器及其case语句表述方式,case语句使用事项:,case语句是测试表达式与另外一系列表达式分支是否匹配的一个多路条件语句。,Case语句进行逐位比较以求完全匹配(包括x和z)。 Default语句可选,在没有任何条件成立时执行。此时如果未说明default,Verilog不执行任何动作。 多个default语句是非法的。,重要内容: 使用default语句是一个很好的编程习惯,特别是用于检测x和z。 Casez和casex为case语句的变体,允许比较无关(dont-care)值。 case表达式或case项中的任何位为无关值时,在比较过程中该位不予考虑。 在casez语句中,? 和 z 被当作无关值。 在casex语句中,?,z 和 x 被当作无关值。,case , :赋值语句或空语句; , :赋值语句或空语句; default:赋值语句或空语句;,case语法:,4.1 组合电路的Verilog描述,5并位操作和数字表达,4.1 组合电路的Verilog描述,4.1.2 4选1多路选择器及其case语句表述方式,(1)B 二进制;O:八进制;H:十六进制;D:十进制。(不区分大小),(2)Verilog中只要标明了数制才能确定其二进制位数;,(3)Verilog-2001可定义有符号二进制数;(4b1010与4sb1010为不同),4.1.3 4选1多路选择器及其数据流描述方式,4.1 组合电路的Verilog描述,1按位逻辑操作符,4.1 组合电路的Verilog描述,4.1.3 4选1多路选择器及其数据流描述方式,2等式操作符,3assign连续赋值语句,4.1 组合电路的Verilog描述,4.1.3 4选1多路选择器及其数据流描述方式,注:assign连续赋值语句中不允许有不同的数据赋给同一变量;(如下将出现错误)。,4wire定义网线型变量,4.1 组合电路的Verilog描述,4.1.3 4选1多路选择器及其数据流描述方式,(1)用wire定义的网线型变量可以在任何类型的表达式或赋值语句中用作输入信号;,4.1 组合电路的Verilog描述,4.1.3 4选1多路选择器及其数据流描述方式,module MUX41a(a,b,c,d,s1,s0,y); input a,b,c,d; input s1,s0; output y; wire AT=s0? d:c; wire BT=s0? a:b; wire y=s1? AT:BT; endmodule,用wire定义描述4选1语句,4.1.4 4选1多路选择器及其if语句描述方式,4.1 组合电路的Verilog描述,1if_ else条件语句,2过程赋值语句,(1)阻塞式赋值,(2)非阻塞式赋值,4.1 组合电路的Verilog描述,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) begin SEL=s1,s0; if(SEL=0) y=a; else if(SEL=1) y=b; else if(SEL=2) y=c; else y=d; end endmodule,用=作为阻塞式赋值语句;,执行完毕立即更新数据;,多条阻塞语句将阻塞后面语句;,用=作为非阻塞式赋值语句;,在块语句执行完毕后才更新数据;,其他语句处于并行执行;,4.1.5 加法器及其Verilog描述,1. 半加器描述,4.1 组合电路的Verilog描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,module h_adder(a,b,so,co); input a,b; output so,co; assign so=ab; assign co=a endmodule,1. 半加器描述,1. 半加器描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,module h_adder(a,b,so,co); input a,b; output so,co; reg so,co; always (a,b) begin case (a,b) 0: begin so=0;co=1b0; end/使用块语句 1: begin so=1;co=1b0; end 2: begin so=1;co=1b0; end 3: begin so=0;co=1b1; end default: begin so=0;co=1b0; end endcase end endmodule,1. 半加器描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,module h_adder(a,b,so,co); input a,b; output so,co; assign co,so=a+b; endmodule,2. 全加器描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,2. 全加器顶层文件设计和例化语句,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,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,2. 全加器顶层文件设计和例化语句,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,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);,4. 8位加法器描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,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; endmodule,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. 8位加法器描述,4.1 组合电路的Verilog描述,4.1.5 加法器及其Verilog描述,4.2 时序模块及其Verilog表述,4.2.1 边沿触发型触发器及其Verilog表述,module DFF1(CLK,D,Q); input CLK,D; output Q; reg Q; always (posedge CLK) Q=D; endmodule,4.2.2 电平触发型锁存器及其Verilog表述,4.2 时序模块及其Verilog表述,module LATCH1(CLK,D,Q); input CLK,D; output Q; reg Q; always (D,CLK) if(CLK) Q=D; else Q=Q; endmodule,4.2.3 含异步复位/时钟使能型触发器及其Verilog表述,4.2 时序模块及其Verilog表述,module DFF2(CLK,D,Q,RST,EN); input CLK,D,RST,EN; output Q; reg Q; always (posedge CLK,negedge RST) begin if(!RST) Q=0; else if(EN) Q=D; end endmodule,4.2.4 同步复位型触发器及其Verilog表述,4.2 时序模块及其Verilog表述,module DFF2(CLK,D,Q,RST); input CLK,D,RST; output Q; reg Q; always (posedge CLK) begin if(RST=1) Q=0; else if(RST=0) Q=D; else Q=Q; end endmodule,4.2.5 异步复位型锁存器及其Verilog表述,4.2 时序模块及其Verilog表述,4.2.5 异步复位型锁存器及其Verilog表述,4.2 时序模块及其Verilog表述,module LATCH3(CLK,D,Q,RST); input CLK,D,RST; output Q; assign Q=(!RST) ? 0:(CLK ? D:Q); endmodule,module 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,4.2.6 Verilog的时钟过程表述的特点和规律,4.2 时序模块及其Verilog表述,1、如果将某信号A定义为边沿敏感时钟信号,则必须在敏感信号表中给出对应的表述;但在always 过程结构中不能在出现信号A;,2、如果将某信号定义为对应于时钟的电平敏感的异步控制信号,则除了在敏感信号表中给出对应的表述外;在always 过程结构中必须明示信号的逻辑行为;,、如果将某信号定义为对应于时钟的同步控制信号,则绝不能以任何形式出现在敏感信号表中;,、敏感信号表中一旦出现边沿表述形式,则不允许出现其他非敏感信号的表述;,.2.7 异步时序模块的Verilog表述,4.2

温馨提示

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

评论

0/150

提交评论