在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 12769|回复: 10

大家一起来讨论状态机的设计和化简

[复制链接]
发表于 2007-1-22 20:16:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
命题如下:
基本要求:设计一个自动售邮票机。每次只允许投入一枚五角或者一元的硬币,累计投入两元硬币给出一张邮票。如果投入一元五角硬币以后再投入一枚一元硬币,则给出邮票的同时还应找回五角钱。(这个命题是 我从edacn上 e人斑竹的帖子里看到的,下边的附件条件是我加上的)
附加要求:用户可以放弃购买,在放弃购买后能将所有投入钱币返回。
请绘出你认为的最优化的状态机,并给出原因。

下面帖我自己画的几种方案的状态转换图。
第一种:这种是根据投入钱币的数量来设计状态的转移,每投入一枚硬币,状态就转换一次。

[ 本帖最后由 wice3 于 2007-1-22 20:27 编辑 ]
1.jpg
 楼主| 发表于 2007-1-22 20:21:30 | 显示全部楼层
第2种设计思路...
在不断投入钱币的过程种状态为维持在积累状态上,用另外的计数器对钱币的数额进行计数。

[ 本帖最后由 wice3 于 2007-1-22 20:33 编辑 ]
2.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-22 20:44:31 | 显示全部楼层
这两种方案,第一种要比第2种逻辑更清晰,代码编写起来更简单。
第2种虽然状态少了几个,但是状态机还需要2个计数器分别对钱币的个数进行计数。这样状态机还需要管理这个计数器。在init状态先复位然后打开它,然后在2元和2.5 元状态上关闭计数器。这使得编程复杂了一点。

今天就先从编程的角度谈论状态机的设计,如果大家对这个问题感兴趣,我就续上一些状态编码,逻辑化简等其他问题

[ 本帖最后由 wice3 于 2007-1-22 20:50 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-8-8 07:41:43 | 显示全部楼层
这个比较的感兴趣,怎么没有后话了呢
回复 支持 反对

使用道具 举报

发表于 2007-8-8 10:17:22 | 显示全部楼层
个人还是比较倾向于第一种方法,毕竟逻辑比较清楚,还有更好的方法么?
lz?
回复 支持 反对

使用道具 举报

发表于 2007-8-8 10:49:08 | 显示全部楼层
如何保证用户只投入了2个银币?(机械方式?)如果他/她一次投入好多枚,第一种方案就无能为力了。个人倾向于第二种。
回复 支持 反对

使用道具 举报

发表于 2011-3-14 20:02:05 | 显示全部楼层
我以前也做过,用的是第二种,但只是用modelsim仿真了一下,没下到FPGA中。
回复 支持 反对

使用道具 举报

发表于 2011-7-19 23:37:18 | 显示全部楼层
不错,挺有意思,顶一个!
回复 支持 反对

使用道具 举报

发表于 2016-3-7 12:56:21 | 显示全部楼层
我要是一次投了5块钱,买一张邮票。怎么找钱给我?两个状态机似乎都不能解决。
回复 支持 反对

使用道具 举报

发表于 2016-3-25 14:59:21 | 显示全部楼层

状态机

状态机
设计3个输入信号,0.5y, 1y, cancel 2个输出使能信号,sample=1 时使能出票,  charge=1 使能找零钱.    一个reg money_sum为当前状态的累积投币数额。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-11-6 22:17 , Processed in 0.031054 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表