如何调用内部定义的变量 withClockAndReset

How to call the variable defined inside withClockAndReset

我正在凿子中使用多个时钟。

在chisel3中,我写了如下代码

withClockAndReset(A_clk, A_rst) {
    val data_a = RegInit(0.U(4.W))
}
withClockAndReset(B_clk, B_rst) {
    val data_b = RegInit(0.U(4.W))
}
data_b := data_a
data_a := io.data

编译器报告找不到变量data_a。 变量data_a定义在withClockAndReset里面,我不能在外面使用这个变量

我能做什么?

尝试:

val data_a = withClockAndReset(A_clk, A_rst) {
    RegInit(0.U(4.W))
}

问题是您在单独的范围内定义 val

无论 withClockAndReset 的第二个参数列表(什么放在 { \* ... *\ })return 中。因此,您可以将其用于 return 您在另一个 clock/reset 范围内构造的寄存器、模块等。