状态机例子.pptVIP

  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文档。上传文档
查看更多
状态机例子

交通灯控制器三的描述 // 状态转移控制 // 公路通行状态 删除 // 人行道有人申请 // 状态转移至公路黄灯 // 计时器清0 // 人行道通行状态 //人行道通行时间等于TF // 状态转移至双向红灯 // 计时器清0 case (state) `HIGH_PASS: // if (counter == `TH) begin if (req) begin state = `HIGH_YELLOW; counter = 0; end `FOOT_PASS: if (counter == `TF) begin state = `ALL_STOP; counter = 0; end d …… ? 把计数器切换改为由人行道申请按钮切换 交通灯控制器三的测试平台 reg req; // 增加按钮信号 …… case (count) 100, // 行人较少 700, 1500, // 以下行人数量增多间隔变小 1540, 1580, 1620, 1660:req = 1; 2000:$finish; default: req = 0; endcase 交通灯控制器三的结果 ?实现自动切换,安全转换 ?实现可以随时中断 ?行人很少时效率提高 ?仍然存在效率问题 ?连续有行人通过时,公路通行效率低极 低 ?需要考虑最低通行时间长度 交通灯控制器四状态转移图 公路通行 req counter =TH counter==TA 双向红灯 公路黄灯 人行道通行 counter==TF counter==TY 交通灯控制器四的描述 `HIGH `FOOT case (state) `HIGH_PASS: // if (req) begin if (req counter = `TH) begin state = HIGH_YELLOW; counter = 0; end FOOT_PASS: // 状态转移控制 // 公路通行状态 修改为 // 公路通行时间超过TH // 且有行人申请 // 状态转移至公路黄灯 // 计时器清0 // 人行道通行状态 if (counter == `TF) begin //人行道通行时间等于TF state = `ALL_STOP; // 状态转移至双向红灯 counter = 0; // 计时器清0 end …… ? 把仅由人行道申请按钮切换改为与计时器一起判断转换 交通灯控制器四的测试平台 case (count) 100, // 行人较少 700, 1500, // 以下行人数量增多间隔变小 1540, 1580, 1620, 1660, // :req = 1; 2000, 2100, // 测试按下按钮没有反应的情况 2500:req = 1; 3000:$finish; default: req = 0; endcase 交通灯控制器四的结果 ?实现自动切换,安全转换 ?实现随时中断 ?无论行人多少,公路通行效率提高 ?问题 ?有时行人按动按钮,控制器没反应 ?需要记忆按动操作 交通灯控制器五的描述 reg req_r; // 增加一个按钮寄存器 always @(posedge clk) begin // 复位, // 初始状态为公路通行 // 计时器清 0 // 按钮寄存器清0 // 计时器递增 // 按下按钮时将按钮寄存器置1 // 状态转移控制 if (reset) begin state = `HIGH_PASS; counter = 0; req_r = 0; end else begin counter = counter + 1; if (req) req_r = 1; case(state) …… endcase end end 交通灯控制器五的描述(续) case (state) // 状态转移控制 `HIGH_PASS:

文档评论(0)

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

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

1亿VIP精品文档

相关文档