gpt4 book ai didi

chisel - 如何写入条件输出

转载 作者:行者123 更新时间:2023-12-02 03:21:21 29 4
gpt4 key购买 nike

在我的代码中,我定义了条件输出:

class EccGenerate[D <: Data](data: D, doubleBit : Boolean = true) extends Module {
val eccBits = calcCodeBits(data.getWidth)

val io = IO(new Bundle {
val in = Input(data.cloneType)
val out = Output(UInt(eccBits.W))
val par = if (doubleBit) Some(Output(Bool())) else None
})

尝试在 par 输出上使用 := 运算符会失败,因为它并不总是输出。使用条件输入时,我会使用 io.par.get() 来检索输入的当前值,是否有相应的原语、运算符或函数调用可以用来设置条件输出的值?

最佳答案

问题是您无法连接到 par,因为它的类型是 Option[Bool] 并且 := 未定义对于选项。如果选项包含某些内容,您需要将其解压并分配给其中的 Bool

执行此操作的函数式编程方法是:

io.par.foreach(_ := foo)

如果您愿意,您也可以更详细地描述它:

io.par match {
case Some(a) => a := foo
case None =>
}

if 语句也可以工作:

if (par.nonEmpty) {
io.par.get := foo
}

关于chisel - 如何写入条件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60234116/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com