Chisel 在凿子中,如何判断模块包是否实际生成为verilog
在凿子中,如果我这样定义一个模块的包Chisel 在凿子中,如何判断模块包是否实际生成为verilog,chisel,Chisel,在凿子中,如果我这样定义一个模块的包 class tmp extends Module{ val io = IO(new Bundle { val enable = Input(Bool()) val data = Input(UInt(4.W)) val out = Output(UInt(4.W)) val tmp = Output(UInt(32.W)) }) io.out := RegEnable(io.data, io.enable)
class tmp extends Module{
val io = IO(new Bundle {
val enable = Input(Bool())
val data = Input(UInt(4.W))
val out = Output(UInt(4.W))
val tmp = Output(UInt(32.W))
})
io.out := RegEnable(io.data, io.enable)
io.tmp := RegEnable(!io.data, io.enable)
}
然后我在上面的模块中调用它
class q extends Module{
val io = IO(new Bundle{
val in = Input(UInt(4.W))
val out = Output(UInt(32.W))
})
val q = Module(new tmp)
q.io.enable := true
q.io.data := io.in
io.out := q.io.out
}
tmp模块的tmp包将不会生成为verilog。
我怎么知道像tmp这样的捆绑包是在没有查看verilog的情况下生成的。这是因为您的代码编写方式。实际上,您只是创建了另一个类来发送输入并接收tmp模块的输出。因此,凿子将tmp的输入和输出优化为一束由q模块的输入和输出引脚驱动的导线。如果您想保留tmp模块,那么我建议您不要从任何其他类别驱动模块的io引脚。相反,只要保持这种方式,一旦生成verilog,您就可以编写一个测试台来驱动tmp模块的io引脚