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

This commit is contained in:
tinebp 2025-02-18 21:53:06 -08:00
parent bd3f444d44
commit 98e90b80bf
3 changed files with 25 additions and 4 deletions

View file

@ -23,7 +23,7 @@ module VX_dispatch import VX_gpu_pkg::*; #(
output wire [PERF_CTR_BITS-1:0] perf_stalls [NUM_EX_UNITS],
`endif
// inputs
VX_operands_if.slave operands_if [`NUM_OPCS],
VX_operands_if.slave operands_if,
// outputs
VX_dispatch_if.master dispatch_if [NUM_EX_UNITS]

View file

@ -34,7 +34,7 @@ module VX_issue_slice import VX_gpu_pkg::*; #(
VX_ibuffer_if ibuffer_if [PER_ISSUE_WARPS]();
VX_scoreboard_if scoreboard_if();
VX_operands_if operands_if[`NUM_OPCS]();
VX_operands_if operands_if();
VX_ibuffer #(
.INSTANCE_ID (`SFORMATF(("%s-ibuffer", INSTANCE_ID)))

View file

@ -32,15 +32,18 @@ module VX_operands import VX_gpu_pkg::*; #(
VX_writeback_if.slave writeback_if,
VX_scoreboard_if.slave scoreboard_if,
VX_operands_if.master operands_if [`NUM_OPCS]
VX_operands_if.master operands_if
);
`UNUSED_SPARAM (INSTANCE_ID)
localparam NUM_OPDS = NUM_SRC_OPDS + 1;
localparam SB_DATAW = UUID_WIDTH + ISSUE_WIS_W + `NUM_THREADS + PC_BITS + EX_BITS + INST_OP_BITS + INST_ARGS_BITS + NUM_OPDS + (REG_IDX_BITS * NUM_OPDS);
localparam OPD_DATAW = UUID_WIDTH + ISSUE_WIS_W + `SIMD_WIDTH + PC_BITS + EX_BITS + INST_OP_BITS + INST_ARGS_BITS + 1 + NR_BITS + (NUM_SRC_OPDS * `SIMD_WIDTH * `XLEN);
VX_opc_if opc_if[`NUM_OPCS]();
VX_scoreboard_if per_opc_scoreboard_if[`NUM_OPCS]();
VX_operands_if per_opc_operands_if[`NUM_OPCS]();
wire [ISSUE_WIS_W-1:0] per_opc_wis[`NUM_OPCS];
wire [SIMD_IDX_W-1:0] per_opc_sid[`NUM_OPCS];
wire [NUM_REGS-1:0] per_opc_pending_regs[`NUM_OPCS];
@ -74,7 +77,7 @@ module VX_operands import VX_gpu_pkg::*; #(
.pending_regs (per_opc_pending_regs[i]),
.scoreboard_if(per_opc_scoreboard_if[i]),
.opc_if (opc_if[i]),
.operands_if (operands_if[i])
.operands_if (per_opc_operands_if[i])
);
end
@ -108,4 +111,22 @@ module VX_operands import VX_gpu_pkg::*; #(
.opc_if (opc_if)
);
`ITF_TO_AOS (per_opc_operands_if, per_opc_operands, `NUM_OPCS, OPD_DATAW)
VX_stream_arb #(
.NUM_INPUTS (`NUM_OPCS),
.NUM_OUTPUTS (1),
.DATAW (OPD_DATAW)
) operands_arb (
.clk (clk),
.reset (reset),
.valid_in (per_opc_operands_valid),
.data_in (per_opc_operands_data),
.ready_in (per_opc_operands_ready),
.valid_out (operands_if.valid),
.data_out (operands_if.data),
.ready_out (operands_if.ready),
`UNUSED_PIN(sel_out)
);
endmodule