2
若干IO接口的構造實現其自己的克隆方法。我研究了Scala中克隆方法的用法,但仍然無法弄清楚爲什麼這樣做。 (我無法找到這些方法的任何明確的使用中隨處設計)使用克隆方法的Sodor處理器集合
若干IO接口的構造實現其自己的克隆方法。我研究了Scala中克隆方法的用法,但仍然無法弄清楚爲什麼這樣做。 (我無法找到這些方法的任何明確的使用中隨處設計)使用克隆方法的Sodor處理器集合
Sodor仍然是目前仍然在打鑽2 clone
在鑿3更名爲cloneType
在Java和Scala從clone
區分開來。 cloneType
爲了實例化的參數化Bundles
新的實例,通常需要通過鑿。例如:
class MyBundle extends Bundle {
val foo = UInt(32.W)
}
class MyParameterizedBundle(width: Int) extends Bundle {
val bar = UInt(width.W)
}
鑿子通常需要從該類的另一個實例創建給定Bundle類的實例。鑿子使用Java反射來做到這一點。如果沒有參數給構造函數,那麼它可以從默認的構造函數實例化對象。但是,它不能從經由反射MyParameterizedBundle的實例確定的width
的值,因此它不能提供給構造的合適參數。這是cloneType
函數的用途。它告訴Chisel如何從一個給定的對象創建一個Bundle的新實例。
我們希望能解決這個疣在未來,但還沒有實現它的時間。最有希望的方式是自動生成通過Scala macro annotationscloneType
。