Verilog语言设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Verilog语言设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog 语言 设计 课件
- 资源描述:
-
1、2022-6-2计算机科学与技术学院1Verilog语言语言 设计设计 参考教材:Verilog 数字系统设计教程 夏宇闻编著计算机科学与技术学院22022-6-2n 课程的基本描述课程名称:Verilog语言设计课程编号:0401CA0参考教材:夏宇闻. Verilog数字系统设计教程. 航空航天出版社,2008总 学 时:32学时 理论学时:24学时实验学时:8学时学 分:2学分 开课学期:第四学期前导课程:数字逻辑、C语言程序设计后续课程:数字系统设计、 SOPC原理及应用计算机科学与技术学院32022-6-2Verilog 语言设计 第第1 1章章 Verilog Verilog 的基
2、本知识的基本知识第第2 2章章 Verilog Verilog 的结构、数据类型、变量和基本运算符号的结构、数据类型、变量和基本运算符号第第3 3章章 Verilog Verilog 语句语句第第4 4章章 Verilog HDLVerilog HDL的建模方式的建模方式第第5 5章章 有限状态机有限状态机 FSMFSM第第6 6章章 Verilog Verilog 综合设计与仿真综合设计与仿真计算机科学与技术学院42022-6-2第1章Verilog的基本知识1. 硬件描述语言 Verilog HDL2. 采用Verilog的设计流程3. 简单的Verilog HDL例子4. Verilog
3、用于模块的测试计算机科学与技术学院52022-6-2 硬件描述语言(英文: Hardware Description Language ,简称: HDL )是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化( EDA )工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路 ASIC 或现场可编程门阵列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路布线结构。1
4、.1 硬件描述语言 Verilog HDL计算机科学与技术学院62022-6-2nVerilog HDL语言是基于C语言发展起来的硬件描述语言,于1983年由GDA公司首创。n1995年Verilog HDL语言成为IEEE标准,编号:IEEE Std1364-1995。nVerilog HDL语言具有简捷、高效、易学易用、功能强大等优点,逐步为设计人员所接收和喜爱。nVerilog语言支持的EDA工具较多,适合于寄存器传输级(RTL)和门电路级的描述,其综合过程比VHDL简单,但在高级描述方面不如VHDL。nVHDL比Verilog HDL早几年成为I EEE标准;nVHDL语法/结构比较严
5、格,因而编写出的模块风格比较清晰;nVHDL比较适合由较多的设计人员合作完成的特大型项目。1.1 硬件描述语言 Verilog HDL计算机科学与技术学院72022-6-2 Verilog HDL 公开发表 CADENCE公司 购买Verilog版权 1990 1989 1980s Verilog-XL 诞生 模拟和数字都适用的Verilog标准公开发表 VerilogIEEE1364-1995 标准公开发表 有关VerilogHDL 的全部权利都移交给 OVI ( Open Verilog International) 1995 2001 1999 Verilog IEEE1364-2001
6、 标准公开发表 1990 Verilog HDL的发展历史1.1 硬件描述语言 Verilog HDL计算机科学与技术学院82022-6-21.1 硬件描述语言 Verilog HDL计算机科学与技术学院92022-6-2nVerilog HDL模型可以是实际电路的不同级别的抽象。抽象级别可分为五级:系统级(system level): 用高级语言结构(如用高级语言结构(如casecase语句)实语句)实现的设计模块外部性能的模型;现的设计模块外部性能的模型;算法级(algorithmic level): 用高级语言结构实现的设计算用高级语言结构实现的设计算法模型(写出逻辑表达式);法模型(写
7、出逻辑表达式);RTL级(register transfer level): 描述数据在寄存器之间描述数据在寄存器之间流动和如何处理这些数据的模型;流动和如何处理这些数据的模型;门级(gate level): 描述逻辑门(如与门、非门、或门、与描述逻辑门(如与门、非门、或门、与非门、三态门等)以及逻辑门之间连接的模型;非门、三态门等)以及逻辑门之间连接的模型;开关级(switch level): 描述器件中三极管和储存节点及其描述器件中三极管和储存节点及其之间连接的模型。之间连接的模型。1.1 硬件描述语言 Verilog HDL计算机科学与技术学院102022-6-2语法结构上的主要特点:形
8、式化地表示电路的行为和结构;借用C语言的结构和语句;可在多个层次上对所设计的系统加以描述,语言对设计规模不加任何限制;具有混合建模能力:一个设计中的各子模块可用不同级别的抽象模型来描述;基本逻辑门、开关级结构模型均内置于语言中,可直接调用;易创建用户定义原语(UDP,User Designed Primitive) 。易学易用,功能强.1.1 硬件描述语言 Verilog HDL计算机科学与技术学院112022-6-2传统的设计方法传统的设计方法-电路原理图输入法电路原理图输入法1.1 硬件描述语言 Verilog HDL计算机科学与技术学院122022-6-2 采用Verilog HDL输入
9、法时,由于Verilog HDL的标准化,可以很容易把完成的设计进行移植到不同厂家的不同芯片。采用Verilog HDL输入法最大的优点是其与工艺无关性。 Verilog 的标准化的标准化软核、固核和硬核软核、固核和硬核 IP核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块。从IP核的提供方式上,通常将其分为软核、固核和硬核这3类。软核(软核(Soft CoreSoft Core):):用Verilog HDL (Hardware Description Language) 描述的功能块。经过验证的、可综合的HDL模型。固核(固核(Firm CoreFirm Co
10、re):):完成了综合的功能块。有较大的设计深度,以网表文件的形式提交客户使用。硬核(硬核(Hard CoreHard Core):):它提供设计的最终阶段产品:掩模。1.1 硬件描述语言 Verilog HDL计算机科学与技术学院132022-6-2系统级设计模块A模块B模块C模块A1模块A2模块A3模块B1模块B2模块B3模块C1模块C2Top-Down自顶向下的设计概念自顶向下的设计概念 1.2 采用Verilog的设计流程计算机科学与技术学院142022-6-2电路图设计HDL设计电路功能仿真HDL功能仿真逻辑综合、时序验证优化、布局布线布线后门级仿真工艺文件电路制造版图或FPGA 码
11、流文件设计要求实现1.2 采用Verilog的设计流程计算机科学与技术学院152022-6-2例 8位全加器module adder8 ( cout,sum,a,b,cin ); output cout; / 输出端口声明 output 7:0 sum; input 7:0 a,b; / 输入端口声明 input cin; assign cout,sum=a+b+cin;endmodule assign语句:无论右边表达式操作数何时发生变化,右边表达式都会重新计算,并且在指定的延迟后给左边表达式赋值。I/O说明说明端口定义端口定义功能描述功能描述模块名(文件名)整个整个Verilog HDLV
12、erilog HDL程序嵌套在程序嵌套在modulemodule和和endmoduleendmodule声明语句中。声明语句中。每条语句相对每条语句相对modulemodule和和endmoduleendmodule最好缩进最好缩进2 2格或格或4 4格!格!/ / 表示注释部分,一般只占据表示注释部分,一般只占据一一行。对编译不起作用!行。对编译不起作用!单行注释符1.3 简单的Verilog HDL例子计算机科学与技术学院162022-6-2 例 8位计数器module counter8 ( out,cout,data,load, cin,clk ); output 7:0 out; ou
13、tput cout; input 7:0 data; input load, cin,clk ; reg7:0 out; always (posedge clk) begin if(load) out = data; / 同步预置数据 else out = out + 1 + cin; / 加1计数 end assign cout = &out & cin; /若out为8hFF,cin为1,则cout为1endmoduleI/O说明说明端口定义端口定义功能描述功能描述信号类型声明信号类型声明缩减运算符位运算符1.3 简单的Verilog HDL例子计算机科学与技术学院172022-6-2 例
14、 2位比较器module compare2 ( equal,a,b); output equal; input 1:0 a,b; assign equal = ( a = = b ) ? 1:0; / * 如果a等于b,则equal 为1,否则为0 * /endmodule连续赋值语句连续赋值语句条件运算符条件运算符/ / * * * * / /内表示注释部分,一般可占据内表示注释部分,一般可占据多多行。行。对编译不起作用!对编译不起作用!多行注释符多行注释符1.3 简单的Verilog HDL例子计算机科学与技术学院182022-6-2 Verilog 用于模块的测试Verilog 还可以用
15、于描述变化的测试信号。描述测试信号的变化和测试过程的模块叫做测试平台(Testbench或Testfixture),它可以对上面介绍的电路模块(无论是行为的或结构的)进行动态的全面测试。通过观测被测试模块的输出信号是否符合要求,可以调试和验证逻辑系统的设计和结构正确与否,并发现问题及时修改。1.4 Verilog HDL用于模块的测试计算机科学与技术学院192022-6-2Verilog模块测试原理图1.4 Verilog HDL用于模块的测试计算机科学与技术学院202022-6-2例 测试include “muxtwo.v”module t; reg ain,bin,select; reg
16、clock; wire outw;initial begin ain=0;bin=0;select=0;clock=0;endalways #50 clock=clock;always(posedge clock) begin ain= $random%2; #3 bin= $random%2; endalways #10000 select=select;muxtwo m(.out(outw),.a(ain),.b(bin),.sl(select);endmodule1.4 Verilog HDL用于模块的测试计算机科学与技术学院212022-6-21.Verilog HDL模块的结构2.数
17、据类型、变量3.基本运算符号及表达式4.关键字5.标识符第2章 Verilog的结构、数据类型、变量和基本运算符号计算机科学与技术学院222022-6-2nVerilog的基本设计单元是“模块 (block) ” 。nVerilog 模块的结构由在module和endmodule关键词之间的4个主要部分组成:module block(a,b,c,d); input a,b;output c,d;wire c;wire d;assign c=a|b;assign d=a&b;endmoduleI/O说明说明端口定义端口定义逻辑功能描述逻辑功能描述信号类型声明信号类型声明12342.1 Veril
18、og HDL模块的结构abcd计算机科学与技术学院232022-6-22.1.1模块的端口定义格式: module 模块名(口模块名(口1,口,口2, ) ;例:例: module mytri (out ,in , enable ); output out; input in, enable; assign out= enable ? In : bz;endmodule调用:调用:nmytri tri_inst(sout,sin,ena); nmytri tri_inst(.out(sout),enable(ena ),.in(sin);2.1 Verilog HDL模块的结构计算机科学与技术
19、学院242022-6-22.12 I/O说明例如:input k1,k2,in0; input 7:0 data; output 3:0 out; inout 15:0 db;2.1 Verilog HDL模块的结构例如:reg2:0 a; wire b, c, d ;2.13 信号类型声明信号类型声明计算机科学与技术学院252022-6-2(1)用assign 语句 assign x = ( b & c );连续赋值语句连续赋值语句常用于描述组合组合逻辑门元件例化门元件例化模块元件例化模块元件例化例化元件名门元件关键字(2 2)用元件例化(用元件例化(instantiate)and myan
20、d3( f,a,b,c);v 注注1 1:元件例化即是调用:元件例化即是调用Verilog HDLVerilog HDL提供的元件;提供的元件;v 注注2 2:元件例化包括:元件例化包括门门元件例化和元件例化和模块模块元件例化;元件例化;v 注注3 3:每个实例元件的名字必须:每个实例元件的名字必须唯一唯一!以避免与其!以避免与其它调用元件的实例相混淆。它调用元件的实例相混淆。v 注注4 4:例化元件名也可以省略!:例化元件名也可以省略!2.1 Verilog HDL模块的结构2.1.4逻辑功能描述逻辑功能描述功能定义(有3种方法实现逻辑功能)计算机科学与技术学院262022-6-2(3)用
21、“always” 块语句 always (posedge clk) / 每当时钟上升沿到来时执行一遍块内语句 begin if(load) out = data; / 同步预置数据 else out = data + 1 + cin; / 加1计数 end结构说明语句结构说明语句v注注1 1:“alwaysalways” 块语句常用于描述块语句常用于描述时序时序逻辑,也逻辑,也可描述可描述组合组合逻辑。逻辑。v注注2 2:“alwaysalways” 块可用多种手段来表达逻辑关系块可用多种手段来表达逻辑关系,如用,如用if-elseif-else语句或语句或casecase语句。语句。v注注3
22、 3: “alwaysalways” 块语句与块语句与assignassign语句是并发执行语句是并发执行的,的, assignassign语句一定要放在语句一定要放在“alwaysalways” 块语句之外块语句之外!2.1 Verilog HDL模块的结构计算机科学与技术学院272022-6-2数据类型n数据类型是用来表示数字电路中的数据存储和传送单元。nVerilog HDL中共有19种数据类型;n其中4个最基本的数据类型为:integerinteger型型parameterparameter型型regreg型型wirewire型型 其 它 数 据 类 型 :其 它 数 据 类 型 :l
23、arge型、medium型、 scalared型、 small型、time型、tri型、tri0型、tri1型、triand型、trior型、trireg型、vectored型、wand型、wor型等2.2数据类型及其常量和变量计算机科学与技术学院282022-6-22.2.12.2.1常量常量 在程序运行过程中,其值不能被改变的量,称为在程序运行过程中,其值不能被改变的量,称为常量常量。数字数字(包括整数,x和z值,负数)parameterparameter常量常量(或称符号常量)2.2数据类型及其常量和变量计算机科学与技术学院292022-6-2整常数的3种表达方式:表 达 方 式说 明
24、举 例 完整的表达方式完整的表达方式8b11000101或或8 hc5 缺省位宽,则位宽由机器缺省位宽,则位宽由机器系统决定,至少系统决定,至少32位位hc5缺省进制为十进制,位宽缺省进制为十进制,位宽默认为默认为32位位1971.1.数字数字(1 1)整数型常量整数型常量(即(即整常数整常数)的)的4 4种进制表示形式:种进制表示形式:二进制整数(b或B);十进制整数(d或D);十六进制整数(h或H);八进制整数(o或O)。v注:这里位宽指对应二进制数的宽度。注:这里位宽指对应二进制数的宽度。2.2数据类型及其常量和变量计算机科学与技术学院302022-6-2(2)x和z值x表示不定值,z表
25、示高阻值;8b1001xxxx或8 h9x8b1010zzzz或8 haz每个字符代表的二进制数的宽度取决于所用的进制;每个字符代表的二进制数的宽度取决于所用的进制;当用二进制表示时,已标明位宽的数若用当用二进制表示时,已标明位宽的数若用x x或或z z表示某些位,则只有在表示某些位,则只有在最左边最左边的的x x或或z z具有具有扩展性扩展性!为清晰可见,最好直接写出每一位的值!为清晰可见,最好直接写出每一位的值! 例8bzx = 8bzzzz_zzzx 例8b1x = 8b0000_001x“?”是是z z的另一种表示符号,建议在的另一种表示符号,建议在casecase语句中使用语句中使用
展开阅读全文