vhdl基本单元
一.实体:描述模块的外部特征,描述外部接口和接口的特征
entity 实体名称 is
port();
end实体名称;
1.端口
端口声明:
port(
端口名称{,端口名称,···,···}:端口模式 数据类型;
端口名称{,端口名称,···,···}:端口模式 数据类型;
端口名称{,端口名称,···,···}:端口模式 数据类型
);
端口模式:
in 输入+读取,不赋值
out 输出+赋值,不读取
inout 输入+读取,输出+赋值,
buffer 缓冲输出≈输出,但可读取,只能连接其他实体buffer类型的端口
linkage 不指定信号传输方向,可与任意类型端口相连
数据类型:
布尔boolean、位bit、位矢量bit_vector、整数integer
//使用前需要先用USE语句声明库
LIBRARY IEEE ;
USE IEEE.XXX.ALL;
端口类型:
STD_LOGIC:端口信号只能取0 1
STD_LOGIC_VECTOR : 端口的信号可以取一组二进制位,例如(7 downto 0),说明该端口是一个8位的端口,比特位从左到右为从高到低的次序.
二.构造体:用构造体对实体内部实现做更详细的描述。一个实体声明可以有多个构造体。
architecture 构造体名称 of 实体名称 is
{声明语句;}
begin
{并发语句;}
end 构造体名称;在这里插入代码片
1.行为描述:通常用process
数据流描述:使用vhdl中的标准布尔函数
结构描述:通过下层模块的声明和调用及端口映射将下层模块相连
声明语句:在构造体的begin之前
2.use语句:
子程序声明subprogram
子程序体subprogram body
类型type
子类型subtype
常量constant
信号signal
元件component
并发concurrent
3.配置语句:
configuration 配置名称 of 实体名称 is
for 结构体名称
use
配置项;
end for;
end 配置名称;
三.包集合:用于存储在工程设计中需要反复用到的常量定义、数据类型定义、子类型定义、子程序、函数声明。
//包集合由包集合声明和包集合体两部分组成
package 包集合名称 is
包集合声明语句
end 包集合名称;
package body 包集合名称 is
包集合体描述语句
end 包集合名称;
四.库
library IEEE/STD/ASIC/WORK/用户自定义;