Verilog_HDL硬件描述语言详细教程课件.ppt
《Verilog_HDL硬件描述语言详细教程课件.ppt》由会员分享,可在线阅读,更多相关《Verilog_HDL硬件描述语言详细教程课件.ppt(469页珍藏版)》请在三一办公上搜索。
1、2023/3/31,南通大学电子信息学院,1,硬件描述语言,南通大学电子信息学院,2,2023/3/31,第一部分 Verilog HDL入门,南通大学电子信息学院,3,2023/3/31,1.1 数字电子系统CAD技术的发展,三个阶段:(1)20世纪60年代80年代初期 CAD(Computer Aided Design)阶段(2)20世纪80年代初期90年代初期 CAE(Computer Aided Engineering)阶段(3)20世纪90年代以来 EDA(Electronic Design Automation)阶段,第1章Verilog复杂数字设计综述,南通大学电子信息学院,4,
2、2023/3/31,数字系统EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言(Hardware Description Language)完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,提高了电路设计效率和可行性,减轻了设计者劳动强度。20世纪90年代以来,在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。可编程逻辑器件(如CPLD、FPGA)的应用已得到普及。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计
3、那样方便快捷。,南通大学电子信息学院,5,2023/3/31,1.2 硬件描述语言Verilog HDL,1.2.1 什么是Verilog HDL Verilog HDL 是硬件描述语言的一种,它是目前应用最广泛的硬件描述语言之一,用于数字系统的设计。设计者用它进行数字逻辑系统的仿真模拟、时序分析、逻辑综合。,南通大学电子信息学院,6,2023/3/31,1.2.2 Verilog HDL的发展历史,1989Cadence 公司购买 Verilog HDL的版权,1990Verilog HDL 公开发表,1980s Verilog-XL 诞生,1990有关Verilog HDL的全部权利都移交
4、给OVI(Open Verilog International)组织,1995Verilog IEEE1364标准公开发表,1999模拟和数字都适用的 Verilog 标准公开发表,2001Verilog IEEE1364-2001标准公开发表,Verilog IEEE1364-2005,南通大学电子信息学院,7,2023/3/31,1.2.3 Verilog HDL的优点 Verilog HDL是一种通用的硬件描述语言,易学易用。具有C语言编程经验的设计者很容易学习和掌握。Verilog HDL允许在同一个电路模型内进行不同抽象层次的描述。设计者可以从开关、门级、RTL和行为等各个层次对电路
5、模型进行定义。Verilog HDL是在全球最大的EDA供应商Cadence公司的扶持下针对EDA工具开发的HDL语言。绝大多数流行的综合工具都支持Verilog HDL,这是Verilog HDL成为设计者的首选语言的重要原因之一。Verilog HDL的编程风格简洁明了,高效便捷。所有的制造厂商提供用于Verilog HDL综合之后的逻辑仿真的元件库,使用Verilog HDL进行设计,即可在更广泛的范围内选择委托制造的厂商。在ASIC设计领域,Verilog HDL占有明显的优势,南通大学电子信息学院,8,2023/3/31,1.3复杂数字系统的设计方法,1.3.1 复杂数字逻辑系统嵌入
6、式微处理机系统数字信号处理系统高速并行计算逻辑 高速通信协议电路高速编码/解码、加密/解密电路复杂的多功能智能接口门逻辑总数超过几万门达到几百甚至达几千万门的数字系统,南通大学电子信息学院,9,2023/3/31,1.3.2 传统的设计方法,查用器件手册;选用合适的微处理器和电路芯片;设计面包板和线路板;调试;定型;,设计复杂的数字系统(几十万门以上)极其困难!,南通大学电子信息学院,10,2023/3/31,1.3.3 Verilog HDL设计法,选用合适的 EDA仿真工具;选用合适电路图输入和HDL编辑工具;逐个编写可综合HDL模块;逐个编写HDL测试模块;逐个做 HDL 电路逻辑访真;
7、编写 HDL总测试模块;做系统电路逻辑总仿真;选用合适的基本逻辑元件库和宏库 租用或购买必要的IP核;选用合适的综合器;进行综合得到门级电路结构;布局布线,得到时延文件;后仿真;定型,FPGA编码或ASIC投片,南通大学电子信息学院,11,2023/3/31,采用Verilog HDL输入法时,由于Verilog HDL的标准化,可以很容易把完成的设计进行移植到不同厂家的不同芯片。采用Verilog HDL输入法最大的优点是其与工艺无关性。,南通大学电子信息学院,12,2023/3/31,1.3.4 软核、固核和硬核,软核(Soft Core):经过验证的、可综合的、实现后门数在5000门以上
8、的HDL模型固核(Firm Core):在某FPGA器件上实现的、经过验证、5000门以上的电路结构编码文献硬核(Hard Core):以某种工艺实现的、经过验证、5000门以上的电路结构版图掩膜,南通大学电子信息学院,13,2023/3/31,1.4 典型设计流程,系统级设计,模块A,模块B,模块C,模块A1,模块A2,模块A3,模块B1,模块B2,模块B3,模块C1,模块C2,Top-Down自顶向下的设计概念,南通大学电子信息学院,14,2023/3/31,用EDA设计数字系统的典型流程,电路图设计,HDL设计,电路功能仿真,HDL功能仿真,逻辑综合、时序验证,优化、布局布线,布线后门级
9、仿真,工艺文件,电路制造版图或FPGA 码流文件,设计要求,实现,南通大学电子信息学院,15,2023/3/31,1.5 硬件描述语言的发展趋势,当前集成电路的设计面临一些问题,如设计重用、知识产权和内核插入;高层次综合和混合模型的总和;验证包括仿真验证和形式验证等自动验证手段;深亚微米效应;等等。这些问题给EDA技术的发展提出了新的要求,因此硬件描述语言的改进和发展非常必要。,南通大学电子信息学院,16,2023/3/31,1.6 设计资源,设计工具CadenceSynopsysMentor Graphics-ModelSimSynplicity-SynplifyXILINX-ISEAlte
10、ra-Quartus 华大-ZeniFPGA芯片厂商XilinxAlteraLatticeEDA网站,南通大学电子信息学院,17,2023/3/31,参考书:,Verilog HDL数字设计与综合,电子工业出版社数字系统的Verilog HDL设计,机械工业出版社(江国强)CPU芯片逻辑设计技术M.北京:清华大学出版社(朱子玉,李亚民)数字信号处理的FPGA实现,清华大学出版社,南通大学电子信息学院,18,2023/3/31,第2章 Verilog的模块,2.1 概 述,Verilog HDL既是一种行为描述语言,也是一种结构描述语言。即:描述电路功能行为的模型或描述元器件或较大部件互连的模型
11、均可以用Verilog HDL实现。,南通大学电子信息学院,19,2023/3/31,Verilog HDL能够描述电路的5种抽象级别:,1)系统级:用高级结构实现外部性能的模型2)算法级:用高级结构实现算法运行的模型3)RTL级(Register Transfer Level):描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型4)门级:描述逻辑门及其互相之间连接的模型5)开关级:描述器件中三极管和存储节点以及互相之间连接的模型,南通大学电子信息学院,20,2023/3/31,Verilog HDL特别适合算法级和RTL级的模型设计提供了一套完整的组合逻辑基本元件、双向通路和电阻器
12、件的原语可建立MOS器件的电荷分享和衰减动态模型Verilog HDL与C语言的风格很类似,南通大学电子信息学院,21,2023/3/31,一个完整系统的Verilog HDL模型由若干个Verilog HDL模块构成,每个模块又由若干个子模块构成,Verilog模型(模块)-Verilog的基本设计单元,层次化的模型,2.2 Verilog的模块,南通大学电子信息学院,22,2023/3/31,例2-1a 多路选择器-2选1module muxtwo(out,a,b,sl);input a,b,sl;output out;reg out;always(sl or a or b)if(!sl)
13、out=a;else out=b;endmodule,sl,out,a,b,南通大学电子信息学院,23,2023/3/31,例2-1b 多路选择器-4选1module mux4_to_1(out,i0,i1,i2,i3,s1,s0);output out;input i0,i1,i2,i3,s1,s0;reg out;always(s1 or s0 or i0 or i1 or i2 or i3)begin case(s1,s0)2b00:out=i0;2b01:out=i1;2b10:out=i2;2b11:out=i3;default:out=1bx;endcase end endmodu
14、le,s1,out,i0,i1,i3,i2,s0,南通大学电子信息学院,24,2023/3/31,例2-2a 2选1module muxtwo(out,a,b,sl);input a,b,sl;output out;not u1(nsl,sl);and#1 u2(sela,a,nsl);and#1 u3(selb,b,sl);or#2 u4(out,sela,selb);endmodule,南通大学电子信息学院,25,2023/3/31,例2-2b 4选1多路选择器module mux4_to_1(out,i0,i1,i2,i3,s1,s0);output out;input i0,i1,i2
15、,i3;input s1,s0;wire s1n,s0n;wire y0,y1,y2,y3;not not0(s1n,s1);not not1(s0n,s0);and and0(y0,i0,s1n,s0n);and and1(y1,i1,s1n,s0);and and2(y2,i2,s1,s0n);and and3(y3,i3,s1,s0);or or0(out,y0,y1,y2,y3);endmodule,南通大学电子信息学院,26,2023/3/31,分析:例2-1a和例2-1 b模块属于行为描述,例2-2 a例2-1 b模块属于门级描述。通过综合,行为描述的模块可转化为门级描述的模块。,
16、南通大学电子信息学院,27,2023/3/31,例2-3 加法器,module adder(count,sum,a,b,cin);input 2:0 a,b;input cin;output count;output 2:0 sum;assign count,sum=a+b+cin;endmodule说明:求a、b、cin 的和sum,count为进位。,南通大学电子信息学院,28,2023/3/31,例2-4 比较器,module compare(equal,a,b);input 1:0 a,b;output equal;assign equal=(a=b)?1:0;endmodule,南通
17、大学电子信息学院,29,2023/3/31,例2-5 三态驱动器,module trist2(out,in,enable);output out;input in,enable;bufif1 mybuf(out,in,enable);endmodule,南通大学电子信息学院,30,2023/3/31,例2-6 三态驱动器,module trist1(sout,sin,ena);output sout;input sin,ena;mytri tri_inst(.out(sout),.in(sin),.enable(ena);endmodulemodule mytri(out,in,enable)
18、;output out;input in,enable;assign out=enable?in:bz;endmodule,南通大学电子信息学院,31,2023/3/31,例2-7 测试,include“muxtwo.v”module t;reg ain,bin,select;reg 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
19、 select=select;muxtwo m(.out(outw),.a(ain),.b(bin),.sl(select);endmodule,南通大学电子信息学院,32,2023/3/31,作业,1.试画出下列模块的仿真波形图(仿真时间0-2000):include“muxtwo.v”module t;reg ain,bin,select;reg clock;wire outw;initial begin ain=0;bin=0;select=0;clock=0;endalways#50 clock=clock;always(posedge clock)begin ain=$random%
20、2;#3 bin=$random%2;endalways#500 select=select;muxtwo m(.out(outw),.a(ain),.b(bin),.sl(select);endmodulemodule muxtwo(out,a,b,sl);input a,b,sl;output out;reg out;always(sl or a or b)if(!sl)out=a;else out=b;endmodule,南通大学电子信息学院,33,2023/3/31,模块(block)由两部分组成:端口定义(接口描述)模块内容(逻辑功能描述),2.3 模块的结构,例如:module b
21、lock(a,b,c,d);input a,b;output c,d;assign c=a|b;assign d=a endmodule,a,b,c,d,南通大学电子信息学院,34,2023/3/31,2.3.1模块的端口定义格式:module 模块名(口1,口2,);,例:module mytri(out,in,enable);output out;input in,enable;assign out=enable?in:bz;endmodule调用:mytri tri_inst(sout,sin,ena);mytri tri_inst(.out(sout),enable(ena),.in(
22、sin);,南通大学电子信息学院,35,2023/3/31,2.3.2 模块的内容:,1.I/O说明例如:input k1,k2,in0;input 7:0 data;output 3:0 out;inout 15:0 db;2.内部信号的说明例如:reg2:0 a;wire b,c,d;,南通大学电子信息学院,36,2023/3/31,3.功能定义(有3种方法实现逻辑功能)1)用assign声明语句例:assign a=b+c;assign f=(x)?y:z;2)用实例元件 and#2 u1(q,a,b);3)用always块,南通大学电子信息学院,37,2023/3/31,(Verilo
23、g共有19种数据类型,仅介绍4种;量:常量、变量)3.1 常量数字:二进制、八进制、十进制、十六进制;例:8b001100118h3316d486o17,第3章 Verilog的基础知识,南通大学电子信息学院,38,2023/3/31,参数型(parameter)-定义常量例如:parameter data_width=8,addr_width=16;parameter counter=8*1024;,南通大学电子信息学院,39,2023/3/31,3.2变量,1、wire型wire型变量可以是任何方程式的输入信号,也可以是assign语句或实例元件的输出。对wire型变量的说明:wire a
24、,b,c;wire 4:0 db;下表说明了wire型变量在多驱动情况时的结果,南通大学电子信息学院,40,2023/3/31,表:,南通大学电子信息学院,41,2023/3/31,2、reg型-寄存器数据类型通过赋值语句可以改变reg型变量的值。reg型信号将用在always块中。reg型信号通常是寄存器或触发器的输出,但并不一定是。例如:对reg型变量的说明:reg 7:0 data;reg q0,q1,q2,q3;reg 15:0 addr;,南通大学电子信息学院,42,2023/3/31,3、reg型的扩展:memory型-存储器通过扩展reg型变量的地址实现。例如:对memory型变
25、量的说明:reg 7:0 memp 1023:0;reg 7:0 memd 255:0;,memory型不可综合,南通大学电子信息学院,43,2023/3/31,3.3运算符和表达式,1、基本的算术运算符+(加法运算符,正)-(减法运算符,负)*(乘法运算符)/(除法运算符)%(模运算符),南通大学电子信息学院,44,2023/3/31,2、位运算符(按位取反,单目运算符),南通大学电子信息学院,45,2023/3/31,3.4 逻辑运算,3.4.1逻辑运算符(结果为真/假)&(逻辑与,双目运算符)|(逻辑或,双目运算符)!(逻辑非,单目运算符),南通大学电子信息学院,46,2023/3/31
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog_HDL 硬件 描述 语言 详细 教程 课件
链接地址:https://www.31ppt.com/p-4009864.html