package hierarchy
- Source
- package.scala
- Alphabetic
- By Inheritance
- hierarchy
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type Definition[P] = hierarchy.core.Definition[P]
- type Hierarchy[P] = hierarchy.core.Hierarchy[P]
- trait InsideHierarchyLibraryExtension extends AnyRef
- Annotations
- @implicitNotFound()
- type Instance[P] = hierarchy.core.Instance[P]
- trait InstantiableClone[T <: IsInstantiable] extends IsClone[T]
- Note
If we are cloning a non-module, we need another object which has the proper _parent set!
- type IsInstantiable = hierarchy.core.IsInstantiable
- type IsLookupable = hierarchy.core.IsLookupable
- macro class instantiable extends internal.instantiable
Classes or traits which will be used with the Definition + Instance api should be marked with the @instantiable annotation at the class/trait definition.
Classes or traits which will be used with the Definition + Instance api should be marked with the @instantiable annotation at the class/trait definition.
- Annotations
- @compileTimeOnly("macro annotation could not be expanded (since these are experimental, you must enable them with -Ymacro-annotations)")
@instantiable class MyModule extends Module { ... } val d = Definition(new MyModule) val i0 = Instance(d) val i1 = Instance(d)
Example: - class public extends internal.public
Classes marked with @instantiable can have their vals marked with the @public annotation to enable accessing these values from a Definition or Instance of the class.
Classes marked with @instantiable can have their vals marked with the @public annotation to enable accessing these values from a Definition or Instance of the class.
Only vals of the the following types can be marked @public:
- IsInstantiable 2. IsLookupable 3. Data 4. BaseModule 5. Iterable/Option containing a type that meets these requirements 6. Basic type like String, Int, BigInt etc.
@instantiable class MyModule extends Module { @public val in = IO(Input(UInt(3.W))) @public val out = IO(Output(UInt(3.W))) .. } val d = Definition(new MyModule) val i0 = Instance(d) val i1 = Instance(d) i1.in := i0.out
Example:
Value Members
- val Definition: hierarchy.core.Definition.type
- val Hierarchy: hierarchy.core.Hierarchy.type
- val Instance: hierarchy.core.Instance.type
- object LibraryHooks
This is the documentation for Chisel.
Package structure
The chisel3 package presents the public API of Chisel. It contains the concrete core types
UInt,SInt,Bool,FixedPoint,Clock, andReg, the abstract typesBits,Aggregate, andData, and the aggregate typesBundleandVec.The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.
Utility objects and methods are found in the
utilpackage.The
testerspackage defines the basic interface for chisel testers.