【发布时间】:2020-06-15 12:16:21
【问题描述】:
您可能知道 Verilog 中的“输出 reg”,非常有用的功能。
但是在 Chisel 中我找不到如何做类似的事情。当我需要寄存器输出时,我应该这样做:
package filter
import chisel3._
class TestReg extends Module {
val io = IO( new Bundle {
val din = Input(SInt(32.W))
val ena = Input(Bool())
val dout = Output(SInt())
})
val dout = RegInit(0.S(32.W))
when (io.ena) {
dout := io.din + 77.S
}
io.dout <> dout
}
是否有更“短”的方式来创建输出 reg?
我正在寻找的是在 IO 包中定义 Reg 并将其写入寄存器
像这样的:
class TestReg extends Module {
val io = IO( new Bundle {
val din = Input(SInt(32.W))
val ena = Input(Bool())
val dout = Output(RegInit(0.S(32.W)))
})
when (io.ena) {
io.dout := io.din + 77.S
}
}
【问题讨论】:
标签: hdl chisel register-transfer-level