|
由结构体的一般书写格式知道,结构体名称后面是信号定义,位于关键字ARCHITECTURE和BEGIN之间,用于对结构内部使用的信号、常数、数据类型、函数进行定义。特别需要注意的是,这是结构体内部,而不是实体内部,因为实体中可能有几个结构体。另外,实体说明中定义I/O信号为外部信号,而结构体定义的信号为内部信号。这两点区别一定要弄清楚。
结构体的信号定义和实体的端口说明一样,应有信号名称和数据类型定义,但不需要定义信号模式,不用说明信号方向,因为是结构体内部连接用信号,如例1-5所示。
【例1-4】 结构体的信号定义方法
ARCHITECTURE structural OF mux IS
SIGNAL ab:bit; --信号不必注明模式IN、OUT
SIGNAL x:std_logic_vector(0 to 7);
BEGIN
END structural;
并行处理语句是结构体描述的主要语句。并行处理语句表明,若一个结构体的描述用的是结构描述方式,则并行语句表达了结构体的内部元件之间的互连关系。这些语句是并行的,各个语句之间没有顺序关系。
若一个结构体是用进程语句来描述的,并且这个结构体含有多个进程,则各进程之间是并行的。但必须声明,每个进程内部的语句是有顺序的,不是并行的。
若一个结构体用模块化结构描述,则各模块间是并行的,而模块内部视描述方式而定。并行处理语句如例1-5所示。
【例1-5】 用并行语句描述的结构体
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY mux IS
PORT (do,d1:IN Bit;
Sel:IN Bit;
G:OUT Bit);
END MUX;
ARCHITECTURE dataflow OF mux IS
BEGIN
g=(D0 AND sel)OR(NOT sel AND D1);
END dataflow;
该程序的等效逻辑电路图如图1.4所示。mux实体的真值表如表1.1所示。
图1.4 mux实体的等效逻辑电路图
表1.1 mux实体的真值表
|
SEL D0 D1 |
G |
|
1 x x |
D0 |
|
0 x x |
D1 |
|