Verilog HDL数字设计初步.ppt
《Verilog HDL数字设计初步.ppt》由会员分享,可在线阅读,更多相关《Verilog HDL数字设计初步.ppt(35页珍藏版)》请在三一办公上搜索。
1、现代数字系统设计 基于Verilog HDL,主讲:胡文静()专业:电子信息工程,第五章 Verilog HDL语言,Important Points,Verilog HDL模块的结构Verilog HDL语言要素数据类型、运算符常量、变量寄存器和存储器,Verilog HDL发展历史,什么是Verilog HDL?Verilog是一种硬件描述语言,可以在算法级、门级到开关级的多种抽象层次上对数字系统建模语法结构上,继承和借鉴了许多C语言特性版本演变1983年,Gateway Automation公司创建(Philip Moorby)19841986年,第一个Verilog HDL仿真器(Mo
2、orby)1987年,Synopsys公司将Verilog作为综合工具的输入1989年,Cadence收购Gateway,于1990年公开发布Verilog HDLIEEE 1364-1995IEEE 1076-2001IEEE 1076-2005,Top-down结构化设计思想,一个系统由总设计师先进行系统描述,将系统划分为若干模块,编写模块模型(一般为行为级),仿真验证后,再把这些模块分配给下一层的设计师,由他们完成模块的具体设计,而总设计师负责各模块的接口定义,Verilog HDL建模的概念,Verilog建模与Top-Down结构化层次设计思想十分吻合Verilog采用模块(Modu
3、le)的概念来描述一个基本的功能块模块(Module)通过接口(输入、输出或双向)被更高层模块调用,但隐藏内部实现细节,便于修改与维护与数字电路对应关系数字电路归结为“线”与“器件”线:器件之间的物理连接,对应Verilog的wire等器件:完成特定逻辑功能的物理实体,对应Verilog的moduleVerilog建模实质就是如何利用HDL语言对数字电路的线和器件以及相互关系进行描述的过程,Top-Down结构化设计原则,底层的模块应适合表达对于原理图方式设计输入,可以分解到门、触发器和宏单元级对于HDL设计输入,可以分解到算法级应有利于提高模块设计的复用率(共享)相似的功能应设计成共享的基本
4、模块,供高级模块调用,减少模块数量、改善结构化特性模块接口信号线力求最少复杂的接口信号会增加综合布局布线的复杂度,增加设计的错误风险在达到相同逻辑功能的前提下,以最少的信号线进行信号与数据交换为最佳方案模块划分应力求结构均称同一层模块之间的设计复杂度、资源消耗等不能有太大的悬殊模块设计通用性好,易于移植模块的设计应与器件无关,便于升级与移植,Verilog模块的定义,语法:module(端口列表);endmodule注解:module关键字声明模块开始是模块惟一的标识符用于与其他模块的连接(相当于器件的引脚)定义数据对象的类型(信号、端口等)定义模块(器件)的逻辑功能endmodule关键字标
5、识模块结束,模块定义:一个简单的例子,4位全加器Verilog代码module adder4(a,b,cin,sum,cout);input 3:0 a,b;/加数,位宽4位,输入input cin;/低位进位,输入output 3:0 sum;/和,输出output cout;/高位进位,输出assign cout,sum=a+b+cin;/逻辑功能定义endmodule说明:模块名称:adder4端口列表:a,b,cin,sum,cout端口定义:input 3:0 a,b;output 3:0 sum;input cin;功能描述:assign cout,sum=a+b+cin;,综合与
6、仿真,4位全加器Quartus II综合结果,综合与仿真,4位全加器Quartus II综合结果,综合与仿真,adder4仿真测试向量文件timescale 1ns/1nsmodule adder4_tb;wire 3:0 sum;reg 3:0 a;reg cin;reg 3:0 b;wire cout;integer i,j;adder4 DUT(.sum(sum),.a(a),.cin(cin),.b(b),.cout(cout);,always#5 cin=!cin;initial begin a=0;b=0;cin=0;for(i=1;i16;i=i+1)#10 a=i;endini
7、tial begin for(j=1;j16;j=j+1)#10 b=j;endinitial begin$monitor($time,%d+%d+%b=%b,%d,a,b,cin,cout,sum);#200$stop;end endmodule,Modelsim功能仿真结果,Verilog模块基本结构,四个部分:模块声明、端口定义、信号说明、逻辑功能描述。1.模块声明包括模块名称、输入、输出端口列表语法:module 模块名称(端口1,端口2,端口n);/模块描述endmodule2.模块端口定义说明模块端口的输入、输出类别语法:input n-1:0 端口1,端口2,端口n;/输入端口o
8、utput n-1:0 端口1,端口2,端口n;/输出端口inout n-1:0 端口1,端口2,端口n;/双向端口信号位宽n-1:0若不指定,则缺省位1位。,Verilog模块基本结构,3.信号类型说明对模块的所有信号(端口、节点信号)进行数据类型说明;Verilog提供了各种信号数据类型,用于模拟实际电路中的物理连接与物理实体(详见后续章节);语法:信号类型 n-1:0 信号名称;举例:reg cout;/定义cout信号为寄存器类型,位宽位1位;reg 3:0 sum;/定义sum信号位寄存器类型,位宽为4位;wire A,B,C,D;/定义A,B,C,D四个信号为wire(连线)型,默
9、认位宽位1位。缺省:未指定数据类型的信号,缺省数据类型为wire型。,Verilog模块基本结构,4.逻辑功能描述对模块的逻辑功能进行定义,是模块的核心部分;逻辑功能描述形式上多种多样,包括调用“函数(function)”和“任务(task)”。基本描述方法:(1)assign持续赋值,一般用于组合逻辑描述如:assign a=c end,Verilog模块的模板,module();output 输出端口列表;/输出端口声明input 输入端口列表;/输入端口声明/*定义数据,信号的类型,函数声明,用关键字wire,reg,task,funtion等定义*/wire 信号名;reg 信号名;/
10、逻辑功能定义/用assign语句定义逻辑功能assign=;/用always块描述逻辑功能always()begin/过程赋值/if-else,case语句/while,repeat,for循环语句/task,function调用end,/调用其他模块();/门元件例化门元件关键字();endmodule【小测试】利用Verilog描述一个42的乘法器module mult42(a,b,re);input 3:0 a;input 1:0 b;output 5:0 re;assign re=a*b;endmodule,Verilog语言要素,注释语句(Comments)用于提高程序可读性,帮助程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog HDL数字设计初步 HDL 数字 设计 初步

链接地址:https://www.31ppt.com/p-5452046.html