对系统的开关阵列做开启或关闭操作1234有限状态机什么是有限.PPT

对系统的开关阵列做开启或关闭操作1234有限状态机什么是有限.PPT

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 状态确定 S0 :初始态; S1 :已投币0.5元 S2 :已投币1.0元 S3 :已投币1.5元 S4:已投币2.0元; S5 :已投币2.5元 S6 :已投币3.0元 有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 状态说明: S0 :初始态; S1 :已投币0.5元; S2 :已投币1.0元; S3 :已投币1.5元; S4: 已投币2.0元; S5 :已投币 2.5元; S6 :已投币3.0元; 状态转移图 有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 说明:1.在S0 状态下,如果检测到op_start=1,开始检测是否有投币,如果 有,一次新的售货操作开始; 2.在状态S1/S2/S3/S4下,如果检测到cancel_flag=1,则取消操作,状态 回S0,并退回相应的币值; 3.在状态S5下,卖出饮料不找零;在状态S6下,卖出饮料并找零; 4.在状态S5和S6 操作完后,都返回状态S0,等待下一轮新的操作开始; 5.只有在S0 状态下,hold_ind=0,可以发起新一轮操作,其它状态下都为1 有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 module softdrinkFSM(clk,rst,op_start,cancel_flag,coin_val, hold_ind,charge_ind,drinktk_ind,charge_val); input clk,rst; input op_start,cancel_flag; input [1:0] coin_val; output hold_ind,charge_ind,drinktk_ind; output [2:0] charge_val; reg hold_ind,charge_ind, drinktk_ind; reg [2:0] charge_val; reg [2:0] currentstate, nextstate; parameter S0=3b000; parameter S1=3b001; parameter S2=3b010; parameter S3=3b011; parameter S4=3b100; parameter S5=3b101; parameter S6=3b110; 源代码 有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 always @(posedge clk or posedge rst) if (rst) currentstate = S0; else currentstate = nextstate; always @ (currentstate or rst or op_start or cancel_flag or coin_val ) if(rst) nextstate=S0; else case (currentstate) S0: if(op_start) if(coin_val==2b01) nextstate=S1; else if(coin_val==2b10) nextstate=S2; 源代码 有限状态机 练习-设计饮料自动投币售卖机的核心控制电路 S1: if(cancel_flag) nextstate=S0; else if(coin_val==2b01) nextstate=S2; else if(coin_val==2b10) nextstate=S3; S2: if(cancel_flag) nextstate=S0; else if(coin_val==2b01) nextstate=S3; else if(coin_val==2b10) nextstate=S4; S3: if(cancel_flag) nextstate=S0; else if(coin_val==2b01) nextstate=S4; else if(coin_val==2b10) nextstate=

文档评论(0)

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

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

1亿VIP精品文档

相关文档