Line 133... |
Line 133... |
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 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
|
// 12 bit subtractor is not feasibile for FPGA, so changed to 8 bits
|
|
parameter REQ_BW = (`TARGET_DESIGN == `FPGA) ? 8 : 12; // Request Width
|
|
|
|
|
|
input clk, reset_n;
|
input clk, reset_n;
|
|
|
/* Req from bank_ctl */
|
/* Req from bank_ctl */
|
input b2x_req, b2x_start, b2x_last, b2x_tras_ok,
|
input b2x_req, b2x_start, b2x_last, b2x_tras_ok,
|
b2x_wrap, r2x_idle, b2x_idle;
|
b2x_wrap, r2x_idle, b2x_idle;
|
input [`SDR_REQ_ID_W-1:0] b2x_id;
|
input [`SDR_REQ_ID_W-1:0] b2x_id;
|
input [1:0] b2x_ba;
|
input [1:0] b2x_ba;
|
input [11:0] b2x_addr;
|
input [11:0] b2x_addr;
|
input [REQ_BW-1:0] b2x_len;
|
input [`REQ_BW-1:0] b2x_len;
|
input [1:0] b2x_cmd;
|
input [1:0] b2x_cmd;
|
output x2b_ack;
|
output x2b_ack;
|
|
|
/* Status to bank_ctl */
|
/* Status to bank_ctl */
|
output [3:0] x2b_pre_ok;
|
output [3:0] x2b_pre_ok;
|
Line 200... |
Line 198... |
wire [`SDR_REQ_ID_W-1:0] x2a_id;
|
wire [`SDR_REQ_ID_W-1:0] x2a_id;
|
reg [`SDR_REQ_ID_W-1:0] l_id;
|
reg [`SDR_REQ_ID_W-1:0] l_id;
|
wire [1:0] xfr_ba;
|
wire [1:0] xfr_ba;
|
reg [1:0] l_ba;
|
reg [1:0] l_ba;
|
wire [11:0] xfr_addr;
|
wire [11:0] xfr_addr;
|
wire [REQ_BW-1:0] xfr_len, next_xfr_len;
|
wire [`REQ_BW-1:0] xfr_len, next_xfr_len;
|
reg [REQ_BW-1:0] l_len;
|
reg [`REQ_BW-1:0] l_len;
|
|
|
reg mgmt_idle, mgmt_req;
|
reg mgmt_idle, mgmt_req;
|
reg [3:0] mgmt_cmd;
|
reg [3:0] mgmt_cmd;
|
reg [11:0] mgmt_addr;
|
reg [11:0] mgmt_addr;
|
reg [1:0] mgmt_ba;
|
reg [1:0] mgmt_ba;
|
Line 280... |
Line 278... |
|
|
assign rd_start = ld_xfr & b2x_read & b2x_start;
|
assign rd_start = ld_xfr & b2x_read & b2x_start;
|
|
|
assign wr_start = ld_xfr & b2x_write & b2x_start;
|
assign wr_start = ld_xfr & b2x_write & b2x_start;
|
|
|
assign rd_last = rd_next & last_burst & ~|xfr_len[REQ_BW-1:1];
|
assign rd_last = rd_next & last_burst & ~|xfr_len[`REQ_BW-1:1];
|
|
|
//assign wr_last = wr_next & last_burst & ~|xfr_len[APP_RW-1:1];
|
//assign wr_last = wr_next & last_burst & ~|xfr_len[APP_RW-1:1];
|
|
|
assign wr_last = last_burst & ~|xfr_len[REQ_BW-1:1];
|
assign wr_last = last_burst & ~|xfr_len[`REQ_BW-1:1];
|
|
|
//assign xfr_ba = (ld_xfr) ? b2x_ba : l_ba;
|
//assign xfr_ba = (ld_xfr) ? b2x_ba : l_ba;
|
assign xfr_ba = (sel_mgmt) ? mgmt_ba :
|
assign xfr_ba = (sel_mgmt) ? mgmt_ba :
|
(sel_b2x) ? b2x_ba : l_ba;
|
(sel_b2x) ? b2x_ba : l_ba;
|
|
|