Зубило тест - внутренние сигналы - PullRequest
1 голос
/ 11 декабря 2019

Я хотел бы проверить свой код, поэтому я делаю тестовый стенд. Я хотел знать, можно ли проверить внутренние сигналы, например, значение регистра state в этом примере, или просмотр возможен только для ввода-вывода

class MatrixMultiplier(matrixSize : UInt, cellSize : Int) extends Module {
  val io = IO(new Bundle {
    val writeEnable = Input(Bool())
    val bufferSel = Input(Bool())
    val writeAddress = Input(UInt(14.W)) //(matrixSize * matrixSize)
    val writeData = Input(SInt(cellSize.W))
    val readEnable = Input(Bool())
    val readAddress = Input(UInt(14.W)) //(matrixSize * matrixSize)
    val readReady = Output(Bool())
    val readData = Output(SInt((2 * cellSize).W))
  })

  val s_idle :: s_writeMemA :: s_writeMemB :: s_multiplier :: s_ready :: s_readResult :: Nil = Enum(6)
  val state = RegInit(s_idle)
...

и дляTestBench:

class MatrixUnitTester(matrixMultiplier: MatrixMultiplier) extends PeekPokeTester(matrixMultiplier) { //(5.asUInt(), 32.asSInt())

    println("State is: " + peek(matrixMultiplier.state).toString) // is it possible to have access to state ?
    poke(matrixMultiplier.io.writeEnable, true.B)
    poke(matrixMultiplier.io.bufferSel, false.B)
    step(1)
...

РЕДАКТИРОВАТЬ: ОК, с VCD + GTKWave можно графически увидеть эти переменные;)

...