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