fpga: rfnoc: Add BLANK_OUTPUT to FIR filter block's parameters

Original-commit: 8444f84add04f025b7e24855e0ba79446e615e01
This commit is contained in:
Jonathon Pendlum
2022-02-10 18:11:41 -07:00
committed by Wade Fife
parent 01f7f75ca3
commit 83ad8e36ba
3 changed files with 20 additions and 11 deletions
+1 -1
View File
@@ -23,7 +23,7 @@
// COEFFS_VEC - Vector of NUM_COEFFS values each of width COEFF_WIDTH to // COEFFS_VEC - Vector of NUM_COEFFS values each of width COEFF_WIDTH to
// initialize coeffs. Defaults to an impulse. // initialize coeffs. Defaults to an impulse.
// RELOADABLE_COEFFS - Enable (1) or disable (0) reloading coefficients at runtime (via reload bus) // RELOADABLE_COEFFS - Enable (1) or disable (0) reloading coefficients at runtime (via reload bus)
// BLANK_OUTPUT - Disable (1) or enable (0) output when filling internal pipeline // BLANK_OUTPUT - Disable (1) or enable (0) output when initially filling internal pipeline
// SYMMETRIC_COEFFS - Reduce multiplier usage by approx half if coefficients are symmetric // SYMMETRIC_COEFFS - Reduce multiplier usage by approx half if coefficients are symmetric
// SKIP_ZERO_COEFFS - Reduce multiplier usage by assuming zero valued coefficients in // SKIP_ZERO_COEFFS - Reduce multiplier usage by assuming zero valued coefficients in
// DEFAULT_COEFFS are always zero. Useful for halfband filters. // DEFAULT_COEFFS are always zero. Useful for halfband filters.
@@ -29,6 +29,9 @@
// RELOADABLE_COEFFS : Enable (1) or disable (0) reloading // RELOADABLE_COEFFS : Enable (1) or disable (0) reloading
// coefficients at runtime // coefficients at runtime
// //
// BLANK_OUTPUT : Disable (1) or enable (0) output when initially
// filling internal pipeline
//
// SYMMETRIC_COEFFS : Reduce multiplier usage by approximately half // SYMMETRIC_COEFFS : Reduce multiplier usage by approximately half
// if coefficients are symmetric // if coefficients are symmetric
// //
@@ -61,6 +64,7 @@ module rfnoc_block_fir_filter #(
{(COEFF_WIDTH*(NUM_COEFFS-1)){1'b0}} // Zero for remaining coefficients {(COEFF_WIDTH*(NUM_COEFFS-1)){1'b0}} // Zero for remaining coefficients
}, },
parameter RELOADABLE_COEFFS = 1, parameter RELOADABLE_COEFFS = 1,
parameter BLANK_OUTPUT = 1,
parameter SYMMETRIC_COEFFS = 0, parameter SYMMETRIC_COEFFS = 0,
parameter SKIP_ZERO_COEFFS = 0, parameter SKIP_ZERO_COEFFS = 0,
parameter USE_EMBEDDED_REGS_COEFFS = 1 parameter USE_EMBEDDED_REGS_COEFFS = 1
@@ -280,6 +284,7 @@ module rfnoc_block_fir_filter #(
.NUM_COEFFS (NUM_COEFFS), .NUM_COEFFS (NUM_COEFFS),
.COEFFS_VEC (COEFFS_VEC), .COEFFS_VEC (COEFFS_VEC),
.RELOADABLE_COEFFS (RELOADABLE_COEFFS), .RELOADABLE_COEFFS (RELOADABLE_COEFFS),
.BLANK_OUTPUT (BLANK_OUTPUT),
.SYMMETRIC_COEFFS (SYMMETRIC_COEFFS), .SYMMETRIC_COEFFS (SYMMETRIC_COEFFS),
.SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS), .SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS),
.USE_EMBEDDED_REGS_COEFFS (USE_EMBEDDED_REGS_COEFFS) .USE_EMBEDDED_REGS_COEFFS (USE_EMBEDDED_REGS_COEFFS)
@@ -29,6 +29,9 @@
// RELOADABLE_COEFFS : Enable (1) or disable (0) reloading // RELOADABLE_COEFFS : Enable (1) or disable (0) reloading
// coefficients at runtime // coefficients at runtime
// //
// BLANK_OUTPUT : Disable (1) or enable (0) output when initially
// filling internal pipeline
//
// SYMMETRIC_COEFFS : Reduce multiplier usage by approximately half // SYMMETRIC_COEFFS : Reduce multiplier usage by approximately half
// if coefficients are symmetric // if coefficients are symmetric
// //
@@ -58,6 +61,7 @@ module rfnoc_fir_filter_core #(
{(COEFF_WIDTH*(NUM_COEFFS-1)){1'b0}} // Zero for remaining coefficients {(COEFF_WIDTH*(NUM_COEFFS-1)){1'b0}} // Zero for remaining coefficients
}, },
parameter RELOADABLE_COEFFS = 1, parameter RELOADABLE_COEFFS = 1,
parameter BLANK_OUTPUT = 1,
parameter SYMMETRIC_COEFFS = 0, parameter SYMMETRIC_COEFFS = 0,
parameter SKIP_ZERO_COEFFS = 0, parameter SKIP_ZERO_COEFFS = 0,
parameter USE_EMBEDDED_REGS_COEFFS = 1 parameter USE_EMBEDDED_REGS_COEFFS = 1
@@ -171,7 +175,7 @@ module rfnoc_fir_filter_core #(
.NUM_COEFFS (NUM_COEFFS), .NUM_COEFFS (NUM_COEFFS),
.COEFFS_VEC (COEFFS_VEC), .COEFFS_VEC (COEFFS_VEC),
.RELOADABLE_COEFFS (RELOADABLE_COEFFS), .RELOADABLE_COEFFS (RELOADABLE_COEFFS),
.BLANK_OUTPUT (1), .BLANK_OUTPUT (BLANK_OUTPUT),
// Optional optimizations // Optional optimizations
.SYMMETRIC_COEFFS (SYMMETRIC_COEFFS), .SYMMETRIC_COEFFS (SYMMETRIC_COEFFS),
.SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS), .SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS),
@@ -202,7 +206,7 @@ module rfnoc_fir_filter_core #(
.NUM_COEFFS (NUM_COEFFS), .NUM_COEFFS (NUM_COEFFS),
.COEFFS_VEC (COEFFS_VEC), .COEFFS_VEC (COEFFS_VEC),
.RELOADABLE_COEFFS (RELOADABLE_COEFFS), .RELOADABLE_COEFFS (RELOADABLE_COEFFS),
.BLANK_OUTPUT (1), .BLANK_OUTPUT (BLANK_OUTPUT),
// Optional optimizations // Optional optimizations
.SYMMETRIC_COEFFS (SYMMETRIC_COEFFS), .SYMMETRIC_COEFFS (SYMMETRIC_COEFFS),
.SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS), .SKIP_ZERO_COEFFS (SKIP_ZERO_COEFFS),