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

Podobne dokumenty
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. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM 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. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

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

Krótkie wprowadzenie do ModelSim i Quartus2

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

Projekt prostego procesora

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Programowalne układy logiczne

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

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

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

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

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

Sposoby projektowania systemów w cyfrowych

Systemy Czasu Rzeczywistego FPGA

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

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

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

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

Quartus. Rafał Walkowiak IIn PP Wer

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

Wyświetlacz siedmiosegmentowy

Projektowanie Urządzeń Cyfrowych

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

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

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

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

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...

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

Proste układy sekwencyjne

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

Systemy Czasu Rzeczywistego FPGA

Specyfika projektowania Mariusz Rawski

Języki opisu sprzętu VHDL Mariusz Rawski

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL

Systemy cyfrowe z podstawami elektroniki i miernictwa Wyższa Szkoła Zarządzania i Bankowości w Krakowie Informatyka II rok studia dzienne

Modelowanie logiki rewersyjnej w języku VHDL

Instrukcje sekwencyjne

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

Projektowanie automatów z użyciem VHDL

Elektronika i techniki mikroprocesorowe

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Programowalne układy logiczne

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

TECHNIKA CYFROWA ELEKTRONIKA ANALOGOWA I CYFROWA. Badanie rejestrów

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

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Projektowanie Systemów Wbudowanych

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: PROGRAMOWALNE STRUKTURY LOGICZNE

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

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

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.

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

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Programowalne układy logiczne

Język opisu sprzętu VHDL

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

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

Automatyzacja i robotyzacja procesów produkcyjnych

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Projektowania Układów Elektronicznych CAD Laboratorium

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Państwowa Wyższa Szkoła Zawodowa

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

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Laboratorium przedmiotu Technika Cyfrowa

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

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

CZ1. Optymalizacja funkcji przełączających

Projektowanie hierarchiczne Mariusz Rawski

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

Układy Cyfrowe laboratorium

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

LABORATORIUM PODSTAW ELEKTRONIKI. Komputerowa symulacja układów różniczkujących

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

INSTYTUT INFORMATYKI POLITECHNIKI BIAŁOSTOCKIEJ

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

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.

Ćwiczenie nr 1 Temat: Ćwiczenie wprowadzające w problematykę laboratorium.

Ćw. 7: Układy sekwencyjne

Automat skończony FSM Finite State Machine

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

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

Projektowanie układów na schemacie

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów cyfrowych ES2C100005 studiów stacjonarnych II stopnia kierunku: Elektrotechnika Opracował: dr inż. Marian Gilewski Białystok 2008

1. Cel ćwiczenia. Celem ćwiczenia jest badanie przerzutników, rejestrów oraz przerzutników typu zatrzask w języku VHDL. 2. Część pierwsza. Układy FPGA firmy Altera zawierają przerzutniki przeznaczone do implementacji w układach użytkownika. W części czwartej ćwiczenia pokażemy, w jaki sposób to zrealizować. Jednak w części wstępnej ćwiczenia pokażemy, w jaki sposób implementować elementy pamiętające w FPGA bez korzystania przerzutników dedykowanych. Rysunek pierwszy przedstawia układ przerzutnika RS typu zatrzask. Sposób opisu tego układu w VHDL przedstawiono na rysunku 2. Jeżeli taki przerzutnik jest implementowany w strukturze FPGA zawierającej 4 - wejściowe tablice LUT, wówczas do jego realizacji wystarczy pojedyńcza tablica, jak to pokazano na rysunku 3a. - - A gated RS latch desribed the hard way LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY part1 IS PORT ( Clk, R, S : IN STD_LOGIC; Q : OUT STD_LOGIC); END part1; Rys. 1. Układ przerzutnika RS typu zatrzask. ARCHITECTURE Structural OF part1 IS SIGNAL R_g, S_g, Qa, Qb : STD_LOGIC ; ATTRIBUTE keep : boolean; ATTRIBUTE keep of R_g, S_g, Qa, Qb : SIGNAL IS true; BEGIN R_g <= R AND Clk; S_g <= S AND Clk; Qa <= NOT (R_g OR Qb); Qb <= NOT (S_g OR Qa); Q <= Qa; END Structural; Rys. 2. Specyfikacja przerzutnika RS za pomocą wyrażeń logicznych.

Rys. 3. Implementacja przerzutnika RS z rysunku 1. Chociaż przerzutnik można poprawnie realizować w pojedyńczej tablicy LUT, taka implementacja nie pozwala na obserwację wewnętrznych sygnałów takich jak R_g i S_g, gdyż nie ma możliwości wyprowadzenia ich z LUT jako sygnały wyjściowe. W celu zabezpieczenia tych wewnętrznych sygnałów w implementowanym układzie, konieczne jest użycie dyrektywy kompilatora w programie. Na rysunku 2 dyrektywa keep została umieszczona w wyniku użycia instrukcji VHDL ATTRIBUTE. Informuje ona kompilator systemu Quartus II o użyciu oddzielnych elementów logicznych dla każdego z sygnałów R_g, S_g, Qa oraz Qb. W czasie kompilacji programu tworzy się układ pokazany na rysunku 3b, zawierający 4 tablice LUT. Utwórz projekt przerzutnika RS w sposób następujący: 1. Utwórz nowy projekt przypisując mu chip Cyclone II EP2C35F672C6 płyty DE2. 2. Wygeneruj plik z kodem VHDL z rysunku 2 i przyłącz go do projektu. 3. Skompiluj program. Użyj Quartus II RTL Viewer do obejrzenia projektu układu na poziomie bramek z kodu źródłowego oraz Technology Viewer do obejrzenia implementacji przerzutnika jak to pokazano na rysunku 3b. 4. Utwórz plik wektora sygnałów testowych (VectorWaveform File,.vwf), który definiuje sygnały wejściowe i wyjściowe układu w procesie symulacji. Narysuj sygnały wejściowe, dokonaj symulacji i obejrzyj przebiegi sygnałów R_g, S_g, Qa oraz Qb. Sprawdź czy przerzutnik pracuje w sposób oczekiwany zarówno dla symulacji funkcjonalnej jak i czasowej. 3. Część druga. Na rysunku czwartym pokazano układ przerzutnika D typu zatrzask. Wykonaj następujące kroki: 1. Utwórz nowy projekt. Wygeneruj kod VHDL przerzutnika D w podobnym stylu jak to zrobiono na rysunku 2. Użyj dyrektywy keep w celu zapewnienia implementacji sygnałów R, S_g, R_g, Qa, i Qb w oddzielnych elementach logicznych. 2. Wybierz domyślny chip jako Cyclone II EP2C35F672C6 i skompiluj układ. Zastosuj moduł Technology Viewer do obejrzenia implementacji układu.

Rys. 4. Układ przerzutnika D typu zatrzask. 3. Zweryfikuj czy przerzutnik pracuje poprawnie dla wszystkich warunków wejściowych w wyniku symulacji funkcjonalnej zaś charakterystyki czasowe stosując czasową symulację. 4. Utwórz nowy projekt, który będzie zawierał implementację przerzutnika D zatrzask na płycie DE2. Projekt powinien zawierać top-level jednostkę projektową, zawierająca przydział portów wejściowych i wyjściowych do odpowiednich pinów FPGA płyty DE2. Umieść twój przerzutnik w jednostce top-level. Użyj przełącznika SW 0 do sterowania wejściem D, SW 1 jako wejście Clk, zaś wyjście Q podłącz do LEDR 0. 5. Dokonaj ponownej kompilacji projektu i zaprogramuj FPGA. 6. Przetestuj funkcjonowanie układu manipulując przełącznikami wejść D i Clk oraz obserwując wyjście Q. 4. Część trzecia. Rysunek piąty przedstawia układ przerzutnika typu D typu master-slave. Rys. 5. Układ przerzutnika D typu master-slave. Wykonaj następujące kroki: 1. Utwórz nowy projekt. Wygeneruj plik VHDL zawierający dwie kopie jednostek projektowych przerzutnika D typu zatrzask z części drugiej, definiujące przerzutnik typu master-slave. 2. Umieść w projekcie właściwe dla DE2 porty wejściowe i wyjściowe. Podłącz Q do LEDR 0. 3. Skompiluj projekt. 4. Użyj Technology Viewer do analizy rozmieszczenia a symulatora do weryfikacji pracy. 5. Zaprogramuj strukturę FPGA i przetestuj funkcjonowanie manipulując kluczami D i Clock oraz zaobserwuj zachowanie wyjścia Q.

5. Część czwarta. Rysunek 6 przedstawia układ z trzema różnymi elementami pamiętającymi: D zatrzask, przerzutnik D wyzwalany zboczem narastającym oraz przerzutnik D wyzwalany zboczem opadającym. Rys. 5. Schemat oraz przebiegi czasowe układu z części czwartej. Dokonaj implementacji i symulacji projektu w sposób następujący: 1. Utwórz nowy projekt. 2. Napisz plik VHDL zawierający trzy elementy pamięciowe. W tej części nie używaj więcej dyrektywy keep z poprzednich części. Rysunek 7 pokazuje behawioralny styl oprogramowania w VHDL przerzutnika D zatrzask z rysunku 4. Ten przerzutnik może być implementowany w pojedyńczej tablicy LUT. Użyj podobnego stylu kodowania do specyfikacji przerzutnika z rysunku 6. 3. Skompiluj program i zastosuj Technology Viewer do badania utworzonego układu. Sprawdź czy przerzutnik używa pojedyńczej tablicy LUT oraz czy opracowany przerzutnik używa przerzutników zawartych w układzie FPGA. 4. Utwórz plik testowy symulatora specyfikując wejścia i wyjścia układu. Narysuj przebiegi wejść D i Clock tak jak to przedstawiono na rysunku 6. Użyj funkcjonalnej symulacji w celu obserwacji sygnałów wyjściowych. Zaobserwuj różnice opisu behawioralnego poszczególnych elementów pamiętających.

LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY latch IS PORT ( D, Clk : IN STD_LOGIC ; Q : OUT STD_LOGIC) ; END latch ; ARCHITECTURE Behavior OF latch IS BEGIN PROCESS ( D, Clk ) BEGIN IF Clk = 1 THEN Q <= D ; END IF ; END PROCESS ; END Behavior ; Rys. 7. Behawioralny styl definicji przerzutnika D. 6. Część piąta. Chcielibyśmy wyświetlić heksadecymalną wartość 16-bitowej liczby A na siedmiosegmentowych wyświetlaczach HEX7-4. Chcielibyśmy również wyświetlić heksadecymalną wartość 16-bitowej liczby B na siedmiosegmentowych wyświetlaczach HEX3-0. Wartości A i B są wejściami układu sterowanymi przełącznikami SW 15-0. Realizowane jest to w sposób następujący: najpierw jest ustawiana wartość A i zapamiętywana w układzie a następnie jest ustawiana wartość B. 1. Utwórz nowy projekt w Quartus II, który będzie implementowany w module DE2. 2. Napisz kod programu w VHDL. Użyj KEY 0 jako źródła asynchronicznego sygnału zerującego poziomem niskim. Zastosuj KEY 1 jako źródło sygnału zegarowego. Skompiluj projekt. 3. Przypisz piny FPGA przełącznikom I wyświetlaczom siedmiosegmentowym. 4. Dokonaj powtórnej kompilacji. 5. Zbadaj funkcjonowanie układu manipulując przełącznikami i obserwując wyświetlacze. 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.