parameterize modules

This commit is contained in:
dada 2025-03-13 11:31:31 +08:00 committed by futh0403
parent 928978f034
commit 601600c760
4 changed files with 305 additions and 293 deletions

View File

@ -32,9 +32,9 @@
// Other:
//-FHDR--------------------------------------------------------------------------------------------------------
module IIR_Filter_p1 #(
parameter data_in_width = 16
parameter coef_width = 32
,parameter data_in_width = 16
,parameter cascade_in_width = 37
,parameter coef_width = 32
,parameter temp_var_width = cascade_in_width - 1
,parameter data_out_width = cascade_in_width - 2
)

View File

@ -32,12 +32,10 @@
// Other:
//-FHDR--------------------------------------------------------------------------------------------------------
module IIR_Filter_p8 #(
parameter data_in_width = 16
,parameter coef_width = 32
,parameter frac_data_out_width = 20//X for in,5
,parameter frac_coef_width = 31//division
,parameter temp_var_width = 42
parameter coef_width = 32
,parameter data_in_width = 16
,parameter data_out_width = 37
,parameter temp_var_width = data_out_width+5
)
// H(z) = a(1 + b*z^-1 + b^2*z^-2 + b^3*z^-3 + b^4*z^-4 + b^5*z^-5 + b^6*z^-6 + b^7*z^-7) / (1 - b^8*z^-8)
(

View File

@ -32,8 +32,8 @@
//-FHDR--------------------------------------------------------------------------------------------------------
module IIR_top #(
parameter temp_var_width = 37
,parameter data_out_width = 23
parameter data_out_width = 23
,parameter temp_var_width = data_out_width + 14
)
(
input rstn
@ -104,7 +104,9 @@ wire signed [temp_var_width-15:0] IIRout_p7_im;
IIR_Filter_p8 inst_iir_p0 (
IIR_Filter_p8 #(
.data_out_width (temp_var_width )
) inst_iir_p0 (
.clk (clk ),
.rstn (rstn ),
.en (en ),

View File

@ -32,7 +32,7 @@
//-FHDR--------------------------------------------------------------------------------------------------------
module TailCorr_top #(
parameter temp_var_width = 23
parameter temp_var_width = 22
)
(
input rstn
@ -364,7 +364,9 @@ end
IIR_top inst_iir_top_0 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_0 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -376,13 +378,13 @@ IIR_top inst_iir_top_0 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re0 ),
.a_im (a_im0 ),
.b_re (b_re0 ),
@ -413,7 +415,9 @@ IIR_top inst_iir_top_0 (
.IIRout_p7 (IIRout_p7[0] )
);
IIR_top inst_iir_top_1 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_1 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -425,13 +429,13 @@ IIR_top inst_iir_top_1 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re1 ),
.a_im (a_im1 ),
.b_re (b_re1 ),
@ -462,7 +466,9 @@ IIR_top inst_iir_top_1 (
.IIRout_p7 (IIRout_p7[1] )
);
IIR_top inst_iir_top_2 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_2 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -474,13 +480,13 @@ IIR_top inst_iir_top_2 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re2 ),
.a_im (a_im2 ),
.b_re (b_re2 ),
@ -511,7 +517,9 @@ IIR_top inst_iir_top_2 (
.IIRout_p7 (IIRout_p7[2] )
);
IIR_top inst_iir_top_3 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_3 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -523,13 +531,13 @@ IIR_top inst_iir_top_3 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re3 ),
.a_im (a_im3 ),
.b_re (b_re3 ),
@ -560,7 +568,9 @@ IIR_top inst_iir_top_3 (
.IIRout_p7 (IIRout_p7[3] )
);
IIR_top inst_iir_top_4 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_4 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -572,13 +582,13 @@ IIR_top inst_iir_top_4 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re4 ),
.a_im (a_im4 ),
.b_re (b_re4 ),
@ -609,7 +619,9 @@ IIR_top inst_iir_top_4 (
.IIRout_p7 (IIRout_p7[4] )
);
IIR_top inst_iir_top_5 (
IIR_top #(
.data_out_width (temp_var_width )
) inst_iir_top_5 (
.clk (clk ),
.rstn (rstn ),
.en (en ),
@ -621,13 +633,13 @@ IIR_top inst_iir_top_5 (
.IIRin_p5 (IIRin_p5 ),
.IIRin_p6 (IIRin_p6 ),
.IIRin_p7 (IIRin_p7 ),
.IIRin_p0_r2 (IIRin_p0_r[1]),
.IIRin_p1_r4 (IIRin_p1_r[3]),
.IIRin_p2_r6 (IIRin_p2_r[5]),
.IIRin_p3_r8 (IIRin_p3_r[7]),
.IIRin_p4_r10 (IIRin_p4_r[9]),
.IIRin_p5_r12 (IIRin_p5_r[11]),
.IIRin_p6_r14 (IIRin_p6_r[13]),
.IIRin_p0_r2 (IIRin_p0_r[1] ),
.IIRin_p1_r4 (IIRin_p1_r[3] ),
.IIRin_p2_r6 (IIRin_p2_r[5] ),
.IIRin_p3_r8 (IIRin_p3_r[7] ),
.IIRin_p4_r10 (IIRin_p4_r[9] ),
.IIRin_p5_r12 (IIRin_p5_r[11] ),
.IIRin_p6_r14 (IIRin_p6_r[13] ),
.a_re (a_re5 ),
.a_im (a_im5 ),
.b_re (b_re5 ),