EDA技术与VHDL实用教程.ppt

上传人:laozhun 文档编号:2454045 上传时间:2023-02-19 格式:PPT 页数:350 大小:8.53MB
返回 下载 相关 举报
EDA技术与VHDL实用教程.ppt_第1页
第1页 / 共350页
EDA技术与VHDL实用教程.ppt_第2页
第2页 / 共350页
EDA技术与VHDL实用教程.ppt_第3页
第3页 / 共350页
EDA技术与VHDL实用教程.ppt_第4页
第4页 / 共350页
EDA技术与VHDL实用教程.ppt_第5页
第5页 / 共350页
点击查看更多>>
资源描述

《EDA技术与VHDL实用教程.ppt》由会员分享,可在线阅读,更多相关《EDA技术与VHDL实用教程.ppt(350页珍藏版)》请在三一办公上搜索。

1、绪 论,EDA技术与VHDL实用教程,1,2,绪 论,EDA技术与VHDL实用教程,一、EDA技术概念,现代电子设计技术的核心就是EDA(电子设计自动化,Electronic Design Automation)技术。利用EDA技术,电子设计师可以方便地实现IC设计、电子电路设计和PCB设计等工作。,EDA技术与VHDL实用教程,3,4,广义的EDA技术,除了狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE,EWB,MATLAB等),印刷电路板计算机辅助设计PCB-CAD技术(如PROTEL,ORCAD等)。在广义的EDA技术中,CAA技术和PCB-CAD技术不具备逻辑综合和

2、逻辑适配的功能,因此它并不能称为真正意义上的EDA技术。,EDA技术与VHDL实用教程,5,狭义的EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计开发工具的EDA技术。本书讨论的对象专指狭义的EDA技术。,EDA技术与VHDL实用教程,EDA技术的3个层次,6,(1)EWB、PSpice、protel的学习作为EDA的最初级内容;(2)利用VHDL完成对CPLD/FPGA的开发等作为中级内容;(3)ASIC的设计作为最高级内容,EDA技术与VHDL实用教程,7,二、EDA技术的主要特征,E

3、DA技术主要有以下这些特征:(1)高层综合与优化的理论与方法取得了很大的进展,其结果大大缩短了复杂的ASIC的设计周期,同时改进了设计质量;(2)采用硬件描述语言来描述10万门以上的设计,形成了国际通用的VHDL等硬件描述语言。它们均支持不同层次的描述,使得复杂IC的描述规范化,便于传递、交流、保存与修改,并可建立独立的工艺设计文档,便于设计重用;,EDA技术与VHDL实用教程,8,(3)开放式的设计环境(各厂家均适合);(4)自顶向下的算法;(5)丰富的元器件模块库;(6)具有较好的人机对话界面与标准的CAM接口;(7)建立并行设计工程框架结构的集成化设计环境,以适应当今ASIC的特点:规模

4、大而复杂,数字与模拟电路并存,硬件与软件并存,产品上市更新快。,EDA技术与VHDL实用教程,9,三、EDA技术发展历程,EDA技术的发展分为三个阶段,20世纪70年代计算机辅助设计CAD阶段,20世纪80年代 计算机辅助工程设计阶段,20世纪90年代 电子系统设计自动化阶段,EDA技术与VHDL实用教程,10,四、EDA技术的主要内容,(一)硬件描述语言 硬件描述语言(HDL)是各种描述方法中最能体现EDA优越性的描述方法。所谓硬件描述语言,实际就是一个描述工具,其描述的对象就是待设计电路系统的逻辑功能、实现该功能的算法、选用的电路结构以及其他各种约束条件等。通常要求HDL既能描述系统的行为

5、,又能描述系统的结构。,EDA技术与VHDL实用教程,11,目前主要有以下两种HDL语言:1Verilog-HDL Verilog-HDL语言是在1983年由GDA(Gateway Design Automation)公司首创的,主要用于数字系统的设计。2VHDL VHDL语言是美国国防部于20世纪80年代后期,出于军事工业的需要开发的。,EDA技术与VHDL实用教程,12,VHDL语言是一种高级描述语言,适用于电路高级建模,综合的效率和效果较好。Verilog-HDL语言是一种低级的描述语言,适用于描述门级电路,容易控制电路资源,但其对系统的描述能力不如VHDL语言。,EDA技术与VHDL实

6、用教程,13,(二)可编程逻辑器件可编程逻辑器件(简称PLD)是一种由用户编程来实现某种逻辑功能的新型逻辑器件。它不仅速度快、集成度高,能够完成用户定义的逻辑功能,还可以加密和重新定义编程,其允许编程次数可多达上万次。使用可编程逻辑器件可大大简化硬件系统、降低成本、提高系统的可靠性、灵活性。,EDA技术与VHDL实用教程,14,目前,PLD主要分为FPGA(现场可编程门阵列)和 CPLD(复杂可编程逻辑器件)两大类。FPGA和CPLD最明显的特点是高集成度、高速度和高可靠性。由于它们的明显特点,可以应用于超高速领域和实时测控方面以及嵌入式领域等等。,EDA技术与VHDL实用教程,15,(三)E

7、DA软件 目前在国内比较流行的EDA 软件工具主要有Altera公司的MAX+plus和Quartus、Lattice公司的Expert LEVER和Synario、Xilinx公司的Foundation和Alliance、Actel公司的Actel Designer等,这四家公司的EDA开发软件特性如表0-1所示。,EDA技术与VHDL实用教程,16,表0-1 EDA开发软件特性,EDA技术与VHDL实用教程,17,EDA与传统电子设计方法的比较,手工设计方法的缺点是:1)复杂电路的设计、调试十分困难。2)如果某一过程存在错误,查找和修改十分不便。3)设计过程中产生大量文档,不易管理。4)对

8、于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。5)只有在设计出样机或生产出芯片后才能进行实测。,EDA技术有很大不同:1)采用硬件描述语言作为设计输入。2)库(Library)的引入。3)设计文档的管理。4)强大的系统建模、电路仿真功能。5)具有自主知识产权。6)开发技术的标准化、规范化以及IP核的可利用性。7)适用于高效率大规模系统设计的自顶向下设计方案。8)全方位地利用计算机自动设计、仿真和测试技术。9)对设计者的硬件知识和硬件经验要求低。10)高速性能好。11)纯硬件系统的高可靠性。,EDA技术与VHDL实用教程,18,EDA与传统电子设计方法的比较,FPGA和

9、DSP芯片实现FIR滤波器的速度对比,8位FIR滤波器阶数,FPGA的处理速度单位:MSPS,达到相当速度所需DSP芯片的指令执行速度 单位:MIPS,8162432,104101103105,832161624723360,EDA技术与VHDL实用教程,19,EDA实验的3个层次,1、逻辑行为的实现,2、控制与信号传输功能的实现,3、算法的实现,如:译码器、红绿交通灯控制、表决器、显示扫描器、电梯控制、乒乓球等电路的设计,时钟频率一般低于4MHz,如:各类信号发生器、A/D采样控制器、FIFO、RS232或PS/2通信、FPGA/CPLD与单片机综合控制等电路的设计,时钟频率一般在25MHz

10、左右,如:离散FFT变换、数字滤波器、浮点乘法器、高速宽位加法器、数字振荡器、数字锁相环、调制解调器、图象DSP等电路的设计,时钟频率一般在50MHz以上,EDA技术与VHDL实用教程,20,五、EDA技术的应用展望,电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。1EDA技术将广泛应用与高校电类专业的实践教学工作中 2EDA技术将广泛应用于科研工作和新产品的开发中 3EDA技术将广泛应用于专用集成电路的开发 4EDA技术将广泛应用于传统机电设备的升级换代和技术改造,EDA技术与VHDL实用教程,第1章 EDA技术概述,21,EDA技术与VHDL实用教程,要

11、求熟悉面向FPGA/CPLD的EDA技术初步理论知识知识点理解可编程逻辑器件掌握面向FPGA/CPLD的EDA设计流程掌握面向FPGA/CPLD的常用EDA工具理解硬件描述语言重点和难点 EDA设计流程 Quartus 软件包 硬件描述语言VHDL语言,22,EDA技术与VHDL实用教程,23,第1章 EDA技术概述,EDA技术与VHDL实用教程,24,1.1 可编程逻辑器件,一、可编程逻辑器件概述(一)PLD/FPGA介绍CPLD:复杂可编程逻辑器件Complex Programmable Logic DeviceFPGA:现场可编程门阵列Field Programmable Gate Ar

12、ray,PLD能做什么?PLD能完成任何数字器件的功能,上至高性能的CPU,下至简单的74系列电路,都可以用PLD来实现.PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法或是硬件描述语言,自由的设计一个数字系统。如何使用PLD?数字电路基础,会使用计算机,有一定编程基础。,25,二、PLD分类,26,EDA技术与VHDL实用教程,27,三、PLD/FPGA的结构和原理(一)基于乘积项(Product-Term)的PLD结构(二)乘积项结构 PLD 的逻辑实现原理(三)查找表(Look-Up-Table)的原理与结构(四)查找表结构的FPGA逻辑实现原理,28,例:用PROM完成

13、半加器逻辑阵列,29,CPLD的结构与可编程原理,30,FPGA的结构与工作原理,查找表逻辑结构,EDA技术与VHDL实用教程,31,FPGA:SRAM工艺;直接烧写程序掉电后程序丢失;理论上擦写100万次以上;一般使用需要外挂 EEPROM,可以达到几百万门电路。比如ALTERA公司的 APEX、FLEX、ACEX、STRATIX、CYCLONE系列。CPLD:EPPROM或FLASH工艺;直接烧写程序掉电后程序不会消失;一般可以擦写几百次,并且一般宏单元在512以下。(比如ALTERA的AX3000/5000/7000/9000和CLASSIC系列)。,四、选择PLD还是FPGA,EDA技

14、术与VHDL实用教程,32,PLD适合用于设计译码等复杂组合逻辑。PLD分解组合逻辑的功能很强。而FPGA的一个LUT只能处理4输入的组合逻辑。如果设计中使用到大量触发器,那么使用FPGA就是一个很好选择。FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。,EDA技术与VHDL实用教程,33,1.2 面向FPGA/CPLD的EDA设计流程,EDA技术与VHDL实用教程,34,1源程序的编辑和编译常用的源程序输入方式有三种:(1)原理图输入方式

15、:(2)状态图输入方式:(3)VHDL软件程序的文本方式:,EDA技术与VHDL实用教程,35,利用EDA工具提供的图形编辑器以原理图的方式进行输入。原理图输入方式比较容易掌握,直观且方便。,(1)原理图输入方式:,EDA技术与VHDL实用教程,36,(2)状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成VHDL程序。这种设计方式简化了状态机的设计,比较流行。(3)VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。,2逻辑综合和优化,逻辑综合,就是将电路的高级语言

16、描述转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。逻辑映射的过程,就是将电路的高级描述,针对给定硬件结构组件,进行编译,优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。而网表文件就是按照某种规定描述电路的基本组成及如何相互连接的关系的文件。,37,3目标器件的布线/适配,所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的目标器件进行逻辑映射操作。其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。,38,4目标器件的编程/下载,如果编译、综合、布线/适配和行为仿真、功

17、能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。,39,5设计过程中的有关仿真,设计过程中的仿真有三种,它们是:行为仿真:该仿真只是根据VHDL的语义进行的,与具体电路没有关系。功能仿真:就是将综合后的VHDL网表文件再送到VHDL仿真器所进行的仿真。时序仿真:该仿真已将器件特性考虑进去,因此可以得到精确的时序仿真结果。,40,6硬件仿真/硬件测试,所谓硬件仿真,就是在ASIC设计中,常利用FPGA对系统的设计进行功能检测,通过后再将其VHDL设计以ASIC形式实现,这一

18、过程称为硬件仿真。所谓硬件测试,就是针对FPGA或CPLD直接用于应用系统的设计中,将下载文件下载到FPGA后,对系统的设计进行的功能检测,这一过程称为硬件测试。注意:VHDL仿真器和VHDL综合器对设计的理解常常是不一致的,固需要硬件仿真和测试。,41,二、分析方法,基于EDA技术的设计方法则是自顶向下进行设计的。即首先采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术,确保设计的可行性与正确性的前提下,完成功能确认。然后利用EDA工具的逻辑综合功能,把功能描述转换成某一具体目标芯片的网表文件,输出给该器件厂商的布局

19、布线适配器,进行逻辑映射及布局布线,再利用产生的仿真文件进行包括功能和时序的验证,以确保实际系统的性能。,42,EDA技术与VHDL实用教程,43,采用自顶向下的设计方法有如下优点:(1)自顶向下设计方法是一种模块化设计方法。符合常规的逻辑思维习惯;(2)高层设计同器件无关,可以完全独立于目标器件的结构。(3)采用硬件描述语言,设计易于在各种集成电路工艺或可编程器件之间移植。(4)适合多个设计者同时进行设计。,三、表示方法,1、文本表示方式(VHDL)2、图形表示方式(原理图,状态图、波形图)3、文本、图形混用方式,44,EDA技术与VHDL实用教程,45,四、实现方法,1硬件描述语言编程实现

20、法 2原理图设计实现法3参数可设置兆功能块实现法4软的或硬的IP核实现法,EDA技术与VHDL实用教程,46,1.3 面向FPGA/CPLD的常用EDA工具,目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:Altera,Xilinx和Lattice,其中Altera和Xilinx两家公司共占有60%以上的市场份额。通常来说,在欧洲用XILINX的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。对于 FPGA/CPLD开发软件,国内很多人喜欢用Altera 公司MaxPlus II、Quartus II

21、,考虑到Quartus II是MaxPlus II的升级产品,所以本书的FPGA/CPLD的常用EDA工具主要介绍Quartus II。,EDA技术与VHDL实用教程,47,Altera EDA软件工具Quartus II简介,设计流程图,EDA技术与VHDL实用教程,48,设计输入文件类型,EDA技术与VHDL实用教程,49,1.4 硬件描述语言,一、硬件描述语言 常用硬件描述语言有VHDL、Verilog和ABEL语言。下面从使用方面将三者进行对比。1逻辑描述层次2设计要求3综合过程4对综合器的要求5支持的EDA工具 6国际化程度,EDA技术与VHDL实用教程,50,本章小结,第2章 Qu

22、artus II原理图输入设计法入门,51,EDA技术与VHDL实用教程,作者:苏莉萍 陈东 廖超平,要求 掌握Quartus II原理图输入法和Quartus II 器件编程知识点理解Quartus II原理图输入法理解Quartus II 器件编程重点和难点Quartus II原理图输入法,52,EDA技术与VHDL实用教程,作者:苏莉萍 陈东 廖超平,第2章 Quartus II原理图输入设计法入门,EDA技术与VHDL实用教程,2.1 Quartus II原理图输入法,应用数字逻辑电路的基本知识,使用Quartus II原理图输入法可非常方便地进行数字系统的设计。应用Quartus I

23、I原理图输入法,还可以把原有的使用中小规模的通用数字集成电路设计的数字系统移埴到FPGA或CPLD中。下面以一个一位数值比较器的设计为例说明Quartus II原理图输入法的使用方法。,EDA技术与VHDL实用教程,一、建立工程文件夹1新建一个文件夹作为工程项目目录首先在计算机中建立一个文件夹作为工程项目目录,此工程目录不能是根目录,比如D:,只能是根目录下的目录,比如D:EDA_bookcodeChapter2 BiJiaoQi,EDA技术与VHDL实用教程,2建立工程项目 运行Quatrus II软件,执行File=New Project Wizad 命令,建立工程。如下图示。,EDA技术

24、与VHDL实用教程,在图2-2界面中点击Next按扭。,EDA技术与VHDL实用教程,在所弹出的New Project Wizard对话框中,填写Diectory,Name,Top-Level Entity等项目。其中第一、第二、第三个文本框分别是工程项目目录、项目名称和项目顶层设计实体的名称。,EDA技术与VHDL实用教程,按Next按钮,出现添加工程文件的对话框如图,EDA技术与VHDL实用教程,若原来已有文件,可选择,这里直接按Next进行下一步,选择FPGA器件的型号如图示。,EDA技术与VHDL实用教程,在Family下拉框中,根据需要选择一种型号的FPGA;然后在“Availabl

25、e devices:”中根据需要的FPGA型号选择FPGA型号,注意在Filters一栏中选中“Show Advanced Devices”以显示所有的器件型号。再点击Next按钮,出现下面的对话框。,EDA技术与VHDL实用教程,这是选择其它EDA工具的对话框,我们使用Quatrus II的集成环境进行开发,因此不作任何改动。按Next进入工程的信息总概对话框如下图。按Finish按钮就建立了一个空的工程项目。,EDA技术与VHDL实用教程,1 建立原理图文件 执行File=New命令,弹出新建文件对话框如图。,二、编辑设计图形文件,EDA技术与VHDL实用教程,执行File=Save as

26、命令,把它另存为文件名是BiJiaoQi的原理图文件,文件后缀为.bdf。将“Add file to current project”选项选中,使该文件添加到刚建立的工程中去。如图下示。,EDA技术与VHDL实用教程,2编辑输入原理图文件(1)元件的选择与放置(2)连接各个元件符号(3)设定各输入输出管脚名,EDA技术与VHDL实用教程,EDA技术与VHDL实用教程,完成原理图编辑输入后,保存设计图形文件,就可编译设计图形文件。执行Processing=Start Compilation,进行编译。编译结束后,会出现如下页图对话框,对话框会显示编译的错误和警告的情况。若有错误,则可先双击编译器

27、界面下方出现的第一个错误提示,可使第一个错误处改变颜色。检查纠正第一个错误后保存再编译,如果还有错误,重复以上操作,直至最后通过。最后通过时应没有错误提示但可有警告提示。,三、编译设计图形文件,EDA技术与VHDL实用教程,可以通过查看编译报告了解有关情况,比如定时分析情况,下图是编译报告中关于每个输出信号对输入信号的延迟时间的报告。,EDA技术与VHDL实用教程,(1)新建用于仿真的波形文件(2)添加需要的输入输出引脚(3)设置仿真时间(4)设置栅格的大小(5)设置输入信号的波形(6)保存文件,保存名为默认名(7)进行功能仿真,四、时序仿真设计文件,EDA技术与VHDL实用教程,执行File

28、=Great/Update=Great Symbol Files for Current File命令,将本设计电路封装生成一个元件符号,供以后在原理图编辑器下进行层次设计时调用。,五、生成元件符号,EDA技术与VHDL实用教程,使用Quartus II 软件成功编译工程之后,就可以对 Altera 器件进行编程或配置,进而进行硬件测试。Quartus II Compiler 的 Assembler 模块生成POF 和 SOF编程文件,Quartus II Programmer 可以用编程文件与 Altera 编程硬件一起对器件进行编程或配置。还可以使用 Quartus II Programm

29、er 的独立版本对器件进行编程和配置。,22 Quartus II 器件编程,EDA技术与VHDL实用教程,一、编程硬件与编程模式所使用的Altera 编程硬件可以是 Master Blaster、ByteBlasterMV、ByteBlaster II 或USB-Blaster 下载电缆或 Altera 编程单元(APU)。国内许多开发板和实验箱使用ByteBlasterMV或ByteBlaster II下载电缆。具体情况请查看所使用的开发板和实验箱的有关所明。,EDA技术与VHDL实用教程,Programmer 具有四种编程模式:被动串行模式(PS Mode)、JTAG 模式、主动串行编程

30、模式(AS Mode)和插座内编程模式(In-Socket)。被动串行和JTAG编程模式使用 Altera 编程硬件对单个或多个器件进行编程。主动串行编程模式使用Altera编程硬件对单个EPCS1或EPCS4 串行配置器件进行编程。插座内编程模式使用 Altera 编程硬件对单个 CPLD 或配置器件进行编程。,EDA技术与VHDL实用教程,二、器件设置和引脚的锁定,1 器件的选择 2选择配置器件的工作方式(可不做)3选择配置器件(使用EPCS器件的主动串行编程模式时)4选择闲置引脚的状态(可不做)5引脚的锁定,EDA技术与VHDL实用教程,三、编程下载设计文件,1JTAG 模式编程下载(1

31、)硬件连接;(2)打开编程窗口、选择编程模式和配置文件;(3)设置编程器(若是初次安装时);(4)配置下载。,EDA技术与VHDL实用教程,2主动串行编程模式(AS Mode)(1)硬件连接(2)打开编程窗口(3)选择编程模式和配置文件(4)设置编程器(若是初次安装时)(5)编程下载,EDA技术与VHDL实用教程,四、设计电路硬件调试 下载成功后即可进行设计电路硬件调试。具体方法应考虑所设计电路功能和开发板或实验箱的具体情况,这里不做详细介绍。,EDA技术与VHDL实用教程,本章小结,EDA技术与VHDL实用教程,要求 进一步掌握Quartus II原理图输入法。知识点原理图输入法中Max+p

32、lusII老式宏函数的应用原理图输入法中LPM函数的应用原理图输入法中的层次化设计 重点和难点 Max+plusII老式宏函数在原理图输入法中的应用原理图输入法中的层次化设计,EDA技术与VHDL实用教程,第3章 Quartus II原理图输入法深入,EDA技术与VHDL实用教程,3.1 原理图输入法中Max+plusII老式宏函数的应用,在Quartus II原理图输入法中,可供使用的元件库除了基本逻辑元件库以外,还有Max+plusII库和LPM函数元件库。,要将设计文件保存至工程文件夹,并设置成current file,否则,编译不成功;Compiler出错的原因:连线不实、不在工程文件

33、夹下等;建立波形文件的方法;仿真之前,应先设置end time;以便有足够长的仿真时间;仿真变量的设置:只给输入变量加入,输出是结果,是用来验证电路正确与否的,故输出不能设值;最好在全局范围内设值,否则,保存的波形不好看.,原理图输入法常见错误,EDA技术与VHDL实用教程,例31 用74151设计一个三人表决电路。三人表决电路的真值表如下:,EDA技术与VHDL实用教程,其最小项表达式是:根据y的最小项表达式,就可知道使用74151设计的三人表决电路的原理图。,EDA技术与VHDL实用教程,同时,波形仿真结果如下:,EDA技术与VHDL实用教程,例32 用两块74161设计一个五十进制的计数

34、器。74161是4位二进制加法计数器,将两块74161可得八位二进制加法计数器。其模是256。如果计数器从开始0计数,要构成五十进制的计数器,当计数器的值计到十进制数49即二进制数00110001时,要让两块74161的同步置数端有效,使两块74161同时置零。根据此要求设计电路如下图。,EDA技术与VHDL实用教程,EDA技术与VHDL实用教程,其仿真波形如图:,EDA技术与VHDL实用教程,在原理图输入法中,有三种元件之间的连线:节点(node)总线(bus)一般的不是节点和总线的连线。,EDA技术与VHDL实用教程,随着设计的数字系统越来越复杂,系统中每个模块都要从头开始设计是非常困难的

35、。IP(Intellectual Property)即知识产权的出现使得设计过程变得简单得多。IP核是指将一些在数字电路中常用但比较复杂的功能块,设计成参数可修改的模块,让其他用户可以直接调用这些模块。用户可以在自己的FPGA设计中使用这些严格测试和优化过的模块,减少设计和调试时间,降低开发成本,提高开发效率。,32原理图输入法中LPM函数的应用,EDA技术与VHDL实用教程,IP包括基本宏功能(Megafuncition/PLM)和(MegaCore)两种,在Altera的开发工具Quatrus II中,有一些内带的基本宏功能(Megafuncition/PLM)可供用户使用,本节主要介绍这

36、些Quatrus II内带的基本宏功能。基本宏功能可在原理图设计输入法中使用,也可在HDL设计输入法中使用,本节介绍的是基本宏功能在原理图设计输入法中使用,后者在第五章再做介绍。,EDA技术与VHDL实用教程,EDA技术与VHDL实用教程,例34 lpm_mult 宏函数应用,二、基本宏功能应用实例,EDA技术与VHDL实用教程,通过编译仿真,其仿真波形如图:,EDA技术与VHDL实用教程,例35 lpm_counter 宏函数应用,EDA技术与VHDL实用教程,波形仿真结果:,EDA技术与VHDL实用教程,例36 lpm_bustri 宏函数应用,EDA技术与VHDL实用教程,通过编译仿真,

37、其仿真波形如下图。,EDA技术与VHDL实用教程,例37 lpm_fifo 宏函数应用,EDA技术与VHDL实用教程,通过编译仿真,其仿真波形如图:,EDA技术与VHDL实用教程,层次化设计也称“自顶向下”设计方法,即将一个大的设计项目分解为若干子项目或若干层次来完成。划分是从顶层由高往下,而设计则可先设计底层的电路,然后在高层次的设计中,逐级调用低层次的设计结果。原理图输入法可很方便地进行层次化设计。一般层次化设计法用于较大的项目,但由于篇幅的原因,下面用一个不是很大的项目来说明层次化设计法。,33原理图输入法中的层次化设计,EDA技术与VHDL实用教程,例38 用层次化设计设计一个两位二进

38、制数乘法器。1系统分析两位二进制数相乘,最多可得四位二进制数,系统可分解为两个半加器和几个与门联结而成。2底层电路半加器设计,EDA技术与VHDL实用教程,半加器电路真值表,由半加器的真值表可得,半加器的逻辑表达式如下:s=a XOR b c=a AND b,EDA技术与VHDL实用教程,根据半加器的逻辑表达式,可按下图设计hadd.bdf文件。把hadd.bdf文件存放到文件夹hadd内,并以此文件建立工程,编译通过,执行File=Greate/Update=Greate Symbol Files for Current File命令,生成符号hadd.bsf。,EDA技术与VHDL实用教程

39、,3顶层电路两位二进制数乘法器设计根据系统分析所得结论,可按后页图设计两位二进制数乘法器电路。新建一个工程文件夹mult2,把hadd.bdf、hadd.bsf文件放入其中,新建一个原理图文件,使用插入符号命令,出现选择符号的界面,选择hadd.bsf将它放置于原理图编辑区中,以mult2.bdf命名并保存到mult2文件夹中。以此文件新建工程。调出有关其他元件并按下图连线,保存、编译并通过仿真。,EDA技术与VHDL实用教程,EDA技术与VHDL实用教程,通过编译仿真,其仿真波形如图:,本例的底层电路符号用原理图设计输入法设计后生成,还可以用以后介绍的文本设计输入法设计后生成,这样的设计方法

40、称混合设计输入法。,EDA技术与VHDL实用教程,本章小结,第4章 VHDL设计入门,109,EDA技术与VHDL实用教程,要求掌握VHDL语言的基本知识和运用VHDL语言分析、设计逻辑电路的基本方法。知识点理解Quartus II的HDL输入法理解VHDL程序的基本结构理解VHDL程序的顺序结构理解VHDL程序的并行结构理解VHDL程序的语言要素 重点和难点Quartus II的HDL输入法VHDL程序的顺序结构VHDL程序的并行结构,110,EDA技术与VHDL实用教程,第4章 VHDL设计入门,111,EDA技术与VHDL实用教程,4.1 Quartus II的HDL输入法,HDL输入法

41、是Quartus II的常用输入法,有AHDL、VHDL和Verilog HDL三种语言,本书主要介绍VHDL语言.,112,EDA技术与VHDL实用教程,一、输入编辑VHDL文件(实际操作)1 建立工程项目 2 建立VHDL文件 3 编辑VHDL文件二、编译仿真VHDL文件1编译VHDL文件 2仿真VHDL文件,113,EDA技术与VHDL实用教程,一个完整的VHDL语言程序通常包含:库(Library)程序包(Package)声明;实体(Entity)声明;构造体(Architecture);配置(Configuration)。,4.2 VHDL程序的基本结构,114,EDA技术与VHDL

42、实用教程,一、库、程序包 1库与程序包的概念程序包(package)是预先定义或设计好的数据类型、子程序和各种设计实体的集合;库(Library)则是用来存储已经完成的程序包等VHDL设计与数据的仓库。库和程序包的引用声明放在设计文件的最前面。,115,EDA技术与VHDL实用教程,2 常见的库:(1)IEEE 库:IEEE 库是最常用的库,它包含:STD_LOGIC_1164、STD_LOGIC _ARITH、STD_LOGIC_ UNSIGNED等程序包,这些程序包包含有IEEE的标准和其他一些工业标准。其中STD_LOGIC_1164程序包最为常用,它是许多其他程序包的基础。(2)STD

43、库:是符合VHDL语言标准的库,使用时不需显式声明,它包含STANDARD、TEXTIO等程序包。,116,EDA技术与VHDL实用教程,(3)ASIC矢量库:各公司提供的ASIC逻辑门库。(4)WORK 库:为现行作业库,存放设计者的VHDL语言程序,是用户自己的库。使用时不需显式声明,但必需在根目录下建立一个文件夹作为用户项目目录,这目录将被综合器默认为WORK 库,但WORK 库并不以这个文件夹的名字为名字,它的名字是WORK。(5)用户自定义库:用户自己定义的库。,117,3、程序包的定义(了解)PACKAGE 程序包名 IS 程序包首说明语句;ENDPACKAGE 程序包名;PACK

44、AGE BODY 程序包名 IS 程序包体说明语句;END PACKAGE BODY 包集合名;重点提示程序包体为可选项,程序包首与程序包体名字应相同;,118,4、库与程序包的使用 除WORK、STD库外,其他库与程序包使用前首先要声明。格式如下:LIBRARY 库名;USE 库名.程序包名.项目名;USE 库名.程序包名.ALL;最后的一个USE语句中的ALL表示使用这个程序包中的所有资源。,119,例如:LIBRARY ALTERA;USE ALTERA.MAXPLUS2.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;库说明的作用范围从实体开始

45、到其所属构造体、配置为止。使用下面语句使用用户定义的程序包;USE work.包名.项目名;USE work.包名.ALL;,120,实体(以下摘自北师大出版社教材)设计实体可以是整个系统,如像CPU那样复杂的系统,也可以是一个芯片、逻辑器件或者是一个最简单的门电路。设计实体可以代表任何一个模块,它可以是某个层次中的一个元件,也可以是设计中的顶层模块。,121,二、实体 实体(ENTITY)VHDL程序的主体,包括实体声明和结构体两部分。实体声明部分描述所设计的电路与外部电路的接口,指定其输入/输出端口或引脚。结构体则用来规定所设计电路的内部结构和输入与输出引脚间的逻辑关系。,122,实体声明

46、格式是:,ENTITY 实体名 IS GENERIC(类属表);-类属参数声明 PROT(端口表);-端口声明END ENTITY 实体名;,123,1、类属参数声明(了解),放在端口声明之前,指定所设计电路所用到的类属参数,如矢量位数、时间单位等,主要在进行考虑一般性的设计时用到,通过改变这些类属参数可适应不同情况要求。例如:GENERIC(n:POSITIVE:=8);-声明一个类属参数。,124,2、端口声明,描述所设计的电路与外部电路的接口,指定其输入/输出端口或引脚。其格式如下:,PORT(端口名:端口方向 端口数据类型;端口名:端口方向 端口数据类型);,125,下面是一个实体声明

47、的例子(参照课本P129)ENTITY and_n IS GENERIC(n:POSITIVE:=8);-声明一个类属参数。PORT(a:IN BIT_VECTOR(n-1)DOWNTO 0);f:OUT BIT);-bit为位数据类型,只有0和1两个值,bit_vector是位矢量。END and_n;,126,三、结构体,结构体则用来规定所设计电路的内部结构和输入输出引脚间的逻辑关系。其格式如下:,ARCHITECTURE 结构体名 OF 实体名 IS 声明语句BEGIN 功能描述语句END ARCHITECTURE 结构体名;,127,1、结构体内的声明语句 结构体的声明部分用来声明只能

48、用于所设计电路内部的常数、数据类型、信号、元件和子程序。这些声明只能用于这个结构体中。2、功能描述语句的类型(1)进程语句,其内部为顺序语句。(2)并行过程调用语句(3)并行的信号赋值语句包括简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。(4)元件例化语句(5)生成语句,128,下面是一个实体与结构体的具体例子:ENTITY adder IS PORT(op1,op2:IN UNSIGNED(7 downto 0);Result:OUT INTEGER);END adder;ARCHITECTURE maxpld OF adder IS BEGIN Result=CONV_INTEGE

49、R(op1+op2);END maxpld;,129,四、配置(了解),一个实体可有几个结构体。配置是在一个实体有几个结构体时,用来为实体指定特定的情况下使用哪个特定的结构体。在仿真时可利用配置为实体选择不同的结构体。其格式如下:,CONFIGURATION 配置名 OF 实体名 IS FOR 结构体名 END FOR;END CONFIGURATION 配置名;,130,例1,library ieee;use ieee.std_logic_1164.all;entity mux21a isport(a,b:in std_logic;s:in std_logic;y:out std_logic

50、);end entity mux21a;architecture one of mux21a is begin y=a when s=0 else b;end architecture one;,例2,ENTITY dtff IS GENERIC(initial:BIT:=1);PORT(d,clock:IN BIT;q:BUFFER BIT:=initial);END dtff;ARCHITECTURE a OF dtff IS BEGIN q=d WHEN(clockEVENT AND clock=1);END a;,例3,library ieee;use ieee.std_logic_1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号