gpt4 book ai didi

chisel - 如何避免 Chisel 测试仪中的多重设计细节

转载 作者:行者123 更新时间:2023-12-02 00:59:06 30 4
gpt4 key购买 nike

在 Chisel iotesters 中,我们将创建 Chisel 设计的工厂传递给测试仪,例如() => 新建DUT,如下:

"Test" should "simulate" in {
chisel3.iotesters.Driver.execute(arguments, () => new DUT) { c => new MyPeekPokeTester(c) } should be (true)
}

如果我有很多测试和大型设计,那么每次测试都会进行设计细化,从而导致运行时间很长。由于对于许多测试而言,可能通过的是完全相同的设计,因此出现了一个合乎逻辑的问题 - 是否有办法在多个测试中重用精心设计的设计(DUT.fir 或 DUT.v,具体取决于后端)?如果在每次测试开始时都会调用重置,它应该不会导致功能问题。

最佳答案

我建议构建一个聚合大量测试人员的 PeekPokeTester。有点像

class MyMegaPeekPokeTester(c: MyDut) extends PeekPokeTester(c) {
new MyPeekPokeTester1(c) &&
new MyPeekPokeTester2(c) &&
...
new MyPeekPokeTesterN(c)
}

您可以通过多种方式对此进行加糖(将类放入列表中,以编程方式在它们之间调用重置等)。

我们正在努力重构和现代化测试人员,这个问题正在考虑之中。一个复杂的问题是 PeekPokeTesters 需要访问 dut 的实例,以便提供对 IO 的类型安全访问。很难序列化或以其他方式保存此信息。

关于chisel - 如何避免 Chisel 测试仪中的多重设计细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51959837/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com