2017-05-03 22 views
3

我想從存儲在scala變量中的spec中生成Module IO接口。從列表中生成鑿子模塊IO接口

我想產生這樣的類定義:

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,並使用評估它的一些反射能力在斯卡拉。有沒有人這樣做,有一個例子來說明?

回答

1

看看Record(Bundle的父類)。他們更高級一些,因爲你必須實現元素(而不是在Bundle中爲你進行反射),你必須實現cloneType。

有一個example in the Chisel tests