在单个PeekPoker测试中测试多个实例

时间:2018-03-15 17:10:13

标签: chisel

在测试DUT时,我们将DUT作为Argument传递给Test:

class MAIN_TEST(c:inst1) extends PeekPokerTester(c){....}
Object Main extends App {
iotesters.Driver.execute(args,()=> new inst1()){
   c=> new MAIN_TEST (c)
}
}

是否可以将多个实例传递给测试人员。

class Main_Test(c:inst1,d:inst2) extends PeekPokerTester(c,d){...}

1 个答案:

答案 0 :(得分:0)

目前的答案几乎是:chisel3.iotesters.experimental中有一种不同的测试器方法可以让你写出这样的东西

import chisel3._
import chisel3.iotesters.experimental._

class PlusN(n: Int) extends Module {
  val io = IO(new Bundle {
    val in = Input(UInt(16.W))
    val o1 = Output(UInt(16.W))
  })

  io.o1 := io.in + n.U
}

class ChickSpec extends FlatSpec with PokeTester {
  test(new PlusN(3)) { (t, c) =>

    test(new PlusN(4)) { (tt, cc) =>

      t.poke(c.io.in, 4)
      val o1 = t.peek(c.io.o1)  // This is unsupported at the moment.
      tt.poke(c.io.in, 3)
      tt.expect(c.io.o1, o1)
    }
  }
}

这是你的想法吗?如果是这样,就可以获得执行此操作的分支。正在开发新一代凿子测试技术,这将使这更容易。