收藏 分享(赏)

VHDL程序基本结构.ppt

上传人:精品资料 文档编号:10659022 上传时间:2019-12-16 格式:PPT 页数:34 大小:468KB
下载 相关 举报
VHDL程序基本结构.ppt_第1页
第1页 / 共34页
VHDL程序基本结构.ppt_第2页
第2页 / 共34页
VHDL程序基本结构.ppt_第3页
第3页 / 共34页
VHDL程序基本结构.ppt_第4页
第4页 / 共34页
VHDL程序基本结构.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、图2.4 VHDL程序设计基本结构,2.2 VHDL程序基本结构,一个相对完整的VHDL程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、程序包(Package)和库(Library)5个部分。,(1)库、程序包使用说明:用于打开(调用)本设计实体 将要用到的库、程序包;程序包存放各个设计模块共享的 数据类型、常数和子程序等;库是专门存放预编译程序包 的地方。,(2)实体:用于描述所设计的系统的外部接口信号,是可视部分;,(3)结构体:用于描述系统内部的结构和行为,建立输入和输出之间的关系,是不可视部分。,(4)配置说明语句:主要用于以层

2、次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。,实体(ENTITY)是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述。它规定了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。1实体语句结构实体说明单元的常用语句结构如下:ENTITY 实体名 ISGENERIC(类属表);PORT(端口表); END ENTITY 实体名;,2.2.1 实体,实体说明单元必须以语句“ENTITY 实体名IS”开始,以语句“END ENTITY 实体名;”结束。实体名是设计者自己给设计实体的命名,可作为其他设计实体对该设计实体进行调用时用

3、。中间在方括号内的语句描述,在特定的情况下并非是必须的。例如构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。,2类属(GENERIC)说明语句类属(GENERIC)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属的值可以由设计实体外部提供。 类属说明的一般书写格式如下:GENERIC(常数名;数据类型:设定值;常数名:数据类型:设定值 );,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AND2 ISGENERIC(RISEW:TIME:=1 ns;FALLW:

4、TIME:=1 ns);PORT( A1:IN STD_LOGIC;A0:IN STD_LOGIC;Z0:OUT STD_LOGIC);END ENTITY AND2;,【例2.2】2输入与门的实体描述,类属说明中定义参数RISEW为上沿宽度,FALLW为下沿宽 度,它们分别为 1 ns,这两个参数用于仿真模块的设计。,实体端口说明的一般书写格式如下:PORT(端口名:端口模式 数据类型;端口名:端口模式 数据类型);,端口名是设计者为实体的每一个对外通道(系统引脚)所取的名字,一般用几个英文字母组成;端口模式(端口方向)是指这些通道上的数据流动方式,即定义引脚是输入还是输出;数据类型是指端口

5、上流动的数据的表达格式。,3PORT端口说明,图2.5 端口模式符号图,IEEE 1076标准包中定义了4种常用的端口模式,各端口模式的功能及符号分别见表2.1和图2.5。,表2.1 端口模式说明,PORT(n0,n1,select:IN BIT;q:OUT BIT;bus:OUT BIT_VECTOR(7 DOWNTO 0);,【例2.3】端口模式及数据类型定义,说明:n0, n1,select 是输入引脚,属于BIT型;q是输出引脚,BIT型;bus是一组8位二进制总线,属于BIT_VECTOR。,LIBRARY IEEE;USE IEEE.STD_LOGIC.1164.ALL;ENTIT

6、Y mm ISPORT(n0,n1,select:IN STD_LOGIC;Q:OUT STD_LOGIC;Bus:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY mm;,【例2.4】端口模式及IEEE库数据类型定义,例中端口数据类型取自IEEE标准库(该库中有数据类型和 函数的说明),其中STD_LOGIC 取值为“0”,“1”,“X”和 “Z”。因为使用了库,所以在实体说明前要增加库说明语句。,2.2.2 结构体,结构体(ARCHITECTURE)是设计实体的一个重要部分,结构体将具体实现一个实体。结构体不能单独存在,它必须有一个界面说明,即一个实体

7、。对于具有多个结构体的实体,必须用CONFIGURATION 配置语句指明用于综合的结构体和用于仿真的结构体,即在综合后的可映射于硬件电路的设计实体中,一个实体只对应一个结构体。在电路中,如果实体代表一个器件符号,则结构体描述了这个符号的内部行为。,ARCHITECTURE 结构体名 OF 实体名 IS说明语句 -内部信号,常数,数据类型,函数等的定义BEGIN功能描述语句 END ARCHITECTURE 结构体名;,1. 结构体语句格式,ENTITY mux ISPORT(a0,a1:IN BIT;Sel:IN BIT;Sh:OUT BIT);END mux;ARCHITECTURE da

8、taflow OF mux ISBEGINsh=(a0 AND sel)OR(NOT sel AND a1);END dataflow;,【例2.5】结构体描述,结构体中的说明语句是对结构体的功能描述语句中将要用 到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、 元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE) 等加以说明的语句。在一个结构体中说明和定义的数据类型、常数、元件、函 数和过程只能用于这个结构体中,若希望其能用于其他的实体 或结构体中,则需要将其作为程序包来处理。,2结构体说明语句,3. 功能描述语句 描述设计实体的具体行为

9、,它包含两类语句:(1)并行语句:并行语句总是在进程语句(PROCESS)的外 部,语句的执行与书写顺序无关,总是同时被执行。(2)顺序语句:顺序语句总是在进程语句(PROCESS)的内 部,该语句是顺序执行的。 一个结构体可以包含几个类型的子结构描述:BLOCK(块) 描述、PROCESS(进程)描述、SUNPROGRAMS(子程序)描 述。,块语句是由一系列并行执行语句构成的组合体,它的功 能是将结构体中的并行语句组成一个或多个模块。进程语句定义顺序语句模块,用于将从外部获得的信号 值,或内部的运算数据向其他的信号进行赋值。子程序调用语句用于调用一个已设计好的子程序。信号赋值语句将设计实体

10、内的处理结果向定义的信号或界 面端口进行赋值。元件例化语句对其他的设计实体作元件调用说明。,使用BLOCK语句描述的格式如下:块标号:BLOCK BEGINEND BLOCK 块标号;,1) BLOCK块语句,ENTITY mux ISPORT (d0,d1,sel: IN BIT;q:OUT BIT);END mux;ARCHITECTURE connect OF mux ISSIGNAL tmp1,tmp2,tmp3:BIT;BEGINcale:BLOCKBEGINtmp1=d0 AND sel;tmp2=d1 AND (NOT sel);tmp3=tmp1 OR tmp2;q=tmp3;

11、END BLOCK cale; END connect;,【例2.6】 用块语句实现的二选一电路,进程描述的格式如下:进程名:PROCESS(信号1,信号2,)BEGINEND PROCESS 进程名;进程语句中总是带有信号变量(敏感变量),只有当信号 变量发生变化时,进程才被启动,将进程里的语句从上到下 顺序执行一遍,执行完了就回到开始的PROCESS语句。,2) 进程(Process)语句描述,ENTITY mux2 ISPORT (d0,d1,sel:IN BIT;q:OUT BIT);END mux2;ARCHITECTURE connect OF mux2 ISBEGIN cale:

12、PROCESS(d0,d1,sel) VARIABLE tmp1,tmp2,tmp3:BIT;BEGINtmp1:=d0 AND sel; tmp2:=d1 AND (NOT sel);tmp3:=tmp1 OR tmp2;q=tmp3END PROCESS cale; END connect;,【例2.7】用进程语句实现的二选一电路,子程序就是在主程序调用它以后能将处理结果返回给主程 序。在VHDL中有2种类型:过程和函数。 过程语句PROCEDURE 过程名(参数1,参数2) IS定义语句;BEGIN顺序处理语句;END 过程名;,3) 子程序语句描述,函数语句 FUNCTION 函数名(

13、参数1,参数2)RETURN数据类型名 IS定义语句;BEGIN顺序处理语句RETURN 返回变量名END 函数名;,FUNCTION min(x,y:INTEGER ) RETURN INTEGER ISBEGINIF XY THEN RETURN(x);ELSERETURN(y);END IF;END min;,【例2.8】 FUNCTION语句应用举例,PROCEDURE vector_to_int (q:IN INTEGER;x_flag :OUT BOOLEAN;z:IN STD_LOGIC_VECTOR) ISBEGINq:=0;x_flag:=FALSE;FOR i IN zRA

14、NGE LOOPq:=q*2;IF(z(i)=1) THENq:=q+1;ELSEIF (z(i)/=0) THENx_flag:=TRUE;END IF;END LOOP;END vector_to_int;,【例2.9】 PROCEDURE语句应用,2.2.3 库库是经编译后的数据的集合,它存放包定义、实体定义、构造定义和配置定义。使设计者可以共享已经编译的设计结果。VHDL中常用的库如下:IEEE库IEEE库中包含IEEE标准的程序包,包括STD_LOGIC_1164、NUMERIC_BIT、 NUMERIC_STD以及其他一些程序包。其中STD_LOGIC_1164是最主要的程序包,大

15、部分可用于可编程逻辑器件的程序包都以这个程序包为基础。,STD库STD库包含STANDARD和TEXTIO程序包。STANDARD程序包中定义了许多基本的数据类型、子类型 和函数。TEXTIO是文件输入/输出程序包,是VHDL语言标准定义的。 在VHDL的编译和综合过程中,系统都能自动调用因此不必在 程序开始处打开该库及其程序包。 WORK库WORK库是VHDL的现行工作库,用于存放用户设计和定 义的一些单元和程序包。在使用该库时无需进行任何说明。,VITAL库 使用VITAL可以提高门级时序仿真的精度,一般在VHDL 语言程序进行仿真时使用。主要包含两个程序包: VITAL_timing:时

16、序仿真包; VITAL_primitives:基本单元程序包。现在的EDA开发工 具都已将VITAL库的程序包加到IEEE库了。,在使用库之前,一定要进行库说明和包说明。库和包的说明格式LIBRARY 库名;USE 库名.程序包名.项目名/all,2.2.4 程序包包中罗列VHDL中用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义,它是一个可编译的设计单元,也是库结构中的一个层次,使用包时可以用USE语句说明,例如:USE IEEE.STD_LOGIC_1164.ALL,程序包分为包首和包体。(1)程序包首格式PACKAGE 包名 IS说明语句END 包名;(2)程序包体格式P

17、ACKAGE BODY 包名 IS说明语句END PACKAGE BODY包名;,PACKAGE logic ISTYPE three_level_logic IS (0,1,z); CONSTANT unknown_value:three_level_logic:=0;FUNCTION invert(input:three_level_logic) RETURN three_level_logic ; END logic;,【例2.10】程序包首,PACKAGE BODY LOGIC IS FUNCTION invert(input: three_level_logic) return th

18、ree_level_logic is benginCase input is when 0=return 1;when 1=return 0;when z=return z;End case;End invert; End logic;,例2.11 程序包体,配置用于在多结构体中为一个实体指定一个结构体。例如,在做RS触发器的实体中使用了2个结构体,目的是 研究各个结构体描述的RS触发器的行为性能如何,但是究 竟在仿真中使用哪一个结构体的问题就是配置问题。配置语句格式CONFIGURATION 配置名 OF 实体名 IS说明语句END 配置名;,3.7.3 配置(CONFIGURATION),

19、ENTITY rs ISPORT(set,reset:IN BIT;q,qb: BUFFER BIT);END rs;ARCHITECTURE rsff1 OF rs ISCOMPONENT nand2PORT(a,b:IN BIT;c:OUT BIT);END COMPONENT;BEGINU1:nand2 PORT MAP(a=set,b=qb,c=q);U2:nand2 PORT MAP(a=reset,b=q,c=qb);END rsff1;,【例2.12】配置使用示例,ARCHITECTURE rsff2 OF rs ISBEGINq=NOT(qb AND set);qb=NOT(q AND reset);END rsff2; CONFIGURATION recon of rs ISFOR rsff1END FOR; END recon;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报