⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cf_fft_2048_18.vhd

📁 FFT2048点程序VHDL
💻 VHD
📖 第 1 页 / 共 5 页
字号:
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 + -