Implement WU architecture support
This commit is contained in:
@@ -15,7 +15,8 @@
|
||||
`include "VX_trace.vh"
|
||||
|
||||
module VX_ibuffer import VX_gpu_pkg::*; #(
|
||||
parameter CORE_ID = 0
|
||||
parameter CORE_ID = 0,
|
||||
parameter DOMAIN = WU_DOMAIN_SCALAR
|
||||
) (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
@@ -34,8 +35,9 @@ module VX_ibuffer import VX_gpu_pkg::*; #(
|
||||
|
||||
wire [ISW_WIDTH-1:0] decode_isw = wid_to_isw(decode_if.data.wid);
|
||||
wire [ISSUE_WIS_W-1:0] decode_wis = wid_to_wis(decode_if.data.wid);
|
||||
wire decode_lane_in_domain = (DOMAIN == WU_DOMAIN_TENSOR) ? `IS_TENSOR_WARP(decode_if.data.wid) : `IS_SCALAR_WARP(decode_if.data.wid);
|
||||
|
||||
assign decode_if.ready = ibuf_ready_in[decode_isw];
|
||||
assign decode_if.ready = decode_lane_in_domain && ibuf_ready_in[decode_isw];
|
||||
|
||||
`ifdef SIMULATION
|
||||
`ifdef DBG_TRACE_CORE_PIPELINE_VCS
|
||||
@@ -54,6 +56,7 @@ module VX_ibuffer import VX_gpu_pkg::*; #(
|
||||
VX_ibuffer_if uop_sequencer_if [`ISSUE_WIDTH]();
|
||||
|
||||
for (genvar i = 0; i < `ISSUE_WIDTH; ++i) begin
|
||||
localparam LANE_IN_DOMAIN = (DOMAIN == WU_DOMAIN_TENSOR) ? `IS_TENSOR_WARP(i) : `IS_SCALAR_WARP(i);
|
||||
VX_elastic_buffer #(
|
||||
.DATAW (DATAW),
|
||||
.SIZE (`IBUF_SIZE),
|
||||
@@ -61,7 +64,7 @@ module VX_ibuffer import VX_gpu_pkg::*; #(
|
||||
) instr_buf (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.valid_in (decode_if.valid && decode_isw == i),
|
||||
.valid_in (decode_if.valid && decode_isw == i && decode_lane_in_domain && LANE_IN_DOMAIN),
|
||||
.ready_in (ibuf_ready_in[i]),
|
||||
.data_in ({
|
||||
decode_if.data.uuid,
|
||||
|
||||
Reference in New Issue
Block a user