设计深入课件.ppt

设计深入课件.ppt

ID:57028907

大小:256.50 KB

页数:20页

时间:2020-07-26

设计深入课件.ppt_第1页
设计深入课件.ppt_第2页
设计深入课件.ppt_第3页
设计深入课件.ppt_第4页
设计深入课件.ppt_第5页
资源描述:

《设计深入课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章VHDL设计深入7.1进程中的信号赋值与变量赋值信号SIGNAL变量VARIABLE基本用法用于作为电路中的信号连线用于作为进程中局部数据存储单元适用范围在整个结构体内的任何地方都能适用只能在所定义的进程中使用行为特性在进程的最后才对信号赋值,有延时立即赋值,无延时表7-1信号与变量赋值语句功能的比较一、在结构体中位置的不同【例7-1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDDFF1;ARCHITECTUREbhv

2、OFDFF3ISBEGINPROCESS(CLK)VARIABLEQ1:STD_LOGIC;BEGINIFCLK'EVENTANDCLK='1'THENQ1:=D;ENDIF;Q<=Q1;ENDPROCESS;END;【例7-2】...ARCHITECTUREbhvOFDFF2ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=D;ENDIF;ENDPROCESS;Q<=Q1;END;在不完整的条件语句中,单独的变量赋值语句和单独的信号赋值语句都能产生相同的D触发器。一、在

3、结构体中位置的不同二、信号与变量在延时特性上的区别进程中的信号赋值行为应注意以下3点:(1)信号的赋值需要有一个δ延时。(2)进程中的赋值特点是:一个进程的运行时间固定为一个δ延时。进程中的所有信号赋值语句在进程启动的一瞬间立即启动各自的延时δ的定时器,在遇到“ENDPROCESS”语句时,延时结束,完成赋值。在进程中的信号顺序赋值是同时完成的,并且是在执行到ENDPROCESS语句时才发生赋值。【例7-3】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK,D:INSTD_LOGIC;Q:OUT

4、STD_LOGIC);ENDDFF1;ARCHITECTUREbhvOFDFF3ISSIGNALA,B:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENA<=D;B<=A;Q<=B;ENDIF;ENDPROCESS;END;7.1进程中的信号与变量赋值A被更新的值是当前时钟上升沿前的D,B被更新的值是上一时钟周期的A,Q被更新的值是上一时钟周期的B。【例7-4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK,D:INSTD_LO

5、GIC;Q:OUTSTD_LOGIC);ENDDFF1;ARCHITECTUREbhvOFDFF1ISBEGINPROCESS(CLK)VARIABLEA,B:STD_LOGIC;BEGINIFCLK'EVENTANDCLK='1'THENA:=D;B:=A;Q<=B;ENDIF;ENDPROCESS;END;实际执行时,先将D传给A,再通过A传给B,最后在一个δ延时后把B传给Q。A和B只担当了D数据的暂存单元,Q被更新的值是当前时钟上升沿前的D。7.1进程中的信号与变量赋值【例7-5】SIGNALin1,in2,e1,...:STD_LOGIC;...PROCE

6、SS(in1,in2,...)--5ns+δ时刻启动VARIABLEc1,...:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFin1='1'THEN...–-第1行e1<=“1010”;–-第2行...IFin2='0'THEN...–-第15+n行...c1:="0011";–-第30+m行...ENDIF;ENDPROCESS;--在5ns+2δ时刻结束进程7.1进程中的信号与变量赋值(3)当在进程中存在同一信号有多个赋值源时,实际完成赋值的信号是最接近“ENDPROCESS”语句的信号。【例7-6】LIBRARYIEEE;USEIEE

7、E.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbody_mux4OFmux4ISsignalmuxval:integerrange7downto0;BEGINprocess(i0,i1,i2,i3,a,b)beginmuxval<=0;if(a='1')thenmuxval<=muxval+1;endif;if(b='1')thenmuxval<=muxval+2;endif;casemuxvaliswhen

8、0=>q<

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

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

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