mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-06-28 09:37:38 -04:00
bug fixes
Some checks are pending
CI / setup (push) Waiting to run
CI / build (32) (push) Blocked by required conditions
CI / build (64) (push) Blocked by required conditions
CI / tests (cache, 32) (push) Blocked by required conditions
CI / tests (cache, 64) (push) Blocked by required conditions
CI / tests (config1, 32) (push) Blocked by required conditions
CI / tests (config1, 64) (push) Blocked by required conditions
CI / tests (config2, 32) (push) Blocked by required conditions
CI / tests (config2, 64) (push) Blocked by required conditions
CI / tests (debug, 32) (push) Blocked by required conditions
CI / tests (debug, 64) (push) Blocked by required conditions
CI / tests (opencl, 32) (push) Blocked by required conditions
CI / tests (opencl, 64) (push) Blocked by required conditions
CI / tests (regression, 32) (push) Blocked by required conditions
CI / tests (regression, 64) (push) Blocked by required conditions
CI / tests (scope, 32) (push) Blocked by required conditions
CI / tests (scope, 64) (push) Blocked by required conditions
CI / tests (stress, 32) (push) Blocked by required conditions
CI / tests (stress, 64) (push) Blocked by required conditions
CI / tests (synthesis, 32) (push) Blocked by required conditions
CI / tests (synthesis, 64) (push) Blocked by required conditions
CI / tests (vector, 32) (push) Blocked by required conditions
CI / tests (vector, 64) (push) Blocked by required conditions
CI / tests (vm, 32) (push) Blocked by required conditions
CI / tests (vm, 64) (push) Blocked by required conditions
CI / complete (push) Blocked by required conditions
Some checks are pending
CI / setup (push) Waiting to run
CI / build (32) (push) Blocked by required conditions
CI / build (64) (push) Blocked by required conditions
CI / tests (cache, 32) (push) Blocked by required conditions
CI / tests (cache, 64) (push) Blocked by required conditions
CI / tests (config1, 32) (push) Blocked by required conditions
CI / tests (config1, 64) (push) Blocked by required conditions
CI / tests (config2, 32) (push) Blocked by required conditions
CI / tests (config2, 64) (push) Blocked by required conditions
CI / tests (debug, 32) (push) Blocked by required conditions
CI / tests (debug, 64) (push) Blocked by required conditions
CI / tests (opencl, 32) (push) Blocked by required conditions
CI / tests (opencl, 64) (push) Blocked by required conditions
CI / tests (regression, 32) (push) Blocked by required conditions
CI / tests (regression, 64) (push) Blocked by required conditions
CI / tests (scope, 32) (push) Blocked by required conditions
CI / tests (scope, 64) (push) Blocked by required conditions
CI / tests (stress, 32) (push) Blocked by required conditions
CI / tests (stress, 64) (push) Blocked by required conditions
CI / tests (synthesis, 32) (push) Blocked by required conditions
CI / tests (synthesis, 64) (push) Blocked by required conditions
CI / tests (vector, 32) (push) Blocked by required conditions
CI / tests (vector, 64) (push) Blocked by required conditions
CI / tests (vm, 32) (push) Blocked by required conditions
CI / tests (vm, 64) (push) Blocked by required conditions
CI / complete (push) Blocked by required conditions
This commit is contained in:
parent
b0d7e45dbd
commit
aa5a0d2c66
2 changed files with 16 additions and 15 deletions
|
@ -199,7 +199,7 @@ module VX_opc_unit import VX_gpu_pkg::*; #(
|
|||
always @(*) begin
|
||||
other_pending_regs = '0;
|
||||
for (integer i = 0; i < `NUM_OPCS-1; ++i) begin
|
||||
other_pending_regs = other_pending_regs | pending_regs_in[i] & {NUM_REGS{staging_if.data.wis == pending_wis_in[i]}};
|
||||
other_pending_regs |= pending_regs_in[i] & {NUM_REGS{staging_if.data.wis == pending_wis_in[i]}};
|
||||
end
|
||||
end
|
||||
wire war_dp_check = staging_if.data.wb && (other_pending_regs[rd] != 0);
|
||||
|
|
|
@ -53,20 +53,21 @@ module VX_operands import VX_gpu_pkg::*; #(
|
|||
reg [`NUM_OPCS-1:0] select_opcs;
|
||||
always @(*) begin
|
||||
select_opcs = '1;
|
||||
if (`NUM_OPCS > 1 && SIMD_COUNT > 1) begin
|
||||
// SFU cannot handle multiple inflight WCTL instructions, always assign them same collector
|
||||
// LD/ST instructions should also be ordered via the same collector
|
||||
if (scoreboard_if.data.ex_type == EX_SFU
|
||||
&& inst_sfu_is_wctl(scoreboard_if.data.op_type)) begin
|
||||
// select collector 0
|
||||
for (int i = 0; i < `NUM_OPCS; ++i) begin
|
||||
if (i != 0) select_opcs[i] = 0;
|
||||
end
|
||||
end else if (scoreboard_if.data.ex_type == EX_LSU) begin
|
||||
// select collector 1
|
||||
for (int i = 0; i < `NUM_OPCS; ++i) begin
|
||||
if (i != 1) select_opcs[i] = 0;
|
||||
end
|
||||
// SFU cannot handle multiple inflight WCTL instructions, should use same collector
|
||||
if (`NUM_OPCS > 1 && SIMD_COUNT > 1
|
||||
&& scoreboard_if.data.ex_type == EX_SFU
|
||||
&& inst_sfu_is_wctl(scoreboard_if.data.op_type)) begin
|
||||
// select collector 0
|
||||
for (int i = 0; i < `NUM_OPCS; ++i) begin
|
||||
if (i != 0) select_opcs[i] = 0;
|
||||
end
|
||||
end
|
||||
// LSU cannot handle out of order LD/ST instructions, should use same collector
|
||||
if (`NUM_OPCS > 1
|
||||
&& scoreboard_if.data.ex_type == EX_LSU) begin
|
||||
// select collector 1
|
||||
for (int i = 0; i < `NUM_OPCS; ++i) begin
|
||||
if (i != 1) select_opcs[i] = 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue