blob: 335cc91930cc8cf3be2b4dd0db6326f841830aae [file] [log] [blame]
module tb_sdram_controller (
input io_axi_aw_valid,
output io_axi_aw_ready,
input [31:0] io_axi_aw_payload_addr,
input [3:0] io_axi_aw_payload_id,
input [7:0] io_axi_aw_payload_len,
input [2:0] io_axi_aw_payload_size,
input [1:0] io_axi_aw_payload_burst,
input io_axi_w_valid,
output io_axi_w_ready,
input [31:0] io_axi_w_payload_data,
input [3:0] io_axi_w_payload_strb,
input io_axi_w_payload_last,
output io_axi_b_valid,
input io_axi_b_ready,
output [3:0] io_axi_b_payload_id,
output [1:0] io_axi_b_payload_resp,
input io_axi_ar_valid,
output io_axi_ar_ready,
input [31:0] io_axi_ar_payload_addr,
input [3:0] io_axi_ar_payload_id,
input [7:0] io_axi_ar_payload_len,
input [2:0] io_axi_ar_payload_size,
input [1:0] io_axi_ar_payload_burst,
output io_axi_r_valid,
input io_axi_r_ready,
output [31:0] io_axi_r_payload_data,
output [3:0] io_axi_r_payload_id,
output [1:0] io_axi_r_payload_resp,
output io_axi_r_payload_last,
output io_initDone,
input clk,
input reset
);
wire [12:0] controller_io_sdram_ADDR;
wire [1:0] controller_io_sdram_BA;
wire controller_io_sdram_CASn;
wire controller_io_sdram_CKE;
wire controller_io_sdram_CSn;
wire [1:0] controller_io_sdram_DQM;
wire controller_io_sdram_RASn;
wire controller_io_sdram_WEn;
wire [15:0] controller_io_sdram_DQ_write;
wire [15:0] controller_io_sdram_DQ_writeEnable;
wire [15:0] sdramDevice_DQ_read;
SdramController controller (
.io_axi_aw_valid (io_axi_aw_valid ), //i
.io_axi_aw_ready (io_axi_aw_ready ), //o
.io_axi_aw_payload_addr (io_axi_aw_payload_addr ), //i
.io_axi_aw_payload_id (io_axi_aw_payload_id ), //i
.io_axi_aw_payload_len (io_axi_aw_payload_len ), //i
.io_axi_aw_payload_size (io_axi_aw_payload_size ), //i
.io_axi_aw_payload_burst (io_axi_aw_payload_burst ), //i
.io_axi_w_valid (io_axi_w_valid ), //i
.io_axi_w_ready (io_axi_w_ready ), //o
.io_axi_w_payload_data (io_axi_w_payload_data ), //i
.io_axi_w_payload_strb (io_axi_w_payload_strb ), //i
.io_axi_w_payload_last (io_axi_w_payload_last ), //i
.io_axi_b_valid (io_axi_b_valid ), //o
.io_axi_b_ready (io_axi_b_ready ), //i
.io_axi_b_payload_id (io_axi_b_payload_id ), //o
.io_axi_b_payload_resp (io_axi_b_payload_resp ), //o
.io_axi_ar_valid (io_axi_ar_valid ), //i
.io_axi_ar_ready (io_axi_ar_ready ), //o
.io_axi_ar_payload_addr (io_axi_ar_payload_addr ), //i
.io_axi_ar_payload_id (io_axi_ar_payload_id ), //i
.io_axi_ar_payload_len (io_axi_ar_payload_len ), //i
.io_axi_ar_payload_size (io_axi_ar_payload_size ), //i
.io_axi_ar_payload_burst (io_axi_ar_payload_burst ), //i
.io_axi_r_valid (io_axi_r_valid ), //o
.io_axi_r_ready (io_axi_r_ready ), //i
.io_axi_r_payload_data (io_axi_r_payload_data ), //o
.io_axi_r_payload_id (io_axi_r_payload_id ), //o
.io_axi_r_payload_resp (io_axi_r_payload_resp ), //o
.io_axi_r_payload_last (io_axi_r_payload_last ), //o
.io_sdram_ADDR (controller_io_sdram_ADDR[12:0] ), //o
.io_sdram_BA (controller_io_sdram_BA[1:0] ), //o
.io_sdram_DQ_read (sdramDevice_DQ_read[15:0] ), //i
.io_sdram_DQ_write (controller_io_sdram_DQ_write[15:0] ), //o
.io_sdram_DQ_writeEnable (controller_io_sdram_DQ_writeEnable[15:0] ), //o
.io_sdram_DQM (controller_io_sdram_DQM[1:0] ), //o
.io_sdram_CASn (controller_io_sdram_CASn ), //o
.io_sdram_CKE (controller_io_sdram_CKE ), //o
.io_sdram_CSn (controller_io_sdram_CSn ), //o
.io_sdram_RASn (controller_io_sdram_RASn ), //o
.io_sdram_WEn (controller_io_sdram_WEn ), //o
.io_initDone (io_initDone ), //o
.clk (clk ), //i
.reset (reset ) //i
);
wire [15:0] io_sdram_DQ;
assign sdramDevice_DQ_read = io_sdram_DQ;
assign io_sdram_DQ = controller_io_sdram_DQ_writeEnable ? controller_io_sdram_DQ_write : 16'bZZZZZZZZZZZZZZZZ;
// sdram_model_plus #(
// .addr_bits (12 ), // 地址位宽
// .data_bits (16 ), // 数据位宽
// .col_bits (9 ), // col地址位宽A0-A8
// .mem_sizes (2*1024*1024-1) // 2M
// ) sdramDeivce (
// .Debug (1'b1 ), //i
mt48lc16m16a2 sdramDevice (
.Clk (~clk ), //i
.Addr (controller_io_sdram_ADDR[12:0] ), //i
.Ba (controller_io_sdram_BA[1:0] ), //i
.Dq (io_sdram_DQ ), //io
.Dqm (controller_io_sdram_DQM[1:0] ), //i
.Cas_n (controller_io_sdram_CASn ), //i
.Cke (controller_io_sdram_CKE ), //i
.Cs_n (controller_io_sdram_CSn ), //i
.Ras_n (controller_io_sdram_RASn ), //i
.We_n (controller_io_sdram_WEn ) //i
);
initial begin
$dumpfile ("wave.vcd");
$dumpvars;
#1;
end
endmodule