【发布时间】:2016-10-14 18:17:08
【问题描述】:
Chisel 是否支持设计中的多个时钟?如果我想实现一个异步 fifo,如何在 Chisel 中实现呢?
【问题讨论】:
-
是的,但我自己对细节不太了解。我会先阅读火箭芯片的代码 (github.com/ucb-bar/rocket-chip/blob/master/src/main/scala/util/…)。
Chisel 是否支持设计中的多个时钟?如果我想实现一个异步 fifo,如何在 Chisel 中实现呢?
【问题讨论】:
是的,Chisel 支持设计中的多个时钟。如果要使用异步 fifo,可以导入模块 ChiselUtil,它包含一个异步 fifo: https://github.com/ucb-bar/chisel/blob/master/src/main/scala/ChiselUtil.scala#L599
要更改寄存器的时钟域,请使用 Reg() 的参数时钟:
val s1 = Reg(init = UInt(0), clock = clockB)
在tutorial 第 16 章中查看更多信息。
【讨论】: