Skip to content

Conversation

seldridge
Copy link
Member

Add a second control parameter to layer.block that will cause no layer to be created if the current module has any layers enabled. This is intended as a safe default for library writers that are putting operations into layer blocks. Certain verification operations do not work well with other verification operations (e.g., force and assert) due to interactions where layers may result in the creation of multiple always blocks. This option allows operations to be placed in the body of a testbench (the likely module that has layers enabled) and avoid any of the interactions of disjoint always blocks.

Release Notes

Add skipIfLayersEnabled parameter to layer.block which will elide the block if any layers are currently enabled. This is an advanced library-writer API that only comes up when a library writer wants to provide default layers for operations, but wants to allow the user to override this default choice.

Add a second control parameter to `layer.block` that will cause no layer
to be created if the current module has any layers enabled.  This is
intended as a safe default for library writers that are putting operations
into layer blocks.  Certain verification operations do not work well with
other verification operations (e.g., force and assert) due to interactions
where layers may result in the creation of multiple always blocks.  This
option allows operations to be placed in the body of a testbench (the
likely module that has layers enabled) and avoid any of the interactions
of disjoint always blocks.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge added the Feature New feature, will be included in release notes label Aug 13, 2024
@seldridge seldridge merged commit 1140c7e into main Aug 13, 2024
18 checks passed
@seldridge seldridge deleted the dev/seldridge/add-skipIfLayersEnabled-to-layer.block branch August 13, 2024 03:33
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