资源描述:
《VHDL的基本描述语句.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章VHDL的基本描述语句6.1顺序语句6.1.1顺序赋值语句6.1.2IF语句6.1.3CASE语句6.1.4LOOP语句6.1.5NEXT语句6.1.6EXIT语句6.1.7WAIT语句6.1.8子程序调用语句6.1.9返回语句(RETURN)6.1.10空操作语句(NULL)6.1.11断言(ASSERT)语句6.1.12REPORT语句6.1顺序语句6.1.1顺序赋值语句信号赋值语句变量赋值语句赋值目标赋值符号赋值源信号或变量<=:=数值、逻辑或运算表达式IF<条件>THEN<语句>;ELSIF<条件>THEN<语句>;ELSIF<条件>THEN<语句>;……EL
2、SE<语句>;ENDIF;IF语句的一般形式为:6.1.2IF语句IF<条件>THEN<语句>;ENDIF;IF<条件>THEN<语句>;ELSE<语句>;ENDIF;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYddfISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q,QD:OUTSTD_LOGIC);ENDddf;ARCHITECTUREexOFddfISBEGIN【例】D触发器的VHDL语言描述PROCESS(CLK)BEGINIF(CLK'EVENT)AND(CLK='1‘)THENQ<=D;QD
3、<=notD;ENDIF;ENDPROCESS;ENDARCHITECTUREex;【例】D触发器的VHDL语言描述【例】用VHDL设计一家用告警系统的控制逻辑,它有来自传感器的三个输入信号smoke、door、water和准备传输到告警设备的三个输出触发信号fire_alarm、burg_alarm、water_alarm以及使能信号en和alarm_en。VHDL程序描述如下:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYalarmISPORT(smoke,door,water:INstd_logic;en,alarm_en
4、:INstd_logic;fire_alarm,burg_alarm,water_alarm:OUTstd_logic);ENDalarm;ARCHITECTUREalarm_arcOFalarmISBEGINPROCESS(smoke,door,water,en,alarm_en)BEGINIF((smoke=‘1’)AND(en=‘0’))THENfire_alarm<=‘1’;ELSEfire_alarm<=‘0’;ENDIF;IF((door=‘1’)AND((en=‘0’)AND(alarm_en=‘0’)))THENburg_alarm<=‘1’;ELSEbu
5、rg_alarm<=‘0’;ENDIF;IF((water=‘1’)AND(en=‘0’))THENwater_alarm<=‘1’;ELSEwater_alarm<=‘0’;ENDIF;ENDPROCESS;ENDalarm_arc;6.1顺序语句6.1.3CASE语句CASE语句的结构如下:CASE<表达式>ISWHEN<值>=><语句>;WHEN<值>
6、<值>=><语句>;WHEN<离散范围>=><语句>;WHENOTHERS=><语句>;ENDCASE;多条件选择值的一般表达式为:选择值[
7、选择值]选择值可以有四种不同的表达方式:单个普通数值,如6。数值选择范围,如
8、(2TO4),表示取值为2、3或4。并列数值,如35,表示取值为3或者5。混合方式,以上三种方式的混合。PORT(…z1,z2,z3,z4:outstd_logic);…SIGNALvalue:INTEGERRANGE0TO15;CASEvalueISWHEN0=>z1<=‘1’;--value=0时WHEN1
9、3=>z2<=‘0’;--value=1或3时WHEN4TO7
10、2=>z3<=‘1’;--value=4、5、6、7或2时WHENOTHERS=>z4<=‘1’;--value=8~15时ENDCASE【例】SIGNALvalue:INTEGERRANGE0TO1
11、5;SIGNALout1:STD_LOGIC;...CASEvalueIS--缺少以WHEN引导的条件句ENDCASE;...CASEvalueISWHEN0=>out1<='1';--value2~15的值未包括进去WHEN1=>out1<='0';ENDCASE...CASEvalueISWHEN0TO10=>out1<='1';--选择值中5~10的值有重叠WHEN5TO15=>out1<='0';ENDCASE;CASE语句使用时容易发生的错误:【例】(3-8译码器)libraryieee;useieee.