Commit aa5a0d2 1 parent b0d7e45 commit aa5a0d2 Copy full SHA for aa5a0d2
File tree 2 files changed +16
-15
lines changed
2 files changed +16
-15
lines changed Original file line number Diff line number Diff line change @@ -199,7 +199,7 @@ module VX_opc_unit import VX_gpu_pkg::*; #(
199
199
always @ (* ) begin
200
200
other_pending_regs = '0 ;
201
201
for (integer i = 0 ; i < `NUM_OPCS - 1 ; ++ i) begin
202
- other_pending_regs = other_pending_regs | pending_regs_in[i] & { NUM_REGS { staging_if.data.wis == pending_wis_in[i]}} ;
202
+ other_pending_regs | = pending_regs_in[i] & { NUM_REGS { staging_if.data.wis == pending_wis_in[i]}} ;
203
203
end
204
204
end
205
205
wire war_dp_check = staging_if.data.wb && (other_pending_regs[rd] != 0 );
Original file line number Diff line number Diff line change @@ -53,20 +53,21 @@ module VX_operands import VX_gpu_pkg::*; #(
53
53
reg [`NUM_OPCS - 1 : 0 ] select_opcs;
54
54
always @ (* ) begin
55
55
select_opcs = '1 ;
56
- if (`NUM_OPCS > 1 && SIMD_COUNT > 1 ) begin
57
- // SFU cannot handle multiple inflight WCTL instructions, always assign them same collector
58
- // LD/ST instructions should also be ordered via the same collector
59
- if (scoreboard_if.data.ex_type == EX_SFU
60
- && inst_sfu_is_wctl (scoreboard_if.data.op_type)) begin
61
- // select collector 0
62
- for (int i = 0 ; i < `NUM_OPCS ; ++ i) begin
63
- if (i != 0 ) select_opcs[i] = 0 ;
64
- end
65
- end else if (scoreboard_if.data.ex_type == EX_LSU ) begin
66
- // select collector 1
67
- for (int i = 0 ; i < `NUM_OPCS ; ++ i) begin
68
- if (i != 1 ) select_opcs[i] = 0 ;
69
- end
56
+ // SFU cannot handle multiple inflight WCTL instructions, should use same collector
57
+ if (`NUM_OPCS > 1 && SIMD_COUNT > 1
58
+ && scoreboard_if.data.ex_type == EX_SFU
59
+ && inst_sfu_is_wctl (scoreboard_if.data.op_type)) begin
60
+ // select collector 0
61
+ for (int i = 0 ; i < `NUM_OPCS ; ++ i) begin
62
+ if (i != 0 ) select_opcs[i] = 0 ;
63
+ end
64
+ end
65
+ // LSU cannot handle out of order LD/ST instructions, should use same collector
66
+ if (`NUM_OPCS > 1
67
+ && scoreboard_if.data.ex_type == EX_LSU ) begin
68
+ // select collector 1
69
+ for (int i = 0 ; i < `NUM_OPCS ; ++ i) begin
70
+ if (i != 1 ) select_opcs[i] = 0 ;
70
71
end
71
72
end
72
73
end
You can’t perform that action at this time.
0 commit comments