欢迎来到天天文库
浏览记录
ID:58921507
大小:284.00 KB
页数:52页
时间:2020-09-29
《主要描述语句(顺序语句)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章VHDL主要描述语句第一部 顺序语句§5.1.1赋值语句§5.1.2IF语句§5.1.3CASE语句§5.1.4LOOP语句§5.1.5NEXT语句§5.1.6EXIT语句§5.1.7WAIT语句§5.1.8子程序调用语句§5.1.9RETURN(返回)语句§5.1.10NULL语句§5.1.11ASSERT§5.1.12REPORT语句§5.1顺序语句顺序语句(SequentialStatements)和并行语句(Concurrent[Parallel]Statements)是VHDL程序设计中两大基本描述语句系列。在逻辑系统的设计中,这些语句从多侧面完整地描述数字系统的硬件结构
2、和基本逻辑功能,其中包括通信的方式、信号的赋值、多层次的元件例化以及系统行为等。顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的,但其相应的硬件逻辑工作方式未必如此,在理解过程中要注意区分VHDL语言的软件行为及描述综合后的硬件行为间的差异。顺序语句只能出现在进程(Process)和子程序中。在VHDL中,一个进程是由一系列顺序语句构成的,而进程本身属并行语句,这就是说,在同一设计实体中,所有的进程是并行执行的。然而任一给定的时刻内,在每一个进程内,只能执行一条顺序语句。一个进程与其设计实体的其他部分进行数据交换的方式只能通过信号
3、或端口。如果要在进程中完成某些特定的算法和逻辑操作,也可以通过依次调用子程序来实现,但子程序本身并无顺序和并行语句之分。利用顺序语句可以描述逻辑系统中的组合逻辑、时序逻辑或它们的综合体。顺序语句包括:赋值语句、IF语句、CASE语句、LOOP语句、NEXT语句、EXIT语句、WAIT语句、过程调用语句、RETURN语句、NULL语句、断言语句、REPORT语句。赋值语句的功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号或变量,或由此组成的数组。VHDL设计实体内的数据传递以及对端口界面外部数据的读/写都必须通过赋值语句的运行来实现。赋值语句有两种,即信号赋值语句和变量赋值
4、语句。变量赋值与信号赋值的区别在于,变量具有局部特征,它的有效只局限于所定义的一个进程中,或一个子程序中,它是一个局部的、暂时性数据对象(在某些情况下)。§5.1.1赋值语句变量赋值语句和信号赋值语句的语法格式如下:变量赋值目标:=赋值源;信号赋值目标<=赋值源;在信号赋值中,需要注意的是,当在同一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获得的是最后一个赋值源的赋值,其前面相同的赋值目标则不作任何变化。例SIGNALs1,s2:STD_LOGIC;SIGNALsvec:STD_LOGIC_VECTOR(0TO7);...PROCESS(s1,s2)ISVARIABLEv1,v
5、2:STD_LOGIC;BEGINv1:=‘1’;--立即将v1置位为1v2:=‘1’;--立即将Vv置位为1s1<=‘1’;--s1被赋值为1s2<=‘1’;--由于在本进程中,这里的s2不是最后一个赋值语句故不作任何赋值操作svec(0)<=v1;--将v1在上面的赋值1,赋给svec(0)svec(1)<=v2;--将v2在上面的赋值1,赋给svec(1)svec(2)<=s1;--将s1在上面的赋值1,赋给svec(2)svec(3)<=s2;--将最下面的赋予s2的值‘0’,赋给svec(3)v1:=‘0’;--将v1置入新值0v2:=‘0’;--将v2置入新值0s2:=‘0’
6、;--由于这是s2最后一次赋值,赋值有效,此‘0’将上面准备赋入的‘1’覆盖掉svec(4)<=v1;--将v1在上面的赋值0,赋给svec(4)svec(5)<=v2;--将v2在上面的赋值0,赋给svec(5)svec(6)<=s1;--将s1在上面的赋值1,赋给svec(6)svec(7)<=s2;--将s2在上面的赋值0,赋给svec(7)ENDPROCESS赋值目标赋值语句中的赋值目标有四种类型。标识符赋值目标及数组单元素赋值目标标识符赋值目标是以简单的标识符作为被赋值的信号或变量名。数组单元素赋值目标的表达形式为:数组类信号或变量名下标名可以是一个具体的数字,也可以是一个文字
7、表示的数字名,它的取值范围在该数组元素个数范围内。下标名若是未明确表示取值的文字(不可计算值),则在综合时,将耗用较多的硬件资源,且一般情况下不能被综合。(见上例)段下标元素赋值目标及集合块赋值目标段下标元素赋值目标可用以下方式表示:数组类信号或变量名(下标1TO/DOWNTO下标2)括号中的两个下标必须用具体数值表示,并且其数值范围必须在所定义的数组下标范围内,两个下标的排序方向要符合方向关键词TO或DOWNTO,具体用法如下例所
此文档下载收益归作者所有