EDA技术 第05讲 VHDL03 顺序语句2.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文档。上传文档
查看更多
EDA技术 第05讲 VHDL03 顺序语句2

小 结 信号赋值语句  断言语句主要作为仿真和调试中的人-机会话,给出一个文字串作为警告和错误提示信息。  当执行Assert语句时,就会对条件进行判别。如果条件为“真”,则执行下一条语句;如果条件为“假”,则输出由report指定的输出信息和由severity指定的错误级别。在report后面跟的是设计者所写的文字串,通常是说明错误的原因,文字串应该用双引号“”引起来。  断言语句不可综合,仅仅是为了仿真的方便。 断言语句Assert Assert 条件 [report 输出信息] [severity级别] Assert语句的格式 例:  Assert (a=255) report” a out of edge ” ;  severity error;   该断言语句的条件是信号量B=’1’。如果执行到该语句时,信号量B=’0’,说明条件不满足,就会输出report后跟的文字串。该文字串说明,出现了超时等待错误。severity后跟的错误级别告诉操作人员,其出错级别为error。 后面介绍。 子程序调用及返回语句 顺序语句 赋值语句 转向控制语句 (If、Case、Loop、Next、Exit) 等待语句 (wait) 子程序调用语句 断言语句(assert) 空操作语句(null) 作业1:设计一个3-8译码器: 【例】 (a) WAIT_UNTIL 结构 (b) WAIT_ON结构 ... LOOP WAIT UNTIL ENABLE =‘1’; WAIT ON ENABLE ... EXIT WHEN ENABLE =‘1’; END LOOP; 由以上脱离挂起状态、重新启动进程的两个条件可知,例3.4.20结束挂起所需满足的条件,实际上是一个信号的上跳沿。因为当满足所有条件后ENABLE为1,可推知ENABLE一定是由0变化来的。因此,上例中进程的启动条件是ENABLE出现一个上跳信号沿。 一般地,在一个进程中使用了WAIT语句后,经综合就会产生时序逻辑电路。时序逻辑电路的运行依赖于时钟的上升沿或下降沿,同时还具有数据存储的功能。 下例就是一个比较好的说明,此例描述了一个可预置校验对比值的四位奇偶校验电路,它的功能除对输入的4位码DATA(0 TO 3)进行奇偶校验外,还将把校验结果与预置的校验值NEW_CORRECT_PARITY进行比较,并将比较值PARITY_OK输出。 【例】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY PARI IS PORT(CLOCK :IN STD_LOGIC; SET_PARITY :IN STD_LOGIC; NEW_CORRECT_PARITY :IN STD_LOGIC; DATA : IN STD_LOGIC_VECTOR(0 TO 3); PARITY_OK :OUT BOOLEAN); END PARI; ARCHITECTURE ART OF PARI IS SIGNAL CORRECT_PARITY:STD_LOGIC; BEGIN PROCESS(CLOCK) VARIABLE TEMP: STD_LOGIC; BEGIN WAIT UNTIL CLOCKEVENT AND CLOCK= ‘1’; IF SET_PARITY=‘1’THEN FIRST:CORRECT_PARITY=NEW_CORRECT_PARITY; END IF; TEMP:=‘0’; FOR I IN DATARANGE LOOP TEMP:=TEMP XOR DATA(I); END LOOP; SECOND: PARITY_OK=(TEMP=CORRECT_PARITY); END PROCESS; END ART; 例中,NEW_CORRECT_PARITY是预置校验值输入端,SET_PARITY是预置校验值的输入与比较控制端。从例可以看出,由于WAIT语句的加入,综合后引

文档评论(0)

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

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

1亿VIP精品文档

相关文档