收藏 分销(赏)

从算法设计到硬线逻辑的实现.pptx

上传人:a199****6536 文档编号:4548895 上传时间:2024-09-27 格式:PPTX 页数:81 大小:473.42KB
下载 相关 举报
从算法设计到硬线逻辑的实现.pptx_第1页
第1页 / 共81页
从算法设计到硬线逻辑的实现.pptx_第2页
第2页 / 共81页
从算法设计到硬线逻辑的实现.pptx_第3页
第3页 / 共81页
从算法设计到硬线逻辑的实现.pptx_第4页
第4页 / 共81页
从算法设计到硬线逻辑的实现.pptx_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、数字信号处理、计算、程序数字信号处理、计算、程序 算法和硬线逻辑的基本概念算法和硬线逻辑的基本概念数字信号处理计算(Computing)算法和数据结构编程语言和程序体系结构硬线逻辑数字信号处理的基本概念数字信号处理的基本概念现代电子系统设备中广泛使用了数字信号处理专用集成电路。用于数字信号传输中所必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩、解压缩等操作。处理工作从本质上说都是数学运算。完全可以用计算机或微处理器来完成处理工作。计算(计算(Computing)的基本概念的基本概念“Computing这门学问研究怎样系统地有步骤地描述和转换信息,实质上它是一门覆盖了多个知识和技术范畴的

2、学问,其中包括了计算的理论、分析、设计、效率和应用。它提出的最基本的问题是什么样的工作能自动完成,什么样的不能。”(摘自Denningetal.,“ComputingasaDiscipline,”CommunicationofACM,January,1989)。算法和数据结构的基本概念算法和数据结构的基本概念算法就是解决特定问题的有序步骤。数据结构就是解决特定问题的相应的模型。编程语言和程序的基本概念编程语言和程序的基本概念编程语言:编程语言:程序员利用一种由专家设计的既可以被人理解,也可以被计算机解释的语言来表示算法问题的求解过程。这种语言就是编程语言。程程序序:由编程语言所表达的算法问题的

3、求解过程就是。常常用用的的编编程程语语言言:C、Pascal、Fortran、Basic或汇编语言。计算机体系结构和硬线逻辑计算机体系结构和硬线逻辑的基本概念的基本概念计计算算机机体体统统结结构构:是一门讨论和研究通用的计算机中央处理器如何提高运算速度性能的学问。硬硬线线逻逻辑辑:由与门、或门、非门、触发器、多路器等基本逻辑部件造成的逻辑系统。数字信号处理系统的分类数字信号处理系统的分类 非实时系统非实时系统:信号处理的工作是可以事后进行。实时系统实时系统:信号处理的工作必须在规定的很短的时间内完成。数字信号处理系统的实现数字信号处理系统的实现 非实时系统非实时系统:通用的计算机和利用通用计算

4、机改装的设备,主要工作量是编写“C”程序。实时系统实时系统:信号处理专用的微处理器为核心的设备,主要工作量是编写汇编程序。实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点 1)算法问题。2)电路实现问题:如果由最快的信号处理专用的微处理器为核心的设备也来不及处理如此大量的数据怎么办呢?实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决办法和解决办法 1)算法问题。研究并行快速算法。2)电路实现问题:设计并研制具有并行结构的数字和计算逻辑结构。实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决

5、办法和解决办法 电路实现的两个方向:FPGA专用集成电路实时数字信号实时数字信号处理系统实现中存在的技术难点处理系统实现中存在的技术难点和解决办法和解决办法 用于信号处理的 FPGA 和专用集成 电路(ASIC)设计的方法:VerilogHDL建模、仿真、综合和全面验证。复杂数字逻辑系统的复杂数字逻辑系统的复杂数字逻辑系统的复杂数字逻辑系统的Verilog HDLVerilog HDLVerilog HDLVerilog HDL设计方法简介设计方法简介设计方法简介设计方法简介什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统什么是复杂的数字逻辑系统?嵌入式微处理机系统嵌入

6、式微处理机系统嵌入式微处理机系统嵌入式微处理机系统数字信号处理系统数字信号处理系统数字信号处理系统数字信号处理系统高速并行计算逻辑高速并行计算逻辑高速并行计算逻辑高速并行计算逻辑 高速通信协议电路高速通信协议电路高速通信协议电路高速通信协议电路高速编码高速编码高速编码高速编码/解码、加密解码、加密解码、加密解码、加密/解密电路解密电路解密电路解密电路复杂的多功能智能接口复杂的多功能智能接口复杂的多功能智能接口复杂的多功能智能接口门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千 万门的数字系统

7、万门的数字系统万门的数字系统万门的数字系统为什么要设计复杂的为什么要设计复杂的为什么要设计复杂的为什么要设计复杂的数字逻辑系统?数字逻辑系统?数字逻辑系统?数字逻辑系统?对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高对嵌入式系统的性能要求越来越高-通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求通用的微处理机不能满足要求-硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体性能的关键硬件结构是提高系统总体

8、性能的关键硬件结构是提高系统总体性能的关键-软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能软件只能提高系统的灵活性能-军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求军用系统的实时、高可靠、低功耗要求-系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系统的功能专一,但对其各种性能要求极高系

9、统的功能专一,但对其各种性能要求极高-降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本降低系统的设计和制造成本怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统?传统的设计方法:传统的设计方法:传统的设计方法:传统的设计方法:-查用器件手册;查用器件手册;查用器件手册;查用器件手册;查用器件手册;查用器件手册;-选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯片;选用合适的微处理器和电路芯

10、片;-设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;设计面包板和线路板;-调试;调试;调试;调试;调试;调试;-定型;定型;定型;定型;定型;定型;-设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。设计复杂的系统(几十万门以上)极其困难。怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统怎样设计如此复杂的系统?现代的设计方法:现代的设计方法:现代的设计方法:现代的设计方法:-

11、选用合适的选用合适的选用合适的选用合适的选用合适的选用合适的 EDAEDAEDA仿真仿真仿真仿真仿真仿真工具;工具;工具;工具;工具;工具;-选用合适选用合适选用合适选用合适选用合适选用合适电路图输入和电路图输入和电路图输入和电路图输入和电路图输入和电路图输入和HDLHDLHDL编辑工具;编辑工具;编辑工具;编辑工具;编辑工具;编辑工具;-逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合逐个编写可综合HDLHDLHDL模块;模块;模块;模块;模块;模块;-逐个编写逐个编写逐个编写逐个编写逐个编写逐个编写HDLHDLHDL测试模块;测试模块;测试模块;测试模块;测试模块;测

12、试模块;-逐个做逐个做逐个做逐个做逐个做逐个做Verilog HDL Verilog HDL Verilog HDL 电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真;电路逻辑访真;-编写编写编写编写编写编写Verilog HDLVerilog HDLVerilog HDL总测试模块;总测试模块;总测试模块;总测试模块;总测试模块;总测试模块;-做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;做系统电路逻辑总仿真;怎样设计如此复杂的系统怎样设计如此复杂的系统?现代的设计方法(续前):现代的设计方法(续前):-选用

13、合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库选用合适的基本逻辑元件库和宏库 -租用或购买必要的租用或购买必要的租用或购买必要的租用或购买必要的IPIP核;核;核;核;-选用合适的综合器;选用合适的综合器;选用合适的综合器;选用合适的综合器;-进行综合得到门级电路结构;进行综合得到门级电路结构;进行综合得到门级电路结构;进行综合得到门级电路结构;-布局布线,得到时延文件;布局布线,得到时延文件;布局布线,得到时延文件;布局布线,得到时延文件;-后仿真;后仿真;后仿真;后仿真;-定型,定型,定型,定型,FPGA FPGA编码或编码或编码或编码或ASICAS

14、IC投片投片投片投片Top-Down Top-Down 设计思想设计思想用用用用E EE ED DD DA AA A设设设设计计计计数数数数字字字字系系系系统统统统的的的的流流流流程程程程为什么要用为什么要用为什么要用为什么要用硬件描述语言来设计硬件描述语言来设计硬件描述语言来设计硬件描述语言来设计?电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理;便于

15、计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立 的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计

16、的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。有哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?

17、有哪几种硬件描述语言?各有什么特点?各有什么特点?各有什么特点?各有什么特点?Verilog HDLVerilog HDL -较多的第三方工具的支持较多的第三方工具的支持较多的第三方工具的支持较多的第三方工具的支持 -语法结构比语法结构比语法结构比语法结构比VHDLVHDL简单简单简单简单 -学习起来比学习起来比学习起来比学习起来比VHDLVHDL容易容易容易容易 -仿真工具比较好使仿真工具比较好使仿真工具比较好使仿真工具比较好使 -测试激励模块容易编写测试激励模块容易编写测试激励模块容易编写测试激励模块容易编写Verilog HDL Verilog HDL Verilog HDL Veril

18、og HDL 的发展历史的发展历史的发展历史的发展历史有哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?有哪几种硬件描述语言?各有什么特点?各有什么特点?各有什么特点?各有什么特点?VHDLVHDL -比比比比VerilogHDLVerilogHDL早几年成为早几年成为早几年成为早几年成为I EEEI EEE标准;标准;标准;标准;-语法语法语法语法/结构比较严格,因而编写出的结构比较严格,因而编写出的结构比较严格,因而编写出的结构比较严格,因而编写出的 模块风格模块风格模块风格模块风格比较清晰;比较清晰;比较清晰;比较清晰;-比较适合由较多的设计人员合作完成比较适合由较多的设

19、计人员合作完成比较适合由较多的设计人员合作完成比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。的特大型项目(一百万门以上)。两两两两者建模能力的比较者建模能力的比较者建模能力的比较者建模能力的比较VHDLVITAL系统级算法级寄存器传输级 逻辑门级开关电路级行为级 的抽象 VerilogHDL 与 VHDL 建 模 能 力 的 比 较VerilogVerilog HDL Verilog HDL 的应用方面的应用方面 ASICASICASIC和和和FPGAFPGAFPGA设计师可用它来编写可综合的代设计师可用它来编写可综

20、合的代设计师可用它来编写可综合的代码。码。码。描述系统的结构,做高层次的仿真。描述系统的结构,做高层次的仿真。描述系统的结构,做高层次的仿真。验证工程师编写各种层次的测试模块对具体电验证工程师编写各种层次的测试模块对具体电验证工程师编写各种层次的测试模块对具体电路设计工程师所设计的模块进行全面细致的验路设计工程师所设计的模块进行全面细致的验路设计工程师所设计的模块进行全面细致的验证。证。证。库模型的设计:可以用于描述库模型的设计:可以用于描述库模型的设计:可以用于描述ASICASICASIC和和和FPGAFPGAFPGA的的的基本单元(基本单元(基本单元(CellCellCell)部件,也可以

21、描述复杂的宏部件,也可以描述复杂的宏部件,也可以描述复杂的宏单元(单元(单元(MacroCellMacroCellMacroCell)。)。)。Verilog HDLVerilog HDL 的抽象级别的抽象级别 语言本身提供了各种层次抽象的表述,语言本身提供了各种层次抽象的表述,语言本身提供了各种层次抽象的表述,语言本身提供了各种层次抽象的表述,可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次可以用详细程度有很大差别的的多层次模块组合来描述一个电路系统。模块组合来描述一个电路系统。模块组合来描述一个电路系统。模块组合来描述一个电路系统。行为

22、级:技术指标和算法的行为级:技术指标和算法的行为级:技术指标和算法的VerilogVerilogVerilog描述描述描述RTLRTLRTL级:逻辑功能的级:逻辑功能的级:逻辑功能的VerilogVerilogVerilog描述描述描述门级门级门级:逻辑结构的:逻辑结构的:逻辑结构的VerilogVerilogVerilog描述描述描述开关级:具体的晶体管物理器件的描述开关级:具体的晶体管物理器件的描述开关级:具体的晶体管物理器件的描述Verilog HDLVerilog HDL 的抽象级别的抽象级别 行为级:有关行为和技术指标模块,容易理行为级:有关行为和技术指标模块,容易理行为级:有关行为

23、和技术指标模块,容易理行为级:有关行为和技术指标模块,容易理解解解解RTLRTL级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理级:有关逻辑执行步骤的模块,较难理解解解解门级门级门级门级 :有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很:有关逻辑部件互相连接的模块,很难理解难理解难理解难理解开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,开关级:有关物理形状和布局参数的模块,非常难理解非常难理解非常难理解非常难理解 抽象级别和综

24、合与仿真的关系抽象级别和综合与仿真的关系行为仿真:行为仿真:行为仿真:行为仿真:行为仿真:行为仿真:行为的验证和验证模块分割的合理性行为的验证和验证模块分割的合理性行为的验证和验证模块分割的合理性前仿真前仿真前仿真前仿真前仿真前仿真 :即即即 RTLRTLRTL级仿真,检查有关模块逻辑执级仿真,检查有关模块逻辑执级仿真,检查有关模块逻辑执行步骤是否正确。行步骤是否正确。行步骤是否正确。逻辑综合:逻辑综合:逻辑综合:逻辑综合:逻辑综合:逻辑综合:把把把RTLRTLRTL级模块转换成门级级模块转换成门级级模块转换成门级。后仿真:后仿真:后仿真:后仿真:后仿真:后仿真:用门级模型做验证,检查门的互连

25、逻辑用门级模型做验证,检查门的互连逻辑用门级模型做验证,检查门的互连逻辑其功能是否正确。其功能是否正确。其功能是否正确。布局布线:布局布线:布局布线:布局布线:布局布线:布局布线:在门级模型的基础上加上了布线延时在门级模型的基础上加上了布线延时在门级模型的基础上加上了布线延时布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:布局布线后仿真:与真实的电路最接近的验证。与真实的电路最接近的验证。与真实的电路最接近的验证。行为级和行为级和RTLRTL级级modulemumodulemumodulemuxx xtwotwotwo(oo out,ut,ut,a,b,a,b,

26、a,b,ss sll l);););inputinputinputa,a,a,b,sl;b,sl;b,sl;outputoutputoutputoo oututut;Regout;Regout;Regout;always(always(always(ss sll lorororaa aorborborb)if(if(if(!slsl sl)oo out=a;ut=a;ut=a;ee elseout=b;lseout=b;lseout=b;endmoduleendmoduleendmoduleabslout行为级和行为级和RTLRTL级级 abslout这个行为的描述并没有说明如果输入a或b是三

27、态的(高阻时)输出应该是什么,但有具体结构的真实电路是有一定的输出的。RTL模块的数据流动必须基于时钟。RTL模块在每个时钟的沿时刻,其变量的值必定是精确的。RTL模块是可综合的,它是行为模块的一个子集合。结构级结构级modulemumodulemumodulemuxx xtwotwotwo(oo out,ut,ut,a,b,a,b,a,b,ss sll l);););inputinputinputa,a,a,b,sl;b,sl;b,sl;outputoutputoutputoo oututut;notu1notu1notu1(ns1ns1ns1,slsl sl);););and#1u2and

28、#1u2and#1u2(selaselasela,aa a,nslnslnsl);););and#1u3and#1u3and#1u3(selbselbselb,bb b,slsl sl);););or#2u4or#2u4or#2u4(outoutout,selaselasela,selbselbselb);););endmoduleendmoduleendmoduleoutabslselbselanslVerilog HDLVerilog HDL入门入门module mmodule mmodule myyyadderadderadder(clock,reset,a,b,(clock,reset

29、,a,b,(clock,reset,a,b,sssumumum);););parameter width=8;parameter width=8;parameter width=8;input clock,reset;input clock,reset;input clock,reset;input width-1:0 a,b;input width-1:0 a,b;input width-1:0 a,b;output width:0 output width:0 output width:0 sssumumum;reg width-1:0 a_reg,b_reg;reg width-1:0

30、a_reg,b_reg;reg width-1:0 a_reg,b_reg;reg reg reg width:width:width:000 sssumumum;always(posedge clock or always(posedge clock or always(posedge clock or nnnegedgeegedgeegedge reset)reset)reset)if if if (!(!(!reset)beginreset)beginreset)begin a_reg=b0;b_reg=b0;a_reg=b0;b_reg=b0;a_reg=b0;b_reg=b0;sss

31、umumum=b0;=b0;=b0;end end endVerilog HDLVerilog HDL入门入门else beginelse beginelse begin a_reg=a;a_reg=a;a_reg=a;b_reg=b;b_reg=b;b_reg=b;sssumumum=a_reg =a_reg =a_reg+b_reg;b_reg;b_reg;end end end endmodule endmodule endmoduleVerilog HDLVerilog HDL模块的测试模块的测试includemyadder.vincludemyadder.vmodulet;modul

32、et;wire8:0sumout;wire8:0sumout;reg7:0ain,bin;reg7:0ain,bin;regclk;regclk;mmmyy yadderadderadder(.clockclockclock(clk)clk)clk),.resetresetreset(rst)rst)rst),.aa a(ain)ain)ain),.bb b(bin)(bin)(bin),.sum(sumout).sum(sumout).sum(sumout);););initialinitialbeginrst=1beginrst=1;clk=0;ain=0;bin=3;#70rst=0cl

33、k=0;ain=0;bin=3;#70rst=0;#70rst=1#70rst=1;endendalways#50clk=clk;always#50clk=clk;always(posedgeclk)always(posedgeclk)beginain=ain+2;bin=bin+5;endbeginain=ain+2;bin=bin+5;endendmoduleendmoduleendmoduleVerilog HDLVerilog HDL测试测试由于由于 t t 模块中模块中Verilog HDLVerilog HDL语句的功能语句的功能可以对可以对myaddermyadder模块进行测试

34、模块进行测试myaddermyadder模块输入了必须的信号:模块输入了必须的信号:rstrst,clkclk,ainain,binbin观测该模块的输出:观测该模块的输出:sumoutsumout看一看它是否符合设计要求。看一看它是否符合设计要求。有关有关Verilog HDLVerilog HDL的的几个重要基本概念几个重要基本概念 1)1)1)1)综合:综合:综合:综合:通过工具把用通过工具把用VVerilog HDLerilog HDL描述的模描述的模块自动转换为用门级电路网表表示的模块的块自动转换为用门级电路网表表示的模块的过程。过程。2)2)2)2)寄存器传输级寄存器传输级寄存器传

35、输级寄存器传输级Verilog HDLVerilog HDLVerilog HDLVerilog HDL模块:模块:模块:模块:也可称为也可称为RTL RTL(VerilogVerilog)HDL HDL模块。它是符合特定标模块。它是符合特定标准和风格的描述状态转移和变化的准和风格的描述状态转移和变化的 Verilog Verilog HDLHDL模块。能用综合器把它转换为门级逻辑。模块。能用综合器把它转换为门级逻辑。有关有关Verilog HDLVerilog HDL的的几个重要基本概念几个重要基本概念 3)3)3)3)Verilog HDLVerilog HDLVerilog HDLVer

36、ilog HDL测试模块测试模块测试模块测试模块:用用Verilog Verilog HDLHDL描述的模块,可以用来产生测试信号描述的模块,可以用来产生测试信号序列并可以接收被测试模块的信号,用序列并可以接收被测试模块的信号,用于验证所设计的模块是否能正常运行,于验证所设计的模块是否能正常运行,往往不可综合成具体门级电路。往往不可综合成具体门级电路。4)4)4)4)Verilog HDLVerilog HDLVerilog HDLVerilog HDL顶层(测试)模块顶层(测试)模块顶层(测试)模块顶层(测试)模块:同上。同上。有关有关Verilog HDLVerilog HDL的的几个重要

37、基本概念几个重要基本概念 5)5)5)5)布局布线布局布线布局布线布局布线:把用把用综合器自动生成的门级网综合器自动生成的门级网表(表(EDIFEDIF)通过运行一个自动操作的布局布线通过运行一个自动操作的布局布线工具,使其与具体的某种工具,使其与具体的某种FPGAFPGA或某种或某种ASICASIC工艺工艺库器件对应起来,并加以连接的过程。库器件对应起来,并加以连接的过程。6)6)6)6)Verilog HDLVerilog HDLVerilog HDLVerilog HDL后仿真测试模块后仿真测试模块后仿真测试模块后仿真测试模块:同同33)、)、44),但被测试的模块至少是一个门级),但被

38、测试的模块至少是一个门级描述的或用具体描述的或用具体FPGA(ASIC)FPGA(ASIC)库器件库器件(带时间延带时间延迟信息迟信息)描述的结构型描述的结构型Verilog HDL Verilog HDL 模块。模块。Verilog Verilog 模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。module block1(a,b,c,d,e);module block1(a,b,c,d,e);input a,b,c;input a,b,c;output d,e;output d,e;as

39、sign d=a|(b&c);assign d=a|(b&c);assign e=(b&c);assign e=(b&c);endmodule endmoduleVerilog HDLVerilog HDLVerilog HDLVerilog HDL模块和接口模块和接口模块和接口模块和接口abcdeVerilog Verilog Verilog 模块的结构由在模块的结构由在模块的结构由在模块的结构由在模块的结构由在模块的结构由在modulemodulemodule和和和和和和endmodule endmodule endmodule 关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:

40、关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:关键词之间的四个主要部分组成:-端口信息:端口信息:端口信息:端口信息:端口信息:端口信息:module block1(a,b,c,d);module block1(a,b,c,d);module block1(a,b,c,d);-输入输入输入输入输入输入/输出说明输出说明输出说明输出说明输出说明输出说明 :input a,b,c;input a,b,c;input a,b,c;output d;output d;output d;-内部信号:内部信号:内部信号:内部信号:内部信号:内部信号:wire x

41、;wire x;wire x;-功能定义:功能定义:功能定义:功能定义:功能定义:功能定义:assign d=a|x;assign d=a|x;assign d=a|x;assign x=(b&c);assign x=(b&c);assign x=(b&c);endmodule endmodule endmodule Verilog HDLVerilog HDL模块的结构模块的结构请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号 使其成为右图的使其成为右图的使其成

42、为右图的使其成为右图的使其成为右图的使其成为右图的Verilog Verilog Verilog 模块模块模块模块模块模块 :module block1(a,b,);module block1(a,b,);module block1(a,b,);input ,;input ,;input ,;d,;d,;d,;assign d =a|(b&c);assign d =a|(b&c);assign d =a|(b&c);assign e =(b&c);assign e =(b&c);assign e =(b&c);_ _ _编写编写编写编写Verilog HDLVerilog HDLVerilog

43、 HDLVerilog HDL模块的练习模块的练习模块的练习模块的练习abcde请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号请在下面的空格中填入适当的符号 使其成为右图的使其成为右图的使其成为右图的使其成为右图的使其成为右图的使其成为右图的Verilog Verilog Verilog 模块模块模块模块模块模块 :module block1(a,b,module block1(a,b,module block1(a,b,cc c,dd d,ee e);););input input inp

44、ut aa a,bb b,cc c;output output output d,d,d,ee e;assign d =a|(b&c);assign d =a|(b&c);assign d =a|(b&c);assign e =(b&c);assign e =(b&c);assign e =(b&c);endmoduleendmoduleendmodule编写编写编写编写Verilog HDLVerilog HDLVerilog HDLVerilog HDL模块的练习模块的练习模块的练习模块的练习abced在在在在在在Verilog Verilog Verilog 模块中有三种方法可以生成逻辑

45、电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:模块中有三种方法可以生成逻辑电路:-用用用用用用 assign assign assign 语句:语句:语句:语句:语句:语句:assign cs =(a0&a1&a2);assign cs =(a0&a1&a2);assign cs =(a0&a1&a2);-用用用用用用 元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用:元件的实例调用:and2 and_inst(q,a,b);and2 and_inst(q,a,b);a

46、nd2 and_inst(q,a,b);-用用用用用用 always always always 块:块:块:块:块:块:always (posedge clk or posedge clr)always (posedge clk or posedge clr)always (posedge clk or posedge clr)begin if(clr)q=0;else if(en)q=d;begin if(clr)q=0;else if(en)q=d;begin if(clr)q=0;else if(en)q=d;end end endVerilog HDLVerilog HDL模块中的逻

47、辑表示模块中的逻辑表示abcde如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成如在模块中逻辑功能由下面三个语句块组成 :assign cs =(a0&a1&a2);/-1 assign cs =(a0&a1&a2);/-1 assign cs =(a0&a1&a2);/-1 and2 and_inst(q and2 and_inst(q and2 and_inst(qoo oututut,a,b);/-2,a,b);/-2,a,b);/-2 alway

48、s (posedge clk or posedge clr)/-3 always (posedge clk or posedge clr)/-3 always (posedge clk or posedge clr)/-3 begin if(clr)q=0;else if(en)q=d;begin if(clr)q=0;else if(en)q=d;begin if(clr)q=0;else if(en)q=d;end end end三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑

49、电路;三条语句是并行的,它们产生独立的逻辑电路;三条语句是并行的,它们产生独立的逻辑电路;而在而在而在而在而在而在 always always always 块中块中块中块中块中块中:begin:begin:begin 与与与与与与 end end end 之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。之间是顺序执行的。并行和顺序并行和顺序逻辑关系的表示逻辑关系的表示VerilogVerilogVerilogVerilog模块中的信号模块中的信号模块中的信号模块中的信号只有两种主要的信号类型:只有两种主要的信号类型:只有两种主要的信号类型:只有两种主

50、要的信号类型:-寄存器类型:寄存器类型:寄存器类型:寄存器类型:reg reg 在在在在always always 块中被赋值的信号,块中被赋值的信号,块中被赋值的信号,块中被赋值的信号,往往往往往往往往代表代表代表代表 触发器,但不一定是触发器。触发器,但不一定是触发器。触发器,但不一定是触发器。触发器,但不一定是触发器。-连线类型:连线类型:连线类型:连线类型:wire wire 用用用用 assign assign 关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号关键词指定的组合逻辑的信号 或连线或连线或连线或连线VerilogVerilogVerilogV

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服