1、综合读写模块(无FIFO)
对SDRAM的各个功能进行了模块划分----初始化操作、自动刷新操作、写操作、读操作与仲裁操作,结合这几个功能模块实现SDRAM的读写功能
2、代码
//----------------------------------------------------------------------------------------------------
//--SDRAM控制模块
//----------------------------------------------------------------------------------------------------
module SDRAM_Ctrl
( //时钟 复位 初始化结束信号
input sys_clk ,
input sys_rst_n ,
output init_end ,
//SDRAM写端口
input sdram_wr_req ,
input [23:0] sdram_wr_addr ,
input [9:0] wr_burst_len ,
input [15:0] sdram_data_in ,
output sdram_wr_ack ,
//SDRAM读端口
input sdram_rd_req ,
input [23:0] sdram_rd_addr ,
input [9:0] rd_burst_len ,
output [15:0] sdram_data_out ,
output sdram_rd_ack ,
//SDRAM硬件接口
output sdram_cke ,
output sdram_cs_n ,
output sdram_ras_n ,
output sdram_cas_n ,
output sdram_we_n ,
output [1:0] sdram_ba ,
output [12:0] sdram_addr ,
inout [15:0] sdram_dq
);
//init
wire [3:0] init_cmd ;
wire [1:0] init_ba ;
wire [12:0] init_addr ;
//aref
wire aref_en ;
wire [3:0] aref_cmd ;
wire [1:0] aref_ba ;
wire [12:0] aref_addr ;
wire aref_end ;
wire aref_req ;
//write
wire wr_en ;
wire [3:0] wr_cmd ;
wire [1:0] wr_ba ;
wire [12:0] wr_sdram_addr ;
wire wr_sdram_en ;
wire wr_end ;
wire [15:0] wr_sdram_data ;
//read
wire rd_en ;
wire [3:0] rd_cmd ;
wire [1:0] rd_ba ;
wire [12:0] rd_sdram_addr ;
wire rd_end ;
//模块实例化
SDRAM_INIT SDRAM_INIT_inst
(
. sys_clk (s