cache bank select optimization
This commit is contained in:
45
hw/rtl/cache/VX_core_req_bank_sel.v
vendored
45
hw/rtl/cache/VX_core_req_bank_sel.v
vendored
@@ -230,37 +230,26 @@ module VX_core_req_bank_sel #(
|
|||||||
if (SHARED_BANK_READY == 0) begin
|
if (SHARED_BANK_READY == 0) begin
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
core_req_ready_r = 0;
|
core_req_ready_r = 0;
|
||||||
for (integer j = 0; j < NUM_BANKS; ++j) begin
|
for (integer i = 0; i < NUM_BANKS; ++i) begin
|
||||||
for (integer i = 0; i < NUM_REQS; ++i) begin
|
if (per_bank_core_req_valid_r[i]) begin
|
||||||
if (core_req_valid[i] && (core_req_bid[i] == `BANK_SELECT_BITS'(j))) begin
|
core_req_ready_r[per_bank_core_req_tid_r[i]] = per_bank_core_req_ready[i];
|
||||||
core_req_ready_r[i] = per_bank_core_req_ready[j];
|
end
|
||||||
break;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
core_req_ready_r = 0;
|
core_req_ready_r = 0;
|
||||||
for (integer j = 0; j < NUM_BANKS; ++j) begin
|
for (integer i = 0; i < NUM_BANKS; ++i) begin
|
||||||
for (integer i = 0; i < NUM_REQS; ++i) begin
|
if (per_bank_core_req_valid_r[i]) begin
|
||||||
if (core_req_valid[i] && (core_req_bid[i] == `BANK_SELECT_BITS'(j))) begin
|
core_req_ready_r[per_bank_core_req_tid_r[i]] = per_bank_core_req_ready;
|
||||||
core_req_ready_r[i] = per_bank_core_req_ready;
|
end
|
||||||
break;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
core_req_ready_r = 0;
|
core_req_ready_r = 0;
|
||||||
for (integer i = 0; i < NUM_REQS; ++i) begin
|
core_req_ready_r[per_bank_core_req_tid_r[0]] = per_bank_core_req_ready;
|
||||||
if (core_req_valid[i]) begin
|
|
||||||
core_req_ready_r[i] = per_bank_core_req_ready;
|
|
||||||
break;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -320,22 +309,18 @@ module VX_core_req_bank_sel #(
|
|||||||
if (SHARED_BANK_READY == 0) begin
|
if (SHARED_BANK_READY == 0) begin
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
core_req_sel_r = 0;
|
core_req_sel_r = 0;
|
||||||
for (integer j = 0; j < NUM_BANKS; ++j) begin
|
for (integer i = 0; i < NUM_REQS; ++i) begin
|
||||||
for (integer i = 0; i < NUM_REQS; ++i) begin
|
if (core_req_valid[i]) begin
|
||||||
if (core_req_valid[i] && (core_req_bid[i] == `UP(`BANK_SELECT_BITS)'(j))) begin
|
core_req_sel_r[i] = per_bank_core_req_ready[core_req_bid[i]];
|
||||||
core_req_sel_r[i] = per_bank_core_req_ready[j];
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
core_req_sel_r = 0;
|
core_req_sel_r = 0;
|
||||||
for (integer j = 0; j < NUM_BANKS; ++j) begin
|
for (integer i = 0; i < NUM_REQS; ++i) begin
|
||||||
for (integer i = 0; i < NUM_REQS; ++i) begin
|
if (core_req_valid[i]) begin
|
||||||
if (core_req_valid[i] && (core_req_bid[i] == `UP(`BANK_SELECT_BITS)'(j))) begin
|
core_req_sel_r[i] = per_bank_core_req_ready;
|
||||||
core_req_sel_r[i] = per_bank_core_req_ready;
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user