VHDL程序基本结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3) 子程序语句描述
EDA技术
子程序就是在主程序调用它以后能将处理结果返回给主程 序。在VHDL中有2种类型:过程和函数。 ●过程语句
PROCEDURE 过程名(参数1,参数2) IS [定义语句]; BEGIN [顺序处理语句];
END 过程名;
2021/10/10
21
第2章 VHDL硬件描述语言
中间在方括号内的语句描述,在特定的情况下并非是必须 的。例如构建一个VHDL仿真测试基准等情况中可以省去方括 号中的语句。
2021/10/10
4
第2章 VHDL硬件描述语言
EDA技术
2.类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数,常以一种说明
的形式放在实体或块结构体前的说明部分。类属为所说明的环 境提供了一种静态信息通道,类属的值可以由设计实体外部提 供。
类属说明的一般书写格式如下: GENERIC([常数名;数据类型[:设定值] {;常数名:数据类型[:设定值 ]});
2021/10/10
5
第2章 VHDL硬件描述语言
EDA技术
【例2.2】2输入与门的实体描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY AND2 IS GENERIC(RISEW:TIME:=1 ns; FALLW:TIME:=1 ns); PORT( A1:IN STD_LOGIC; A0:IN STD_LOGIC; Z0:OUT STD_LOGIC);
EDA技术
●函数语句 FUNCTION 函数名(参数1,参数2)RETURN数据类型名 IS
[定义语句]; BEGIN
[顺序处理语句] RETURN [返回变量名] END 函数名;
2021/10/10
22
第2章 VHDL硬件描述语言
【例2.8】 FUNCTION语句应用举例
EDA技术
FUNCTION min(x,y:INTEGER ) RETURN INTEGER IS
EDA技术
2.2.1 实体
实体(ENTITY)是一个设计实体的表层设计单元,其功能
是对这个设计实体与外部电路进行接口描述。它规定了设计
单元的输入输出接口信号或引脚,是设计实体经封装后对外
的一个通信界面。
1.实体语句结构
实体说明单元的常用语句结构如下:
ENTITY 实体名 IS
[GENERIC(类属表);]
2021/10/10
11
第2章 VHDL硬件描述语言
EDA技术
1. 结构体语句格式
ARCHITECTURE 结构体名 OF 实体名 IS [说明语句] --内部信号,常数,数据类型,函数等的定义 BEGIN [功能描述语句]
END [ARCHITECTURE] [结构体名];
2021/10/10
12
[PORT(端口表);]
END [ENTITY] 实体名;
2021/10/10
3
第2章 VHDL硬件描述语言
EDA技术
实体说明单元必须以语句“ENTITY 实体名IS”开始,以语 句“END ENTITY 实体名;”结束。
实体名是设计者自己给设计实体的命名,可作为其他设计 实体对该设计实体进行调用时用。
2021/10/10
9
第2章 VHDL硬件描述语言
EDA技术
【例2.4】端口模式及IEEE库数据类型定义
LIBRARY IEEE; USE IEEE.STD_LOGIC.1164.ALL;
ENTITY mm IS PORT(n0,n1,select:IN STD_LOGIC; Q:OUT STD_LOGIC; Bus:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
{端口名:端口模式 数据类型}); 端口名是设计者为实体的每一个对外通道(系统引脚)所 取的名字,一般用几个英文字母组成;
端口模式(端口方向)是指这些通道上的数据流动方式, 即定义引脚是输入还是输出;
数据类型是指端口上流动的数据的表达格式。
2021/10/10
7
第2章 VHDL硬件描述语言
EDA技术
在一个结构体中说明和定义的数据类型、常数、元件、函
数和过程只能用于这个结构体中,若希望其能用于其他的实体
或结构体中,则需要将其作为程序包来处理。
2021/10/10
14
第2章 VHDL硬件描述语言
EDA技术
3. 功能描述语句 描述设计实体的具体行为,它包含两类语句:
(1)并行语句:并行语句总是在进程语句(PROCESS)的外
VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN tmp1:=d0 AND sel; tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2;
q<=tmp3 END PROCESS cale; 20E2N1/1D0/10connect;
EDA技术
20
第2章 VHDL硬件描述语言
2021/10/10
19
第2章 VHDL硬件描述语言
【例2.7】用进程语句实现的二选一电路
ENTITY mux2 IS PORT (d0,d1,sel:IN BIT; q:OUT BIT);
END mux2;
ARCHITECTURE connect OF mux2 IS
BEGIN cale:PROCESS(d0,d1,sel)
END mux; ARCHITECTURE connect OF mux IS
SIGNAL tmp1,tmp2,tmp3:BIT; BEGIN
cale:BLOCK BEGIN tmp1<=d0 AND sel; tmp2<=d1 AND (NOT sel); tmp3<=tmp1 OR tmp2; q<=tmp3;
第2章 VHDL硬件描述语言
EDA技术
2.2VHDL程序基本结构
一个相对完整的VHDL程序通常包含实体(Entity)、结构体 (Architecture)、配置(Configuration)、程序包(Package)和库 (Library)5个部分。
库、程序包使用说明
GENERIC类属说明
设 实体(ENTITY)
END ENTITY AND2; 类属说明中定义参数RISEW为上沿宽度,FALLW为下沿宽
度,它们分别为 1 ns,这两个参数用于仿真模块的设计。
2021/10/10
6
第2章 VHDL硬件描述语言
EDA技术
3.PORT端口说明 实体端口说明的一般书写格式如下:
PORT(端口名:端口模式 数据类型;
(2)实体:用于描述所设计的系统的外部接口信号,是 可视部分;
(3)结构体:用于描述系统内部的结构和行为,建立输 入和输出之间的关系,是不可视部分。
(4)配置说明语句:主要用于以层次化的方式对特定的 设计实体进行元件例化,或是为实体选定某个特定的结构体。
2021/10/10
2
第2章 VHDL硬件描述语言
END ENTITY mm;
例中端口数据类型取自IEEE标准库(该库中有数据类型和
函数的说明),其中STD_LOGIC 取值为“0”,“1”,“X”和
“Z”。因为使用了库,所以在实体说明前要增加库说明语句
。
2021/10/10
10
第2章 VHDL硬件描述语言
2.2.2 结构体
EDA技术
结构体(ARCHITECTURE)是设计实体的一个重要部分, 结构体将具体实现一个实体。
2021/10/10
16
第2章 VHDL硬件描述语言
1) BLOCK块语句 使用BLOCK语句描述的格式如下:
[块标号:]BLOCK BEGIN
END BLOCK [块标号];
2021/10/10
EDA技术
17
第2章 VHDL硬件描述语言
【例2.6】 用块语句实现的二选一电路
ENTITY mux IS PORT (d0,d1,sel: IN BIT; q:OUT BIT);
BEGIN q:=0; x_flag:=FALSE;
FOR i IN z’RANGE LOOP q:=q*2;
IF(z(i)=1) THEN q:=q+1;
计
PORT端口说明
实 结构体(ARCHITECTURE)
体
配置(CONFIGURATION)
结构体说明 结构体功能描述
图2.4VHDL程序设计基本结构
2021/10/10
1
第2章 VHDL硬件描述语言
EDA技术
(1)库、程序包使用说明:用于打开(调用)本设计实体 将要用到的库、程序包;程序包存放各个设计模块共享的 数据类型、常数和子程序等;库是专门存放预编译程序包 的地方。
第2章 VHDL硬件描述语言
EDA技术
【例2.5】结构体描述
ENTITY mux IS PORT(a0,a1:IN BIT; Sel:IN BIT; Sh:OUT BIT);
END mux; ARCHITECTURE dataflow OF mux IS
BEGIN sh<=(a0 AND sel)OR(NOT sel AND a1);
IN
O UT
BU FFER
IN OU T
图2.5 端口模式符号图源自2021/10/108
第2章 VHDL硬件描述语言
【例2.3】端口模式及数据类型定义
EDA技术
PORT(n0,n1,select:IN BIT; q:OUT BIT; bus:OUT BIT_VECTOR(7 DOWNTO 0));
说明:n0, n1,select 是输入引脚,属于BIT型; q是输出引脚,BIT型; bus是一组8位二进制总线,属于BIT_VECTOR。
IEEE 1076标准包中定义了4种常用的端口模式,各端口模 式的功能及符号分别见表2.1和图2.5。
表2.1 端口模式说明
端口模式 IN OUT
BUFFER INOUT
端口模式说明(以设计实体为主体) 输入,只读模式,将变量或信号信息通过该端口读 入输出,单向赋值模式,将信号通过该端口输出 具有读功能的输出模式,可以读或写,只能有一个 驱双动向源,可以通过该端口读入或写出信息
EDA技术
块语句是由一系列并行执行语句构成的组合体,它的功 能是将结构体中的并行语句组成一个或多个模块。
进程语句定义顺序语句模块,用于将从外部获得的信号 值,或内部的运算数据向其他的信号进行赋值。
子程序调用语句用于调用一个已设计好的子程序。 信号赋值语句将设计实体内的处理结果向定义的信号或界 面端口进行赋值。 元件例化语句对其他的设计实体作元件调用说明。
部,语句的执行与书写顺序无关,总是同时被执行。
(2)顺序语句:顺序语句总是在进程语句(PROCESS)的内
部,该语句是顺序执行的。
一个结构体可以包含几个类型的子结构描述:BLOCK(块)
描述、PROCESS(进程)描述、SUNPROGRAMS(子程序)描
述。
2021/10/10
15
第2章 VHDL硬件描述语言
END dataflow;
2021/10/10
13
第2章 VHDL硬件描述语言
EDA技术
2.结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中将要用
到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、 元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE) 等加以说明的语句。
BEGIN
IF X<Y THEN RETURN(x);
ELSE RETURN(y);
END IF; END min;
2021/10/10
23
第2章 VHDL硬件描述语言
EDA技术
【例2.9】 PROCEDURE语句应用
PROCEDURE vector_to_int (q:IN INTEGER;
x_flag :OUT BOOLEAN; z:IN STD_LOGIC_VECTOR) IS
END BLOCK cale; 20E21N/10D/10 connect;
EDA技术
18
第2章 VHDL硬件描述语言
EDA技术
2) 进程(Process)语句描述 进程描述的格式如下: [进程名]:PROCESS(信号1,信号2,…) BEGIN ┇ END PROCESS [进程名];
进程语句中总是带有信号变量(敏感变量),只有当信号 变量发生变化时,进程才被启动,将进程里的语句从上到下 顺序执行一遍,执行完了就回到开始的PROCESS语句。
结构体不能单独存在,它必须有一个界面说明,即一个 实体。
对于具有多个结构体的实体,必须用CONFIGURATION 配置语句指明用于综合的结构体和用于仿真的结构体,即 在综合后的可映射于硬件电路的设计实体中,一个实体只 对应一个结构体。
在电路中,如果实体代表一个器件符号,则结构体描述 了这个符号的内部行为。
EDA技术
子程序就是在主程序调用它以后能将处理结果返回给主程 序。在VHDL中有2种类型:过程和函数。 ●过程语句
PROCEDURE 过程名(参数1,参数2) IS [定义语句]; BEGIN [顺序处理语句];
END 过程名;
2021/10/10
21
第2章 VHDL硬件描述语言
中间在方括号内的语句描述,在特定的情况下并非是必须 的。例如构建一个VHDL仿真测试基准等情况中可以省去方括 号中的语句。
2021/10/10
4
第2章 VHDL硬件描述语言
EDA技术
2.类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数,常以一种说明
的形式放在实体或块结构体前的说明部分。类属为所说明的环 境提供了一种静态信息通道,类属的值可以由设计实体外部提 供。
类属说明的一般书写格式如下: GENERIC([常数名;数据类型[:设定值] {;常数名:数据类型[:设定值 ]});
2021/10/10
5
第2章 VHDL硬件描述语言
EDA技术
【例2.2】2输入与门的实体描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY AND2 IS GENERIC(RISEW:TIME:=1 ns; FALLW:TIME:=1 ns); PORT( A1:IN STD_LOGIC; A0:IN STD_LOGIC; Z0:OUT STD_LOGIC);
EDA技术
●函数语句 FUNCTION 函数名(参数1,参数2)RETURN数据类型名 IS
[定义语句]; BEGIN
[顺序处理语句] RETURN [返回变量名] END 函数名;
2021/10/10
22
第2章 VHDL硬件描述语言
【例2.8】 FUNCTION语句应用举例
EDA技术
FUNCTION min(x,y:INTEGER ) RETURN INTEGER IS
EDA技术
2.2.1 实体
实体(ENTITY)是一个设计实体的表层设计单元,其功能
是对这个设计实体与外部电路进行接口描述。它规定了设计
单元的输入输出接口信号或引脚,是设计实体经封装后对外
的一个通信界面。
1.实体语句结构
实体说明单元的常用语句结构如下:
ENTITY 实体名 IS
[GENERIC(类属表);]
2021/10/10
11
第2章 VHDL硬件描述语言
EDA技术
1. 结构体语句格式
ARCHITECTURE 结构体名 OF 实体名 IS [说明语句] --内部信号,常数,数据类型,函数等的定义 BEGIN [功能描述语句]
END [ARCHITECTURE] [结构体名];
2021/10/10
12
[PORT(端口表);]
END [ENTITY] 实体名;
2021/10/10
3
第2章 VHDL硬件描述语言
EDA技术
实体说明单元必须以语句“ENTITY 实体名IS”开始,以语 句“END ENTITY 实体名;”结束。
实体名是设计者自己给设计实体的命名,可作为其他设计 实体对该设计实体进行调用时用。
2021/10/10
9
第2章 VHDL硬件描述语言
EDA技术
【例2.4】端口模式及IEEE库数据类型定义
LIBRARY IEEE; USE IEEE.STD_LOGIC.1164.ALL;
ENTITY mm IS PORT(n0,n1,select:IN STD_LOGIC; Q:OUT STD_LOGIC; Bus:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
{端口名:端口模式 数据类型}); 端口名是设计者为实体的每一个对外通道(系统引脚)所 取的名字,一般用几个英文字母组成;
端口模式(端口方向)是指这些通道上的数据流动方式, 即定义引脚是输入还是输出;
数据类型是指端口上流动的数据的表达格式。
2021/10/10
7
第2章 VHDL硬件描述语言
EDA技术
在一个结构体中说明和定义的数据类型、常数、元件、函
数和过程只能用于这个结构体中,若希望其能用于其他的实体
或结构体中,则需要将其作为程序包来处理。
2021/10/10
14
第2章 VHDL硬件描述语言
EDA技术
3. 功能描述语句 描述设计实体的具体行为,它包含两类语句:
(1)并行语句:并行语句总是在进程语句(PROCESS)的外
VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN tmp1:=d0 AND sel; tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2;
q<=tmp3 END PROCESS cale; 20E2N1/1D0/10connect;
EDA技术
20
第2章 VHDL硬件描述语言
2021/10/10
19
第2章 VHDL硬件描述语言
【例2.7】用进程语句实现的二选一电路
ENTITY mux2 IS PORT (d0,d1,sel:IN BIT; q:OUT BIT);
END mux2;
ARCHITECTURE connect OF mux2 IS
BEGIN cale:PROCESS(d0,d1,sel)
END mux; ARCHITECTURE connect OF mux IS
SIGNAL tmp1,tmp2,tmp3:BIT; BEGIN
cale:BLOCK BEGIN tmp1<=d0 AND sel; tmp2<=d1 AND (NOT sel); tmp3<=tmp1 OR tmp2; q<=tmp3;
第2章 VHDL硬件描述语言
EDA技术
2.2VHDL程序基本结构
一个相对完整的VHDL程序通常包含实体(Entity)、结构体 (Architecture)、配置(Configuration)、程序包(Package)和库 (Library)5个部分。
库、程序包使用说明
GENERIC类属说明
设 实体(ENTITY)
END ENTITY AND2; 类属说明中定义参数RISEW为上沿宽度,FALLW为下沿宽
度,它们分别为 1 ns,这两个参数用于仿真模块的设计。
2021/10/10
6
第2章 VHDL硬件描述语言
EDA技术
3.PORT端口说明 实体端口说明的一般书写格式如下:
PORT(端口名:端口模式 数据类型;
(2)实体:用于描述所设计的系统的外部接口信号,是 可视部分;
(3)结构体:用于描述系统内部的结构和行为,建立输 入和输出之间的关系,是不可视部分。
(4)配置说明语句:主要用于以层次化的方式对特定的 设计实体进行元件例化,或是为实体选定某个特定的结构体。
2021/10/10
2
第2章 VHDL硬件描述语言
END ENTITY mm;
例中端口数据类型取自IEEE标准库(该库中有数据类型和
函数的说明),其中STD_LOGIC 取值为“0”,“1”,“X”和
“Z”。因为使用了库,所以在实体说明前要增加库说明语句
。
2021/10/10
10
第2章 VHDL硬件描述语言
2.2.2 结构体
EDA技术
结构体(ARCHITECTURE)是设计实体的一个重要部分, 结构体将具体实现一个实体。
2021/10/10
16
第2章 VHDL硬件描述语言
1) BLOCK块语句 使用BLOCK语句描述的格式如下:
[块标号:]BLOCK BEGIN
END BLOCK [块标号];
2021/10/10
EDA技术
17
第2章 VHDL硬件描述语言
【例2.6】 用块语句实现的二选一电路
ENTITY mux IS PORT (d0,d1,sel: IN BIT; q:OUT BIT);
BEGIN q:=0; x_flag:=FALSE;
FOR i IN z’RANGE LOOP q:=q*2;
IF(z(i)=1) THEN q:=q+1;
计
PORT端口说明
实 结构体(ARCHITECTURE)
体
配置(CONFIGURATION)
结构体说明 结构体功能描述
图2.4VHDL程序设计基本结构
2021/10/10
1
第2章 VHDL硬件描述语言
EDA技术
(1)库、程序包使用说明:用于打开(调用)本设计实体 将要用到的库、程序包;程序包存放各个设计模块共享的 数据类型、常数和子程序等;库是专门存放预编译程序包 的地方。
第2章 VHDL硬件描述语言
EDA技术
【例2.5】结构体描述
ENTITY mux IS PORT(a0,a1:IN BIT; Sel:IN BIT; Sh:OUT BIT);
END mux; ARCHITECTURE dataflow OF mux IS
BEGIN sh<=(a0 AND sel)OR(NOT sel AND a1);
IN
O UT
BU FFER
IN OU T
图2.5 端口模式符号图源自2021/10/108
第2章 VHDL硬件描述语言
【例2.3】端口模式及数据类型定义
EDA技术
PORT(n0,n1,select:IN BIT; q:OUT BIT; bus:OUT BIT_VECTOR(7 DOWNTO 0));
说明:n0, n1,select 是输入引脚,属于BIT型; q是输出引脚,BIT型; bus是一组8位二进制总线,属于BIT_VECTOR。
IEEE 1076标准包中定义了4种常用的端口模式,各端口模 式的功能及符号分别见表2.1和图2.5。
表2.1 端口模式说明
端口模式 IN OUT
BUFFER INOUT
端口模式说明(以设计实体为主体) 输入,只读模式,将变量或信号信息通过该端口读 入输出,单向赋值模式,将信号通过该端口输出 具有读功能的输出模式,可以读或写,只能有一个 驱双动向源,可以通过该端口读入或写出信息
EDA技术
块语句是由一系列并行执行语句构成的组合体,它的功 能是将结构体中的并行语句组成一个或多个模块。
进程语句定义顺序语句模块,用于将从外部获得的信号 值,或内部的运算数据向其他的信号进行赋值。
子程序调用语句用于调用一个已设计好的子程序。 信号赋值语句将设计实体内的处理结果向定义的信号或界 面端口进行赋值。 元件例化语句对其他的设计实体作元件调用说明。
部,语句的执行与书写顺序无关,总是同时被执行。
(2)顺序语句:顺序语句总是在进程语句(PROCESS)的内
部,该语句是顺序执行的。
一个结构体可以包含几个类型的子结构描述:BLOCK(块)
描述、PROCESS(进程)描述、SUNPROGRAMS(子程序)描
述。
2021/10/10
15
第2章 VHDL硬件描述语言
END dataflow;
2021/10/10
13
第2章 VHDL硬件描述语言
EDA技术
2.结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中将要用
到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、 元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE) 等加以说明的语句。
BEGIN
IF X<Y THEN RETURN(x);
ELSE RETURN(y);
END IF; END min;
2021/10/10
23
第2章 VHDL硬件描述语言
EDA技术
【例2.9】 PROCEDURE语句应用
PROCEDURE vector_to_int (q:IN INTEGER;
x_flag :OUT BOOLEAN; z:IN STD_LOGIC_VECTOR) IS
END BLOCK cale; 20E21N/10D/10 connect;
EDA技术
18
第2章 VHDL硬件描述语言
EDA技术
2) 进程(Process)语句描述 进程描述的格式如下: [进程名]:PROCESS(信号1,信号2,…) BEGIN ┇ END PROCESS [进程名];
进程语句中总是带有信号变量(敏感变量),只有当信号 变量发生变化时,进程才被启动,将进程里的语句从上到下 顺序执行一遍,执行完了就回到开始的PROCESS语句。
结构体不能单独存在,它必须有一个界面说明,即一个 实体。
对于具有多个结构体的实体,必须用CONFIGURATION 配置语句指明用于综合的结构体和用于仿真的结构体,即 在综合后的可映射于硬件电路的设计实体中,一个实体只 对应一个结构体。
在电路中,如果实体代表一个器件符号,则结构体描述 了这个符号的内部行为。