X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=cpu%2Fsrc%2Fr_w_ram_b.vhd;h=f795dc1ca76aa2be70245618bd11098931ac2c56;hb=1968f329b10681b760faec9369aa893cd2af8d44;hp=50c76606ce3e9e94a59edf1effef2b244779a337;hpb=3a77876f6d2b703aadd109b3ccd69f83e77fca8d;p=calu.git diff --git a/cpu/src/r_w_ram_b.vhd b/cpu/src/r_w_ram_b.vhd index 50c7660..f795dc1 100644 --- a/cpu/src/r_w_ram_b.vhd +++ b/cpu/src/r_w_ram_b.vhd @@ -1,24 +1,50 @@ +-- `Deep Thought', a softcore CPU implemented on a FPGA +-- +-- Copyright (C) 2010 Markus Hofstaetter +-- Copyright (C) 2010 Martin Perner +-- Copyright (C) 2010 Stefan Rebernig +-- Copyright (C) 2010 Manfred Schwarz +-- Copyright (C) 2010 Bernhard Urban +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + library ieee; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; +use work.mem_pkg.all; + architecture behaviour of r_w_ram is subtype RAM_ENTRY_TYPE is std_logic_vector(DATA_WIDTH -1 downto 0); type RAM_TYPE is array (0 to (2**ADDR_WIDTH)-1) of RAM_ENTRY_TYPE; - signal ram : RAM_TYPE; --:= (others=> x"00"); - + signal ram : RAM_TYPE := (others => x"00000000"); + begin process(clk) begin if rising_edge(clk) then - data_out <= ram(to_integer(UNSIGNED(rd_addr))); + data_out <= ram(to_integer(UNSIGNED(rd_addr))); + + if wr_en = '1' then ram(to_integer(UNSIGNED(wr_addr))) <= data_in; end if; end if; end process; + end architecture behaviour;