元件例化语句块语句和生成语句课件

上传人:风*** 文档编号:241625661 上传时间:2024-07-11 格式:PPT 页数:34 大小:248.11KB
返回 下载 相关 举报
元件例化语句块语句和生成语句课件_第1页
第1页 / 共34页
元件例化语句块语句和生成语句课件_第2页
第2页 / 共34页
元件例化语句块语句和生成语句课件_第3页
第3页 / 共34页
点击查看更多>>
资源描述
元件例化语句、块语句与生元件例化语句、块语句与生成语句(成语句(P67-68、73-76)元件例化语句、块语句与生成语句(P67-68、73-76)1本课要解决的问题:本课要解决的问题:l掌握元件例化语句的格式与应用;l掌握块语句的格式与应用;l掌握生成语句的格式与应用。本课要解决的问题:掌握元件例化语句的格式与应用;2顺序语句的总结顺序语句的总结lVHDL的顺序语句包括:赋值语句赋值语句等待语句等待语句返回语句返回语句流程控流程控制语句制语句空操作空操作语句语句顺序语句的总结VHDL的顺序语句包括:赋值语句等待语句返回语3l顺序语句的特点:pp 语句的执行与书语句的执行与书写顺序一致;写顺序一致;pp 顺序语句只能在顺序语句只能在进程、过程、函数进程、过程、函数中执行;中执行;顺序语句的特点:语句的执行与书写顺序一致;顺序语句只能在4并行语句并行语句lVHDL的并行语句包括:赋值语句赋值语句块语句块语句进程语句进程语句元件例元件例化语句化语句生成语句生成语句并行语句VHDL的并行语句包括:赋值语句块语句进程语句元件例5l并行语句的特点pp 语句的执行与书语句的执行与书写顺序无关,必须写顺序无关,必须通过敏感信号的变通过敏感信号的变化来启动;化来启动;pp 每个并行语句相每个并行语句相对独立,一个语句对独立,一个语句一般对应一个电路一般对应一个电路模块,语句间通过模块,语句间通过信号通信;信号通信;并行语句的特点 语句的执行与书写顺序无关,必须通过敏感信号的6一、利用元件例化语句描述的一、利用元件例化语句描述的表决器表决器BEGINU1:an2 PORT MAP(a=SW1,b=SW2,c=i1);U2:an2 PORT MAP(a=SW2,b=SW3,c=i2);U3:an2 PORT MAP(a=SW1,b=SW3,c=i3);U4:o3 PORT MAP(i1,i2,i3,L2);U5:n1 PORT MAP(L2,L1);END behav;ENTITY voter ISPORT(SW1,SW2,SW3:IN BIT;L1:OUT BIT;L2:BUFFER BIT);END voter;ARCHITECTURE behav OF voter ISSIGNAL i1,i2,i3:BIT;COMPONENT an2PORT(a,b:IN BIT;c:OUT BIT);END COMPONENT an2;COMPONENT o3 PORT(l,m,n:IN BIT;z:OUT BIT);END COMPONENT o3;COMPONENT n1PORT(x:IN BIT;y:OUT BIT);END COMPONENT n1;元件定义语句,将实体an2、o3和n1定义为元件元件调用语句,调用元件an2、o3、n1,U1U5为元件标号一、利用元件例化语句描述的表决器BEGINENTITY v7二、元件例化语句二、元件例化语句(P73-75)l作用 将事先设计好的实体看作是一个“元件”,在新的设计中调用这个元件,定义这个元件与其他信号、元件与元件、元件与外部端口的连接关系。调用了与门调用了或门定义元件与端口的连接定义调用元件间的连接定义元件与端口的连接调用了反相器i3i3i2i2i1i1二、元件例化语句(P73-75)作用调用了与门调用了或门定义8l格式l元件例化语句由两部分组成,包括元件定义语句和元件调用语句。l元件定义语句:把已经设计好的实体定义为一个可以调用的元件。实体的端口为该元件的引脚。COMPONENT 元件名元件名 GENERIC(类属表);(类属表);PORT(端口名表);(端口名表);END COMPONENT 元件名;元件名;COMPONENT ND2GENERIC(n:INTEGER);PORT(a:IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);c:OUT STD_LOGIC);END COMPONENT ND2;格式COMPONENT 元件名COMPONENT ND29l实体与元件的对应:ENTITY an2 ISPORT(a,b:IN BIT;c:OUT BIT);END an2;ARCHITECTURE behav OF an2 ISBEGINc=a AND b;END behav;COMPONENT an2PORT(a,b:IN BIT;c:OUT BIT);END COMPONENT an2;ENTITY n1 ISPORT(x:IN BIT;y:OUT BIT);END n1;ARCHITECTURE behav OF n1 ISBEGINy=NOT x;END behav;COMPONENT o3 PORT(l,m,n:IN BIT;z:OUT BIT);END COMPONENT o3;COMPONENT n1PORT(x:IN BIT;y:OUT BIT);END COMPONENT n1;ENTITY o3 ISPORT(l,m,n:IN BIT;z:OUT BIT);END o3;ARCHITECTURE behav OF o3 ISBEGINz2);PORT MAP(a(0)=C1,a(1)=D1,c=Y);ULN2003U1芯片型号芯片型号-元件名元件名插座插座-标号标号名名元件调用语句:标号名:u2:andn GENERIC MA11l元件调用的对应关系:i3i3i2i2i1i1U1:an2 PORT MAP U1:an2 PORT MAP(a=SW1,b=SW2,(a=SW1,b=SW2,c=i1);c=i1);U2:an2 PORT MAP(a=SW2,U2:an2 PORT MAP(a=SW2,b=SW3,c=i2);b=SW3,c=i2);U3:an2 PORT MAP U3:an2 PORT MAP(a=SW1,b=SW3,(a=SW1,b=SW3,c=i3);c=i3);U4:o3 PORT MAP U4:o3 PORT MAP(i1,i2,i3,L2);(i1,i2,i3,L2);U5:n1 PORT MAP(L2,U5:n1 PORT MAP(L2,L1);L1);元件调用的对应关系:i3i2i1U1:an2 PORT M12l端口连接定义的方法:名字关联方式:把元件的端口与它要连接的系统端口通过”=”对应起来。位置关联方式:系统端口在端口映射语句中的位置,与它连接的元件端口在元件的端口说明语句中的位置相对应。U1:an2 PORT MAP(a=SW1,b=SW2,c=i1);SW2SW1i1abcCOMPONENT an2 PORT(a:IN BIT;b:IN_BIT;c:OUT STD_BIT);END COMPONENT an2;.u1:an2 PORT MAP(SW1,SW2,i1);SW1SW2i1abc端口连接定义的方法:U1:an2 PORT MAP(a=13l混合关联方式:i1ababcCOMPINENT an2 PORT(a:IN BIT;b:IN BIT;c:OUT BIT);END COMPONENT an2;.u1:an2 PORT MAP(SW1,SW2,c=i1);位置关联方式名字关联方式混合关联方式:i1ababcCOMPINENT an2位置关14LIBRARY IEEE;USE IEEE.STD.LOGIC_1164.ALL;ENTITY ND2 ISGENERIC(n:INTEGER);PORT(a:IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);c:OUT STD_LOGIC);END ND2;ARCHITECTURE behav OF ND2 ISBEGIN PROCESS(a)VARIABLE int:STD_LOGIC;BEGIN int:=0;FOR i In aLENGTH-1 DOWNTO 0 LOOP IF a(i)=0 THEN int:=1;END IF;END LOOP;c2);PORT MAP(A1,B1,X);U2:ND2 GENERIC MAP(n=2);PORT MAP(a(1)=C1,a(0)=D1,C=Y);U3:ND2 GENERIC MAP(n=2);PORT MAP(X,Y,C=Z1);END ARCHITECTURE ORD41BEHV;Z1XYa(1)a(0)cC1D1a(1)a(0)cA1B1a(1)a(0)cU1U2U3P75【例3-13 元件例化】LIBRARY IEEE;Z116【流水灯】流水灯】流水灯】流水灯】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY no2 ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END no2;ARCHITECTURE behav OF no2 ISBEGIN c=NOT(a OR b);END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY df1 ISPORT(clk,d:IN STD_LOGIC;q:OUT STD_LOGIC);END df1;ARCHITECTURE behav OF df1 ISBEGIN PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN qCP,d=i1,q=Q1);U1:df1 PORT MAP(clk=CP,d=i1,q=Q1);U2:df1 PORT MAP(clk=CP,d=Q1,q=Q2);U2:df1 PORT MAP(clk=CP,d=Q1,q=Q2);U3:df1 PORT MAP(clk=CP,d=Q2,q=Q3);U3:df1 PORT MAP(clk=CP,d=Q2,q=Q3);U4:no2 PORT MAP(Q1,Q2,i1);U4:no2 PORT MAP(Q1,Q2,i1);END behav;i1LIBRARY IEEE;BEGINi118三、三、VHDL不同描述风格不同描述风格(P82-86)【表决器描述】表决器描述】表决器描述】表决器描述】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY voter IS PORT(a,b,c:IN STD_LOGIC;x:BUFFER STD_LOGIC;y:OUT STD_LOGIC );END ENTITY voter;ARCHITECTURE three OF voter ISSIGNAL t1,t2,t3:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL t:INTEGER RANGE 0 TO 3;BEGINt1=0&a;t2=0&b;t3=0&c;t=CONV_INTEGER(t1)+CONV_INTEGER(t2)+CONV_INTEGER(t3);x1)ELSE 0;y=NOT x;END ARCHITECTURE three;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY voter IS PORT(a,b,c:IN STD_LOGIC;x:BUFFER STD_LOGIC;y:OUT STD_LOGIC );END ENTITY voter;ARCHITECTURE two OF voter ISSIGNAL t:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN t=a&b&c;WITH t SELECT x=1 WHEN“011”,1 WHEN“110”,1 WHEN“101”,0 WHEN OTHERS;y=NOT x;END ARCHITECTURE two;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY voter IS PORT(a,b,c:IN STD_LOGIC;x:BUFFER STD_LOGIC;y:OUT STD_LOGIC );END ENTITY voter;ARCHITECTURE one OF voter IS BEGIN x=(a AND b)OR(b AND c)OR(c AND a);ySW1,b=SW2,c=i1);U2:an2 PORT MAP(a=SW2,b=SW3,c=i2);U3:an2 PORT MAP(a=SW1,b=SW3,c=i3);U4:o3 PORT MAP(i1,i2,i3,L2);U5:n1 PORT MAP(L2,L1);END behav;ENTITY voter ISPORT(SW1,SW2,SW3:IN BIT;L1:OUT BIT;L2:BUFFER BIT);END voter;ARCHITECTURE behav OF voter ISSIGNAL i1,i2,i3:BIT;COMPONENT an2PORT(a,b:IN BIT;c:OUT BIT);END COMPONENT an2;COMPONENT o3 PORT(l,m,n:IN BIT;z:OUT BIT);END COMPONENT o3;COMPONENT n1PORT(x:IN BIT;y:OUT BIT);END COMPONENT n1;v结构描述就是描述元件之间的互联关系。v它将一个大的设计划分成若干个小的单元,逐一完成个单元的设计,然后用结构描述将它们组合起来,形成更复杂的设计。v结构描述体现了模块化的设计思想。BEGINENTITY voter IS结构描述结构描述就是20【流水灯描述】流水灯描述】流水灯描述】流水灯描述】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY lsd is PORT(clk:in STD_LOGIC;led1:out STD_LOGIC_VECTOR(2 DOWNTO 0);END lsd;ARCHITECTURE behav OF lsd ISBEGINPROCESS(clk)VARIABLE count1:INTEGER RANGE 0 TO 3;BEGIN IF(clkEVENT AND clk=1)THEN IF(count1=3)THEN count1:=0;END IF;CASE count1 IS WHEN 0=led1led1led1null;END CASE;count1:=count1+1;END IF;END PROCESS;END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY lsd is PORT(clk:in STD_LOGIC;led1:buffer STD_LOGIC_VECTOR(2 DOWNTO 0);END lsd;ARCHITECTURE behav OF lsd ISBEGINPROCESS(clk)VARIABLE count1:INTEGER RANGE 0 TO 3;BEGIN IF(clkEVENT AND clk=1)THEN IF(count1=3)THEN count1:=0;ELSE count1:=count1+1;END IF;led10);led1(count1)CP,d=i1,q=Q1);U2:df1 PORT MAP(clk=CP,d=Q1,q=Q2);U3:df1 PORT MAP(clk=CP,d=Q2,q=Q3);U4:no2 PORT MAP(Q1,Q2,i1);END behav;LIBRARY IEEE;BEGIN结构描述22四、块语句四、块语句(P67-68)l作用作用 把一个大的系统分成几个模块,把一段代码分类为几个部分。l格式格式 接口说明和类属说明可以把块封装起来,块与外部通过端口连接;若块语句中定义了保护表达式,则保护表达式的值为真时,块里的并行语句才可以执行。块标号:块标号:BLOCK【(保护表达式)】【(保护表达式)】接口说明接口说明 类属说明类属说明 BEGIN 并行语句并行语句 END BLOCK 块标号;块标号;HA1:BLOCK GENERIC(C_DELAY:TIME);GENERIC MAP(C_DELAY=5ns);PORT(IN1,IN2:IN BIT;SUM,CARRY:OUT BIT);PORT MAP(IN1=A,IN2=B,SUM=S1,CARRY=C1);BEGIN SUM=(IN1 XOR IN2);CARRY5ns);GENERIC MAP(CARRY_DELAY=5ns);PORT(IN1,IN2:IN BIT;PORT(IN1,IN2:IN BIT;SUM,CARRY:OUT BIT);SUM,CARRY:OUT BIT);PORT MAP(IN1=A,IN2=B,SUM=S1,PORT MAP(IN1=A,IN2=B,SUM=S1,CARRY=C1);CARRY=C1);BEGIN BEGIN SUM=(IN1 XOR IN2);SUM=(IN1 XOR IN2);CARRY=IN2 AND IN2 after C_DELAY;CARRYC1,C=COUT,PORT MAP(A=C1,C=COUT,B=C2);B=C2);COMPONENT OR_GATE COMPONENT OR_GATE PORT(X,Y:IN BIT;Z:OUT BIT);PORT(X,Y:IN BIT;Z:OUT BIT);END COMPONENT;END COMPONENT;BEGIN BEGIN O1:OR_GATE PORT MAP(A,B,C);O1:OR_GATE PORT MAP(A,B,C);END BLOCK OR1;END BLOCK OR1;HA2:BLOCKHA2:BLOCKPORT(X,Y:IN BIT;PORT(X,Y:IN BIT;S,C:OUT BIT);S,C:OUT BIT);PORT MAP(X=CIN,Y=S1,PORT MAP(X=CIN,Y=S1,S=SUM,C=C2);S=SUM,C=C2);BEGIN BEGIN S=(X XOR Y);S=(X XOR Y);C=X AND Y;C5ns);GENERIC MAP(C_DELAY=5ns);PORT(IN1,IN2:IN BIT;PORT(IN1,IN2:IN BIT;SUM,CARRY:OUT BIT);SUM,CARRY:OUT BIT);PORT MAP(IN1=A,IN2=B,SUM=S1,PORT MAP(IN1=A,IN2=B,SUM=S1,CARRY=C1);CARRY=C1);BEGIN BEGIN SUM=(IN1 XOR IN2);SUM=(IN1 XOR IN2);CARRY=IN1 AND IN2 after C_DELAY;CARRYCIN,Y=S1,PORT MAP(X=CIN,Y=S1,S=SUM,C=C2);S=SUM,C=C2);BEGIN BEGIN S=(X XOR Y);S=(X XOR Y);C=X AND Y;CC1,C=COUT,PORT MAP(A=C1,C=COUT,B=C2);B=C2);COMPONENT OR_GATE COMPONENT OR_GATE PORT(X,Y:IN BIT;Z:OUT BIT);PORT(X,Y:IN BIT;Z:OUT BIT);END COMPONENT;END COMPONENT;BEGIN BEGIN O1:OR_GATE PORT MAP(A,B,C);O1:OR_GATE PORT MAP(A,B,C);END BLOCK OR1;END BLOCK OR1;C1C2COUTABCl块OR1定义了一个或门。OR1:BLOCKC1C2COUTABC块OR1定义了一个27IN1IN2SUMCARRYS1C1XY S CC2BACBACOUTSUMCINl整个电路:IN1IN2SUMCARRYS1C1XY S 28l块语句可以嵌套:l块语句中定义的信号只在该块范围内有效。B1:BLOCK SIGNAL S1:BIT;BEGIN:S1=A AND B;Y=S1;END BLOCK B1;B2:BLOCK SIGNAL S2:BIT;BEGIN:S2=C AND D;END BLOCK B2;B3:BLOCK SIGNAL S3:BIT;BEGIN:S3=S2;Za(i),Y=b(i);END GENERATE G1;【FORGENERATEFORGENERATE举例举例】利用生成语句,对comp元件复制8次,每复制一次循环变量i加1。8个comp元件形成了一个新的元件。【FORGENERATE举例】利用生成语句,对comp31ENTITY COUNTER4 ISPORT(COUNT,CLOCK:IN BIT;Q:BUFFER BIT_VECTOR(0 TO 3);END COUNTER4;ARCHITECTURE a_counter4 OF COUNTER4 ISCOMPONENT df PORT(d,clk:IN BIT;q:OUT BIT);END COMPONENT;(到右边)(到右边)【FORGENERATEFORGENERATE举例举例-由触发器组成的位计数器由触发器组成的位计数器】BEGIN(接左边)(接左边)GK:FOR K IN 0 TO 3 GENERATE GK0:IF K=0 GENERATE df1:df PORT MAP(COUNT,CLOCK,Q(K);END GENERATE GK0;GK1_3:IF K0 GENERATE df1:df PORT MAP(Q(K-1),CLOCK,Q(K);END GENERATE GK1_3;END GENERATE GK;END a_counter4;Q(0)Q(1)Q(2)Q(3)ENTITY COUNTER4 IS【FORGENERAT32【FORGENERATEFORGENERATE举例举例-流水灯流水灯】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY lsd5 ISPORT(CP:IN STD_LOGIC;Q:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 0);END lsd5;ARCHITECTURE behav OF lsd5 ISCOMPONENT no4 PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);c:OUT STD_LOGIC);END COMPONENT no4;COMPONENT df1PORT(clk,d:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT df1;SIGNAL i1:STD_LOGIC;BEGINLS:FOR K IN 0 TO 4 GENERATE LS0:IF K=0 GENERATE U1:df1 PORT MAP(clk=CP,d=i1,q=Q(K);END GENERATE LS0;LS1:IF K0 GENERATE U2:df1 PORT MAP(CP,Q(K-1),Q(K);END GENERATE LS1;END GENERATE LS;U3:no4 PORT MAP(a(0)=Q(0),a(1)=Q(1),a(2)=Q(2),a(3)=Q(3),c=i1);END behav;i1【FORGENERATE举例-流水灯】LIBRARY IE33练习练习l根据电路图,用结构描述方式完成电路设计。练习根据电路图,用结构描述方式完成电路设计。34
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!