如何软重置凿子计数器
How to soft reset Chisel Counter
我在我的逻辑中使用了凿子计数器,并且希望能够在清除输入信号时也将其重置。
我怎样才能做到这一点 ?
我在想这样的事情:
withReset(reset || io.clr) {val (count,wrap) = Counter(io.valid,512)}
我对此的问题(除了丑陋之外)是 val 名称在 withReset 的范围之外不可用。
有更好的方法吗?
如何尝试分配 0.U
计数器的内部值,我该怎么做?
withReset
returns the last expression in the block,所以你可以这样写:
val (count, wrap) = withReset(reset.asBool || io.clr)(Counter(io.valid,512))
请注意,我将 .asBool
添加到 reset
,因为在 import chisel3._
中,val reset
具有抽象类型 Reset
。有关详细信息,请参阅 Chisel website docs on Reset
。
我认为以上是最好的方法,但您也可以使用 @chiselName
macro 允许 Chisel 在范围内命名 vals:
import chisel3.experimental.chiselName
@chiselName
class MyModule extends Module {
...
withReset(reset || io.clr) {val (count,wrap) = Counter(io.valid,512)}
// ^ these ^ will now get named
}
请注意,我们正在努力在未来几周内将 @chiselName
的更好版本纳入 3.4.0
版本,但 @chiselName
暂时可用。
我在我的逻辑中使用了凿子计数器,并且希望能够在清除输入信号时也将其重置。 我怎样才能做到这一点 ? 我在想这样的事情:
withReset(reset || io.clr) {val (count,wrap) = Counter(io.valid,512)}
我对此的问题(除了丑陋之外)是 val 名称在 withReset 的范围之外不可用。
有更好的方法吗?
如何尝试分配 0.U
计数器的内部值,我该怎么做?
withReset
returns the last expression in the block,所以你可以这样写:
val (count, wrap) = withReset(reset.asBool || io.clr)(Counter(io.valid,512))
请注意,我将 .asBool
添加到 reset
,因为在 import chisel3._
中,val reset
具有抽象类型 Reset
。有关详细信息,请参阅 Chisel website docs on Reset
。
我认为以上是最好的方法,但您也可以使用 @chiselName
macro 允许 Chisel 在范围内命名 vals:
import chisel3.experimental.chiselName
@chiselName
class MyModule extends Module {
...
withReset(reset || io.clr) {val (count,wrap) = Counter(io.valid,512)}
// ^ these ^ will now get named
}
请注意,我们正在努力在未来几周内将 @chiselName
的更好版本纳入 3.4.0
版本,但 @chiselName
暂时可用。