VHDL结构体的结构化描述法
时间:06-06
来源:互联网
点击:
在结构体中,设计任务的程序包内定义了一个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位比较器的逻辑电路图
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;
结构化描述通常用于层次式设计。在8位比较器的实体设计中,实体说明仅说明了该实体的I/O关系,而设计中采用的标准元件8输入与门and 8和二输入异或非门xnor2是标准元件。它的输入关系也就是and8与xnor2的实体说明,是用USE从句的方式从库中调用的。
对于一个复杂的电子系统,可以分解成许多子系统,子系统再分解成模块。多层次设计可以使设计多人协作,并行同时进行。多层次设计的每个层次都可以作为一个元件,再构成一个模块或构成一个系统,每个元件可以分别仿真,然后再整体调试。
结构化描述不仅是一个设计方法,而且是一种设计思想,是大型电子系统设计高层主管人员必须掌握的。
除了一个常规的门电路,其标准化后作为一个元件放在库中调用,用户自己定义的特殊功能的元件也可以放在库中,以方便调用。这个过程称为标准化,有的资料中称为例化。尤其需要声明的是,元件标准化不仅仅是常规门电路,这和标准化元件的含义不一样。即任何一个用户设计的实体,无论功能多么复杂,复杂到一个数字系统,如一个CPU,还是多么简单,简单到一个门电路,如一个倒相器,都可以标准化成一个元件。现在在EDA工程中,工程师们把复杂的模块程序称为软核(softcore或IP core),调试仿真通过的集成电路版图称为硬核,而把简单的通用模块称为元件。
图1是一个8位比较器的逻辑电路图,其对应的结构化描述(structural description)程序如例1-9所示。
图1 8位比较器的逻辑电路图
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;
- DSP HPI口与PC104总线接口的FPGA设计(04-14)
- 基于FPGA的AD7862接口电路设计(01-01)
- 基于VHDL的感应加热电源数字移相触发器设计方案(03-20)
- 单板嵌入式硬件平台SingleBoard RIO(03-19)
- 设计嵌入式系统时选用NI LabVIEW的10大理由(03-19)
- 功能原型设计系列:为什么要进行快速原型(03-22)