gpt4 book ai didi

chisel - RegEnable 向量

转载 作者:行者123 更新时间:2023-12-04 01:51:07 32 4
gpt4 key购买 nike

寻找有关如何将 RegEnable 用作向量的示例/建议。此外,我想控制输入和使能信号成为 Vector 中寄存器索引的函数。

首先,我如何声明 RegEnable() 的 Vector,其次如何迭代它并连接输入和启用。在 RegEnable() 情况下,声明和连接是在同一语句中进行的。像这样的东西:

for (j <- 0 until len) {
val pipe(j) = RegEnable(in(j),en(j))
}

以上代码无法编译。 &en 中还有向量或位选择

最佳答案

对于这种类型的东西,使用 RegEnable 可能会容易得多构建一个Seq[T <: Data]然后构造一个Vec出于那个。 Vec object 有两个主要的 apply 方法:可变参数和 seq。 For your own reference, take a look at the Chisel Vec object API documentation .

以下完整示例构建,但相关部分是 val pipeval pipe2线。您可以使用 map 来执行此操作或 for/yield .

import chisel3._

import chisel3.util.RegEnable
import chisel3.iotesters
import chisel3.experimental.MultiIOModule

class Example(len: Int) extends MultiIOModule {
val in = Seq.fill(len)(IO(Input(UInt(1.W))))
val en = Seq.fill(len)(IO(Input(Bool())))

val mySeq: Seq[Data] = (0 until len).map( j => RegEnable(in(j), en(j)) )
val pipe = Vec(mySeq)

val mySeq2: Seq[Data] = for (j <- 0 until len) yield ( RegEnable(in(j), en(j)) )
val pipe2 = Vec(mySeq2)
}

关于chisel - RegEnable 向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53095845/

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