文档介绍:EDA 技术实用教程
第 9 章
VHDL结构与要素
实体
KX康芯科技
实体语句结构
实体说明单元的一般语句结构:
ENTITY 实体名 IS
[GENERIC ( 参数名:数据类型);]
[PORT ( 端口表);]
END ENTITY 实体名;
实体
KX康芯科技
参数传递说明语句
参数传递说明语句的一般书写格式如下:
GENERIC([ 常数名: 数据类型[ : 设定值]
{ ;常数名: 数据类型[ : 设定值] } ) ;
实体
KX康芯科技
参数传递说明语句
【例9-1】
LIBRARY IEEE;
USE ;
ENTITY andn IS
GENERIC ( n : INTEGER ); --定义类属参量及其数据类型
PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);--用类属参量限制矢量长度
c : OUT STD_LOGIC);
END;
ARCHITECTURE behav OF andn IS
BEGIN
PROCESS (a)
VARIABLE int : STD_LOGIC;
BEGIN
int := '1';
FOR i IN a'LENGTH - 1 DOWNTO 0 LOOP --循环语句
IF a(i)='0' THEN int := '0';
END IF;
END LOOP;
c <=int ;
END PROCESS;
END;
实体
KX康芯科技
参数传递说明语句
【例9-2】
LIBRARY IEEE;
USE ;
ENTITY exn IS
PORT(d1,d2,d3,d4,d5,d6,d7 : IN STD_LOGIC;
q1,q2 : OUT STD_LOGIC);
END;
ARCHITECTURE exn_behav OF exn IS
COMPONENT andn --调用例10-1的元件调用声明
GENERIC ( n : INTEGER);
PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);
C : OUT STD_LOGIC);
PONENT ;
BEGIN
u1: andn GENERIC MAP (n =>2) -- 参数传递映射语句,定义类属变量,n赋值为2
PORT MAP (a(0)=>d1,a(1)=>d2,c=>q1);
u2: andn GENERIC MAP (n =>5) -- 定义类属变量,n赋值为5
PORT MAP (a(0)=>d3,a(1)=>d4,a(2)=>d5,
a(3)=>d6,a(4)=>d7, c=>q2);
END;
实体
KX康芯科技
参数传递映射语句
【例9-3】
LIBRARY IEEE; --待例化元件
USE ;
USE ;
USE ;
ENTITY addern IS
PORT (a, b: IN STD_LOGIC_VECTOR;
result: out STD_LOGIC_VECTOR);
END addern;
ARCHITECTURE behave OF addern IS
BEGIN
result <= a + b;
END;
KX康芯科技
参数传递映射语句
【例9-4】
LIBRARY IEEE; --顶层设计
USE ;
USE ;
USE ;
ENTITY adders IS
GENERIC(msb_operand: INTEGER := 15; msb_sum: INTEGER :=15);
PORT(b: IN STD_LOGIC_VECTOR (msb_operand DOWNTO 0);
result: OUT STD_LOGIC_VECTOR (msb_sum DOWNTO 0));
END adders;
ARCHITECTURE behave OF adders IS
COMPONENT addern
PORT ( a, b: IN STD_LOGI