第七节VHDL语句.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章结束!!! * 顺序语句(Sequential Statements)相对于并行语句,特点是没一条语句的仿真执行顺序与书写顺序基本一致,它只能出现在进程和子程序中。VHDL有6类基本顺序语句:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句。 赋值语句的功能是将一个值或者一个表达式的运算结果传递给某一个数据对象,如信号或变量,或由此组成的数组。VHDL设计实体内的数据传递以及对端口界面外部数据的读写都必须通过赋值语句的运行来实现。 赋值语句有两种,即信号赋值和变量赋值语句,由三部分组成。即赋值目标、赋值符号、赋值源。赋值目标是信号或变量,但是表现形式有多种:文字,标识符,数组等;赋值符号有信号赋值符,变量赋值符;赋值源可以是一个数值,也可以是一个逻辑或运算表达式,VHDL规定赋值源和赋值目标数据类型必须严格一致。 信号赋值与变量赋值的区别在于变量赋值具有局部特征,它的有效性只局限于所定义的一个进程中,或一个子程序中,它是一个局部的暂时性数据对象,对它的赋值立即发生,时间延时为零的赋值行为;信号赋值,具有全局性特征,它可以作为一个设计实体内部各单元之间数据传递的载体,也可以通过信号与其他实体进行通信。 IF语句也是重要的顺序语句结构。它的语句规则和使用方法,在前面第三章详细介绍过。 在前面我们也介绍过CASE语句,这里介绍其它相关内容和示例,CASE语句的多条件选择值得一般表达式为: 选择值可以有4种不同的表达方式: 下面例7-1描述的4选1选择器,是用IF语句和CASE语句共同完成的,它是根据4位输入码来确定4位输出中哪一位输出为1。 例子中IF-THEN-ELSIF语句所起的作用是数据类型转换器的作用,即把输入的s4,s3,s2,s1的4位二进制值转化为能与se1对应的整数值,以便在条件句中进行比较。 给出了CASE语句使用中几种容易发生的错误。 与IF语句相比,CASE语句组的程序的可读性比较好,因为它把条件中所有可能出现的情况全部列出来了,可执行条件一目了然。而且CASE语句的执行过程,即条件是独立排它的,不像IF那样有一个逐项条件顺序比较的过程,CASE语句中条件句的次序是不重要的,它的执行过程更接近于并行方式。 对于相同的逻辑功能,CASE语句比IF语句的描述耗用更多的硬件资源,有些逻辑只能用IF来描述,不能用CASE描述。IF语句具有条件相与功能,CASE语句只有条件相或得功能。 下面例子7-3是一个算术逻辑单元的VHDL描述,它在信号opcode的控制下可分别完成加,减,相等或不相等比较等操作。程序在CASE语句中混合了IF-THEN语句。 循环语句,使一组顺序语句循环执行,LOOP语句有两种方式。 需要引入其他控制语句如EXIT,才可以跳出循环。 FOR后面的循环变量是一个临时变量,属于LOOP语句的局部变量,不必先定义,它只能作为赋值源,不能被赋值,由LOOP语句自动定义。在LOOP范围内不能再出现此变量同名的标识符。循环次数范围从初值开始,每执行一次顺序语句后递增1直到指定的最大值。 一个8位奇偶校验逻辑电路的VHDL程序 利用LOOP语句中的循环变量简化同类顺序语句的表达方式 LOOP循环的范围最好以常数表示,否则,在LOOP体内的逻辑可以重复任何可能的范围,这样将消耗大量的硬件资源,综合器不支持没有约束条件的循环。 NEXT语句主要用于在LOOP语句执行中进行有条件的或无条件的转向控制。有3种格式: 第一种格式:执行到NEXT语句时无条件终止当前的循环,跳回到本次循环LOOP语句处,开始下一次循环。 这里如果(b=c)成立将执行NEXT语句 第二种格式:当有多重LOOP语句嵌套时,可跳转到指定标号的LOOP语句处,重新开始执行循环操作。 第三种格式:分句”WHEN条件表达式”是执行NEXT语句的条件,条件表达式为TRUE,则执行NEXT语句,进入跳转操作,否则继续向下执行。 EXIT语句也是LOOP语句的内部循环控制语句,有3种格式: 这里每一种语句格式与对应的EXIT语句的格式和操作功能非常相似,区别是NEXT语句跳转的方向是LOOP标号指定的LOOP语句处,当没有LOOP标号时,跳转到当前LOOP语句的循环起始点,而EXIT语句的跳转方向是LOOP标号指定语句的结束处,即完全跳出指定的循环,并开始执行此循环外的语句。即NEXT语句是转向LOOP语句的起始点,而EXIT语句则是转向LOOP语句的终点。 两个元素位矢量值比较程序,a与b不同时由EXIT语句跳出循环比较程序。 其中NULL为空操作语句,是为了满足ELSE的转换。此程序先比较a和b的高位,高位是1者为大,输出判断结果true或false后中断比较程序,高位相等则比较低位。 在进程中当执行到WAIT语

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档