quartus projects
This commit is contained in:
6
hw/rtl/cache/VX_bank.v
vendored
6
hw/rtl/cache/VX_bank.v
vendored
@@ -309,11 +309,11 @@ module VX_bank #(
|
||||
`DEBUG_END
|
||||
wire [31:0] addr_st1 [STAGE_1_CYCLES-1:0];
|
||||
|
||||
integer p_stage;
|
||||
integer i;
|
||||
always @(*) begin
|
||||
is_fill_in_pipe = 0;
|
||||
for (p_stage = 0; p_stage < STAGE_1_CYCLES; p_stage=p_stage+1) begin
|
||||
if (is_fill_st1[p_stage]) begin
|
||||
for (i = 0; i < STAGE_1_CYCLES; i=i+1) begin
|
||||
if (is_fill_st1[i]) begin
|
||||
is_fill_in_pipe = 1;
|
||||
end
|
||||
end
|
||||
|
||||
8
hw/rtl/cache/VX_cache_core_req_bank_sel.v
vendored
8
hw/rtl/cache/VX_cache_core_req_bank_sel.v
vendored
@@ -50,15 +50,15 @@ module VX_cache_core_req_bank_sel #(
|
||||
);
|
||||
|
||||
generate
|
||||
integer curr_req;
|
||||
integer i;
|
||||
always @(*) begin
|
||||
per_bank_valids = 0;
|
||||
for (curr_req = 0; curr_req < NUM_REQUESTS; curr_req = curr_req + 1) begin
|
||||
for (i = 0; i < NUM_REQUESTS; i = i + 1) begin
|
||||
if (NUM_BANKS == 1) begin
|
||||
// If there is only one bank, then only map requests to that bank
|
||||
per_bank_valids[0][curr_req] = core_req_valid[curr_req];
|
||||
per_bank_valids[0][i] = core_req_valid[i];
|
||||
end else begin
|
||||
per_bank_valids[core_req_addr[curr_req][`BANK_SELECT_ADDR_RNG]][curr_req] = core_req_valid[curr_req];
|
||||
per_bank_valids[core_req_addr[i][`BANK_SELECT_ADDR_RNG]][i] = core_req_valid[i];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
54
hw/rtl/cache/VX_cache_wb_sel_merge.v
vendored
54
hw/rtl/cache/VX_cache_wb_sel_merge.v
vendored
@@ -91,43 +91,43 @@ module VX_cache_wb_sel_merge #(
|
||||
assign core_rsp_write = per_bank_wb_wb[main_bank_index];
|
||||
assign core_rsp_warp_num = per_bank_wb_warp_num[main_bank_index];
|
||||
|
||||
integer this_bank;
|
||||
integer i;
|
||||
generate
|
||||
always @(*) begin
|
||||
core_rsp_valid = 0;
|
||||
core_rsp_data = 0;
|
||||
core_rsp_pc = 0;
|
||||
core_rsp_valid = 0;
|
||||
core_rsp_data = 0;
|
||||
core_rsp_pc = 0;
|
||||
core_rsp_addr = 0;
|
||||
for (this_bank = 0; this_bank < NUM_BANKS; this_bank = this_bank + 1) begin
|
||||
for (i = 0; i < NUM_BANKS; i = i + 1) begin
|
||||
if ((FUNC_ID == `L2FUNC_ID) || (FUNC_ID == `L3FUNC_ID)) begin
|
||||
if (found_bank
|
||||
&& !core_rsp_valid[per_bank_wb_tid[this_bank]]
|
||||
&& per_bank_wb_valid[this_bank]
|
||||
&& ((main_bank_index == `LOG2UP(NUM_BANKS)'(this_bank))
|
||||
|| (per_bank_wb_tid[this_bank] != per_bank_wb_tid[main_bank_index]))) begin
|
||||
core_rsp_valid[per_bank_wb_tid[this_bank]] = 1;
|
||||
core_rsp_data[per_bank_wb_tid[this_bank]] = per_bank_wb_data[this_bank];
|
||||
core_rsp_pc[per_bank_wb_tid[this_bank]] = per_bank_wb_pc[this_bank];
|
||||
core_rsp_addr[per_bank_wb_tid[this_bank]] = per_bank_wb_addr[this_bank];
|
||||
per_bank_wb_pop_unqual[this_bank] = 1;
|
||||
&& !core_rsp_valid[per_bank_wb_tid[i]]
|
||||
&& per_bank_wb_valid[i]
|
||||
&& ((main_bank_index == `LOG2UP(NUM_BANKS)'(i))
|
||||
|| (per_bank_wb_tid[i] != per_bank_wb_tid[main_bank_index]))) begin
|
||||
core_rsp_valid[per_bank_wb_tid[i]] = 1;
|
||||
core_rsp_data[per_bank_wb_tid[i]] = per_bank_wb_data[i];
|
||||
core_rsp_pc[per_bank_wb_tid[i]] = per_bank_wb_pc[i];
|
||||
core_rsp_addr[per_bank_wb_tid[i]] = per_bank_wb_addr[i];
|
||||
per_bank_wb_pop_unqual[i] = 1;
|
||||
end else begin
|
||||
per_bank_wb_pop_unqual[this_bank] = 0;
|
||||
per_bank_wb_pop_unqual[i] = 0;
|
||||
end
|
||||
end else begin
|
||||
if (((main_bank_index == `LOG2UP(NUM_BANKS)'(this_bank))
|
||||
|| (per_bank_wb_tid[this_bank] != per_bank_wb_tid[main_bank_index]))
|
||||
if (((main_bank_index == `LOG2UP(NUM_BANKS)'(i))
|
||||
|| (per_bank_wb_tid[i] != per_bank_wb_tid[main_bank_index]))
|
||||
&& found_bank
|
||||
&& !core_rsp_valid[per_bank_wb_tid[this_bank]]
|
||||
&& (per_bank_wb_valid[this_bank])
|
||||
&& (per_bank_wb_rd[this_bank] == per_bank_wb_rd[main_bank_index])
|
||||
&& (per_bank_wb_warp_num[this_bank] == per_bank_wb_warp_num[main_bank_index])) begin
|
||||
core_rsp_valid[per_bank_wb_tid[this_bank]] = 1;
|
||||
core_rsp_data[per_bank_wb_tid[this_bank]] = per_bank_wb_data[this_bank];
|
||||
core_rsp_pc[per_bank_wb_tid[this_bank]] = per_bank_wb_pc[this_bank];
|
||||
core_rsp_addr[per_bank_wb_tid[this_bank]] = per_bank_wb_addr[this_bank];
|
||||
per_bank_wb_pop_unqual[this_bank] = 1;
|
||||
&& !core_rsp_valid[per_bank_wb_tid[i]]
|
||||
&& (per_bank_wb_valid[i])
|
||||
&& (per_bank_wb_rd[i] == per_bank_wb_rd[main_bank_index])
|
||||
&& (per_bank_wb_warp_num[i] == per_bank_wb_warp_num[main_bank_index])) begin
|
||||
core_rsp_valid[per_bank_wb_tid[i]] = 1;
|
||||
core_rsp_data[per_bank_wb_tid[i]] = per_bank_wb_data[i];
|
||||
core_rsp_pc[per_bank_wb_tid[i]] = per_bank_wb_pc[i];
|
||||
core_rsp_addr[per_bank_wb_tid[i]] = per_bank_wb_addr[i];
|
||||
per_bank_wb_pop_unqual[i] = 1;
|
||||
end else begin
|
||||
per_bank_wb_pop_unqual[this_bank] = 0;
|
||||
per_bank_wb_pop_unqual[i] = 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user