Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation: The current implementation of the
axi_cdcmodule has the limitation that it does not allow for one-sided 'warm' resets of the module. This means that theaxi_cdcmodule can "only" be used as a clock domain crossing, but not as a reset domain or power domain crossing with one-sided resets/power-downs.To get rid of this limitation, this PR adds an isolatable CDC module
axi_cdc_isolatable. This new module allows for one-sided resets or power-downs using the isolation signals available on both sides of the CDC crossing. These signals can be used to gracefully separate the two sides of the CDC and reset or turn them off individually, without facing the problem of the CDC FIFO pointers only being reset on one sideb only. Details on these signals can be found in the module description.The PR adds the following modules:
axi_cdc_isolatable: Isolatable variant of theaxi_cdc, allowing for one-sided resets or power-downs.axi_cdc_src_clearable: Clearable variant of the 'axi_cdc_srcusing the clearable CDC FIFO instead of the 'normal' CDC FIFOaxi_cdc_dst_clearable: Clearable variant of the 'axi_cdc_dstusing the clearable CDC FIFO instead of the 'normal' CDC FIFOAdditionally, the PR adds a testbench for the
axi_cdc_isolatablemodule, which was adapted from theaxi_cdctestbench. The testbench tests the one-sided resets for the src and the dst side.