资源描述:
《学习进程语句与流程控制语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、情境3学习使用流程控制语句设计时序电路构造体结构图构造体说明语句功能描述语句块语句进程语句信号赋值语句子程序调用语句元件例化语句进程语句VHDL中最重要的语句,具有并行和顺序行为的双重性进程和进程语句之间是并行关系进程内部是一组连续执行的顺序语句进程语句与构造体中的其余部分进行信息交流是靠信号完成的进程语句PROCESS1PROCESSnsignalsignalARCHITECTURE一个构造体可以有多个进程语句进程和进程之间是并行的进程和进程之间的数据交换通过信号完成进程内部是顺序语句进程语句基本格式:[进程名称:]PROCESS(敏感信号1,敏感信号2
2、,……)〈说明区〉BEGIN〈顺序语句〉ENDPROCESS[进程名称];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="00"THENy<=a;ELSIFsel="01"THEN
3、y<=b;ELSIFsel="10"THENy<=c;ELSEy<=d;ENDIF;ENDPROCESSif_label;进程语句举例两个进程是并发的case_label:PROCESS(a,b,c,d,sel)BEGINCASEselISWHEN"00"=>z<=a;WHEN"01"=>z<=b;WHEN"10"=>z<=c;WHEN"11"=>z<=d;WHENOTHERS=>z<='0';ENDCASE;ENDPROCESScase_label;ENDlogic;进程的运行依赖于敏感表内参数的变化信号敏感表进程赖以启动的敏感表。对于表中列出的任何信号
4、的改变,都将启动进程,执行进程内相应顺序语句一些VHDL综合器,综合后,对应进程的硬件系统对进程中的所有输入的信号都是敏感的,不论在源程序的进程中是否把所有的输入信号都列入敏感表中为了使软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输入信号都列入敏感表中敏感表举例latchlabel:PROCESS(oe)BEGINIFoe=‘1’THENy<=a;ENDIF;ENDPROCESSif_label;仿真结果aoey敏感表举例latchlabel:PROCESS(a)BEGINIFoe=‘1’THENy<=a;ENDIF;ENDPROCESSif_l
5、abel;仿真结果顺序语句每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的顺序语句只能出现在进程(Process)、函数(Funcation)和过程(Procedure)中顺序语句包括:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句顺序赋值语句举例ARCHITECTUREreg1OFreg1ISSIGNALa,b:BIT;BEGINPROCESS(clk)BEGINIFclk'eventandclk='1’THENa<=d;b<=a;q<=b;ENDIF;ENDPROCESS;ENDreg1;DQdclkqDDDQ
6、QQdabclkqDDDQQQdabclkq顺序赋值语句举例ENTITYreg1ISPORT(d,clk:inBIT;q:outBIT);ENDreg1;ARCHITECTUREreg1OFreg1ISSIGNALa,b:BIT;BEGINPROCESS(clk)BEGINIFclk'eventandclk='1‘THENa<=d;b<=a;ENDIF;ENDPROCESS;q<=b;ENDreg1;并行赋值语句DQdclkqDDQQdaclkq顺序赋值语句举例ENTITYreg1ISPORT(d,clk:inBIT;q:outBIT);ENDreg1;A
7、RCHITECTUREreg1OFreg1ISBEGINPROCESS(clk)VARIABLEa,b:BIT;BEGINIFclk'eventandclk='1‘THENa:=d;b:=a;q<=b;ENDIF;ENDPROCESS;ENDreg1;变量定义DQdclkq在时序电路中的变量赋值变量在IF语句中被赋值,以用来表示随时钟的变化,不会产生触发器变量只代表临时存储,不反映实际硬件变量可用在表示一数据立即变化的表达式中,然后再将变量的值赋给信号IF_THEN_ELSE语句——流程控制语句(1)至少应有一个条件句,条件句必须由布尔表达式构成。根据条件
8、句产生的判断结果TRUE或FALSE,有条件地选择执行其后的顺序语