VHDL与数字电路设计(专业技术)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《VHDL与数字电路设计(专业技术)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 数字电路 设计 专业技术 课件
- 资源描述:
-
1、VHDL与数字电路设计与数字电路设计主讲:崔主讲:崔 刚刚 北京工业大学电控学院电工电子中心北京工业大学电控学院电工电子中心2005年年9月月11高级教学目录目录 概述概述第一章第一章 VHDL的程序结构和软件操作的程序结构和软件操作 第二章第二章 数据类型与数据对象的定义数据类型与数据对象的定义第三章第三章 并行赋值语句并行赋值语句第四章第四章 顺序赋值语句顺序赋值语句第五章第五章 组合逻辑电路的设计组合逻辑电路的设计第六章第六章 时序逻辑电路的设计时序逻辑电路的设计第七章第七章 子程序、库和程序包子程序、库和程序包第八章第八章 CPLD和和FPGA的结构与工作原理的结构与工作原理 第九章第
2、九章 数字钟电路的设计数字钟电路的设计 2高级教学本节主要内容本节主要内容传统数字电路设计方法传统数字电路设计方法EDA设计方法设计方法PLD器件器件 PLD器件设计流程器件设计流程文本设计输入文本设计输入VHDL程序设计程序设计3高级教学数字电子技术的基本知识回顾数字电子技术的基本知识回顾组合逻辑电路组合逻辑电路 编码器、译码器、数据选择器、加法器、数值比较器等编码器、译码器、数据选择器、加法器、数值比较器等时序逻辑电路时序逻辑电路同步时序逻辑电路同步时序逻辑电路异步时序逻辑电路异步时序逻辑电路寄存器、移位寄存器、计数器、序列信号发生器寄存器、移位寄存器、计数器、序列信号发生器4高级教学一、
3、传统设计方法一、传统设计方法(1)首先确定可用的元器件;)首先确定可用的元器件;(2)根据这些器件进行逻辑设计,完成各模块;)根据这些器件进行逻辑设计,完成各模块;(3)将各模块进行连接,最后形成系统;)将各模块进行连接,最后形成系统;(4)而后经调试、测量观察整个系统是否达到规定)而后经调试、测量观察整个系统是否达到规定的性能指标。的性能指标。传统的设计方法是基于传统的设计方法是基于中小规模集成电路器件进中小规模集成电路器件进行设计(如行设计(如74系列及其改进系列、系列及其改进系列、CC4000系列、系列、74HC系列等都属于通用型数字集成电路),系列等都属于通用型数字集成电路),而而且是
4、采用自底向上进行设计:且是采用自底向上进行设计:5高级教学EDA(Electronics Design Automation)即电子设计)即电子设计自动化技术,是利用计算机工作平台,从事电子系自动化技术,是利用计算机工作平台,从事电子系统和电路设计的一项技术。统和电路设计的一项技术。EDA技术为电子系统设计带来了这样的变化:技术为电子系统设计带来了这样的变化:(1)设计效率提高,设计周期缩短;)设计效率提高,设计周期缩短;(2)设计质量提高;)设计质量提高;(3)设计成本降低;)设计成本降低;(4)能更充分地发挥设计人员的创造性;)能更充分地发挥设计人员的创造性;(5)设计成果的重用性大大提高
5、,省去了不必要的)设计成果的重用性大大提高,省去了不必要的重复劳动。重复劳动。二、二、EDA设计方法设计方法 6高级教学自顶向下的设计方法自顶向下的设计方法数字电路的数字电路的EDA设计是基于设计是基于PLD进行设计的,支持自进行设计的,支持自顶向下的设计方法:顶向下的设计方法:(1)首先从系统设计入手,在顶层进行功能划分和)首先从系统设计入手,在顶层进行功能划分和结构设计;结构设计;(2)然后再逐级设计底层的结构;)然后再逐级设计底层的结构;(3)并在系统级采用仿真手段验证设计的正确性;)并在系统级采用仿真手段验证设计的正确性;(4)最后完成整个系统的设计,实现从设计、仿真、)最后完成整个系
6、统的设计,实现从设计、仿真、测试一体化。测试一体化。7高级教学传统设计方法传统设计方法 vs EDA设计方法设计方法 传统设计方法传统设计方法EDA设计方法设计方法自底向上自底向上手动设计手动设计软硬件分离软硬件分离原理图设计方式原理图设计方式系统功能固定系统功能固定不易仿真不易仿真难测试修改难测试修改模块难移植共享模块难移植共享设计周期长设计周期长自顶向上自顶向上自动设计自动设计打破软硬件屏障打破软硬件屏障原理图、原理图、HDL等设计方式等设计方式系统功能易改系统功能易改易仿真易仿真易测试修改易测试修改模块可移植共享模块可移植共享设计周期短设计周期短8高级教学三、三、PLD器件器件 (一)出
7、现的背景(一)出现的背景 如果能把所设计的数字系统做成如果能把所设计的数字系统做成一片大规模集成一片大规模集成电路电路,则不仅能减小电路的,则不仅能减小电路的体积体积、重量重量、功耗功耗,而且,而且会使电路的会使电路的可靠性可靠性大为提高。大为提高。为某种专门用途而设计的集成电路叫做专用集成为某种专门用途而设计的集成电路叫做专用集成电路,即所谓的电路,即所谓的ASIC(Application Specific Integrated Circuit的缩写)。的缩写)。在用量不大的情况下,设计和制造这样的专用集成在用量不大的情况下,设计和制造这样的专用集成电路成本很高,而且设计、制造的周期也较长。
8、电路成本很高,而且设计、制造的周期也较长。可编程逻辑器件的研制成功为解决上述问题提供了可编程逻辑器件的研制成功为解决上述问题提供了比较理想的途径。比较理想的途径。9高级教学(二)(二)PLD概述概述PLD是可编程逻辑器件(是可编程逻辑器件(Programmable Logic Device)的英文缩写。的英文缩写。可编程逻辑器件是一种可编程逻辑器件是一种数字集成电路的半成品数字集成电路的半成品,在其,在其芯片上芯片上按一定排列方式按一定排列方式集成了集成了大量的逻辑门大量的逻辑门和和触发器触发器等基本逻辑元件。等基本逻辑元件。通过编程可以设置其逻辑功能。通过编程可以设置其逻辑功能。PLD编程编
9、程:利用利用开发工具开发工具对对PLD进行加工,即按设计要求将进行加工,即按设计要求将这些这些片内的元件连接片内的元件连接起来,使之完成某个逻辑电路或系统起来,使之完成某个逻辑电路或系统的功能,成为一个专用集成电路(的功能,成为一个专用集成电路(ASICApplication Specific Integrated Circuit)。)。10高级教学PLD开发系统开发系统PLD开发系统包括硬件和软件两部分。开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。软件部分:集成开发系统。Altera公司:公司:Maxplus、
10、Quartus Xilinx公司:公司:Foundation、ISE Lattice公司:公司:Synario System、ispEXPERT System11高级教学四、四、PLD设计流程设计流程设计准备设计准备设计输入设计输入设计处理设计处理器件编程器件编程功能仿真功能仿真时序仿真时序仿真器件测试器件测试12高级教学PLD设计准备设计准备在设计之前,首先要进行方案论证和器件选择等设计在设计之前,首先要进行方案论证和器件选择等设计准备工作。准备工作。设计者首先要根据任务要求,判断系统的可行性。设计者首先要根据任务要求,判断系统的可行性。系统的可行性要受到逻辑要求合理性、成本、开发条系统的可
11、行性要受到逻辑要求合理性、成本、开发条件、器件供应等方面的约束。件、器件供应等方面的约束。若系统可行,则根据系统所完成的功能及复杂程若系统可行,则根据系统所完成的功能及复杂程度,对器件本身的资源和成本、工作速度及连线的可度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方案和合适的布性等方面进行权衡,选择合适的设计方案和合适的器件类型。器件类型。13高级教学设计输入设计输入 将所设计的电路的逻辑功能按照开发系统要求的形将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。式表达出来的过程称为设计输入。通常,设计输入有如下三种方式:通常,设计输入
12、有如下三种方式:(1)原理图输入方式)原理图输入方式 适用于对系统及各部分电路很熟悉的场合。适用于对系统及各部分电路很熟悉的场合。(2)硬件描述语言输入方式)硬件描述语言输入方式 硬件描述语言是用文本方式描述设计,硬件描述语硬件描述语言是用文本方式描述设计,硬件描述语言有言有ABEL、AHDL、VHDL、Verilog等,其中等,其中VHDL和和Verilog已成为已成为IEEE标准。标准。(3)波形输入方式)波形输入方式14高级教学设计处理设计处理n逻辑优化逻辑优化 把逻辑描述转变为最适合在器件中实现的形式,把逻辑描述转变为最适合在器件中实现的形式,优化使设计所占用的资源最少。优化使设计所占
13、用的资源最少。n逻辑综合逻辑综合 根据设计描述,对给定的硬件结构组件,最终获根据设计描述,对给定的硬件结构组件,最终获得门级电路甚至更底层的电路描述文件,即将多得门级电路甚至更底层的电路描述文件,即将多个模块化设计文件合并为一个网表文件。个模块化设计文件合并为一个网表文件。n适配适配 确定优化后的逻辑能否与器件中的宏单元和确定优化后的逻辑能否与器件中的宏单元和I/O单单元适配。元适配。n分割分割 将大的设计分割为多个便于器件内部资源实现的将大的设计分割为多个便于器件内部资源实现的逻辑小块的形式。逻辑小块的形式。15高级教学设计校验设计校验设计校验过程包括功能仿真和时序仿真。设计校验过程包括功能
14、仿真和时序仿真。n功能仿真功能仿真n时序仿真时序仿真16高级教学器件编程器件编程 器件编程就是将开发系统生成的目标文件下载器件编程就是将开发系统生成的目标文件下载到可编程逻辑器件中,到可编程逻辑器件中,来定义内部模块的逻辑来定义内部模块的逻辑功能以及它们的相互连接关系。功能以及它们的相互连接关系。两种编程方式:两种编程方式:n编程器编程器n下载电缆下载电缆17高级教学PLD开发系统开发系统PLD开发系统包括硬件和软件两部分。开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。软件部分:集成开发系统。Altera公司:公司
15、:Maxplus、Quartus Xilinx公司:公司:Foundation、ISE Lattice公司:公司:Synario System、ispEXPERT System18高级教学设计举例设计举例设计内容:设计内容:十进制计数器电路设计。十进制计数器电路设计。PLD器件:器件:ACEX1K系列的系列的EP1K30QC208。开发系统:开发系统:MAX+plus系统。系统。编程方式:下载电缆。编程方式:下载电缆。实验下载板实验下载板19高级教学设计过程设计过程1、设计输入、设计输入 VHDL 演示演示12、逻辑验证、逻辑验证 演示演示23、设计处理、设计处理 引脚设定引脚设定 演示演示3
16、4、器件编程、器件编程 连接下载电缆连接下载电缆 演示演示420高级教学三、三、PLD电路设计的特点电路设计的特点1、设计简单,方便;、设计简单,方便;2、电路系统可以集成在一片芯片上;、电路系统可以集成在一片芯片上;3、电路设计不依赖于器件进行设计;、电路设计不依赖于器件进行设计;4、电路系统很容易完善和升级。、电路系统很容易完善和升级。器件选择:(器件选择:(1)电路系统所完成的功能及复杂程度;)电路系统所完成的功能及复杂程度;(2)器件本身的资源和成本、性能参数、)器件本身的资源和成本、性能参数、器件编程工艺等方面进行权衡。器件编程工艺等方面进行权衡。21高级教学 VHDL是非常高速集成
17、电路硬件描述语言是非常高速集成电路硬件描述语言 (Very High speed Integrated Circuit Hardware Description Language)的英文缩写。的英文缩写。五、文本设计输入五、文本设计输入VHDL程序设计程序设计语法和风格语法和风格:(1 1)类似与现代高级编程语言,如)类似与现代高级编程语言,如C语言。语言。(2)VHDL描述的是硬件,它包含许多硬件特描述的是硬件,它包含许多硬件特有的结构。有的结构。22高级教学VHDL设计设计 VS 电路图设计电路图设计VHDL与电路图设计电路的方式不同,与电路图设计电路的方式不同,和电路图设计方式相比:和电
18、路图设计方式相比:(1)易于修改;)易于修改;(2)设计能力更强;)设计能力更强;(3)VHDL语言很方便:独立于器件设计;语言很方便:独立于器件设计;相同的程序代码可以用于不同厂家生产的相同的程序代码可以用于不同厂家生产的器件。器件。23高级教学VHDL程序的基本结构程序的基本结构include“stdio.h”;include“math.h”;int main(void)int a,b,c;a=8;b=9;c=a+b;return c;Library std;Use std.standard.all;Entity and2 is Port(a,b:in bit;c:out bit);End
19、 and2;Architecture a1 of and2 is Begin c=a and b;End a1;VHDL程序程序 C程序程序 24高级教学VHDL程序的基本结构程序的基本结构n(1)LIBRARY和和PACHAGE声明区;声明区;n(2)ENTITY定义区;定义区;n(3)ARCHITECTURE定义区;定义区;25高级教学Library(库)是用于存放预先编译好的(库)是用于存放预先编译好的Package(程序(程序包)。包)。Package(程序包)中定义了基本(程序包)中定义了基本的常数,数据类型,的常数,数据类型,元件及子程序等元件及子程序等。作用:声明在实体和结构体定
20、义中将用到的作用:声明在实体和结构体定义中将用到的 数据类型、元件或子程序等。数据类型、元件或子程序等。声明格式:声明格式:Library 库名库名;Use 库名库名.PACKAGE名名.All;(1)LIBRARY和和PACKAGE声明区声明区26高级教学 作用:作用:ENTITY(实体)用于定义电路的(实体)用于定义电路的外观,即外观,即I/O端口的类型和数量。端口的类型和数量。定义格式:定义格式:Entity 实体名 is Port(a:in bit;b:in bit;c:out bit);End 实体名;(2)ENTITY定义区定义区端口名端口名数据类型数据类型端口模式端口模式27高级
21、教学端口模式端口模式(MODE)有以下几种类型:IN;OUT;INOUT;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)IN OUT BUFFER INOUT(2)ENTITY定义区定义区28高级教学(3)ARCHITECTURE定义区定义区 实体的实现。即实体的实现。即说明电路执行什么动作或实现功能。说明电路执行什么动作或实现功能。定义格式:定义格式:Architecture 结构体名结构体名 of 实体名实体名 is 声明语句;声明语句;(内部信号、变量、常数,元件,子程序声明内部信号、变量、常数,元件,子程序声明)Begin并行描述语句;并行描述语句;End 结构体名;结
22、构体名;29高级教学二输入与门电路设计范例二输入与门电路设计范例 abc电路真值表电路真值表abc00010001011130高级教学二输入与门电路设计范例二输入与门电路设计范例Library std;Use std.standard.all;Entity and2 is Port(a:in bit;b:in bit;c:out bit);End and2;-实体定义结束。实体定义结束。双减号双减号-为为VHDL程序的注释符,类似程序的注释符,类似C语言中的语言中的/注释符。注释符。31高级教学二输入与门电路设计范例二输入与门电路设计范例Architecture Na of and2 is B
23、egin c=0 when a=0 and b=0 else 0 when a=1 and b=0 else 0 when a=0 and b=1 else 1;符号符号=为信号直接赋值符。为信号直接赋值符。End Na;-结构体结构体Na Architecture Nb of and2 is Begin c=a and b;-and 为逻辑与操作为逻辑与操作End Nb;-结构体结构体Nb32高级教学第一章第一章 VHDL的程序结构和软件操作的程序结构和软件操作 1-1 VHDL程序的基本结构程序的基本结构1-2 Max+plus的操作的操作33高级教学1-1 VHDL程序的基本结构程序的基
24、本结构include“stdio.h”;include“math.h”;int main(void)int a,b,c;a=8;b=9;c=a+b;return c;Library std;Use std.standard.all;Entity and2 is Port(a,b:in bit;c:out bit);End and2;Architecture a1 of and2 is Begin c=a and b;End a1;VHDL程序程序 C程序程序 34高级教学1-1 VHDL程序的基本结构程序的基本结构n(1)LIBRARY和和PACHAGE声明区;声明区;n(2)ENTITY定义
25、区;定义区;n(3)ARCHITECTURE定义区;定义区;n(4)CONFIGURATION定义区。定义区。35高级教学Library(库)是用于存放预先编译好的(库)是用于存放预先编译好的Package(程序(程序包)。包)。Package(程序包)中定义了基本(程序包)中定义了基本的常数,数据类型,的常数,数据类型,元件及子程序等元件及子程序等。作用:声明在实体和结构体定义中将用到的作用:声明在实体和结构体定义中将用到的 数据类型、元件或子程序等。数据类型、元件或子程序等。声明格式:声明格式:Library 库名库名;Use 库名库名.PACKAGE名名.All;(1)LIBRARY和和
展开阅读全文