2016EDAVerilog06有限状态机updated.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * StopToClear和Clear就好像是一个“宏状态” ClearToIdle和Idle就好像是一个“宏状态” * * 如果想改过来,可以是 If ( !Reset state != Clear ) K1 = 0 * * * * * * * * * * * * * * * * * * * 讨论 交通灯例子改进 在行人通行的state3中,考虑到一次通行行人较多的情况,在本状态中,如果有行人继续按压行人请求按钮,则自动增加人行绿灯30s的时间(最多增加一次),请根据改进逻辑进行状态机修改。 state3: //汽车等待,行人通行,时间30秒 begin if(count6d0) begin count=count-1; end else begin states=state4; count=6d3; end end 注意:行人通行请求信号为电平信号,有行人按压时,则其信号一直为高电平,在状态机改造中注意行人一直按压的情况。 * 思考 找茬儿——设计中的不足 状态的命名 是否真正抓住需求的本质 * 第七讲、Top-Down与综合 Top-Down设计思路, 设计模式综合与扩展… 预告 * 联系方法 何锋 robinleo@buaa.edu.cn 010新主楼 F710 202教研室 ——航空电子与总线通信实验室 Avionics and Bus Communications Laboratory (ABC Lab) * * * * 第4点说得有点模糊不清 * * * * * * * * * Q = current state ; Qn+1 = next state 三段式中,第一段比较trivial 关于第三段——常规的数字电路同步时序逻辑设计中,输出时对 现状态 和 输入 译码;这里仿佛与数字电路的设计有点不同 (真相)三段式号称“避免输出组合逻辑出现毛刺”,实际上并不是从电路本身克服译码的竞争冒险,而是相当于把输出又用D-FF缓存了一个时钟周期! 状态机里面实际上有两个存储历史状态的寄存器,一个是所谓的current state,一个是next state,随着时钟周期移位交换 * * * * * * 思考:为什么 相当于:用一串移位寄存器存贮状态 相当于自启动 * 注意,一定要有 state or A,而不能仅仅是 A * * * * 不建议把nextstate设置为xx,没法综合 * 1。题设应该明确,上述状态图不全,也无法从应用看出其应有的输出与状态Clear、Idle的关系; 2。当状态图补全后,增加译码 其实有个错误 !Reset | !A / K2=0, K1=1 ,但程序中有问题,可能是理解为 ! Reset 一条弧, !A / K2=0, K1=1 另一条弧 * * 有限状态机的Verilog HDL描述:二段式 之二(续) 好处:专心致志 输入+原态?次态 没Reset捣乱 //------ 产生下一状态的组合逻辑 always @( state or A ) case (state) Idle: if ( A ) nextstate = Start; else nextstate = Idle; Start: if ( !A ) nextstate = Stop; else nextstate = Start; Stop: if ( A ) nextstate = Clear; else nextstate = Stop; Clear: if (!A ) nextstate = Idle; else nextstate = Clear; default: nextstate =Idle; endcase * 有限状态机的Verilog HDL描述:二段式 之二(续) //---- 产生输出K1的组合逻辑 always @ ( state or Reset or A ) if ( !Reset ) K1 = 0; else if ( state == Clear !A ) // 从Clear 转向 Idle K1=1; else K1= 0; //--- 产生输出K2的组合逻辑 always @ ( state or Reset or A ) if ( !Reset ) K2 = 0;

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档