From c7a752488448074eb5140cc6cb6235e36462ff0c Mon Sep 17 00:00:00 2001 From: ZhuangYumin Date: Thu, 1 Aug 2024 08:43:44 +0000 Subject: [PATCH] naive passed --- include/memory.h | 7 ++++++- include/registerfile.h | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/include/memory.h b/include/memory.h index b08ca55..85543e8 100644 --- a/include/memory.h +++ b/include/memory.h @@ -188,7 +188,12 @@ struct Memory : dark::Module { playback[cur_opt_ROB_index].changes[3].addr <= cur_opt_addr + 3; playback[cur_opt_ROB_index].changes[3].before <= memory_data[max_size_t(cur_opt_addr) + 3]; *reinterpret_cast(&memory_data[max_size_t(cur_opt_addr)]) = max_size_t(cur_opt_data); - std::cerr << "Memory executing sw" << std::endl; + std::cerr << "Memory executing sw, ROB_index=" << std::dec + << static_cast(completed_memins_ROB_index) << std::endl; + std::cerr << "\taddr=" << std::hex << std::setfill('0') << std::setw(8) + << static_cast(cur_opt_addr) << std::endl; + std::cerr << "\tdata=" << std::hex << std::setfill('0') << std::setw(8) + << static_cast(cur_opt_data) << std::endl; break; default: throw std::runtime_error("Invalid bytes"); diff --git a/include/registerfile.h b/include/registerfile.h index d6c62e0..59c1c90 100644 --- a/include/registerfile.h +++ b/include/registerfile.h @@ -44,7 +44,11 @@ struct RegisterFile : public dark::Module(commit_reg_index)] <= 1; + dependency_cleared = true; } } } @@ -73,7 +82,7 @@ struct RegisterFile : public dark::Module(decoded_rs1)].peek(); rs1_value <= registers[static_cast(decoded_rs1)].peek(); rs1_nodep <= register_nodep[static_cast(decoded_rs1)].peek(); @@ -91,7 +100,7 @@ struct RegisterFile : public dark::Module(decoded_rs2)].peek(); rs2_value <= registers[static_cast(decoded_rs2)].peek(); rs2_nodep <= register_nodep[static_cast(decoded_rs2)].peek(); @@ -105,6 +114,9 @@ struct RegisterFile : public dark::Module