第8章Verilog有限状态机设计有限状态机.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章Verilog有限状态机设计有限状态机

例:用状态机设计模5计数器 8.4 有限状态机设计要点 1.起始状态的选择 : 起始状态是指电路复位后所处的状态,选择一个合理的起始状态将使整个系统简洁、高效。 多数EDA软件会自动为基于状态机的设计选择一个最佳的起始状态。 实用的状态机一般都设计为由唯一时钟边沿触发的同步运行方式,时钟信号和复位信号对每一个有限状态机来说都很重要。 8.4 有限状态机设计要点 实用的状态机都应有复位信号,有限状态机的复位信号有同步复位和异步复位两种。 2.有限状态机的同步复位 同步复位是复位信号有效后还要等到时钟跳变沿到来时,才可进行复位。 always @(posedge clk) if(clr) state=S0; //同步复位,s0为起始状态 else state=next_state; 3.有限状态机的异步复位 always @(posedge clk or posedge clr) if(clr) state=S0; //异步复位,s0为起始状态 else state=next_state; 8.4.2 多余状态的处理 在状态机设计中,通常会出现大量的多余状态,比如:采用n位编码,总的状态数为2n个,若需要的状态 2n,则会出现多余的状态。 假设目前有6个状态,若采用顺序编码:需要3位二进制数3’b000~3’b101六个状态,则会多余两个状态3’b110,3’b111; 若采用独热码的方式编码,需要六位二进制数,6’b000001, 6’b000010, 6’b000100,6’b001000,6’b010000,6’b100000六个状态,会多余26-6=58个状态。 处理多余状态一般有如下两种方法: (1)在case语句中用default分支决定如果进入无效状态所采取的措施; (2)编写必要的Verilog源代码明确定义进入无效状态所采取的行为。 例题1:用状态机设计流水灯 采用有限状态机设计一个彩灯控制器,要求控制12个LED灯实现如下的演示花型: 全灭-从两边往中间逐个亮-全亮-从中间往两边逐个灭-全灭; 循环执行上述过程。 每个状态的变化时间为0.5S(2Hz) 要求:(1)用双过程描述(一个描述状态跳转,一个描述输出) (2)单过程描述(状态跳转和输出在同一个过程中描述) * * 第8章 Verilog有限状态机设计 有限状态机(Finite State Machine,FSM)是时序电路设计中经常采用的一种方式,尤其适用于设计数字系统的控制模块,在一些需要控制高速器件的场合,用状态机进行设计是解决问题的一种很好的方案,具有速度快,结构简单,可靠性高等优点。如交通灯控制电路、自动售货机、AD/DA转换等。 有限状态机非常适于用FPGA器件实现,用VerilogHDL语言中的case语句就能很好的描述基于状态机的设计,再通过EDA工具软件的综合,一般可以生成性能极优的状态机电路。 状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括两部分:组合逻辑部分和寄存器逻辑部分。寄存器用于存储状态,组合电路用于状态译码和产生输出信号。 8.1 有限状态机 8.1 有限状态机 摩尔型(Moore)状态机 米里型(Mealy)状态机 根据输入、输出及状态之间的关系,状态机可分为两类: Moore状态机:其输出值只取决于当前状态,与输入值无关; Mealy状态机:其输出值不但和当前状态有关,还和输入值相关。 实用的状态机,一般都设计为同步时序方式,它在时钟的触发下,完成各个状态之间的转换,并产出相应的输出。 状态机有三种表示方法:状态图、状态表和流程图,这三种表示方法是等价的,相互之间可以转换。其中状态图是最常用的表示方法。 0元 0.5元 1元 1.5元 例:假设简易邮票自动售货机,只允许投入硬币(0.5元或1元),投入硬币达到2元后输出邮票,大于两元时,输出邮票并找零。 分析:系统需记忆的累积币值是四种状态:0元、0.5元、1元、1.5元 投入0.5元 投入0.5元 投入1元 投入1元 投入0.5元 投入1元,输出邮票 投入0.5元,输出邮票 投入1元,输出邮票并找零 状态 引起转换的输入条件,或输出信号 状态间的跳转 0元 0.5元 1元 1.5元 投入0.5元 投入0.5元 投入1元 投入1元 投入0.5元 投入1元,输出邮票 投入0.5元,输出邮票 投入1元,输出邮票并找零 module MooreFSM (A, B,ClkM, Z,Y); …… parameter S0=2’b00, S1

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档