Skip to content

Commit 71e6c74

Browse files
committed
xwb_fofb_shaper_filt.vhd: optimize registers usage
Don't instantiate registers for the coefficients of non-instantiated biquads. Handle their (improper?) access by returning 0 to readings and doing nothing to writings. This commit frees 360 coefficients registers.
1 parent c86a1ea commit 71e6c74

File tree

3 files changed

+62
-49
lines changed

3 files changed

+62
-49
lines changed

hdl/modules/fofb_shaper_filt/xwb_fofb_shaper_filt.vhd

+44-37
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ ARCHITECTURE behave OF xwb_fofb_shaper_filt IS
139139
(OTHERS => c_WB_FOFB_SHAPER_FILT_REGS_COEFFS_O_IFC_0s);
140140

141141
SIGNAL coeffs : t_fofb_shaper_filt_coeffs(g_CHANNELS-1 DOWNTO 0)(
142-
c_MAX_ABI_BIQUADS-1 DOWNTO 0)(
142+
g_NUM_BIQUADS-1 DOWNTO 0)(
143143
b0(g_COEFF_INT_WIDTH-1 DOWNTO -g_COEFF_FRAC_WIDTH),
144144
b1(g_COEFF_INT_WIDTH-1 DOWNTO -g_COEFF_FRAC_WIDTH),
145145
b2(g_COEFF_INT_WIDTH-1 DOWNTO -g_COEFF_FRAC_WIDTH),
@@ -187,47 +187,54 @@ BEGIN
187187
-- RAM address 7 + 8*{biquad_idx} = unused
188188
FOR ch IN 0 TO g_CHANNELS-1
189189
LOOP
190-
CASE coeff_idx IS
191-
WHEN 0 =>
192-
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
193-
(to_slv(coeffs(ch)(biquad_idx).b0), OTHERS => '0');
194-
WHEN 1 =>
195-
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
196-
(to_slv(coeffs(ch)(biquad_idx).b1), OTHERS => '0');
197-
WHEN 2 =>
198-
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
199-
(to_slv(coeffs(ch)(biquad_idx).b2), OTHERS => '0');
200-
WHEN 3 =>
201-
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
202-
(to_slv(coeffs(ch)(biquad_idx).a1), OTHERS => '0');
203-
WHEN 4 =>
204-
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
205-
(to_slv(coeffs(ch)(biquad_idx).a2), OTHERS => '0');
206-
WHEN OTHERS =>
207-
END CASE;
190+
IF biquad_idx < g_NUM_BIQUADS THEN
191+
CASE coeff_idx IS
192+
WHEN 0 =>
193+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
194+
(to_slv(coeffs(ch)(biquad_idx).b0), OTHERS => '0');
195+
WHEN 1 =>
196+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
197+
(to_slv(coeffs(ch)(biquad_idx).b1), OTHERS => '0');
198+
WHEN 2 =>
199+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
200+
(to_slv(coeffs(ch)(biquad_idx).b2), OTHERS => '0');
201+
WHEN 3 =>
202+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
203+
(to_slv(coeffs(ch)(biquad_idx).a1), OTHERS => '0');
204+
WHEN 4 =>
205+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <=
206+
(to_slv(coeffs(ch)(biquad_idx).a2), OTHERS => '0');
207+
WHEN OTHERS =>
208+
END CASE;
209+
-- If trying to access biquads that aren't instatiated, return zeros
210+
ELSE
211+
wb_fofb_shaper_filt_regs_coeffs_i_ifc_arr(ch).data <= (OTHERS => '0');
212+
END IF;
208213

209214
IF rising_edge(clk_i) THEN
210215
IF rst_n_i = '0' THEN
211216
ELSE
212217
IF wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).wr = '1' THEN
213-
CASE coeff_idx IS
214-
WHEN 0 =>
215-
coeffs(ch)(biquad_idx).b0 <= f_parse_wb_coeff(
216-
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
217-
WHEN 1 =>
218-
coeffs(ch)(biquad_idx).b1 <= f_parse_wb_coeff(
219-
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
220-
WHEN 2 =>
221-
coeffs(ch)(biquad_idx).b2 <= f_parse_wb_coeff(
222-
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
223-
WHEN 3 =>
224-
coeffs(ch)(biquad_idx).a1 <= f_parse_wb_coeff(
225-
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
226-
WHEN 4 =>
227-
coeffs(ch)(biquad_idx).a2 <= f_parse_wb_coeff(
228-
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
229-
WHEN OTHERS =>
230-
END CASE;
218+
IF biquad_idx < g_NUM_BIQUADS THEN
219+
CASE coeff_idx IS
220+
WHEN 0 =>
221+
coeffs(ch)(biquad_idx).b0 <= f_parse_wb_coeff(
222+
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
223+
WHEN 1 =>
224+
coeffs(ch)(biquad_idx).b1 <= f_parse_wb_coeff(
225+
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
226+
WHEN 2 =>
227+
coeffs(ch)(biquad_idx).b2 <= f_parse_wb_coeff(
228+
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
229+
WHEN 3 =>
230+
coeffs(ch)(biquad_idx).a1 <= f_parse_wb_coeff(
231+
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
232+
WHEN 4 =>
233+
coeffs(ch)(biquad_idx).a2 <= f_parse_wb_coeff(
234+
wb_fofb_shaper_filt_regs_coeffs_o_ifc_arr(ch).data);
235+
WHEN OTHERS =>
236+
END CASE;
237+
END IF;
231238
END IF;
232239
END IF;
233240
END IF;
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
5-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
6-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
8-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
11-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
12-
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
2+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
3+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
4+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
5+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
6+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
7+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
8+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
9+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
10+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
11+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0
12+
9.26728558e-03 1.85345712e-02 9.26728558e-03 -1.38777878e-16 9.70055654e-03 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.94289029e-16 9.20192105e-02 1.00000000e+00 2.00000000e+00 1.00000000e+00 -1.66533454e-16 2.85702154e-01 1.00000000e+00 2.00000000e+00 1.00000000e+00 -2.22044605e-16 6.73513678e-01 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0 30.0

hdl/testbench/xwb_fofb_shaper_filt/xwb_fofb_shaper_filt_tb.vhd

+6
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ BEGIN
176176
-- Read back filter coefficients
177177
read32_pl(clk, wb_slave_i, wb_slave_o, v_wb_addr, v_wb_dat);
178178

179+
-- If trying to access a non-instatiated biquad, the expected return
180+
-- value for the coefficients is 0
181+
IF biquad_idx >= g_NUM_BIQUADS THEN
182+
v_wb_coeff := x"00000000";
183+
END IF;
184+
179185
ASSERT v_wb_dat = v_wb_coeff
180186
REPORT
181187
"UNEXPECTED FILTER COEFFICIENT "

0 commit comments

Comments
 (0)