利用Verilog HDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1 hit
如题:利用VerilogHDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1,状态转换如图所示。急需...借鉴一下hit现态A现态B输入x次态...
如题:利用Verilog HDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1,状态转换如图所示。
急需...借鉴一下 hit
现态A 现态B 输入x 次态A 次态B 输出y
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 1 0 0
1 0 0 0 0 0
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 1 1 1 展开
急需...借鉴一下 hit
现态A 现态B 输入x 次态A 次态B 输出y
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 1 0 0
1 0 0 0 0 0
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 1 1 1 展开
2个回答
展开全部
module state(clk,m,out)
input clk;
input m;
output out;
reg current,next,s0,s1,s2,s3;
always@(current)
begin
next=x;
case(current)
s0:begin
if(m)
next=s1;
else
next=s0;
end
s1:begin
if(m)
next=s2;
else
next=s0;
end
s2:begin
if(m)
next=s3;
else
next=s0;
end
s3: begin
if(m)
next=s3;
else
next=s0;
end
default:next=s0;
endcase
end
always@(posedge clk)
begin
current<=next;
end
always@(posedge clk)
case(next)
s0:out<=0;
s1:out<=0;
s2:out<=0;
s3:if(!m)out<=out+1;
default:out<=0;
endcase
endmodule
input clk;
input m;
output out;
reg current,next,s0,s1,s2,s3;
always@(current)
begin
next=x;
case(current)
s0:begin
if(m)
next=s1;
else
next=s0;
end
s1:begin
if(m)
next=s2;
else
next=s0;
end
s2:begin
if(m)
next=s3;
else
next=s0;
end
s3: begin
if(m)
next=s3;
else
next=s0;
end
default:next=s0;
endcase
end
always@(posedge clk)
begin
current<=next;
end
always@(posedge clk)
case(next)
s0:out<=0;
s1:out<=0;
s2:out<=0;
s3:if(!m)out<=out+1;
default:out<=0;
endcase
endmodule
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就用状态机实现咯
追问
请问这个能用word做了发给我吗?不甚感激
着急用,在线等...
wy126163126163@163.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询