vhdl模块描述
VHDL语言可以把任意复杂的电路系统视作一个模块,一个模块可分为三个部分:参数部分、接口实体和描述部分。
设计模块的示意图如图10-1所示。
vhdl模块描述
VHDL语言可以把任意复杂的电路系统视作一个模块,一个模块可分为三个部分:参数部分、接口实体和描述部分。
设计模块的示意图如图10-1所示。
接口部分—设计实体
模块中仅有一个设计实体,它提供该设计模块的公共信息,是VHDL设计电路的最基本部分。
VHDL设计的电路系统可分层次,所以设计的模块系统实体既可以是顶层实体,又可以是最底层实体。
设计实体中的一部分是外部可见特性,例如设计模块的名称,端口引脚信息,如图10-3所示的异或门实体,其VHDL硬件描述语言如下:
例2: ENTITY kxor IS PORT(a1,b1:IN std_logIC; c1:OUT std_logic); END kxor; |
实体部分的大写单词ENTITY、 IS、 PORT、 IN、 OUT、 END为关键字,
ENTITY... END之间表示实体的内容, ENTITY后的字符串 knor表示实体的名称,即电路的符号名。
PORT—端口(引脚)信息关键字,IN—输入模式关键字,OUT—输出模式关键字。
该实体定义了两个输入(IN)模式a1和b1,一个是输出(OUT)模式c1,并描述了信号的流向。
设计实体还有外部不可见特性,如类属部分(GENERIC)可以表示延时的时间量值等,在这里中不做讨论。
实体的名称、端口信息等归纳如下。
描述部分—结构体
当异或门的符号和外部端口a1、b1和c1确定之后,就要确定实体的内部电路。内部电路称为结构体ARCHITECTURE,它描述实体硬件的互连关系、数据的传输和变换以及动态行为。一个实体可以对应多个结构体,每个结构体可以代表该硬件的某一方面特性。与上例kxor实体相对应的电路原理图如图10-4所示,相对应的VHDL结构体描述如下:
例3: ARCHITECTURE kxor_arc OF kxor IS BEGIN c1 <= (NOT a1 AND b1) OR (a1 AND NOT b1); END kxor_arc; |
关键字ARCHITECTURE标明的语句中描述实体的内部结构;
kxor_arc—结构体的名字,且正在描述的结构体是实体kxor的结构体。
a1和b1端口信息经过异或之后,送到c1。