?? lowpassfiltervhdlcord.txt
字號:
sub_temp_10 <= resize(b2sum6 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul6, 39);
a2sum6 <= resize( shift_right( sub_temp_10(37 DOWNTO 17) + 1, 1), 20);
sub_temp_11 <= resize(a2sum6 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a3mul6, 39);
a1sum6 <= resize( shift_right( sub_temp_11(37 DOWNTO 17) + 1, 1), 20);
-- ------------------ Section 7 ------------------
numtypeconvert7 <= dentypeconvert6;
dentypeconvert7 <= resize( a1sum7(15 DOWNTO 0) & '0' & '0' & '0' & '0', 20);
-- Reusing denominator delays from last section as this section's numerator delays
dendelay_process_section7 : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
dendelay_section7(0 TO 1) <= (OTHERS => (OTHERS => '0'));
ELSIF clk'event AND clk = '1' THEN
IF clk_enable = '1' THEN
dendelay_section7(0) <= dentypeconvert7;
dendelay_section7(1) <= dendelay_section7(0);
END IF;
END IF;
END PROCESS dendelay_process_section7;
a2mul7 <= dendelay_section7(0) * coeff_a2_section7;
a3mul7 <= dendelay_section7(1) * coeff_a3_section7;
b1mul7 <= numtypeconvert7 * coeff_b1_section7;
b2mul7 <= dendelay_section6(0) * coeff_b2_section7;
b3mul7 <= dendelay_section6(1) * coeff_b3_section7;
b1multypeconvert7 <= resize( shift_right( (b1mul7(35) & b1mul7(35 DOWNTO 17) + 1), 1), 20);
add_temp_12 <= resize(b1multypeconvert7 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b2mul7, 39);
b1sum7 <= resize( shift_right( add_temp_12(37 DOWNTO 17) + 1, 1), 20);
add_temp_13 <= resize(b1sum7 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b3mul7, 39);
b2sum7 <= resize( shift_right( add_temp_13(37 DOWNTO 17) + 1, 1), 20);
sub_temp_12 <= resize(b2sum7 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul7, 39);
a2sum7 <= resize( shift_right( sub_temp_12(37 DOWNTO 17) + 1, 1), 20);
sub_temp_13 <= resize(a2sum7 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a3mul7, 39);
a1sum7 <= resize( shift_right( sub_temp_13(37 DOWNTO 17) + 1, 1), 20);
-- ------------------ Section 8 ------------------
numtypeconvert8 <= dentypeconvert7;
dentypeconvert8 <= resize( a1sum8(15 DOWNTO 0) & '0' & '0' & '0' & '0', 20);
-- Reusing denominator delays from last section as this section's numerator delays
dendelay_process_section8 : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
dendelay_section8(0 TO 1) <= (OTHERS => (OTHERS => '0'));
ELSIF clk'event AND clk = '1' THEN
IF clk_enable = '1' THEN
dendelay_section8(0) <= dentypeconvert8;
dendelay_section8(1) <= dendelay_section8(0);
END IF;
END IF;
END PROCESS dendelay_process_section8;
a2mul8 <= dendelay_section8(0) * coeff_a2_section8;
a3mul8 <= dendelay_section8(1) * coeff_a3_section8;
b1mul8 <= numtypeconvert8 * coeff_b1_section8;
b2mul8 <= dendelay_section7(0) * coeff_b2_section8;
b3mul8 <= dendelay_section7(1) * coeff_b3_section8;
b1multypeconvert8 <= resize( shift_right( (b1mul8(35) & b1mul8(35 DOWNTO 17) + 1), 1), 20);
add_temp_14 <= resize(b1multypeconvert8 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b2mul8, 39);
b1sum8 <= resize( shift_right( add_temp_14(37 DOWNTO 17) + 1, 1), 20);
add_temp_15 <= resize(b1sum8 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b3mul8, 39);
b2sum8 <= resize( shift_right( add_temp_15(37 DOWNTO 17) + 1, 1), 20);
sub_temp_14 <= resize(b2sum8 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul8, 39);
a2sum8 <= resize( shift_right( sub_temp_14(37 DOWNTO 17) + 1, 1), 20);
sub_temp_15 <= resize(a2sum8 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a3mul8, 39);
a1sum8 <= resize( shift_right( sub_temp_15(37 DOWNTO 17) + 1, 1), 20);
-- ------------------ Section 9 ------------------
numtypeconvert9 <= dentypeconvert8;
dentypeconvert9 <= resize( a1sum9(15 DOWNTO 0) & '0' & '0' & '0' & '0', 20);
-- Reusing denominator delays from last section as this section's numerator delays
dendelay_process_section9 : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
dendelay_section9(0 TO 1) <= (OTHERS => (OTHERS => '0'));
ELSIF clk'event AND clk = '1' THEN
IF clk_enable = '1' THEN
dendelay_section9(0) <= dentypeconvert9;
dendelay_section9(1) <= dendelay_section9(0);
END IF;
END IF;
END PROCESS dendelay_process_section9;
a2mul9 <= dendelay_section9(0) * coeff_a2_section9;
a3mul9 <= dendelay_section9(1) * coeff_a3_section9;
b1mul9 <= numtypeconvert9 * coeff_b1_section9;
b2mul9 <= dendelay_section8(0) * coeff_b2_section9;
b3mul9 <= dendelay_section8(1) * coeff_b3_section9;
b1multypeconvert9 <= resize( shift_right( (b1mul9(35) & b1mul9(35 DOWNTO 17) + 1), 1), 20);
add_temp_16 <= resize(b1multypeconvert9 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b2mul9, 39);
b1sum9 <= resize( shift_right( add_temp_16(37 DOWNTO 17) + 1, 1), 20);
add_temp_17 <= resize(b1sum9 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b3mul9, 39);
b2sum9 <= resize( shift_right( add_temp_17(37 DOWNTO 17) + 1, 1), 20);
sub_temp_16 <= resize(b2sum9 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul9, 39);
a2sum9 <= resize( shift_right( sub_temp_16(37 DOWNTO 17) + 1, 1), 20);
sub_temp_17 <= resize(a2sum9 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a3mul9, 39);
a1sum9 <= resize( shift_right( sub_temp_17(37 DOWNTO 17) + 1, 1), 20);
-- ------------------ Section 10 ------------------
numtypeconvert10 <= dentypeconvert9;
dentypeconvert10 <= resize( a1sum10(15 DOWNTO 0) & '0' & '0' & '0' & '0', 20);
-- Reusing denominator delays from last section as this section's numerator delays
dendelay_process_section10 : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
dendelay_section10(0 TO 1) <= (OTHERS => (OTHERS => '0'));
ELSIF clk'event AND clk = '1' THEN
IF clk_enable = '1' THEN
dendelay_section10(0) <= dentypeconvert10;
dendelay_section10(1) <= dendelay_section10(0);
END IF;
END IF;
END PROCESS dendelay_process_section10;
a2mul10 <= dendelay_section10(0) * coeff_a2_section10;
a3mul10 <= dendelay_section10(1) * coeff_a3_section10;
b1mul10 <= numtypeconvert10 * coeff_b1_section10;
b2mul10 <= dendelay_section9(0) * coeff_b2_section10;
b3mul10 <= dendelay_section9(1) * coeff_b3_section10;
b1multypeconvert10 <= resize( shift_right( (b1mul10(35) & b1mul10(35 DOWNTO 17) + 1), 1), 20);
add_temp_18 <= resize(b1multypeconvert10 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b2mul10, 39);
b1sum10 <= resize( shift_right( add_temp_18(37 DOWNTO 17) + 1, 1), 20);
add_temp_19 <= resize(b1sum10 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b3mul10, 39);
b2sum10 <= resize( shift_right( add_temp_19(37 DOWNTO 17) + 1, 1), 20);
sub_temp_18 <= resize(b2sum10 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul10, 39);
a2sum10 <= resize( shift_right( sub_temp_18(37 DOWNTO 17) + 1, 1), 20);
sub_temp_19 <= resize(a2sum10 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a3mul10, 39);
a1sum10 <= resize( shift_right( sub_temp_19(37 DOWNTO 17) + 1, 1), 20);
-- ------------------ Section 11 ------------------
numtypeconvert11 <= dentypeconvert10;
dentypeconvert11 <= resize( a1sum11(15 DOWNTO 0) & '0' & '0' & '0' & '0', 20);
-- Reusing denominator delays from last section as this section's numerator delays
dendelay_process_section11 : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
dendelay_section11(0 TO 1) <= (OTHERS => (OTHERS => '0'));
ELSIF clk'event AND clk = '1' THEN
IF clk_enable = '1' THEN
dendelay_section11(0) <= dentypeconvert11;
dendelay_section11(1) <= dendelay_section11(0);
END IF;
END IF;
END PROCESS dendelay_process_section11;
a2mul11 <= dendelay_section11(0) * coeff_a2_section11;
a3mul11 <= dendelay_section11(1) * coeff_a3_section11;
b1mul11 <= numtypeconvert11 * coeff_b1_section11;
b2mul11 <= dendelay_section10(0) * coeff_b2_section11;
b3mul11 <= dendelay_section10(1) * coeff_b3_section11;
b1multypeconvert11 <= resize( shift_right( (b1mul11(35) & b1mul11(35 DOWNTO 17) + 1), 1), 20);
add_temp_20 <= resize(b1multypeconvert11 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b2mul11, 39);
b1sum11 <= resize( shift_right( add_temp_20(37 DOWNTO 17) + 1, 1), 20);
add_temp_21 <= resize(b1sum11 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) + resize(b3mul11, 39);
b2sum11 <= resize( shift_right( add_temp_21(37 DOWNTO 17) + 1, 1), 20);
sub_temp_20 <= resize(b2sum11 & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0' & '0', 39) - resize(a2mul11, 39);
a2sum11 <= resize( shift_right( sub_temp_20(37 DOWNTO 17) + 1, 1), 20);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -