Pamięci
Do dyspozycji są pamięci: RAM16x1, RAM16x1D, RAM16x1S z osobnym wejściem danych do
odczytu i zapisu oraz z asynchronicznym odczytem i asynchronicznym / synchronicznym
zapisem. Dla pamięci dwu-portowej RAM16x1D zapis może odbywać się tylko dla jednego
portu. Dodatkowo można użyć w pełni dwuportowej pamięci
blokowej: RAMB4_S?_S?. W projektach można użyć
predefiniowanych liczników binarnych CC.
Ocena 3.0
- Zaprojektować układ zerujący po kolei wszystkie komórki
pamięci.
- Zaprojektować pamięć 128x1 z użyciem pamięci RAM32x1 i
odpowiednio zasymulować zapis i odczyt tej pamięci.
- Zaprojektować pamięć synchroniczną jednoportową 4x1 z
użyciem przerzutników i multiplekserów.
- Zaprojektować pamięć synchroniczną dwuportową 4x1 z
użyciem przerzutników i multiplekserów (sygnał zegarowy wspólny dla obu portów).
Zapis tylko na jednym porcie.
- Mając pamięć SRAM 16x1 skonstruować interface, który
emulowałby pamięć DRAM (dodatkowe sygnały RASN (not RAS) i CASN, wspólna magistrala
do odczytu i zapisu danych).
- Realizacja funkcji: a) y=x2 y= LUT(x) (x=
0-7) b) y= 100/x y= LUT(x) (x= 1-7, zaokrąglanie w dół) z użyciem pamięci
LUT (Look Up Table). Nadawanie wartości poszczególnym komórkom pamięci odbywa się
podczas symulacji.
- Sprawdzić i pokazać podczas symulacji ewentualne konflikty (zapisu i odczytu pod ten
sam adres) dla pamięci dwuportowej a) RAM16x4D b) np. RAMB4_S4_S8.
Ocena 4.0
- Używając RAM16x4 oraz dodatkowych buforów
trójstanowych, rejestrów i dodatkowego sygnału Adr/NoData zaprojektuj pamięć w
której dane i adres nadawane i odbierane są na tej samej magisrali. Zatrzaskiwanie
informacji odbywa się przy narastającym sygnale zegarowym. W celu dokonania odczytu w
pierwszym cyklu zegara przesylany jest adres a w następnym cyklu zegara odbierane dane na
tej samej magistrali.
- Zaprojektuj bufor opóźniający o stałą wartoć n= 3-32
cykli zegara przy użyciu pamięci dwuportowej 16x1.
- Mając pamięć SRAM 16x1 skonstruować interface, który
emulowałby pamięć DRAM (dodatkowe sygnały RASN i CASN, wspólna magistrala do odczytu
i zapisu danych) pracującą w trybie Fast Page Mode (nie jest konieczne powtórne
nadawanie adresu wiersza).
- Moduł obliczający histogram - zaprojektować układ
inkrementujący o jeden w każdym cyklu zegara zawartość danej komórki pamięci (adres
komórki jest podawany podczas symulacji).
- Moduł obliczający histogram z możliwością odczytu i
zerowania.
Ocena 5.0
- Zaprojektować moduł histogramu, zbudowanego na pamięci
dwuportowej RAMB4_S8_S8, dla której drugi port służy do odczytu i zerowania histogramu
- 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ównoczenie. 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.
- Zaprojektować układ FIFO (First-In First Out) z użyciem
pamięci dwuportowej ram16x1D i maksymalnej długości 8- 32.
- Zaprojektować układ FIFO z użyciem pamięci dwuportowej
ram16x1D i maksymalnej długości 8- 16 z dodatkowymi sygnałami FULL i EMPTY.
- Zaprojektować pamięć stosu, tj. układ (LIFO) Last-In
First-Out z sygnałami FULL i EMPTY o długości 8-16.
Ocena 6.0
- Zaprojektować pamięć CAM (Content-Addressable Memory),
jest to pamięć, dla której podaje się na wejcie dane a na wyjciu wystawiany jest adres
komórki, pod którą zapisana jest dana wejciowa.
- 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ść.
Teoria
Opis Projektów