Projektowanie układów FPGA. Żródło*6+.

Podobne dokumenty
Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

ZL10PLD. Moduł dippld z układem XC3S200

Cyfrowe układy scalone

Język opisu sprzętu VHDL

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

Elektronika i techniki mikroprocesorowe

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Cyfrowe układy scalone

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

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

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

Elementy cyfrowe i układy logiczne

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

Programowalne Układy Cyfrowe Laboratorium

Katedra Mikroelektroniki i Technik Informatycznych

Opis przedmiotu zamówienia CZĘŚĆ 1

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie

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

Układy programowalne

Systemy wbudowane. Układy programowalne

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Cyfrowe układy scalone

Systemy na Chipie. Robert Czerwiński

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

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

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

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja

Ukªady Kombinacyjne - cz ± I

Opis przedmiotu zamówienia

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

Sterowniki Programowalne (SP)

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

napięcie-częstotliwość

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

PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

Opracował: Jan Front

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

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Opisy efektów kształcenia dla modułu

PROGRAMOWALNE STEROWNIKI LOGICZNE

Programowalna matryca logiczna

Temat: Pamięci. Programowalne struktury logiczne.

Wielokontekstowy sterownik programowalny przyszłości wykorzystujący układy programowalne psoc

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Opisy efektów kształcenia dla modułu

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Architektura komputerów

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

To nie huragan, to Cyclone II!

Układy sekwencyjne. 1. Czas trwania: 6h

Systemy wbudowane. Paweł Pełczyński

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

Cyfrowe układy scalone c.d. funkcje

PROJEKTOWANIE UKŁADÓW VLSI

Wygląd okna aplikacji Project Navigator.

REALIZACJA KONTROLERÓW

Programowalne układy logiczne

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

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

Wprowadzenie. Wprowadzenie

MODEL KOMÓRKI UKŁADU FPGA ZBUDOWANEGO W OPARCIU O BRAMKI PRĄDOWE

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

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

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

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

Współczesne techniki informacyjne

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

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Podstawy techniki cyfrowej

System on Chip na miarę S P R Z Ę T

Bezpieczeństwo informacji oparte o kryptografię kwantową

Układy logiczne układy cyfrowe

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

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

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

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

Weryfikacja logiczna projektów VHDL realizowanych w reprogramowalnych układach FPGA pracujących w trybie prądowym

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

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

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

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

Kierunek Elektronika, III rok Języki Opisu Sprzętu. Platforma sprzętowa. Rajda & Kasperek 2016 Katedra Elektroniki AGH 1

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji.

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

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

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Politechnika Warszawska

Transkrypt:

Projektowanie układów FPGA Żródło*6+.

Programowalne układy logiczne W elektronice cyfrowej funkcjonują dwa trendy rozwoju: Specjalizowane układy scalone ASIC (ang. Application Specific Integrated Circuits) są to układy przeznaczone do określonych, ale bardzo wąskich zastosowao. Modyfikacja tego typu układów po wyprodukowaniu jest nie możliwa. Układy te są zoptymalizowane pod względem zajmowania powierzchni krzemu i szybkości.

Programowalne układy logiczne Programowalne układy logiczne PLD (ang. Programmable Logic Device) są to układy uniwersalne, które mogą zostad wykorzystane w szerokim spektrum aplikacji. Zbudowane są z programowalnych bloków elementów logicznych (kombinacyjnych i sekwencyjnych) oraz konfigurowalnych ścieżek umożliwiających łączenie bloków logiki. Funkcjonalnośd tych układów określana jest przez projektanta na drodze programowania połączeo pomiędzy blokami elementów logicznych [1].

Programowalne układy logiczne PLD cd. Do zapamiętania swojej konfiguracji układy PLD używają pamięci typu SRAM (ang. Static Access Random Memory), EEPROM (ang. Electrically- Erasable Programmable Read-Only Memory) lub układów bezpieczników konfigurowalnych jednorazowo [1].

Rodzaje programowalnych układów logicznych PLA (ang. programmable logic array) dwie kaskadowo połączone programowalne matryce bramek: AND i OR.

Rodzaje programowalnych układów logicznych PAL (ang. programmable array logic) - programowalna matryca bramek AND i nieprogramowalne bramki OR [1].

Rodzaje programowalnych układów logicznych Układy PAL są blokami funkcjonalnymi wykorzystywanymi w bardziej złożonych układach programowalnych takich jak FPGA. FPGA (ang. Field Programmable Gate Array) jest to technologia układów scalonych reprogramowalnych przez projektanta przy wykorzystaniu specjalizowanych narzędzi oraz języków opisu sprzętu (HDL), przypominających klasyczne języki programowania. dzięki możliwości wielokrotnego programowania układy te są współcześnie stosowane w procesie projektowania praktycznie we wszystkich gałęziach elektroniki *4+: Zastosowania: prototypowanie wielkoseryjnych układów ASIC urządzenia produkowane w krótkich seriach testowanie nowych technologii, algorytmów praca w systemach podlegających sprzętowej rekonfiguracji wszędzie tam, gdzie opłaca się zrównoleglenie operacji

Producenci Współzałożycielem firmy Xilinx i twórcą FPGA był fizyk Ross Freeman W 1985 r. firma Xilinx wyprodukowała pierwszy układ o architekturze FPGA określany wtedy jako LCA (Logic Cell Array), ale szybko wprowadzono nazwę FPGA. Układ oznaczono symbolem XC2064, składał się z 64 konfigurowalnych komórek logicznych, w których skład wchodziła 4-wejściowa tablica LUT (Look-up-Table) oraz przerzutnik D. Złożonośd układu odpowiada 600 bramkom przeliczeniowym. Najmniejszy układ z rodziny Spartan 3 XC3S50 ma 1728 komórek logicznyc CLB jego złożonośd odpowiada 50 000 bramek przeliczeniowych. Największy układ z rodziny Spartan 3 XC3S5000 ma 74880 komórek logicznych CLB jego złożonośd odpowiada 5000 000 bramek przeliczeniowych.

Producenci Najnowsze układy FPGA firmy Xilinx: Rodzina Spartan 6 Rodzina Virtex-7 Kintex-7 Virtex Ultrascale 4.4 mln komórek logicznych Wykonane w technologii 20nm

Inni producenci Altera rodzina Stratix (high-end apps) Stratix III rodzina Cyclone (low-cost apps) Cyclone II Actel, Atmel, Quicklogic i innych...

FPGA - architektura Cechą charakterystyczną architektury FPGA jest duża liczba regularnie rozmieszczonych (w formie matrycy) konfigurowalnych komórek logicznych opartych na tablicach LUT (Look up Table), określanych generatorami funkcji Rys. 1. Schemat blokowy ilustrujący budowę układów FPGA oraz konfigurowalnego bloku logicznego.

FPGA - architektura Matrycowe rozmieszczenie komórek logicznych wymusza segmentowe połączenie między nimi. Rys.2 Przykładowa konfiguracja tablicy LUT *3+.

FPGA - architektura Produkowane przez firmę Xilinx układy FPGA z rodziny Spartan 3 charakteryzują się regularną budową, opartą na zespołach wielu identycznych bloków CLB (Configurable Logic Block). Bloki CLB są to konfigurowalne zespoły logiczne o bardzo dużej elastyczności można w nich zaimplementowad m.in. pamięci typu RAM i ROM oraz rejestry przesuwne. Budowa bloków CLB oparta jest na tablicach LUT (Look up Table). Układy Spartan 3 wyposażone są także w zespoły konfigurowalnych pamięci Block RAM, sprzętowe multipleksery, syntezery przebiegów zegarowych DCM (Digital Clock manager) oraz komórki I/O o nazwie IOB (Input-Output Block)

FPGA- architektura CLB - Configurable Logic Block W układach Spartan 3 jest od 1728 do 74 880 bloków CLB. Każdy blok CLB jest zbudowany z 4 bloków logicznych nazwanych przez firmę Xilinx mianem slice [3]. Rys.3. Schemat ilustrujący budowę układów Spartan 3 [3].

FPGA- architektura CLB - Configurable Logic Block Blok CLB składa się z czterech slice ów ulokowanych w dwóch grupach o różnych możliwościach konfiguracyjnych i komunikacyjnych: SLICEM i SLICEL Rys.4 Rozmieszczenie slice ów w CLB [3].

FPGA- architektura CLB - Configurable Logic Block Każdy slice ma własny adres w obrębie CLB (X1Y0), który projektant może wykożystad wraz z numerem CLB w przypadku konieczności ręcznego rozmieszczania bloków funkcjonalnych w obrębie FPGA. Slice y pogrupowane są po dwa w kolumny, każda grupa wyposażona jest w szybkie linie propagacji sygnału przeniesienia, dzięki czemu są możliwe implementacje szybko działających bloków logicznych wykorzystujących kaskadowe przeniesienia (liczniki, sumatory)

FPGA architektura Budowa Slice a Rys. 7 Zasoby dostępne w CLB: a)slicem,b) SLICEL *3+. Każdy slice wyposażony jest : - w dwie konfigurowalne tablice LUT, na których wejścia są podawane 4 sygnały. Tablice te umożliwiają wykonanie dowolnej funkcji logicznej. Na wyjściu LUT ulokowany jest konfigurowalny przerzutnik. - multipleksery, których zadaniem jest konfiguracja ścieżek przesłu danych pomiędzy slice ami jak i elementami tworzącymi slice.

FPGA architektura Budowa Slice a W każdym CLB można zaimplementowad ROM o pojemności do 128 x 1 bitów, pamięd SRAM o pojemności 64 x 1 bitów. Rys.8 Budowa pojedynczego slice a *3+.

FPGA- architektura CLB - Configurable Logic Block Każdy CLB ma bezpośredni dostęp do 8 sąsiadujących CLB. Rys. 5. Połączenie CLB z sąsiadującymi CLB *3+. Wymiana danych pomiędzy CLB ulokowanymi w większej odległości odbywa się za pomocą dodatkowych zasobów połączeniowych.

- Linie długie- najszybsze trakty komunikacyjne w FPGA. - Linie 8 krotnerozprowadzają sygnały na mniejsze odległości zapewniając elastycznośd połączeniową. FPGA- architektura CLB - Configurable Logic Block - Linie podwójnezapewniają bezpośrednią komunikację pomiędzy pozostałymi CLB. Rys. 6 Zasoby połączeniowe zapewniające komunikację pomiędzy CLB rozmieszczonymi w większej odległości od siebie *3+.

Sprzęt do eksperymentów z układami Spartan 3 Płytka Spartan 3 z układem XC3S200 w obudowie VQFP100

Narzędzia projektowe Podczas przygotowywania projektu układu cyfrowego w FPGA należy wykonad następujące czynności, wykorzystując odpowiednie programy narzędziowe: przygotowad projekt układu za pomocą schematu lub opisu w którymś z języków HDL (Hardware Description Language), zweryfikowad poprawnośd opisu i przekształcid do postaci akceptowalnej przez program (kompilacja), wygenerowad i zminimalizowad równania logiczne, które są wynikową formą opisu cyfrowego możliwego do zrealizowania na bramkach logicznych, Zdekomponowad opis logiczny do postaci zawierającej składniki możliwe do zrealizowania w komórkach FPGA, Rozmieścid fragmenty projektu w blokach logicznych, Połączyd bloki logiczne, Zweryfikowad działanie projektu przez symulację opisu logicznego, Wygenerowad pliki wynikowe do konfigurowania FPGA, Zaprogramowad pamięd Flash konfiguratora odbywa się to za pomocą programatora ISP.

Narzędzia projektowe Firma Xilinx udostępnia na swojej stronie internetowej bezpłatny pakiet projektowy WebPack ISE, który jest zintegrowany z narzędziem umożliwiającym realiację projektów PLD. Narzędziem takim jest aplikacja Altium Desinger. Altium Designer jest zintegrowanym środowiskiem przeznaczonym do projektowania urządzeo elektronicznych, łączącym w jednej aplikacji wszystkie niezbędne do tego narzędzia : - edytor schematu i PCB, narzędzia analizy obwodu i integralności sygnałów, - narzędzia tworzenia projektów wbudowanych opartych na układach programowalnych FPGA. Specyfikacja projektu układu: - schemat - opis tekstowy - przebiegi czasowe Implementacj projektu Programowanie: - w programatorze - w systemie (JTAG) Weryfikacja projektu: - symulacja funkcjonalna, - symulacja czasowa

Implementacja sieci Petriego w układach FPGA przegląd literatury Lesław Gniewek Transformacja rozmytej interpretowanej sieci Petriego na schemat układu logicznego. (Politechnika Rzeszowska) Sieci Petriego działającej w logice dwuwartościowej, każdemu miejscu sieci przyporządkowuje się klasyczny przerzutnik JK, a każdej tranzycji bramkę AND. Zastępując klasyczne układy kombinacyjne i sekwencyjne na rozmyte można w sposób analogiczny rozmytą interpretowaną sied Petriego transformowad do schematu logicznego. Z. Hajduk w rozprawie doktorskiej Sprzętowa implementacja rozmytych sieci Petriego jako układów sterowania zaproponował zastąpienie rozmytych przerzutników JK przez rozmyte przerzutniki SR. Układ odpowiedzialny za aktywację tranzycji składa się z dwóch komparatorów i klasycznego przerzutnika SR [2].

Implementacja sieci Petriego w układach FPGA przegląd literatury Synchroniczny przerzutnik SR opisany jest równaniem: [2]. Układ aktywacji

Implementacja sieci Petriego w układach FPGA przegląd literatury Według proponowanej metody transformacji każdemu miejscu sieci należy przyporządkowad rozmyty przerzutnik SR i na jego wyjściu podłączyd układ aktywacji. Rys. Fragment sieci zawierające tranzycje bezwarunkowe *2+.

Implementacja sieci Petriego w układach FPGA przegląd literatury Ta forma transformacji umożliwia realizację : tranzycji warunkowych, tranzycje z dwoma miejscami wejściowymi miejsca p z kilkoma tranzycjami wejściowymi i wyjściowymi

Implementacja sieci Petriego w układach FPGA przegląd literatury Agnieszka Węgrzyn, Marek Węgrzyn Implementacja sieci Petriego w częściowo rekonfigurowanych układach FPGA. (Uniwersytet Zielonogórski) Artykuł przedstawia zastosowanie dekompozycji specyfikacji współbieżnej na sekwencyjne automaty składowe w celu ułatwienia procesu syntezy układu cyfrowego. W przypadku zamodelowania takiego układu siecią Petriego, problem dekompozycji sprowadza się do wyodrębnienia podsieci typu atomatowego, czyli podsieci zawierającej tylko jeden znacznik. Wszystkie otrzymane po dekompozycji komponenty są modelowane w językach opisu sprzętu np. Verilog a następnie implementowane w układzie FPGA *5+.

Przykładowa sied Petriego opisująca układ sterowania stanowiskiem do wiercenia

a) Zdekomponowana sied Petriego [5] Model SM sieci A

b) Zdekomponowane sieci B i C Model sieci SM B [5].

Model nadrzędny z instancjami trzech składowych SM sieci *5+.

Wynik syntezy (Xilinx FPGA XC3S250) Zaprezentowana w artykule metoda stanowi częśd akademickiego systemu CAD- PeNLogic, przeznaczonego do projektowania rekonfigurowalnych układów sterowania.

Podsumowanie Nowoczesne układy programowalne dostarczają nowych możliwości przy realizacji złożonych systemów cyfrowych. Częściowa rekonfiguracja układów FPGA umożliwia szybką zmianę funkcjonalności rozpatrywanego systemu cyfrowego poprzez wymianę danych konfiguracyjnych jedynie fragmentu układu.

Literatura 1. S. Acedaoski, M. Peczarski, Programowalne układy logiczne, Instytut Informatyki Uniwersytetu Warszawskiego. 2. L. Gniewek, Transformacja rozmytej interpretowanej sieci Petriego na schemat układu logicznego, Politechnika Rzeszowska, PAK vol. 56, nr 11/2010. 3. J. Majewski, P, Zbysioski, Układy FPGA w przykładach, Wyd. BTC 2007. 4. K. Pisaniec, Analiza błędów w układach FPGA z wykorzystaniem JTAG. 5. A. Węgrzyn, M. Węgrzyn, Implementacja sieci Petriego sterowania w częściowo rekonfigurowanych układach FPGA, Uniwersytet Zielonogórski, knws_09. 6. www.digilentinc.com/products/detail.cfm?prod=s3board