Sunteți pe pagina 1din 17

8 CAPITOLUL 8

CIRCUITE LOGICE PROGRAMABILE

În situaţiile în care o anumită aplicaţie necesită un CLC foarte complex, care


nu se fabrică sub formă integrată, realizarea practică utilizând circuitele integrate
existente de tip SSI, sau MSI cu numeroase conexiuni între ele, duce la ocuparea
unui spaţiu mare pe cablaj şi la scăderea fiabilităţii globale a montajului. Probleme şi
mai complicate apar când este necesară reproiectarea circuitului din diferite motive
(erori de proiectare, adăugarea de noi facilităţi). În acest caz este nevoie de
refacerea întregului circuit imprimat. Utilizarea tot mai largă a microprogramării în
tehnica digitală a fost susţinută de disponibilitatea crescândă a unor memorii fixe
programabile la utilizator (PROM, EPROM). Există însă o serie de aplicaţii unde se
operează cu un număr mare de variabile de intrare la viteze de funcţionare ridicate,
în care rigiditatea posibilităţilor de adresare ale acestor memorii le face improprii sau
neeconomice. Pentru acoperirea acestor domenii au fost destinate circuitele
integrate bipolare LSI, denumite Circuite (arii, structuri) logice programabile, care
conţin într-o singură capsulă de circuit integrat numeroase porţi interconectabile,
astfel încât să se poată realiza practic o gamă extrem de variată de CLC. Ideea de
bază a circuitului este aceea că în punctele de conexiune interne sunt plasate
fuzibile, care în procesul de programare pot fi arse sau nu rezultând în felul acesta
schema dorită. Ele sunt denumite PLD (Programmable Logic Device) atunci când
sunt programate la fabricaţie prin mască şi FPGA (Field Programmable Gate Arrays),
în cazul când pot fi programate la locul de utilizare.
Aceste circuite prin utilizarea programelor speciale de conectare şi amplasare
a funcţiilor logice în interiorul structurii integrate realizează proiectul digital. Rezultatul
acestor proiecte este un fişier de configurare, care transmis circuitului, îl va configura
astfel ca structura lui internă să realizeze sistemul digital proiectat.
Sistemele de proiectare permit astfel să utilizăm resursele sistemelor de calcul
în mod eficient, fără a face uz de proiectarea prin metode manuale. Introducerea
proiectului se poate realiza fie prin scheme electrice fie prin limbaje de programare
utilizând un simplu editor de texte. Indiferent de metoda utilizată performanţele
schemei digitale se pot verifica funcţional, considerând chiar şi timpi de răspuns ai
circuitelor integrate, timpi care astfel devin calculabili. Apoi proiectul este încărcat în
circuitul integrat pentru a realiza configurarea lui. Corectarea erorilor se reduce doar
la corectarea schemei electrice sau a programului scris.

8.1 Clasificarea circuitelor logice programabile

Reţelele logice programabile cunoscute ca circuite PLA au fost dezvoltate în


anii ’70. Evoluţia circuitelor logice programabile a fost dinamică, paleta bogată a
acestui tip de circuite este prezentată în figura 8.1.
De la circuitele TTL simple s-a trecut la tehnologia circuitelor PROM, tehnologie
care a realizat nu numai un circuit care este configurabil de utilizator, dar a devenit şi

125
Circuite digitale
foarte populară. Programele de dezvoltare vin în ajutorul proiectantului şi reduc
timpul de proiectare. Deoarece proiectantului îi este redus efortul consacrat
proiectării, a devenit posibilă realizarea unor proiecte complexe, implementate într-un
timp foarte scurt.
Exist mai multe tipuri de dispozitive logice programabile, dar toate pot fi împărţite
în următoarele trei mari categorii:

1. PAL/GAL - Programmable Logic Devices PLD (Dispozitive logice programabile):


1.1. PAL Bipolar Programmable Array Logic with Programmable AND/Fixed OR
(Reţea logică programabilă bipolară cu poartă ŞI programabilă/poarta OR
fixă);
1.2. PLA Programmable Logic Array with Programmable AND/Programmable OR
(Reţea logică programabilă bipolară cu poartă ŞI programabilă/poartă OR
programabilă);
1.3. GAL, CMOS Generic Array Logic Output Macrocell (Reţea logică generică cu
ieşire cu macrocelule programabile , se referă la celula reţelei);
2. CPLD Complex programmable logic devices (Dispozitive logice programabile
complexe);
3. FPGA Field Programmable Gate Arrays (Arii de porţi programabile la utilizator).

Circute logice
programabile

SPLD CPLD FPGA


Arii de porţi
Circute logice Circute logice
programabile
programabile simple Programabile simple
la utilizator

PAL FPGA
Programmable Array EPLD.
LCA. SRAM. Switch
Logic, Bipolar Max.Eprom.Flex.
Matrix
ŞI programabil/SAU fix SRAM. Altera. XILINX
XILINX. AT&T
PLA SRAM. Sea of Gates
Programmable Logic Mach. EEPROM
ERA (Plessey),
Array AMD
Piklington
ŞI/SAU programabil
GAL, CMOS
Generic Array Logic PLSI. EEPROM FPGA. Antifuse
ŞI programabil/ SAU Lattice. XILINX Actel
fix
Macrocelule de ieşire
PASIC. Antifuse
Quicklogic

Figura 8.1. Familiile de circuite logice programabile

126
Capitolul 8. Circuite logice programabile
8.2 Dezavantajele circuitelor logice discrete faţă de circuitele
logice programabile
Circuitele logice discrete sau circuitele convenţionale TTL/CMOS sunt
circuitele cele mai populare şi au fost cele mai utilizate circuite şi datorită faptului că
sunt relativ ieftine. Dar una dintre problemele principale în utilizarea lor este că
realizarea unui proiect necesită zeci, sute de circuite integrate, mai mult apar costuri
neprevăzute pentru fiecare circuit ce intră în componenţa sistemului, astfel sistemul
devine scump la realizare. Fiecare decizie luată la proiectare afectează în mod direct
structura circuitului imprimat, astfel că modificarea proiectului devine dificilă. Proiectul
este greu de documentat, iar erorile de proiectare se elimină foarte greu din sistemul
deja realizat. Toate aceste motive contribuie la un ciclu de proiectare îndelungat
dacă aceste circuite integrate sunt utilizate într-un mod extensiv.

8.3 Tipuri de dispozitive logice programabile


Circuitele logice programabile simple (SPLD) sunt compuse din arii de porţi ŞI
care comandă o arie de porţi SAU. Diferitele tipuri de arhitecturi se diferenţiază prin
aceea că o arie sau alta sunt programabile sau fixe.

8.3.1 Memoriile ROM programabile (PROM)

I1 O1

I2 O2
Arie ŞI Arie SAU
fixă programabilă

In Om

Figura 8.2. Schema bloc a unei memorii PROM.


Memoria PROM constă dintr-un set
de porţi ŞI fixe (neprogramabile),
conectate într-o configuraţie de
decodificator, şi o arie de porţi SAU
programabile, aşa cum se poate vedea
în schema bloc din figura 8.2.
Memoria PROM este utilizat ca
memorie adresabilă şi nu ca un circuit
logic datorită limitărilor ce decurg din
faptul că nivelul ŞI este fix.
Structura unei memorii de 8
Conexiune programabilă
cuvinte de câte 4 biţi este prezentată în
figura 8.3 unde se evidenţiază aria ŞI Conexiune fixă

fixă precum şi aria SAU programabilă.


Figura 8.3. Structura PROM

127
Circuite digitale
8.3.2 Arii logice programabile PLA (Programmable Logic Array)
Circuitele PLA sunt circuite care costau într-o arie de porţi ŞI programabilă şi o
arie de porţia SAU programabilă, prezentate în figura 8.4. Această structură permite
implementarea oricărei expresii de tipul sumă de produse (SOP) cu un număr dat de
variabile.
I1 O1

I2 O2
Arie ŞI Arie SAU
programabilă programabilă

In Om

Figura 8.4. Schema bloc a unui circuit PLA.


Circuitul PLA a fost dezvoltat pentru a înlătura limitările circuitelor PROM. Ele
se mai numesc şi FPLA (Field Programmable Logic Array) deoarece ele sunt
programate la utilizator şi nu producător.
În figura 8.5 este reprezentată schema unei astfel de arii logice programabile
compusă din două nivele de logică programabilă: o matrice de porţi ŞI, şi o matrice
de porţi SAU, precum şi cu amplificatoare de ieşire programabile. Matricea ŞI
constituie un decodificator condiţionat, de dimensiuni reduse faţă de numărul mare
de intrări ale circuitului, iar matricea SAU are rol de codificator. Circuitele tipice se
fabrică cu 16 intrări (I0,…,I15), cu matricea ŞI conţinând 48 porţi cu câte 32 de intrări
şi cu matricea SAU prevăzută cu 8 porţi cu câte 48 de intrări. Numărul de ieşiri este
egal cu 8 (O0,…,O7).

Figura 8.5. Structura tipică a unui PLA

128
Capitolul 8. Circuite logice programabile
Toate conexiunile, marcate prin cerculeţe în figură, sunt de tip fuzibil şi pot fi
întrerupte prin programare.
Semnalul de intrare Ik este aplicat unui buffer având rolul de a asigura curentul
necesar bunei funcţionări a porţilor logice cărora li se aplică semnalul, el furnizând
atât variabila de intrare cât şi variabila negată. Porţile logice ŞI sunt legate prin fuzibil
la ieşirile directe şi negate ale tuturor bufferelor de intrare. Practic, în urma
programării, un circuit ŞI va fi legat fie la ieşirea directă fie la cea negată a unui buffer
de intrare. La ieşirea porţilor se obţin termenii produs (P0,..,P47) care pot fi exprimaţi
prin:
15
Pk = ∏ (in An + jn An )
0

unde k=0,…,47; in sau jn=1 intrare programată ; in sau jn=0 intrare


neprogramată.
Circuitele SAU conectabile la toate ieşirile circuitelor de tip ŞI permit obţinerea formei
disjunctive canonice :
47
Sr = ∑ t k Pk
0

unde r=0,…,7; tk=0 termen P inactiv (programat) ; tk=1 termen P activ (neprogramat).
Porţile SAU-EXCLUSIV de la ieşire permit obţinerea funcţiei sau a inversei
acesteia (au rolul de inversor programabil). La ieşire circuitul este prevăzut cu buffere
cu trei stări controlate de o bornă comună CE (Chip Enable) ceea ce permite
conectarea circuitului la magistrale.

Figura 8.6. Exemplu de implementare a funcţiilor cu ajutorul circuitelor PLA.

129
Circuite digitale
Pentru exemplificare să ne propunem realizarea unui CLC cu trei intrări şi
două ieşiri a cărui funcţionare să fie descrisă de următoarele funcţii logice:
Y1 = X 1 • X 2 + X 2 • X 3 + X 1 • X 2 • X 3
Y2 = X 1 • X 3 + X 1 • X 2 • X 3
Schema circuitului realizat pe o arie logică programabilă este reprezentată în
figura 8.6. Pentru realizarea circuitului s-au folosit trei intrări, cinci circuite ŞI precum
şi două circuite SAU.
Circuitele PLD se pot reprezenta în două moduri. Figura 8.7 prezintă structura
detailată a unui circuit PLA cu 4 intrări şi 3 ieşiri având 6 termeni de tip produs.

Figura 8.7. Structura detailata a unui PLA cu 4 intrări şi 3 ieşiri.


În figura 8.8 se prezintă o reprezentare simplificată a aceluiaşi circuit, în care
prin „x” s-au prezentat toate conexiunile intacte.

Figura 8.8. Reprezentare simplificată a circuitului PLA cu 4 intrări şi 3 ieşiri.


Ca un dezavantaj al acestor arii logice programabile menţionăm faptul că ele nu se
pot reprograma, odată programată aria conţinutul acesteia nu se mai poate şterge.

130
Capitolul 8. Circuite logice programabile
8.3.3 Arii logice programabile PAL (Programmable Array Logic – PAL)
Circuitele PAL au fost dezvoltate pentru a înlătura anumite dezavantaje ale
circuitelor PLA cum ar fi întârzierile mai mari datorate legăturilor fuzibile adiţionale
care rezultă din utilizarea a două arii programabile şi a unei complexităţi mai mari a
circuitului. Ariile logice programabile PAL posedă o structură de funcţie logică ŞI
programabilă, urmată de o funcţie SAU fixă (figura 8.9). Faptul că structura funcţiilor
ŞI este configurabilă permite utilizarea într-un număr mare a semnalelor de intrare,
iar funcţia SAU face posibilă realizarea circuitului pe o suprafaţă mică (ceea ce
înseamnă preţ şi timp de propagare scăzut).
I1 O1
Arie SAU
I2 Arie ŞI O2
fixă şi
programabilă
logică de
ieşire
In Om

Figura 8.9. Schema bloc a unui circuit PAL.


În figura 8.10 se prezintă structura de bază a unui circuit PAL. Circuitele PAL
sunt cele mai obişnuite circuite logice programabile o singură dată şi sunt
implementate în tehnologie bipolară (TTL sau ECL).
În figura 8.11 se prezintă structura internă a unui circuit PAL 16L8 care este
unul din cele mai utilizate circuite PAL în ziua de azi, având o arie ŞI programabilă de
64 rânduri şi 64 x 32 fuzibile. Fiecare din cele 64 porţi ŞI are 32 de intrări
corespunzând celor 16 variabile de intrare şi negatelor acestora. Numele circuitului
PAL16L8 indică pe lângă tipul circuitului (PAL), numărul de intrări = 16, L = ieşiri
activă LOW, 8 ieşiri.

Conexiune programabilă Conexiune fixă

Figura 8.10. Structura unui circuit PAL.

131
Circuite digitale

Figura 8.11. Structura logică a circuitului PAL16L8.

132
Capitolul 8. Circuite logice programabile
8.3.4 Arii de porţi logice generice (Generic Array Logic – GAL)
Sunt circuite care au ca şi circuitele PAL o arie de porţi ŞI programabilă şi o arie
de porţi SAU fixă cu circuite de ieşire programabile. Cele două diferenţe majore
dintre un circuit GAL şi un circuit PAL constau în faptul că circuit GAL este
reprogramabil şi are circuite de ieşire configurabile (numite macrocelule OLMC).
Acest tip de circuit este atractiv din punctul de vedere al utilizatorului datorită
flexibilităţii sale. Placa de siliciu pare că este folosită la maximum şi se pare că este
soluţia optimă pentru aplicaţia dată, chiar şi în cazul în care preţul plătit pentru
proiectarea configuraţiei este destul de ridicat.
Ieşirea ariei generice este o macrocelulă configurabilă. Configuraţia poate fii
combinaţională sau secvenţială, astfel un singur tip de circuit GAL înlocuieşte diferite
tipuri de PAL.
Circuitele generice pot fi reprogramate deoarece sunt construite în tehnologie
2
E CMOS (electrically erasable CMOS) în loc de tehnologie bipolară şi legături
fuzibile. Totuşi problema utilizării circuitelor GAL este zgomotul introdus pe circuitul
imprimat, din această cauză aceste circuite nu pot înlocui circuitele PAL bipolare în
aplicaţiile unde acest impediment este foarte important. Schema bloc este prezentată
în figura 8.12.
I1 O1
Arie SAU fixă
I2 Arie ŞI O2
şi logică
programabilă
programabilă
de ieşire
In Om

Figura 8.12. Schema bloc a unei arii de porţi logice generice.


Un dispozitiv GAL poate fi
configurat (prin programare) să
emuleze funcţionarea unor porţi
ŞI, SAU, a unor bistabile,
precum şi a alt structuri de ieşire
combinaţionale sau secvenţiale
a oricărui circuit de tip PAL,
inclusiv a circuitului PAL16L8
prezentat mai sus. În plus el
poate fi şters şi reprogramat pe
cale electrică.
Figura 8.14 prezintă structura
unui circuit GAL16V8 când a
fost configurat ca un dispozitiv
strict combinaţional similar lui
PAL16L8. Cea mai importanţă Figura 8.13. Circuit de ieşire configurabil.
diferenţă între schemele prezentate în figurile 8.11 şi 8.13 este introducerea porţilor
SAU-EXCLUSIV între fiecare poartă SAU şi bufferele de ieşire tristate. O schemă
logică a unei macrocelule este prezentată în figura 8.14.

133
Circuite digitale

Figura 8.14. Circuitul GAL16V8


Circuitul din figura reprezintă o arie de porţi logice generică cu 16 intrări 8 ieşiri
versatile (V).

134
Capitolul 8. Circuite logice programabile
8.4 Arii logice reconfigurabile (Field Programmable Gate Arrays –
FPGA)
Ariile logice reconfigurabile sunt cele mai răspândite circuite programabile în
momentul de faţă. Ciclul redus de proiectare şi densitatea elementelor integrate fac
ca aceste circuite să fie preferate în proiectarea sistemelor digitale. În comparaţie cu
circuitele PAL preţul circuitelor FPGA este mai ridicat, dar densitate a elementelor
logice este de 100-1000 de ori mai mare în circuitele FPGA. Efortul de proiectare şi
riscul sunt mai reduse în comparaţie cu reducerea costurilor de proiectare, dar
utilizate într-un volum mic ele sunt costisitoare.
Ariile logice FPGA au fost introduse în 1985 de firma XILINX. Poziţia de lider
a fost păstrată prin continua îmbunătăţire a circuitelor, şi prin oferta soluţiilor de
proiectare completă. Criteriile pe baza cărora firma şi-a păstrat prestigiul se pot unii
în aşa numitul “triunghi de siliciu”, în care fiecare latură (siliciu, software şi servicii
oferite) îşi are importanţa sa.
Procesul de proiectare cu circuite XILINX FPGA este rapid şi eficient, iar
durata acestui proces este de câteva zile în comparaţie cu câteva săptămâni, termen
obişnuit cu alte tipuri de circuite programabile.
Circuitele FPGA au structura internă asemănătoare cu cea a ariilor generice.
Structura internă prezentată în figura 8.15, este organizată într-o matrice de celule
înconjurate la periferie de celulele de intrare/ieşire I/O. Segmentele de interconexiuni
din metal pot realiza prin intermediul punctelor de conexiune, legături între celulele
logice configurabile şi celulele de intrare/ieşire.

Figura 8.15. Arhitectura internă FPGA


Abundenţa de porţi logice, registre, interfeţe I/O cu o viteză de răspuns mare,
sunt doar câteva caracteristici ale circuitelor logice reprogramabile FPGA. Seria
circuitelor cu aria de configurare de tip SRAM include următoarele familii de produse:
XC2000, XC3000, XC4000, XC5200 şi XC6200.

135
Circuite digitale
8.4.1 Circuitele FPGA din seria XC4000

8.4.1.1 Descrierea structurii interne


Seria XC4000 este implementată într-o structură regulară, flexibilă cu o
arhitectură programabilă, realizată prin blocuri logice configurabile (Configurable
Logic Blocks, CLBs), blocuri de intrare/ieşire (Input/Output Blocks, IOBs) şi resurse
de conexiuni programabile.
Circuitele sunt configurate cu ajutorul memoriei interne (inaccesibilă
utilizatorului). Configuraţia este realizată fie în mod activ de către FPGA prin citirea
unei memorii EPROM (serie/paralel), sau configuraţia este înscrisă de un
microprocesor, microcontroler sau alt FPGA prin mai multe metode, care vor fi
descrise în cele ce urmează.

8.4.1.2 Descrierea blocurilor componente


Structura internă programabilă de utilizator include două elemente majore
configurabile:
- Blocurile logice configurabile (CLBs);
- Blocurile de intrare/ieşire (IOBs).
Astfel vom avea:
• Blocurile CLB furnizează elementele funcţionale şi realizează structura
logică proiectată;
• Blocurile IOB furnizează interfaţa între semnalele interne şi exteriorul
circuitului (legătură realizată fizic prin intermediul pinilor).
Structura cuprinde încă alte trei elemente programabile:
• Fiecărui CLB îi este asociat un 3-state buffer (TBUF) a cărui ieşire este
conectată la liniile lungi asociate;
• Decodificatoare rapide implementate pentru viteze ridicate;
• Un oscilator intern cu frecvenţa de 8MHz;
• Interconexiunile programabile furnizează resursele de conectare între
elementele CLB, IOB.
Funcţia logică realizată de fiecare bloc configurabil este implementată prin
intermediul memoriei statice de configurare. Valorile stocate în aceste memorii
determină starea blocurilor şi a interconexiunilor în interiorul FPGA.

8.4.1.3 Blocurile logice configurabile (CLB)


CLB-urile implementează majoritatea funcţiilor logice proiectate. Elementele
principale ale unui bloc configurabil sunt arătate în figura 8.16.
F şi G sunt generatoare de funcţii cu 2x4 intrări conferind astfel o versatilitate
nelimitată CLB-ului. H generator de funcţii suplimentar ce posedă 3 intrări care pot
forma alte funcţii logice cu semnale de ieşire împreună cu F’ şi G’. Astfel blocul
configurabil poate implementa funcţii logice cu 9 variabile de intrare, cum ar fi
generatoarele de paritate, comparatoarele de identitate sau un set de două funcţii a
câte patru intrări.
Blocul configurabil CLB conţine două elemente de stocare/registru (bistabili
D), care se pot utiliza pentru stocarea rezultatelor date de generatoarele de funcţii.
De asemenea elementele de registru sau generatoarele de funcţii se pot utiliza şi

136
Capitolul 8. Circuite logice programabile
independent. Intrările DIN, H1 sunt intrări directe de stocare. Ieşirile generatoarelor
de funcţii se pot utiliza ca ieşiri independente de ieşirile elementelor de stocare.
Această flexibilitate măreşte resursele logice şi simplifică implementarea proiectelor.
Astfel prin intermediul a 13 intrări şi 4 ieşiri este asigurat accesul la fiecare bloc
configurabil. Intrările şi ieşirile respective legate la resursele programabile asigură de
interconectare vor realiza funcţiile logice.

Figura 8.16 Structura internă a blocului logic configurabil (CLB)

Generatoarele de funcţii
Generatoarele de funcţii sunt implementate ca tabele de memorii (memory
look up table). Astfel, timpul de propagare este independent de funcţia
implementată. Al treilea generator de funcţii cu ieşirea H’, poate implementa orice
funcţie logică Booleană cu 3 variabile. Două dintre aceste intrări împreună cu H1,
ieşirile F’ şi G’ formează o altă funcţie logică. Alternativ, una sau ambele intrări (H2,
H0) pot fi semnale externe blocului. Intrarea H1 provine din exterior. Semnalele de
ieşire ale generatoarelor de funcţii pot forma ieşirile CLB. Ieşirile F’ sau H’ sunt
conectate la ieşirea X, iar G’ sau H’ sunt conectate la ieşirea Y. Un bloc configurabil
se poate utiliza pentru implementarea oricărei funcţii logice dn posibilităţile
următoare:
• Orice funcţie cu până la patru variabile independente, plus orice funcţie
secundară cu până la patru variabile independente, plus orice funcţie
logică cu maximum trei variabile independente;
• Orice funcţie logică cu 5 variabile independente;
• Orice funcţie logică cu 4 variabile împreună cu unele funcţii de 6 şase
variabile;
• Unele funcţii logice cu până la 9 variabile.

137
Circuite digitale
Prin implementarea funcţiilor logice, cu un număr mare de variabile într-un
singur bloc, se reduce numărul de blocuri necesare pentru realizarea proiectului. De
asemenea se reduc şi timpii de propagare, astfel că va creşte capacitatea de
implementare şi viteza de lucru.
Generatoarele de funcţii F’ şi G’ se pot utiliza ca celule de memorie RAM/ROM.

8.4.1.4 Blocurile de intrare/ieşire (IOBs)


Blocurile configurabile de intrare/ieşire realizează interfaţa între mediul exterior
şi structura internă a circuitului FPGA. Fiecare IOB controlează un pin al circuitului
integrat. Blocurile de intrare ieşire se pot configura ca şi port de intrare, port de ieşire
sau port bidirecţional. În figura 8.17 este prezentată diagrama simplificată a blocului
IOB.

Semnalele de intrare din blocul IOB spre interiorul FPGA


Căile I1 şi I2 furnizează semnalele de intrare în IOB. Acestea sunt conectate la
un bistabil al cărui tact de înscriere poate fi pe front sau pe nivel logic.
Blocurile IOB se pot configura astfel încât nivelele tensiunilor de intrare/ieşire
să fie compatibile cu nivele de tensiune TTL sau CMOS. Opţiunea se selectează la
lansarea programului de generare a fişierului de configurare.

Figura 8.17 Diagrama simplificată a blocului de intrare / ieşire la seria XC4000X

Semnale de ieşire din IOB


În mod opţional semnalele de ieşire se pot inversa în interiorul blocului de
intrare/ieşire. Aceste semnale se pot conecta direct la ieşirea pinului sau la bistabilul
de ieşire din IOB. Seria XC4000X permite un curent maxim de ieşire de 12mA/ ieşire.

138
Capitolul 8. Circuite logice programabile
8.4.1.5 Interconexiunile programabile
Toate conexiunile interne sunt compuse din segmente de metal cu puncte de
cuplare programabile şi matrice de cuplare pentru realizarea legăturilor interne.
Există următoarele tipuri de conexiuni:
• Realizarea legăturilor între blocurile CLB este asociată rândurilor şi
coloanelor matricei CLB;
• Realizarea legăturilor între blocurile IOB formează un cordon în jurul
matricii CLB (VersaRing), acest cordon conectează pinii I/O cu blocurile
logice interne;
• Conexiunile globale sunt compuse din reţele dedicate, proiectate pentru
distribuirea rapidă a semnalelor de comandă şi control utilizate în proiect.
Se disting 5 tipuri de linii de interconectare: linii de lungime simplă, linii de
lungime dublă, linii de lungime quad-dublă, linii de lungime octală, linii lungi.

Matrice de conexiuni programabile


Figura 8.18 Interconexiuni programabile.

139
Circuite digitale
8.4.2 Realizarea legăturilor între blocurile CLB
În figura 8.19 sunt prezentate resursele de conectare ale unui bloc CLB. Liniile
de culoare închisă există numai la circuitele XC4000EX.

Figura 8.19. Realizarea legăturilor între blocurile CLB


Întrările şi ieşirile în blocurile configurabile sunt distribuite în toate cele patru
direcţii, pentru ca realizarea conexiunilor să fie cât mai flexibilă. Poziţia intrărilor şi
ieşirilor CLB este interschimbabilă pentru evitarea congestiunilor, în timpul plasări şi
realizări conexiunilor.

8.4.3 Matricea de cuplare programabilă


Liniile de simplă şi dublă lungime verticale şi orizontale se intersectează în
aşa numita matrice de cuplare programabilă (pragrammable switcing matrix –
PSM). Fiecare matrice este alcătuită din tranzistoare de trecere utilizaţi pentru
realizarea conexiunilor între linii (figura 8.20).

Figura 8.20 Matricea programabilă de cuplare

140
Capitolul 8. Circuite logice programabile
8.4.4 Configurarea circuitelor FPGA
Procesul de configurare este metoda prin care un proiect un proiect digital este
implementat (tradus în fişier hartă de biţi) şi transmis printr-o anumită metodă
circuitului FPGA. Metoda se aseamănă cu programarea perifericelor unui
microprocesor. Pentru configurarea unui CLB şi a conexiunilor asociate se utilizează
câteva sute de biţi. Fiecare bit de configurare defineşte starea unei celule de
memorie statice care controlează un bit din tabela de stări, intrare multiplexor sau
punct de tranziţie programabil. Sistemul de dezvoltare traduce proiectul într-o listă de
conexiuni de format Xilinx sau EDIF.

Secvenţa de configurare
În secvenţa de configurare apar patru perioade distincte:

• Ştergerea memoriei de configurare;


• Iniţializarea circuitului;
• Configurarea circuitului;
• Modul de funcţionare dorit.

8.5 Circuite logice programabile complexe CPLD (Complex


programmable logic device)
Circuitele de tip CPLD pot fi considerate ca fiind colecţie de circuite de tip PLD
pe un singur chip, împreună cu o structură de conexiuni programabile, care permite
circuitelor PLD de a fi conectate între ele.

Figura 8.21. Arhitectura generală a unui CPLD.


Seria Xilinx XC9500 este o familie de circuite CPLD cu arhitectură similară dar
cu un număr variabil de pini de I/E precum şi un număr variabil de circuite PLD (Xilinx
numeşte aceste blocuri funcţionale FB Functional Blocks). PLD-urile interne au 36
intrări şi 18 macrocelule şi ieşiri. Un CPLD din această familie poate avea între 2 şi
16PLD-uri, între 36 şi 288 macrocelule şi sunt împachetate în circuite având între 44
şi 352 pini.

141

S-ar putea să vă placă și