Skip to content

Commit

Permalink
Validate: update ArchRegState only when commit or event (#488)
Browse files Browse the repository at this point in the history
When Squash enabled, previous squashed instrCommit may be submitted
with new-coming updated ArchRegState, which results in reg mismatch
with REF.

In difftest software side, we will only use ArchRegState when
instrCommit or event (progress = true in code), so we add
updateDependency for ArchRegState to ensure using corresponding ones
with squashed commits, just like we add for CSR before.
  • Loading branch information
klin02 authored Oct 30, 2024
1 parent c1a64ae commit 85823eb
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/main/scala/Difftest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ class DiffVecWriteback(numRegs: Int = 32) extends DiffIntWriteback(numRegs) {
class DiffArchIntRegState extends ArchIntRegState with DifftestBundle {
override val desiredCppName: String = "regs_int"
override val desiredOffset: Int = 0
override val updateDependency: Seq[String] = Seq("commit", "event")
}

abstract class DiffArchDelayedUpdate(numRegs: Int)
Expand All @@ -318,11 +319,13 @@ class DiffArchFpDelayedUpdate extends DiffArchDelayedUpdate(32) {
class DiffArchFpRegState extends ArchIntRegState with DifftestBundle {
override val desiredCppName: String = "regs_fp"
override val desiredOffset: Int = 2
override val updateDependency: Seq[String] = Seq("commit", "event")
}

class DiffArchVecRegState extends ArchVecRegState with DifftestBundle {
override val desiredCppName: String = "regs_vec"
override val desiredOffset: Int = 4
override val updateDependency: Seq[String] = Seq("commit", "event")
}

class DiffVecCSRState extends VecCSRState with DifftestBundle {
Expand Down

0 comments on commit 85823eb

Please sign in to comment.