wire [15:0] a0_A, a1_A, a2_A, b1_A, b2_A; wire [15:0] a0_B, a1_B, a2_B, b1_B, b2_B; wire [15:0] a0_C, a1_C, a2_C, b1_C, b2_C; wire [15:0] RDATAOUT_A, RDATAOUT_B; // Butterworth LPF // Sampling Frequency = 44100.0 // cutoff1 = 3000.0 // Order = 6th // Quantized by 15 [bits] // **** 1st biquad **** assign a0_A = sw0 == 1'b0 ? 16'b0011111111111111 : 16'b0000001010011010; assign a1_A = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000010100110100; assign a2_A = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000001010011010; assign b1_A = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0110100100101111; assign b2_A = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b1100110001101001; // **** 2nd biquad **** assign a0_B = sw0 == 1'b0 ? 16'b0011111111111111 : 16'b0000001000111010; assign a1_B = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000010001110100; assign a2_B = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000001000111010; assign b1_B = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0101101000010000; assign b2_B = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b1101110100000110; // **** 3rd biquad **** assign a0_C = sw0 == 1'b0 ? 16'b0011111111111111 : 16'b0000001000001110; assign a1_C = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000010000011101; assign a2_C = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0000001000001110; assign b1_C = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b0101001100101010; assign b2_C = sw0 == 1'b0 ? 16'b0000000000000000 : 16'b1110010010011100; MuxIir MuxIir_A( .RST_N(RST_N), .MCLK(CLK), .FSCLK(LRCLK_dly), .A0(a0_A), .A1(a1_A), .A2(a2_A), .B1(b1_A), .B2(b2_A), .XIN(RDATAIN), .YOUT(RDATAOUT_A) ); MuxIir MuxIir_B( .RST_N(RST_N), .MCLK(CLK), .FSCLK(LRCLK_dly), .A0(a0_B), .A1(a1_B), .A2(a2_B), .B1(b1_B), .B2(b2_B), .XIN(RDATAOUT_A), .YOUT(RDATAOUT_B) ); MuxIir MuxIir_C( .RST_N(RST_N), .MCLK(CLK), .FSCLK(LRCLK_dly), .A0(a0_C), .A1(a1_C), .A2(a2_C), .B1(b1_C), .B2(b2_C), .XIN(RDATAOUT_B), .YOUT(RDATAOUT) );