Układy programowalne cz.2.pdf

(420 KB) Pobierz
kurs.p65
K U  R S
Układy programowalne, część 2
Historia uk³adÛw PLD ( Pro-
grammable Logic Devices ) siÍga
koÒca lat 60., kiedy to powsta³y
pierwsze teoretyczne opracowania,
w†ktÛrych wykazywano, øe jest
moøliwe zbudowanie programowa-
nego uk³adu realizuj¹cego dowol-
n¹ logiczn¹ funkcjÍ kombinacyjn¹
i†synchroniczn¹ (z†wykorzystaniem
rejestrÛw). Podstaw¹ do tych roz-
waøaÒ by³a praca An Investigation
of the Laws of Thought Geore-
ge'a†Boole'a†z†1854 roku, w†ktÛrej
wykaza³ on, øe dowoln¹, najbar-
dziej nawet skomplikowan¹ funk-
cjÍ logiczn¹ moøna stworzyÊ za
pomoc¹ trzech funktorÛw†logicz-
nych: AND, OR i†NOT. Wystarczy-
³o wiÍc stworzyÊ uk³ad, w†ktÛrym
funktory te s¹ ze sob¹ po³¹czone
za pomoc¹ programowanych po³¹-
czeÒ, co zapewnia jego maksymal-
n¹ uniwersalnoúÊ.
TÍ czÍúÊ kursu przeznaczymy na przedstawienie tajnikÛw
architektur uk³adÛw PLD, w†tym przede wszystkim uk³adÛw
GAL22V10/ispGAL22V10. Informacje tutaj zawarte s¹ niezbÍdn¹
podstaw¹ do wprawnego pos³ugiwania siÍ uk³adami GAL.
przyk³adem uk³adu PLD jest pa-
miÍÊ PROM, w†ktÛrej sygna³y wej-
úciowe s¹ podawane na bramki
AND o†ustalonych po³¹czeniach
(tak øe spe³niaj¹ rolÍ dekodera
adresowego pamiÍci), a†ich wyjúcia
s¹ po³¹czone z†programowaln¹
matryc¹ bramek OR ( rys. 6 ). Sto-
sunkowo niewielka elastycznoúÊ
takiego uk³adu PLD i†brak moøli-
woúci wygodnego projektowania
automatÛw synchronicznych spo-
wodowa³y, øe prace badawcze
trwa³y, a†w†ich wyniku powsta³y
uk³ady PLA ( Programmable Logic
Array ). RÛøni¹ siÍ one od pamiÍ-
ci wprowadzeniem programowa-
nych po³¹czeÒ w†matrycy bramek
AND ( rys. 7 ), co spowodowa³o
zwiÍkszenie elastycznoúci tych
uk³adÛw, u³atwi³o takøe optymal-
ne wykorzystywanie ich zasobÛw.
Kolejnym etapem rozwoju uk³a-
dÛw programowalnych by³y uk³a-
dy PAL ( Programmable Array Lo-
gic ), ktÛre charakteryzuj¹ siÍ pro-
gramowaln¹ matryc¹ AND i†skon-
figurowan¹ na sta³e (przez produ-
George Boole (1815−1864)
w opublikowanym w 1854
roku “dziele życia” ( An
Investigation of the Laws
of Thought ) stworzył
podstawy rozwoju techniki
cyfrowej i później układów
PLD.
Na pocz¹tku by³ chaos...
Jak ³atwo zauwaøyÊ, moøliwych
sposobÛw po³¹czenia funktorÛw ze
sob¹ jest wiele. Historycznym
centa) matryc¹†OR ( rys. 8 ). Wpro-
wadzono je do sprzedaøy w†roku
1978 jako remedium na problemy
zwi¹zane ze stosowaniem uk³adÛw
PLA: trudne przygotowywanie im-
plementowanych projektÛw (nie
by³o wtedy praktycznie øadnych
narzÍdzi automatyzuj¹cych projek-
towanie!), duøy pobÛr mocy, nie-
wielka szybkoúÊ pracy.
Uk³ady PLA i†PAL by³y wyko-
nywane w†technologii bipolarnej
z†pamiÍci¹ konfiguruj¹c¹ typu
PROM (jednokrotnie programowal-
n¹).
Rys. 6. Budowa logiczna pamięci
ROM/PROM
Rys. 7. Budowa logiczna układów
PLA
Rys. 8. Budowa logiczna układów
PAL
Bliøej wspÛ³czesnoúci...
ByÊ moøe niektÛrzy Czytelnicy
poczuj¹ siÍ zawiedzeni, ale w†tym
momencie moglibyúmy przejúÊ do
omawiania architektury uk³adÛw
GAL22V10. Uk³ady te powsta³y
bowiem na bazie pomys³Ûw z†lat
70. Zaskakuj¹ce po³¹czenie: nowo-
czesna (ci¹gle nieco awangardowa)
technologia, bezpoúrednio wyko-
rzystuj¹ca pomys³y z†czasÛw - dla
wspÛ³czesnych - historycznych.
Elektronika Praktyczna 4/2004
81
32688445.050.png 32688445.061.png 32688445.066.png 32688445.067.png 32688445.001.png 32688445.002.png 32688445.003.png 32688445.004.png 32688445.005.png 32688445.006.png 32688445.007.png
 
K U  R S
ispGAL22V10
vs GAL22V10
Układ ispGAL22V10
(w dowolnej wersji) jest
funkcjonalnym odpowiedni−
kiem standardowego układu
GAL22V10. Kompatybilność
dotyczy zarówno rozmiesz−
czenia wyprowadzeń, jak
i plików JEDEC wykorzysty−
wanych do programowania
układu.
Rys. 9. Budowa logiczna układów CPLD
Array - rys. 10 ). Uk³ady tego
typu sk³adaj¹ siÍ z†matryc jed-
nakowych lub bardzo do siebie
podobnych komÛrek, w†ktÛrych
zintegrowano konfigurowalne za-
soby logiczne. Po³¹czenia pomiÍ-
dzy nimi s¹ moøliwe dziÍki
traktom po³¹czeniowym, ktÛrych
konfiguracjÍ moøe zmieniaʆuøyt-
kownik. W†uk³adach FPGA rolÍ
pamiÍci konfiguruj¹cej spe³nia
zazwyczaj ulotna pamiÍÊ SRAM,
ktÛrej zawartoúÊ jest kaødorazo-
wo po w³¹czeniu zasilania od-
twarzana (dane s¹ pobierane
z†zewnÍtrznej pamiÍci nieulot-
nej).
W†ostatnich latach producenci
wprowadzaj¹ do sprzedaøy uk³ady
o†nowatorskiej architekturze nazy-
wanej SoC ( System on a†Chip )
lub PSoC ( Programmable System
on a†Chip ), ktÛre sk³adaj¹†siÍ
z†mikroprocesora (czÍsto bardzo
szybkiego) oraz duøego bloku lo-
giki konfigurowalnej ( rys. 11 ).
Uk³ady tego typu s¹ coraz chÍt-
niej stosowane w†aplikacjach, po-
niewaø pozwalaj¹ na budowanie
w†jednym uk³adzie kompletnych
urz¹dzeÒ spe³niaj¹cych wymagania
nawet bardzo zaawansowanych ap-
likacji.
Zanim jednak przejdziemy do
zg³Íbiania tajnikÛw uk³adÛw
GAL22V10, na chwilÍ powrÛcimy
do historii rozwoju uk³adÛw PLD,
bo oferuj¹ one znacznie wiÍksze
moøliwoúci niø by³o to moøliwe
ìza panowaniaî GAL22V10.
Ewolucja pod¹øy³a dwiema
úcieøkami:
- PowiÍkszania zasobÛw dostÍp-
nych w†pojedynczych uk³adach,
poprzez powielanie komÛrek
opartych na matrycach PAL.
W†ten sposÛb posta³y uk³ady
CPLD ( Complex Programmable
Logic Devices - rys. 9 ). Wszyst-
kie wspÛ³czesne uk³ady CPLD
wyposaøono w†nieulotne pamiÍci
konfiguruj¹ce (EEPROM lub
Flash), ktÛrych zawartoúÊ moøe
byÊ wielokrotnie zmieniana.
- Zastosowaniu radykalnie odmien-
nej architektury, ktÛr¹ nazwano
FPGA ( Field Programmable Gate
Tab. 2. Funkcje sygnałów interfejsu JTAG
Nazwa
Opis funkcjonalny
TDI
Szeregowe wejœcie danych do konfiguracji i testowania. Dane z tego wejœcia s¹
Test Data Input
synchronizowane narastaj¹cym zboczem sygna³u zegarowego TCK.
TDO
Szeregowe wyjœcie danych wyprowadzanych z rejestru BST lub pamiêci
Test Data Output
konfiguracji uk³adu. Dane wyjœciowe s¹ synchronizowane opadaj¹cym zboczem
sygna³u zegarowego TCK.
TMS
Wejœcie steruj¹ce prac¹ automatu TAP zgodnie z grafem przedstawionym
Test Mode Select
na rys. 13. Ustalenie wartoœci logicznej na tym wejœciu powinno nast¹piæ przed
narastaj¹cym zboczem sygna³u zegarowego TCK.
TCK
Wejœcie sygna³u zegarowego, taktuj¹cego automat TAP oraz rejestr instrukcji.
Test Clock
Rys. 10. Budowa logiczna układów FPGA
Rys. 11. Budowa logiczna układów SoC
82
Elektronika Praktyczna 4/2004
32688445.008.png 32688445.009.png 32688445.010.png 32688445.011.png
K U  R S
Tab. 3. Liczba programowalnych
iloczynów dostępnych dla OLMC
dołączonych do wyprowadzeń układu
GAL22V10 (w obudowie PLCC28)
Numer
Liczba iloczynów
wyprowadzenia
dostêpnych
I/O
dla OLMC
27
8
26
10
25
12
24
14
23
16
21
16
20
14
19
12
18
10
17
8
Rys. 12. Schemat blokowy jednej z wielu możliwych implementacji
interfejsu JTAG
rolery zarz¹dzaj¹ce jego prac¹
(TAP - Test Access Point - rys.
12 ). TAP jest 16-stanowym auto-
matem, ktÛrego cykl pracy poka-
zano na rys. 13 . Przebiegiem cyk-
lu pracy automatu TAP steruj¹
cztery wyprowadzenia (TMS, TDI,
TDO i†TCK), ktÛrych funkcje ze-
stawiono w† tab. 2 . Obs³uga progra-
mowania ISP zosta³a dodana do
O†programowaniu s³Ûw
kilka
Programowanie ISP ( In System
Programming ), obecnie tak modne
wúrÛd uøytkownikÛw mikrokontro-
lerÛw, jest wykorzystywane w†uk³a-
dach CPLD i†FPGA od pocz¹tku
lat '90. Obecnie obowi¹zuje jedno-
lity standard - do programowania
uk³adÛw PLD jest powszechnie wy-
korzystywany interfejs JTAG. Nie-
gdyú jego podstawowym zadaniem
by³o umoøliwienie testowania uk³a-
dÛw cyfrowych i†po³¹czeÒ miÍdzy
nimi, stopniowo zdoby³ on popu-
larnoúÊ g³Ûwnie jako interfejs s³u-
ø¹cy do programowania uk³adÛw
PLD w†systemie. Obecnie JTAG jest
dostÍpny nawet w†uk³adach o†tak
niewielkich zasobach logicznych
jak w†przypadku ispGAL22V10.
Uk³ady wyposaøone w†JTAG
maj¹ wbudowane specjalne kont-
Trwałość pamięci
konfigurującej
Pamięć EEPROM spełniająca
w układzie ispGAL22V10
rolę pamięci konfigurującej
jest duża, bowiem
producent gwarantuje co
najmniej 10000 cykli
kasowanie−zapis.
Rys. 13. Cykl pracy automatu TAP
Elektronika Praktyczna 4/2004
83
32688445.012.png 32688445.013.png 32688445.014.png 32688445.015.png 32688445.016.png 32688445.017.png 32688445.018.png 32688445.019.png 32688445.020.png 32688445.021.png 32688445.022.png 32688445.023.png 32688445.024.png 32688445.025.png 32688445.026.png 32688445.027.png 32688445.028.png 32688445.029.png 32688445.030.png 32688445.031.png 32688445.032.png 32688445.033.png 32688445.034.png 32688445.035.png 32688445.036.png 32688445.037.png 32688445.038.png 32688445.039.png 32688445.040.png 32688445.041.png 32688445.042.png 32688445.043.png 32688445.044.png 32688445.045.png
K U  R S
Rys. 14. Układy z interfejsem JTAG można łączyć w łańcuchy (na
rysunku pominięto sygnały TMS i TCK, które są dostarczane do
wszystkich układów jednocześnie)
PAL vs GAL
Układy GAL są reprogramo−
walnymi, uniwersalnymi
wersjami układów PAL.
Ich komórki wyjściowe są
tak elastyczne, że można je
skonfigurować w dowolny
tryb obsługiwany przez
układy PALxxR (z wyjściami
rejestrowymi), PALxxH
(bez inwerterów na wyjściu)
i PALxxL (z inwerterami
na wyjściu).
Rys. 15. Schemat przykładowego programatora układów PLD firmy
Lattice
szaÊ jego czytelnoúci nie naryso-
wano sygna³Ûw TMS i†TCK, ktÛre
s¹ dostarczane rÛwnolegle do
wszystkich uk³adÛw wchodz¹cych
w†sk³ad ³aÒcucha.
Korzystanie z†JTAG-a, pomimo
jego doúÊ z³oøonej budowy, jest
nadzwyczaj proste. RolÍ programa-
tora spe³nia ³atwy w†wykonaniu
interfejs (schemat elektryczny pro-
gramatora ISP dla uk³adÛw Lattice
pokazano na rys. 15 ), za sterowa-
nie jego prac¹ odpowiada specjal-
ne oprogramowanie (ispVM), udo-
stÍpniane przez firmÍ Lattice
bezp³atnie. Najnowsz¹ wersjÍ tego
programu oraz wersje dla Linuksa
publikujemy takøe na CD-EP4/
2004B. SposÛb obs³ugi tego pro-
gramu przedstawimy w†jednym
z†kolejnych odcinkÛw cyklu.
standardowego JTAG-a ìsztucznieî
(bo, jak wspomniano, JTAG mia³
s³uøyÊ do testowania uk³adÛw po
zamontowaniu w†systemie), ale zo-
sta³o to zrobione w†taki sposÛb,
øe uøytkownik tej ìsztucznoúciî
w†øaden sposÛb nie odczuwa.
Za pomoc¹ JTAG-a moøna pro-
gramowaÊ zarÛwno pojedyncze
uk³ady (jak ma to miejsce m.in.
w†zestawie, ktÛry wykorzystamy
podczas kursu), jak i†wiele uk³a-
dÛw po³¹czonych w†³aÒcuch ( rys.
14 ). Na rysunku, øeby nie zmniej-
Nasz bohater: ispGAL22V10
Jak juø wspomniano, architek-
tura uk³adu ispGAL22V10 jest
bezpoúrednim rozwiniÍciem kla-
sycznych, bipolarnych PAL-i.
Uk³ad jest zbudowany ( rys. 16 )
z†10 konfigurowalnych makrokomÛ-
rek OLMC ( Output Logic Macro
Cell ), na wyjúciu ktÛrych znajduj¹
Rys. 16. Architektura układów
(isp)GAL22V10
Rys. 17. Budowa komórki OLMC układu (isp)GAL22V10
84
Elektronika Praktyczna 4/2004
32688445.046.png 32688445.047.png 32688445.048.png 32688445.049.png 32688445.051.png 32688445.052.png 32688445.053.png 32688445.054.png 32688445.055.png 32688445.056.png 32688445.057.png 32688445.058.png 32688445.059.png 32688445.060.png
K U  R S
K U  R S
siÍ bufory trÛjstanowe. Sygna³y na
wejúcia OLMC s¹ podawane z†pro-
gramowanej matrycy bramek AND
o†organizacji 44 (liczba wejúÊ bra-
mek AND) x†132 (liczba bramek
AND).
BudowÍ OLMC pokazano na
rys. 17 . W†jej sk³ad wchodzi prze-
rzutnik D†z†wejúciami: asynchro-
nicznego zerowania (AR) i†syn-
chronicznego ustawiania (SP), na
ktÛrego wejúcie D†jest podawany
sygna³ wytwarzany zaprogramowa-
n¹ przez uøytkownika przez su-
mÍ iloczynÛw sygna³Ûw wejúcio-
wych (oznaczonych liter¹ I) i†syg-
na³Ûw podawanych zwrotnie na
matrycÍ programowaln¹, wytwarza-
nych w†innych OLMC. W†zaleønoú-
ci od lokalizacji OLMC, liczba do-
stÍpnych dla OLMC iloczynÛw
waha siÍ od 8†do 16 (wed³ug
wzoru: ìzewnÍtrzneî OLMC maj¹
ich 8, nastÍpne 10, aø do 16 dla
OLMC umieszczonych centralnie -
tab. 3 ).
Multipleksery widoczne na rys.
17 s¹ wykorzystywane wy³¹cznie
w†celu skonfigurowania trybu pra-
cy OLMC (za ich konfiguracjÍ od-
powiadaj¹ bezpieczniki S 0 i†S 1 ,
oddzielne dla kaødej OLMC), nie
moøna wiÍc zmieniaÊ ich stanu
podczas pracy uk³adu. Na rys. 18
pokazano moøliwe konfiguracje
OLMC. W†kaødym z†moøliwych
trybÛw pracy, sygna³y wytwarza-
ne w†OLMC s¹ zwrotnie przesy-
³ane na programowaln¹ matrycÍ
AND, dziÍki czemu funkcje lo-
giczne realizowane w†OLMC mo-
g¹ byÊ wykorzystywane przez in-
ne OLMC (oczywiúcie, jeúli wy-
stÍpuje taka koniecznoúÊ).
W†przypadku pracy OLMC w†try-
bie rejestrowym nie ma moøli-
woúci wykorzystania linii I/O ja-
ko wejúciowej (jest na sta³e skon-
figurowana jako trÛjstanowe wyj-
úcie). Sygna³ CLK dostarczany na
wejúcia zegarowe wszystkich prze-
rzutnikÛw jest na sta³e przypisa-
ny do wejúcia I/CLK (wyprowa-
dzenie numer 2†w†obudowie
PLCC28). Niestety, w†uk³adach
GAL22V10 nie ma moøliwoúci
taktowania przerzutnikÛw nieza-
leønymi sygna³ami zegarowymi -
w†trybie rejestrowym OLMC maj¹
do dyspozycji tylko jeden, wspÛl-
ny sygna³. Ograniczenie to nie
dotyczy sygna³Ûw AR i†SP, ktÛre
s¹ wytwarzane indywidualnie dla
kaødego przerzutnika.
Piotr Zbysiñski, EP
piotr.zbysinski@ep.com.pl
Rys. 18. Możliwe sposoby skonfigurowania OLMC w układach
(isp)GAL22V10
Elektronika Praktyczna 4/2004
85
32688445.062.png 32688445.063.png 32688445.064.png 32688445.065.png
Zgłoś jeśli naruszono regulamin