第2章 VHDL硬件描述语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 VHDL硬件描述语言

(2) 敏感信号等待语句:WAIT ON 信号[,信号] 在信号表中列出的信号是等待语句的敏感信号。当处于等待状态时,敏感信号的任何变化(如从0~1或从1~0的变化)将结束挂起,再次启动进程。如: ? WAIT ON a,b; ? 表示当a或b中任一信号发生改变时,就恢复执行WAIT语句之后的语句。 例:?PROCESS BEGIN y=a AND b; WAIT ON a,b; END PROCESS; ?(3)条件等待语句:WAIT UNTIL 布尔表达式 当进程执行到该语句时,被挂起;若布尔表达式为真时,进程将被启动。 例: WAIT UNTIL ((x*10)100) (4) WAIT FOR 时间表达式 当进程执行到该语句时,被挂起;等待一定的时间后,进程将被启动。 例:WAIT FOR 20 ns WAIT UNTIL CLOCK =1; --时钟CLOCK上跳沿启动进程 ? 例2.16中的进程将完成一个硬件求平均的功能,每一个时钟脉冲由A输入一个数值,4个时钟脉冲后将获得此4个数值的平均值。 【例2.16】求4个数值的平均值程序 PROCESS BEGIN WAIT UNTIL CLK= 1; AVE=A; WAIT UNTIL CLK= 1; AVE=AVE+A; WAIT UNTIL CLK= 1; AVE=AVE+A; WAIT UNTIL CLK= 1; AVE=(AVE+A)/4; END PROCESS; (5) 多条件WAIT 语句 例:WAIT ON nmi,interrupt UNTIL((nmi=TRUE)OR(interrupt=TRUE))FOR 5us 该等待有3个条件:第一,信号nmi和interrupt 任何一个有一次刷新动作; 第二,信号nmi和interrupt任何一个为真;第三,等待5μs。只要一个以上的 条件被满足,进程就被启动。 2. 断言(Assert)语句 格式: ASSERT 条件 [REPORT 输出信息][SEVERITY 级别] 执行到断言语句时,判断条件,若条件满足就继续执行,否则输出文字串和错误级别信息。 例:ASSERT (tiaojian=1) REPORT some thing wrong SEVERITY ERROR; 2.4.2 赋值语句 赋值语句的功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号或变量,或由此组成的数组。VHDL设计实体内的数据传递以及对端口界面外部数据的读写都必须通过赋值语句的运行来实现。 赋值语句有两种,即信号赋值语句和变量赋值语句。 (1) 信号赋值语句 格式:目的信号量=信号量表达式 例:a=b; (2) 变量赋值语句 格式:目的变量:=表达式 例:c:=a+d; 变量赋值与信号赋值的区别在于,变量具有局部特征,它的有效只局限于所定义的一个进程中,或一个子程序中,它是一个局部的、暂时性数据对象(在某些情况下)。对于它的赋值是立即发生的(假设进程已启动),即是一种时间延迟为零的赋值行为。 信号则不同,信号具有全局性特征,它不但可以作为一个设计实体内部各单元之间数据传送的载体,而且可通过信号与其他的实体进行通信(端口本质上也是一种信号)。信号的赋值并不是立即发生的,它发生在一个进程结束时。赋值过程总是有某种延时的,它反映了硬件系统并不是立即发生的,它发生在一个进程结束时。赋值过程总是有某些延时的,它反映了硬件系统的重要特性,综合后可以找到与信号对应的硬件结构,如一根传输导线、一个输入输出端口或一个D触发器等。 读者可以从例例2.17中看出信号与变量赋值的特点及它们的区别。当在同一赋值目标处于不同进程中时,其赋值结果就比较复杂了,这可以看成是多个信号驱动源连接在一起,可以发生线与、线或或者三态等不同结果。 【例2.17】 SIGNAL S1,S2:STD_LOGIC; SIGNAL SVEC :STD_LOGIC_VECTOR(0 TO 7); ... PROCESS(S1,S2) VARIABLE V1,V2:STD_LOGIC; BEGIN V1 := 1;--立即将V1置位为1 V2 := 1;--立即将V2置位为1 S1 = 1;--S1被赋值为1 S2 = ‘1’; --由于在本进程中,这里的S2不是最后一个赋值语句故不做任何赋值操作 SVEC(0)= V1;--将V1在上面的赋值1,赋给SVEC(0) SVEC(1)= V2;--将V2在上面的赋值1,赋给SVEC(1)

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档