根据凿子数据类型的条件,凿子中可能有一个while循环吗?

问题描述 投票:2回答:1

这是我要完成的工作:我有一个Chisel加速器,该加速器调用另一个Chisel加速器并传递一个值。我希望第二个循环中有一个while循环,其中条件部分地基于输入值。这是一些示例代码:

class Module1 extends Module {
    val in = 0.U
    val Module2Module = Module2()
    Module2Module.io.in := in
}

class Module2 extends Module {
    val io = IO(new Bundle {
        val in = Input(Reg(UInt))
    }
    val test = 0.U

    while (test < io.in) {

    }
}

我收到“ test

实现此目标的正确方法是什么?是否通过将信号发送到模块1或从模块1发送到模块2来指示加速器尚未完成而仅在加速器完成时继续运行?如果是这样,如果您有多个功能,每个功能都在不同的模块中,这是否会很快变得复杂?

scala while-loop hdl chisel
1个回答
0
投票

您将需要使用由Reg系列构造函数创建的寄存器,并通过whenelsewhenotherwise控制流。我强烈建议您查看chisel bootcamp,并逐步进行到3.2节。硬件和软件具有相似之处,但也具有深刻的实现差异。您将在训练营中得到很好的例子

© www.soinside.com 2019 - 2024. All rights reserved.