首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

有些数据对,有些不对,是怎么回事?

有些数据对,有些不对,是怎么回事?

如题,写了一个读写SRAM的程序,依次写入1~240,读出的数多数是对的,1~190都是对的,可到200左右连续不对,210左右以后又都对了,不知道怎么回事,望高手指教

这个是我写的程序,不明白的是为什么就那几个数不对,其它的对呢?

module sram(clk,rst,address,data,ce,oe,we,ledout);
input clk,rst;
output [18:0]address;
output[7:0]ledout;
inout [7:0]data;
output ce,oe,we;
reg[18:0]address;
reg oe,we;
wire ce;
wire[7:0]data;
reg [7:0]datareg;
reg[7:0]ledout;
reg[3:0]ps,ns;
parameter st0=3'D0,st1=3'D1,st2=3'D2,st3=3'D3,st4=3'D4;
assign data=oe ? datareg: 'hz;
assign ce=1'b0;
always@(posedge clk or negedge rst)
if(!rst)
begin
ps<=st0;
we<=1;
oe<=1;
address<=0;
datareg<=0;
end
else
case (ps)
st0:begin
we<=1;oe<=1;

ps<=st1;
end
st1:begin
we<=1'b0;oe<=1'b1;
address<=address+1'b1;
datareg<=datareg+1'b1;
ps<=st2;
end
st2:begin
we<=1'b1;
oe<=1'b1;
if(address>=19'D1000)
begin
//address<=0;
ps<=st3;
end
else
ps<=st1;
end
st3:begin
oe<=1'b0;
we<=1'b1;
address<=19'D230;
ledout<=data;
ps<=st4;
end
st4:begin
ledout<=data;
ps<=st3;
end

default:ps<=st0;
endcase

endmodule

返回列表