Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

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

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

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

Wygląd okna aplikacji Project Navigator.

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

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

Programowalne Układy Cyfrowe Laboratorium

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Ukªady Kombinacyjne - cz ± I

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

Projektowanie układów na schemacie

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

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

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

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

Scalone układy programowalne FPGA.

1.Wstęp. 2.Generowanie systemu w EDK

Programowanie procesora Microblaze w środowisku SDK

Język opisu sprzętu VHDL

PROGRAMOWALNE STEROWNIKI LOGICZNE

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

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Parametryzacja przetworników analogowocyfrowych

ZL10PLD. Moduł dippld z układem XC3S200

MentorGraphics ModelSim

Krótkie wprowadzenie do ModelSim i Quartus2

SYSTEMY DEDYKOWANE W UKŁADACH PROGRAMOWALNYCH

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Satel Integra FIBARO

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

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

dokument DOK wersja 1.0

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

Ćwiczenie 26. Temat: Układ z bramkami NAND i bramki AOI..

Ćwiczenie 23. Temat: Własności podstawowych bramek logicznych. Cel ćwiczenia

Podstawy programowania w środowisku Totally Integration Automation Portal

Technika Cyfrowa Wprowadzenie do laboratorium komputerowego

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

Projektowanie z użyciem procesora programowego Nios II

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Szkolenia specjalistyczne

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie Systemów Wbudowanych

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

INSTRUKCJA UŻYTKOWANIA

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

Systemy Czasu Rzeczywistego FPGA

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

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

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Ćwiczenie 25 Temat: Interfejs między bramkami logicznymi i kombinacyjne układy logiczne. Układ z bramkami NOR. Cel ćwiczenia

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

TWORZENIE OD PODSTAW PROJEKTU W ŚRODOWISKU QUARTUS PRIME

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Projektowanie Urządzeń Cyfrowych

Bramki Instrukcja do laboratorium AGH w Krakowie Katedra Elektroniki Ernest Jamro Aktualizacja:

ZL19PRG. Programator USB dla układów PLD firmy Altera

Bezpieczeństwo informacji oparte o kryptografię kwantową

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Systemy Czasu Rzeczywistego FPGA

Projektowania Układów Elektronicznych CAD Laboratorium

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

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

ZL11PRG v.2. Uniwersalny programator ISP. Odpowiednik: Byte Blaster II DLC5 Programmer AT89ISP STK-200 Lattice ISP ARM Wiggler

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

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

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

SYSTEMY DEDYKOWANE W UKŁADACH PROGRAMOWALNYCH

2. Architektura mikrokontrolerów PIC16F8x... 13

Magistrale na schematach

WPROWADZENIE DO ŚRODOWISKA SCICOS

Laboratorium przedmiotu Technika Cyfrowa

SML3 październik

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

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Opis przedmiotu zamówienia CZĘŚĆ 1

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

MultiTool instrukcja użytkownika 2010 SFAR

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

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Transkrypt:

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI Pierwszy projekt w środowisku ISE Design Suite Xilinx 1. Zapoznanie ze środowiskiem Xilinx ISE Design oraz językiem opisu sprzętu Verilog, program obejmuje: tworzenie projektu w środowisku ISE Design 14.7, tworzenie symulacji Test Bench, synteza, fizyczna implementacja kodu w strukturze FPGA. Język Verilog: podstawowe pojęcia języka (blok entity, blok architekture, zmienne, sygnały, procesy, sekwencyjne i równolegle wykonanie instrukcji), definicja stałych, sygnałów i zmiennych, definicja procesu, instrukcje podstawień. Zasady wykonywania instrukcji opisanych językiem Verilog (równoległe oraz sekwencyjne wykonywanie programu). Umiejętność pisania prostych programów opisujących logikę w sposób behawioralny tworzenie procesów, tworzenie liczników/dzielników, rejestrów, operacje logiczne oraz arytmetyczne wykonywane na zmiennych i sygnałach, instrukcje warunkowe, instrukcje wyboru, podstawienia warunkowe. Zadania Proste struktury umożliwiające m. in.: sterowanie diodami LED z wykorzystaniem przycisków, proste konstrukcje logiczne asynchroniczne - bramki AND, OR, NAND, NOR, XOR, XNOR, multipleksery, demultipleksery, proste konstrukcje synchroniczne, wykorzystanie procesów i zmiennych - dzielniki częstotliwości, liczniki, maszyny stanowe, sterowanie diodami LED. Prowadzący może modyfikować program w zależności od postępów grupy.

Zadania Uruchomienie programu następuje po wywołaniu IseDesign Suite 14.7, czego wynikiem jest pojawienie się okna ISE Project Navigator. W oknie głównym programu należy stworzyć nowy projekt za pomocą polecenia New Project, alternatywnie można to samo zrobić wybierając New Project w menu File. W oknie projektu należy podać nazwę oraz ścieżkę, w której zapisany zostanie projekt (należy pamiętać, aby w nazwie projektu nie używać polskich znaków oraz spacji). Dobrym zwyczajem jest w oknie Description w kilku zdaniach napisać, co jest celem realizowanego projektu bądź, jakie spełnia funkcje. W ustawieniach projektu należy zdefiniować parametry realizowanego projektu. Wśród dostępnych opcji należy wybrać Evaluation Development Board - czyli zestaw prototypowy, w którego skład wchodzi układ programowalny itp. W trakcie realizacji zajęć do dyspozycji

studentów przeznaczony jest zestaw ewaluacyjny firmy Digilent z układem FPGA SPARTAN 3E (XC3S500E) więc wybieramy: Spartan 3E Starter Board Pełna dokumentacja techniczna dostępna jest na stronie producenta oraz w dziele materiały na stronie przedmiotu: http://www.digilentinc.com/products/detail.cfm?navtop=2&navsub=423&prod=s3eboar D&CFID=7488200&CFTOKEN=eee4d540d3ade18-CB4F5D43-5056-0201-021900B95A61CD0F Pozostałe ustawienia jak Family, Device, Package odnoszę się do układu logiki programowalnej i oznaczają odpowiednio: rodzinę układów, symbol układu scalonego oraz rodzaj obudowy. FG320 oznacza układ scalony FBGA o 320 wyprowadzeniach, przeznaczony do montażu powierzchniowego. W kolejnym kroku pojawi się okno stanowiące podsumowanie projektu. Klikając Finish można przejść do dalszego etapu, konfiguracji środowiska. W trakcie zajęć laboratoryjnych/projektowych oraz przy realizacji projektów własnych należy posługiwać się językiem Verilog. Aby przystąpić do realizacji określonej struktury logicznej należy kliknąć prawym przyciskiem myszy na symbol układu scalonego xc3s500e-4fg320 z menu kontekstowego wybieramy New Source. Opis struktury realizujemy z wykorzystaniem modułu Verilog Module. Pozostałe opcje umożliwiają między innymi tworzenie symboli dla realizowanych funkcjonalności, tworzenie dokumentacji oraz prowadzenia procesu testowania projektowanej struktury logicznej. Nazwę projektowanego modułu VHDL najlepiej przyjąć w ten sposób, aby krótko opisywała realizowaną funkcjonalność.

Przechodząc dalej, w kolejnym kroku należy zdefiniować porty wejściowe oraz wyjściowe dla realizowanej struktury logicznej. Przy założeniu, że realizuje się dwu wejściową bramkę AND z łatwością można się domyśleć ze w oknie Port Name zdefiniowano dwa wejścia a, b oraz wyjście y. Oczywiście można w tym miejscu zdefiniować wektory wejściowe o dowolnej długości. W kolumnie Port Name należy wpisać nazwy sygnałów wejściowych i wyjściowych użytych w układzie logicznym, w kolumnie Direction należy podać rodzaj sygnału, wejściowy (in) lub wyjściowy (out). Rodzaje, ilość wejść, wyjść można ustalać w trakcie realizacji programu. W trakcie prac nad projektem, możliwe jest nanoszenie dowolnych zmian w portach wejścia/wyjścia.

Potwierdzając kolejny krok realizacji projektu, pojawia się okno główne programu, w centralnej części programu widnieje okno edytora, ze wstępnie wygenerowanym kawałkiem kodu. Część kodu związana ze standardowymi bibliotekami IEEE oraz podstawowy szkielet architektury opisu sprzętu generowany jest automatyczni. Należy mieć jednak na uwadze jak wygląda szkielet i co wchodzi w jego skład. Aby sprawdzić poprawność składniową opisanego kodu w okienku Processes rozwiń opcję Synthesize XST i kliknij dwukrotnie Check Syntax, w wyniku syntezy Przez wykonaniem syntezy każdorazowo należy pamiętać o tym, aby zapisać projekt. Określenie podstawowej jednostki czasu w wykonywaniu projektu (do celów symulacji) Komentarz informacyjny odnośnie projektu, zawiera takie informacje jak: czas wykonania projektu, projektanta, przeznaczenie, itp Określenie granic tworzenia moduły w którym zawarty zostnie opis danej struktury Wypisanie wejść oraz wyjść modułu stworzonego w języku Verilog

Do modułu wpisać następujący opis struktury: Gdzie: Deklaracja sygnałów wewnętrznych Opis struktury bramka AND Opisaną funkcjonalność przedstawia poniższy symbol (RTL): UWAGA: W którym miejscu znajduje się błąd na tej stronie?

Symulacja testowanie funkcjonalności. Aby sprawdzić poprawność zaprojektowanego/zakodowanego układu należy przeprowadzić jego symulację. Środowisko ISE WebPack ma wbudowany symulator. Przed przystąpieniem do symulacji należy zbudować tzw. Test Bench, który określi wymuszenia testujące. Aby zbudować plik testujący należy w menu Project wybrać New Source...: W oknie wybrać Verilog Test Figure i wpisać nazwę pliku testującego w File Name. W kolejnym oknie należy wybrać układ, dla którego tworzony będzie plik testujący. Opis struktury symulacyjnej wygenerowany automatycznie: W okienku Design należy wybrać View: Simulation. Klikając dwukrotnie lewym przyciskiem myszy na Simulate Behavioral Model, po chwili powinno pojawić się okno z wynikiem symulacji:

W oknie symulacji można zobaczyć m.in.: sygnały wymuszające a i b oraz wyjście y układu po zmianie stanów bitowych. Oraz przybliżenie na przebieg symulacji:

Synteza kodu i programowanie układu FPGA Po przeprowadzeniu procesu syntezy można przystąpić do zaprogramowania układu FPGA, do dyspozycji studentów przeznaczony jest zestaw uruchomieniowy: Spartan 3E Starter Board. Dokumentacja techniczna, schematy zamieszone zostały na stronie kursu. Zestaw prototypowy należy podłączyć do komputera za pomocą przewodu USB. Interfejs USB przeznaczony jest do komunikacji z programatorem JTAG. Zestaw zasilany jest napięciem stabilizowanym 5 V z zasilacza dołączonego do zestawu. Dokumentacja techniczna dostępna na stronie kursu oraz na stronie producenta

Realizacja fizyczna i Plan Ahead Przypisywanie wejść i wyjść: Dla wcześniej zdefiniowanej architektury należy przypisać fizyczne wejścia oraz wyjście. W wypadku zestawu uruchomieniowego, jako sygnały wejściowe posłużę przełączniki oraz dioda LED. Na podstawie dokumentacji należy sprawdzić połączenia między układem FPGA oraz elementami peryferyjnymi. 1 0 Działanie przełączników: Ustawienie przełącznika SW0 w pozycję 1 powoduje ustawienie stanu wysokiego (3,3 V) na pinie L13 układu FPGA. W pozycji 0 nożna układu dołączona jest do potencjału GND. Diody LED: Zestaw prototypowy wyposażony jest w 8 diod LED ogólnego przeznaczenia. Dołączonych do pinów układu FPGA. Każda z diod dołączona jest do wyprowadzeń układu za pomocą szeregowo połączonego rezystora 390. Dioda aktywowana jest stanem wysokim. Proces implementacji syntezowanego kodu w architekturę FPGA następuję w kilku krokach. Niewątpliwą zaletą jest fakt, że to użytkownik decyduje, w którym miejscu projektowana

struktura posiada wejścia oraz wyjścia. Definicję wejść, wyjść realizuje się za pomocą pakietu Plan Ahead. Dostęp uzyskujemy przechodząc kolejno: Processes User Constraints I/O Pin Planning Proces przypisania wyjść polega na odpowiednim zdefiniowaniu i przypisaniu. Definiowanie realizuje się za pomocą myszki, klikając w odpowiednie pozycje (piny). Proces definiowania wejść/wyjść polega na odpowiednim zdefiniowaniu i przypisaniu. Definiowanie realizuje się za pomocą myszki, klikając w odpowiednie pozycje (piny) widoczne na schemacie połączeniowym układu. W kolumnach oraz wierszach przedstawione są kolejne porty/piny wejścia/wyjścia. Należy mieć jednak na uwadze fakt, że niektóre z pinów mają przypisane funkcje, jak np. rozprowadzanie sygnału zegarowego lub napięcia zasilającego układ i poszczególne struktury.

Innym sposobem definiowanie wejść/wyjść lub źródła sygnału zegarowego jest tworzenie pliku Net List (plik z rozszerzeniem *.ucf). Ten sposób definiowania połączeń wymaga jednak doświadczenia w czytaniu schematów ideowych oraz dokumentacji technicznej. Zawartość pliku połączeń (Netlist): NET pin wejściowy/wyjściowy, LOC fizyczna lokalizacja pinu układu FPGA, do którego dołączony zostanie NET, IOSTANDARD standard określający poziom sygnałów wejściowych/wyjściowych, PULLUP dołączenie wejścia/wyjścia do potencjału podciągającego + VCC przez rezystor wewnętrzny. Sposób nr 1 Sposób nr 2 # PlanAhead # wejście a oraz b NET "a" LOC = N17; NET "a" IOSTANDARD = LVTTL; NET "a" PULLUP; NET "b" LOC = H18; NET "b" IOSTANDARD = LVTTL; NET "b" PULLUP; # wyjście y NET "y" LOC = F9; NET "y" IOSTANDARD = LVTTL; # wejście a oraz b NET "a" LOC = N17 IOSTANDARD = LVTTL IOSTANDARD; NET "b" LOC = H18 IOSTANDARD = LVTTL PULLUP; # wyjście y NET "y" LOC = F9 IOSTANDARD = LVTTL;

Impact implementacja funkcjonalności w FPGA Po wykonaniu poprzednich kroków, określoną funkcjonalność należy zaimplementować w strukturę FPGA. Do tego celu przewidziany jest pakiet IMPACT. Za pośrednictwem interfejsu JTAG dokonuje identyfikacji układów połączonych programowalnych połączonych w pętli (szeregowo). Pakiet IMPACT wywołujemy klikając dwukrotnie: Należy potwierdzić komunikat mówiący o konieczności uruchomienia pakietu IMPACT. Następnie z menu Edit wybieramy Lunch Wizard komunikat potwierdzamy klikając na OK. Po chwili w oknie głównym programu pojawią się urządzenia podłączone do interfejsu JTAG komunikat potwierdzamy klikając YES.

Naszym układem programowalnym jest układ xc3s500e. To w jego strukturę należy zaimplementować kod. Pozostałe układy to pamięć FLASH oraz dodatkowy układ CPLD. Poprawnie przeprowadzony proces programowania układu zostanie potwierdzone komunikatem: Program Succeeded.