30 lines
692 B
VHDL
30 lines
692 B
VHDL
|
ARCHITECTURE Spartan2 OF blockRAM IS
|
||
|
|
||
|
subtype register_type is std_ulogic_vector(dataBitNb-1 downto 0);
|
||
|
type memory_type is array (0 to 2**addressBitNb-1) of register_type;
|
||
|
|
||
|
signal memoryArray : memory_type;
|
||
|
|
||
|
BEGIN
|
||
|
|
||
|
portA: process(clock)
|
||
|
begin
|
||
|
if rising_edge(clock) then
|
||
|
if (en = '1') then
|
||
|
if (write = '1') then
|
||
|
memoryArray(to_integer(addr)) <= dataIn;
|
||
|
end if;
|
||
|
if reset = '1' then
|
||
|
dataOut <= (others => '0');
|
||
|
elsif (write = '1') then
|
||
|
dataOut <= dataIn;
|
||
|
else
|
||
|
dataOut <= memoryArray(to_integer(addr));
|
||
|
end if;
|
||
|
end if;
|
||
|
end if;
|
||
|
end process portA;
|
||
|
|
||
|
END ARCHITECTURE Spartan2;
|
||
|
|