Как сделать параллельное тестирование с peekpoketester в chisel3? - PullRequest
1 голос
/ 01 октября 2019

Я хочу написать монитор шины для моего проекта в chisel3 (на самом деле mdio bus ), и мне интересно, возможно ли выполнить эту функцию монитора параллельно «основному» испытательному стенду. Как мы делаем это в cocotb с cocotb.fork () сопрограммой ?

1 Ответ

3 голосов
/ 01 октября 2019

Отсутствует поддержка параллельного тестирования с chisel3.iotesters («Тестеры с долотом»). Тем не менее, существует поддержка параллельного тестирования с новой платформой тестирования: chisel3.testers ("Chisel Testers2") .

Это добавляет поддержку fork, join и parallel конструкций. Краткий пример - проверка очереди путем разветвления как постановки, так и снятия с очереди :

it should "work with a combinational queue" in {
  test(new PassthroughQueue(UInt(8.W))) { c =>
    c.in.initSource()
    c.in.setSourceClock(c.clock)
    c.out.initSink()
    c.out.setSinkClock(c.clock)

    fork {
      c.in.enqueueSeq(Seq(42.U, 43.U, 44.U))
    }.fork {
      c.out.expectDequeueSeq(Seq(42.U, 43.U, 44.U))
    }.join()
  }
}

Дополнительный пример см. В файле chisel-template GcdTesters2.scala.

...