t/hn t StftJFt; ~ ■ '
process llbrary leee; use ieee.stdJoglc_1164.all; i jse leee.numeric_std.all; eottty my_ram >s
generic( v
ADDRESS_WIDTH : integer := 4; / * S * ^
DATA_WIDTH : integer := 8 M i S • ^
); r
poct(
dk : in stdjoglc;
data : In std_łogłc_vector(DATA_WIDTH -1 downto 0);
address : in stdJogic_vector(ADDRESS. WIDTH -1 downto 0);
we : in stdjoglc;
q : out std logić_vector(DATA_WIDTH -1 downto 0)
);
end my.ram;
j architecture behaviour of my_ram is
type ram is array(0 to 2 *• ADDRESS.WIDTH -1)
of std Jogic_vector(DATA_WIDTH -1 downto 0); signal ram.block: ram; begin
process (dk) begin
if (rtsłng_edge(dk)) then if (we ■ *1*) then
ram_bk)Ck(to_integer(unsłgned(address))) <■ data; end if;
q <■ ram_bkx*(to_integer(unsigned(address))); end if; end process;
end betawour;__________—J
Mariusz Rawski
; Parametry opisujące rozmiar pamięci RAM
Sygnały sterujące pracą pamięci RAM: | > dk - zegar
/'data -szyna danych >adress - szyna adresowa >we - zezwolenie zapisu
>q - szyna wyjściowa
Deklaracja bloku pamięci RAM jako macierzy o odpowiednich rozmiarach
_____ ___p '-tr-i ’ ri-eO- ^ -t
j Opis działania pamięci J J