layer
This object contains Chisel language features for creating layers. Layers are collections of hardware that are not always present in the circuit. Layers are intended to be used to hold verification or debug code.
Attributes
- Source
- Layer.scala
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
layer.type
Members list
Type members
Classlikes
Enumeration of different application binary interfaces (ABIs) for how to enable layers. These are implementations of the FIRRTL ABI Specification.
Enumeration of different application binary interfaces (ABIs) for how to enable layers. These are implementations of the FIRRTL ABI Specification.
Attributes
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ABI.type
Attributes
- Companion
- trait
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
BlockReturnHandler.type
A type class that describes how to post-process the return value from a layer block.
A type class that describes how to post-process the return value from a layer block.
Attributes
- Companion
- object
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Source
- Layer.scala
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait OutputDirBehaviorclass Objecttrait Matchableclass AnyShow all
Attributes
- Source
- Layer.scala
- Supertypes
-
trait Singletontrait Producttrait Mirrortrait Serializabletrait Producttrait Equalstrait OutputDirBehaviorclass Objecttrait Matchableclass AnyShow all
- Self type
-
DefaultOutputDir.type
Attributes
- Source
- Layer.scala
- Supertypes
-
trait Producttrait Equalsclass ChiselExceptionclass Exceptionclass Throwabletrait Serializableclass Objecttrait Matchableclass AnyShow all
A layer declaration.
A layer declaration.
Value parameters
- _parent
-
the parent layer, if any
- convention
-
how this layer should be lowered
- outputDirBehavior
-
an optional user-provided output directory for this layer
Attributes
- Companion
- object
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
- Self type
-
Singleton
Attributes
- Companion
- class
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Layer.type
Attributes
- Companion
- trait
- Source
- Layer.scala
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
-
LayerConfig.type
Attributes
- Companion
- object
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Attributes
- Source
- Layer.scala
- Supertypes
-
trait Singletontrait Producttrait Mirrortrait Serializabletrait Producttrait Equalstrait OutputDirBehaviorclass Objecttrait Matchableclass AnyShow all
- Self type
-
NoOutputDir.type
Attributes
- Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Deprecated classlikes
Enumerations of different optional layer conventions. A layer convention says how a given layer should be lowered to Verilog.
Enumerations of different optional layer conventions. A layer convention says how a given layer should be lowered to Verilog.
Attributes
- Deprecated
-
[Since version Chisel 7.0.0]`Convention` is being removed in favor of `LayerConfig` - Source
- Layer.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Convention.type
Value members
Concrete methods
Add a layer and all of its parents to the Builder. This lets the Chisel know that this layer should be emitted into FIRRTL text.
Add a layer and all of its parents to the Builder. This lets the Chisel know that this layer should be emitted into FIRRTL text.
This API can be used to guarantee that a design will always have certain layers defined. By default, layers are only included in the FIRRTL text if they have layer block users.
Attributes
- Source
- Layer.scala
Create a new layer block. This is hardware that will be enabled collectively when the layer is enabled.
Create a new layer block. This is hardware that will be enabled collectively when the layer is enabled.
This function automatically creates parent layers as the layer of the current layerblock is an ancestor of the desired layer. The ancestor may be the current layer which causes no layer block to be created. (This is not a proper ancestor requirement.)
By default, the return of the layer block will be either a subtype of Data or Unit, depending on the thunk provided. If the thunk (the hardware that should be constructed inside the layer block) returns a Data, then this will either return a Wire of layer-colored Probe type if a layer block was created or the underlying Data if no layer block was created. If the thunk returns anything else, this will return Unit. This is controlled by the implicit argument tc and may be customized by advanced users to do other things.
Value parameters
- layer
-
the layer this block is associated with
- skipIfAlreadyInBlock
-
if true, then this will not create a layer if this
blockis already inside another layerblock - skipIfLayersEnabled
-
if true, then this will not create a layer if any layers have been enabled for the current module block if already inside a layer block
- sourceInfo
-
a source locator
- thunk
-
the Chisel code that goes into the layer block
Attributes
- Returns
-
either a subtype of Data or Unit depending on the
thunkreturn type - Throws
-
java.lang.IllegalArgumentException
if the layer of the currnet layerblock is not an ancestor of the desired layer
- Source
- Layer.scala
API that will cause any calls to block in the thunk to not create new layer blocks.
API that will cause any calls to block in the thunk to not create new layer blocks.
This is an advanced, library-writer's API that is not intended for broad use. You may consider using this if you are writing an API which automatically puts code into layer blocks and you want to provide a way for a user to completely opt out of this.
Value parameters
- thunk
-
the Chisel code that should not go into a layer block
Attributes
- Source
- Layer.scala
Call this function from within a Module body to enable this layer globally for that module.
Call this function from within a Module body to enable this layer globally for that module.
Attributes
- Source
- Layer.scala
Throw exception if elideBlocks is active.
Throw exception if elideBlocks is active.
Value parameters
- msg
-
when non-empty, prefixes (with ": ") message used in thrown exception.
Attributes
- Source
- Layer.scala