VHDL与数字电路.ppt

上传人:wuy****n92 文档编号:70791025 上传时间:2023-01-28 格式:PPT 页数:306 大小:3.16MB
返回 下载 相关 举报
VHDL与数字电路.ppt_第1页
第1页 / 共306页
VHDL与数字电路.ppt_第2页
第2页 / 共306页
点击查看更多>>
资源描述

《VHDL与数字电路.ppt》由会员分享,可在线阅读,更多相关《VHDL与数字电路.ppt(306页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、VHDL与数字电路设计与数字电路设计主讲:崔主讲:崔 刚刚 北京工业大学电控学院电工电子中心北京工业大学电控学院电工电子中心2005年年9月月1目录目录 概述概述第一章第一章 VHDL的程序结构和软件操作的程序结构和软件操作 第二章第二章 数据类型与数据对象的定义数据类型与数据对象的定义第三章第三章 并行赋值语句并行赋值语句第四章第四章顺序赋值语句顺序赋值语句第五章第五章组合逻辑电路的设计组合逻辑电路的设计第六章第六章时序逻辑电路的设计时序逻辑电路的设计第七章第七章子程序、库和程序包子程序、库和程序包第八章第八章CPLD和和FPGA的结构与工作原理的结构与工作原理第九章第九章数字钟电路的设计数

2、字钟电路的设计本节主要内容本节主要内容传统数字电路设计方法传统数字电路设计方法EDA设计方法设计方法PLD器件器件 PLD器件设计流程器件设计流程文本设计输入文本设计输入VHDL程序设计程序设计数字电子技术的基本知识回顾数字电子技术的基本知识回顾组合逻辑电路组合逻辑电路 编码器、译码器、数据选择器、加法器、数值比较器等编码器、译码器、数据选择器、加法器、数值比较器等时序逻辑电路时序逻辑电路同步时序逻辑电路同步时序逻辑电路异步时序逻辑电路异步时序逻辑电路寄存器、移位寄存器、计数器、序列信号发生器寄存器、移位寄存器、计数器、序列信号发生器一、传统设计方法一、传统设计方法(1)首先确定可用的元器件;

3、)首先确定可用的元器件;(2)根据这些器件进行逻辑设计,完成各模块;)根据这些器件进行逻辑设计,完成各模块;(3)将各模块进行连接,最后形成系统;)将各模块进行连接,最后形成系统;(4)而后经调试、测量观察整个系统是否达到规定)而后经调试、测量观察整个系统是否达到规定的性能指标。的性能指标。传统的设计方法是基于传统的设计方法是基于中小规模集成电路器件进中小规模集成电路器件进行设计(如行设计(如74系列及其改进系列、系列及其改进系列、CC4000系列、系列、74HC系列等都属于通用型数字集成电路),系列等都属于通用型数字集成电路),而而且是采用自底向上进行设计:且是采用自底向上进行设计:EDA(

4、ElectronicsDesignAutomation)即电子设计)即电子设计自动化技术,是利用计算机工作平台,从事电子系自动化技术,是利用计算机工作平台,从事电子系统和电路设计的一项技术。统和电路设计的一项技术。EDA技术为电子系统设计带来了这样的变化:技术为电子系统设计带来了这样的变化:(1)设计效率提高,设计周期缩短;)设计效率提高,设计周期缩短;(2)设计质量提高;)设计质量提高;(3)设计成本降低;)设计成本降低;(4)能更充分地发挥设计人员的创造性;)能更充分地发挥设计人员的创造性;(5)设计成果的重用性大大提高,省去了不必要的)设计成果的重用性大大提高,省去了不必要的重复劳动。重

5、复劳动。二、二、EDA设计方法设计方法 自顶向下的设计方法自顶向下的设计方法数字电路的数字电路的EDA设计是基于设计是基于PLD进行设计的,支持自进行设计的,支持自顶向下的设计方法:顶向下的设计方法:(1)首先从系统设计入手,在顶层进行功能划分和结)首先从系统设计入手,在顶层进行功能划分和结构设计;构设计;(2)然后再逐级设计底层的结构;)然后再逐级设计底层的结构;(3)并在系统级采用仿真手段验证设计的正确性;)并在系统级采用仿真手段验证设计的正确性;(4)最后完成整个系统的设计,实现从设计、仿真、)最后完成整个系统的设计,实现从设计、仿真、测试一体化。测试一体化。传统设计方法传统设计方法 v

6、s EDA设计方法设计方法 传统设计传统设计方法方法EDA设计设计方法方法自底向上自底向上手手动设计动设计软软硬件分离硬件分离原理原理图设计图设计方式方式系系统统功能固定功能固定不易仿真不易仿真难测试难测试修改修改模模块难块难移植共享移植共享设计设计周期周期长长自自顶顶向上向上自自动设计动设计打破打破软软硬件屏障硬件屏障原理原理图图、HDL等等设计设计方式方式系系统统功能易改功能易改易仿真易仿真易易测试测试修改修改模模块块可移植共享可移植共享设计设计周期短周期短三、三、PLD器件器件(一)出现的背景(一)出现的背景如如果果能能把把所所设设计计的的数数字字系系统统做做成成一一片片大大规规模模集集

7、成成电电路路,则则不不仅仅能能减减小小电电路路的的体体积积、重重量量、功功耗耗,而而且且会使电路的会使电路的可靠性可靠性大为提高。大为提高。为为某某种种专专门门用用途途而而设设计计的的集集成成电电路路叫叫做做专专用用集集成成电电路路,即即所所谓谓的的ASIC(ApplicationSpecificIntegratedCircuit的缩写)。的缩写)。在在用用量量不不大大的的情情况况下下,设设计计和和制制造造这这样样的的专专用用集集成成电路成本很高,而且设计、制造的周期也较长。电路成本很高,而且设计、制造的周期也较长。可可编编程程逻逻辑辑器器件件的的研研制制成成功功为为解解决决上上述述问问题题提

8、提供供了了比较理想的途径。比较理想的途径。(二)(二)PLD概述概述PLD是可编程逻辑器件(是可编程逻辑器件(ProgrammableLogicDevice)的英文缩写。)的英文缩写。可编程逻辑器件是一种可编程逻辑器件是一种数字集成电路的半成品数字集成电路的半成品,在其,在其芯片上芯片上按一定排列方式按一定排列方式集成了集成了大量的逻辑门大量的逻辑门和和触发器触发器等基本逻辑元件。等基本逻辑元件。通过编程可以设置其逻辑功能。通过编程可以设置其逻辑功能。PLD编程编程:利用利用开发工具开发工具对对PLD进行加工,即按设计要求将进行加工,即按设计要求将这些这些片内的元件连接片内的元件连接起来,使之

9、完成某个逻辑电路或系统起来,使之完成某个逻辑电路或系统的功能,成为一个专用集成电路(的功能,成为一个专用集成电路(ASICApplicationSpecificIntegratedCircuit)。)。PLD开发系统开发系统PLD开发系统包括硬件和软件两部分。开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。软件部分:集成开发系统。Altera公司:公司:Maxplus、QuartusXilinx公司:公司:Foundation、ISELattice公司:公司:SynarioSystem、ispEXPERTSystem

10、四、四、PLD设计流程设计流程设计准备设计准备设计输入设计输入设计处理设计处理器件编程器件编程功能仿真功能仿真时序仿真时序仿真器件测试器件测试PLD设计准备设计准备在设计之前,首先要进行方案论证和器件选择等设计在设计之前,首先要进行方案论证和器件选择等设计准备工作。准备工作。设计者首先要根据任务要求,判断系统的可行性。设计者首先要根据任务要求,判断系统的可行性。系统的可行性要受到逻辑要求合理性、成本、开发条系统的可行性要受到逻辑要求合理性、成本、开发条件、器件供应等方面的约束。件、器件供应等方面的约束。若系统可行,则根据系统所完成的功能及复杂程若系统可行,则根据系统所完成的功能及复杂程度,对器

11、件本身的资源和成本、工作速度及连线的可度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方案和合适的布性等方面进行权衡,选择合适的设计方案和合适的器件类型。器件类型。设计输入设计输入将所设计的电路的逻辑功能按照开发系统要求的形将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。式表达出来的过程称为设计输入。通常,设计输入有如下三种方式:通常,设计输入有如下三种方式:(1)原理图输入方式)原理图输入方式适用于对系统及各部分电路很熟悉的场合。适用于对系统及各部分电路很熟悉的场合。(2)硬件描述语言输入方式)硬件描述语言输入方式硬件描述语言是用文本

12、方式描述设计,硬件描述语硬件描述语言是用文本方式描述设计,硬件描述语言有言有ABEL、AHDL、VHDL、Verilog等,其中等,其中VHDL和和Verilog已成为已成为IEEE标准。标准。(3)波形输入方式)波形输入方式设计处理设计处理n逻辑优化逻辑优化把逻辑描述转变为最适合在器件中实现的形式,把逻辑描述转变为最适合在器件中实现的形式,优化使设计所占用的资源最少。优化使设计所占用的资源最少。n逻辑综合逻辑综合根据设计描述,对给定的硬件结构组件,最终获根据设计描述,对给定的硬件结构组件,最终获得门级电路甚至更底层的电路描述文件,即将多得门级电路甚至更底层的电路描述文件,即将多个模块化设计文

13、件合并为一个网表文件。个模块化设计文件合并为一个网表文件。n适配适配确定优化后的逻辑能否与器件中的宏单元和确定优化后的逻辑能否与器件中的宏单元和I/O单单元适配。元适配。n分割分割将大的设计分割为多个便于器件内部资源实现的将大的设计分割为多个便于器件内部资源实现的逻辑小块的形式。逻辑小块的形式。设计校验设计校验设计校验过程包括功能仿真和时序仿真。设计校验过程包括功能仿真和时序仿真。n功能仿真功能仿真n时序仿真时序仿真器件编程器件编程器件编程就是将开发系统生成的目标文件下载器件编程就是将开发系统生成的目标文件下载到可编程逻辑器件中,到可编程逻辑器件中,来定义内部模块的逻辑来定义内部模块的逻辑功能

14、以及它们的相互连接关系。功能以及它们的相互连接关系。两种编程方式:两种编程方式:n编程器编程器n下载电缆下载电缆PLD开发系统开发系统PLD开发系统包括硬件和软件两部分。开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。软件部分:集成开发系统。Altera公司:公司:Maxplus、QuartusXilinx公司:公司:Foundation、ISELattice公司:公司:SynarioSystem、ispEXPERTSystem设计举例设计举例设计内容:设计内容:十进制计数器电路设计。十进制计数器电路设计。PLD器件

15、:器件:ACEX1K系列的系列的EP1K30QC208。开发系统:开发系统:MAX+plus系统。系统。编程方式:下载电缆。编程方式:下载电缆。实验下载板实验下载板设计过程设计过程1、设计输入、设计输入VHDL演示演示12、逻辑验证、逻辑验证演示演示23、设计处理、设计处理引脚设定引脚设定演示演示34、器件编程、器件编程连接下载电缆连接下载电缆演示演示41/27/2023三、三、PLD电路设计的特点电路设计的特点1、设计简单,方便;、设计简单,方便;2、电路系统可以集成在一片芯片上;、电路系统可以集成在一片芯片上;3、电路设计不依赖于器件进行设计;、电路设计不依赖于器件进行设计;4、电路系统很

16、容易完善和升级。、电路系统很容易完善和升级。器件选择:(器件选择:(1)电路系统所完成的功能及复杂程度;)电路系统所完成的功能及复杂程度;(2)器件本身的资源和成本、性能参数、)器件本身的资源和成本、性能参数、器件编程工艺等方面进行权衡。器件编程工艺等方面进行权衡。VHDL是非常高速集成电路硬件描述语言是非常高速集成电路硬件描述语言 (Very High speed Integrated Circuit Hardware Description Language)的英文缩写。的英文缩写。五、文本设计输入五、文本设计输入VHDL程序设计程序设计语法和风格语法和风格:(1 1)类似与现代高级编程语

17、言,如)类似与现代高级编程语言,如C语言。语言。(2)VHDL描述的是硬件,它包含许多硬件特有描述的是硬件,它包含许多硬件特有的结构。的结构。VHDL设计设计 VS 电路图设计电路图设计VHDL与与电电路路图图设设计计电电路路的的方方式式不不同同,和电路图设计方式相比:和电路图设计方式相比:(1)易于修改;)易于修改;(2)设计能力更强;)设计能力更强;(3)VHDL语言很方便:独立于器件设计;语言很方便:独立于器件设计;相同的程序代码可以用于不同厂家生产的相同的程序代码可以用于不同厂家生产的器件。器件。VHDL程序的基本结构程序的基本结构include“stdio.h”;include“ma

18、th.h”;int main(void)int a,b,c;a=8;b=9;c=a+b;return c;Librarystd;Usestd.standard.all;Entityand2isPort(a,b:inbit;c:outbit);Endand2;Architecturea1ofand2isBeginc=aandb;Enda1;VHDL程序程序C程序程序VHDL程序的基本结构程序的基本结构n(1)LIBRARY和和PACHAGE声明区;声明区;n(2)ENTITY定义区;定义区;n(3)ARCHITECTURE定义区;定义区;Library(库)是用于存放预先编译好的(库)是用于存放

19、预先编译好的Package(程序(程序包)。包)。Package(程序包)中定义了基本(程序包)中定义了基本的常数,数据类型,的常数,数据类型,元件及子程序等元件及子程序等。作用:声明在实体和结构体定义中将用到的作用:声明在实体和结构体定义中将用到的 数据类型、元件或子程序等。数据类型、元件或子程序等。声明格式:声明格式:Library 库名库名;Use 库名库名.PACKAGE名名.All;(1)LIBRARY和和PACKAGE声明区声明区 作作用用:ENTITY(实实体体)用用于于定定义义电电路路的的外观,即外观,即I/O端口的类型和数量。端口的类型和数量。定义格式:定义格式:Entity

20、 实体名 is Port(a:in bit;b:in bit;c:out bit);End 实体名;(2)ENTITY定义区定义区端口名端口名数据类型数据类型端口模式端口模式端口模式端口模式(MODE)有以下几种类型:IN;OUT;INOUT;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)INOUTBUFFERINOUT(2)ENTITY定义区定义区(3)ARCHITECTURE定义区定义区 实体的实现。即实体的实现。即说明电路执行什么动作或实现功能。说明电路执行什么动作或实现功能。定义格式:定义格式:Architecture结构体名结构体名of实体名实体名is声明语句;声明语

21、句;(内部信号、变量、常数,元件,子程序声明内部信号、变量、常数,元件,子程序声明)Begin并行描述语句;并行描述语句;End结构体名;结构体名;二输入与门电路设计范例二输入与门电路设计范例 abc电路真值表电路真值表abc000100010111二输入与门电路设计范例二输入与门电路设计范例Library std;Use std.standard.all;Entity and2 is Port(a:in bit;b:in bit;c:out bit);End and2;-实体定义结束。实体定义结束。双减号双减号-为为VHDL程序的注释符,类似程序的注释符,类似C语言中的语言中的/注释符。注释

22、符。二输入与门电路设计范例二输入与门电路设计范例Architecture Na of and2 is Begin 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;-结构体结构体Nb第一章第一章 VHDL的程序结构和软件操作的程序结构和软件操作 1-1 VHDL程序的基本结构程序的基

23、本结构1-2 Max+plus的操作的操作1-1 VHDL程序的基本结构程序的基本结构include“stdio.h”;include“math.h”;int main(void)int a,b,c;a=8;b=9;c=a+b;return c;Librarystd;Usestd.standard.all;Entityand2isPort(a,b:inbit;c:outbit);Endand2;Architecturea1ofand2isBeginc=aandb;Enda1;VHDL程序程序C程序程序1-1 VHDL程序的基本结构程序的基本结构n(1)LIBRARY和和PACHAGE声明区;声

24、明区;n(2)ENTITY定义区;定义区;n(3)ARCHITECTURE定义区;定义区;n(4)CONFIGURATION定义区。定义区。Library(库)是用于存放预先编译好的(库)是用于存放预先编译好的Package(程序(程序包)。包)。Package(程序包)中定义了基本(程序包)中定义了基本的常数,数据类型,的常数,数据类型,元件及子程序等元件及子程序等。作用:声明在实体和结构体定义中将用到的作用:声明在实体和结构体定义中将用到的 数据类型、元件或子程序等。数据类型、元件或子程序等。声明格式:声明格式:Library 库名库名;Use 库名库名.PACKAGE名名.All;(1)

25、LIBRARY和和PACKAGE声明区声明区 作作用用:ENTITY(实实体体)用用于于定定义义电电路路的的外观,即外观,即I/O端口的类型和数量。端口的类型和数量。定义格式:定义格式:Entity 实体名 is Port(a:in bit;b:in bit;c:out bit);End 实体名;(2)ENTITY定义区定义区端口名端口名数据类型数据类型端口模式端口模式(2)ENTITY定义区定义区标识符的定义原则:标识符的定义原则:(1)标识符由字母、数字和下划线组成,)标识符由字母、数字和下划线组成,a7_a7_;(2)在标识符不区分大小写,)在标识符不区分大小写,ab和和AB是一样的;是

26、一样的;(3)第一个字符必须是字母,即)第一个字符必须是字母,即a666a666;(4)不允许有两个连续的下划线,)不允许有两个连续的下划线,a_ba_b错误;错误;(5)末尾不能是下划线,)末尾不能是下划线,mname_mname_错误;错误;(6)标识符不能和关键字相同)标识符不能和关键字相同,如如EntityEntity,isis等。等。端口模式端口模式(MODE)有以下几种类型:IN;OUT;INOUT;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)INOUTBUFFERINOUT(2)ENTITY定义区定义区(3)ARCHITECTURE定义区定义区 定义了实体的实现

27、。即电路的具体描述定义了实体的实现。即电路的具体描述,说明电路执,说明电路执行什么动作或实现功能。行什么动作或实现功能。定义格式:定义格式:Architecture 结构体名结构体名 of 实体名实体名 is 声明语句;声明语句;(内部信号、变量、常数,元件,子程序声明内部信号、变量、常数,元件,子程序声明)Begin并行描述语句;并行描述语句;End 结构体名;结构体名;(4)CONFIGURATION定义区定义区 一个完整一个完整VHDL电路设计必须有电路设计必须有一个实体一个实体和和对应的结构体对应的结构体,即,即实体和结构体对实体和结构体对构成一个构成一个完整的完整的VHDL设计。设计

28、。一个实体可对应一个结构体或多个结构体,一个实体可对应一个结构体或多个结构体,即一个实体可以有不同的描述方式。即一个实体可以有不同的描述方式。作用:作用:当实体有多个结构体时,当实体有多个结构体时,系统默认实体选系统默认实体选用最后一个结构体,用最后一个结构体,利用利用CONFIGURATION语句可以任意选择采用语句可以任意选择采用哪一个结构体。哪一个结构体。(4)CONFIGURATION定义区定义区定义格式:定义格式:Configuration 配置名配置名 of 实体名实体名 isfor 选用的结构体名选用的结构体名end for;end configuration 配置名配置名;二输

29、入与门电路设计范例二输入与门电路设计范例 abc电路真值表电路真值表abc000100010111二输入与门电路设计范例二输入与门电路设计范例Library std;Use std.standard.all;Entity and2 is Port(a:in bit;b:in bit;c:out bit);End and2;-实体定义结束。实体定义结束。双减号双减号-为为VHDL程序的注释符,类似程序的注释符,类似C语言中的语言中的/注释符。注释符。二输入与门电路设计范例二输入与门电路设计范例Architecture Na of and2 is Begin c=0 when a=0 and b=

30、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;-结构体结构体Nb二输入与门电路设计范例二输入与门电路设计范例Configuration s1 of and2 isfor naend for;end configuration s1;-结构体配置结束。结构体配置结束。1-2 Max+plus系统的操作系统的操作 Max

31、+plus开发工具是美国开发工具是美国Altera公司自行设公司自行设计的一种软件工具,其全称为计的一种软件工具,其全称为MultipleArrayMatrixandProgrammableLogicUserSystem。它具有它具有原理图输入原理图输入和和文本输入文本输入(采用硬件描述(采用硬件描述语言)两种输入手段,利用该工具所配备的语言)两种输入手段,利用该工具所配备的编辑编辑、编译编译、仿真仿真、时序分析时序分析、芯片编程芯片编程等功能,将设计等功能,将设计电路图或电路描述程序变成基本的逻辑单元写入到电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如可编程的芯片中(如CPL

32、D或或FPGA芯片),作成芯片),作成ASIC芯片。它是芯片。它是EDA设计中不可缺少的一种工具。设计中不可缺少的一种工具。下面我们介绍利用下面我们介绍利用Max+plus系统如何实现如下操作:系统如何实现如下操作:(1)如何编写)如何编写VHDL程序(使用程序(使用TextEditor););(2)如何编译)如何编译VHDL程序(使用程序(使用Compiler););(3)如如何何仿仿真真验验证证VHDL程程序序(使使用用WaveformEditor,Simulator););(4)如何进行芯片的时序分析(使用)如何进行芯片的时序分析(使用TimingAnalyzer););(5)如何安排芯

33、片脚位(使用)如何安排芯片脚位(使用FloorplanEditor););(6)如何下载程序至芯片(使用)如何下载程序至芯片(使用Programmer)。)。1-2 Max+plus系统的操作系统的操作(1)如何编写)如何编写VHDL程序程序a.打开文本编辑器;打开文本编辑器;File/new/Texteditorfileb.编写编写VHDL程序;程序;c.保存文件,保存文件,文件名和定义的实体名必文件名和定义的实体名必须相同,须相同,文件扩展名为文件扩展名为VHD,文件文件存盘的目录不应是根目录或桌面,建议存存盘的目录不应是根目录或桌面,建议存放在放在Max2work或或Maxplus2目录

34、,或其子目录,或其子目录目录。(2)如何编译)如何编译VHDL程序程序a.打开需要编译的文件;打开需要编译的文件;b.设置工程到目前打开的文件设置工程到目前打开的文件;File/Project/SetProjecttoCurrentFile,c.c.打开编译器;打开编译器;点击主菜单点击主菜单MAX+plus/Compiler选项。选项。d.选定选定VHDLVHDL源文件的版本源文件的版本;Interfaces/VHDLNetlistReaderSettingse.打开编译器进行编译。打开编译器进行编译。(3)如何仿真验证)如何仿真验证VHDL程序程序a.打开波形编辑器(打开波形编辑器(Wav

35、eform Editor Waveform Editor);b.确定仿真持续时间(确定仿真持续时间(File/EndTime););c.将输入输出端口名选入将输入输出端口名选入波形编辑器;波形编辑器;d.编辑输入信号波形编辑输入信号波形;e.保存仿真波形文件保存仿真波形文件;f.打开仿真器打开仿真器MAX+plusSimulator进行仿真。在进行仿真。在仿真结束后打开仿真波形文件(点击右下角的仿真结束后打开仿真波形文件(点击右下角的OpenSCF按钮)即可以显示仿真结果。按钮)即可以显示仿真结果。(4)如何进行芯片的时序分析)如何进行芯片的时序分析a.选择要下载的器件型号选择要下载的器件型号

36、;点击主菜单的点击主菜单的Assign/Device项得到项得到Device对对话框。在话框。在DeviceFamily框中选择芯片系列,框中选择芯片系列,在在Devices选择框下选择具体的芯片名,最后选择框下选择具体的芯片名,最后点击点击OK按钮按钮。b.再编译一次;再编译一次;c.打开时序分析器(打开时序分析器(TimingAnalyzer););d.点击点击Start进行时序分析。进行时序分析。(5)如何安排芯片脚位)如何安排芯片脚位a.打开芯片脚位设置窗口;点击主菜单打开芯片脚位设置窗口;点击主菜单Assign/Pin/Location/Chip,出现脚位设置对话框;,出现脚位设置对

37、话框;b.将实体定义的端口名字和下载芯片的管脚进行具体对将实体定义的端口名字和下载芯片的管脚进行具体对应;在应;在NodeName框中输入我们定义的实体端口名字,框中输入我们定义的实体端口名字,然后在然后在Pin列表选项框中输入下载芯片的管脚序号,再列表选项框中输入下载芯片的管脚序号,再点击对话框右下角的点击对话框右下角的Add按钮,将所有端口设置完成按钮,将所有端口设置完成以后,点击以后,点击Ok按钮,则实现实体端口和下载芯片的管按钮,则实现实体端口和下载芯片的管脚的对应;脚的对应;c.再编译一次,将生成可以下载的文件(再编译一次,将生成可以下载的文件(And2.Sof)。)。(6)如何下载

38、程序至芯片)如何下载程序至芯片a.将下载电缆与计算机并口相连,然后给芯片通电将下载电缆与计算机并口相连,然后给芯片通电;b.打开编程器打开编程器Programmer;Options/HardwareSetup,在,在HardwareType选择选择ByteBlaster(MV)方式,则在)方式,则在ParallelPort处显处显示示LPT1,单击,单击OK钮返回钮返回Programmer窗口。窗口。c.下载方式选择下载方式选择;d.选择下载的芯片类型和要下载的文件(选择选择下载的芯片类型和要下载的文件(选择JTAG/MutiDevicJTAGChainSetup)。)。e.点击点击Confi

39、gure进行下载,进行下载,将程序写入芯片中将程序写入芯片中。第二章第二章 数据类型与数据对象的定义数据类型与数据对象的定义n2-1数据类型数据类型n2-2数据对象的定义数据对象的定义n2-3信号运算符信号运算符n2-4信号属性信号属性2-1 数据类型数据类型在在VHDL程序中,我们经常会遇到这样的语句:程序中,我们经常会遇到这样的语句:SignalA:std_logic;VariableB:std_logic_vector(7downto0);ConstantC:integer;数据对象类型数据对象类型数据类型数据类型数据对象名数据对象名2-1-1 逻辑数据逻辑数据类型类型(1)布尔代数()

40、布尔代数(Boolean)型)型;(2)位()位(Bit););(3)位数组类型()位数组类型(Bit_Vector)在在std库的库的standard程序包中进行定义。程序包中进行定义。typeBIT_VECTORisarray(NATURALrange)ofBIT;typeBITis(0,1);typeBOOLEANis(FALSE,TRUE);(4)标准逻辑型()标准逻辑型(Std_Logic););TypeSTD_LOGICis(U,-Uninialized;未初始化;未初始化X,-Forcingunknown;浮接不;浮接不定定0,-Forcing0;低电位;低电位1,-Forcin

41、g1;高电位;高电位Z,-HighImpedance;高阻抗;高阻抗W,-WeakUnknown;弱浮接;弱浮接L,-Weak0;弱低电位;弱低电位H,-Weak1;弱高电位;弱高电位-,-Dontcare;不必理会;不必理会);(5)标准逻辑数组类型()标准逻辑数组类型(Std_Logic_vector););在在ieee库的库的std_logic_1164程序包中定义。程序包中定义。TYPEstd_logic_vectorISARRAY(NATURALRANGE)OFstd_logic;2-1-2 数值数据数值数据类型类型(1)整数()整数(Integer););a.正整数(正整数(POS

42、ITIVE)b.自然数(自然数(NATURAL)在在std库的库的standard程序包中进行定义。程序包中进行定义。subtypePOSITIVEisrange1toINTEGERHigh;TypeINTEGERisrange2147483648to2147483647;subtypeNATURALisrange0toINTEGERHigh;(2)实数()实数(Real)(3)有符号数()有符号数(Signed)无符号数(无符号数(Unsigned)在在ieee库的库的std_logic_arith程序包中定义。程序包中定义。typeREALisrange1.7E38to1.7E38;typ

43、eUNSIGNEDisarray(NATURALrange)ofSTD_LOGIC;typeSIGNEDisarray(NATURALrange)ofSTD_LOGIC;SIGNED的最高位为符号位,其余位为数值位,数值位为的最高位为符号位,其余位为数值位,数值位为补码形式。如:符号数补码形式。如:符号数”1001”表示表示-7。libraryieee;useieee.std_logic_1164.all;use;entitydataisport(a,b:inunsigned(3downto0);-a,b:insigned(3downto0);c:outstd_logic);enddata;a

44、rchitecturem1ofdataisbeginc=1whenabelse0;endm1;当定义成无符号类型时,若当定义成无符号类型时,若a=”1000”,b=0001,即即a=8,b=1则结果则结果c=0;当定义成有符号类型时,若当定义成有符号类型时,若a=”1000”,b=0001,则则a=-8,b=1,则结果,则结果c=1。2-1-3 列举和数组数据类型列举和数组数据类型 (1)列举数据类型()列举数据类型(EnumeratedTypes)定义格式:定义格式:Type列举名称列举名称is(元素(元素1,元素,元素2,););(2)数组数据类型()数组数据类型(ArrayTypes)定

45、义格式:定义格式:Type数组名称数组名称isArray(range)of数据类型;数据类型;2-1-4 数据类型的转换数据类型的转换在在VHDL语言里,不同类型的数据信号之间不能互语言里,不同类型的数据信号之间不能互相赋值。当需要不同类型数据之间传递信息时,就需相赋值。当需要不同类型数据之间传递信息时,就需要要类型转换函数类型转换函数将其中的一种类型数据转换为另一中将其中的一种类型数据转换为另一中数据类型后,再进行信号的传递。数据类型后,再进行信号的传递。例如:例如:SignalY:Std_logic_vector(7downto0);SignalX:Integerrange0to255;Y

46、=CONV_STD_LOGIC_VECTOR(X,8);转换函数有两个参数,转换函数有两个参数,被转换的对象被转换的对象和和转换后转换后的位数的位数。常用的数据类型转换函数常用的数据类型转换函数nCONV_INTEGER将数据类型将数据类型UNSIGNED,SIGNED转换为转换为INTEGER类型类型.nCONV_UNSIGNED将数据类型将数据类型INTEGER,SIGNED转换为转换为UNSIGNED类型类型.nCONV_SIGNED将数据类型将数据类型INTEGER,UNSIGNED转换为转换为SIGNED类型类型.nCONV_STD_LOGIC_VECTOR将数据类型将数据类型INT

47、EGER,UNSIGNED,SIGNED,STD_LOGIC转换为转换为STD_LOGIC_VECTOR类类型型.在库在库ieee的程序包的程序包std_logic_arith中定义中定义2-2数据对象的定义数据对象的定义常用的数据对象有三种:常用的数据对象有三种:常数(常数(Constant)信号(信号(Signal)变量(变量(Variable)2-2-1 常数的定义常数的定义(1)将将数数据据对对象象定定义义为为常常数数,一一方方面面希希望望该该数数据据对对象象的的值值不不会会被被改改变变;另另一一方方面面,为为了了提提高高程程序序的可读性。的可读性。(2)常数为全局量。)常数为全局量。

48、(3)常常数数在在程程序序包包说说明明、实实体体说说明明、结结构构体体描描述述、过程说明、函数调用中使用。过程说明、函数调用中使用。(4)常数的定义格式:)常数的定义格式:Constant 常数名:数据类型常数名:数据类型:=常数值常数值;如:如:ConstantD1:Integer:=3;注意!常数定义的同时进行赋初值。注意!常数定义的同时进行赋初值。常数的应用示例常数的应用示例library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-必需定义必需定义+entity exam1 is port(ip:i

49、n std_logic_vector(3 downto 0);op:out std_logic_vector(3 downto 0);end exam1;architecture m1 of exam1 isconstant num:integer:=6;beginop=ip+num;end m1;2-2-2 信号的定义信号的定义(1)“信信号号”数数据据对对象象,代代表表电电路路内内部部信信号号或或连连接接线线路,其在元件之间起互连作用。路,其在元件之间起互连作用。注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。建议信号对象定义

50、后再进行赋值。建议信号对象定义后再进行赋值。(2)信号为全局量。)信号为全局量。(3)在实体说明、结构体描述和程序包说明中使用。)在实体说明、结构体描述和程序包说明中使用。(4)信号的定义格式:)信号的定义格式:Signal信号名:数据类型信号名:数据类型;(5)信号赋值的语法格式为:)信号赋值的语法格式为:信号名信号名=表达式;表达式;如:如:SignalS1:Std_logic_vector(3Downto0);S1=“0000”;2-2-3 变量的定义变量的定义(1)“变变量量”数数据据对对象象,它它用用于于对对中中间间数数据据的的临临时时存存储储,并不一定代表电路的某一组件。并不一定代

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com