ChiselUtil 中 ShiftRegister 的时钟配置
Clock configuration for ShiftRegister in ChiselUtil
ShiftRegister 是一个有用的函数,可以通过两个触发器将外部信号与主时钟同步:
sync_signal := ShiftRegister(ext_signal, 2)
在这种情况下效果很好。但是有没有办法像这样将它与其他时钟一起使用:
slowClk = Clock(reset=Driver.implicitReset)
sync_signal := ShiftRegister(ext_signal, 2, clock=slowClk)
?
如果您查看 ChiselUtil.scala,您会发现 ShiftRegister 对象没有时钟输入,因此它不能包含您所建议的功能。
修改或扩展 class(根据 Chisel 手册第 18 章)将同步时钟作为输入将很容易。
有了 Chisel3,现在可以使用 withClock(){}
我们只需要用 withClock 包围 ShiftRegister() 调用:
withClock(clock) {
led := ShiftRegister(blinkled, 4)
}
另请参阅 Chisel3 wiki 中的多时钟域章节。
ShiftRegister 是一个有用的函数,可以通过两个触发器将外部信号与主时钟同步:
sync_signal := ShiftRegister(ext_signal, 2)
在这种情况下效果很好。但是有没有办法像这样将它与其他时钟一起使用:
slowClk = Clock(reset=Driver.implicitReset)
sync_signal := ShiftRegister(ext_signal, 2, clock=slowClk)
?
如果您查看 ChiselUtil.scala,您会发现 ShiftRegister 对象没有时钟输入,因此它不能包含您所建议的功能。
修改或扩展 class(根据 Chisel 手册第 18 章)将同步时钟作为输入将很容易。
有了 Chisel3,现在可以使用 withClock(){}
我们只需要用 withClock 包围 ShiftRegister() 调用:
withClock(clock) {
led := ShiftRegister(blinkled, 4)
}
另请参阅 Chisel3 wiki 中的多时钟域章节。