学习进程语句与流程控制语句.ppt
情境3学习使用流程控制语句设计时序电路构造体结构图构造体说明语句功能描述语句块语句进程语句信号赋值语句子程序调用语句元件例化语句01VHDL中最重要的语句,具有并行和顺序行为的双重性02进程和进程语句之间是并行关系03进程内部是一组连续执行的顺序语句04进程语句与构造体中的其余部分进行信息交流是靠信号完成的进程语句进程语句PROCESS1PROCESSnsignalsignalARCHITECTURE一个构造体可以有多个进程语句进程和进程之间是并行的进程和进程之间的数据交换通过信号完成进程内部是顺序语句020304050601[进程名称:]PROCESS(敏感信号1,敏感信号2,……)基本格式:〈说明区〉ENDPROCESS[进程名称];BEGIN〈顺序语句〉进程语句进程语句举例LIBRARYieee;USEieee.std_logic_1164.all;ENTITYif_caseISPORT (a,b,c,d:INStd_Logic; sel:INStd_Logic_Vector(1downto0); y,z:OUTStd_Logic);ENDif_case;ARCHITECTURElogicOFif_caseISBEGINif_label:PROCESS(a,b,c,d,sel)BEGINIFsel=00THENy=a;ELSIFsel=01THENy=b;ELSIFsel=10THENy=c;ELSEy=d;ENDIF;ENDPROCESSif_label;两个进程是并发的case_label:PROCESS(a,b,c,d,sel)
BEGIN
CASEselIS
WHEN00=z=a;
WHEN01=z=b;
WHEN10=z=c;
WHEN11=z=d;
WHENOTHERS=z=0;
ENDCASE;
ENDPROCESScase_label;
ENDlogic;进程的运行依赖于敏感表内参数的变化进程赖以启动的敏感表。对于表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句一些VHDL综合器,综合后,对应进程的硬件系统对进程中的所有输入的信号都是敏感的,不论在源程序的进程中是否把所有的输入信号都列入敏感表中为了使软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输入信号都列入敏感表中信号敏感表敏感表举例latchlabel:PROCESS(oe)BEGIN IFoe=‘1’THEN y=a; ENDIF;ENDPROCESSif_label;仿真结果aoey敏感表举例latchlabel:PROCESS(a)BEGINIFoe=‘1’THENy=a;ENDIF;ENDPROCESSif_label;01仿真结果02231每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的顺序语句只能出现在进程(Process)、函数(Funcation)和过程(Procedure)中顺序语句包括:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句顺序语句顺序赋值语句举例
ARCHITECTUREreg1OFreg1ISSIGNALa,b:BIT;BEGINPROCESS(clk)BEGINIFclkeventandclk=1’THEN a=d; b=a; q=b;ENDIF;ENDPROCESS;ENDreg1;DQdclkqDDDQQQdabclkqDDDQQQdabclkq顺序赋值语句举例ENTITYreg1ISPORT(d,clk:inBIT; q:outBIT);ENDreg1;ARCHITECTUREreg1OFreg1ISSIGNALa,b:BIT;BEGINPROCESS(clk)BEGINIFclkeventandclk=1‘THENa=d;b=a;ENDIF;ENDPROCESS;q=b;ENDreg1;并行赋值语句DQdclkqQQdaqDDclk010203顺序