实体
描述电路所有输入输出引脚
定义
实体关键字 实体名 IS
通用属性关键字(
参数名 : 参数类型 := 参数值;
);
端口关键字(
端口名:端口信号模式:数据类型;
…
…
)
END 实体名;
代码说明:
ENTITY entity_name IS
GENERIC(
parameter_name: parameter_type := parameter_value;
);
PORT (
port_name: signal_mode signal_type;
)
END entity_name;
举例:
entity tp_test_single is
GENERIC
(
DATA_LEN : integer := 10;
RD_LEN : integer := 16;
VECTOR : bit_vector := "11110101";
WR_LEN : integer := 16
);--代码声明的最后一行不能加分号,不然编译会报错
port(
tp_0 :in std_logic;
tp_1 :in std_logic;
tp_out :out std_logic_vector(7 downto 0)
)
end tp_test_single;
注意:
1. 关键字可以用大写也可以用小写
2. 代码声明的最后一行不能加分号,不然编译会报错
GENERIC 通用属性
GENERIC 通用属性 类似于C语言中的宏定义。
它提供了在fpga中一种定义常规(常量)参数的方法,指定的参数是静态的。
GENERIC 必须在实体中进行声明,参数是全局的,不仅可以在实体内部使用,还可以在后面整个文件中使用。
使用GENERIC 通用属性定义参数,修改参数方便,增强代码的灵活性和可重用性。 既然类似于宏定义,参数名一般也用大写。
通用属性在实体中不是必须包含的。
端口
端口名由自己确定,不能使用保留关键字。
端口信号模式包括四种:
in
out
inout
buffer
in 和 out 是单向引脚;
out 的端口(输出信号)不能供电路内部使用;
inout 是双向引脚;
buffer 的引脚首先是一个输出引脚,该输出信号可以供本电路(本文件内)使用。
信号的类型
信号的类型包括:
bit
std_logic
integer
将在博客《数据类型》中详细介绍。