📄 cf_fft_2048_18.vhd
字号:
end architecture rtl;library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity cf_fft_2048_18_24 isport (clock_c : in std_logic;i1 : in unsigned(35 downto 0);i2 : in unsigned(35 downto 0);i3 : in unsigned(9 downto 0);i4 : in unsigned(0 downto 0);i5 : in unsigned(0 downto 0);o1 : out unsigned(35 downto 0);o2 : out unsigned(35 downto 0));end entity cf_fft_2048_18_24;architecture rtl of cf_fft_2048_18_24 issignal n1 : unsigned(35 downto 0) := "000000000000000000000000000000000000";signal n2 : unsigned(17 downto 0);signal n3 : unsigned(17 downto 0);signal n4 : unsigned(35 downto 0) := "000000000000000000000000000000000000";signal n5 : unsigned(17 downto 0);signal n6 : unsigned(17 downto 0);signal n7 : unsigned(17 downto 0) := "000000000000000000";signal n8 : unsigned(17 downto 0) := "000000000000000000";signal n9 : unsigned(17 downto 0) := "000000000000000000";signal n10 : unsigned(17 downto 0) := "000000000000000000";signal n11 : unsigned(35 downto 0) := "000000000000000000000000000000000000";signal n12 : unsigned(17 downto 0);signal n13 : unsigned(17 downto 0);signal n14 : unsigned(35 downto 0);signal n15 : unsigned(17 downto 0);signal n16 : unsigned(17 downto 0) := "000000000000000000";signal n17 : unsigned(35 downto 0);signal n18 : unsigned(17 downto 0);signal n19 : unsigned(17 downto 0) := "000000000000000000";signal n20 : unsigned(17 downto 0);signal n21 : unsigned(17 downto 0) := "000000000000000000";signal n22 : unsigned(35 downto 0);signal n23 : unsigned(17 downto 0);signal n24 : unsigned(17 downto 0) := "000000000000000000";signal n25 : unsigned(35 downto 0);signal n26 : unsigned(17 downto 0);signal n27 : unsigned(17 downto 0) := "000000000000000000";signal n28 : unsigned(17 downto 0);signal n29 : unsigned(17 downto 0) := "000000000000000000";signal n30 : unsigned(17 downto 0);signal n31 : unsigned(17 downto 0);signal n32 : unsigned(35 downto 0);signal n33 : unsigned(35 downto 0) := "000000000000000000000000000000000000";signal n34 : unsigned(17 downto 0);signal n35 : unsigned(17 downto 0);signal n36 : unsigned(35 downto 0);signal n37 : unsigned(35 downto 0) := "000000000000000000000000000000000000";beginprocess (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n1 <= "000000000000000000000000000000000000"; elsif i4 = "1" then n1 <= i1; end if; end if;end process;n2 <= n1(35 downto 35) & n1(34 downto 34) & n1(33 downto 33) & n1(32 downto 32) & n1(31 downto 31) & n1(30 downto 30) & n1(29 downto 29) & n1(28 downto 28) & n1(27 downto 27) & n1(26 downto 26) & n1(25 downto 25) & n1(24 downto 24) & n1(23 downto 23) & n1(22 downto 22) & n1(21 downto 21) & n1(20 downto 20) & n1(19 downto 19) & n1(18 downto 18);n3 <= n1(17 downto 17) & n1(16 downto 16) & n1(15 downto 15) & n1(14 downto 14) & n1(13 downto 13) & n1(12 downto 12) & n1(11 downto 11) & n1(10 downto 10) & n1(9 downto 9) & n1(8 downto 8) & n1(7 downto 7) & n1(6 downto 6) & n1(5 downto 5) & n1(4 downto 4) & n1(3 downto 3) & n1(2 downto 2) & n1(1 downto 1) & n1(0 downto 0);process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n4 <= "000000000000000000000000000000000000"; elsif i4 = "1" then n4 <= i2; end if; end if;end process;n5 <= n4(35 downto 35) & n4(34 downto 34) & n4(33 downto 33) & n4(32 downto 32) & n4(31 downto 31) & n4(30 downto 30) & n4(29 downto 29) & n4(28 downto 28) & n4(27 downto 27) & n4(26 downto 26) & n4(25 downto 25) & n4(24 downto 24) & n4(23 downto 23) & n4(22 downto 22) & n4(21 downto 21) & n4(20 downto 20) & n4(19 downto 19) & n4(18 downto 18);n6 <= n4(17 downto 17) & n4(16 downto 16) & n4(15 downto 15) & n4(14 downto 14) & n4(13 downto 13) & n4(12 downto 12) & n4(11 downto 11) & n4(10 downto 10) & n4(9 downto 9) & n4(8 downto 8) & n4(7 downto 7) & n4(6 downto 6) & n4(5 downto 5) & n4(4 downto 4) & n4(3 downto 3) & n4(2 downto 2) & n4(1 downto 1) & n4(0 downto 0);process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n7 <= "000000000000000000"; elsif i4 = "1" then n7 <= n2; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n8 <= "000000000000000000"; elsif i4 = "1" then n8 <= n7; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n9 <= "000000000000000000"; elsif i4 = "1" then n9 <= n3; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n10 <= "000000000000000000"; elsif i4 = "1" then n10 <= n9; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i4 = "1" then case i3 is when "0000000000" => n11 <= "011111111111111111000000000000000000"; when "0000000001" => n11 <= "011111111111111111111111111001101101"; when "0000000010" => n11 <= "011111111111111101111111110011011011"; when "0000000011" => n11 <= "011111111111111010111111101101001001"; when "0000000100" => n11 <= "011111111111110110111111100110110111"; when "0000000101" => n11 <= "011111111111110000111111100000100101"; when "0000000110" => n11 <= "011111111111101001111111011010010011"; when "0000000111" => n11 <= "011111111111100001111111010100000001"; when "0000001000" => n11 <= "011111111111011000111111001101101111"; when "0000001001" => n11 <= "011111111111001110111111000111011101"; when "0000001010" => n11 <= "011111111111000010111111000001001011"; when "0000001011" => n11 <= "011111111110110101111110111010111001"; when "0000001100" => n11 <= "011111111110100111111110110100100111"; when "0000001101" => n11 <= "011111111110010111111110101110010101"; when "0000001110" => n11 <= "011111111110000111111110101000000011"; when "0000001111" => n11 <= "011111111101110101111110100001110010"; when "0000010000" => n11 <= "011111111101100010111110011011100000"; when "0000010001" => n11 <= "011111111101001101111110010101001110"; when "0000010010" => n11 <= "011111111100111000111110001110111101"; when "0000010011" => n11 <= "011111111100100001111110001000101011"; when "0000010100" => n11 <= "011111111100001001111110000010011010"; when "0000010101" => n11 <= "011111111011110000111101111100001001"; when "0000010110" => n11 <= "011111111011010101111101110101110111"; when "0000010111" => n11 <= "011111111010111001111101101111100110"; when "0000011000" => n11 <= "011111111010011100111101101001010101"; when "0000011001" => n11 <= "011111111001111110111101100011000100"; when "0000011010" => n11 <= "011111111001011111111101011100110011"; when "0000011011" => n11 <= "011111111000111110111101010110100011"; when "0000011100" => n11 <= "011111111000011100111101010000010010"; when "0000011101" => n11 <= "011111110111111001111101001010000001"; when "0000011110" => n11 <= "011111110111010101111101000011110001"; when "0000011111" => n11 <= "011111110110101111111100111101100000"; when "0000100000" => n11 <= "011111110110001000111100110111010000"; when "0000100001" => n11 <= "011111110101100000111100110001000000"; when "0000100010" => n11 <= "011111110100110111111100101010110000"; when "0000100011" => n11 <= "011111110100001101111100100100100000"; when "0000100100" => n11 <= "011111110011100001111100011110010000"; when "0000100101" => n11 <= "011111110010110100111100011000000001"; when "0000100110" => n11 <= "011111110010000110111100010001110001"; when "0000100111" => n11 <= "011111110001010110111100001011100010"; when "0000101000" => n11 <= "011111110000100110111100000101010011"; when "0000101001" => n11 <= "011111101111110100111011111111000100"; when "0000101010" => n11 <= "011111101111000001111011111000110101"; when "0000101011" => n11 <= "011111101110001101111011110010100110"; when "0000101100" => n11 <= "011111101101010111111011101100011000"; when "0000101101" => n11 <= "011111101100100000111011100110001001"; when "0000101110" => n11 <= "011111101011101000111011011111111011"; when "0000101111" => n11 <= "011111101010101111111011011001101101"; when "0000110000" => n11 <= "011111101001110101111011010011011111"; when "0000110001" => n11 <= "011111101000111001111011001101010010"; when "0000110010" => n11 <= "011111100111111100111011000111000100"; when "0000110011" => n11 <= "011111100110111110111011000000110111"; when "0000110100" => n11 <= "011111100101111111111010111010101010"; when "0000110101" => n11 <= "011111100100111111111010110100011101"; when "0000110110" => n11 <= "011111100011111101111010101110010000"; when "0000110111" => n11 <= "011111100010111010111010101000000011"; when "0000111000" => n11 <= "011111100001110110111010100001110111"; when "0000111001" => n11 <= "011111100000110000111010011011101011"; when "0000111010" => n11 <= "011111011111101010111010010101011111"; when "0000111011" => n11 <= "011111011110100010111010001111010100"; when "0000111100" => n11 <= "011111011101011001111010001001001000"; when "0000111101" => n11 <= "011111011100001111111010000010111101"; when "0000111110" => n11 <= "011111011011000011111001111100110010"; when "0000111111" => n11 <= "011111011001110111111001110110100111"; when "0001000000" => n11 <= "011111011000101001111001110000011101"; when "0001000001" => n11 <= "011111010111011010111001101010010010"; when "0001000010" => n11 <= "011111010110001010111001100100001000"; when "0001000011" => n11 <= "011111010100111000111001011101111111"; when "0001000100" => n11 <= "011111010011100110111001010111110101"; when "0001000101" => n11 <= "011111010010010010111001010001101100"; when "0001000110" => n11 <= "011111010000111101111001001011100011"; when "0001000111" => n11 <= "011111001111100110111001000101011010"; when "0001001000" => n11 <= "011111001110001111111000111111010001"; when "0001001001" => n11 <= "011111001100110110111000111001001001"; when "0001001010" => n11 <= "011111001011011100111000110011000001"; when "0001001011" => n11 <= "011111001010000001111000101100111010"; when "0001001100" => n11 <= "011111001000100101111000100110110010"; when "0001001101" => n11 <= "011111000111000111111000100000101011"; when "0001001110" => n11 <= "011111000101101000111000011010100100"; when "0001001111" => n11 <= "011111000100001001111000010100011110"; when "0001010000" => n11 <= "011111000010100111111000001110011000"; when "0001010001" => n11 <= "011111000001000101111000001000010010"; when "0001010010" => n11 <= "011110111111100010111000000010001100"; when "0001010011" => n11 <= "011110111101111101110111111100000111"; when "0001010100" => n11 <= "011110111100010111110111110110000010"; when "0001010101" => n11 <= "011110111010110000110111101111111101"; when "0001010110" => n11 <= "011110111001001000110111101001111001"; when "0001010111" => n11 <= "011110110111011110110111100011110101"; when "0001011000" => n11 <= "011110110101110100110111011101110001"; when "0001011001" => n11 <= "011110110100001000110111010111101110"; when "0001011010" => n11 <= "011110110010011011110111010001101010"; when "0001011011" => n11 <= "011110110000101100110111001011101000"; when "0001011100" => n11 <= "011110101110111101110111000101100101"; when "0001011101" => n11 <= "011110101101001100110110111111100011"; when "0001011110" => n11 <= "011110101011011011110110111001100010"; when "0001011111" => n11 <= "011110101001101000110110110011100000"; when "0001100000" => n11 <= "011110100111110100110110101101011111"; when "0001100001" => n11 <= "011110100101111110110110100111011111"; when "0001100010" => n11 <= "011110100100001000110110100001011110"; when "0001100011" => n11 <= "011110100010010000110110011011011111"; when "0001100100" => n11 <= "011110100000010111110110010101011111"; when "0001100101" => n11 <= "011110011110011101110110001111100000"; when "0001100110" => n11 <= "011110011100100010110110001001100001"; when "0001100111" => n11 <= "011110011010100110110110000011100011"; when "0001101000" => n11 <= "011110011000101000110101111101100101"; when "0001101001" => n11 <= "011110010110101001110101110111100111"; when "0001101010" => n11 <= "011110010100101001110101110001101010"; when "0001101011" => n11 <= "011110010010101000110101101011101101"; when "0001101100" => n11 <= "011110010000100110110101100101110000"; when "0001101101" => n11 <= "011110001110100011110101011111110100"; when "0001101110" => n11 <= "011110001100011110110101011001111001"; when "0001101111" => n11 <= "011110001010011000110101010011111101"; when "0001110000" => n11 <= "011110001000010010110101001110000011"; when "0001110001" => n11 <= "011110000110001010110101001000001000"; when "0001110010" => n11 <= "011110000100000000110101000010001110"; when "0001110011" => n11 <= "011110000001110110110100111100010101"; when "0001110100" => n11 <= "011101111111101010110100110110011100"; when "0001110101" => n11 <= "011101111101011110110100110000100011"; when "0001110110" => n11 <= "011101111011010000110100101010101011"; when "0001110111" => n11 <= "011101111001000001110100100100110011"; when "0001111000" => n11 <= "011101110110110001110100011110111011"; when "0001111001" => n11 <= "011101110100011111110100011001000100"; when "0001111010" => n11 <= "011101110010001101110100010011001110"; when "0001111011" => n11 <= "011101101111111001110100001101011000"; when "0001111100" => n11 <= "011101101101100101110100000111100010"; when "0001111101" => n11 <= "011101101011001111110100000001101101"; when "0001111110" => n11 <= "011101101000111000110011111011111000"; when "0001111111" => n11 <= "011101100110100000110011110110000100"; when "0010000000" => n11 <= "011101100100000110110011110000010000"; when "0010000001" => n11 <= "011101100001101100110011101010011101"; when "0010000010" => n11 <= "011101011111010000110011100100101010"; when "0010000011" => n11 <= "011101011100110011110011011110111000"; when "0010000100" => n11 <= "011101011010010110110011011001000110"; when "0010000101" => n11 <= "011101010111110111110011010011010101"; when "0010000110" => n11 <= "011101010101010110110011001101100100"; when "0010000111" => n11 <= "011101010010110101110011000111110100"; when "0010001000" => n11 <= "011101010000010011110011000010000100"; when "0010001001" => n11 <= "011101001101101111110010111100010100"; when "0010001010" => n11 <= "011101001011001011110010110110100101"; when "0010001011" => n11 <= "011101001000100101110010110000110111"; when "0010001100" => n11 <= "011101000101111110110010101011001001"; when "0010001101" => n11 <= "011101000011010110110010100101011100"; when "0010001110" => n11 <= "011101000000101101110010011111101111"; when "0010001111" => n11 <= "011100111110000011110010011010000011"; when "0010010000" => n11 <= "011100111011010111110010010100010111"; when "0010010001" => n11 <= "011100111000101011110010001110101100"; when "0010010010" => n11 <= "011100110101111101110010001001000001"; when "0010010011" => n11 <= "011100110011001110110010000011010111"; when "0010010100" => n11 <= "011100110000011111110001111101101101"; when "0010010101" => n11 <= "011100101101101110110001111000000100"; when "0010010110" => n11 <= "011100101010111100110001110010011100"; when "0010010111" => n11 <= "011100101000001000110001101100110100"; when "0010011000" => n11 <= "011100100101010100110001100111001100"; when "0010011001" => n11 <= "011100100010011111110001100001100101"; when "0010011010" => n11 <= "011100011111101000110001011011111111"; when "0010011011" => n11 <= "011100011100110001110001010110011001"; when "0010011100" => n11 <= "011100011001111000110001010000110100"; when "0010011101" => n11 <= "011100010110111110110001001011001111"; when "0010011110" => n11 <= "011100010100000100110001000101101011"; when "0010011111" => n11 <= "011100010001001000110001000000001000"; when "0010100000" => n11 <= "011100001110001011110000111010100101"; when "0010100001" => n11 <= "011100001011001101110000110101000010"; when "0010100010" => n11 <= "011100001000001101110000101111100000"; when "0010100011" => n11 <= "011100000101001101110000101001111111"; when "0010100100" => n11 <= "011100000010001100110000100100011111"; when "0010100101" => n11 <= "011011111111001001110000011110111111"; when "0010100110" => n11 <= "011011111100000110110000011001011111"; when "0010100111" => n11 <= "011011111001000001110000010100000001"; when "0010101000" => n11 <= "011011110101111100110000001110100010"; when "0010101001" => n11 <= "011011110010110101110000001001000101"; when "0010101010" => n11 <= "011011101111101101110000000011101000"; when "0010101011" => n11 <= "011011101100100100101111111110001011"; when "0010101100" => n11 <= "011011101001011010101111111000110000"; when "0010101101" => n11 <= "011011100110001111101111110011010101"; when "0010101110" => n11 <= "011011100011000011101111101101111010"; when "0010101111" => n11 <= "011011011111110110101111101000100000"; when "0010110000" => n11 <= "011011011100101000101111100011000111"; when "0010110001" => n11 <= "011011011001011000101111011101101110"; when "0010110010" => n11 <= "011011010110001000101111011000010110"; when "0010110011" => n11 <= "011011010010110111101111010010111111"; when "0010110100" => n11 <= "011011001111100100101111001101101000"; when "0010110101" => n11 <= "011011001100010001101111001000010010"; when "0010110110" => n11 <= "011011001000111100101111000010111101"; when "0010110111" => n11 <= "011011000101100111101110111101101000"; when "0010111000" => n11 <= "011011000010010000101110111000010100"; when "0010111001" => n11 <= "011010111110111000101110110011000001"; when "0010111010" => n11 <= "011010111011100000101110101101101110"; when "0010111011" => n11 <= "011010111000000110101110101000011100"; when "0010111100" => n11 <= "011010110100101011101110100011001011"; when "0010111101" => n11 <= "011010110001001111101110011101111010"; when "0010111110" => n11 <= "011010101101110011101110011000101010"; when "0010111111" => n11 <= "011010101010010101101110010011011010"; when "0011000000" => n11 <= "011010100110110110101110001110001100"; when "0011000001" => n11 <= "011010100011010110101110001000111110"; when "0011000010" => n11 <= "011010011111110101101110000011110000"; when "0011000011" => n11 <= "011010011100010011101101111110100100"; when "0011000100" => n11 <= "011010011000110000101101111001011000"; when "0011000101" => n11 <= "011010010101001100101101110100001101"; when "0011000110" => n11 <= "011010010001100111101101101111000010"; when "0011000111" => n11 <= "011010001110000001101101101001111000"; when "0011001000" => n11 <= "011010001010011010101101100100101111"; when "0011001001" => n11 <= "011010000110110010101101011111100111"; when "0011001010" => n11 <= "011010000011001001101101011010011111"; when "0011001011" => n11 <= "011001111111011111101101010101011000"; when "0011001100" => n11 <= "011001111011110100101101010000010010"; when "0011001101" => n11 <= "011001111000001000101101001011001100"; when "0011001110" => n11 <= "011001110100011011101101000110000111"; when "0011001111" => n11 <= "011001110000101101101101000001000011"; when "0011010000" => n11 <= "011001101100111110101100111100000000"; when "0011010001" => n11 <= "011001101001001101101100110110111101"; when "0011010010" => n11 <= "011001100101011100101100110001111011"; when "0011010011" => n11 <= "011001100001101010101100101100111010"; when "0011010100" => n11 <= "011001011101110111101100100111111010"; when "0011010101" => n11 <= "011001011010000011101100100010111010"; when "0011010110" => n11 <= "011001010110001110101100011101111011"; when "0011010111" => n11 <= "011001010010011001101100011000111101"; when "0011011000" => n11 <= "011001001110100010101100010100000000"; when "0011011001" => n11 <= "011001001010101010101100001111000011"; when "0011011010" => n11 <= "011001000110110001101100001010000111"; when "0011011011" => n11 <= "011001000010110111101100000101001100"; when "0011011100" => n11 <= "011000111110111100101100000000010010"; when "0011011101" => n11 <= "011000111011000001101011111011011000"; when "0011011110" => n11 <= "011000110111000100101011110110100000"; when "0011011111" => n11 <= "0110001100110
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -