📄 cf_fft_1024_8.vhd
字号:
clock_c : in std_logic;i1 : in unsigned(15 downto 0);i2 : in unsigned(15 downto 0);i3 : in unsigned(0 downto 0);i4 : in unsigned(0 downto 0);i5 : in unsigned(0 downto 0);o1 : out unsigned(15 downto 0);o2 : out unsigned(15 downto 0));end component cf_fft_1024_8_39;component cf_fft_1024_8_33 isport (clock_c : in std_logic;i1 : in unsigned(1 downto 0);i2 : in unsigned(0 downto 0);i3 : in unsigned(0 downto 0);o1 : out unsigned(0 downto 0));end component cf_fft_1024_8_33;component cf_fft_1024_8_29 isport (clock_c : in std_logic;i1 : in unsigned(31 downto 0);i2 : in unsigned(0 downto 0);i3 : in unsigned(7 downto 0);i4 : in unsigned(0 downto 0);i5 : in unsigned(0 downto 0);i6 : in unsigned(0 downto 0);o1 : out unsigned(31 downto 0));end component cf_fft_1024_8_29;component cf_fft_1024_8_28 isport (clock_c : in std_logic;i1 : in unsigned(31 downto 0);i2 : in unsigned(0 downto 0);i3 : in unsigned(7 downto 0);i4 : in unsigned(0 downto 0);i5 : in unsigned(0 downto 0);i6 : in unsigned(0 downto 0);o1 : out unsigned(0 downto 0);o2 : out unsigned(0 downto 0);o3 : out unsigned(31 downto 0));end component cf_fft_1024_8_28;component cf_fft_1024_8_24 isport (clock_c : in std_logic;i1 : in unsigned(0 downto 0);i2 : in unsigned(0 downto 0);i3 : in unsigned(0 downto 0);o1 : out unsigned(8 downto 0);o2 : out unsigned(0 downto 0));end component cf_fft_1024_8_24;beginn1 <= s29_1(8 downto 8);n2 <= s25_1 & s25_2;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n3 <= "0"; elsif i4 = "1" then n3 <= s29_2; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n4 <= "0"; elsif i4 = "1" then n4 <= n3; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n5 <= "0"; elsif i4 = "1" then n5 <= n4; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n6 <= "0"; elsif i4 = "1" then n6 <= n5; end if; end if;end process;n7 <= s29_1(8 downto 8) & s29_1(7 downto 7) & s29_1(6 downto 6) & s29_1(5 downto 5) & s29_1(4 downto 4) & s29_1(3 downto 3) & s29_1(2 downto 2) & s29_1(1 downto 1);process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n8 <= "00000000"; 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 <= "00000000"; elsif i4 = "1" then n9 <= n8; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n10 <= "00000000"; elsif i4 = "1" then n10 <= n9; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n11 <= "00000000"; elsif i4 = "1" then n11 <= n10; end if; end if;end process;n12 <= s29_1(0 downto 0);process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n13 <= "0"; elsif i4 = "1" then n13 <= n12; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n14 <= "0"; elsif i4 = "1" then n14 <= n13; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n15 <= "0"; elsif i4 = "1" then n15 <= n14; end if; end if;end process;process (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n16 <= "0"; elsif i4 = "1" then n16 <= n15; end if; end if;end process;n17 <= not n16;n18 <= s28_2 & s28_1;n19 <= s28_3(31 downto 31) & s28_3(30 downto 30) & s28_3(29 downto 29) & s28_3(28 downto 28) & s28_3(27 downto 27) & s28_3(26 downto 26) & s28_3(25 downto 25) & s28_3(24 downto 24) & s28_3(23 downto 23) & s28_3(22 downto 22) & s28_3(21 downto 21) & s28_3(20 downto 20) & s28_3(19 downto 19) & s28_3(18 downto 18) & s28_3(17 downto 17) & s28_3(16 downto 16);n20 <= s28_3(15 downto 15) & s28_3(14 downto 14) & s28_3(13 downto 13) & s28_3(12 downto 12) & s28_3(11 downto 11) & s28_3(10 downto 10) & s28_3(9 downto 9) & s28_3(8 downto 8) & s28_3(7 downto 7) & s28_3(6 downto 6) & s28_3(5 downto 5) & s28_3(4 downto 4) & s28_3(3 downto 3) & s28_3(2 downto 2) & s28_3(1 downto 1) & s28_3(0 downto 0);n21 <= s27_1(31 downto 31) & s27_1(30 downto 30) & s27_1(29 downto 29) & s27_1(28 downto 28) & s27_1(27 downto 27) & s27_1(26 downto 26) & s27_1(25 downto 25) & s27_1(24 downto 24) & s27_1(23 downto 23) & s27_1(22 downto 22) & s27_1(21 downto 21) & s27_1(20 downto 20) & s27_1(19 downto 19) & s27_1(18 downto 18) & s27_1(17 downto 17) & s27_1(16 downto 16);n22 <= s27_1(15 downto 15) & s27_1(14 downto 14) & s27_1(13 downto 13) & s27_1(12 downto 12) & s27_1(11 downto 11) & s27_1(10 downto 10) & s27_1(9 downto 9) & s27_1(8 downto 8) & s27_1(7 downto 7) & s27_1(6 downto 6) & s27_1(5 downto 5) & s27_1(4 downto 4) & s27_1(3 downto 3) & s27_1(2 downto 2) & s27_1(1 downto 1) & s27_1(0 downto 0);n23 <= n20 when s26_1 = "1" else n19;n24 <= n22 when s26_1 = "1" else n21;s25 : cf_fft_1024_8_39 port map (clock_c, i2, i3, n1, i4, i5, s25_1, s25_2);s26 : cf_fft_1024_8_33 port map (clock_c, n18, i4, i5, s26_1);s27 : cf_fft_1024_8_29 port map (clock_c, n2, n6, n11, n16, i4, i5, s27_1);s28 : cf_fft_1024_8_28 port map (clock_c, n2, n6, n11, n17, i4, i5, s28_1, s28_2, s28_3);s29 : cf_fft_1024_8_24 port map (clock_c, i1, i4, i5, s29_1, s29_2);o3 <= n24;o2 <= n23;o1 <= s28_1;end architecture rtl;library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity cf_fft_1024_8_22 isport (clock_c : in std_logic;i1 : in unsigned(15 downto 0);i2 : in unsigned(15 downto 0);i3 : in unsigned(8 downto 0);i4 : in unsigned(0 downto 0);i5 : in unsigned(0 downto 0);o1 : out unsigned(15 downto 0);o2 : out unsigned(15 downto 0));end entity cf_fft_1024_8_22;architecture rtl of cf_fft_1024_8_22 issignal n1 : unsigned(15 downto 0) := "0000000000000000";signal n2 : unsigned(7 downto 0);signal n3 : unsigned(7 downto 0);signal n4 : unsigned(15 downto 0) := "0000000000000000";signal n5 : unsigned(7 downto 0);signal n6 : unsigned(7 downto 0);signal n7 : unsigned(7 downto 0) := "00000000";signal n8 : unsigned(7 downto 0) := "00000000";signal n9 : unsigned(7 downto 0) := "00000000";signal n10 : unsigned(7 downto 0) := "00000000";signal n11 : unsigned(15 downto 0) := "0000000000000000";signal n12 : unsigned(7 downto 0);signal n13 : unsigned(7 downto 0);signal n14 : unsigned(15 downto 0);signal n15 : unsigned(7 downto 0);signal n16 : unsigned(7 downto 0) := "00000000";signal n17 : unsigned(15 downto 0);signal n18 : unsigned(7 downto 0);signal n19 : unsigned(7 downto 0) := "00000000";signal n20 : unsigned(7 downto 0);signal n21 : unsigned(7 downto 0) := "00000000";signal n22 : unsigned(15 downto 0);signal n23 : unsigned(7 downto 0);signal n24 : unsigned(7 downto 0) := "00000000";signal n25 : unsigned(15 downto 0);signal n26 : unsigned(7 downto 0);signal n27 : unsigned(7 downto 0) := "00000000";signal n28 : unsigned(7 downto 0);signal n29 : unsigned(7 downto 0) := "00000000";signal n30 : unsigned(7 downto 0);signal n31 : unsigned(7 downto 0);signal n32 : unsigned(15 downto 0);signal n33 : unsigned(15 downto 0) := "0000000000000000";signal n34 : unsigned(7 downto 0);signal n35 : unsigned(7 downto 0);signal n36 : unsigned(15 downto 0);signal n37 : unsigned(15 downto 0) := "0000000000000000";beginprocess (clock_c) begin if rising_edge(clock_c) then if i5 = "1" then n1 <= "0000000000000000"; elsif i4 = "1" then n1 <= i1; end if; end if;end process;n2 <= 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);n3 <= 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 <= "0000000000000000"; elsif i4 = "1" then n4 <= i2; end if; end if;end process;n5 <= 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);n6 <= 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 <= "00000000"; 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 <= "00000000"; 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 <= "00000000"; 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 <= "00000000"; 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 "000000000" => n11 <= "0111111100000000"; when "000000001" => n11 <= "0111111111111111"; when "000000010" => n11 <= "0111111111111110"; when "000000011" => n11 <= "0111111111111101"; when "000000100" => n11 <= "0111111111111100"; when "000000101" => n11 <= "0111111111111100"; when "000000110" => n11 <= "0111111111111011"; when "000000111" => n11 <= "0111111111111010"; when "000001000" => n11 <= "0111111111111001"; when "000001001" => n11 <= "0111111111111000"; when "000001010" => n11 <= "0111111111111000"; when "000001011" => n11 <= "0111111111110111"; when "000001100" => n11 <= "0111111111110110"; when "000001101" => n11 <= "0111111111110101"; when "000001110" => n11 <= "0111111111110101";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -