复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic.ppt
《复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic.ppt》由会员分享,可在线阅读,更多相关《复杂数字逻辑的VerilogHDL设计方法HDLVerilogdesignmethodforcomplexdigitallogic.ppt(82页珍藏版)》请在三一办公上搜索。
1、从算法设计到硬线逻辑的实现,复杂数字逻辑系统的Verilog HDL设计方法简介,北京航空航天大学 EDA实验室 夏宇闻,数字信号处理、计算、程序 算法和硬线逻辑的基本概念,数字信号处理计算(Computing)算法和数据结构编程语言和程序体系结构硬线逻辑,数字信号处理的基本概念,现代电子系统设备中广泛使用了数字信号处理 专用集成电路。用于数字信号传输中所必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩、解压缩等操作。处理工作从本质上说都是数学运算。完全可以用计算机或微处理器来完成处理工作。,计算(Computing)的基本概念,“Computing 这门学问研究怎样系统地有步骤地描述和
2、转换信息,实质上它是一门覆盖了多个知识和技术范畴的学问,其中包括了计算的理论、分析、设计、效率和应用。它提出的最基本的问题是什么样的工作能自动完成,什么样的不能。”(摘自Denning et al.,“Computing as a Discipline,”Communication of ACM,January,1989)。,算法和数据结构的基本概念,算法就是解决特定问题的有序步骤。数据结构就是解决特定问题的相应的模型。,编程语言和程序的基本概念,编程语言:程序员利用一种由专家设计的既可以被人理解,也可以被计算机解释的语言来表示算法问题的求解过程。这种语言就是编程语言。程序:由编程语言所表达的
3、算法问题的求解过程就是。常用的编程语言:C、Pascal、Fortran、Basic或汇编语言。,计算机体系结构和硬线逻辑的基本概念,计算机体统结构:是一门讨论和研究通用的计算机中央处理器如何提高运算速度性能的学问。硬线逻辑:由与门、或门、非门、触发器、多路器等基本逻辑部件造成的逻辑系统。,数字信号处理系统的分类,非实时系统:信号处理的工作是可以事后进行。实时系统:信号处理的工作必须在规定的很短的时间内完成。,数字信号处理系统的实现,非实时系统:通用的计算机和利用通用计算机改装的设备,主要工作量是编写“C”程序。实时系统:信号处理专用的微处理器为核心的设备,主要工作量是编写汇编程序。,实时数字
4、信号处理系统实现中存在的技术难点,算法问题。电路实现问题:如果由最快的信号处理专用的微处理器为核心的设备也来不及处理如此大量的数据怎么办呢?,实时数字信号处理系统实现中存在的技术难点和解决办法,算法问题。研究并行快速算法。电路实现问题:设计并研制具有并行结构的数字和计算逻辑结构。,实时数字信号处理系统实现中存在的技术难点和解决办法,电路实现的两个方向:FPGA专用集成电路,实时数字信号处理系统实现中存在的技术难点和解决办法,用于信号处理的 FPGA 和专用集成 电路(ASIC)设计的方法:Verilog HDL建模、仿真、综合和全面验证。,复杂数字逻辑系统的Verilog HDL设计方法简介,
5、什么是复杂的数字逻辑系统?,嵌入式微处理机系统数字信号处理系统高速并行计算逻辑 高速通信协议电路高速编码/解码、加密/解密电路复杂的多功能智能接口门逻辑总数超过几万门达到几百甚至达几千 万门的数字系统,为什么要设计复杂的数字逻辑系统?,对嵌入式系统的性能要求越来越高-通用的微处理机不能满足要求-硬件结构是提高系统总体性能的关键-软件只能提高系统的灵活性能-军用系统的实时、高可靠、低功耗要求-系统的功能专一,但对其各种性能要求极高-降低系统的设计和制造成本,怎样设计如此复杂的系统?,传统的设计方法:-查用器件手册;-选用合适的微处理器和电路芯片;-设计面包板和线路板;-调试;-定型;-设计复杂的
6、系统(几十万门以上)极其困难。,怎样设计如此复杂的系统?,现代的设计方法:-选用合适的 EDA仿真工具;-选用合适电路图输入和HDL编辑工具;-逐个编写可综合HDL模块;-逐个编写HDL测试模块;-逐个做Verilog HDL 电路逻辑访真;-编写Verilog HDL总测试模块;-做系统电路逻辑总仿真;,怎样设计如此复杂的系统?,现代的设计方法(续前):-选用合适的基本逻辑元件库和宏库-租用或购买必要的IP核;-选用合适的综合器;-进行综合得到门级电路结构;-布局布线,得到时延文件;-后仿真;-定型,FPGA编码或ASIC投片,Top-Down 设计思想,用EDA设计数字系统的流程,为什么要
7、用硬件描述语言来设计?,电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立 的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。,有哪几种硬件描述语言?各有什么特点?,Verilog HDL-较多的第三方工具的支持-语法结构比VHDL简单-学习起来比VHDL容易-仿真工具比较好使-测试激励模块容易编写,Verilog HDL 的发展历史,有哪几种硬件描述语言?各有什么特点?,VHDL-比VerilogHDL早几年成为I EEE标准;-语法/结构比较严格,因而
8、编写出的 模块风格比较清晰;-比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。,两者建模能力的比较,Verilog HDL 的应用方面,ASIC 和FPGA设计师可用它来编写可综合的代码。描述系统的结构,做高层次的仿真。验证工程师编写各种层次的测试模块对具体电路设计工程师所设计的模块进行全面细致的验证。库模型的设计:可以用于描述ASIC 和FPGA的基本单元(Cell)部件,也可以描述复杂的宏单元(Macro Cell)。,Verilog HDL 的抽象级别,语言本身提供了各种层次抽象的表述,可以用详细程度有很大差别的的多层次模块组合来描述一个电路系统。行为级:技术指标和算法的
9、Verilog描述RTL级:逻辑功能的Verilog描述门级:逻辑结构的Verilog描述开关级:具体的晶体管物理器件的描述,Verilog HDL 的抽象级别,行为级:有关行为和技术指标模块,容易理解RTL级:有关逻辑执行步骤的模块,较难理解门级:有关逻辑部件互相连接的模块,很难理解开关级:有关物理形状和布局参数的模块,非常难理解,抽象级别和综合与仿真的关系,行为仿真:行为的验证和验证模块分割的合理性前仿真:即 RTL级仿真,检查有关模块逻辑执行步骤是否正确。逻辑综合:把RTL级模块转换成门级。后仿真:用门级模型做验证,检查门的互连逻辑其功能是否正确。布局布线:在门级模型的基础上加上了布线延
10、时布局布线后仿真:与真实的电路最接近的验证。,行为级和RTL级,module 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,a,b,sl,out,行为级和RTL级,这个行为的描述并没有说明如果输入 a 或 b是三态的(高阻时)输出应该是什么,但有具体结构的真实电路是有一定的输出的。RTL模块的数据流动必须基于时钟。RTL模块在每个时钟的沿时刻,其变量的值必定是精确的。RTL模块是可综合的,它是行为模块的一个子集合。,结构级,modu
11、le muxtwo(out,a,b,sl);input a,b,sl;output out;not u1(ns1,sl);and#1 u2(sela,a,nsl);and#1 u3(selb,b,sl);or#2 u4(out,sela,selb);endmodule,out,Verilog HDL入门,module myadder(clock,reset,a,b,sum);parameter width=8;input clock,reset;input width-1:0 a,b;output width:0 sum;reg width-1:0 a_reg,b_reg;reg width:
12、0 sum;always(posedge clock or negedge reset)if(!reset)begin a_reg=b0;b_reg=b0;sum=b0;end,Verilog HDL入门,else begin a_reg=a;b_reg=b;sum=a_reg+b_reg;end endmodule,Verilog HDL模块的测试,include myadder.vmodule t;wire 8:0 sumout;reg 7:0 ain,bin;reg clk;myadder(.clock(clk),.reset(rst),.a(ain),.b(bin),.sum(sumo
13、ut);initial begin rst=1;clk=0;ain=0;bin=3;#70 rst=0;#70 rst=1;end always#50 clk=clk;always(posedge clk)begin ain=ain+2;bin=bin+5;endendmodule,Verilog HDL测试,由于 t 模块中Verilog HDL语句的功能 可以对myadder 模块进行测试 myadder 模块输入了必须的信号:rst,clk,ain,bin 观测该模块的输出:sumout 看一看它是否符合设计要求。,有关Verilog HDL的几个重要基本概念,综合:通过工具把用Veri
14、log HDL描述的模块自动转换为用门级电路网表表示的模块的过程。寄存器传输级Verilog HDL模块:也可称为RTL(Verilog)HDL模块。它是符合特定标准和风格的描述状态转移和变化的 Verilog HDL模块。能用综合器把它转换为门级逻辑。,有关Verilog HDL的几个重要基本概念,Verilog HDL测试模块:用Verilog HDL描述的模块,可以用来产生测试信号序列并可以接收被测试模块的信号,用于验证所设计的模块是否能正常运行,往往不可综合成具体门级电路。Verilog HDL顶层(测试)模块:同上。,有关Verilog HDL的几个重要基本概念,布局布线:把用综合器
15、自动生成的门级网表(EDIF)通过运行一个自动操作的布局布线工具,使其与具体的某种FPGA或某种ASIC工艺库器件对应起来,并加以连接的过程。Verilog HDL后仿真测试模块:同3)、4),但被测试的模块至少是一个门级描述的或用具体FPGA(ASIC)库器件(带时间延迟信息)描述的结构型Verilog HDL 模块。,Verilog 模块由两部分组成:端口信息和内部功能。module block1(a,b,c,d,e);input a,b,c;output d,e;assign d=a|(b endmodule,Verilog HDL模块和接口,a,b,c,d,e,Verilog 模块的结
16、构由在module和endmodule 关键词之间的四个主要部分组成:-端口信息:module block1(a,b,c,d);-输入/输出说明:input a,b,c;output d;-内部信号:wire x;-功能定义:assign d=a|x;assign x=(b endmodule,Verilog HDL模块的结构,请在下面的空格中填入适当的符号 使其成为右图的Verilog 模块:module block1(a,b,);input,;d,;assign d=a|(b _,编写Verilog HDL模块的练习,a,b,c,d,e,请在下面的空格中填入适当的符号 使其成为右图的Ver
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复杂 数字 逻辑 VerilogHDL 设计 方法 HDLVerilogdesignmethodforcomplexdigitallogic
链接地址:https://www.31ppt.com/p-4826724.html