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

Subversion Repositories sdr_ctrl

[/] [sdr_ctrl/] [trunk/] [rtl/] [core/] [sdrc_bank_fsm.v] - Diff between revs 37 and 50

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 37 Rev 50
Line 91... Line 91...
                     trcd_delay);  // Active to R/W delay
                     trcd_delay);  // Active to R/W delay
 
 
parameter  APP_AW   = 30;  // Application Address Width
parameter  APP_AW   = 30;  // Application Address Width
parameter  APP_DW   = 32;  // Application Data Width 
parameter  APP_DW   = 32;  // Application Data Width 
parameter  APP_BW   = 4;   // Application Byte Width
parameter  APP_BW   = 4;   // Application Byte Width
parameter  APP_RW   = 9;   // Application Request Width
 
 
 
parameter  SDR_DW   = 16;  // SDR Data Width 
parameter  SDR_DW   = 16;  // SDR Data Width 
parameter  SDR_BW   = 2;   // SDR Byte Width
parameter  SDR_BW   = 2;   // SDR Byte Width
 
parameter  REQ_BW   = 12;   //  Request Width
   input                        clk, reset_n;
   input                        clk, reset_n;
 
 
   /* Req from bank_ctl */
   /* Req from bank_ctl */
   input                        r2b_req, r2b_start, r2b_last,
   input                        r2b_req, r2b_start, r2b_last,
                                r2b_write, r2b_wrap;
                                r2b_write, r2b_wrap;
   input [`SDR_REQ_ID_W-1:0]     r2b_req_id;
   input [`SDR_REQ_ID_W-1:0]     r2b_req_id;
   input [11:0]          r2b_raddr;
   input [11:0]          r2b_raddr;
   input [11:0]          r2b_caddr;
   input [11:0]          r2b_caddr;
   input [APP_RW-1:0]    r2b_len;
   input [REQ_BW-1:0]    r2b_len;
   output                       b2r_ack;
   output                       b2r_ack;
   input                        sdr_dma_last;
   input                        sdr_dma_last;
 
 
   /* Req to xfr_ctl */
   /* Req to xfr_ctl */
   output                       b2x_req, b2x_start, b2x_last,
   output                       b2x_req, b2x_start, b2x_last,
                                tras_ok, b2x_wrap;
                                tras_ok, b2x_wrap;
   output [`SDR_REQ_ID_W-1:0]    b2x_id;
   output [`SDR_REQ_ID_W-1:0]    b2x_id;
   output [11:0]                 b2x_addr;
   output [11:0]                 b2x_addr;
   output [APP_RW-1:0]   b2x_len;
   output [REQ_BW-1:0]   b2x_len;
   output [1:0]          b2x_cmd;
   output [1:0]          b2x_cmd;
   input                        x2b_ack;
   input                        x2b_ack;
 
 
   /* Status from xfr_ctl */
   /* Status from xfr_ctl */
   input                        x2b_refresh, x2b_act_ok, x2b_rdok,
   input                        x2b_refresh, x2b_act_ok, x2b_rdok,
Line 140... Line 140...
   reg                          l_start, l_last;
   reg                          l_start, l_last;
   reg                          b2x_req, b2r_ack;
   reg                          b2x_req, b2r_ack;
   wire [`SDR_REQ_ID_W-1:0]      b2x_id;
   wire [`SDR_REQ_ID_W-1:0]      b2x_id;
   reg [`SDR_REQ_ID_W-1:0]       l_id;
   reg [`SDR_REQ_ID_W-1:0]       l_id;
   reg [11:0]                    b2x_addr;
   reg [11:0]                    b2x_addr;
   reg [APP_RW-1:0]      l_len;
   reg [REQ_BW-1:0]      l_len;
   wire [APP_RW-1:0]     b2x_len;
   wire [REQ_BW-1:0]     b2x_len;
   reg [1:0]                     b2x_cmd;
   reg [1:0]                     b2x_cmd;
   reg                          bank_valid;
   reg                          bank_valid;
   reg [11:0]                    bank_row;
   reg [11:0]                    bank_row;
   reg [3:0]                     tras_cntr, timer0;
   reg [3:0]                     tras_cntr, timer0;
   reg                          l_wrap, l_write;
   reg                          l_wrap, l_write;
Line 168... Line 168...
      end // if (~reset_n)
      end // if (~reset_n)
 
 
      else begin
      else begin
 
 
         bank_valid <= (x2b_refresh || bank_prech_page_closed) ? 1'b0 :  // force the bank status to be invalid
         bank_valid <= (x2b_refresh || bank_prech_page_closed) ? 1'b0 :  // force the bank status to be invalid
//       bank_valid <= (x2b_refresh) ? 1'b0 :
 
                       (activate_bank) ? 1'b1 : bank_valid;
                       (activate_bank) ? 1'b1 : bank_valid;
 
 
         tras_cntr <= (activate_bank) ? tras_delay :
         tras_cntr <= (activate_bank) ? tras_delay :
                      (~tras_ok_internal) ? tras_cntr - 4'b1 : 4'b0;
                      (~tras_ok_internal) ? tras_cntr - 4'b1 : 4'b0;
 
 

powered by: WebSVN 2.1.0

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