基于hlghdl的有限状态机的几种编码方式.docxVIP

基于hlghdl的有限状态机的几种编码方式.docx

  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文档。上传文档
查看更多
基于hlghdl的有限状态机的几种编码方式 0 有限状态机设计 数字系统包括以控制为主的系统和以数据为主的系统。通常,控制系统的主体是一个有限状态机(finite state machine,FSM),通过接收外部信号以及数据单元产生的状态信息,产生控制信号序列。在系统设计中,能否设计出高效可靠的有限状态机已经成为关键。 传统的有限状态机的描述方式有状态转移图,状态转移列表两种。随着EDA技术的发展,人们开始用硬件描述语言来描述有限状态机,通过充分发挥硬件描述语言的抽象建模能力,对系统在系统级或寄存器传输级进行描述。 使用Verilog HDL描述有限状态机有一定的灵活性,同样的系统功能可以用多种编码方式和描述风格来实现,但其综合出来的状态机在稳定性、速度、面积以及电路复杂程度上有很大的差别。因此研究FSM的编码方式和描述风格有利于更好地设计出高效可靠的有限状态机。 1 有限状态机性能特点 根据状态机的输出是否与输入条件相关,可将有限状态机分为Moore型状态机和Mealy型状态机,如图1所示。前者的输出仅仅依赖于当前状态,与输入条件无关;后者的输出不仅依赖于当前状态,而且取决于该状态的输入条件。 可综合有限状态机的Verilog HDL设计的基本要求: (1)有限状态机要安全,稳定性高。这就要求有限状态机不会进入死循环,即使由于某些扰动进入非法状态,也能很快的恢复到正常的状态循环中来。 (2)有限状态机速度快,满足设计的频率要求。 (3)有限状态机面积小,满足设计所占资源要求。 (4)有限状态机设计要清晰易懂,易维护。 有限状态机的Verilog HDL设计的一些基本准则: (1)一个Verilog模块至多描述一个有限状态机。这样不仅可以简化状态的定义、修改和调试,还可以利用一些EDA工具来协助设计。 (2)使用参数给状态赋值,而不是用宏定义(define)。因为define宏定义在编译时自动替换整个设计中所定义的宏,而parameter仅仅定义模块内部的参数,定义的参数不会与模块外的其它状态机混淆。 (3)用always模块写组合逻辑时,采用阻塞赋值,而在always块中建立时序电路时,用非阻塞赋值。这样才能保证有限状态机综合前和综合后仿真的一致性。 2 独热码的编码 状态编码又称为状态分配,决定了用以保持状态所需的触发器的数量,并且影响着实现下一个状态和输出中所用的组合逻辑的复杂度。编码方式选择不当可能会导致状态机所占资源过大或速度降低。常用的编码方式有3种:二进制码、格雷码、独热码。 二进制码和格雷码属于压缩状态编码,这种编码的优点是使用的状态向量最少,但是需要较多的逻辑资源用来状态译码。二进制码从一个状态转换到相邻状态时,可能有多个比特位发生变化,易产生中间状态转移问题,状态机的速度也要比采用其它编码方式慢。格雷码两个相邻的码值仅有一位就可区分,这将会减少电路中相邻物理信号线同时变化的情况,因而可以减少电路中的电噪声。Johnson码也有同样的特点,但是要用较多的位数。 独热码指对任意给定的状态,状态寄存器中只有1位为1,其余位都为0。n状态的有限状态机需要n个触发器,但这种有限状态机只需对寄存器中的一位进行译码,简化了译码逻辑电路,额外触发器占用的面积可用译码电路省下来的面积抵消。当设计中加入更多的状态时,译码逻辑没有变得更加复杂,有限状态机的速度仅取决于到某特定状态的转移数量,而其它类型有限状态机在状态增加时速度会明显下降。独热码还具有设计简单、修改灵活、易于综合和调试等优点。 由独热码衍生出来简化独热码和零空闲独热码两种编码方式。简化独热码用十进制数指向状态寄存器中的某一位,状态转移时,把与十进制数相对应的状态向量的那一位置1即可,跟独热码一样,在任意时刻,状态向量中只有1位为1,其余位都为0。与独热码相比,这种编码只须判断十进制数所指向状态向量的对应位是否为1,所以状态机的速度会相对较快。零空闲独热码对于状态之间存在复杂关系的设计可以产生高效的状态机,特别是对多个状态转向某一特定状态的情况。用这种方式编码时,普通状态的编码方式同简化独热码一样,只是特殊状态用状态寄存器全零来表示。 表1总结了以上几种编码方式的定义方式。其中简化独热码和零空闲独热码中的S0~S4非状态编码,而是代表指向状态寄存器中的相应位。 在实际设计中,具体采用哪一种编码要视器件结构而定。由于CPLD更多地提供组合逻辑资源,而FPGA触发器资源比较丰富,所以CPLD多使用二进程制码和格雷码,而FPGA多使用独热码。选择编码方式还跟状态数有一定关系,一般情况下,当状态数小于5时,推荐使用二进制码,当状态数大于4而小于24时使用独热码,状态数大于24时建议使用格雷码。 3 双进程式和3-alws式 用Verilog语言描述有限状态机通常有3种描

文档评论(0)

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

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

1亿VIP精品文档

相关文档