cw7.pdf

(85 KB) Pobierz
Ćwiczenie laboratoryjne 7
Temat: projektowanie układu pamięci RAM
Celem ćwiczenia jest zaprojektowanie i kompilacja układu pamięci RAM.
Projektowana pamięć RAM posiadać będzie 8-bitową szynę adresową , 8-bitową szynę
danych-dwukierunkową. Oprócz wejść adresowych i wejść danych układ pamięci posiadać
powinien trzy wejścia jednobitowe :
- osb – sygnał sterujący wyboru układu pamięci RAM
osb = 1 – wyjścia bloku pamięci RAM są w stanie wysokiej impedancji
- oeb – sygnał sterujący , oeb=0 informacja z bloku pamięci RAM pojawia się na na
magistrali danych
- web – sygnał strofujący zapisu danych do bloku pamięci RAM , aktywny gdy
web = 0
Osiem bitów pozwala na zaadresowanie 256 komórek pamięci
Wprowadzone dane ustawiamy przełącznikami
SW(0)-SW(7) , adres ustawiamy przełącznikami SW(8)-SW(15)
Przyciskami wprowadzamy sygnały csb , oeb , web.
Wprowadzany adres, pokazujemy szesnastkowo NA DWÓCH WYŚWIETLACZACH 7-
SEGMENTOWYCH. Na kolejnych dwóch wyświetlaczach pokazujemy wprowadzane dane
(szesnastkowo)
Zrealizowane ćwiczenia wymaga :
- zaprojektowania transkoderów do wyświetlania szesnastkowego
- zaprojektowanie komórki jednobajtowej (8bitowa)
- sprawdzenie poprawności działania przy pomocy symulatora
- przydzielenie pinów wejściowych i wyjściowych
- zaprogramowanie układu
- prezentacja działającego układu
Przykład
Pamięć o ośmiobitowej szynie danych i ośmiobitowej szynie zegarowej
p
data[7..0]
wren
address[7..0]
q[7..0]
dane[7..0]
INPUT
OUTPUT
wy[7..0]
VCC
zo
INPUT
VCC
a[7..0]
INPUT
VCC
clock
zegar
INPUT
VCC
Block type: AUTO
inst1
Rys. schemat funkcjonalny pamięci
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
986469212.051.png 986469212.062.png 986469212.073.png 986469212.078.png 986469212.001.png 986469212.002.png 986469212.003.png 986469212.004.png 986469212.005.png 986469212.006.png 986469212.007.png 986469212.008.png 986469212.009.png 986469212.010.png 986469212.011.png 986469212.012.png 986469212.013.png 986469212.014.png 986469212.015.png 986469212.016.png 986469212.017.png 986469212.018.png 986469212.019.png 986469212.020.png 986469212.021.png 986469212.022.png 986469212.023.png 986469212.024.png 986469212.025.png 986469212.026.png 986469212.027.png 986469212.028.png 986469212.029.png 986469212.030.png 986469212.031.png 986469212.032.png 986469212.033.png 986469212.034.png 986469212.035.png 986469212.036.png 986469212.037.png 986469212.038.png 986469212.039.png 986469212.040.png 986469212.041.png 986469212.042.png 986469212.043.png 986469212.044.png 986469212.045.png 986469212.046.png 986469212.047.png 986469212.048.png 986469212.049.png 986469212.050.png 986469212.052.png 986469212.053.png 986469212.054.png 986469212.055.png 986469212.056.png 986469212.057.png 986469212.058.png 986469212.059.png 986469212.060.png 986469212.061.png 986469212.063.png 986469212.064.png 986469212.065.png 986469212.066.png 986469212.067.png 986469212.068.png 986469212.069.png 986469212.070.png 986469212.071.png 986469212.072.png 986469212.074.png 986469212.075.png 986469212.076.png 986469212.077.png
 
PACKAGE ram_constants IS
constant DATA_WIDTH : INTEGER := 8;
constant ADDR_WIDTH : INTEGER := 8;
END ram_constants;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
LIBRARY lpm;
USE lpm.lpm_components.ALL;
LIBRARY work;
USE work.ram_constants.ALL;
ENTITY ram256x8 IS -- deklaracja portów pamięci
PORT ( data: IN STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0);
address: IN STD_LOGIC_VECTOR (ADDR_WIDTH-1 DOWNTO 0);
we, inclock, outclock: IN STD_LOGIC;
q: OUT STD_LOGIC_VECTOR (DATA_WIDTH - 1 DOWNTO 0));
END ram256x8;
ARCHITECTURE example OF ram256x8 IS
BEGIN
inst_1: lpm_ram_dq
GENERIC MAP (lpm_widthad => ADDR_WIDTH,
lpm_width => DATA_WIDTH)
PORT MAP (data => data, address => address, we => we,
inclock => inclock, outclock => outclock, q => q);
END example;
Zgłoś jeśli naruszono regulamin