在chisel-template test example中,有一些用于解耦的方法的初始化调用:
class GCDSpec extends FreeSpec with ChiselScalatestTester {
"Gcd should calculate proper greatest common denominator" in {
test(new DecoupledGcd(16)) { dut =>
dut.input.initSource()
dut.input.setSourceClock(dut.clock)
dut.output.initSink()
dut.output.setSinkClock(dut.clock)
//...我找不到解释这些方法用途的文档。为什么我们必须对解耦的输入进行“初始化源代码或接收器”?
api documentation中没有相关的文档。
发布于 2021-08-22 00:40:49
这两个init方法执行以下操作:dut.input.initSource()将输入解耦的有效信号设置为false.B,dut.output.initSink()将输出解耦的就绪信号设置为false.B,我认为您可以手动完成这些操作。时钟设置调用做了一些更复杂的事情,以便协调跨fork调用的时钟处理,这些调用通常与enqueue和dequeue系列函数一起使用。这可能可以从but中推断出来,但是检测decoupled接口目前有点困难。
对这些函数样板调用可以更简洁地指定为
dut.input.initSource().setSourceClock(dut.clock)
dut.output.initSink().setSinkClock(dut.clock)由于initSource和initSync返回端口解耦的端口
至于文档,这对于解耦的帮助器来说绝对应该得到改进。我已经在现有的documentation issue中添加了一条注释来执行此操作
https://stackoverflow.com/questions/68870630
复制相似问题