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

📄 rom.vhdl

📁 宇航级微处理器LEON2 2.2 VHDL源代码,很难找的.
💻 VHDL
字号:
----------------------------------------------------------------------------------- ROM core VHDL template. See the macro description included-- behind this frame.---- Copyright (C) 2000 Rudolf Matousek <matousek@utia.cas.cz>---- This code may be used under the terms of Version 2 of the GPL,-- read the file COPYING for details.-----------------------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity ROM is    port(      clk : in std_logic;      csn : in std_logic;      addr : in std_logic_vector (29 downto 0);      data : out std_logic_vector (31 downto 0)      );end ROM;architecture rtl of ROM is  signal raddr : std_logic_vector(7 downto 0);  signal d : std_logic_vector(31 downto 0);  attribute syn_romstyle : string;  attribute syn_romstyle of d : signal is "select_rom";  begin  p : process(raddr)  begin    case raddr is    when "00000000" => d <= "10000010000100000010000000000010";    when "00000001" => d <= "10000001100100000100000000000000";    when "00000010" => d <= "00000011000000000000000000000100";    when "00000011" => d <= "10000010000100000110000011000000";    when "00000100" => d <= "10000001100010000110000000100000";    when "00000101" => d <= "00000001000000000000000000000000";    when "00000110" => d <= "00000001000000000000000000000000";    when "00000111" => d <= "00000001000000000000000000000000";    when "00001000" => d <= "00000011000000000000000000000000";    when "00001001" => d <= "10000010000100000110001011111000";    when "00001010" => d <= "11011100000000000100000000000000";    when "00001011" => d <= "00000011001000000000000000000000";    when "00001100" => d <= "11000010000000000110000000010100";    when "00001101" => d <= "01000000000000000000000010011010";    when "00001110" => d <= "10011100001000111010000001000000";    when "00001111" => d <= "10010001110100000010000000000000";    when "00010000" => d <= "11000110000010100000000000000000";    when "00010001" => d <= "10000000101000001110000000000000";    when "00010010" => d <= "00000010100000000000000000001100";    when "00010011" => d <= "00010011001000000000000000000000";    when "00010100" => d <= "11000100000000100110000001110100";    when "00010101" => d <= "10000000100010001010000000000100";    when "00010110" => d <= "00000010101111111111111111111110";    when "00010111" => d <= "10000100000010001110000011111111";    when "00011000" => d <= "11000100001000100110000001110000";    when "00011001" => d <= "10010000000000100010000000000001";    when "00011010" => d <= "11000110000010100000000000000000";    when "00011011" => d <= "10000000101000001110000000000000";    when "00011100" => d <= "00010010101111111111111111111000";    when "00011101" => d <= "00000001000000000000000000000000";    when "00011110" => d <= "10000001110000111110000000001000";    when "00011111" => d <= "00000001000000000000000000000000";    when "00100000" => d <= "00010011001000000000000000000000";    when "00100001" => d <= "11000100000000100110000001110100";    when "00100010" => d <= "10000000100010001010000000000001";    when "00100011" => d <= "00000010101111111111111111111110";    when "00100100" => d <= "00000001000000000000000000000000";    when "00100101" => d <= "11000100000000100110000001110000";    when "00100110" => d <= "10000110000010001010000011111111";    when "00100111" => d <= "10000000101000001110000000001101";    when "00101000" => d <= "00000010100000000000000000000101";    when "00101001" => d <= "11000100001010100000000000000000";    when "00101010" => d <= "10000000101000001110000000001010";    when "00101011" => d <= "00110010101111111111111111110110";    when "00101100" => d <= "10010000000000100010000000000001";    when "00101101" => d <= "10000001110000111110000000001000";    when "00101110" => d <= "00000001000000000000000000000000";    when "00101111" => d <= "10010110000100000000000000001000";    when "00110000" => d <= "10010000000100000010000000000000";    when "00110001" => d <= "10000000101000100000000000001011";    when "00110010" => d <= "00010110100000000000000000001101";    when "00110011" => d <= "10010100000100000010000000000000";    when "00110100" => d <= "11000100000010100100000000001010";    when "00110101" => d <= "10000000101000001010000001000000";    when "00110110" => d <= "00101000100000000000000000000011";    when "00110111" => d <= "10000100000000001011111111010000";    when "00111000" => d <= "10000100000000001011111111001001";    when "00111001" => d <= "10000111001010100010000000000100";    when "00111010" => d <= "10000100000010001010000011111111";    when "00111011" => d <= "10010100000000101010000000000001";    when "00111100" => d <= "10000000101000101000000000001011";    when "00111101" => d <= "00000110101111111111111111110111";    when "00111110" => d <= "10010000000100001100000000000010";    when "00111111" => d <= "10000001110000111110000000001000";    when "01000000" => d <= "00000001000000000000000000000000";    when "01000001" => d <= "10011101111000111011111110011000";    when "01000010" => d <= "10010000000100000010000000000011";    when "01000011" => d <= "11010000001001100110000000001000";    when "01000100" => d <= "11010010000011100010000000000001";    when "01000101" => d <= "10010000000000100111111111001111";    when "01000110" => d <= "10010000000010100010000011111111";    when "01000111" => d <= "10000000101000100010000000000010";    when "01001000" => d <= "00011000100000000000000000001010";    when "01001001" => d <= "10100000000100000010000000000000";    when "01001010" => d <= "10010000000100000010000000000001";    when "01001011" => d <= "01111111111111111111111111100100";    when "01001100" => d <= "10010010000001100010000000000001";    when "01001101" => d <= "10010000000000100010000000000001";    when "01001110" => d <= "10010010000100000010000000000001";    when "01001111" => d <= "10100001001010100010000000000001";    when "01010000" => d <= "00010000100000000000000000010101";    when "01010001" => d <= "11010010001001100110000000001000";    when "01010010" => d <= "10010000000000100111111111001001";    when "01010011" => d <= "10010000000010100010000011111111";    when "01010100" => d <= "10000000101000100010000000000010";    when "01010101" => d <= "00011000100000000000000000001010";    when "01010110" => d <= "10010000000100000010000000000001";    when "01010111" => d <= "01111111111111111111111111011000";    when "01011000" => d <= "10010010000001100010000000000001";    when "01011001" => d <= "10010100000100000010000000001011";    when "01011010" => d <= "10010100001000101000000000001000";    when "01011011" => d <= "10010010000100000010000000000010";    when "01011100" => d <= "10100001001010101010000000000001";    when "01011101" => d <= "00010000100000000000000000001000";    when "01011110" => d <= "11010010001001100110000000001000";    when "01011111" => d <= "10010000000010100110000011111111";    when "01100000" => d <= "10000000101000100010000000110000";    when "01100001" => d <= "00010010100000000000000000000101";    when "01100010" => d <= "10010000000100000000000000010000";    when "01100011" => d <= "10100000000100000010000000000100";    when "01100100" => d <= "11000000001001100110000000001000";    when "01100101" => d <= "10010000000100000000000000010000";    when "01100110" => d <= "01111111111111111111111111001001";    when "01100111" => d <= "10010010000001100010000000000100";    when "01101000" => d <= "11010000001001100100000000000000";    when "01101001" => d <= "10010000000100000010000000000010";    when "01101010" => d <= "01111111111111111111111111000101";    when "01101011" => d <= "10010010000001100010000000000010";    when "01101100" => d <= "10010001001010100010000000000001";    when "01101101" => d <= "10010000001000100000000000010000";    when "01101110" => d <= "10010010000001000010000000000100";    when "01101111" => d <= "10010010000001100000000000001001";    when "01110000" => d <= "10010000000000100011111111111110";    when "01110001" => d <= "11010010001001100110000000001100";    when "01110010" => d <= "11010000001001100110000000000100";    when "01110011" => d <= "10000001110001111110000000001000";    when "01110100" => d <= "10000001111010000000000000000000";    when "01110101" => d <= "00000000000000000000000000000001";    when "01110110" => d <= "01110011011101000110000101110010";    when "01110111" => d <= "01110100011010010110111001100111";    when "01111000" => d <= "00100000011100000111001001101111";    when "01111001" => d <= "01100111011100100110000101101101";    when "01111010" => d <= "00111010001000000000101000000000";    when "01111011" => d <= "10011101111000111011111110011000";    when "01111100" => d <= "11010000000001100010000000001000";    when "01111101" => d <= "10000000101000100010000000000001";    when "01111110" => d <= "00100010100000000000000000000111";    when "01111111" => d <= "11010000000001100010000000000100";    when "10000000" => d <= "00001010100000000000000000011101";    when "10000001" => d <= "10000000101000100010000000000010";    when "10000010" => d <= "00100010100000000000000000010110";    when "10000011" => d <= "11100000000001100000000000000000";    when "10000100" => d <= "00110000100000000000000000011001";    when "10000101" => d <= "10100000000100000010000000000000";    when "10000110" => d <= "10010001001100100010000000000001";    when "10000111" => d <= "10000000101001000000000000001000";    when "10001000" => d <= "00011010100000000000000000010101";    when "10001001" => d <= "00000001000000000000000000000000";    when "10001010" => d <= "11010100000001100010000000001100";    when "10001011" => d <= "10010011001011000010000000000001";    when "10001100" => d <= "10010010000000101000000000001001";    when "10001101" => d <= "01111111111111111111111110100010";    when "10001110" => d <= "10010000000100000010000000000010";    when "10001111" => d <= "11010100000001100000000000000000";    when "10010000" => d <= "11010000001010101000000000010000";    when "10010001" => d <= "11010010000001100010000000000100";    when "10010010" => d <= "10100000000001000010000000000001";    when "10010011" => d <= "10010011001100100110000000000001";    when "10010100" => d <= "10000000101001000000000000001001";    when "10010101" => d <= "00101010101111111111111111110110";    when "10010110" => d <= "11010100000001100010000000001100";    when "10010111" => d <= "00110000100000000000000000000110";    when "10011000" => d <= "00010001000000000000000000000000";    when "10011001" => d <= "01111111111111111111111101110111";    when "10011010" => d <= "10010000000100100010000111011000";    when "10011011" => d <= "10011111110001000000000000000000";    when "10011100" => d <= "00000001000000000000000000000000";    when "10011101" => d <= "10000001110001111110000000001000";    when "10011110" => d <= "10000001111010000000000000000000";    when "10011111" => d <= "00000000000000000000000000000001";    when "10100000" => d <= "01001100010001010100111101001110";    when "10100001" => d <= "00100000010100110010110101010010";    when "10100010" => d <= "01100101011000110110111101110010";    when "10100011" => d <= "01100100001000000110110001101111";    when "10100100" => d <= "01100001011001000110010101110010";    when "10100101" => d <= "00001010000010100000110100111110";    when "10100110" => d <= "00100000000000000000000000000000";    when "10100111" => d <= "10011101111000111011111010000000";    when "10101000" => d <= "01000000000000000000000000010111";    when "10101001" => d <= "00000001000000000000000000000000";    when "10101010" => d <= "00010001000000000000000000000000";    when "10101011" => d <= "01111111111111111111111101100101";    when "10101100" => d <= "10010000000100100010001010000000";    when "10101101" => d <= "10100010000001111011111011111000";    when "10101110" => d <= "10100000000001111011111011100000";    when "10101111" => d <= "01111111111111111111111101110001";    when "10110000" => d <= "10010000000100000000000000010001";    when "10110001" => d <= "11010100000011111011111011111000";    when "10110010" => d <= "10010000000100000000000000010001";    when "10110011" => d <= "10000000101000101010000001010011";    when "10110100" => d <= "00000010100000000000000000000101";    when "10110101" => d <= "10010010000100000000000000010000";    when "10110110" => d <= "10000000101000101010000001110011";    when "10110111" => d <= "00010010101111111111111111111000";    when "10111000" => d <= "00000001000000000000000000000000";    when "10111001" => d <= "01111111111111111111111110001000";    when "10111010" => d <= "00000001000000000000000000000000";    when "10111011" => d <= "01111111111111111111111111000000";    when "10111100" => d <= "10010000000100000000000000010000";    when "10111101" => d <= "00110000101111111111111111110010";    when "10111110" => d <= "01000000001111111111111111110000";    when "10111111" => d <= "00010001001000000000000000000000";    when "11000000" => d <= "11000100000000100010000000010100";    when "11000001" => d <= "10000000100010001010000000000011";    when "11000010" => d <= "00010010100000000000000000000111";    when "11000011" => d <= "00000101000000000000000000101010";    when "11000100" => d <= "10000001110110000010000000000000";    when "11000101" => d <= "00000101000000000000000001000000";    when "11000110" => d <= "10000100000100001010000000001111";    when "11000111" => d <= "11000100001000100010000000010100";    when "11001000" => d <= "00000101000000000000000000101010";    when "11001001" => d <= "10000100000100001010001000000000";    when "11001010" => d <= "11000100001000100010000010100100";    when "11001011" => d <= "11000000001000100010000010010000";    when "11001100" => d <= "11000000001000100010000010010100";    when "11001101" => d <= "11000000001000100010000010011000";    when "11001110" => d <= "10000100000100000011111111111111";    when "11001111" => d <= "11000100001000100010000001000100";    when "11010000" => d <= "10000110000100000010000000000111";    when "11010001" => d <= "11000110001000100010000001001000";    when "11010010" => d <= "11000000001000100010000001110100";    when "11010011" => d <= "11000000001000100010000010000100";    when "11010100" => d <= "10000100000100000010000000000011";    when "11010101" => d <= "11000100001000100010000001111000";    when "11010110" => d <= "11000100001000100010000010001000";    when "11010111" => d <= "10000001110000111110000000001000";    when "11011000" => d <= "00000001000000000000000000000000";    when "11011001" => d <= "00000000000000000000000000000001";    when "11011010" => d <= "00000000000000000000000000000001";    when "11011011" => d <= "00000000000000000000000000000001";    when others => d <= (others => '-');    end case;  end process;  r : process (clk)  begin    if rising_edge(clk) then      if csn = '0' then raddr <= addr(7 downto 0); end if;    end if;  end process;  data <= d;end rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -