VHDL语言基础课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《VHDL语言基础课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 基础 课件
- 资源描述:
-
1、第第3章章 组合逻辑设计组合逻辑设计 硬件描述语言硬件描述语言定义:采用定义:采用形式化的方法形式化的方法对数字电路和系统进行描述的对数字电路和系统进行描述的 计算机语言。计算机语言。过程:建模、编程、编译、仿真、综合、下载。过程:建模、编程、编译、仿真、综合、下载。用一套特制的表意符号用一套特制的表意符号( (其意义可以其意义可以解释的解释的) )去表示概念、判断、推理去表示概念、判断、推理, ,获获得它们的形式结构得它们的形式结构, ,从而把对概念、从而把对概念、判断、推理的研究判断、推理的研究, ,转化为对形式符转化为对形式符号表达式系统的研究的方法。号表达式系统的研究的方法。第第3章章
2、 组合逻辑设计组合逻辑设计 VHDL的起源及基本特点的起源及基本特点 VHDL原为美国国防部的一种标准,原为美国国防部的一种标准,1987年被年被IEEE协会接受为硬协会接受为硬件描述语言标准,即件描述语言标准,即VHDL-87,1993年又被年又被IEEE进一步修改,即进一步修改,即VHDL-93。基本特点:。基本特点:1、多种系统描述方法:比较抽象的、多种系统描述方法:比较抽象的系统行为描述系统行为描述、比较具体的、比较具体的数据数据流描述流描述、更加具体的、更加具体的逻辑结构描述逻辑结构描述。2、支持、支持层次化设计层次化设计(自顶向下、自底向上自顶向下、自底向上)方法方法3、支持各种不
3、同类型的数字电路和系统的设计。、支持各种不同类型的数字电路和系统的设计。TTL、CMOS、CPLD、FPGA4、 VHDL具备很强的可移植性,本身的生命周期长。具备很强的可移植性,本身的生命周期长。3.6 VHDL 3.6 VHDL 硬件描述语言硬件描述语言 第第3章章 组合逻辑设计组合逻辑设计 完整的完整的VHDL源程序通常可以包含源程序通常可以包含5个部分个部分:实体实体(Entity)结构体结构体(Architecture)配置(配置(Configuration)库(库(Library)包集合(包集合(Package)VHDL的基本结构的基本结构VHDL文件文件库 , 程 序库 , 程
4、序包包实体实体结构体结构体配置配置说明语句说明语句功能描述语功能描述语句句VHDL程序的基本结构程序的基本结构第第3章章 组合逻辑设计组合逻辑设计 例:例:2输入与非门的输入与非门的VHDL描述描述(数据流描述)数据流描述)ENTITY nand2 IS -实体描述实体描述 PORT(i1,i2: IN BIT; -输入信号名输入信号名 o1: OUT BIT); -输出信号名输出信号名END nand2;ARCHITECTURE delayed OF nand2 IS -结构体描述结构体描述BEGIN o1=i1 NAND i2 AFTER 5NS; -电路的数据流描述电路的数据流描述END
5、 delayed;实体:实体:也称端口,用于定义模块也称端口,用于定义模块I/O接口,包括接口,包括I/O 信号的信号的名称、属性、数据类型名称、属性、数据类型。VHDL描述描述结构体:结构体:对硬件内部结构或性能的具体描述对硬件内部结构或性能的具体描述第第3章章 组合逻辑设计组合逻辑设计 实体描述实体描述格式:格式:ENTITY 实体名实体名 IS PORT(信号名:属性信号名:属性 信号类型信号类型; .; 信号名:属性信号名:属性 信号类型信号类型);END 实体名;实体名;属性:属性: IN OUT BUFFER INOUT 信号类型:信号类型: BIT(预定义的)(预定义的) BIT
6、_VECTOR BOOLEAN INTEGER CHARACTER . 第第3章章 组合逻辑设计组合逻辑设计 结构体描述结构体描述格式:格式:ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS BEGIN END 结构体名;结构体名;例:例:2输入与非门的另一种描述(行为描述)输入与非门的另一种描述(行为描述)ARCHITECTURE another OF nand2 ISBEGIN PROCESS(i1, i2) -行为描述一定要有该语句行为描述一定要有该语句 BEGIN IF i1=1 AND i2=1 THEN o1=0 AFTER 5NS; ELSE o1 =1 AF
7、TER 5NS; END IF; END PROCESS;END another;behavioralbehavioraldataflowdataflowstructuralstructural第第3章章 组合逻辑设计组合逻辑设计 丰富而灵活的自定义数据类型丰富而灵活的自定义数据类型1、枚举类型、枚举类型 格式:格式: TYPE 类型名类型名 IS (值列表)(值列表);举例:举例: TYPE bit_logic IS (0,1,Z,X); TYPE traffic_light IS (red, green, yellow);第第3章章 组合逻辑设计组合逻辑设计 2、数组类型、数组类型 格式:
8、格式: TYPE 数组名数组名 IS ARRAY(范围范围)OF 基类型基类型;举例:举例: TYPE register IS ARRAY(0 TO 7) OF BIT; TYPE register_1 IS ARRAY(7 DOWNTO 0) OF BIT; TYPE rom IS ARRAY(0 TO 7) OF register; TYPE rom IS ARRAY(0 TO 7,0 TO 7) OF BIT;对数组的操作:对数组的操作:整体整体/部分赋值部分赋值,如:,如: SIGNAL arr_1, arr_2 : register_1; arr_1=“10110110”; arr_
9、1=(1,0,1,1,0,1,1,0); arr_2=arr_1; arr_2(0 TO 3)=“1011”;第第3章章 组合逻辑设计组合逻辑设计 3、子类型、子类型 格式:格式: SUBTYPE 子类型名子类型名 IS 已定义父类型名已定义父类型名 范围范围; 范围范围可用可用 RANGE 子句,例:子句,例: SUBTYPE decimal IS INTEGER RANGE 0 TO 9; 也可以也可以直接限定数组的大小直接限定数组的大小来确定子类型的范围:来确定子类型的范围: TYPE std_logic_vector IS ARRAY(natural range)OF std_logi
10、c SUBTYPE databus IS std_logic_vector(15 DOWNTO 0);子类型也可以由已定义的子类型也可以由已定义的枚举类型枚举类型来定义:来定义: TYPE weekday IS(Sun,Mon,Tue,Wed,Thu,Fri,Sat); SUBTYPE workday IS weekday RANGE(Mon TO Fri);第第3章章 组合逻辑设计组合逻辑设计 VHDL运算符运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符连接运算符连接运算符(加)(加)=(等于)(等于)AND(与)(与)&(连接)(连接)(减)(减)/=(不等于)(不等于
11、)OR(逻辑或)(逻辑或)连接符将多个对连接符将多个对象或矢量连接成象或矢量连接成位数更大的矢量位数更大的矢量*(乘)(乘)(小于)(小于)NAND(与非)(与非)/(除)(除)(大于)(大于)XOR(异或)(异或)MOD(求模)(求模)=(大于等于)(大于等于)XNOR(同或)(同或)REM(求余)(求余)其中其中=也用也用于表示信号的赋于表示信号的赋值操作值操作NOT(非)(非)ABS(求绝对值)(求绝对值) 第第3章章 组合逻辑设计组合逻辑设计 了解:了解:逻辑运算符的优先级(低逻辑运算符的优先级(低高高):XOR、NOR、NAND、 OR、AND 、NOT注意:注意: 与非与非/或非运
12、算不满足结合率:或非运算不满足结合率: (a NAND b) NAND c /= a NAND (b NAND C)应用:应用:&可以连接任意数组可以连接任意数组: TYPE register IS ARRAY (7 DOWNTO 0) OF BIT; SIGNAL reg_1,reg_2:register; reg_1=reg_1(6 DOWNTO 0) & reg_1(7);-左环移左环移 reg_1& reg_2;-形成形成16位数组位数组第第3章章 组合逻辑设计组合逻辑设计 vVHDL标识符(标识符(Identifier) 1)1) VHDLVHDL不不区分大小写;区分大小写; 2)2
13、) 标识符一定要标识符一定要以字母开头以字母开头; 3)3) 下划线不能放在结尾;下划线不能放在结尾; 4)4) 下划线不能连用下划线不能连用。 由英文字母由英文字母“a”a”“z”z”、“A”A”“Z”Z”、数字、数字“0”0”“9”9”以及下划线以及下划线“_ _”组成。使用时应注意以组成。使用时应注意以下几点:下几点: 如如a_h_1a_h_1、show_new_stateshow_new_state、COUNTER_ACOUNTER_A有效有效。 a%h_1a%h_1、show-new-stateshow-new-state、COUNTER_COUNTER_、T_ _1T_ _1非法非
14、法。第第3章章 组合逻辑设计组合逻辑设计 v常量定义:常量定义:格式:格式:CONSTANT 常量名:类型名:常量名:类型名:=常量值;常量值;CONSTANT array_size:INTEGER:=16; -整数类型整数类型CONSTANT gate_delay:TIME:=50ns; -时间类型时间类型v变量和信号定义:变量和信号定义: VHDL可以使用变量或信号,可以使用变量或信号,两者区别很大两者区别很大VARIABLE 变量名:类型名变量名:类型名:=初值初值; 变量用变量用:=赋值,表示赋值,表示立即立即起作用起作用SIGNAL 信号名:类型名信号名:类型名=初值初值; 信号用信
15、号用=赋值,表示有赋值,表示有延迟延迟信号声明在子程序外部,使用信号声明在子程序外部,使用内外皆可内外皆可变量声明、使用变量声明、使用只能在子程序内部,外部不可用!只能在子程序内部,外部不可用!第第3章章 组合逻辑设计组合逻辑设计 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor_sig IS PORT (a,b,c: IN std_logic; x,y : OUT std_logic);END xor_sig;ARCHITECTURE sig_arch OF xor_sig IS SIGNAL d:std_logic;BEGIN sig
16、:PROCESS(a,b,c) BEGIN d=a; x=c XOR d; d=b; y=c XOR d; END PROCESS;END; 举例:举例:结果:结果:x= c XOR bx= c XOR by= c XOR by= c XOR b改为变量:改为变量:x= c XOR ax= c XOR ay= c XOR by= c XOR b最后一句起作用最后一句起作用第第3章章 组合逻辑设计组合逻辑设计 VHDL库和包库和包一、库一、库:存储程序包和数据集合体的仓库,便于在其他设计存储程序包和数据集合体的仓库,便于在其他设计中,随时对其进行直接引用。中,随时对其进行直接引用。包括包括系统库
17、系统库(设计库)、(设计库)、资源库资源库(IEEE库库和和用户库用户库)。)。系统库系统库:VHDL本身预定义的库,包括本身预定义的库,包括STD库和库和WORK库。库。 STD库库:系统的标准库,包括系统本身预定义的类型和文件:系统的标准库,包括系统本身预定义的类型和文件操作,如操作,如BIT、BIT_VECTOR等。等。WORK库库:是用户的工作库,保存当前设计。是用户的工作库,保存当前设计。STD、WORK库对用户透明,不需要说明。库对用户透明,不需要说明。第第3章章 组合逻辑设计组合逻辑设计 资源库资源库 IEEE库库是是IEEE认可的标准库,主要包括:认可的标准库,主要包括: 1.
18、 STD_LOGIC类型以及有关函数的定义(封装在类型以及有关函数的定义(封装在STD_LOGIC_1164包中)。包中)。 2. 有符号数和无符号数的算术、逻辑、关系运算符号。有符号数和无符号数的算术、逻辑、关系运算符号。 3. 类型转换函数。类型转换函数。 用户库用户库是是VHDL软件厂商开发的库。如软件厂商开发的库。如Altera库、库、LPM库库等。等。 使用资源库时,必须显式声明。使用资源库时,必须显式声明。第第3章章 组合逻辑设计组合逻辑设计 VHDL库中可以包含很多内容,以程序包的形式组织在一起,库中可以包含很多内容,以程序包的形式组织在一起, 如,如,IEEE库中有标准逻辑包库
19、中有标准逻辑包STD_LOGIC_1164。包是包是VHDL对预定义类型、函数、部件进行封装的一种形式。对预定义类型、函数、部件进行封装的一种形式。 结构:结构: PACKAGE 程序包名程序包名 IS 程序包程序包说明部分说明部分 END 程序包名;程序包名; PACKAGE BODY 程序包名程序包名 IS 程序程序包体包体描述描述 END 程序包名;程序包名;常量、信号、类型、函数或过程、常量、信号、类型、函数或过程、部件说明部件说明对预定义内容的具体描述对预定义内容的具体描述二、包二、包第第3章章 组合逻辑设计组合逻辑设计 包定义举例:包定义举例:1.STD库的库的standard程序
20、包中的部分内容:程序包中的部分内容:package STANDARD istype BOOLEAN is (FALSE, TRUE);type BIT is (0, 1);type CHARACTER IS ();type INTEGER is range -2147483648 to 2147483647;type BIT_VECTOR is array (NATURAL range ) of BIT;subtype NATURAL is INTEGER range 0 to INTEGERHIGH;end STANDARD;第第3章章 组合逻辑设计组合逻辑设计 2.Ieee库的库的std_
21、logic_1164包中的部分内容:包中的部分内容:PACKAGE std_logic_1164 ISTYPE std_ulogic IS ( U, - Uninitialized X, - Forcing Unknown 0, - Forcing 0 1, - Forcing 1 Z, - High Impedance W, - Weak Unknown L, - Weak 0 H, - Weak 1 - - Dont care );第第3章章 组合逻辑设计组合逻辑设计 TYPE std_ulogic_vector IS ARRAY ( NATURAL RANGE ) OF std_ulog
展开阅读全文