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

Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Projektowanie układów FPGA

Żródło*6+.

Page 2: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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.

Page 3: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Programowalne układy logiczne

• Programowalne układy logiczne PLD

(ang. Programmable Logic Device) – są to układyuniwersalne, które mogą zostad wykorzystane wszerokim spektrum aplikacji. Zbudowane są zprogramowalnych bloków elementów logicznych(kombinacyjnych i sekwencyjnych) orazkonfigurowalnych ścieżek umożliwiających łączeniebloków logiki.

Funkcjonalnośd tych układów określana jest przezprojektanta na drodze programowania połączeopomiędzy blokami elementów logicznych [1].

Page 4: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 5: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Rodzaje programowalnych układów logicznych

• PLA (ang. programmable logic array)

dwie kaskadowo połączone programowalne matryce bramek:

AND i OR.

Page 6: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Rodzaje programowalnych układów logicznych

• PAL (ang. programmable array logic)

- programowalna matryca bramek AND i nieprogramowalne bramki OR [1].

Page 7: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 8: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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.

Page 9: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 10: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Inni producenci

Altera• rodzina Stratix (high-end apps)

• Stratix III

• rodzina Cyclone (low-cost apps)

• Cyclone II

Actel,

Atmel,

Quicklogic

i innych...

Page 11: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA - architekturaCechą 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.

Page 12: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA - architektura

Rys.2 Przykładowa konfiguracja tablicy LUT *3+.

Matrycowe rozmieszczenie komórek logicznych wymusza segmentowe połączenie między nimi.

Page 13: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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)

Page 14: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA- architekturaCLB - 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].

Page 15: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA- architekturaCLB - Configurable Logic Block

Rys.4 Rozmieszczenie slice’ów w CLB [3].

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

Page 16: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA- architekturaCLB - 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)

Page 17: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA – architekturaBudowa 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.

Page 18: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA – architekturaBudowa 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+.

Page 19: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA- architekturaCLB - Configurable Logic Block

• Każdy CLB ma bezpośredni dostęp do 8 sąsiadujących CLB.

• Wymiana danych pomiędzy CLB ulokowanymi w większej odległości odbywa się za pomocą dodatkowych zasobów połączeniowych.

Rys. 5. Połączenie CLB z sąsiadującymi CLB *3+.

Page 20: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

FPGA- architekturaCLB - Configurable Logic Block

- Linie długie- najszybsze trakty komunikacyjne w FPGA.

- Linie 8 – krotne-rozprowadzają sygnały na mniejsze odległości zapewniając elastycznośd połączeniową.

- Linie podwójne-zapewniają 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+.

Page 21: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Sprzęt do eksperymentówz układami Spartan 3

Płytka Spartan 3 z układem XC3S200 w obudowie VQFP100

Page 22: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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.

Page 23: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Narzędzia projektowe

Specyfikacja projektu układu:- schemat- opis tekstowy- przebiegi czasowe

Implementacj projektu

Weryfikacja projektu:- symulacja funkcjonalna,- symulacja czasowa

Programowanie:- w programatorze- w systemie (JTAG)

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

Page 24: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 25: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Implementacja sieci Petriego w układach FPGA –przegląd literatury

Synchroniczny przerzutnik SR opisany jest równaniem: [2].

Układ aktywacji

Page 26: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 27: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 28: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 29: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 30: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

a)

Zdekomponowana sied Petriego [5] Model SM sieci A

Page 31: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Model sieci SM B [5].

b)

Zdekomponowane sieci B i C

Page 32: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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

Page 33: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

Wynik syntezy (Xilinx FPGA XC3S250)

Zaprezentowana w artykule metoda stanowi częśd akademickiego systemu CAD-PeNLogic, przeznaczonego do projektowania rekonfigurowalnych układów sterowania.

Page 34: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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.

Page 35: Projektowanie układów FPGArspn.univ.rzeszow.pl/wp-content/uploads/2015/01/Programowalne-uk… · Narzędzia projektowe • Podczas przygotowywania projektu układu cyfrowego w FPGA

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