预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

图2.4VHDL程序设计基本结构(1)库、程序包使用说明:用于打开(调用)本设计实体 将要用到的库、程序包;程序包存放各个设计模块共享的 数据类型、常数和子程序等;库是专门存放预编译程序包 的地方。实体(ENTITY)是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述。它规定了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。 1.实体语句结构 实体说明单元的常用语句结构如下: ENTITY实体名IS [GENERIC(类属表);] [PORT(端口表);] END[ENTITY]实体名;实体说明单元必须以语句“ENTITY实体名IS”开始,以语句“ENDENTITY实体名;”结束。 实体名是设计者自己给设计实体的命名,可作为其他设计实体对该设计实体进行调用时用。 中间在方括号内的语句描述,在特定的情况下并非是必须的。例如构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。2.类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属的值可以由设计实体外部提供。 类属说明的一般书写格式如下: GENERIC([常数名;数据类型[:设定值] {;常数名:数据类型[:设定值]});LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; ENTITYAND2IS GENERIC(RISEW:TIME:=1ns; FALLW:TIME:=1ns); PORT(A1:INSTD_LOGIC; A0:INSTD_LOGIC; Z0:OUTSTD_LOGIC); ENDENTITYAND2;实体端口说明的一般书写格式如下: PORT(端口名:端口模式数据类型; {端口名:端口模式数据类型});图2.5端口模式符号图PORT(n0,n1,select:INBIT; q:OUTBIT; bus:OUTBIT_VECTOR(7DOWNTO0));LIBRARYIEEE; USEIEEE.STD_LOGIC.1164.ALL; ENTITYmmIS PORT(n0,n1,select:INSTD_LOGIC; Q:OUTSTD_LOGIC; Bus:OUTSTD_LOGIC_VECTOR(7DOWNTO0)); ENDENTITYmm;2.2.2结构体ARCHITECTURE结构体名OF实体名IS [说明语句]--内部信号,常数,数据类型,函数等的定义 BEGIN [功能描述语句] END[ARCHITECTURE][结构体名];ENTITYmuxIS PORT(a0,a1:INBIT; Sel:INBIT; Sh:OUTBIT); ENDmux; ARCHITECTUREdataflowOFmuxIS BEGIN sh<=(a0ANDsel)OR(NOTselANDa1); ENDdataflow;结构体中的说明语句是对结构体的功能描述语句中将要用 到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、 元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE) 等加以说明的语句。 在一个结构体中说明和定义的数据类型、常数、元件、函 数和过程只能用于这个结构体中,若希望其能用于其他的实体 或结构体中,则需要将其作为程序包来处理。3.功能描述语句 描述设计实体的具体行为,它包含两类语句: (1)并行语句:并行语句总是在进程语句(PROCESS)的外 部,语句的执行与书写顺序无关,总是同时被执行。 (2)顺序语句:顺序语句总是在进程语句(PROCESS)的内 部,该语句是顺序执行的。 一个结构体可以包含几个类型的子结构描述:BLOCK(块) 描述、PROCESS(进程)描述、SUNPROGRAMS(子程序)描 述。块语句是由一系列并行执行语句构成的组合体,它的功 能是将结构体中的并行语句组成一个或多个模块。 进程语句定义顺序语句模块,用于将从外部获得的信号 值,或内部的运算数据向其他的信号进行赋值。 子程序调用语句用于调用一个已设计好的子程序。 信号赋值语句将设计实体内的处理结果向定义的信号或界 面端口进行赋值。 元件例化语句对其他的设计实体作元件调用说明。使用BLOCK语句描述的格式如下: [块标号:]BLOCK BEGIN ENDBLOCK[块标号];ENTITYmuxIS PORT(d0,d1,sel:INBIT; q:OUTBIT); ENDmux; ARCHITECTUREconnectOFmuxIS SIGNALtmp1,tmp2,tmp3:BIT; BEGIN cale:BLOCK BEGIN tmp1