package injecting
Type Members
-
case class
InjectStatement(module: ModuleTarget, s: Statement, modules: Seq[DefModule], annotations: Seq[Annotation]) extends SingleTargetAnnotation[ModuleTarget] with Product with Serializable
Contains all information needed to inject statements into a module
Contains all information needed to inject statements into a module
Generated when a InjectingAspect is consumed by a AspectPhase Consumed by InjectingTransform
- module
Module to inject code into at the end of the module
- s
Statements to inject
- modules
Additional modules that may be instantiated by s
- annotations
Additional annotations that should be passed down compiler
-
case class
InjectingAspect[T <: RawModule, M <: RawModule](selectRoots: (T) ⇒ Iterable[M], injection: (M) ⇒ Unit)(implicit tTag: scala.reflect.api.JavaUniverse.TypeTag[T]) extends Aspect[T] with Product with Serializable
Aspect to inject Chisel code into a module of type M
Aspect to inject Chisel code into a module of type M
- T
Type of top-level module
- M
Type of root module (join point)
- selectRoots
Given top-level module, pick the instances of a module to apply the aspect (root module)
- injection
Function to generate Chisel hardware that will be injected to the end of module m Signals in m can be referenced and assigned to as if inside m (yes, it is a bit magical)
- tTag
Needed to prevent type-erasure of the top-level module type
-
class
InjectingTransform extends Transform
Appends statements contained in InjectStatement annotations to the end of their corresponding modules
Appends statements contained in InjectStatement annotations to the end of their corresponding modules
Implemented with Chisel Aspects and the chisel3.aop.injecting library
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 typesBundle
andVec
.The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.
Utility objects and methods are found in the
util
package.The
testers
package defines the basic interface for chisel testers.