[ Pobierz całość w formacie PDF ]
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
 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
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
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
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
[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jajeczko.pev.pl