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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: KevinIC

[原创] “10010”序列检测器的状态是7个还是5个?

[复制链接]
发表于 2012-3-8 00:42:21 | 显示全部楼层
我看这个例子的时候也觉得应该不需要那么多状态 还是该学习楼主的发问的精神 我想如果用五个状态功能性和仿真应该是没有问题的 例子中的f和a g和b完全是等价的状态 例子中这么写可能只是为了方便看或者是考虑到可移植性吧
发表于 2012-3-10 21:56:36 | 显示全部楼层
输入序列的bit数量>=状态机的状态数量,否则肯定有冗余.
发表于 2012-3-10 22:01:28 | 显示全部楼层
这个例子里,a和f重复,c和e重复.
发表于 2012-3-10 23:09:24 | 显示全部楼层
写7种状态防止数字逻辑受干扰出错跳入死循环,是有意义的
发表于 2012-3-11 00:07:28 | 显示全部楼层
回复 45# zengjia1106
我认为意义不大,假如真有这种"干扰",就是写更多状态也会出问题.
发表于 2012-3-11 00:25:42 | 显示全部楼层
觉得用5个完全可以了
发表于 2012-3-11 11:32:35 | 显示全部楼层
回复 46# digitalimage

这你错了,状态寄存器是用三位二进制表示的,一共才8种状态
idle = 3'd0,
        a = 3'd1,
        b = 3'd2,
        c = 3'd3,
        d = 3'd4,
        e = 3'd5,
        f = 3'd6,
        g = 3'd7;

如果f和g不给他规定走向,那么一旦一个干扰把寄存器变成f或g,那么必死循环的,你要知道不完整的case语句就是一级buffer,就一直在buffer里面循环。多研究一下EMC ,理想和实际是有差距的。
发表于 2012-3-11 14:10:25 | 显示全部楼层
回复 48# zengjia1106

这个我不懂了,写verilog的都知道写case而且分支不全的话,不写default是一个大大的错误.所以不需要多于状态的表述.
发表于 2012-3-11 14:13:21 | 显示全部楼层
回复 48# zengjia1106

另外,你写的这个状态是从0到7,一共8个,用3位表示的,没有多余状态,还用default的话反而不好.
发表于 2012-3-11 23:37:43 | 显示全部楼层
回复 50# digitalimage


    没看到是casex吗,不是case,所以不但有8种确定的状态,而且还有各种x的状态,而且下面你写的代码初始时不去复位是跑不下去的,因为全是x,那么casex就派上用场了,先赋idle,有了一个起始点,那么接下去就好办了,而且你发现任何状态的下一个状态都不会是f和g,但是就如您所说一样,为了防止发生意外的情况导致系统跑飞,都要使其他的非正常状态规定一个方向可以回到主循环上,就正如单片机的watchdog一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-20 16:48 , Processed in 0.019713 second(s), 6 queries , Gzip On, Redis On.

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