|
VHDL程序包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)、库(library)5个部分。
简单的实体是由实体和结构体两部分组成的。实体用于描述设计系统的外部接口信号,结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式。设计实体是VHDL程序的基本单元,是电子系统的抽象。简单的实体可以是一个与门电路(AND Gate),复杂的实体可以是一个微处理器或一个数字电子系统。实体由实体说明和结构体说明两部分组成。
例1-1是计数器程序结构模板。由这个抽象的程序可以归纳出VHDL程序的基本结构。
【例1-1】 计数器程序结构模板
LIBRARY IEEE;
USE ieee.std_logic_1164.all;
ENTITY entity_name IS
PORT (
SIGNAL _data_input_name:IN INTEGER RANGE 0 TO _ count_value;
SIGNAL_clk_input_name: IN STD_LOGIC;
SIGNAL_clm_input_name: IN STD_LOGIC;
SIGNAL_ena_input_name: IN STD_LOGIC;
SIGNAL_ld_input_name : IN STD_LOGIC;
SIGNAL_count_output_name : OUT INTEGER RANGE 0 TO _
Count_value;
)
END entity_name;
ARCHITECTURE counter OF _entity_name IS
SIGNAL_count_signal_name: INTEGER RANGE 0 TO _count_value;
BEGIN
PROCESS (_clk_input_name,_clrn_input_name)--敏感变量表
BEGIN
IF _clrn_input_name = '0' THEN
_count_signal_name <= 0;
ELSIF (_clk_input_name'EVENT AND _clk_input_name = '1')THEN
IF _ld_input_name = '1' THEN
结构体 _count_signal_name <= _data_input_name;
进程 ELSE
IF _ena_input_name = '1' THEN
_count_signal_name <= _count_signal_name + 1;
ELSE
_count_signal_name <= _count_signal_name;
END IF;
END IF;
END IF;
END PROCESS;
_count_output_name <= _count_signal_name;
END counter;
由例1-1可以看出,VHDL程序由两部分组成:第1部分为实体说明,第2部分为结构体。VHDL程序结构更抽象、更基本、更简练的表示如图1.1所示。
设计实体用关键字ENTITY来标识,结构体由ARCHITECTURE来标识。系统设计中的实体提供该设计系统的公共信息,结构体定义了各个模块内的操作特性。一个设计实体必须包含一个结构体或含有多个结构体。一个电子系统的设计模型如图1.2所示。
图1.1 VHDL程序基础 图1.2 VHDL程序设计系统模型
|