sistemecu circuiteintegrate digitale - bel.utcluj.ro · circuite secventiale cu spld cpld...
TRANSCRIPT
Sisteme cu Circuite Integrate Digitale
Arii logice programabile. Structuri PLA, PAL, CPLD si FPGA
Prof. dr. ing. Sorin Hintea
Departamentul Bazele Electronicii
Obiective
Sisteme cu circuite integrate digitale – Arii logice programabile 2
Cunoasterea si familiarizarea cu circuitele logice programabile
Familiarizarea cu diferite clase de circuite logice programabile
PAL
PLA
Circuite secventiale cu SPLD
CPLD
Cunoasterea tehnicilor de programare a PLA
Familiarizarea cu FPGA
Cuprins
Sisteme cu circuite integrate digitale – Arii logice programabile 3
Dispozitive logice programabile
Definitii
Clasificare
Tehnici de programare
Simple Programmable Logic Devices
Conexiunea programabila
PLA
PAL
Circuite secventiale cu SPLD
CPLD
FPGA
Dispozitive Logice Programabile - definitii
Sisteme cu circuite integrate digitale – Arii logice programabile 4
Dispozitive logice programabile ( Programmable Logic Devices – PLD) – circuite
logice ale caror structura interna poate fi configurata de catre utilizator folosind metode
electrice ( de exemplu fisiere de configurare – “soft hardware”)
Configuratia circuitului – interconexiunile dintre componente pentru care circuitul
realizeaza functia dorita
elementul cheie a PLD – Conexiunea programabila
Motivatia: functionalitate versatila intr-un singur circuit integrat
Aplicatii:
reutilizarea circuitului (hardware reuse)
prototipare rapida
Sisteme cu circuite integrate digitale – Arii logice programabile 5
Dispozitive Logice Programabile – clasificare
Programmable
Logic
Factory programmable
devices
Field programmable
devices
memorie
ROM
MPGA
mask
programmable
gate array
SPLD
simple
programmable
logic device
CPLD
complex
programmable
logic device
FPGA
field
programmable
gate array
memorie
PROM
PLA
programmable
logic array
PAL
programmable
array logic
GAL
generic array
logic
Dispozitive Logice Programabile – tehnici de programare
Sisteme cu circuite integrate digitale – Arii logice programabile 6
Conexiune programabila - existenta unei conexiuni fizice intre 2 trasee este
stabilita electric de catre utilizator printr-un bit de configurare “c”
conexiune fizica
c
comutator
MOS
reprezentarea
clasica
reprezentarea
uzuala in PLD
Tehnici de programare - circuite programabile ireversibil
Sisteme cu circuite integrate digitale – Arii logice programabile 7
Circuite programabile ireversibil – programarea se realizeaza prin arderea unui
fuzibil sau antifuzibil plasat in punctul de conexiune
Fuzibil → material cu rezistivitate mica (scurt circuit), care se arde la trecerea unui
curent de valoare mare (in general are rol de protectie la supracurent)
prin arderea fuzibilului se realizeaza o intrerupere intre doua cai metalice
Antifuzibil → material dielectric care sub influenta unei tensiuni mari isi schimba
definitiv starea din rezistivitate mare (intrerupere) in rezistivitate mica (scurt circuit)
prin arderea antifuzibilului se realizeaza o conexiune intre doua cai metalice
metal
metal
antifuzibil
(dielectric)
Tehnici de programare - circuite reprogramabile
Sisteme cu circuite integrate digitale – Arii logice programabile 8
Circuite reprogramabile: alternativa la programarea cu fuzibil sau antifuzibil
pentru a permite stergerea configuratiei:
folosesc memorii nevolatile de tip EPROM sau EEPROM
EPROM – configuratia este stearsa neselectiv, prin iradiere cu raze ultraviolete
printr-o fereastra de quarz
EEPROM – configuratia este stearsa selectiv pe cale electrica, sub influenta
unui camp vertical puternic
solutia EEPROM este mai ieftina
Tehnici de programare
Sisteme cu circuite integrate digitale – Arii logice programabile 9
Circuite configurabile in mod dinamic – bitul de configurare a comutatorului
MOS sau a portii de transmisie este citit dintr-o memorie SRAM (bistabil)
Informatia de configurare poate fi obtinuta dintr-o memorie ROM externa sau
din fisierul de programare descarcat de pe un calculator
In-System configuration – reconfigurarea este permisa in timpul operarii
Sisteme cu circuite integrate digitale – Arii logice programabile 10
Simple Programmable Logic Devices (SPLD)
Circuite programabile cu n intrari si m iesiri
implementeaza m functii de n variabile
Contin o arie SI si o arie SAU – logica pe 2 nivele
PLA – ariile SI si SAU ambele programabile
PAL – arie SI programabile si arie SAU fixa
memoria PROM – in implementarea logicii combinationale, se echivaleaza cu
un SPLD cu arie SI fixa si arie SAU programabila
arie
SI
arie
SAU
...
...
...
I0
I1
In
O0
O1
Om
n intrari m iesiri
k linii intermediare
Sisteme cu circuite integrate digitale – Arii logice programabile 11
Programmable Logic Array (PLA)
PLA – circuit programabil cu n intrari si m iesiri implementat cu o arie
programabila SI si o arie programabila SAU
Implementeaza “sume de produse”
Exemplu:
5 produse → 5 porti SI
4 sume → 4 porti SAU
f0 = ab’ + a’c
f1 = a’c + b
f2 = ab’ + abc’
f3 = b + ac
Sisteme cu circuite integrate digitale – Arii logice programabile 12
Programmable Array Logic (PAL)
PAL – circuit programabil cu n intrari si m iesiri implementat cu o arie
programabila SI si o arie fixa SAU
Mai ieftin decat PLA deoarece nu necesita programarea ariei SAU
Mai putin versatil decat PLA
Exemplu: sumator complet
Sum = x’y’Cin + x’y’Cin’ + xy’Cin’ + xyCin
Cout = xCin + yCin + xy
Sisteme cu circuite integrate digitale – Arii logice programabile 13
Circuite secventiale cu SPLD
SPLD cu logica pe doua nivele au fost extinse prin adaugarea unor bistabile si
legaturi de reactie – two-level-logic-plus-register
Aplicatii: automate secventiale, automate de stare
Exemplu – automat secvential
Q2 Q1 Q0 D2 D1 D0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 0
0 1 0
X X X
0 0 1
1 1 0
X X X
1 1 1
0 1 1
00 01 11 10
0
1
Q2Q1
Q0
1 X 1 1
X
D2
00 01 11 10
0
1
Q2Q1
Q0
X
1
1
1 X
D0
D2 = Q0’
D1 = Q2 + Q1’Q0
D0 = Q1
Sisteme cu circuite integrate digitale – Arii logice programabile 14
Circuite secventiale cu SPLD
D2 = Q0’
D1 = Q2 + Q1’Q0
D0 = Q1
D2 D1 D0
Q2 Q1 Q0
Sisteme cu circuite integrate digitale – Arii logice programabile 15
Complex Programmable Logic Devices (CPLD)
Circuite programabile de complexitate extinsa care pot implementa circuite
combinationale si secventiale cu o complexitate <10K porti
Structura CPLD
blocuri functionale → contine un SPLD la care se conecteaza mai multe
macrocelule
macrocelula → contine un bistabil si multiplexoare
arie de interconexiune
arie SI arie SAU
bistabile si multiplexoare
echivalent SPLDBloc functional
MC1 MC2 MC3 … MCn
arie de
inter-
conectare
Bloc functional
macrocelule
Bloc functional
MC1 MC2 MC3 … MCn
Bloc functional
MC1 MC2 MC3 … MCn
Sisteme cu circuite integrate digitale – Arii logice programabile 16
CPLD – structura
Blocul functional – PLD cu n intrari si m iesiri
Macrocelula – implementata cu un bistabil si 2 multiplexoare
MUX1 –selecteaza intre rezultatul sau complementul functiei logice
implementate in blocul functional
Bistabilul – sincronizeaza iesirea PLD cu un semnal de tact
MUX2 – selecteaza intre iesirea combinationala si iesirea sincrona
I0 In
...
I0
I1
A
Y D
ck
Q
I0
I1
A
Y Ok
Bloc functional
(PLD)
macrocelula
1 2
Selectie
programabila
CLB CLB
CLB CLB
CLB CLB
CLB
CLB
CLB
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O...
...
...
...
...
I/OI/O I/O I/OI/O
I/OI/O I/O I/OI/O
Field Programmable Gate Array (FPGA)
Sisteme cu circuite integrate digitale – Arii logice programabile 17
FPGA – circuit integrat VLSI reconfigurabil, care contine o arie de blocuri logice
identice si interconexiuni programabile, si poate fi programat sa implementeze o serie
de functii logice cu o complexitate de milioane de porti → soft hardware
BLP – bloc logic
programabil
Resurse de
interconectare
I/O – bloc
programabil de
intrare/iesire
FPGA – blocuri componente
Sisteme cu circuite integrate digitale – Arii logice programabile 18
BLP – bloc logic programabil → blocuri reconfigurabile dispuse intr-o topologie de
tip matrice, cu 8 – 30 blocuri de-a lungul unei axe, in total pana la 40M porti
I/O – bloc programabil de intrare / iesire → blocuri reconfigurabile dispuse la
periferia circuitului integrat, si realizeaza interfatarea FPGA
Resurse de interconectare → implementeaza interconexiunile programabile dintre
CLB si blocurile I/O: matrice de comutatie, puncte de conexiune programabile,
conexiune intre BLP adiacente
Resurse globale → memorie EEPROM/RAM/bistabile care stocheaza informatia
de reconfigurare, calea globala de tact, calea globala de reset
BLP BLP
BLP BLP
golbal RESETgolbal CLOCK
FPGA – blocul logic programabil (BLP)
Sisteme cu circuite integrate digitale – Arii logice programabile 19
Configurable Logic Block (CLB) – denumirea uzuala in literatura Xilinx; Logic
Element (LE), 8-10 LE formeaza Logic Array Block (LAB) – Altera; VersaTile – Actel
Implementarea BLP cu Look-up Table (LUT): Xilinx Spartan/Virtex, Altera Cyclone
II/Apex II, QuickLogic Eclipse/PolarPro, Lattice Semiconductor ECP
LUT4 – memorie de tip EEPROM cu 4 linii de adresa; un LUT cu 4 intrari
implementeaza o functie logica cu 4 variabile
bistabil D – sincronizeaza iesirea LUT cu semnalul de tact global
MUX 2:1 – slecteaza intre iesirea combinationala si iesirea sincronizata cu
semnalul de tact (comanda se citeste din memoria EEPROM/RAM/bistabile)
FPGA – blocul programabil de intrare / iesire (I/O)
Sisteme cu circuite integrate digitale – Arii logice programabile 20
Padul circuitului integrat e conectat la circuitul programabil de intrare/iesire
Calea de intrare sau iesire e conectata prin buffere programabile
Bistabilele D realizeaza sincronismul datelor cu tactul global, sau reset global
Multiplexorul selecteaza intre iesirea combinationala sau iesirea sincronizata
I/O
pad
D
ck
Q
R
D
ck
Q
R
I0
I1
A
Y
Input circuit
Output circuit
global clock
global reset
input enable
output enable
latched/combinatorial
combinatorial in
latched in
out
buffer
buffer
FPGA – resurse de interconectare
Sisteme cu circuite integrate digitale – Arii logice programabile 21
interconexiuni generale → matrice de comutatie, punct de conexiune programabil
interconexiuni directe → conexiune intre BLP adiacente
interconexiuni la caile globale → calea globala de semnal, tact si reset
SRAM
FPGA – aplicatii
Sisteme cu circuite integrate digitale – Arii logice programabile 22
Prototipuri → proiectare si testare rapida a unor concepte noi de sisteme digital,
proof of concept
Produs final in aplicatii de viteza medie → frecventa maxima de operare este de
150-200 MHz. FPGA permite update de software
Sisteme digitale reconfigurabile → sisteme cu functionalitate diferita la momente
diferite de timp, soft hardware
Circuite de interfatare intre module digitale diferite → glue logic
Coprocesor/Accelerator hardware → FPGA poate rula rutine/parti dintr-un algoritm
complex distribuit, avand ca efect cresterea vitezei sistemului digital
FPGA – avantaje si dezavantaje
Sisteme cu circuite integrate digitale – Arii logice programabile 23
Avantaje FPGA
timp scurt si costuri reduse de dezvoltare a sistemelor digitale
modificare/extindere/corectare usoara a algoritmului
circuit integrat testat, nu pot interveni defecte de fabricatie
Dezavantaje FPGA
fecventa de operare scazuta → comutatoarele din calea de semnal introduc
intarzieri
densitate logica mica → arie mare
consum de putere mare
ciclul scurt de proiectare a sistemelor digitale creste riscul erorilor de
proiectare, datorita testari insufucuente
programarea FPGA cu SRAM necesita inscrierea memoriei la pornire →
necesita memorie PROM/EPROM/EEPROM aditionala
Sisteme cu circuite integrate digitale – Arii logice programabile 24
Bibliografie
Rabaey J.M., Chandrakasan A., Nikolic B. Digital Integrated Circuits. A design perspective.
Prentice Hall, 2003.
Weste N.H.E, Harris D. CMOS VLSI Design. A Circuits and Systems Perspective. Pearson
Addison Wesley, 2005. http://www3.hmc.edu/~harris/cmosvlsi/4e/
C. H. Roth, L.K. John, “Digital System Design using VHDL”, Thompson Learning, New York,
2007.
H. Kaeslin, “Digital Integrated Circuit Design From VLSI Architecture to CMOS Fabrication”,
Cambridge University Press, 2008.
Ercegovac, M., Lang T., Moreno J. Introduction to Digital Systems. John Wiley &Sons Inc,
New-York, 1999
Sorin Hintea, Mihaela Cirlugea, Lelia Festila. Circuite Integrate Digitale. Editura UT Press,
Cluj-Napoca, 2005
Sorin Hintea. Tehnici de proiectare a circuitelor digitale VLSI. Casa Cartii de Stiinta. Cluj-
Napoca, 1998