From a9feb82bd377940308e989bd7083cf3c91f0efcf Mon Sep 17 00:00:00 2001 From: davide schiavone Date: Wed, 12 Nov 2025 10:20:25 +0100 Subject: [PATCH 1/2] fix undriven X-IF signals --- rtl/cve2_core.sv | 1 + rtl/cve2_id_stage.sv | 12 ++++++++++-- rtl/cve2_pkg.sv | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/rtl/cve2_core.sv b/rtl/cve2_core.sv index 419fd2688f..253eca38ad 100644 --- a/rtl/cve2_core.sv +++ b/rtl/cve2_core.sv @@ -462,6 +462,7 @@ module cve2_core import cve2_pkg::*; #( .lsu_store_err_i(lsu_store_err), // Core-V Extension Interface (CV-X-IF) + .hart_id_i (hart_id_i), // Issue Interface .x_issue_valid_o(x_issue_valid_o), .x_issue_ready_i(x_issue_ready_i), diff --git a/rtl/cve2_id_stage.sv b/rtl/cve2_id_stage.sv index 83efe6b564..0e3f62ccb0 100644 --- a/rtl/cve2_id_stage.sv +++ b/rtl/cve2_id_stage.sv @@ -105,6 +105,7 @@ module cve2_id_stage #( input logic [31:0] lsu_addr_last_i, // Core-V eXtension Interface (CV-X-IF) + input logic [31:0] hart_id_i, // Issue Interface output logic x_issue_valid_o, input logic x_issue_ready_i, @@ -291,17 +292,24 @@ module cve2_id_stage #( assign coproc_done = (x_issue_valid_o & x_issue_ready_i & ~x_issue_resp_i.writeback) | (x_result_valid_i & x_result_i.we); // Issue Interface - assign x_issue_valid_o = instr_executing & illegal_insn_dec & (id_fsm_q == FIRST_CYCLE); - assign x_issue_req_o.instr = instr_rdata_i; + assign x_issue_valid_o = instr_executing & illegal_insn_dec & (id_fsm_q == FIRST_CYCLE); + assign x_issue_req_o.instr = instr_rdata_i; + assign x_issue_req_o.instr = instr_rdata_i; + assign x_issue_req_o.id = '0; + assign x_issue_req_o.hartid = hart_id_i; // Register Interface assign x_register_o.rs[0] = rf_rdata_a_fwd; assign x_register_o.rs[1] = rf_rdata_b_fwd; assign x_register_o.rs_valid = '1; + assign x_register_o.id = '0; + assign x_register_o.hartid = hart_id_i; // Commit Interface assign x_commit_valid_o = 1'b1; assign x_commit_o.commit_kill = 1'b0; + assign x_commit_o.id = '0; + assign x_commit_o.hartid = hart_id_i; // Result Interface assign x_result_ready_o = 1'b1; diff --git a/rtl/cve2_pkg.sv b/rtl/cve2_pkg.sv index a78383fba7..88d99e3346 100644 --- a/rtl/cve2_pkg.sv +++ b/rtl/cve2_pkg.sv @@ -661,7 +661,7 @@ package cve2_pkg; parameter int unsigned X_ID_WIDTH = 4; parameter int unsigned X_RFR_WIDTH = 32; parameter int unsigned X_RFW_WIDTH = 32; - parameter int unsigned X_HARTID_WIDTH = 1; + parameter int unsigned X_HARTID_WIDTH = 32; parameter int unsigned X_DUAL_READ = 0; parameter int unsigned X_DUAL_WRITE = 0; From 97184e3d0e036186b5ade0a139e082404f4a7536 Mon Sep 17 00:00:00 2001 From: davide schiavone Date: Wed, 12 Nov 2025 13:55:13 +0100 Subject: [PATCH 2/2] remove repetead line --- rtl/cve2_id_stage.sv | 1 - 1 file changed, 1 deletion(-) diff --git a/rtl/cve2_id_stage.sv b/rtl/cve2_id_stage.sv index 0e3f62ccb0..997bbaeb8a 100644 --- a/rtl/cve2_id_stage.sv +++ b/rtl/cve2_id_stage.sv @@ -294,7 +294,6 @@ module cve2_id_stage #( // Issue Interface assign x_issue_valid_o = instr_executing & illegal_insn_dec & (id_fsm_q == FIRST_CYCLE); assign x_issue_req_o.instr = instr_rdata_i; - assign x_issue_req_o.instr = instr_rdata_i; assign x_issue_req_o.id = '0; assign x_issue_req_o.hartid = hart_id_i;