在结构体中,规划使命的程序包内界说了一个8输入与门(and8)和一个二异或非门(xnor2)。把该程序包编译到库中,可经过USE从句来调用这些元件,并从work库中的gatespkg程序包里获取规范化元件。
结构化描绘一般用于层次式规划。在8位比较器的实体规划中,实体阐明仅阐明晰该实体的I/O联系,而规划中选用的规范元件8输入与门and 8和二输入异或非门xnor2是规范元件。它的输入联系也便是and8与xnor2的实体阐明,是用USE从句的办法从库中调用的。
关于一个杂乱的电子体系,能够分解成许多子体系,子体系再分解成模块。多层次规划能够使规划多人协作,并行一起进行。多层次规划的每个层次都能够作为一个元件,再构成一个模块或构成一个体系,每个元件能够别离仿真,然后再全体调试。
结构化描绘不仅是一个规划办法,并且是一种规划思维,是大型电子体系规划高层主管人员有必要把握的。
除了一个惯例的门电路,其规范化后作为一个元件放在库中调用,用户自己界说的特别功用的元件也能够放在库中,以便利调用。这个进程称为规范化,有的资猜中称为例化。特别需求声明的是,元件规范化不仅仅是惯例门电路,这和规范化元件的意义不一样。即任何一个用户规划的实体,不管功用多么杂乱,杂乱到一个数字体系,如一个CPU,仍是多么简略,简略到一个门电路,如一个倒相器,都能够规范化成一个元件。现在在EDA工程中,工程师们把杂乱的模块程序称为软核(softcore或IP core),调试仿真经过的集成电路地图称为硬核,而把简略的通用模块称为元件。
图1是一个8位比较器的逻辑电路图,其对应的结构化描绘(structural description)程序如例1-9所示。
图1 8位比较器的逻辑电路图
【例1-9】 8位比较器的结构化描绘法
LIBRARY IEEE;
USE IEEE std_logic_1164.ALL;
ENTITY comparator IS
PORT (a,b: in std_logic_vector(7 downto 0);
g:out std_logic);
END comparator;
USE work.gatespkg.ALL
ARCHITECTURE structural OF comparator IS
signal x: std_logic(0 TO 7);
BEGIN
u0:xnor2 PORT MAP (a(0),b(0),x(0));
u1:xnor2 PORT MAP (a(1),b(1),x(1));
u2:xnor2 PORT MAP (a(2),b(2),x(2));
u3:xnor2 PORT MAP (a(3),b(3),x(3));
u4:xnor2 PORT MAP (a(4),b(4),x(4));
u5:xnor2 PORT MAP (a(5),b(5),x(5));
u6:xnor2 PORT MAP (a(6),b(6),x(6));
u7:xnor2 PORT MAP (a(7),b(7),x(7));
u8:xnor2 PORT MAP (x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7),
x(8),g);
END structural;