Systemy Czasu Rzeczywistego FPGA

Podobne dokumenty
Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

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

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

Programowalne układy logiczne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Specyfika projektowania Mariusz Rawski

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

Projekt prostego procesora

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Projektowanie Urządzeń Cyfrowych

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

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Wyświetlacz siedmiosegmentowy

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

Projektowanie hierarchiczne Mariusz Rawski

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

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

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Programowalne układy logiczne

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

Projektowanie automatów z użyciem VHDL

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

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

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

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

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

Programowalne układy logiczne

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

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

PUCY Kolos 2: Reloaded

Krótkie wprowadzenie do ModelSim i Quartus2

Sposoby projektowania systemów w cyfrowych

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

Programowalne Układy Cyfrowe Laboratorium

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

DOKUMENTACJA PROJEKTU

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

Realizacja stopera na układzie Spartan-II przy uŝyciu pakietu Xilinx ISE

Wprowadzenie do laboratorium komputerowego część I

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

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

Instytut Teleinformatyki

Projektowanie w VHDL

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

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

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.

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

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

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

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Układy Cyfrowe laboratorium

Synteza strukturalna

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

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

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

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

Technika Cyfrowa Wprowadzenie do laboratorium komputerowego

Programowanie w językach asemblera i C

Projektowanie hierarchiczne Mariusz Rawski

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

Instytut Teleinformatyki

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Projektowanie Systemów Wbudowanych

Programowany układ czasowy

Instytut Teleinformatyki

Organizacja laboratorium. Zadania do wykonania w czasie laboratorium z części PSPICE

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

Opis przedmiotu zamówienia CZĘŚĆ 1

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

Hexcalcul (1) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Instrukcje sekwencyjne

Języki opisu sprzętu VHDL Mariusz Rawski

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.

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

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

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

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

Instytut Teleinformatyki

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

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

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

Instytut Teleinformatyki

Instytut Teleinformatyki

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

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

Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak

napięcie-częstotliwość

Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu

WYTYCZNE I ZALECENIA DO PRZYGOTOWANIA PRAC DYPLOMOWYCH INSTYTUTU INFORMATYKI I AUTOMATYKI KIERUNKU INFORMATYKA

Architektura typu Single-Cycle

Transkrypt:

01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 04 autor: mgr inż. Mateusz Baran

01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2 2 Wiadomości wstępne... 3 2.1 Niezbędne wiadomości... 3 2.2 Literatura:... 3 3 Przebieg laboratorium... 3 3.1 Zadanie 1. Na ocenę 3.0 (dst)... 3 3.2 Zadanie 2. Na ocenę 4.0 (db)... 5 3.3 Zadanie 3. Na ocenę 5.0 (bdb)... 6

01. Systemy Czasu Rzeczywistego FPGA 3 2 Wiadomości wstępne Pierwsza część niniejszej instrukcji zawiera podstawowe wiadomości teoretyczne dotyczące omawianego tematu. Poznanie tych wiadomości umożliwi prawidłowe zrealizowanie praktycznej części laboratorium. 2.1 Niezbędne wiadomości Przed laboratorium należy zapoznać się z podstawowymi pojęciami dotyczącymi budowy układów FPGA: zasoby logiczne FPGA (CLB, slice, pamięć Block RAM, mnożarki), zasoby połączeniowe (programowalne połączenia wewnętrze, IOB), podstawy języka VHDL. Podczas laboratorium będzie wykorzystywany układ Digilent Basys2 oparty o układ Xilinx Spartan3E-250. 2.2 Literatura: [1] Podstawowy opis architektury układów FPGA: http://www.csd.uoc.gr/~hy220/2009f/lectures/11_basic_fpga_arch.pdf [2] Szczegóły budowy wykorzystywanych układów FPGA: http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf [3] Podstawy języka VHDL: https://wiki.ittc.ku.edu/ittc/images/3/37/eecs_140_vhdl_tutorial.pdf 3 Przebieg laboratorium 3.1 Zadanie 1. Na ocenę 3.0 (dst) W zadaniu wykorzystamy instrukcję warunkową CASE (podobną do instrukcji switch z języka C) do sterowania wyświetlaczem siedmiosegmentowym. W języku VHDL instrukcja CASE ma następującą postać: CASE input(2 downto 0) IS WHEN "000" => output1 <= '1'; output2 <= '1'; WHEN "001" => output1 <= '0'; output2 <= '1'; WHEN "110" => output1 <= '1'; output2 <= '0'; WHEN OTHERS => output1 <= '0'; output2 <= '0';

01. Systemy Czasu Rzeczywistego FPGA 4 END CASE; Może ona występować, podobnie jak instrukcja IF, wyłącznie w procesach. Ponadto zawsze musimy pokryć wszystkie możliwe przypadki. Na ogół sprowadza się to do napisania warunku WHEN OTHERS. Z uwagi na wiele możliwych wartości sygnałów typu STD_LOGIC jawne wyliczenie wszystkich możliwości bywa mało praktyczne. W celu wykorzystania wyświetlacza siedmiosegmentowego musimy rozszerzyć nasz plik ograniczeń o odpowiadające mu wpisy: NET "sevenseg<0>" LOC = "L14"; NET "sevenseg<1>" LOC = "H12"; NET "sevenseg<2>" LOC = "N14"; NET "sevenseg<3>" LOC = "N11"; NET "sevenseg<4>" LOC = "P12"; NET "sevenseg<5>" LOC = "L13"; NET "sevenseg<6>" LOC = "M12"; NET "dp" LOC = "N13"; NET "anodes<3>" LOC = "K14"; NET "anodes<2>" LOC = "M13"; NET "anodes<1>" LOC = "J12"; NET "anodes<0>" LOC = "F12"; Następnie proszę rozszerzyć poniższy kod o tak, aby wyjście anodes było ustawiane na 1110, zaś wyjścia sevenseg i dp były sterowane przełącznikami. Proszę zanotować który przełącznik steruje którym segmentem wyświetlacza. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Switches_LEDs is Port ( switches : in STD_LOGIC_VECTOR(7 downto 0); LEDs : out STD_LOGIC_VECTOR(7 downto 0); clk : in STD_LOGIC; sevenseg : out STD_LOGIC_VECTOR(6 downto 0); dp : out STD_LOGIC; anodes : out STD_LOGIC_VECTOR(3 downto 0) ); end Switches_LEDs; architecture Behavioral of Switches_LEDs is begin

01. Systemy Czasu Rzeczywistego FPGA 5 end Behavioral; Następnie proszę przygotować dodać 32-bitowy licznik (na podstawie wcześniejszych laboratoriów) inkrementowany co takt zegara. Na wyświetlaczu będziemy wyświetlać bity od 27 do 24. Poniższy proces umożliwia wyświetlenie czterobitowego sygnału jako cyfry na wyświetlaczu siedmiosegmentowym: num: process(currentdigit) begin -- proszę uzupełnić case currentdigit is end case; end process; when "1111" => sevenseg <= "0001110"; --F when "1110" => sevenseg <= "0000110"; --E when "1101" => sevenseg <= "0100001"; --d when "1100" => sevenseg <= "1000110"; --C when "1011" => sevenseg <= "0000011"; --b when "1010" => sevenseg <= "0001000"; --A when "1001" => sevenseg <= "0010000"; --9 when "1000" => sevenseg <= "0000000"; --8 when "0111" => sevenseg <= "1111000"; --7 when "0110" => sevenseg <= "0000010"; --6 when "0101" => sevenseg <= "0010010"; --5 when "0000" => sevenseg <= "1000000"; --0 when others => sevenseg <= "0110110"; --??? Proszę uzupełnić brakujące przypadki oraz zastosować powyższy kod do wyświetlenia wymienionych wcześniej bitów licznika. Co się dzieje gdy brakuje któregoś z przypadków? Proszę zamieścić odpowiedź i kod projektu w sprawozdaniu. 3.2 Zadanie 2. Na ocenę 4.0 (db) Wcześniejsze zadanie wykorzystuje wyłącznie jedną z czterech części wyświetlacza siedmiosegmentowego. Niestety nie jest możliwe niezależne sterowanie segmentami dla poszczególnych części. Należy jednak pamiętać, że segment nie gaśnie natychmiast po odłączeniu napięcia dioda świeci jeszcze przez pewien krótki czas. Efekt ten jest wykorzystywany do wyświetlania różnych symboli na poszczególnych częściach wyświetlacza. Musimy cyklicznie przechodzić przez cztery stany, w każdym dając sygnał dla innej części wyświetlacza. Odpowiednią część będziemy wybierać za pomocą magistrali anodes i magistralę sevenseg będziemy ustawiali zgodnie z wartością, jaka ma być wyświetlana na danej części wyświetlacza. Jest to działanie podobne do mechanizmu stosowanego w monitorach kineskopowych. Zmianę uaktualnianej cyfry można przeprowadzać w tym samym procesie co inkrementację licznika. Należy pamiętać o dobraniu odpowiedniej częstotliwości odświeżania poprzez uzależnienie odświeżania od właściwych bitów licznika: case counter(??? downto???) is

01. Systemy Czasu Rzeczywistego FPGA 6 end case; when "00" =>??? when "01" =>??? when "10" =>??? when "11" =>??? when others =>??? Proszę zamieścić końcowy kod razem z krótkim komentarzem w sprawozdaniu. 3.3 Zadanie 3. Na ocenę 5.0 (bdb) Proszę tak zmodyfikować zarządzanie wyświetlaczem siedmiosegmentowym, aby wyświetlały się liczby przy podstawie 10 (zamiast 16). Proszę wyświetlać 12 najstarszych bitów licznika. Podpowiedź: VHDL nie umożliwia dzielenia przez 10 w taki sam sposób jak wspiera na przykład dodawanie. Proszę nie używać rdzeni IP w celu uzyskania odpowiedniej funkcjonalności, a jedynie poznane dotychczas konstrukcje językowe. Najprostsze rozwiązanie w ogóle nie opiera się o dzielenie.