VHDL基本框架
- VHDL由实体和结构体组成
实体表达与实体名一般格式
ENTITY e_name IS
PORT( p_name : port_m data_type;
```
p_namei : port_mi data_type
);
END ENTITY e_name;
结构体一般格式:
ARCHITECTURE arch_name OF e_name IS
[说明语句] ----定义数据对象、数据类型、元件调用说明等;
BEGIN
(功能描述语句)
END ARCHITECTURE arch_name ;
- 实体描述电路器件的外部情况和各信号端口的基本性质。
- 结构体描述电路器件的内部逻辑功能和电路结构。
ENTITY mux21a IS --实体,mux21a为实体名;
PORT(a,b,s : IN BIT; --BIT数据类型只有0和1;
y : out bIT
);
END ENTITY mux21a;
ARCHITECTURE bhy OF mux21a IS --结构体
BEGIN
PROCESS(a,b,s) --进程语句起始,a,b,s为敏感信号,PROCESS语句的执行依赖于敏感信号
BEGIN
IF(S='1') THEN y<=a;
ELSE y<=b;
END IF;
END PROCESS;
END ARCHITECTURE bhy;
- 端口语句和端口信号名
- 必须由端口语句PORT()来引导,结尾处加;
- 端口数据的流动方向于方式定义
(1)IN:输入端口。数据只能从此端口被读入实体中。
(2)OUT:输出端口。数据只能从此端口从实体向外流出。
(3)INOUT:双向端口。信号即可从此端口流出也可输入
(4)BUFFER:缓冲端口
- 端口数据类型:
- BIT:'0'、'1'; --注意:二进制逻辑位‘1’和‘0’必须加单引号。
- INTEGER:整数类型
- BOOLEAN:布尔类型
- STD_LOGIC:标准逻辑类型
- 标识符:实体名,结构体名,信号名或端口名等,不应用数字、数字起头的文字或中文来表述
- 关键词:例如:ENTITY、ARCHITECTURE、END、IF、ELSE等,在遇到关键词会以特定颜色显示。
- 进程语句和顺序语句
- 由PROCESS引导的语句称为进程语句,所有描述语句须放在进程语句中。
PROCESS(a,b,s) ---a,b,s为敏感信号表