我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 938|回复: 5

[资料贡献] FPGA中状态机的稳定性

[复制链接]

该用户从未签到

126

主题

239

回帖

0

积分

二级逆天

积分
0

终身成就奖金点子奖原创先锋奖

发表于 2020-5-29 16:44:09 | 显示全部楼层 |阅读模式

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

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

×
第一个:状态机输出信号填写问题,下面是我转载的一些能百度的到的东西。好像都比较正常。这里我还要强调的是,每个状态机的输出信号都需要全面。
举例:
always @ (posedge clk or negedge rst_n)              这里的状态机简单的描述,其实还有很多状态。
...//初始化                                              out3在s1  s2输出都是一样的,在状态跳转从s1跳到s2的
case(next_state)                                                    时候out3会在s1处所存,所以就算在s2的地方不写一次out3 <= 1'b0 ;情况S1:                                                                         也是是输出0.对状态机要求高的话,需要这么写。
  out1 <= 1'b1;  
out2 <= 1'b0;  
out3 <= 1'b0;       //看这里   
S2:
  out2 <= 1'b0;
out2 <= 1'b1;
out3 <= 1'b0 ;            //看这里   
default:...   
endcase
end
                     第二个:程序输出结构。看程序应该能懂,不需要太多解释吧。
举例:
always @ (posedge clk or negedge rst_n)        
case (next_state)                                                                                          
S1:                                                                                                                     
out1 <= 1'b1;                 //看这里                                          所有的不受if控制的输出都要写到if的外面。
out2 <= 1'b0;                  
if (x)                  
   out3 <= 1'b0;
else
   out3 <=1'b1;
S2:
  out2 <= 1'b0;       //看这里   
out2 <= 1'b1;
if (y)
   out3 <= 1'b0;
else
   out3 <=1'b1;

default:...   
endcase
end
                                    第三个。三段式(多段式)。简单描述就是将第三段的输出,在分为多段。
举例:(我不知道我这么写例子是否恰当,只能表达一个意思吧)
always @ (posedge clk or negedge rst_n)        
case (next_state)                                                                                          
S1:                                                                                                                     
out1 <= 1'b1;            
out2 <= 1'b0;                  
S2:
  out2 <= 1'b0;      
out2 <= 1'b1;
default:...   
endcase
end
-------------------------------------------------------------------
always @ (posedge clk or negedge rst_n)        
case (next_state)                                                                                          
S1:                                                                                                                                    
if (x)                  
   out3 <= 1'b0;
else
   out3 <=1'b1;
S2:
if (y)
   out3 <= 1'b0;
else
   out3 <=1'b1;

default:...   
endcase
end
                                         第四个。状态机的拆分,讲连续变化的状态机,从大的状态机里面拿出来。我只能这么说,没办法举例子了。这里涉及的编程思想也比较多了,没法描述但是要有这个思想。
                                          第五个。独热码好像有时候也不够稳定。你可以使用fifo来做状态缓存。当然这里只是理论概念,因为我还没写过,三段式,独热码,程序拆分后,还是不稳定的程序。但是如果以上内容你都做了,速度和稳定性还不够,你可以考虑的。主要的想法是这样的,fifo在多时钟域都可以良好的切换,就说明它的亚稳态现象很低,为什么状态机不稳定,就是对状态采样的时候,出现的问题。所以,它应该能做到更好的效果。[sub][/sub][sup][/sup][strike][/strike]
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-9-7 09:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    4981

    回帖

    3456

    积分

    二级逆天

    积分
    3456

    终身成就奖社区居民优秀斑竹奖

    QQ
    发表于 2020-5-29 19:01:54 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    61

    主题

    203

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2020-5-29 22:34:43 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-27 18:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    600

    回帖

    1057

    积分

    二级逆天

    积分
    1057

    终身成就奖

    发表于 2020-5-30 08:45:28 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    107

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2020-6-3 08:19:54 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    9 小时前
  • 签到天数: 105 天

    [LV.6]常住居民II

    2

    主题

    7206

    回帖

    1万

    积分

    三级逆天

    积分
    10617

    终身成就奖特殊贡献奖原创先锋奖

    QQ
    发表于 2020-6-3 08:56:45 | 显示全部楼层
    回复

    使用道具 举报

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

    本版积分规则

    公告:服务器刚移机,
    大家请不要下载东西。
    会下载失败


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表