diff --git a/hw/rtl/VX_gpu_types.vh b/hw/rtl/VX_gpu_types.vh index 70537487..857f2efc 100644 --- a/hw/rtl/VX_gpu_types.vh +++ b/hw/rtl/VX_gpu_types.vh @@ -10,7 +10,7 @@ typedef struct packed { logic [`NUM_THREADS-1:0] tmask; } gpu_tmc_t; -`define GPU_TMC_BITS $bits(gpu_tmc_t) +`define GPU_TMC_BITS $bits(gpu_types::gpu_tmc_t) typedef struct packed { logic valid; @@ -18,7 +18,7 @@ typedef struct packed { logic [31:0] pc; } gpu_wspawn_t; -`define GPU_WSPAWN_BITS $bits(gpu_wspawn_t) +`define GPU_WSPAWN_BITS $bits(gpu_types::gpu_wspawn_t) typedef struct packed { logic valid; @@ -28,7 +28,7 @@ typedef struct packed { logic [31:0] pc; } gpu_split_t; -`define GPU_SPLIT_BITS $bits(gpu_split_t) +`define GPU_SPLIT_BITS $bits(gpu_types::gpu_split_t) typedef struct packed { logic valid; @@ -36,7 +36,7 @@ typedef struct packed { logic [`NW_BITS-1:0] size_m1; } gpu_barrier_t; -`define GPU_BARRIER_BITS $bits(gpu_barrier_t) +`define GPU_BARRIER_BITS $bits(gpu_types::gpu_barrier_t) endpackage diff --git a/hw/rtl/VX_issue.sv b/hw/rtl/VX_issue.sv index e6312fd4..c59ed39e 100644 --- a/hw/rtl/VX_issue.sv +++ b/hw/rtl/VX_issue.sv @@ -131,8 +131,8 @@ module VX_issue #( `SCOPE_ASSIGN (issue_imm, ibuffer_if.imm); `SCOPE_ASSIGN (issue_use_pc, ibuffer_if.use_PC); `SCOPE_ASSIGN (issue_use_imm, ibuffer_if.use_imm); - `SCOPE_ASSIGN (scoreboard_delay, scoreboard_delay); - `SCOPE_ASSIGN (execute_delay, ~idmux_ib_if.ready); + `SCOPE_ASSIGN (scoreboard_delay, !sboard_wb_if.ready); + `SCOPE_ASSIGN (execute_delay, !idmux_ib_if.ready); `SCOPE_ASSIGN (gpr_rsp_a, gpr_rsp_if.rs1_data); `SCOPE_ASSIGN (gpr_rsp_b, gpr_rsp_if.rs2_data); `SCOPE_ASSIGN (gpr_rsp_c, gpr_rsp_if.rs3_data); @@ -170,7 +170,7 @@ module VX_issue #( if (decode_if.valid & !decode_if.ready) begin perf_ibf_stalls <= perf_ibf_stalls + `PERF_CTR_BITS'd1; end - if (ibuffer_if.valid & scoreboard_delay) begin + if (ibuffer_if.valid & !sboard_wb_if.ready) begin perf_scb_stalls <= perf_scb_stalls + `PERF_CTR_BITS'd1; end if (alu_req_if.valid & !alu_req_if.ready) begin diff --git a/hw/rtl/fp_cores/VX_fpu_types.vh b/hw/rtl/fp_cores/VX_fpu_types.vh index 3b8999de..df8a955f 100644 --- a/hw/rtl/fp_cores/VX_fpu_types.vh +++ b/hw/rtl/fp_cores/VX_fpu_types.vh @@ -15,7 +15,7 @@ typedef struct packed { logic is_signaling; } fp_class_t; -`define FP_CLASS_BITS $bits(fp_class_t) +`define FP_CLASS_BITS $bits(fpu_types::fp_class_t) typedef struct packed { logic NV; // 4-Invalid @@ -25,7 +25,7 @@ typedef struct packed { logic NX; // 0-Inexact } fflags_t; -`define FFLAGS_BITS $bits(fflags_t) +`define FFLAGS_BITS $bits(fpu_types::fflags_t) endpackage diff --git a/hw/scripts/scope.json b/hw/scripts/scope.json index 4af5231a..3dbf7a41 100644 --- a/hw/scripts/scope.json +++ b/hw/scripts/scope.json @@ -1,10 +1,21 @@ { "version": 1, + "include_paths":[ + "../dpi", + "../rtl", + "../rtl/afu", + "../rtl/cache", + "../rtl/fp_cores", + "../rtl/interfaces", + "../rtl/libs" + ], "includes":[ - "../dpi/util_dpi.vh", - "../rtl/VX_config.vh", - "../rtl/VX_platform.vh", - "../rtl/VX_define.vh", + "../rtl/VX_config.vh", + "../rtl/VX_platform.vh", + "../rtl/VX_define.vh", + "../rtl/VX_gpu_types.vh", + "../rtl/fp_cores/VX_fpu_types.vh", + "../rtl/fp_cores/VX_fpu_define.vh", "../rtl/cache/VX_cache_define.vh" ], "modules": { @@ -61,8 +72,8 @@ "VX_gpu_unit": {}, "VX_mem_unit": { "submodules": { - "dcache": {"type":"VX_cache", "params":{"NUM_BANKS":"`DNUM_BANKS"}}, - "icache": {"type":"VX_cache", "params":{"NUM_BANKS":"`INUM_BANKS"}} + "dcache": {"type":"VX_cache", "params":{"NUM_BANKS":"`DCACHE_NUM_BANKS"}}, + "icache": {"type":"VX_cache", "params":{"NUM_BANKS":"1"}} } }, "VX_cache": { @@ -112,9 +123,9 @@ "!cci_pending_writes_full": 1, "?afu_mem_req_fire": 1, "afu_mem_req_addr": 26, - "afu_mem_req_tag": 32, + "afu_mem_req_tag": 27, "?afu_mem_rsp_fire": 1, - "afu_mem_rsp_tag": 32 + "afu_mem_rsp_tag": 27 }, "afu/vortex": { "!reset": 1, @@ -133,10 +144,10 @@ "?icache_req_fire": 1, "icache_req_wid":"`NW_BITS", "icache_req_addr": 32, - "icache_req_tag":"`ICORE_TAG_ID_BITS", + "icache_req_tag":"`ICACHE_CORE_TAG_ID_BITS", "?icache_rsp_fire": 1, "icache_rsp_data": 32, - "icache_rsp_tag":"`ICORE_TAG_ID_BITS" + "icache_rsp_tag":"`ICACHE_CORE_TAG_ID_BITS" }, "afu/vortex/cluster/core/pipeline/fetch/warp_sched": { "?wsched_scheduled": 1, diff --git a/hw/scripts/scope.py b/hw/scripts/scope.py index d7c1c631..73728a26 100755 --- a/hw/scripts/scope.py +++ b/hw/scripts/scope.py @@ -278,6 +278,7 @@ def expand_text(text, params): return None def parse_include(filename, nesting): + print("*** parsing: " + filename + "...") if nesting > 99: raise Exception("include recursion!") #print("*** parsing '" + filename + "'...") @@ -812,6 +813,10 @@ def main(): exclude_files.append(os.path.basename(args.vl)) + if "include_paths" in config: + for path in config["include_paths"]: + load_include_path(path) + if "includes" in config: parse_includes(config["includes"])