Line 213... |
Line 213... |
b2x_prechg, d_rd_next, dt_next, xfr_end,
|
b2x_prechg, d_rd_next, dt_next, xfr_end,
|
rd_pipe_mt, ld_xfr, rd_last, d_rd_last,
|
rd_pipe_mt, ld_xfr, rd_last, d_rd_last,
|
wr_last, l_xfr_end, rd_start, d_rd_start,
|
wr_last, l_xfr_end, rd_start, d_rd_start,
|
wr_start, page_hit, burst_bdry, xfr_wrap,
|
wr_start, page_hit, burst_bdry, xfr_wrap,
|
b2x_prechg_hit;
|
b2x_prechg_hit;
|
reg [4:0] l_rd_next, l_rd_start, l_rd_last;
|
reg [6:0] l_rd_next, l_rd_start, l_rd_last;
|
|
|
assign b2x_read = (b2x_cmd == `OP_RD) ? 1'b1 : 1'b0;
|
assign b2x_read = (b2x_cmd == `OP_RD) ? 1'b1 : 1'b0;
|
|
|
assign b2x_write = (b2x_cmd == `OP_WR) ? 1'b1 : 1'b0;
|
assign b2x_write = (b2x_cmd == `OP_WR) ? 1'b1 : 1'b0;
|
|
|
Line 248... |
Line 248... |
|
|
//assign next_xfr_len = (l_xfr_end && !ld_xfr) ? l_len : xfr_len - 1;
|
//assign next_xfr_len = (l_xfr_end && !ld_xfr) ? l_len : xfr_len - 1;
|
assign next_xfr_len = (ld_xfr) ? b2x_len :
|
assign next_xfr_len = (ld_xfr) ? b2x_len :
|
(l_xfr_end) ? l_len: l_len - 1;
|
(l_xfr_end) ? l_len: l_len - 1;
|
|
|
assign d_rd_next = (cas_latency == 2'b01) ? l_rd_next[2] :
|
assign d_rd_next = (cas_latency == 3'b001) ? l_rd_next[2] :
|
(cas_latency == 2'b10) ? l_rd_next[3] :
|
(cas_latency == 3'b010) ? l_rd_next[3] :
|
l_rd_next[4];
|
(cas_latency == 3'b011) ? l_rd_next[4] :
|
|
(cas_latency == 3'b100) ? l_rd_next[5] :
|
assign d_rd_last = (cas_latency == 2'b01) ? l_rd_last[2] :
|
l_rd_next[6];
|
(cas_latency == 2'b10) ? l_rd_last[3] :
|
|
l_rd_last[4];
|
assign d_rd_last = (cas_latency == 3'b001) ? l_rd_last[2] :
|
|
(cas_latency == 3'b010) ? l_rd_last[3] :
|
assign d_rd_start = (cas_latency == 2'b01) ? l_rd_start[2] :
|
(cas_latency == 3'b011) ? l_rd_last[4] :
|
(cas_latency == 2'b10) ? l_rd_start[3] :
|
(cas_latency == 3'b100) ? l_rd_last[5] :
|
l_rd_start[4];
|
l_rd_last[6];
|
|
|
assign rd_pipe_mt = (cas_latency == 2'b01) ? ~|l_rd_next[1:0] :
|
assign d_rd_start = (cas_latency == 3'b001) ? l_rd_start[2] :
|
(cas_latency == 2'b10) ? ~|l_rd_next[2:0] :
|
(cas_latency == 3'b010) ? l_rd_start[3] :
|
~|l_rd_next[3:0];
|
(cas_latency == 3'b011) ? l_rd_start[4] :
|
|
(cas_latency == 3'b100) ? l_rd_start[5] :
|
|
l_rd_start[6];
|
|
|
|
assign rd_pipe_mt = (cas_latency == 3'b001) ? ~|l_rd_next[1:0] :
|
|
(cas_latency == 3'b010) ? ~|l_rd_next[2:0] :
|
|
(cas_latency == 3'b011) ? ~|l_rd_next[3:0] :
|
|
(cas_latency == 3'b100) ? ~|l_rd_next[4:0] :
|
|
~|l_rd_next[5:0];
|
|
|
assign dt_next = wr_next | d_rd_next;
|
assign dt_next = wr_next | d_rd_next;
|
|
|
assign xfr_end = ~|xfr_len;
|
assign xfr_end = ~|xfr_len;
|
|
|
Line 299... |
Line 307... |
l_last <= 1'b0;
|
l_last <= 1'b0;
|
l_wrap <= 1'b0;
|
l_wrap <= 1'b0;
|
l_id <= 0;
|
l_id <= 0;
|
l_ba <= 0;
|
l_ba <= 0;
|
l_len <= 0;
|
l_len <= 0;
|
l_rd_next <= 5'b0;
|
l_rd_next <= 7'b0;
|
l_rd_start <= 5'b0;
|
l_rd_start <= 7'b0;
|
l_rd_last <= 5'b0;
|
l_rd_last <= 7'b0;
|
act_cmd <= 1'b0;
|
act_cmd <= 1'b0;
|
d_act_cmd <= 1'b0;
|
d_act_cmd <= 1'b0;
|
xfr_st <= `XFR_IDLE;
|
xfr_st <= `XFR_IDLE;
|
end // if (~reset_n)
|
end // if (~reset_n)
|
|
|
Line 317... |
Line 325... |
l_last <= (ld_xfr) ? b2x_last : l_last;
|
l_last <= (ld_xfr) ? b2x_last : l_last;
|
l_wrap <= (ld_xfr) ? b2x_wrap : l_wrap;
|
l_wrap <= (ld_xfr) ? b2x_wrap : l_wrap;
|
l_id <= (ld_xfr) ? b2x_id : l_id;
|
l_id <= (ld_xfr) ? b2x_id : l_id;
|
l_ba <= (ld_xfr) ? b2x_ba : l_ba;
|
l_ba <= (ld_xfr) ? b2x_ba : l_ba;
|
l_len <= next_xfr_len;
|
l_len <= next_xfr_len;
|
l_rd_next <= {l_rd_next[3:0], rd_next};
|
l_rd_next <= {l_rd_next[5:0], rd_next};
|
l_rd_start <= {l_rd_start[3:0], rd_start};
|
l_rd_start <= {l_rd_start[5:0], rd_start};
|
l_rd_last <= {l_rd_last[3:0], rd_last};
|
l_rd_last <= {l_rd_last[5:0], rd_last};
|
act_cmd <= (xfr_cmd == `SDR_ACTIVATE) ? 1'b1 : 1'b0;
|
act_cmd <= (xfr_cmd == `SDR_ACTIVATE) ? 1'b1 : 1'b0;
|
d_act_cmd <= act_cmd;
|
d_act_cmd <= act_cmd;
|
xfr_st <= next_xfr_st;
|
xfr_st <= next_xfr_st;
|
end // else: !if(~reset_n)
|
end // else: !if(~reset_n)
|
|
|