数字系统设计第4章.pptVIP

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

2. 双进程状态机: 双进程中状态变量要定义为信号类型,用于进程间信息传递; 可以在产生寄存器的进程中加上异步复位语句,用于确定初始状态; 注意在com进程中if语句要写完整if-else。 Seq: process( reset, clock) Begin if reset=‘1’ then present_state=G; elsif ( clock=‘1’and clock’event ) then present_state=next_state ; end if; End process seq; 4.有限状态机的VHDL实现 3. 三进程状态机: 用三个进程来描述一个状态机:第一个进程用于产生状态寄存器(和双进程的类似);第二个用于产生次态逻辑;第三个用于产生输出逻辑。如Moore机和Mealy机模型: Moore机的输出在时钟的有效边沿后n个门时延后,输出达到稳定并在一个完整的周期内保持不变,即输出比输入晚一个时钟周期达到稳定,并可以将输出与输入隔开,这是Moore机的重要特点。(P100,5.1) 状态寄存器 次态逻辑 输出逻辑 输出 输入 时钟 4.有限状态机的VHDL实现 3. 三进程状态机: 用三个进程来描述一个状态机:第一个进程用于产生状态寄存器(和双进程的类似);第二个用于产生次态逻辑;第三个用于产生输出逻辑。如Moore机和Mealy机模型: Mealy机的输出受输入影响,因为输入可能在一个时钟周期的任何时刻发生变化,输出在输入变化后几个门延时后发生变化,所以输入的噪声也会影响到输出。在实际应用中,要慎重选择状态机的类型。 状态寄存器 次态逻辑 输出逻辑 输出 输入 时钟 4.有限状态机的VHDL实现 仍以交通灯为例 ns: process (car ,timed, present_state) Begin case present_state is when G = if (car=‘1’) then next_state=R; else next_state=G; end if; when R = if (timed=‘1’) then next_state=G; else next_state=R; end if; end case; End process ns; --产生次态逻辑的进程 MAJOR=GRN MINOR=RED CAR START_TIME MAJOR= RED MINOR= GRN TIMED 0 1 G R op: process( car, present_state) --Mealy Begin start_timer=‘0’; if ( present_state=G ) then major_green=‘1’; minor_green=‘0’; if (car=‘1’) then start_timer=‘1’; end if ; else major_green=‘0’; minor_green=‘1’; End if; End process op; --产生输出逻辑的进程 MAJOR=GRN MINOR=RED CAR START_TIME MAJOR= RED MINOR= GRN TIMED 0 1 G R Op进程也可以用并行语句改写: Start_timer=‘1’ when ( present_state=G and car=‘1’) else ‘0’; Major_green=‘1’ when (present_state =G) else ‘0’; Minor_green=‘1’ when(present_state=R ) else ‘0’; 注意:用并行语句改写,不能再使用进程 4.有限状态机的VHDL实现 举例:序列检测器 序列检测器是用来检测一组或多组序列信号的电路,要求当检测器连续收到一组串行码1110010后,输出为1,否则输出位0。序列检测器的I/O口设计如下:x是串行输入端,z是输出端,当x连续输入1110010时z输出为1。

文档评论(0)

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

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

1亿VIP精品文档

相关文档