La

boratorium 8

Temat: Pamięć RAM. Typ tablicowy (array), instrukcja loop i pętla for.

1. Układ pamięci 8x8 (8 komórek, 8 bitowych) gdzie:data_in (7...0) – dane wejściowe

data_out (7...0) – dane wyjściowe

adres (2..0) – wejście adresowe

nr_w – wejście sterujące (zapis/odczyt) 2. Realizacja w języku VHDL (fragmenty) entity:

port ( clk,reset

:in std_logic;

-- zegar, reset

data_in

:in std_logic_vector (7 downto 0);

-- wejście danych

data_out

:out std_logic_vector (7 downto 0);

-- wyjście danych

adres

:in std_logic_vector (2 downto 0);

-- wejście adresowe

nr_w

:in std_logic); -- kierunek transmisji danych (not read write) architecture:

-- definicja bloków pamięci, typ tablicowy (8 bloków po 8-bit std_logic_vector's) type rejestry is array (7 downto 0) of std_logic_vector (7 downto 0); signal pamiec : rejestry;

--definicja pamięci RAM (typu rejestry) begin

-- programowanie rejestrów (nr_w='1'): process (clk, reset)

begin

if reset = '0' then

-- zerowanie pamięci, instrukcja loop i pętla for: for index in 0 to 7 loop pamiec(index) <= "00000000"; end loop;

...

elsif clk'event and clk ='1' then if nr_w = '1' then

-- zapis do pamięci

case adres is

when "000" => pamiec(0) <= data_in;

...

else

-- odczyt pamięci

...

end prosess;

3. Zadania do realizacji: a) Zrealizować układ pamięci, przeprowadzić symulację Projektowanie układów VLSI

© 2005 Copyright by Tomasz Fałat