Subversion Repositories KoE_projects

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. LIBRARY ieee;
  2. USE ieee.std_logic_1164.ALL;
  3. USE ieee.numeric_std.ALL;
  4.  
  5. ENTITY ram IS
  6.         PORT
  7.         (
  8.                 clock                   : IN  std_logic;
  9.                 data                    : IN  std_logic_vector(15 DOWNTO 0);
  10.                 write_address                   : IN  std_logic_vector(8 DOWNTO 0);
  11.                 read_address                    : IN  std_logic_vector(8 DOWNTO 0);
  12.                 we                      : IN  std_logic;
  13.                 q                       : OUT std_logic_vector(15 DOWNTO 0)
  14.         );
  15. END ram;
  16.  
  17. ARCHITECTURE rtl OF ram IS
  18.         TYPE RAM IS ARRAY(0 TO 511) OF std_logic_vector(15 DOWNTO 0);
  19.  
  20.         SIGNAL ram_block : RAM;
  21. BEGIN
  22.         PROCESS (clock)
  23.         BEGIN
  24.                 IF (clock'event AND clock = '1') THEN
  25.                         IF (we = '0') THEN
  26.                             ram_block(to_integer(unsigned(write_address))) <= data;
  27.                         END IF;
  28.  
  29.                         q <= ram_block(to_integer(unsigned(read_address)));
  30.                 END IF;
  31.         END PROCESS;
  32. END rtl;
  33.