第三章 VHDL语言程序的基本结构 VHDL语言程序通常包含5部分:
实体描述所设计系统的外部接口信号,是可见的。 entity:
构造描述所设计系统的内部的结构和行为,是不可见的。体 architecture:
选取所需单元组成系统的不同版本 配置
configuration:
存放各设计模块都能共享的数据类型、常数、子程包集合
package:序和函数。 库存放已经编译好的实体、构造体、包集合和配置
library:
3.1VHDL语言设计的基本单元及其构成
VHDL语言设计的基本单元就是一个设计实体。
初级设计单元ENTITY ent1 IS}...BEGIN}...END ENTITY ent1;CONFIGURATION cfg1 OF ent1 IS}...END CONFIGURATION cfg1;
公用设计数据PACKAGE pkg1 IS}...NED PACKAGE pkg1ARCHITCTURE arch3 OF ent1 ISARCHITCTURE arch3 OF ent1 IS}...}...ARCHITECTURE arch2 OF ent1 IS}...ARCHITECTURE arch1 OF ent1 IS}...BEGIN次级设计单元}...END ARCHITECTURE arch1;PACKAGE BODY pkg1 IS}...END PACKAGE BODY pkg1;VHDL的设计单元基本单元的基本组成:
基本单元的基本组成:实体说明 +构造体说明 例如:二选一电路基本设计单元的VHDL描述:
ENTITY mux IS d0 d1 generic(m:time:=1ns); PORT(d0,d1,sel:in bit; sel q:out bit); d0 & END mux; Architecture dataflow of mux & d1 is Begin sel process(d0,d1,sel) variable tmp1,tmp2,tmp3:bit; begin q ≥1 q
3.1.1实体说明
实体说明是一个设计实体的表层设计单元,描述设计实体与外部电路进行接口。规定设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。
实体说明单元的常用语句结构如下: ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END 实体名; 中间在方括号内的语句描述,在特定的情况下并非是必须的。 例如:构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。 1、类属参数说明
类属(GENERIC)参数是一种端口界面常数,常以一种说明的形式放在实体说明部分。是一些信息,默认的参数值。如端口大小、总线宽度、时间等。 类属说明的一般书写格式如下: GENERIC([常数名:数据类型[:=设定值] [;常数名:数据类型[:设定值 ]]); 例如: ENTITY MCK IS GENERIC(WIDTH:INTEGER:=16; RISEW:TIME:=1 ns; FALLW:TIME:=1 ns) ; PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0)); END MCK; 2、端口说明(PORT)
注意:(1)该模块被调用时从外部传入参数值。 (2)参数值可以为本实体所属的结构体使用。 (3)传入的类属参数作为常量使用,在使用时不能修改。
端口说明是对于一个设计实体与外部接口的描述。
或者说:是CPLD/FPGA器件外部引脚信号的名称、数据类型和传输方向的描述。 实体端口说明的一般书写格式如下: PORT(端口名:端口模式 数据类型 {;端口名:端口模式 数据类型}); 1)端口名:是设计者为实体的每一个对外通道所取的名字; (实现该设计程序的器件外部引脚的名称)——标示符