永发信息网

VERILOG语言实现检测输入序列中0101出现的次数,要求用状态机实现。

答案:3  悬赏:0  手机版
解决时间 2021-11-09 14:14
  • 提问者网友:斑駁影
  • 2021-11-09 09:41
VERILOG语言实现检测输入序列中0101出现的次数,要求用状态机实现。
最佳答案
  • 五星知识达人网友:舊物识亽
  • 2021-11-09 09:54
当检测到0101时候,out输出1,其余情况输出0。所以要想知道0101出现的次数,只要数out信号的高脉冲数就行了。(程序已经通过quartus ii的编译和综合,放心使用。)
module state_machine(clock,reset,in,out);
input clock,reset,in;
output out;
reg[3:0]state;
reg out;

parameter s0=4'b1000,
s1=4'b0100,
s2=4'b0010,
s3=4'b0001;

always @(posedge clock)
if(!reset)
begin
state<=s0;
out<=0;
end
else
case(state)
s0:if(in==1) begin state<=s0;out<=0;end
else begin state<=s1;out<=0;end
s1:if(in==0) begin state<=s1;out<=0;end
else begin state<=s2;out<=0;end
s2:if(in==1) begin state<=s0;out<=0;end
else begin state<=s3;out<=0;end
s3:if(in==0) begin state<=s1;out<=0;end
else begin state<=s0;out<=1;end
default:begin state<=s0;out<=0;end
endcase
endmodule
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-11-09 12:01
2楼的思路是对的
  • 2楼网友:第幾種人
  • 2021-11-09 10:41
你把状态表给出来就好办了。。。;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯