专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
FPGA
关于检测五位二进制序列10010的状态机设计问题
2019-07-15 23:37
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
FPGA
12590
10
1055
时钟上升沿到来时,data左移,同时data最高位赋给x,同样在该上升沿到来时,进入状态判断,第一个x=1时应该进入状态A(001),为什么modelsim
仿真
波形图显示x=1下一周期才变为状态A,感觉状态(state)的输出滞后一个周期,希望大神帮忙看看哪里出了问题,或者解释一下是什么原因?谢谢(附代码和仿真结果图)
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
骨灰级发烧友
2019-07-16 08:12
采用Moore机,画出状态图,并写出状态转移输出表。为了简单起见,我们这里采用的是无重复的序列检测。
程序代码:
module VrSMex( CLOCK, X, Z);
input CLOCK, X;
output Z;
reg Z;
reg [2:0] Sreg, Snext;
parameter [2:0] A = 3'b000,
B = 3'b001,
C = 3'b010,
D = 3'b011,
E = 3'b100,
F = 3'b101;
always @ (posedge CLOCK)
Sreg <= Snext;
always @ (X, Sreg) begin
case (Sreg)
A: if(X==0) Snext = A;
else Snext = B;
B: if(X==0) Snext = C;
else Snext = B;
C: if(X==0) Snext = D;
else Snext = B;
D: if(X==0) Snext = A;
else Snext = E;
E: if(X==0) Snext = F;
else Snext = B;
F: if(X==0) Snext = A;
else Snext = B;
default Snext = A;
endcase
end
always @ (Sreg)
case (Sreg)
A, B, C, D, E: Z = 0;
F: Z = 1;
default z = 0;
endcase
endmodule
加载中...
查看其它10个回答
一周热门
更多
>
相关问题
如何用FPGA驱动LCD屏?
5 个回答
请教一下各位专家如何用FPGA做eDP接口?
6 个回答
FPGA CH7301c DVI(显示器数字接口)没有数字输出
7 个回答
100颗FPGA的板子,开开眼界
6 个回答
求教自制最小系统版
10 个回答
相关文章
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
Xilinx的FPGA开发工具——ISE开发流程
0个评论
基于FPGA的详细设计流程
0个评论
干货分享,FPGA硬件系统的设计技巧
0个评论
一种通过FPGA对AD9558时钟管理芯片进行配置的方法
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
FPGA
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
程序代码:
module VrSMex( CLOCK, X, Z);
input CLOCK, X;
output Z;
reg Z;
reg [2:0] Sreg, Snext;
parameter [2:0] A = 3'b000,
B = 3'b001,
C = 3'b010,
D = 3'b011,
E = 3'b100,
F = 3'b101;
always @ (posedge CLOCK)
Sreg <= Snext;
always @ (X, Sreg) begin
case (Sreg)
A: if(X==0) Snext = A;
else Snext = B;
B: if(X==0) Snext = C;
else Snext = B;
C: if(X==0) Snext = D;
else Snext = B;
D: if(X==0) Snext = A;
else Snext = E;
E: if(X==0) Snext = F;
else Snext = B;
F: if(X==0) Snext = A;
else Snext = B;
default Snext = A;
endcase
end
always @ (Sreg)
case (Sreg)
A, B, C, D, E: Z = 0;
F: Z = 1;
default z = 0;
endcase
endmodule
一周热门 更多>