chisel - 从列表生成 Chisel 模块 IO 接口(interface)

标签 chisel

我想从存储在 scala 变量中的规范生成模块 IO 接口(interface)。

我想生成这个类定义:

class AddIfc extends Module {
   val io = IO(new Bundle {
     val a = Input(UInt(8.W))
     val b = Input(UInt(8.W))
     val o = Output(UInt(8.W))
   })
}

来自元组列表之类的内容:

List( ("a", "in", 8), ("b", "in", 8), ("o", "out", 8))

我可以想象构建一个 AST 并使用 scala 中的一些反射功能对其进行评估。有没有人这样做过并有一个例子可以展示?

最佳答案

看看Record (Bundle 的父类)。它们更高级一些,因为您必须实现元素(而不是反射在 Bundle 中为您完成),并且您必须实现cloneType。

有一个example in the Chisel tests .

关于chisel - 从列表生成 Chisel 模块 IO 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43768561/

相关文章:

scala - Rebased 并面临 Scala 依赖问题

scala - 使用 sbt 构建凿子时,如何关闭进度条等以便输出干净?

chisel - 如何遍历 Chisel (regmap) 中类似的寄存器定义

chisel - 如何在chisel中自由给vec类型变量赋值?

riscv - 如何在 Chisel 中做出断言只是警告而不是停止模拟

chisel - 凿子可以将 printf 实现到文件吗?

hdl - 使用 Chisel 进行正式验证

scala - 凿子 "Enum(UInt(), 5)"失败

chisel - 在测试仪中使用多个时钟

Chisel在使用verilator进行模拟时随机初始化寄存器值