新的硬件描述语言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的基本结构,的基本结构,使读者初步掌握使读者初步掌握VHDL的基础知识。最的基础知识。最后通过大量的实例使读者进一步掌握使后通过大量的实例使读者进一步掌握使用用VHDL的设计方法。的设计方法。本章主要内容本章主要内容lVHDL(Very high speed intergated circuit Hardware Description Language):非常高速集成电路的硬件描非常高速集成电路的硬件描述语言。述语言。l20世纪世纪80年代诞生于美国国防部的一项年代诞生于美国国防部的一项研究计划,目的是使电路的设计能够以研究计划,目的是使电路的设计能够以
2、文字的方式保存下来。文字的方式保存下来。l被列为被列为IEEE1076标准,也成为工业界的标准,也成为工业界的标准。标准。1.VHDL简介简介2Verilog HDL语言简介语言简介lVerilog HDL它是在它是在C语言的基础上发展起来的,由语言的基础上发展起来的,由GDA(Gateway Design Automation)公司创造的,)公司创造的,1989年年cadence公司收购了公司收购了GDA公司,使得公司,使得Verilog HDL成为了该公司的独家专利。成为了该公司的独家专利。1990年年Cadence公司公开发公司公开发表了表了Verilog HDL,并成立,并成立LVI组
3、织以促进组织以促进Verilog HDL成为成为IEEE标准,即标准,即IEEE Standard 1364-1995。lVerilog HDL的最大特点就是易学易用,如果有的最大特点就是易学易用,如果有C语言语言的编程经验,可以在一个较短的时间内很快的学习和掌的编程经验,可以在一个较短的时间内很快的学习和掌握,握,VerilogVerilog HDL HDL语言的系统抽象能力稍逊于语言的系统抽象能力稍逊于VHDLVHDL,而,而对门级开关电路的描述能力则优于对门级开关电路的描述能力则优于VHDLVHDL。二、二、VHDL的优点的优点1.支持层次化设计支持层次化设计 2.具有多层次描述系统硬件
4、功能的能力具有多层次描述系统硬件功能的能力 3.具有丰富的仿真语句和库函数具有丰富的仿真语句和库函数 4.VHDL语句的行为描述能力和程序结构决定了他具有语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。支持大规模设计的分解和已有设计的再利用功能。VHDL的优点的优点5.对设计的描述具有相对独立性,与硬件的结构无关对设计的描述具有相对独立性,与硬件的结构无关 6.可以利用可以利用EDA工具进行逻辑综合和优化,并自动将工具进行逻辑综合和优化,并自动将VHDL描述转化为门级网表。描述转化为门级网表。7.具有可移植性,可以在不同的设计环境和系统平台具有可移植性,可以
5、在不同的设计环境和系统平台中使用。中使用。8.具有良好的可读性。具有良好的可读性。三、三、VHDL与高级语言的区别与高级语言的区别l1.1.某些并行语句可以自动的重复执行,不需要某些并行语句可以自动的重复执行,不需要用循环指令来保证。用循环指令来保证。l2.VHDL2.VHDL中的许多语句不是按排列顺序执行的,中的许多语句不是按排列顺序执行的,而是可以同时执行的(而是可以同时执行的(VHDLVHDL的并行性)。的并行性)。返 回一、一、VHDL的基本结构的基本结构ENTITY nand_2 IS-定义一个实体定义一个实体PORT(a,b:IN STD_LOGIC;-描述输入输出描述输入输出 y
6、:OUT STD_LOGIC);-信号信号END nand_2;LIBRARY IEEE;-IEEE库说明库说明USE IEEE.STD_Logic_1164.ALL;-自定义元件库自定义元件库ARCHITECTURE rtl OF nand_2 ISBEGIN -结构体说明结构体说明y=NOT(a AND b);END rtl;1.USE定义区2.PACKAGE定义区3.ENTITY定义区4.ARCHITECTURE定义区定义元件库5.CONFIGURATION定义区定义使用那些自定义元件库定义电路实体的外观:I/O接口的规格描述电路内部的逻辑功能决定那一个architecture被使用1.
7、VHDL基本结构图基本结构图l功能功能:描述设计模块的输入:描述设计模块的输入/输出信号或引脚,并给出输出信号或引脚,并给出设计模块与外界的接口。实体类似一个设计模块与外界的接口。实体类似一个“黑盒黑盒”,实体,实体描述了描述了“黑盒黑盒”的输入输出口。的输入输出口。l格式格式:ENTITY 实体名实体名ISGENERIC(类属表类属表););PORT(端口表端口表););END ENTITY 实体名实体名l实体名实际上是器件名,最好根据相应的电路实体名实际上是器件名,最好根据相应的电路功能确定。如功能确定。如4位位2进制计数器用进制计数器用counter4b;8位加法器用位加法器用add8b
8、;3/8译码器用译码器用ym_38。l实体名必须与文件名相同,否则无法编译实体名必须与文件名相同,否则无法编译。l实体名不能用工具库中定义好的元件名实体名不能用工具库中定义好的元件名。l实体名不能用中文,也不能用数字开头。实体名不能用中文,也不能用数字开头。类属表:用以将信息参数传递到实体。类属表:用以将信息参数传递到实体。类属表的一般格式为:类属表的一般格式为:GENERIC(常数名:数据类型(常数名:数据类型:=设定值设定值)GENERIC(awidth:INTEGER:=3;timex:time);其中:其中:常数名常数名由设计者确定;由设计者确定;数据类型数据类型通常取通常取INTEG
9、ER或或time等;在表中提供时间参数、总线等;在表中提供时间参数、总线宽度等信息。宽度等信息。端口表:指明实体的输入、输出信号极其模式。端口表:指明实体的输入、输出信号极其模式。端口表的一般格式为:端口表的一般格式为:PORT(端口名:端口模式(端口名:端口模式数据类型数据类型)端口模式:端口模式:共四种:共四种:IN(输入)、(输入)、OUT(输出)、(输出)、INOUT(双向端口)(双向端口)、BUFFER(输出并向内部反(输出并向内部反馈)馈)数据类型数据类型:VHDL作为一种强类型语言,必须对数据对作为一种强类型语言,必须对数据对象(常量、变量、信号)规定取值范围,即对传输或象(常量
10、、变量、信号)规定取值范围,即对传输或存储数据的类型作明确的界定。存储数据的类型作明确的界定。my_designd11:0oeclkad11:0a11:0intasmy_designd11:0oeclkad11:0a11:0intasFull_adderabcsumcoMux_41absycd 结构体:结构体:通过若干并行语句来描述设计实体的通过若干并行语句来描述设计实体的逻辑功逻辑功能能(行为描述)或(行为描述)或内部电路结构内部电路结构(结构描述),从而(结构描述),从而建立设计实体输出与输入之间的关系。一个设计实体建立设计实体输出与输入之间的关系。一个设计实体可以有多个结构体。可以有多个
11、结构体。格式:格式:ARCHITECTURE ARCHITECTURE 结构体名结构体名 OF OF 实体名实体名 ISIS 说明语句;说明语句;BEGIN BEGIN 并行语句;并行语句;END ARCHITECTURE END ARCHITECTURE 结构体名结构体名;l说明语句:用于定义结构体中所用的数据对象和子说明语句:用于定义结构体中所用的数据对象和子程序,并对所引用的元件加以说明,但不能定义变程序,并对所引用的元件加以说明,但不能定义变量。量。l并行语句并行语句 并行语句有五种类型,可以把它们看成并行语句有五种类型,可以把它们看成结构体的五种子结构。这五种语句结构本身是并行结构体
12、的五种子结构。这五种语句结构本身是并行语句,但内部可能含有并行运行的逻辑描述语句或语句,但内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句,如进程内部包含的即为顺序运行的逻辑描述语句,如进程内部包含的即为顺序语句。顺序语句。l五种语句结构分别为块语句、进程语句、信号赋值五种语句结构分别为块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。语句、子程序调用语句和元件例化语句。Input 1Input nOutput 1Output nl Structure描述描述 描述该设计单元的硬件结构描述该设计单元的硬件结构,即即该硬件是如何构成的该硬件是如何构成的,类似于数字电路中的逻
13、辑图描类似于数字电路中的逻辑图描述述.lDate Flow描述描述 它是类似于寄存器传输级的方它是类似于寄存器传输级的方式描述数据的传输和变换,以规定设计中的各种寄式描述数据的传输和变换,以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑。存器形式为特征,然后在寄存器之间插入组合逻辑。与数字电路中的真值表描述相似。与数字电路中的真值表描述相似。lBehavior Process描述描述 只描述所希望电路的功只描述所希望电路的功能或者电路行为(输入输出间转换的行为),而没能或者电路行为(输入输出间转换的行为),而没有指明或涉及实现这些行为的硬件结构。与数字电有指明或涉及实现这些行为
14、的硬件结构。与数字电路中的逻辑表达式描述相似。路中的逻辑表达式描述相似。architecture one of mux21 is signal d,e:bit;begin d=a and(not)s;e=b and s;y=d or e;end one;architecture one of mux21 isbegin y=(a and(not s)or(b and s);end one;architecture one of mux21 isbegin y=a when s=0 else b;end one;真值表真值表操作案例操作案例1、操作题目:、操作题目:通过通过3 3 8 8译码器的
15、设计实例,从整体译码器的设计实例,从整体结构上初步认识结构上初步认识VHDLVHDL的基本结构和语句特点。的基本结构和语句特点。2 2、3 3 8 8译码器的电路图译码器的电路图如图所示如图所示,有,有4 4个输入端(个输入端(A0A0、A1A1、A2A2、ENEN),),8 8个输出端(个输出端(Y0Y0Y7Y7)3 3、步骤:定义元件库、实体、结构体、编译、仿真。、步骤:定义元件库、实体、结构体、编译、仿真。返 回一、数据对象一、数据对象 是数据类型的载体,共有三种形式的对象:是数据类型的载体,共有三种形式的对象:ConstantConstant(常量)(常量)VariableVariab
16、le(变量)(变量)SignalSignal(信号)(信号)对象的说明格式为:对象的说明格式为:对象类别对象类别 标识符表:类型标识标识符表:类型标识:=初值初值 常量是全局量常量是全局量,在结构描述、程序包说明、在结构描述、程序包说明、实体说明、过程说明、函数调用说明和进程说实体说明、过程说明、函数调用说明和进程说明中使用。明中使用。例:例:constant WIDTH:INTEGER:=8;constant X:NEW_BIT:=X;定义了给定类型的变量名称。定义了给定类型的变量名称。例:例:variable A,B:BIT;variable INIT:NEW_BITl信号可以将结构体中分
17、离的并行语句连接起来,信号可以将结构体中分离的并行语句连接起来,并且通过端口其他模块与该设计内的连接起来。并且通过端口其他模块与该设计内的连接起来。例:例:signal A,B:BIT;signal INIT:INTEGE:=-1LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY simp ISPORT(a,b,c,d:IN Std_Logic;g:OUT Std_Logic);END simp;ARCHITECTURE logic OF simp ISSIGNAL e,f:Std_Logic;BEGINe=a or b;f=not(c or d);
18、g=e and f;END logic;二、数据类型二、数据类型 1.1.标准定义的数据类型标准定义的数据类型 不必用不必用USEUSE说明而直接使用。说明而直接使用。1 1)Boolean(Boolean(布尔量):取值为布尔量):取值为FALSEFALSE和和TRUETRUE。2 2)CharacterCharacter(字符):使用时用(字符):使用时用单引号单引号括起来,括起来,如:如:AA。3 3)StringString(字符串):使用时用(字符串):使用时用双引号双引号括起来,括起来,如:如:111000101 111000101 。4 4)IntegerInteger(整数):
19、范围在(整数):范围在-(2 23131-1-1)()(2 23131-1-1)5 5)RealReal(实数):范围在(实数):范围在-1.0E+38-1.0E+38+1.0E+38+1.0E+38 6 6)Bit(Bit(位位):):取值为取值为0 0或或1.1.7 7)Time(Time(时间时间):):取值范围与整数一致取值范围与整数一致,一般用于仿一般用于仿真。真。8 8)Bit_vectorBit_vector(位矢量):基于(位矢量):基于BITBIT数据类型的数数据类型的数组。使用时必需注明宽度。组。使用时必需注明宽度。9 9)NaturalNatural(自然数)和(自然数)
20、和Positive(Positive(正整数正整数):):是整是整数的一个子类型。数的一个子类型。1010)Severity levelSeverity level(错误等级):用来设计系统(错误等级):用来设计系统的工作状态。有四种状态值:的工作状态。有四种状态值:NOTE(NOTE(注意注意)、WARNING(WARNING(警告警告)、ERROR(ERROR(错误错误)、FAILURE(FAILURE(失败失败)。2.2.用户自定义的数据类型用户自定义的数据类型1 1)Enumerated TypesEnumerated Types(枚举类型)格式如下:(枚举类型)格式如下:TYPE T
21、YPE 数据类型名数据类型名 IS IS(枚举文字,枚举文字(枚举文字,枚举文字););例如:例如:TYPE color IS(red,green,yellow,blue);TYPE color IS(red,green,yellow,blue);TYPE level IS(0,1,Z);TYPE level IS(0,1,Z);2)Integer Types2)Integer Types(整数类型)和(整数类型)和 Real TypesReal Types(实(实数类型)格式为:数类型)格式为:TYPE TYPE 数据类型名数据类型名 IS RANGE IS RANGE 约束范围;约束范围;
22、例如例如:TYPE intTYPE int IS RANGE-10 TO 10;IS RANGE-10 TO 10;3)Array Types(3)Array Types(数组类型)格式如下:数组类型)格式如下:TYPE TYPE 数据类型名数据类型名 IS IS ARRAYARRAY(索引范围)(索引范围)OFOF类型名类型名称称 ;例如例如:TYPE a IS ARRAY(integer0 TO 9)OF std_logic:TYPE a IS ARRAY(integer0 TO 9)OF std_logic3.IEEE3.IEEE预定义标准逻辑位与矢量预定义标准逻辑位与矢量 在在IEEE
23、IEEE的程序包中的程序包中std_logic_1164std_logic_1164中定义了两个重中定义了两个重要的数据类型。要的数据类型。1 1)std_logic:std_logic:工业标准的逻辑类型。取值为工业标准的逻辑类型。取值为00(强(强0 0)、)、11(强(强1 1)、)、ZZ(高阻态)、(高阻态)、XX(强未知的)。(强未知的)。2 2)std_logic_vector:std_logic_vector:工业标准的逻辑类型。工业标准的逻辑类型。std_logicstd_logic的组合。的组合。注意:使用这两种数据时,注意:使用这两种数据时,程序中必须声明程序中必须声明:L
24、IBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL USE IEEE.STD_LOGIC_1164.ALLstd_logic_std_logic_三、标识符三、标识符 标识符是标识符是VHDLVHDL语言最基本的要素之一,是使用语言最基本的要素之一,是使用VHDLVHDL语言的基础。标识符是描述语言的基础。标识符是描述VHDLVHDL语言中端口、信号、常语言中端口、信号、常数、变量以及函数等名称的字符串。数、变量以及函数等名称的字符串。VHDLVHDL标识符书写规标识符书写规则如下:则如下:1 1)使用的字符由)使用的字符由2626个英文字
25、母、数字个英文字母、数字0 09 9以及下划以及下划线组成;线组成;2 2)标识符必须以英文字母开始,不区分大小写;)标识符必须以英文字母开始,不区分大小写;3 3)不能以下划线结尾;)不能以下划线结尾;4 4)标识符中不能有空格;)标识符中不能有空格;5 5)标识符不能与)标识符不能与VHDLVHDL的关键字重名。的关键字重名。四、运算符四、运算符(1)算术运算符)算术运算符 +加加 *乘方乘方 减减 MOD 求模求模 *乘乘 REM 求余求余 /除除 ABS 求绝对值求绝对值(2)关系运算符)关系运算符=等于等于/=不等于不等于 小于小于=小于或等于小于或等于 大于大于=大于或等于大于或等
展开阅读全文