米联客技术答疑系统
微信客服01
微信客服02
微信客服03
QQ售前
QQ售后
提交问题
常见问题
联系我们
客服时间
周一至周五
8:00~18:00
[X]关闭
联系在线客服
首页
BBS
技术答疑系统
VIP视频课程
VIP板卡资料包
VIP会员购买
米联客-天猫店
米联客-京东店
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
客服中心
工单中心
AMD-FPGA
三段式状态机
文档创建者:
贾文洋
浏览次数:
4053
最后更新:
2016-01-06
AMD-FPGA
4053 人阅读
|
0 人回复
在FPGA逻辑电路中,如果状态机比较大,需要的状态转移、信号等处理比较复杂,建议使用三段式状态机来完成设计。当采用三段式建模描述FSM的状态机输出时,只需要指定case敏感表为次态寄存器,然后直接在每个次态的case分支中描述该状态的输出即可,不需要考虑状态转移条件。
虽然三段式描述方法的代码结构复杂了一下,但是换来了很多好处:使FSM做到了同步寄存器的输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更有利于时序路径分组,并且便于维护。
三段式结构:
1:
reg [2:0] current_state,next_state;
always@(posedge clk or negedge rstn)
begin
if(!rstn)
current_state<=scan_idle;
else
current_state<=next_state;
2:
always@(*)
begin
next_state=IDLE;
case(current_state)
S1:if(...)
next_state=S2:
else.....
S2:........
endcase
end
3:
always@(posedge clk or negedge rstn)
begin
if(!rstn)
....
else
case(next_state)
S1:
S2:
......
dafalut
endcase
end
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页