Instantiate
chisel3.experimental.hierarchy.Instantiate
object Instantiate
Create an Instance of a Module
Acts as a nicer API wrapping Definition and Instance. Used in a similar way to traditional module instantiation using Module(...).
val inst0: Instance[MyModule] = Instantiate(new MyModule(arg1, arg2))
// Note that you cannot pass arguments by name (this will not compile)
val inst1 = Instantiate(new OtherModule(n = 3))
// Instead, only pass arguments positionally
val inst2 = Instantiate(new OtherModule(3))
==Limitations==
- The caching does not work for Modules that are inner classes. This is due to the fact that the WeakTypeTags for instances will be different and thus will not hit in the cache.
- Passing parameters by name to module constructors is not supported.
- User-defined types that wrap up Data will use the default Data equality and hashCode implementations which use referential equality, thus will not hit in the cache.
Attributes
- Source
- Instantiate.scala
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Instantiate.type
In this article