- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Verilog 的有限状态机设计与优化
1 引言
在集成电路的设计过程中, 不论是使用FPGA还是ASIC 来实现, 有限状态机经常是作为一个电路设计的关键部分而出现的 . 状态机的功能是否完善( 是否强壮型) 对整个电路会产生重大的影响.
有限状态机主要有两种类型: Moore 型状态机和M ealy 型状态机. Moore 型状态机是指输出只与当前状态有关, 与输入信号无直接关系. 而Mealy 型状态机的输出不只与当前状态有关, 还与输入信号有关 .
文中以目前常用的硬件描述语言Verilog HDL 为基础, 对不同的状态机编码类型和状态机描述风 格对状态机性能的影响进行了深入的分析. 分别使 用Xilinx ISE 和 Design Compiler 对实例进行了综 合,分析了面积、速度与功耗的信息, 给出了对于不 同类型状态机的最佳编码风格.
2 状态机编码
状态的编码方式最常用的有二进制码、格雷码 和独热码三种, 不同的状态机编码方式对状态机的影响非常大 . 如表1 所示.
二进制的编码从第一个状态到最后一个状态是 按二进制码的顺序排列的, 是一种最普通的编码方式.
表1 不同的编码比较
十进制码 Binary code Gray code One- hot code
0 000 000 0001
1 001 001 0010
2 010 011 0100
3 011 010 1000
用格雷码进行状态的变换时, 相邻状态转换 只有一个状态位发生翻转. 这样就可以消除转换时由多条状态信号线的传输延迟所造成的毛刺, 大大 地减少了由一个状态到下一个状态时逻辑的混淆可以降低功耗.
one- hot 状态译码简单, 只有 1 位是 1 其他位为0, 易于修改, 可以减少组合逻辑, 但会使用更多的触发 , 增加电路面积.
Binary- code、Gray- code 编码使用最少的触发 器, 较多的组合逻辑, 而One- hot 编码反之.
因此, Binary 和Gray- code 适用于触发器资源 较少, 组合电路资源丰富的情况( CPLD) , 对于FP GA 则更适用 One- hot code, 因为这样可以充分利 用FPGA 丰富的触发器资源. 另外, 小型设计通常 使用Binary- code 和 Gray- code, 对于大型的设计 使用One- hot code 效果更佳 .
3 状态机的描述方法
状态机的描述方法通常有三种: 一段式( one al ways) 、二段式( two always) 和三段式( three always) .
3. 1 一段式
一段式的状态机描述方法是指将整个状态机写 到一个alw ays 模块里, 该模块描述当前状态转移, 又描述状态的输入和输出.
由于一段式的描述方法是给 STATE 自身赋值, 所以本身就会引入一个周期的延时, 需要在设计中通过 预计算 考虑进去.
一段式的描述方法所有输出都是寄存器输出的, 因此不会产生毛刺, 但是这种组合逻辑和时序逻辑都写到一起的方法是不可取的, 而且在描述当前状态的时候还要考虑到下一状态的输出. 这种描述方法可读
性差、难于理解和维护, 不利于时许约束、功能更改及调试, 对于Mealy 型的状态机来说, 容易出现Latches.
3. 2 二段式
二段式的状态机描述方法是指使用两个always模块, 其中一个always 模块采用同步时序的方式描述当前状态和下一状态的转移, 另一个alw ays 模块采用组合逻辑来描述下一状态和输出向量的赋值.
二段式的描述方法比一段式的更合理, 它更易于阅读、理解和维护, 更利于综合并优化代码. 但是它的缺点是第二个alw ays 块组合逻辑的输出会出现毛刺, 影响电路性能.
3. 3 三段式
三段式的状态机描述方法是由二段式发展而来的, 在二段式两个alw ays 的基础上又增加了一个alw ays 块来描述每个状态的输出, 用寄存器寄存了一拍
您可能关注的文档
- 毕业论文(设计)基于Verilog HDL语言的串口设计说明书.docx
- 毕业论文(设计)基于C语言赛车游戏说明书.doc
- 毕业论文(设计)基于单片机89C2051实现可编程时钟说明书.doc
- 毕业论文(设计)基于c语言的贪吃蛇游戏说明书.doc
- 毕业论文(设计)基于AT89C51 按键控制点阵显示说明书.doc
- 毕业论文(设计)基于AT24C02的多机通信说明书.doc
- 毕业论文(设计)基于c的超市进销存系统说明书.doc
- 毕业论文(设计)基于LPC2114控制步进电机转速以及角位移说明书.doc
- 毕业论文(设计)基于C语言的学生成绩管理设计说明书.doc
- 毕业论文(设计)基于 C 语言的 JavaScript 引擎探索说明书.docx
- 毕业论文(设计)基于Verilog语言的简单自动售货机说明书.doc
- 毕业论文(设计)基于verilog的数字频率计代码仿真和报告说明书.doc
- 毕业论文(设计)基于STC89C52计算器设计程序已验证说明书.doc
- 毕业论文(设计)基于AT89C51单片机的测温系统说明书.doc
- 毕业论文(设计)基于verilog HDL的出租车计费器说明书.doc
- 毕业论文(设计)基于STC89C52RC单片机交通灯设计与实现说明书.doc
- 毕业论文(设计)基于Verilog HDL的闹钟设计说明书.doc
- 毕业论文(设计)基于AT89C52的频率计说明书.doc
- 毕业论文(设计)基于STC89C52单片机的人机接口的设计说明书.doc
- 毕业论文(设计)基于Proteus的89C52双机通信仿真说明书.docx
文档评论(0)