VHDL顺序语句SequentialStatem

VHDL顺序语句SequentialStatem

ID:39339144

大小:205.26 KB

页数:42页

时间:2019-07-01

VHDL顺序语句SequentialStatem_第1页
VHDL顺序语句SequentialStatem_第2页
VHDL顺序语句SequentialStatem_第3页
VHDL顺序语句SequentialStatem_第4页
VHDL顺序语句SequentialStatem_第5页
资源描述:

《VHDL顺序语句SequentialStatem》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章VHDL顺序语句(SequentialStatement)Process,Function,Procedure中的语句都是顺序执行,以Process为例Process与Process之间,与其他并行语句之间都是并行的关系4.1、赋值语句1.顺序信号赋值语句信号名<=赋值源;赋值符号左边必须是信号名,但不能是端口声明中指定为in的信号。右边表达式中可以出现任意对象类,但不能出现端口声明中指定为out的信号。   例:B<=A;--惯性延迟,无时间延迟子句,即δ延迟D<=Cafter5ns;--传输延迟,指定延迟时间2.变量赋

2、值语句变量赋值的含义是:用计算赋值符号右边的表达式所得新值取代变量原来的值。变量赋值的语法形式为:   变量名:=表达式;3、赋值目标a:=‘1’;C1:=“1100”;G(2)<=y;H(I)<=z;F(1to4):=“1001”;SIGNALa,b,c,d:STD_LOGIC;SIGNALS:STD_LOGIC_VECTOR(1TO4);…VARIABLEe,f:STD_LOGIC;VARIABLEg:STD_LOGIC_VECTOR(1TO2);VARIABLEh:STD_LOGIC_VECTOR(1TO4);S<=(‘0

3、’,‘1’,‘0’,‘0’);(a,b,c,d)<=s;--a<=‘0’;b<=‘1’;c<=‘0’;d<=‘0’;…(3=>e,4=>f,2=>g(1),1=>g(2)):=h;--g(2):=h(1);g(1):=h(2);e:=h(3);f:=h(4);4.2流程控制结构VHDL为用户提供了若干控制进程内部执行流的结构,可分为条件控制和循环控制两种。IF语句CASE语句LOOP语句NEXT语句EXIT语句1.if语句(条件控制语句)if条件表达式then顺序语句endif;if条件表达式then顺序语句else顺序语句en

4、dif;if条件表达式then顺序语句elsif条件表达式then顺序语句else顺序语句endif;求取最大值BEGINIF(a

5、)beginif(clk’eventandclk=‘1’)thenif(t=‘1’)thenq<=not(q);elseq<=q;endif;endif;endprocess;ENTITYmulISPORT(a,b,sel:INBIT;data_out:OUTBIT);ENDmul;ARCHITECTUREexOFmulISSIGNALtemp:BIT;BEGINprocess_a:PROCESS(a,b,selx)BEGINIF(sel=‘0’)THENtemp<=a;ELSEtemp<=b;ENDIF;data_out<=t

6、emp;ENDPROCESSprocess_a;case语句的一般形式为:case值表达式iswhen选择值=>语句;when选择值=>语句;…[whenothers=>语句;]endcase;case语句选择项的要求:     选择唯一,覆盖全集。2、case语句选择值的表达方式单个普通数值8数值选择范围(2to4)并列数值3

7、5

8、8混合方式LIBRARYieee;USEieee.std_logic_1164.all;ENTITYmux41isPORT(s1,s2,a,b,c,d:INSTD_LOGIC;z:OUTSTD_LO

9、GIC);ENDmux41;ARCHITECTUREactivOFmux41ISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs<=s1&s2;PROCESS(s,a,b,c,d)BEGINCASEsISWHEN“00”=>z<=a;WHEN“01”=>z<=b;WHEN“10”=>z<=c;WHEN“11”=>z<=d;WHENOTHERS=>z<=‘x’;ENDCASE;ENDPROCESS;ENDactiv;azmuxcbdS1,s22例:signalC:Integerrange1to20

10、;     signalOut1:('0','1','2','3');     process(C)     begin       caseCis        when1=>Out1<='0';    --C=1        when2

11、4

12、8=>Out1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。