LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Podobne dokumenty
XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

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

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Systemy Czasu Rzeczywistego FPGA

Projektowanie automatów z użyciem VHDL

Systemy Czasu Rzeczywistego FPGA

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

Projekt prostego procesora

Systemy Czasu Rzeczywistego FPGA

Projektowanie Urządzeń Cyfrowych

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

Układy reprogramowalne i SoC Język VHDL (część 4)

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

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

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Specyfika projektowania Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski

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

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Programowalne układy logiczne

Modelowanie złożonych układów cyfrowych (1)

Programowalne układy logiczne

Projektowanie w VHDL

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

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Linia SDA służy do dwukierunkowego. przesyłania danych zawsze inicjuje master. Slave nie może zainicjować

Sposoby projektowania systemów w cyfrowych

Wstęp działanie i budowa nadajnika

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

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

Technika Cyfrowa. Badanie pamięci

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Technika Mikroprocesorowa

Systemy Czasu Rzeczywistego FPGA

Krótkie wprowadzenie do ModelSim i Quartus2

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

MMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu

Programowalne układy logiczne

DOKUMENTACJA PROJEKTU

PUCY Kolos 2: Reloaded

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: SYSTEMY CYFROWE 1.

CZ1. Optymalizacja funkcji przełączających

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

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

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Języki opisu sprzętu VHDL Mariusz Rawski

Układy reprogramowalne i SoC Język VHDL (część 3)

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji LABORATORIUM.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

Synteza strukturalna

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

Układy reprogramowalne i SoC Implementacja w układach FPGA

Architektura komputerów

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Ćw. 7: Układy sekwencyjne

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska,

Układy reprogramowalne i SoC Język VHDL (część 2)

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

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

Architektura komputerów

Programowalne układy logiczne

VHDL cz.1. Rafał Walkowiak IIn PP Wer

Podstawy Informatyki Elementarne podzespoły komputera

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowalne układy logiczne

Bezpieczeństwo informacji oparte o kryptografię kwantową

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Układy czasowo-licznikowe w systemach mikroprocesorowych

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

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

Pamięć operacyjna komputera

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

LABORATORIUM PODSTAWY ELEKTRONIKI REJESTRY

(przykład uogólniony)

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

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

Quartus. Rafał Walkowiak IIn PP Wer

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

TECHNIKA CYFROWA ELEKTRONIKA ANALOGOWA I CYFROWA. Badanie rejestrów

WPROWADZENIE Mikrosterownik mikrokontrolery

Transkrypt:

LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35

1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające przygotowanie studentów do zajęć laboratoryjnych. Zakres materiału obejmuje wykład i dokumenty wymienione w rozdziale Literatura. 3. Projekty Ocena: 3.0 1. Zaprojektować układ zapełniający po kolei wszystkie komórki pamięci: a) pamięci RAM16x?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żyj pamięci: a) RAM16x?S, 3. Z pamięci o mniejszej pojemności zaprojektuj pamięć o a) 2, b) 4 razy większej pojemności, przy tej samej szerokości magistrali danych. Użyj pamięci: a) RAM16x?S, 4. Zasymuluj zapis i później odczyt trzech lub więcej konkretnych wartości pod konkretne lokację adresową. Użyj pamięci: a) RAM16x?S, 5. Używając pamięci dwuportowej RAMB16_S?_S? zasymuluj zapis i później odczyt konkretnych wartości pod konkretne 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 0 zamienienie są z danymi umieszczonymi pod adresem n-1, gdzie n jest to ilość lokacji adresowych pamięci). Wykorzystać pamięć dwuportową RAMB16_S?_S?. 2. Zaprojektuj pamięć asynchroniczną przy odczycie i synchroniczną przy zapisie używając przerzutników typu D i multiplekserów, głębokość i rozmiar słowa jest 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. KATEDRA ELEKTRONIKI AGH 2

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ść. 4. Literatura Wykłady http://www.fpga.agh.edu.pl/tc/tc_pliki/pamieci.ppt Teoria pamięci http://galaxy.uci.agh.edu.pl/~jamro/tc/pam_teoria.zip Opisy projektów pamięci http://galaxy.uci.agh.edu.pl/~jamro/tc/pamieci_projekty.zip 5. Przykładowe elementy biblioteczne w VHDL Przy projektowaniu można korzystać z języka VHDL (i pamięci zapisanych w tym języku: np. użyj ISE menu Edit /Language Templates/ VHDL/ Synthesis Constructs/ Coding Examples/ RAM) lub pamięci będących elementami biblioteki, np. unisim (użyj edytora schematu lub opisu biblioteki unisim): KATEDRA ELEKTRONIKI AGH 3

Pamięć roproszona (Distributed RAM) - podobna do RAM16x8S library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity rams_01 is port (CLK : in std_logic; WE : in std_logic; ADDR : in std_logic_vector(3 downto 0); DI : in std_logic_vector(7 downto 0); DO : out std_logic_vector(7 downto 0)); end rams_01; architecture syn of rams_01 is type ram_type is array (15 downto 0) of std_logic_vector (7 downto 0); signal RAM: ram_type; process (CLK) if CLK'event and CLK = '1' then if WE = '1' then RAM(conv_integer(ADDR)) <= DI; DO <= RAM(conv_integer(ADDR)) ; end syn; Pamięć Blokowa BRAM (podobna do RAMB16_S16) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity brams_01 is port (CLK : in std_logic; WE : in std_logic; ADDR : in std_logic_vector(9 downto 0); DI : in std_logic_vector(15 downto 0); DO : out std_logic_vector(15 downto 0)); end brams_01; architecture syn of brams_01 is type ram_type is array (1023 downto 0) of std_logic_vector (15 downto 0); signal RAM: ram_type; process (CLK) if CLK'event and CLK = '1' then if WE = '1' then KATEDRA ELEKTRONIKI AGH 4

RAM(conv_integer(ADDR)) <= DI; DO <= RAM(conv_integer(ADDR)) ; end syn; Pamięć dwuportowa Blokowa BRAM (podobna do RAMB16_S8_S8) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity brams_02 is port ( -- porta CLKA : in std_logic; WEA : in std_logic; ADDRA : in std_logic_vector(10 downto 0); DIA : in std_logic_vector(7 downto 0); DOA : out std_logic_vector(7 downto 0); -- portb CLKB : in std_logic; WEB : in std_logic; ADDRB : in std_logic_vector(10 downto 0); DIB : in std_logic_vector(7 downto 0); DOB : out std_logic_vector(7 downto 0)); end brams_02; architecture syn of brams_02 is type ram_type is array (2047 downto 0) of std_logic_vector (7 downto 0); shared variable RAM: ram_type; process (clka) if (clka'event and clka = '1') then if (WEA = '1') then RAM(conv_integer(ADDRA)) := DIA; DOA <= RAM(conv_integer(ADDRA)); process (clkb) if (clkb'event and clkb = '1') then if (WEB = '1') then RAM(conv_integer(ADDRB)) := DIB; DOB <= RAM(conv_integer(ADDRB)); KATEDRA ELEKTRONIKI AGH 5

end syn; 6. Przykładowe elementy biblioteczne w schemacie RAM16x1S, RAM16x2S, RAM16x4S... - pamięć rozproszona (Distibuted RAM) z synchronicznym zapisem (opóźnienie 1clk) i asynchronicznym odczytem. RAM16 - głębokość pamięci wynosi 16 bitów (4 linie adresowe). Szerokość magistrali danych jest zgodna z liczbą występującą przed S. 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 (Block RAM) synchroniczna (synchroniczny zapis i odczyt). RAMB16 - oznacza że wielkość pamięci wynosi 16kb. _S1, _S2,... oznacza szerokość magistrali danych w bitach. 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 (dodatkowy bit parzystości dla RAMB16_S9, RAMB16_S18 nie używać tego wyprowadzenia), DOP Data Output Parity. RAMB16_S1_S1, RAMB16_S2_S8, RAMB16_S4_S1... podobnie jak RAMB16_S1 ale pamięć dwuportowa dwa niezależne porty, szerokość bitowa magistrali danych każdego portu może być niezależnie określona. Wykorzystanie wspomnianych elementów zależy od sformułowania konkretnego zadania projektowego (wymagana jest konsultacja z prowadzącym). KATEDRA ELEKTRONIKI AGH 6