diff --git a/difftest/Cargo.lock b/difftest/Cargo.lock index 14b0f1a16..dc74ac0a1 100644 --- a/difftest/Cargo.lock +++ b/difftest/Cargo.lock @@ -134,7 +134,7 @@ dependencies = [ ] [[package]] -name = "dpi_t1" +name = "dpi_t1emu" version = "0.1.0" dependencies = [ "dpi_common", @@ -145,7 +145,7 @@ dependencies = [ ] [[package]] -name = "dpi_t1rocket" +name = "dpi_t1rocketemu" version = "0.1.0" dependencies = [ "anyhow", @@ -269,7 +269,7 @@ dependencies = [ ] [[package]] -name = "offline_t1" +name = "offline_t1emu" version = "0.1.0" dependencies = [ "anyhow", @@ -285,7 +285,7 @@ dependencies = [ ] [[package]] -name = "offline_t1rocket" +name = "offline_t1rocketemu" version = "0.1.0" dependencies = [ "anyhow", diff --git a/difftest/offline_t1emu/src/json_events.rs b/difftest/offline_t1emu/src/json_events.rs index 60bf8a388..99bd72c96 100644 --- a/difftest/offline_t1emu/src/json_events.rs +++ b/difftest/offline_t1emu/src/json_events.rs @@ -162,6 +162,17 @@ impl JsonEventRunner for SpikeRunner { se.issue_idx = issue.idx as u8; + self.commit_queue.iter().for_each(|old_se| { + assert_eq!( + old_se.issue_idx, se.issue_idx, + "[{cycle}] Issue: new issue_idx={} ({}) should not be equal to any old event in commit_queue issue_idx={} ({}), check if the old event is retired in time", + se.issue_idx, + old_se.issue_idx, + se.describe_insn(), + old_se.describe_insn() + ); + }); + info!( "[{}] SpikePeekIssue: issue_idx={}, pc={:#x}, inst={}", issue.cycle, issue.idx, se.pc, se.disasm diff --git a/difftest/offline_t1rocketemu/src/json_events.rs b/difftest/offline_t1rocketemu/src/json_events.rs index bf470a9f8..46386d3b8 100644 --- a/difftest/offline_t1rocketemu/src/json_events.rs +++ b/difftest/offline_t1rocketemu/src/json_events.rs @@ -337,6 +337,17 @@ impl JsonEventRunner for SpikeRunner { se.issue_idx = idx as u8; + self.commit_queue.iter().for_each(|old_se| { + assert_eq!( + old_se.issue_idx, se.issue_idx, + "[{cycle}] Issue: new issue_idx={} ({}) should not be equal to any old event in commit_queue issue_idx={} ({}), check if the old event is retired in time", + se.issue_idx, + old_se.issue_idx, + se.describe_insn(), + old_se.describe_insn() + ); + }); + info!("[{cycle}] Issue: issue_idx={idx} ({})", se.describe_insn()); self.commit_queue.push_front(se);