Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA.

Podobne dokumenty
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Instrukcje do zajęć laboratoryjnych. Laboratorium z przedmiotu:

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Projekt prostego procesora

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

4. Karta modułu Slave

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Systemy Czasu Rzeczywistego FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 1 (3h) Wprowadzenie do systemu Quartus II

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Projektowanie Systemów Wbudowanych

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Projektowanie Urządzeń Cyfrowych

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Technika Mikroprocesorowa

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Systemy uruchomieniowe

dokument DOK wersja 1.0

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Instrukcja do ćwiczenia : Matryca komutacyjna

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Organizacja typowego mikroprocesora

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

WPROWADZENIE Mikrosterownik mikrokontrolery

Laboratorium z podstaw techniki cyfrowej Studia inżynierskie niestacjonarne/stacjonarne, II rok III semestr, 2016/2017. W ramach laboratorium używamy:

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Projektowanie z użyciem procesora programowego Nios II

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Architektura komputerów. Układy wejścia-wyjścia komputera

Karta katalogowa JAZZ OPLC JZ20-R31

Sterownik kompaktowy Theben PHARAO II

Scalone układy programowalne FPGA.

Systemy Czasu Rzeczywistego FPGA

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Systemy Czasu Rzeczywistego FPGA

Instytut Teleinformatyki

Projektowania Układów Elektronicznych CAD Laboratorium

Bezpieczeństwo informacji oparte o kryptografię kwantową

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

2. Architektura mikrokontrolerów PIC16F8x... 13

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Ćwiczenie Digital Works 003 Układy sekwencyjne i kombinacyjne

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

Parametryzacja przetworników analogowocyfrowych

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Laboratorium przedmiotu Technika Cyfrowa

Układy programowalne. Wykład z ptc część 5

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Ćwiczenie D2 Przerzutniki. Wydział Fizyki UW

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Elementy cyfrowe i układy logiczne

System mikroprocesorowy i peryferia. Dariusz Chaberski

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

PROTOTYPOWANIE UKŁADÓW ELEKTRONICZNYCH Programowalne układy logiczne FPGA Maciej Rosół, Katedra Automatyki AGH,

JAZZ OPLC JZ20-R31/JZ20-J-R31

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

JAZZ OPLC JZ20-R10 i JZ20-R16

Ćw. 7: Układy sekwencyjne

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Opis układów wykorzystanych w aplikacji

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Programowany układ czasowy

Układy FPGA w przykładach, część 2

Opis przedmiotu zamówienia CZĘŚĆ 1

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Sposoby projektowania systemów w cyfrowych

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

(57) Tester dynamiczny współpracujący z jednej strony (13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1. (54) Tester dynamiczny

Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18

Pamięci półprzewodnikowe na podstawie książki: Nowoczesne pamięci

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Politechnika Śląska w Gliwicach

Programowalne Układy Cyfrowe Laboratorium

Temat: Pamięci. Programowalne struktury logiczne.

Karta katalogowa JAZZ OPLC. Modele JZ20-R10/JZ20-J-R10 i JZ20-R16/JZ20-J-R16

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA. Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów cyfrowych ES2C100005 studiów stacjonarnych II stopnia kierunku: Elektrotechnika Opracował: dr inż. Walenty Owieczko dr inż. Marian Gilewski Białystok 2013

1. Cel ćwiczenia. Celem ćwiczenia jest implementacja w strukturach programowalnych lub obsługa zewnętrznych pamięci RAM. Ogólny schemat modułu pamięci RAM przedstawiono rysunku 1a. Rys. 1. Moduł pamięci RAM o organizacji 32 komórek 8 bitowych. Zawiera on 32 słowa 8 bitowe, adresowane 5 bitową szyną adresową (Address ) oraz 8 bitową szynę danych (Data) i wejściowy sygnał sterujący (Write). Rozważymy dwa różne sposoby implementacji pamięci: wykorzystując dedykowane bloki pamięci w układzie FPGA, używając zewnętrznego układu pamięci. Układ Cyclone II 2C35 FPGA zamontowany na płycie DE2 zawiera dedykowane zasoby pamięciowe, zwane blokami M4K. Każdy taki blok zawiera pamięć 4096 bitową, która może być konfigurowalna w bloki o różnej organizacji. Stałym parametrem jest współczynnik kształtu, określony iloczynem liczby słów (komórek) i długością słowa, wyrażony w bitach. Przykładowo, blok M4K może być organizowany w struktury: 4k x 1, 2k x 2, 1k x 4 oraz 512 x 8. W ćwiczeniu będziemy użytkować blok 512 x 8, wykorzystując pierwsze 32 słowa pamięci. Istnieją dwie ważne cechy M4K o których należałoby wspomnieć. Po pierwsze, zawiera on rejestry, które mogą zsynchronizować wszystkie sygnały wejściowe i wyjściowe z sygnałem zegarowym. Po drugie M4K posiada oddzielne wejściowe i wyjściowe szyny danych. Wymagania synchronizacji M4K dotyczą portów wejściowych, portu wyjściowego lub wszystkich jednocześnie. Wymagania te będziemy implementować modyfikując moduł RAM 32 x 8 pokazany na rysunku 1b. Zawiera on rejestry: szyny adresowej, wejściowej szyny danych, sygnału sterującego zapisem i nie buforowanej wyjściowej szyny danych.

2. Część pierwsza. Stosowanie w systemie Quartus II struktur logicznych takich jak: sumatory, rejestry, liczniki i pamięci może odbywać się z zastosowaniem biblioteki elementów parametryzowalnych LPM. W przypadku syntezy pamięci RAM w wydzielonych blokach pamięci FPGA postępujemy podobnie jak w poprzednim ćwiczeniu używając modułu MegaWizard. Przy czym istnieje możliwość syntezy pamięci RAM: 1 portowej, 2 portowej, 3 portowej lub typu FIFO. W ćwiczeniu ograniczymy się do badania pamięci jednoportowej. 1. Utwórz nowy projekt w systemie Quartus II przypisując odpowiedni chip Cyclone II. 2. Za pomocą MegaWizard wybierz element RAM: 1 PORT. Kolejne menu służy do zadawania podstawowych parametrów pamięci: - długości słowa danych, - liczby słów pamięci głębokości pamięci, - miejsce lokalizacji w struktutrze FPGA (LCs, M4K, Auto), - sposób synchronizacji operacji zapisu i odczytu.

Kolejny krok jest podobny jak w przypadku syntezy pamięci ROM

Dość istotne ustawienie znajduje się na kolejnym ekranie konfiguracyjnym. Dotyczą one zachowania pamięci po starcie układu FPGA. Istnieje możliwość wskazania pliku konfigurującego wartość początkową pamięci. Pozostałe okna podsumowujące proces syntezy są podobne jak w przypadku pamięci ROM. 3. Na schemacie dołącz odpowiednie porty, układ skompiluj, zasymuluj, zaprogramuj i przetestuj. układ. Obejrzyj w raporcie kompilacji użycie 256 bitów w jednym z bloków 3. Część druga. Zamiast bezpośredniego konkretyzacji modułu LPM, możemy implementować pamięć poprzez specyfikację jej struktury w kodzie VHDL. Jest możliwe definiowanie pamięci jako wielowymiarowej macierzy. Macierz 32 x 8, zawierająca 32 słowa 8 bitowe deklarowana jest za pomocą instrukcji: TYPE mem IS ARRAY(0 TO 31) OF STD LOGIC VECTOR(7 DOWNTO 0); SIGNAL memory array : mem; W układzie Cyclone II FPGA taka pamięć może być implementowana poprzez zastosowanie zarówno przerzutników elementów logicznych jak i bardziej efektywnie z zastosowanie bloków M4K. Dwie drogi prowadzą do stosowania bloków M4K. Jedną z nich było użycie elementu parametryzowalnego w części pierwszej. Drugą jest stosowanie właściwego stylu kodowania w VHDL, z którego kompilator mógłby wnioskować, że powinien być użyty blok pamięci. Help programu Quartus II pokazuje jak to można zrobić na wybranych przykładach (Help for Inferred memory ). Wykonaj następujące kroki:

1. Utwórz nowy projekt. 2. Napisz kod programu zawierający niezbędne funkcje, pozwalające na implemetację RAM, dodaj niezbędne elementy opisane w części 2. 3. Podłącz piny, przełączniki i wyświetlacze. 4. Przetestuj układ jak poprzednio. 5. Skomentuj różnice jakie zaobserwowałeś w stosunku do części 2. 4. Część trzecia. Płyta DE2 zawiera SRAM chip IS61LV25616AL-10, który jest statyczną RAM zawierającą 256k 16 bitowych słów. SRAM zawiera 18 bitową szynę adresową A 17-0 i 16 bitową dwukierunkową magistralę danych I/O 15-0. Posiada również kilka wejściowych sygnałów sterujących:,,, i, opisanych w tabeli 1: Nazwa Znaczenie Chip enable zezwolenie dostępu, wymagane 0 w czasie pracy RAM Output enable zezwolenie odczytu, wymagane 0 podczas cyklu odczytu Write enable zezwolenie zapisu, wymagane 0 podczas cyklu zapisu Upper byte żądanie starszego bajtu, 0 przy zapisie i odczycie Lower byte - żądanie młodszego bajtu, 0 przy zapisie i odczycie Tab. 1. Sygnały sterujące SRAM. Opis operacji IS61LV25616AL opisano w danych katalogowych, dołączonych do pakietu DE2 na płycie CD. Dane katalogowe można również znaleźć za pomocą wyszukiwarki internetowej. Dane katalogowe opisują szereg operacji pamięci wraz obszerną listą ich charakterystyk czasowych. Na potrzeby niniejszego ćwiczenia należy zapewnić stan niski na wejściach,, i oraz kontrolować odczyt i zapis do pamięci sygnałem. Uproszczoną charakterystykę czasową odpowiadającą temu trybowi pokazano na rysunku 4. Część a pokazuje cykl odczytu pamięci, który rozpoczyna się gdy sygnał na szynie adresowej jest stabilny, zaś sygnał nie jest aktywny (jest równy 1). Pamięć wystawia stabilne dane na szynie danych I/O 15-0 po upływie czasu dostępu szyny adresowej (address access delay) t AA. Cykl odczytu kończy zmiana sygnału na szynie adresowej, stabilne dane wyjściowe pozostają jeszcze przez czas podtrzymywania (output hold time) t OHA. Rysunek poniżej przedstawia charakterystyki czasowe cyklu zapisu do pamięci. Cykl zapisu rozpoczyna się wystawieniem niskiego sygnału na linii i kończy się gdy sygnał ten wraca do poziomu wysokiego. Stabilny sygnał adresowy powinien w tym czasie utrzymywać się przez czas ustawiania (address setup time) t AW. Stabilne dane do zapisu na szynie danych powinny utrzymywać się przez czas ustawiania danych (data setup time) t SD, zanim sygnał powróci do stanu wysokiego.

Tabela 2 zawiera minimalne i maksymalne wartości parametrów czasowych z rysunku 4 pamięci SRAM. Wartość Parametr min maks t AA - 10 ns t OHA 3 ns - t AW 8 ns - t SD 6 ns - t HA - - t SA - - t HD - - Tab. 2. Parametry czasowe SRAM. Zrealizuj pamięć z pierwszej części wykorzystując zewnętrzną pamięć SRAM. Zachowuj ostrożność w implementacji poprawnej dwukierunkowej szyny danych. 1. Utwórz nowy projekt. Utwórz stosowny plik VHDL, umożliwiający ładowanie i odczyt pamięci. Zastosuj te same przełączniki, diody LED i wyświetlacze jak w częściach 2 i 3 oraz nazwy pinów podane w tabeli 3 do obsługi pamięci IS61LV25616AL. Zauważ, że nie będą wykorzystane wszystkie linie szyny adresowej oraz szyny danych IS61LV25616AL podczas organizacji pamięci 32 x 8. Niewykorzystane piny należy spolaryzować niskim poziomem.

Nazwa portu SRAM Nazwy pinówde2 A 17-0 SRAM_ADDR 17-0 I/O 15-0 SRAM_DQ 15-0 SRAM_CE_N SRAM_OE_N SRAM_WE_N SRAM_UB_N SRAM_LB_N Tab. 3. Nazwy pinów SRAM w DE2. 2. Skompiluj układ i załaduj FPGA. 3. Przetestuj układ zapisując i odczytując wartości wybranych, różnych komórek pamięci. 5. Część czwarta. Blok pamięci z poprzedniej części posiada tę samą szynę adresową dla operacji odczytu I zapisu. W tej części utwórz inny typ pamięci zawierający dwie szyny adresowe: jedną dla operacji odczytu i drugą dla operacji zapisu czyli dokonaj syntezy pamięci dwuportowej. Wykonaj następujące kroki: 1. Utwórz nowy projekt. Użyj ponownie MegaWizard Plug-in Manager do konkretyzacji RAM. 2. Dołącz wytworzony komponent do projektu. W celu obejrzenia zawartości RAM dodaj do projektu możliwość wyświetlania poszczególnych bajtów na wyświetlaczach HEX1 i HEX0. Przewiń adresy pamięci w celu wyświetlenia bajtów danych z 1 sekundowymi interwałami czasowymi. Adresy przeglądanych komórek wyświetl na HEX3 i HEX2. Użyj 50 MHz zegar, CLOCK_50 oraz KEY 0 jako wejścia zerującego. Użyj do obsługi szyny adresowej oraz szyny danych tych samych przełączników, diod LED i wyświetlaczy siedmiosegmentowych jak w pierwszej części ćwiczenia. Upewnij się, iż wejścia przełączników są zsynchronizowane z sygnałem zegarowym. 3. Przetestuj swój układ oraz zweryfikuj zawartość początkową pamięci. Upewnij się, iż możesz niezależnie zapisywać dane pod dowolny adres używając przełączników.. Literatura: 1. Barski M., Jędruch W.: Układy cyfrowe, podstawy projektowania i opisu w języku VHDL, Wydawnictwo Politechniki Gdańskiej, 2007. 2. IEEE-SA Standars Board: IEEE Standard VHDL Language reference manual, ieeexplore.ieee.org/iel5/7180/19335/00893288.pdf, USA, 2000. 3. Łuba T.: Synteza układów cyfrowych, WKiŁ, Warszawa, 2004. 4. Mano M.M., Kime Ch.R.: Podstawy projektowania układów logicznych i komputerów, NT, Warszawa 2007. 5. Skahill K.: Język VHDL Projektowanie programowalnych układów logicznych, WNT, Warszawa, 2001.