文档详情

5-VHDL主要描述语句(并行语句).ppt

发布:2017-05-27约1.3万字共52页下载文档
文本预览下载声明
例 PROCEDURE check (SIGNAL a: IN STD_LOGIC_VECTOR;--在调用时 SIGNANL error:OUT BOOLEAN) IS --再定位宽 VARIABLE found_one:BOOLEAN:=FALSE; --设初始值 BEGIN FOR i IN aRANGE LOOP --对位矢量A的所有的位元素进行循环检测 IF a(i)=‘1’ THEN --发现a中有‘1’ IF found_one THEN --found_one为TRUE,则表明发现了一个以上的‘1’ error=TRUE; --发现了一个以上的‘1’,令found_one为TRUE RETURN; --结束过程 END IF; found_one:=TRUE; --在a中已发现了一个‘1’ END IF; END LOOP; --再测a中的其他位 ERROR=NOT found_one;--如果没有任何‘1’被发现,ERROR将被置TRUE END PROCEDURE check; 下例是对不同位宽的位矢信号利用以上的过程进行检测的并行过程调用程序: … chblk : BLOCK SIGNAL s1: STD_LOGIC_VECTOR(0 TO 0); --过程调用前设定矢尺寸 SIGNAL s2: STD_LOGIC_VECTOR(0 TO 1); SIGNAL s3: STD_LOGIC_VECTOR(0 TO 2); SIGNAL s4: STD_LOGIC_VECTOR(0 TO 3); SIGNAL e1,e2,e3,e4: BOOLEAN; BEGIN check(s1,e1); --并行过程调用,关联参数名为s1、e1 check(s2,e2); --并行过程调用,关联参数名为s2、e2 check(s3,e3); --并行过程调用,关联参数名为s3、e3 check(s4,e4); --并行过程调用,关联参数名为s4、e4 END BLOCK; … 上例块chblk的逻辑电路结构图 S1[0] e1 e3 e2 S2[1] S2[0] S3[0] S3[2] S3[1] S4[0] S4[1] S4[2] S4[3] e4 元件例化就是将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。 元件例化是可以多层次的,在一个设计实体中被调用安插的元件本身也可以是一个低层次的当前设计实体,因而可以调用其他的元件,以便构成更低层次的电路模块。 5.2.5 元件例化语句 元件例化语句由两部分组成,前一部分是将一个现成的设计实体定义为一个元件的语句,第二部分则是此元件与当前设计实体中的连接说明,它们的语句格式如下: COMPONENT 例化元件名 IS GENERIC (类属表); PORT(例化元件端口名表); -- 元件定义语句 END COMPONENT 例化元件名; 元件例化名:例化元件名 PORT MAP( [例化元件端口名=]连接实体端口名, …); --元件例化语句 例 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nd2 IS PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END ENTITY nd2; ARCHITECTURE nd2behv OF nd2 IS BEGIN c=a NAND b; END ARCHITECTURE nd2behv; 续例: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ord41 IS PORT(a1,b1,c1,d1:IN STD_LOGIC; z1:OUT STD_LOGIC); END ENTITY ord
显示全部
相似文档