马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
module ram_write(ram_clk,wr,rd,cs,data_in_bus,data_out_bus,ram_data_bus,ram_addr_bus);
input ram_clk;
input wr,rd;
input cs;
input[7:0] data_in_bus; //写入的数据
output[7:0] data_out_bus; //读出的数据
inout[7:0] ram_data_bus; //ram的数据线,双向
output[18:0] ram_addr_bus; //ram的地址线
reg[7:0] data_out_bus;
reg[18:0] ram_addr_bus;
reg[18:0] addr_count;
reg[7:0] ram_data_bus_reg;
assign ram_data_bus=wr?'bz:ram_data_bus_reg;
initial
addr_count=11’b0;
always @(posedge ram_clk)
if(cs==1'b1) addr_count=11'b0;
else if(wr==1'b0)begin //写
ram_addr_bus<=addr_count[18:0]; //地址计数器的输出作ram的地址
ram_data_bus_reg<=data_in_bus;
addr_count<=addr_count+1'b1;
end
else if(rd==1'b0)begin //读
ram_addr_bus<=addr_count[18:0];
data_out_bus<=ram_data_bus;
addr_count<=addr_count+1'b1;
end
else addr_count<=11'b0;
endmodule
想写入并读出ram里的数据,但是也不知道写进去没有?
反正读出是不对的,data_out_bus没有读出ram里的数据,一直都是ram_data_bus的值。
请帮忙看看怎样改正阿,给点意见。弄得头都大了,谢谢。 |