OpenCores
URL https://opencores.org/ocsvn/sdr_ctrl/sdr_ctrl/trunk

Subversion Repositories sdr_ctrl

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /sdr_ctrl/trunk
    from Rev 36 to Rev 37
    Reverse comparison

Rev 36 → Rev 37

/rtl/top/sdrc_top.v
23,10 → 23,12
nothing
Author(s): Dinesh Annayya, dinesha@opencores.org
Version : 1.0 - 8th Jan 2012
Version : 0.0 - 8th Jan 2012
Initial version with 16/32 Bit SDRAM Support
: 1.1 - 24th Jan 2012
: 0.1 - 24th Jan 2012
8 Bit SDRAM Support is added
0.2 - 31st Jan 2012
sdram_dq and sdram_pad_clk are internally generated
 
Copyright (C) 2000 Authors and OPENCORES.ORG
55,7 → 57,7
*******************************************************************/
 
 
`include "sdrc.def"
`include "sdrc_define.v"
module sdrc_top
(
sdr_width ,
78,7 → 80,6
/* Interface to SDRAMs */
sdram_clk ,
sdram_pad_clk ,
sdram_resetn ,
sdr_cs_n ,
sdr_cke ,
88,9 → 89,7
sdr_dqm ,
sdr_ba ,
sdr_addr ,
pad_sdr_din ,
sdr_dout ,
sdr_den_n ,
sdr_dq ,
/* Parameters */
sdr_init_done ,
123,7 → 122,6
// Global Variable
// ----------------------------------------------
input sdram_clk ; // SDRAM Clock
input sdram_pad_clk ; // SDRAM Clock from Pad, used for registering Read Data
input sdram_resetn ; // Reset Signal
input [1:0] sdr_width ; // 2'b00 - 32 Bit SDR, 2'b01 - 16 Bit SDR, 2'b1x - 8 Bit
input [1:0] cfg_colbits ; // 2'b00 - 8 Bit column address,
156,9 → 154,7
output [SDR_BW-1:0] sdr_dqm ; // SDRAM Data Mask
output [1:0] sdr_ba ; // SDRAM Bank Enable
output [11:0] sdr_addr ; // SDRAM Address
input [SDR_DW-1:0] pad_sdr_din ; // SDRA Data Input
output [SDR_DW-1:0] sdr_dout ; // SDRAM Data Output
output [SDR_BW-1:0] sdr_den_n ; // SDRAM Data Output enable
inout [SDR_DW-1:0] sdr_dq ; // SDRA Data Input/output
 
//------------------------------------------------
// Configuration Parameter
192,6 → 188,22
wire [dw-1:0] app_wr_data ; // sdr write data
wire [dw-1:0] app_rd_data ; // sdr read data
 
/****************************************
* These logic has to be implemented using Pads
* **************************************/
wire [SDR_DW-1:0] pad_sdr_din ; // SDRA Data Input
wire [SDR_DW-1:0] sdr_dout ; // SDRAM Data Output
wire [SDR_BW-1:0] sdr_den_n ; // SDRAM Data Output enable
 
 
assign sdr_dq = (&sdr_den_n == 1'b0) ? sdr_dout : {SDR_DW{1'bz}};
assign pad_sdr_din = sdr_dq;
 
// sdram pad clock is routed back through pad
// SDRAM Clock from Pad, used for registering Read Data
wire #(1.0) sdram_pad_clk = sdram_clk;
 
/************** Ends Here **************************/
wb2sdrc u_wb2sdrc (
// WB bus
.wb_rst_i (wb_rst_i ) ,
/rtl/wb2sdrc/wb2sdrc.v
231,6 → 231,7
$display("ERROR:%m COMMAND FIFO WRITE OVERFLOW");
end
end
// synopsys translate_on
// synopsys translate_off
always @(posedge sdram_clk) begin
if (cmdfifo_empty == 1'b1 && cmdfifo_rd == 1'b1) begin
/rtl/core/sdrc.def File deleted
rtl/core/sdrc.def Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: rtl/core/sdrc_bank_fsm.v =================================================================== --- rtl/core/sdrc_bank_fsm.v (revision 36) +++ rtl/core/sdrc_bank_fsm.v (revision 37) @@ -44,7 +44,7 @@ *******************************************************************/ -`include "sdrc.def" +`include "sdrc_define.v" module sdrc_bank_fsm (clk, reset_n,
/rtl/core/sdrc_req_gen.v
64,7 → 64,7
*******************************************************************/
 
`include "sdrc.def"
`include "sdrc_define.v"
 
module sdrc_req_gen (clk,
reset_n,
/rtl/core/sdrc_xfr_ctl.v
61,7 → 61,7
*******************************************************************/
 
`include "sdrc.def"
`include "sdrc_define.v"
 
module sdrc_xfr_ctl (clk,
reset_n,
547,7 → 547,7
sdr_cas_n <= 1'b1;
sdr_we_n <= 1'b1;
sdr_dqm <= {SDR_BW{1'b1}};
sdr_den_n <= {SDR_DW{1'b1}};
sdr_den_n <= {SDR_BW{1'b1}};
end // if (~reset_n)
else begin
sdr_cs_n <= xfr_cmd[3];
/rtl/core/sdrc_bs_convert.v
44,7 → 44,7
*******************************************************************/
 
`include "sdrc.def"
`include "sdrc_define.v"
module sdrc_bs_convert (
clk,
reset_n,
/rtl/core/sdrc_core.v
66,7 → 66,7
*******************************************************************/
 
 
`include "sdrc.def"
`include "sdrc_define.v"
module sdrc_core
(
clk,
/rtl/core/sdrc_define.v
0,0 → 1,27
 
`define SDR_REQ_ID_W 4
 
`define SDR_RFSH_TIMER_W 12
`define SDR_RFSH_ROW_CNT_W 3
 
// B2X Command
 
`define OP_PRE 2'b00
`define OP_ACT 2'b01
`define OP_RD 2'b10
`define OP_WR 2'b11
 
// SDRAM Commands (CS_N, RAS_N, CAS_N, WE_N)
 
`define SDR_DESEL 4'b1111
`define SDR_NOOP 4'b0111
`define SDR_ACTIVATE 4'b0011
`define SDR_READ 4'b0101
`define SDR_WRITE 4'b0100
`define SDR_BT 4'b0110
`define SDR_PRECHARGE 4'b0010
`define SDR_REFRESH 4'b0001
`define SDR_MODE 4'b0000
 
 
 
rtl/core/sdrc_define.v Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: rtl/core/sdrc_bank_ctl.v =================================================================== --- rtl/core/sdrc_bank_ctl.v (revision 36) +++ rtl/core/sdrc_bank_ctl.v (revision 37) @@ -44,7 +44,7 @@ *******************************************************************/ -`include "sdrc.def" +`include "sdrc_define.v" module sdrc_bank_ctl (clk, reset_n,
/verif/log/top_SDR_16BIT_basic_test1.log
1131,5 → 1131,5
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 73460 ns Iteration: 0 Instance: /tb_top
/verif/log/top_sdr8_sim.log
1465,7 → 1465,7
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 77860 ns Iteration: 0 Instance: /tb_top
### test 1: basic_test1 --> PASSED
###########################################
/verif/log/top_SDR_8BIT_basic_test1.log
1438,5 → 1438,5
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 77860 ns Iteration: 0 Instance: /tb_top
/verif/log/top_sdr32_sim.log
52,7 → 52,7
# Loading work.sdrc_xfr_ctl
# Loading work.sdrc_bs_convert
# Loading work.mt48lc2m32b2
# ** Warning: (vsim-3015) ../tb/tb_top.sv(199): [PCDPC] - Port size (11 or 11) does not match connection size (12) for port 'Addr'. The port definition is at: ../model/mt48lc2m32b2.v(42).
# ** Warning: (vsim-3015) ../tb/tb_top.sv(182): [PCDPC] - Port size (11 or 11) does not match connection size (12) for port 'Addr'. The port definition is at: ../model/mt48lc2m32b2.v(42).
# Region: /tb_top/u_sdram32
# do run.do
# tb_top.u_sdram32 : at time 10212.0 ns AREF : Auto Refresh
760,7 → 760,7
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 71260 ns Iteration: 0 Instance: /tb_top
### test 1: basic_test1 --> PASSED
###########################################
/verif/log/top_sdr16_sim.log
1158,7 → 1158,7
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 73460 ns Iteration: 0 Instance: /tb_top
### test 1: basic_test1 --> PASSED
###########################################
/verif/log/top_SDR_32BIT_basic_test1.log
25,7 → 25,7
# Loading work.sdrc_xfr_ctl
# Loading work.sdrc_bs_convert
# Loading work.mt48lc2m32b2
# ** Warning: (vsim-3015) ../tb/tb_top.sv(199): [PCDPC] - Port size (11 or 11) does not match connection size (12) for port 'Addr'. The port definition is at: ../model/mt48lc2m32b2.v(42).
# ** Warning: (vsim-3015) ../tb/tb_top.sv(182): [PCDPC] - Port size (11 or 11) does not match connection size (12) for port 'Addr'. The port definition is at: ../model/mt48lc2m32b2.v(42).
# Region: /tb_top/u_sdram32
# do run.do
# tb_top.u_sdram32 : at time 10212.0 ns AREF : Auto Refresh
733,5 → 733,5
###############################
# STATUS: SDRAM Write/Read TEST PASSED
###############################
# ** Note: $finish : ../tb/tb_top.sv(304)
# ** Note: $finish : ../tb/tb_top.sv(283)
# Time: 71260 ns Iteration: 0 Instance: /tb_top
/verif/tb/tb_top.sv
89,21 → 89,12
 
`ifdef SDR_32BIT
wire [31:0] Dq ; // SDRAM Read/Write Data Bus
wire [31:0] sdr_dout ; // SDRAM Data Out
wire [31:0] pad_sdr_din ; // SDRAM Data Input
wire [3:0] sdr_den_n ; // SDRAM Data Enable
wire [3:0] sdr_dqm ; // SDRAM DATA Mask
`elsif SDR_16BIT
wire [15:0] Dq ; // SDRAM Read/Write Data Bus
wire [15:0] sdr_dout ; // SDRAM Data Out
wire [15:0] pad_sdr_din ; // SDRAM Data Input
wire [1:0] sdr_den_n ; // SDRAM Data Enable
wire [1:0] sdr_dqm ; // SDRAM DATA Mask
`else
wire [7:0] Dq ; // SDRAM Read/Write Data Bus
wire [7:0] sdr_dout ; // SDRAM Data Out
wire [7:0] pad_sdr_din ; // SDRAM Data Input
wire [0:0] sdr_den_n ; // SDRAM Data Enable
wire [0:0] sdr_dqm ; // SDRAM DATA Mask
`endif
 
113,7 → 104,6
 
// to fix the sdram interface timing issue
wire #(2.0) sdram_clk_d = sdram_clk;
wire #(1.0) sdram_pad_clk = sdram_clk_d;
 
`ifdef SDR_32BIT
 
149,7 → 139,6
 
/* Interface to SDRAMs */
.sdram_clk (sdram_clk ),
.sdram_pad_clk (sdram_pad_clk ),
.sdram_resetn (RESETN ),
.sdr_cs_n (sdr_cs_n ),
.sdr_cke (sdr_cke ),
159,9 → 148,7
.sdr_dqm (sdr_dqm ),
.sdr_ba (sdr_ba ),
.sdr_addr (sdr_addr ),
.pad_sdr_din (Dq ),
.sdr_dout (sdr_dout ),
.sdr_den_n (sdr_den_n ),
.sdr_dq (Dq ),
 
/* Parameters */
.sdr_init_done (sdr_init_done ),
181,10 → 168,6
 
 
`ifdef SDR_32BIT
assign Dq[7:0] = (sdr_den_n[0] == 1'b0) ? sdr_dout[7:0] : 8'hZZ;
assign Dq[15:8] = (sdr_den_n[1] == 1'b0) ? sdr_dout[15:8] : 8'hZZ;
assign Dq[23:16] = (sdr_den_n[2] == 1'b0) ? sdr_dout[23:16] : 8'hZZ;
assign Dq[31:24] = (sdr_den_n[3] == 1'b0) ? sdr_dout[31:24] : 8'hZZ;
mt48lc2m32b2 #(.data_bits(32)) u_sdram32 (
.Dq (Dq ) ,
.Addr (sdr_addr ),
200,9 → 183,6
 
`elsif SDR_16BIT
 
assign Dq[7:0] = (sdr_den_n[0] == 1'b0) ? sdr_dout[7:0] : 8'hZZ;
assign Dq[15:8] = (sdr_den_n[1] == 1'b0) ? sdr_dout[15:8] : 8'hZZ;
 
IS42VM16400K u_sdram16 (
.dq (Dq ),
.addr (sdr_addr ),
217,7 → 197,6
);
`else
 
assign Dq[7:0] = (sdr_den_n[0] == 1'b0) ? sdr_dout[7:0] : 8'hZZ;
 
mt48lc8m8a2 #(.data_bits(8)) u_sdram8 (
.Dq (Dq ) ,

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.