一、概述
类属参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。
类属为所说明的环境提供了一种静态信息通道。
类属与常数不同,常数只能从设计实体的内部得到赋值,且不能再改变,而类属的值可以由设计实体外部提供。
因此,设计者可以从外面通过类属参量的重新设定而容易地改变一个设计实体或元件地内部电路结构和规模。
二、书写格式
GENERIC(常数名 数据类型 := 设定值);
三、应用实例
- 定义实体的端口大小;
- 设计实体的物理特征;传输延迟,上升和下降延迟等;
- 结构体的总线宽度;
- 设计实体中底层中同种原件的例化数量;
四、程序与仿真
- 结构体的总线宽度;
1 entity mcu1 is 2 generic(addrwidth:integer:=16); 3 port( 4 add_bus:out std_logic_vector(addrwidth-1 downto 0) 5 );
2. 设计实体的物理特征;
entity pgand2 is generic(trise:TIME:=1 ;tfall:TIME:=1ns); port( a1:IN std_logic; a0:IN std_logic; Z0:OUT std_logic);
3. 设计实体中底层中同种原件的例化数量;
library ieee use ieee.std_logic_1164.all; entity exn is port(d1,d2,d3,d4,d5,d6,d7:IN std_logic; q1,q2:OUT std_logic); end ; arctecture exn_behav od exn is component andn generic(n:INTEGER); port(a:IN std_logic_vector(n-1 downto 0); c:OUT std_logic); end component; begin u1:andn generic map(n=>2) port map(a(0)=>d1,a(1)=>d2,c=>q1); u2:andn generic map(n=>5) port map(a(0)=>d3,a(1)=>d4,a(2)=>d5,a(3)=>d6,a(4)=>d7,c=>q2); end exn_behav;