Skip to content

Conversation

seldridge
Copy link
Member

Add an API, chisel3.layer.elideBlocks that will cause any calls to create a layer block inside its thunk to not be created. This is an advanced API intended to be used in situations where a library has to avoid additional layer block creation.

This is specifically being added because we have an API, backed by an in-tree CIRCT transforms, which can create bound modules and does so after layers are converted to modules. While this API is intended to be replaced with layers, initially it needs to have a way to prevent layers from being added to the design to prevent creation of a bind-under-bind in the output.

I expect this API to be short lived...

Release Notes

Add chisel3.layer.elideBlocks API that can be used to prevent the creation of additional layer blocks. This is an advanced, library writer's API that is not intended for general use.

Add an API, `chisel3.layer.elideBlocks` that will cause any calls to
create a layer block inside its thunk to _not_ be created.  This is an
advanced API intended to be used in situations where a library has to
avoid additional layer block creation.

This is specifically being added because we have an API, backed by an
in-tree CIRCT transforms, which can create bound modules and does so
_after_ layers are converted to modules.  While this API is intended to be
replaced with layers, initially it needs to have a way to prevent layers
from being added to the design to prevent creation of a bind-under-bind in
the output.

I expect this API to be short lived...

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge added the Feature New feature, will be included in release notes label Aug 14, 2024
@seldridge seldridge merged commit af1ef0f into main Aug 14, 2024
17 of 18 checks passed
@seldridge seldridge deleted the dev/seldridge/add-elideBlocks-API branch August 14, 2024 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature, will be included in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant