介绍VHDL的三种不同的描述风格:行为级模型、RTL级模型和结构化模型的建立方法。在一个系统中三种描述风格基本上都可能用到。在主模块与子模块调用时一般采用使用结构化描述。在一般模块的设计时,根据具体情况,可以用行为级描述,又可以用数据流描述。对于一个复杂系统的描述来讲,单用一种描述方法来描述是不现实的,通常是几种描述方法混合使用。
结构体中的3种模型描述方式
实体部分描述了对外接口,实体内部的操作或特性则是通过结构体来描述的。在电路中,如果实体代表一个器件符号,则结构体描述了这个符号的内部行为。结构体不能单独存在,它必须有一个界面说明,即一个实体。
一个单一的实体可以有数个结构。每个结构体对应着实体不同结构和算法实现方案,其间的各个结构体的地位是同等的,它们完整地实现了实体的行为,但同一结构体不能为不同的实体所拥有。
结构体通常由说明部分和部分组成,基本格式如下:
ARCHITECTURE
结构体名 OF
实体名IS
<说明语句>
BEGIN
<描述语句>
END 结构体名;
注意在这个格式中,结构体名和实体名是联系在一起的。“结构体名 OF 实体名”的意思就是“某实体的一个结构体名为„„”。结构体的命名应该尽量使人了解其功能,OF后面的实体名表明该结构体属于哪个实体。
结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。
对于一个实体来说,结构体有3种描述方式:行为描述、数据流描述、结构描述。
1、行为描述法
ARCHITECTURE another OF nand2 IS
BEGIN
PROCESS(il,i2)
BEGIN
IF il=‟1‟ AND i2=‟1‟ THEN
ol<=‟0‟ AFTER 5ns;
ELSE
ol<=‟1‟ AFTER 5ns;
END IF;
END PROCESS;
END another;
注意行为描述反映一个设计的功能或算法,一般使用进程PROCESS,用顺序语句表达。这种描述完全是从与非门输入和输出的逻辑关系出发,是对与非门性能的一种描述,是一种抽象描述而不是针对某一器件,属于高层次描述,与计算机高级语言类似。
2、数据流描述法
清单3-3是二输入与非门的数据流描述,这种描述主要是反映数据经过一定的逻辑运算后在输入和输出之间的传送。
清单3-3 二输入与非门的数据流描述
ARCHITECTURE dataflow OF nand2 IS begin
ol <= i1 nand i2 end dataflow;
注意 二输入与非门的数据流描述,由与非门构成,反映一个设计中数据从输入到
输出的流向,使用并发语句描述,而不是进程顺序语句。
3、结构描述法
结构描述(structural description)是以元件(component)为基础,通过描述模块和模块之间的连接关系,来反映整个系统的构成和性能。清单3-4反映了二输入与非门的的结构描述。
ARCHITECTURE structure OF nand IS
Signal temp std_logic;
begin
u1 : and2 port map (i1,i2,temp); u2 : inv port map (temp,o1);
end structure;
注意结构描述使用元件例化语句,描述了由一个与门and2和一个非门inv通过接口
构成的一个与非门。此方法适用于多层次设计,可以把一个复杂的系统分为多个子系统,将每一个子系统设计为一个模块,再用结构描述模块和模块之间的连接关系,形成一个整体。