Programowalne układy logiczne

Transkrypt

Programowalne układy logiczne
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. ElectricallyErasable 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.
FPGA- architektura
CLB - Configurable Logic Block
- Linie długie- najszybsze
trakty komunikacyjne w
FPGA.
- Linie 8 – krotnerozprowadzają sygnały na
mniejsze odległości
zapewniając elastycznośd
połączeniową.
- 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 CADPeNLogic, 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.
2.
3.
4.
5.
6.
S. Acedaoski, M. Peczarski, Programowalne układy logiczne, Instytut
Informatyki Uniwersytetu Warszawskiego.
L. Gniewek, Transformacja rozmytej interpretowanej sieci Petriego na
schemat układu logicznego, Politechnika Rzeszowska, PAK vol. 56, nr
11/2010.
J. Majewski , P, Zbysioski, Układy FPGA w przykładach, Wyd. BTC 2007.
K. Pisaniec, Analiza błędów w układach FPGA z wykorzystaniem JTAG.
A. Węgrzyn, M. Węgrzyn, Implementacja sieci Petriego sterowania w
częściowo rekonfigurowanych układach FPGA , Uniwersytet
Zielonogórski, knws_09.
www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD

Podobne dokumenty