




已阅读5页,还剩111页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第6章VHDL描述语句,6.1顺序描述语句6.2并行描述语句6.3属性描述与定义语句6.4文本文件操作语句,.,6.1顺序描述语句,所谓“顺序”,是指完全按照程序中语句出现的顺序去执行各条语句,而且在结构层次中前面语句的执行结果可能直接影响后面语句的结果。VHDL共有6类顺序语句:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句。,6.1顺序描述语句6.1.1赋值语句赋值语句将一个值或表达式的运算结果传递给某一数据对象,如变量、信号或由此组成的数组。VHDL设计实体内的数据传递以及端口数据的读写都是通过赋值语句的运行实现的。,1变量赋值语句,例如:a:=3;b:=c+d;,2信号赋值语句(信号代入),例如:y=aANDb;表示将信号量a和b相与的结果赋给目的信号量y。,从语句格式看,变量赋值语句用“:=”;信号赋值语句用“=”。,从有效的范围看,变量值是一个局部的、暂时性的数据对象;信号具有全局性特性,它不但可作为一个设计实体内部各单元之间数据传送的载体,而且可通过信号与其他实体进行通信。,从有效的时间看,变量赋值是立即发生的(假设进程已启动),即是一种时间延迟为0的赋值行为;信号赋值通常不是立即发生的,而是发生在一个进程结束时,赋值过程总是有某个延时的,它反映了硬件系统的重要性,综合后可以找到与信号对应的硬件结构(如一个I/O口、一个D触发器等)。,.,6.1.2进程语句与WAIT语句,然而,顺序语句是不能出现在结构体中的,因此引入一种进程机制,用于顺序语句的仿真。,.,进程语句的一般格式为:进程标号:PROCESS(敏感信号表)IS说明语句BEGIN顺序语句ENDPROCESS进程标号;,进程语句,.,例D触发器ENTITYdff_2ISPORT(clk,d:INBit;q:OUTBit);ENDdff_2;ARCHITECTUREbhv1OFdff_2ISBEGINPROCESS(clk)BEGINIFclkEventANDclk=1THENq=d;ENDIF;ENDPROCESS;ENDbhv1;,.,(1)一个进程描述一个数字电路的工作过程,可以抽象为一个数字元器件。(2)PROCESS的启动:当敏感信号表中任一信号发生变化时,将启动该PROCESS语句,由顺序语句描述的行为将从上到下执行一次。行为的结果可以赋给信号,并通过信号被其他的PROCESS或BLOCK读取或赋值。,进程语句的特点,.,(3)进程的设计要点:,同一构造体中的进程之间是并行运行的,同一进程中的逻辑描述语句则是顺序运行的;,进程既可以由敏感信号的变化来启动,也可以由满足条件的WAIT语句来激活,但它们不能同时存在于一个进程中;,.,构造体中多个进程之所以能并行同步运行,一个很重要的原因是进程之间的通信是通过传递信号和共享变量值来实现的;进程是重要的建模工具,进程结构不但为综合器所支持,而且进程的建模方式将直接影响仿真和综合结果。,.,1、WAIT语句WAIT语句的作用是将正在仿真的进程挂起,并在WAIT语句的条件为真时,再次激活该进程。因此WAIT语句的功能,是将进程在“挂起”和“激活”两种状态之间进行转换。WAIT语句的一般格式为:WAITON敏感信号表UNTIL条件表达式FOR时间表达式;,.,因此,当一个进程语句中没有敏感信号表,同时在该进程内部的顺序语句中也没有WAIT语句,则仿真器永远也不会跳出初始化阶段。所以,一个进程语句要么含有敏感信号表,要么在该进程的内部有WAIT语句,否则该进程将陷入无限循环!,.,WAIT语句,WAIT;-无限等待WAITON信号表;-等待敏感信号发生变化,就激活进程WAITUNTIL条件表达式;-等待条件表达式中的敏感信号发-生变化且条件表达式为“true”,就执行后面的语句。WAITFOR时间表达式;-超时等待语句,等待时间超过时间表达式规定的时间后,就执行后面的语句。,.,下面是WAIT语句的常见例子:WAITONreset,clk;-等待信号reset或者clk的值变化WAITUNTILclkeventandclk=1;-等待信号clk变化,并且clk的值=1,描述一个附有清零功能的D触发器?进程如何描述?,.,p1:PROCESS(clear,clk)BEGINIFclear=0THENq=“00000000”;ELSIF(clkEventANDclk=1)THEN-clk的上升沿q=d;ENDIF;ENDPROCESSp1;,p2:PROCESSBEGINIFclear=0THENq0);ELSIF(clkEventANDclk=1)THENq=d;ENDIF;WAITONclear,clk;ENDPROCESSp2;,.,6.1.3IF语句,.,(1)IF语句的一般形式是以保留字“IF”开始,而以保留字“ENDIF”结尾。IF语句的保留字“IF”和保留字“ENDIF”之间可以包含有多个ELSIF子句和一个ELSE子句,它们是可选项。(2)IF语句的条件是一个布尔表达式,返回值为布尔类型(“TRUE/FALSE”)。当条件满足时执行接下来的顺序语句;当条件不满足时执行下面的ELSIF子句或ELSE子句或结束该IF语句。,说明:,【例6.4】IF语句示例。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(input:INSTD_LOGIC_VECTOR(3DOWNTO0);sel:INSTD_LOGIC_VECTOR(1DOWNTO0);output:OUTSTD_LOGIC);ENDmux4;,ARCHITECTURErtlOFmux4ISBEGINPROCESS(input,sel)BEGINIF(sel=“00”)THENoutput=input(0);ELSIF(sel=“01”)THENoutput=input(1);,ELSIF(sel=“10”)THENoutput=input(2);ELSEoutput=input(3);ENDIF;ENDPROCESS;ENDrtl;,说明:(1)IF_ELSIF_ELSE语句经常用来描述具有多控制条件的硬件电路。(2)IF_ELSIF语句中顺序语句的执行条件具有向上相“与”的功能。(3)IF语句不仅可用于选择器设计,而且用于比较器、译码器等也是相当方便的。,.,编码器使能端(级联输入端),为“0”时,处于编码状态,级联输出端,为“0”时,表示无编码输入,为“0”时,表示有编码输入,8线-3线优先编码器SN74148,.,例8to3优先级编码器74LS148ENTITYprioty_encoderISPORT(d:INBit_Vector(7DOWNTO0);a:OUTBit_Vector(2DOWNTO0);ei_n:INBit;eo_n,gs_n:OUTBit);ENDprioty_encoder;,.,ARCHITECTUREencoderOFprioty_encoderISBEGINPROCESS(ei_n,d)BEGINIF(ei_n=1)THENeo_n=1;gs_n=1;a=“111”;ELSIF(d=“11111111”)THENeo_n=0;gs_n=1;a=“111”;,-不允许当前编码器编码,-当前编码器无码可编,.,ELSEeo_n=1;gs_n=0;IF(d(0)=0)THENa=“111”;ELSIF(d(1)=0)THENa=“110”;ELSIF(d(2)=0)THENa=“101”;ELSIF(d(3)=0)THENa=“100”;ELSIF(d(4)=0)THEN,-编码器处于编码状态,.,a=“011”;ELSIF(d(5)=0)THENa=“010”;ELSIF(d(6)=0)THENa顺序处理语句2;WHENOTHERS=顺序处理语句n;ENDCASE;-/,(1)CASE语句的一般形式是以保留字“CASE”后跟一个条件表达式和一个保留字“IS”开始,而以保留字“ENDCASE”结尾。CASE语句的保留字“CASE”和保留字“ENDCASE”之间可以包含有多个WHEN语句,它们是可选项。,(2)VHDL程序具体执行哪一个顺序处理语句,取决于条件表达式的值与哪一个WHEN语句的选择值或OTHERS相匹配。如果条件表达式的值与某一个WHEN语句的选择值或OTHERS相匹配,则执行它们后面所跟的顺序处理语句,执行完顺序处理语句后将结束该CASE语句。,说明:,(3)WHEN语句中的选择值必须在条件表达式的取值范围内。,(4)CASE语句中每一条件语句的选择只能出现一次,相选择值的条件语句不能重复出现。,(5)所有条件表达式的值都必须穷举,不能穷举的值用OTHERS表示(OTHERS代表已给的所有条件语句中未能列出的其他可能取值,这样可以避免综合器插入不必要的寄存器)。,(6)CASE语句执行时必须选中,且只能选中所列条件语句中的一条。,(7)CASE语句中,WHEN语句可以颠倒次序而不影响语句功能,IF语句却不能(IF隐含有优先级判别)。但是,同样的逻辑功能,CASE结构综合后比IF语句将消耗更多的芯片资源。,.,3、CASE语句CASE语句的一般形式为:CASE表达式ISWHEN值域=顺序语句;WHENOTHERS=顺序语句;ENDCASE;,在CASE语句中,注意:表达式必须是离散类型;不容许任意两个值域存在交集,并且值域之和必须覆盖表达式所能取值的整个集合。,.,值域的表达方式,单个普通数值,如6数值选择范围,如2TO4,表示取值为2,3,4并列数值,如2|4,表示取值为2或者4以上三种的混合方式例子:WHEN4TO7|2=z3outcoutcoutcoutc=d;ENDCASE;ENDPROCESS;,练习1、将上述进程的结构体和实体补充完整,完成4选1数据选择器的设计练习2、用if语句来描述四选一多路选择器的进程语句最后,比较if和case语句完成的系统的rtl电路图,哪一个更简单?哪一个速度快?,.,用if语句来描述四选一多路选择器的进程语句PROCESS(sel,a,b,c,d)BEGINIFsel=00THENouti=a;ELSIFsel=01THENouti=b;ELSIFsel=10THENoutitmp:=regaORregb;WHEN110=tmp:=NOTrega;WHENOTHERS=NULL;ENDCASE;,.,5、LOOP语句LOOP语句用于循环体中。LOOP语句的一般格式为:语句标号:重复模式LOOP顺序语句ENDLOOP语句标号;重复模式可以是“WHILE布尔表达式”;也可以是“FOR循环变量IN离散范围”;,.,例奇校验电路ENTITYodd_checkISPORT(z:INBit_Vector(7DOWNTO0);odd:OUTBit);ENDodd_check;ARCHITECTUREarch_whileOFodd_checkIS-“WHILE布尔表达式”的结构体BEGINp1:PROCESS(z)VARIABLEtmp:Bit;VARIABLEi:Integer;BEGINi:=0;tmp:=z(i);l1:WHILEi7LOOPi:=i+1;tmp:=tmpXORz(i);ENDLOOPl1;odd=tmp;ENDPROCESSp1;ENDarch_while;,.,ARCHITECTUREarch_forOFodd_checkIS-“FOR循环变量IN离散范围”的结构体BEGINp3:PROCESS(z)VARIABLEtmp:Bit;BEGINtmp:=z(0);l3:FORiIN1TO7LOOPtmp:=tmpXORz(i);ENDLOOPl3;oddb);temp:=a+temp;RETURNtemp;END;采用数组整体相加的描述,要比每个元素分别相加的描述的仿真速度快,从而可以提高仿真性能。,.,6、NEXT语句NEXT语句只能用在LOOP语句的循环体中,它用于终止当前的一次循环迭代,并且开始下一次循环。NEXT语句的一般格式为:NEXTLOOP语句标号WHEN布尔表达式;,.,NEXT语句格式有以下三种,NEXT;-第一种语句格式:无条件终止当前的循环,跳回到本次循环LOOP语句处,开始下一次循环。NEXTLOOP标号;-第二种语句格式:与第一种语句的功能基本相同,只是当有多重LOOP语句嵌套时,可以跳转到指定标号的LOOP语句处,重新开始执行循环操作。NEXTLOOP标号WHEN条件表达式;-第三种语句格式如果条件表达式的值为TRUE时,则执行NEXT语句,进入跳转操作,否则继续向下执行。,.,NEXT语句例子,L1:FORcnt_valueIN1TO8LOOPs1:a(cnt_value):=0;NEXTWHEN(b=c);s2:a(cnt_value+8):=0;ENDLOOPL1;,.,7、EXIT语句EXIT语句也只能用在LOOP语句的循环体中,它用于终止当前的一次循环迭代,并且结束当前的循环。EXIT语句的一般格式为:EXITLOOP语句标号WHEN布尔表达式;,.,EXIT语句格式有以下三种,EXIT;-第一种语句格式EXITLOOP标号;-第二种语句格式EXITLOOP标号WHEN条件表达式;-第三种语句格式,.,EXIT语句,【例】SIGNALa,b:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALa_less_then_b:Boolean;.a_less_then_bbEXIT;ELSIF(a(i)=0ANDb(i)=1)THENa_less_then_b=TRUE;-a6;ENDLOOPl2;odd=tmp;ENDPROCESSp2;ENDarch_loop;,.,NEXT语句与EXIT语句区别,NEXT语句是转向LOOP语句的起始处,而EXIT语句是转向LOOP语句的终点。,.,8、RETURN语句RETURN语句只能用于子程序中,它用来结束当前的过程或函数。RETURN语句的一般形式为:,返回语句RETURN有两种语句格式:RETURN;-第一种语句格式RETURN表达式;-第二种语句格式,.,RETURN在过程中的使用,【例】PROCEDURErs(SIGNALs,r:INSTD_LOGIC;SIGNALq,nq:INOUTSTD_LOGIC)ISBEGINIF(s=0ANDr=0)THENREPORTForbiddenstate:sandrareequalto0;RETURN;ELSEq=NOT(sANDnq)AFTER5ns;nq=NOT(rANDq)AFTER5ns;ENDIF;ENDPROCEDURErs;,.,RETURN在函数中的使用,【例】FUNCTIONopt(a,b,opr:STD_LOGIC)RETURNSTD_LOGICISBEGINIF(opr=1)THENRETURN(aANDb);ELSERETURN(aORb);ENDIF;ENDFUNCTIONopt;,.,9、断言语句在进程和子程序中的断言语句被称为顺序断言语句。断言语句的一般格式为:ASSERT布尔表达式REPORT信息SEVERITY错误级别;要注意的是,当布尔表达式的值为True时,ASSERT语句不执行任何动作;只有当布尔表达式的值为False时,才报告信息和错误级别。,预定义错误等级,.,【例】P1:PROCESS(S,R)VARIABLED:std_logic;BEGINASSERTnot(R=1andS=1)REPORTbothRandSequalto1SEVERITYError;IFR=1andS=0THEND:=0;ELSIFR=0andS=1THEND:=1;ENDIF;Q=D;QF=NOTD;ENDPROCESS;,.,VHDL93提供了一种简短格式的顺序断言语句REPORT。其一般格式为:REPORT信息;,【例】PROCEDURErs(SIGNALs,r:INSTD_LOGIC;SIGNALq,nq:INOUTSTD_LOGIC)ISBEGINIF(s=0ANDr=0)THENREPORT“Forbiddenstate:sandrarequualto0”;RETURN;ELSEq=NOT(sANDnq)AFTER5ns;nqb1THENq1=1;ELSIFa1b1THENq1b1THENq1=1;ELSEq1=0;ENDIF;,.,6.2并行描述语句,结构体中的语句都是并行语句,并行语句主要有以下几种:1.进程语句2.块语句3.并行信号赋值语句4.并行过程调用语句5.并行断言语句6.元件例化语句7.生成语句,.,6.2.1块语句,块语句的格式如下:块标号:BLOCK(保护表达式)类属子句端口子句块说明语句BEGIN并行语句ENDBLOCK块标号;,说明部分的适用范围仅限于当前块,但对于嵌套更内层的块是透明的,信息可以向内部传递。本身是并行语句,内部语句也是并行语句。,.,块语句是体现划分机制的语句,它只体现在结构体的划分形式上,块语句不会改变结构体的功能,所以块语句的作用主要是提高并行描述的可读性,以便于仿真、纠错、程序移植和技术交流等。,.,BLOCK应用举例1,【例1】.b1:BLOCKSIGNALs1:BIT;BEGINS1=aANDb;b2:BLOCKSIGNALs2:BIT;BEGINs2=cANDd;b3:BLOCKBEGINZ=s2;ENDBLOCKb3;ENDBLOCKb2;y=s1;ENDBLOCKb1;.,.,【例2】LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INstd_logic;sum,cout:OUTstd_logic);ENDf_adder;ARCHITECTUREe_adOFf_adderISSIGNALso1,co1,co2,so2:std_logic;BEGIN,BLOCK应用举例2,.,h_adder1:BLOCK-半加器u1BEGINPROCESS(ain,bin)BEGINso1=ainxorbin;co1=ainANDbin;ENDPROCESS;ENDBLOCKh_adder1;h_adder2:BLOCK-半加器u2BEGINso2=so1XORcin;co2=so1andcin;sum=so2;ENDBLOCKh_adder2;or2:BLOCK-或门u3BEGINPROCESS(co2,co1)BEGINcout=co2ORco1;ENDPROCESS;ENDBLOCKor2;ENDe_ad;,.,例2的RTL电路图,.,6.2.2并行信号赋值语句信号赋值语句:基本信号、条件赋值语句、选择信号赋值语句,.,1、基本信号赋值语句,赋值目标=表达式,ARCHITECTUREcurtOFbc1ISSIGNALs1,e,f,g,h:STD_LOGIC;BEGINoutput1=aANDb;output2=c+d;g=eORf;h=eXORf;s1=g;ENDARCHITECTUREcurt;,.,这里:h=eXORf是一个并发语句,这里e,f都是信号量,而不是变量。一个并发语句可以写成一个进程。如:PROCESS(e,f)BEGINh=eXORf;ENDPROCESS;,.,实质是在进程外部实现IF语句的功能,解决了在构造体中不能直接使用IF语句的问题,因为IF语句是顺序语句,而条件赋值语句是并发语句。,2、条件赋值语句,赋值目标=表达式1WHEN赋值条件1ELSE表达式2WHEN赋值条件2ELSE表达式n;,注意:此语句是有优先级,另外ELSE后面没有“;”,.,ENTITYmuxISPORT(a,b,c:INBIT;p1,p2:INBIT;z:OUTBIT);END;ARCHITECTUREbehvOFmuxISBEGINz=aWHENp1=1ELSEbWHENp2=1ELSEc;END;,.,3、选择信号赋值语句,实质是在进程外部实现CASE语句的功能。,WITH选择表达式SELECT赋值目标=表达式1WHEN选择值1,表达式nWHEN选择值n;,注意:此每一子句结尾是逗号,最后一句是分号。不允许有条件重叠现象,也不允许存在条件涵盖不全的情况。,Example:WITHinstructionSELECTdata=data1ANDdata2WHEN“000”,data1ORdata2WHEN“001”,ZWHENOTHERS;ENDbehav;,.,例4选1多路选择器ENTITYmux4ISPORT(in0,in1,in2,in3:INBit;sel:INBit_Vector(0TO1);q:OUTBit);ENDmux4;,.,ARCHITECTUREbehav1OFmux4ISBEGINmux4_p1:PROCESS(in0,in1,in2,in3,sel)BEGINIFsel=“00”THENq=in0;ELSIFsel=“01”THENq=in1;ELSIFsel=“10”THENq=in2;ELSEq=in3;ENDIF;ENDPROCESSmux4_p1;ENDbehav1;ARCHITECTUREbehav2OFmux4ISBEGINqqqqqx1;b=x2;c=L1)名称映射时顺序可以颠倒。,建议采用名称映射法,VHDL对元件例化语句的实参与形参之间的关联,有以下限制:(1)数据类型必须一致。(2)信号模式必须一致。,.,注意:当例化元件的某个端口不存在时,相应的实际参数缺如,则要使用关键字OPEN,使得模板元件被例化时该端口处于未连接状态。,.,图1是一个8位移位寄存器的逻辑电路图。,图18位移位寄存器,每一个元件例化语句,都会产生一个电路模块(即一个元件)。它将产生8个D触发器dffU1U8:,.,例8位移位寄存器ENTITYdff_1ISPORT(ck,d:INBit;q,q_n:OUTBit);ENDdff_1;-实体声明ARCHITECTUREbhv1OFdff_1ISSIGNALq_tmp:bit;beginprocess(ck)Beginifckeventandck=1THENq_tmp=d;ELSEnull;endif;endprocess;q=q_tmp;q_n=NOTq_tmp;ENDbhv1;-结构体说明,.,ENTITYshiftISPORT(sin,clk:INBit;sout:OUTBit);ENDshift;-顶层设计实体ARCHITECTUREungen_shiftOFshiftIS-结构体SIGNALs:Bit_Vector(1TO7);-内部信号COMPONENTdff_1PORT(d,ck:INBit;q,q_n:OUTBit);-元件例化语句ENDCOMPONENT;BEGINU1:dff_1PORTMAP(sin,clk,s(1),open);U2:dff_1PORTMAP(s(1),clk,s(2),open);U3:dff_1PORTMAP(s(2),clk,s(3),open);U4:dff_1PORTMAP(s(3),clk,s(4),open);U5:dff_1PORTMAP(s(4),clk,s(5),open);U6:dff_1PORTMAP(s(5),clk,s(6),open);U7:dff_1PORTMAP(s(6),clk,s(7),open);U8:dff_1PORTMAP(s(7),clk,sout,open);ENDungen_shift;,【例6.20】在半加器设计基础上,用例化元件语句设计一个1位二进制全加器。全加器原理电路图如图6-1所示。它由两个半加器和一个“或”门组成。设计思路是:首先用VHDL语句设计一个1位二进制半加器,然后通过元件例化语句再设计1位二进制全加器。,图6-1全加器原理电路图,半加器VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderIS-半加器的描述PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDh_adder;,ARCHITECTUREfh1OFh_adderISBEGINso=aXORb;cobin,co=d,so=e);-名称映射u2:h_adderPORTMAP(e,cin,f,sum);-位置映射u3:or2aPORTMAP(a=d,b=f,c=cout);-混合映射ENDfd1;,使用元件例化语句完成一位全加器的设计,.,6.2.5生成语句生成语句为设计者提供了描述重复结构(或称规则结构)及其例外情况的机制。它可以对设计中规则的重复结构,以循环的形式进行描述;也可以对重复结构的不规则边界,以选择的形式进行描述。生成语句的一般格式为:生成标号:生成模式GENERATE并行语句ENDGENERATE生成标号;,.,生成模式有两种,第一种:标号:FOR循环变量IN取值范围GENEATE说明部分;BEGIN并行语句;ENDGENERATE标号;第二种:标号:IF条件GENERATE说明部分;BEGIN并行语句;ENDGENERATE标号;,生成语句是一种具有复制作用的语句,由两种格式FORGENERATE和IFGENERATE,.,注意:与顺序循环语句LOOP相似处:在FOR模式的生成语句中,循环变量无须说明,在生成语句外部循环变量不可见,在生成语句内部,只能对循环变量进行读访问,而不能对其赋值。与顺序循环语句不同的是:在FOR模式的生成语句中,没有与NEXT语句和EXIT语句相类似的并行语句;在IF模式的生成语句中,也没有ELSIF和ELSE分支。,.,例:使用生成语句描述8位移位寄存器ENTITYdff_1ISPORT(ck,d:INBit;q,q_n:OUTBit);ENDdff_2;ARCHITECTUREbhv1OFdff_1ISSIGNALq_tmp:bit;beginprocess(ck)Beginifckeventandck=1THENq_tmp=d;ELSEnull;endif;endprocess;q=q_tmp;q_n=NOTq_tmp;ENDbhv1;ENTITYshiftISGENERIC(len:Integer:=8);PORT(sin,clk:INBit;sout:OUTBit);ENDshift;,.,ARCHITECTUREfor_shiftOFshiftIS-for模式SIGNALs:Bit_Vector(0TOlen);COMPONENTdff_1PORT(d,ck:INBit;q,q_n:OUTBit);ENDCOMPONENT;BEGINs(0)=sin;FORiIN0TO(len-1)GENERATEUi:dff_1PORTMAP(s(i),clk,s(i+1),open);ENDGENERATE;sout0)AND(i(len-1)GENERATEUi:dff_1PORTMAP(s(i),clk,s(i+1),open);ENDGENERATE;IFi=(len-1)GENERATEUlen:dff_1PORTMAP(s(i),clk,sout,open);ENDGENERATE;ENDGENERATE;ENDif_shift;,.,从上面的例子中可以看出:对于重复结构,使用生成语句的描述要比不用生成语句的描述简捷得多。,.,下图所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=0和1时,分别有y=a和y=b。试用元件例化语句描述一个2选1多路选择器MUX21A,并最后完成整个设计电路MUXK。,.,本章主要讲述了VHDL的主要描述语句。,重点:一:顺序语句只能在函数、过程、进程中使用。1.WAIT语句2.变量赋值语句3.信号赋值语句4.IF语句5.CASE语句6.NULL语句7.LOOP语句8.NEXT语句9.EXIT语句10.过程调用语句11.RETURN语句12.断言语句13.REPORT语句二:并行语句在结构体中使用。1.进程语句2.块语句3.并行信号赋值语句4.元件例化语句5.生成语句,.,习题,6-1.画出与下例实体描述对应的原理图符号元件:ENTITYbuf3sIS-实体1:三态缓冲器PORT(input:INSTD_LOGIC;-输入端enable:INSTD_LOGIC;-使能端output:OUTSTD_LOGIC);-输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级上册英语单项选择(50题)的练习习题试卷及答案含答案
- 部编七年级上学期语文文言文专项训练含答案
- 2025主管护师(中级)真题附完整答案详解
- 2025安全生产月安全生产知识竞赛题库(含答案)
- 安全生产应知应会知识练习题库参考答案
- 2025年预防艾梅乙母婴传播培训试卷含答案
- 全国职业技能竞赛焊工理论考试习题及答案
- 2025年放射工作人员放射防护培训考试题(+答案)
- 营销方案光头
- 坡地建筑小市政施工方案
- NoSQL数据库应用与实践 课件 第1-6章 认识NoSQL - 增删改查
- DB37-T4868-2025 既有公路隧道结构健康监测技术规范
- 供应链金融视角下涉农中小企业信用风险评估研究
- 宁夏差旅费管理办法文件
- DB51∕T 3231-2024 公路隧道岩爆防控技术规程
- 新高考考试命题培训心得体会
- 2023CSCO头颈部肿瘤诊疗指南
- DB54∕T 0425.1-2024 公共数据 数据元规范 第一部分:总则
- 七年级语文上册第一单元古诗词赏析训练题
- DZ/T 0275.2-2015岩矿鉴定技术规范第2部分:岩石薄片制样
- 茶叶示范基地管理制度
评论
0/150
提交评论