从列表生成 Chisel 模块 IO 接口
Generating Chisel Module IO Interface From a List
我想从存储在 Scala 变量中的规范生成模块 IO 接口。
我想生成这个 class 定义:
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 的父 class)。它们更高级一些,因为您必须实现元素(而不是反射在 Bundle 中为您完成),并且您必须实现 cloneType。
我想从存储在 Scala 变量中的规范生成模块 IO 接口。
我想生成这个 class 定义:
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 的父 class)。它们更高级一些,因为您必须实现元素(而不是反射在 Bundle 中为您完成),并且您必须实现 cloneType。