📄 rom1.vhd
字号:
-- Rom file for twiddle factors -- rom1.vhd contains64 points of 10 width -- for a64 point fft.LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;ENTITY rom1 ISGENERIC( data_width : integer :=10; address_width : integer :=6 ); PORT( address :in std_logic_vector (5 downto 0); datar : OUT std_logic_vector (data_width-1 DOWNTO 0); datai : OUT std_logic_vector (data_width-1 DOWNTO 0) );end rom1;ARCHITECTURE behavior OF rom1 IS BEGINprocess(address)begin case address is when "000000" => datar <= "0111111111";datai <= "0000000000"; --0 when "000001" => datar <= "0111110101";datai <= "1110011100"; --2 when "000010" => datar <= "0111011000";datai <= "1100111100"; --4 when "000011" => datar <= "0110101001";datai <= "1011100100"; --6 when "000100" => datar <= "0101101001";datai <= "1010010111"; --8 when "000101" => datar <= "0100011100";datai <= "1001010111"; --10 when "000110" => datar <= "0011000100";datai <= "1000101000"; --12 when "000111" => datar <= "0001100100";datai <= "1000001011"; --14 when "001000" => datar <= "0000000000";datai <= "1000000001"; --16 when "001001" => datar <= "1110011100";datai <= "1000001011"; --18 when "001010" => datar <= "1100111100";datai <= "1000101000"; --20 when "001011" => datar <= "1011100100";datai <= "1001010111"; --22 when "001100" => datar <= "1010010111";datai <= "1010010111"; --24 when "001101" => datar <= "1001010111";datai <= "1011100100"; --26 when "001110" => datar <= "1000101000";datai <= "1100111100"; --28 when "001111" => datar <= "1000001011";datai <= "1110011100"; --30 when "010000" => datar <= "0111111111";datai <= "0000000000"; --0 when "010001" => datar <= "0111111101";datai <= "1111001110"; --1 when "010010" => datar <= "0111110101";datai <= "1110011100"; --2 when "010011" => datar <= "0111101001";datai <= "1101101100"; --3 when "010100" => datar <= "0111011000";datai <= "1100111100"; --4 when "010101" => datar <= "0111000011";datai <= "1100001111"; --5 when "010110" => datar <= "0110101001";datai <= "1011100100"; --6 when "010111" => datar <= "0110001011";datai <= "1010111100"; --7 when "011000" => datar <= "0101101001";datai <= "1010010111"; --8 when "011001" => datar <= "0101000100";datai <= "1001110101"; --9 when "011010" => datar <= "0100011100";datai <= "1001010111"; --10 when "011011" => datar <= "0011110001";datai <= "1000111101"; --11 when "011100" => datar <= "0011000100";datai <= "1000101000"; --12 when "011101" => datar <= "0010010100";datai <= "1000010111"; --13 when "011110" => datar <= "0001100100";datai <= "1000001011"; --14 when "011111" => datar <= "0000110010";datai <= "1000000011"; --15 when "100000" => datar <= "0111111111";datai <= "0000000000"; --0 when "100001" => datar <= "0111101001";datai <= "1101101100"; --3 when "100010" => datar <= "0110101001";datai <= "1011100100"; --6 when "100011" => datar <= "0101000100";datai <= "1001110101"; --9 when "100100" => datar <= "0011000100";datai <= "1000101000"; --12 when "100101" => datar <= "0000110010";datai <= "1000000011"; --15 when "100110" => datar <= "1110011100";datai <= "1000001011"; --18 when "100111" => datar <= "1100001111";datai <= "1000111101"; --21 when "101000" => datar <= "1010010111";datai <= "1010010111"; --24 when "101001" => datar <= "1000111101";datai <= "1100001111"; --27 when "101010" => datar <= "1000001011";datai <= "1110011100"; --30 when "101011" => datar <= "1000000011";datai <= "0000110010"; --33 when "101100" => datar <= "1000101000";datai <= "0011000100"; --36 when "101101" => datar <= "1001110101";datai <= "0101000100"; --39 when "101110" => datar <= "1011100100";datai <= "0110101001"; --42 when "101111" => datar <= "1101101100";datai <= "0111101001"; --45 when "110000" => datar <= "0111111111";datai <= "0000000000"; --0 when "110001" => datar <= "0111111111";datai <= "0000000000"; --0 when "110010" => datar <= "0111111111";datai <= "0000000000"; --0 when "110011" => datar <= "0111111111";datai <= "0000000000"; --0 when "110100" => datar <= "0111111111";datai <= "0000000000"; --0 when "110101" => datar <= "0111111111";datai <= "0000000000"; --0 when "110110" => datar <= "0111111111";datai <= "0000000000"; --0 when "110111" => datar <= "0111111111";datai <= "0000000000"; --0 when "111000" => datar <= "0111111111";datai <= "0000000000"; --0 when "111001" => datar <= "0111111111";datai <= "0000000000"; --0 when "111010" => datar <= "0111111111";datai <= "0000000000"; --0 when "111011" => datar <= "0111111111";datai <= "0000000000"; --0 when "111100" => datar <= "0111111111";datai <= "0000000000"; --0 when "111101" => datar <= "0111111111";datai <= "0000000000"; --0 when "111110" => datar <= "0111111111";datai <= "0000000000"; --0 when "111111" => datar <= "0111111111";datai <= "0000000000"; --0 when others => for i in data_width-1 downto 0 loop datar(i)<='0';datai(i)<='0';end loop; end case;end process;END behavior;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -