Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions cdc/rtl/br_cdc_reg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,17 @@ module br_cdc_reg #(
// ensuring a low probability of metastability.
// The recommended value is 3 for most technology nodes.
// Do not decrease below that unless you have a good reason.
parameter int NumSyncStages = 3
parameter int NumSyncStages = 3,
// If 1, cover that the push side experiences backpressure.
// If 0, assert that there is never backpressure.
parameter bit EnableCoverPushBackpressure = 1,
// If 1, assert that push_valid is stable when backpressured.
parameter bit EnableAssertPushValidStability = EnableCoverPushBackpressure,
// If 1, assert that push_data is stable when backpressured.
parameter bit EnableAssertPushDataStability = EnableAssertPushValidStability,
// If 1, then assert there are no valid bits asserted and that the FIFO is
// empty at the end of the test.
parameter bit EnableAssertFinalNotValid = 1
) (
// Push-side interface
input logic push_clk,
Expand Down Expand Up @@ -64,7 +74,11 @@ module br_cdc_reg #(
// Push side
br_cdc_reg_push #(
.Width(Width),
.RegisterResetActive(RegisterResetActive)
.RegisterResetActive(RegisterResetActive),
.EnableCoverPushBackpressure(EnableCoverPushBackpressure),
.EnableAssertPushValidStability(EnableAssertPushValidStability),
.EnableAssertPushDataStability(EnableAssertPushDataStability),
.EnableAssertFinalNotValid(EnableAssertFinalNotValid)
) br_cdc_reg_push (
.clk(push_clk), // ri lint_check_waive SAME_CLOCK_NAME
.rst(push_rst),
Expand Down
12 changes: 10 additions & 2 deletions cdc/rtl/internal/br_cdc_reg_push.sv
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@

module br_cdc_reg_push #(
parameter int Width = 1,
parameter bit RegisterResetActive = 1
parameter bit RegisterResetActive = 1,
parameter bit EnableCoverPushBackpressure = 1,
parameter bit EnableAssertPushValidStability = EnableCoverPushBackpressure,
parameter bit EnableAssertPushDataStability = EnableAssertPushValidStability,
parameter bit EnableAssertFinalNotValid = 1
) (
input logic clk,
input logic rst,
Expand All @@ -25,7 +29,11 @@ module br_cdc_reg_push #(
// Integration Checks
br_flow_checks_valid_data_intg #(
.NumFlows(1),
.Width(Width)
.Width(Width),
.EnableCoverBackpressure(EnableCoverPushBackpressure),
.EnableAssertValidStability(EnableAssertPushValidStability),
.EnableAssertDataStability(EnableAssertPushDataStability),
.EnableAssertFinalNotValid(EnableAssertFinalNotValid)
) br_flow_checks_valid_data_intg (
.clk,
.rst,
Expand Down
Loading