PAMIĘCI

Transkrypt

PAMIĘCI
LABORATORIUM
TECHNIKA CYFROWA
PAMIĘCI
Rev.1.1
LABORATORIUM TECHNIKI CYFROWEJ: PAMIĘCI
1. Cel ćwiczenia
•
Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania
oraz kontroli pamięci
2. Konspekt
Przy projektowaniu dostępne są bramki: AND, NAND, OR, NOR, XOR, XNOR, INV, przerzutniki, multipleksery oraz pamięci:
• RAM16x1S, RAM16x2S, RAM16x4S ... - pamięć z synchronicznym zapisem
(opóźnienie 1clk) i asynchronicznym odczytem. Sygnały: WE – Write Enable, D*Data (dane do zapisu), WCLK – Write clk (sygnał zegarowy do zapisu), A* - adres, O – Output (odczytywane dane).
• RAMB16_S1, RAMB16_S2, RAMB16_S4 ... – pamięć blokowa synchroniczna
(synchroniczny zapis i odczyt z opóźnieniem 1clk). Sygnały: WE – Write Enable,
EN- Enable – (sygnał Clock Enable), SSR – Synchronous Set / Reset (najlepiej nie
uŜywać i podłączyć do zera), DI- Data Input, DO – Data Output, DIP – Data Input
Parity (dadatkowy bit parzystości dla RAMB16_S9, RAMB16_S18 – nie uŜywać
tego wyprowadzenia), DOP – Data Output Parity.
• RAMB16_S1_S1, RAMB16_S2_S2, RAMB16_S4_S4 ... – podobnie jak
RAMB16_S1 ale pamięć dwuportowa – dwa niezaleŜne porty.
Wykorzystanie wspomnianych elementów zaleŜy od sformułowania konkretnego zadania
projektowego (wymagana jest konsultacja z prowadzącym).
Ocena: 3.0
1. Zaprojektować układ zapełniający po kolei wszystkie komórki pamięci kolejnymi wartościami uŜywając a) pamięci RAM16x?S, b) RAMB16_?S
2. Z pamięci o szerokości danych N-bitowej skonstruować pamięć o większej szerokości
magistrali danych 2N-bitowej, 4N-bitowej (uŜywając pamięci a) RAM16x?S, b)
RAMB16_S?).
3. Z pamięci o mniejszej pojemności zaprojektuj pamięci o a) 2, b) 4 razy większej pojemności, przy tej samej szerokości magistrali danych (uŜywając pamięci a) RAM16x?S, b)
RAMB16_S?).
4. Zaprojektuj układ zapisujący (i później odczytujący) konkretną wartość pod konkretną
lokację adresową (uŜywając pamięci a) RAM16x?S, b) RAMB16_S?).
5. UŜywając pamięci dwuportowej RAMB16_S?_S? zaprojektuj układ zapisujący (i później odczytujący) konkretną wartość pod konkretną lokację adresową na dwóch portach.
Zaobserwuj co się stanie w przypadku zapisu i odczytu spod tego samego adresu równocześnie na dwóch portach.
Ocena: 4.0
1. Moduł realizujący inwersję kolejności danych w pamięci (dane pod adresem 1 zamienienie są z danymi umieszczonymi pod adresem n-1, gdzie n jest to ilość lokacji adresowych pamięci). Wykorzystać pamięć dwuportową RAMB16_S?_S?.
KATEDRA ELEKTRONIKI AGH
2
LABORATORIUM TECHNIKI CYFROWEJ: PAMIĘCI
2. Zaprojektuj pamięci asynchroniczną przy odczycie i synchroniczną przy zapisie
uŜywając przerzutników typu D i multiplekserów, głębokość i rozmiar słowa –
wybrany przez prowadzącego.
3. Zaprojektować pamięć quasi-dwuportową: odczyt asynchroniczny na dwóch portach,
zapis synchroniczny tylko na jednym porcie. UŜyj przerzutników typu D oraz
multiplekserów, głębokość i rozmiar słowa – wybrany przez prowadzącego.
4. Zaprojektować układ odczytujący dane z dwóch pamięci, porównujący je oraz
zapisujący a) większą b) mniejszą z nich do trzeciej pamięci. Wykorzystać pamięci
RAM16X4S.
5. Sprawdzić działanie modułu SRL16: jest to rejestr przesuwny z szeregowym wpisem,
wejście adresowe A słuŜy do wyboru (przy uŜyciu multipleksera) stan którego
przerzutnika rejestru przesuwnego będzie wyprowadzany na wyjście Q.
6. Zaprojektuj bufor opóźniający o stałą liczbę taktów zegara N=2-16 (N- wybrane przez
prowadzącego) przy uŜyciu modułu SRL16.
Ocena: 5.0
1. Zaprojektować moduł histogramu, zbudowanego na pamięci dwuportowej
RAMB16_S4_S4, dla której drugi port słuŜy do odczytu i zerowania histogramu
2. Zaprojektować pamięć synchroniczną dwuportową 2x1 z uŜyciem przerzutników i
multiplekserów (sygnał zegarowy wspólny dla obu portów). Zapis moŜe następować
na dwóch portach równocześnie. Zaprojektować równieŜ układ sterujący sygnałem
'konflikt', który jest aktywny w momencie kiedy następuje równoczesny zapis pod ten
sam adres.
3. Zaprojektować układ FIFO (First-In First Out) z uŜyciem pamięci dwuportowej
RAMB16_S1_S1 i maksymalnej długości 8- 32.
4. Zaprojektować układ FIFO (First-In First Out) z uŜyciem rejestru przesuwnego
SRL16 i maksymalnej długości 8- 16.
5. Zaprojektować układ FIFO z uŜyciem pamięci dwuportowej RAMB16_S1_S1 i
maksymalnej długości 8- 16 z dodatkowymi sygnałami FULL i EMPTY.
6. Zaprojektować pamięć stosu, tj. układ (LIFO) Last-In First-Out z sygnałami FULL i
EMPTY o długości 8-16.
7. Zaprojektować moduł histogramu z uŜyciem pamięci RAMB4_S8_S8, dla której czas
potrzebny do obliczenia pojedynczego punktu wynosi 1 cykl zegara (podczas
obliczania histogramu jeden port słuŜy do odczytu a drugi do zapisu - naleŜy
uwzględnić sytuację konfliktową, podczas której dwa (lub więcej) następujące po
sobie punkty mają taką sama wartość.
3. Wykorzystywany sprzęt i oprogramowanie
•
•
•
Active-HDL v. 8.2
Xilinx ISE
Platforma Digilent Spartan-3
KATEDRA ELEKTRONIKI AGH
3
LABORATORIUM TECHNIKI CYFROWEJ: PAMIĘCI
4. Wykonanie ćwiczenia
4.1. BDE
Za pomocą programu Active-HDL (BDE) naleŜy narysować schemat zaprojektowanego układu (wybranego przez prowadzącego). Następnie naleŜy przeprowadzić symulację funkcjonalną przygotowanego układu. Otrzymane wyniki zaprezentować prowadzącemu.
4.2. Praktyczna realizacja projektu
Przesymulowany projekt układu naleŜy uruchomić przy uŜyciu platformy Digilent Spartan-3.
Przed implementacją układu naleŜy przyporządkować sygnały do odpowiednich portów determinując sposób wprowadzania danych oraz sposób reprezentacji danych wyjściowych.
Następnie przetestować działanie zaimplementowanego projektu. Otrzymane wyniki zaprezentować prowadzącemu.
5. Literatura
• Wykłady
• Teoria pamięci
• Opisy projektów pamięci
• Wprowadzenie do laboratorium PC
• Platforma Digilent Spartan-3 - manual
KATEDRA ELEKTRONIKI AGH
4