版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 硬件描述语言VHDLAltera Hardware Description Language4.1 概述4.2 VHDL程序基本结构4.3 VHDL的库和包4.4 VHDL的基本词法4.5 VHDL的基本语法4.6 VHDL描述的实例第四章 硬件描述语言VHDL4.1 概述 VHDL,即(Very-High-Speed Integrated Circuit Hardware Description Language),直接通过对硬件行为的描述来设计数字逻辑系统。 VHDL的主要优点:1、是一种包括系统行为级、寄存器传输级和逻辑门级多个设计层次,并持支持结构、数据流和行为三种行式的混合描
2、述。2、具有强大的行为描述能力,并拥有良好的可读性以及程序的移植性。即设计者既可以不懂硬件结构,又可以不管最终的目标器件,仅需要进行电子系统设计和性能优化。3、具有方便的逻辑仿真与调试功能,并不需要做任何实际的电路实验。4、具有丰富的库函数,设计人员可以直接调用这些功能模块。5、更加类似软件上的高级语言。4.2 VHDL程序基本结构VHDL的组成:实体描述(entity)结构体1(architecture)结构体n(architecture)又称接口(interface),主要描述一个硬件模块或系统的输入、输出接口。又称主体(body),是对硬件内部结构或性能的具体描述。例题(1)二输入“与非
3、”门的VHDL描述LIBRARY IEEE;USE IEEE. std_logic_1163.ALL;ENTITY s_nand2 IS PORT(i1,i2: IN BIT; o1: OUT BIT);END s_nand2;-库说明语句-实体描述-输入信号名-输出信号名ARCHITECTURE delayed OF s_nand2 IS;BEGIN o1=i1 NAND i2 AFTER 5NS;END delayed;-结构体描述-电路描述一、实体描述VHDL实体描述的基本格式:ENTITY 实体名 ISPORT( 端口名:端口类别,端口类型;端口名:端口类别,端口类型);END 实体名
4、;例题(2)描述下图硬件模块BUBBLEDATA_READYDATA_INSTARTDATA_OUTENTITY BUBBLE IS PORT (DATA_READY: IN BOOLEAN; DATA_IN: IN INTEGER; START: IN STD_LOGIC; DATA_OUT: OUT INTEGER);ENDBUBBLE;实体定义了一个插座!端口类型 端口类型用来说明数据、信号通过该端口的方向。主要有四种端口类型:IN单向输入端口;OUT单向输出端口;INOUT双向输入、输出端口;BUFFER缓冲端口,既可为实体的输出,也可用于反馈;二、结构体描述VHDL结构体描述的基本框
5、架如下:ARCHITECTURE 结构体名 OF 实体名 ISBEGINEND 结构体名;结构体的三种描述 行为描述该描述表示输入与输出之间的转化的行为,不 包含任何结构的信息,行为描述是对系统数学模型的描述,在该描述种大量采用算术运算、关系运算、惯性延时、传输延时等难于进行逻辑综合及不能进行逻辑综合的VHDL语句。 数据流描述该描述又称为寄存器传输(RTL)描述方式,是一种明确规定寄存器的描述方法。在该描述种,或者采用寄存器硬件一一对应的直接描述;要么采用寄存器之间的功能描述。类似布尔方程,既可描述组合电路,又可描述时序电路。既含有逻辑单元的结构信息,又隐含表示某种行为。结构描述它用在多层次
6、的设计中,高层次的设计模块调用低层次的设计模块,或直接用门电路设计单元来构造复杂的逻辑电路的描述方法。结构体有三种描述方式:1、行为描述法behavioral description 行为描述反映一个设计的功能或算法,一般使用进程PROCESS,用顺序语句表达。例题(3) 二输入“与非”门的VHDL语言的行为描述LIBRARY IEEE;USE IEEE. std_logic_1163.ALL;ENTITY s_nand2 ISPORT(i1,i2: IN BIT; o1: OUT BIT);END s_nand2;ARCHITECTURE another OF nand2 IS BEGIN
7、PROCESS(i1,i2) BEGIN IF i1=1 AND i2=1 THEN o1=0 AFTER 5ns; ELSE o1=1 AFTER 5ns; END IF;END PROCESS;END another; 完全从“与非”门输入、输出的逻辑关系出发,是对“与非”门性能的一种描述。2、数据流描述法dataflow description 又称寄存器传输描述,所反映的是数据经过一定的逻辑运算后,在输入和输出之间的传送。所以,使用并发语句描述。例题(4) 由“异或”门和“与”门构成的半加器VHDL语言描述ARCHITECTURE dataflow OF half_adder ISBE
8、GIN SUM = A xor B AFTER 8ns; CARRY = A and B AFTER 4ns;END dataflow;ENTITY half_adder IS PORT( A, B: IN BIT; SUM, CARRY: OUT BIT); 3、结构描述法structural description 这种描述法是以部件(component)为基础,通过描述模块与模块之间的连接关系,来反映整个系统的构成和性能。所以,此方法适用于多层次设计。较多使用元件例化语句。例题(5) 由“异或”门和“与”门构成的半加器结构描述ARCHITECTURE syn OF half_adder
9、ISCOMPONENT XOR2 PORT(X,Y: IN BIT; N: OUT BIT);END COMPONENT;COMPONENT AND2; PORT(L,M: IN BIT; N: OUT BIT);END COMPONENT; BEGIN X1:XOR2 PORT MAP(A,B,SUM); A1:AND2 PORT MAP(A, B, CARRY);END syn; 在一个数字系统的设计中,三种描述方法都可能用到! 但不是任何一个设计均要进行三种描述。YXNLMNABSUMCARRYX1A14.3 VHDL的库和包 VHDL的库分为三种类型:系统库、IEEE库和用户库。一、系
10、统库 系统库是VHDL语言本身预定义的库STD库是系统标准库,所有系统本身预定义的类型和有关操作都包含在该库中。WORK库是用户的工作库,即用户当前的工作目录。使用时不需要用LIBRARY、USE专门说明!二、IEEE库 IEEE库是IEEE认可的标准库,其中包括对于STD_LOGIC类型以及有关函数的定义,所有这些定义都封装在称为“STD_LOGIC_1164”的程序包 (Package)中。使用时需要用LIBRARY、USE预先声明!三、用户库 用户库是VHDL软件提供给厂商开发的库,如带参数逻辑函数库LPM等,在LPM库中提供了许多标准逻辑部件的描述。用户也可以自己建立VHDL库!四、程
11、序包程序包由两部分构成:包的说明部分(Package Declaration)包的主体部分(Package Body)程序包的基本结构:PACKAGE 包名 ISEND 程序包名;PACKAGE BODY 包名 ISEND 包名;程序包说明部分:常量说明;信号说明,该信号可以被所有的结构体使用;类型说明;函数或过程说明;部件(Component)说明; 程序包的主体部分则是对所包含的函数、过程、结构体进行具体描述。 五、库和程序包的引用 在所有的VHDL源程序中都要首先声明使用什么VHDL库,并要使用关键字LIBRARY。 在声明了使用哪个VHDL库以后,还要声明使用这个库中的哪个程序包。采用
12、关键字USE声明程序包;若要使用程序包中的所有内容,则用关键字ALL。 例题(6) 在一个VHDL程序的开始,经常会有下列语句。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 4.4 VHDL的基本词法 标识符是VHDL语言对各种数据对象的一种标识,标识符必须用英文字符开头,后面可以跟数字或下划线,若下划线其后还要有英文。一、标识符在VHDL程序中保留字要用大写,或黑体。二、数据对象 VHDL语言中有三种数据对象:常量、变量、信号。常量的定义格式:1、常量CONSTANT 常量名:= 常量值; 常量只可以在说明的时候进行赋值,一般常量的赋值在程序开始前说明!
13、常量的定义格式:2、变量VARIABLES 变量名:数据类型 约束条件:= 表达式;变量的使用规则和限制范围:1、不能用于硬件连线和存储元件;2、所赋初值不是预设的,在某一时刻只能有一个值;3、仿真时,变量用于建模;4、系统综合时,变量用于计算,可作为数据暂存:5、在进程中,变量的使用在进程之内。信号的定义格式:3、信号SIGNAL 信号名:数据类型 约束条件:= 表达式;信号的使用规则:1、“=”表示代入赋值;2、信号总是在结构体(ARCHITECTURE)中声明。三、数据类型 在数据对象中均要指定数据类型。1、标准数据类型INTEGER 整数型;REAL 实数型;BIT 二进制型;BIT_
14、VECTOR 二进制向量;BOOLEAN 布尔型;CHARACTER 字符型;STRING 字符串;TIME 时间类型。2、用户自定义类型枚举类型:TYPE 枚举类型名 IS(枚举型值表);数组类型:TYPE 树组名 IS ARRAY(范围)OF 基类型;子类型:SUB TYPE 子类型名 IS 已定义类型名(范围);四、运算符五、VHDL表达式1、在一个表达式中,数据的类型应该相同;2、VHDL支持运算符重载。4.4 VHDL的基本语法一、并行描述语句1、并行赋值语句并行赋值语句的基本格式:信号名=表达式;信号名=表达式 AFTER 延持时间; 信号赋值语句有两种类型:在进程内部使用时,作为
15、顺序语句的形式出现的是顺序信号赋值语句;在结构体的进程之外使用时,作为并行语句的形式使用的是并行信号赋值语句,可用于仿只各种逻辑电路。例题(7)半加器的数据流描述。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL; ENTITY half_adder IS PORT(a,b :IN BIT; s,co:OUT BIT);END half_adder ; ARCHITECTURE hadd OF half_adder IS SIGNAL c,d : BIT; BEGIN c = a OR b; d = a NAND b; co = NOT d; s = c AND
16、 d;END hadd;2、条件赋值语句条件赋值语句的基本格式:信号名 = 表达式1 WHEN 条件1 ELSE 表达式2 WHEN 条件2 ELSE 表达式n-1 WHEN 条件n-1 ELSE 表达式n; 例题(8)用条件赋值语句描述四选一多路选择器。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL; ENTITY mux4 IS PORT (d0,d1,d2,d3,a,b :IN STD_LOGIC; y: OUT STD_LOGIC);END mux4;ARCHITECTURE sample12 OF mux4 IS; BEGIN y = d0 WHEN
17、 a=0 AND b=0 ELSE d1 WHEN a=0 AND b=1 ELSE d2 WHEN a=1 AND b=0 ELSE d3 WHEN a=1 AND b=1 ;END sample12;使用条件赋值语句注意:语句是并行描述,不能用在进程和子程序中;语句对条件是有顺序的,前面的条件优先级较高;语句中最后一个表达式后面不含ELSE;语句中的条件为布尔型数值;语句不能嵌套,赋给信号的值不能是自身。3、选择信号赋值语句选择信号赋值语句的基本格式: WITH 表达式 SELECT 信号名 = 表达式1 WHEN 选择条件1; 表达式2 WHEN 选择条件2; 表达式n WHEN oth
18、ers; 例题(9)用信号选择赋值语句描述四选一多路选择器。END mux4;ARCHITECTURE sample OF mux4 IS BEGIN WITH a&b SELECT y = d0 WHEN “00”; d1 WHEN “01”; d2 WHEN “10”; d3 WHEN “11”;END sample;二、顺序描述语句1、进程语句进程语句PROCESS的基本格式: 进程名: PROCESS(敏感信号1,敏感信号k) BEGIN 顺序语句1 顺序语句nEND PROCESS 进程名: 2、顺序信号和变量赋值语句 在PROCESS语句内,也可以使用信号和变量赋值语句。信号赋值语句的形式为: 信号名= 表达式;变量赋值语句的形式为: 变量名: = 表达式;3、IF语句多分支的IF语句形式为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东外语外贸大学《营养生理学》2023-2024学年第一学期期末试卷
- 广东司法警官职业学院《别墅建筑设计》2023-2024学年第一学期期末试卷
- 广东生态工程职业学院《西方经济学(下)》2023-2024学年第一学期期末试卷
- 七年级上册《6.2.1直线、射线、线段》课件与作业
- 广东南华工商职业学院《色彩静物及人物头像》2023-2024学年第一学期期末试卷
- 广东梅州职业技术学院《计算机创客训练》2023-2024学年第一学期期末试卷
- 广东茂名健康职业学院《半导体器件原理》2023-2024学年第一学期期末试卷
- 一年级数学计算题专项练习1000题汇编
- 2024八年级地理上册第三章自然资源-我们生存和发展的物质基础学情评估晋教版
- 【2021届备考】2020全国名校物理试题分类解析汇编(11月第二期)A4-竖直上抛运动
- 2025年国务院发展研究中心信息中心招聘应届毕业生1人高频重点提升(共500题)附带答案详解
- 2024年公安机关理论考试题库500道及参考答案
- 2024年全国《国防和兵役》理论知识竞赛试题库与答案
- 特殊情况施工的技术措施
- 企业知识产权保护策略及实施方法研究报告
- 2024年07月11026经济学(本)期末试题答案
- 2024年中小企业股权融资合同3篇
- 2024年01月11289中国当代文学专题期末试题答案
- 2024年秋季生物教研组工作计划
- 2024年云南高中学业水平合格考历史试卷真题(含答案详解)
- 大学物理(二)知到智慧树章节测试课后答案2024年秋湖南大学
评论
0/150
提交评论