VHDL的主要描述语句

VHDL的主要描述语句

ID:43922619

大小:395.00 KB

页数:105页

时间:2019-10-16

VHDL的主要描述语句_第1页
VHDL的主要描述语句_第2页
VHDL的主要描述语句_第3页
VHDL的主要描述语句_第4页
VHDL的主要描述语句_第5页
资源描述:

《VHDL的主要描述语句》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章VHDL的主要描述语句4.1VHDL顺序语句4.2VHDL并行语句4.1VHDL顺序语句顺序语句是指完全按照程序中书写的顺序执行各语句,并且在结构层次中前面的语句执行结果会直接影响后面各语句的执行结果。顺序描述语句只能出现在进程或子程序中,用来定义进程或子程序的算法。顺序语句可以用来进行算术运算、逻辑运算、信号和变量的赋值、子程序调用等,还可以进行条件控制和迭代。注意,这里的顺序是从仿真软件的运行和顺应VHDL语法的编程逻辑思路而言的,其相应的硬件逻辑工作方式未必如此。应该注意区分VHDL语言的软件行为与描述综合后的硬件行为的差异。用VHDL语言进行设计时,按描述语句

2、的执行顺序进行分类,可将VHDL语句分为顺序执行语句(Sequential)和并行执行语句(Parallel)。VHDL顺序语句主要包括:·变量赋值语句(VariableEvaluate)·信号赋值语句(SignalEvaluate)·WAIT语句·IF语句·CASE语句·LOOP语句·NEXT语句·EXIT语句·RETURN语句·NULL语句·过程调用语句(ProcedureCall)·断言语句(Assert)·REPORT语句4.1.1变量赋值语句变量赋值语句语法格式为:变量赋值目标:=赋值表达式例:VARIABLEs:BIT:=‘0’;PROCESS(s)VARIAB

3、LEcount:INTEGER:=‘0’--变量说明BEGINcount:=s+1--变量赋值ENDPROCESS;4.1.2信号赋值语句在VHDL语言中,用符号“<=”为信号赋值。信号赋值语句的规范书写格式如下:目的信号量<=[TRANSPORT][INERTIAL]信号变量表达式;其中[TRANSPORT]表示传输延迟,[INERTIAL]表示惯性延迟。要求“<=”两边的信号变量类型和位长度应该一致。例:s<=TRANSPORTtAFTER10ns;d<=INERTIAL2AFTER3ns,1AFTER8ns;例:s<=aNOR(bANDc);3个敏感量a,b,c中任何

4、一个发生变化,该语句都将被执行。4.1.3WAIT语句WAIT语句在进程中起到与敏感信号一样重要的作用,敏感信号触发进程的执行,WAIT语句同步进程的执行,同步条件由WAIT语句指明。进程在仿真运行中处于执行或挂起两种状态之一。当进程执行到等待语句时,就将被挂起并设置好再次执行的条件。WAIT语句可以设置4种不同的条件:无限等待、时间到、条件满足以及敏感信号量变化。这几类WAIT语句可以混合使用。现分别介绍如下:(1)WAIT--无限等待语句这种形式的WAIT语句在关键字“WAIT”后面不带任何信息,是无限等待的情况。(2)WAITON信号表--敏感信号等待语句这种形式的W

5、AIT语句使进程暂停,直到敏感信号表中某个信号值发生变化。WAITON语句后面跟着的信号表,在敏感信号表中列出等待语句的敏感信号。当进程处于等待状态时,其中敏感信号发生任何变化都将结束挂起,再次启动进程。例[A]PROCESSBEGINy<=aANDb;WAITONa,b;ENDPROCESS;例[B]PROCESS(a,b)BEGINy<=aANDb;ENDPROCESS;在例[A]中执行所有语句后,进程将在WAIT语句处被挂起,直到a或b中任何一个信号发生变化,进程才重新开始。例[A]与例[B]是等价的。需要注意的是,在使用WAITON语句的进程中,敏感信号量应写在进程

6、中的WAITON语句后面;而在不使用WAITON语句的进程中,敏感信号量应在开头的关键词PROCESS后面的敏感信号表中列出。VHDL规定,已列出敏感信号表的进程不能使用任何形式的WAIT语句。(3)WAITUNTIL条件--条件等待语句这种形式的WAIT语句使进程暂停,直到预期的条件为真。WAITUNTIL后面跟的是布尔表达式,在布尔表达式中隐式地建立一个敏感信号量表,当表中任何一个信号量发生变化时,就立即对表达式进行一次测评。如果其结果使表达式返回一个“真”值,则进程脱离挂起状态,继续执行下面的语句。即WAITUNTIL语句需满足以下条件:·在条件表达式中所含的信号发生

7、了变化;·此信号改变后,且满足WAITUNTIL语句中表达式的条件。这两个条件缺一不可,且必须按照上述顺序来完成。WAITUNTIL语句有以下三种表达方式:WAITUNTIL信号=VALUE;WAITUNTIL信号’EVENTAND信号=VALUE;WAITUNTIL信号’STABLEAND信号=VALUE;例如:WAITUNTILclock=“1”;WAITUNTILrising_edge(clk);WAITUNTILclk=‘1’ANDclk’EVENT;WAITUNTILNOTclk’STABLEANDclk

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

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

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