|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
各位大佬,小弟初学FPGA,在门级的仿真的时候遇到了点问题,功能及程序如下:
功能:实现状态机在S0 S1 S2三个状态间来回切换,其中S0 = 0, S1 = 1,S2 =2;
现象:在S1切换为S2状态时也就是1切换到2的时候,state_p存在毛刺如下图
具体代码如下:
module SDRAM_CC1(
input clk,
input rst_n,
output [3:0] state_p
);
wire s02s1;
wire s12s2;
wire s22s0;
reg [3:0] state_c;
reg [3:0] state_n;
assign state_p = state_c;
parameter S0 = 4'b0000;
parameter S1 = 4'b0001;
parameter S2 = 4'b0010;
assign s02s1 = (state_c ==S0 );
assign s12s2 = (state_c==S1 );
assign s22s0 = (state_c==S2 );
always @(posedge clk or negedge rst_n)begin
if (!rst_n)begin
state_c <=S0;
end
else begin
state_c <=state_n;
end
end
always @(*)begin
case (state_c)
S0:begin
if (s02s1)begin
state_n=S1;
end
end
S1:begin
if (s12s2)begin
state_n=S2;
end
end
S2:begin
if (s22s0)begin
state_n=S0;
end
end
default:begin
state_n=S0;
end
endcase
end
endmodule
请求路过的大神不吝赐教,谢谢
|
|