CIRCUITE PROGRAMABILE
Grad de integrare
LSI - Large Scale Integration
PLA - Programmable Logic Array PLD - Programmable Logic Device
PROIECTAREA CLASIC
PROIECTAREA CLASIC
PROIECTAREA CLASIC
Revenirile multiple n procesul de proiectare clasic constituie regula, nu excepia Procesul de proiectare clasic - costisitor din punct de vedere al timpului
20.12.2011
20.12.2011
cele mai multe modificri apar n software, n PLD-uri sau n FPGA-uri, nu n interconexiuni sau n componente secundare timpul foarte rapid de la conceperea abstract a unui proiect pn la realizarea sa efectiv
20.12.2011
COMPLETITUDINE FUNCIONAL Concept de baz n nelegerea dispozitivelor numerice programabile se tie c orice funcie boolean poate fi realizat pornind de la o sum de produse proprietatea de completitudine funcional: dac un singur tip de poart logic este capabil de a forma o sum de produse orice funcie boolean poate fi realizat folosind numai acel tip de poart logic
20.12.2011 10
sau
cu ajutorul porii respective s poat fi construit funcia logic SAU cu ajutorul porii respective s poat fi construit funcia logic NU 11
20.12.2011
FUNCII UNIVERSALE
Funciile universale sau generatoarele de funcii sunt blocuri logice care pot fi configurate astfel nct s realizeze orice funcie logic de intrrile blocului
20.12.2011
12
FUNCII UNIVERSALE
toate aceste blocuri logice pot realiza funcii booleene formnd tabelele lor de adevr
20.12.2011 13
FUNCII UNIVERSALE
Ieire
S1 0 0 1 1
S0 0 1 0 1
Ieire D0 D1 D2 D3
20.12.2011
14
dac D0 = D1 = D2 = 0 i D3 = 1, atunci funcia Ieire = S1 S0 I logic dac D0 = 0 i D1 = D2 = D3 = 1, atunci funcia Ieire = S1 + S0 SAU logic dac D0 = D2 = 1 i D1 = D3 = 0, atunci funcia Ieire = S0 NU logic
20.12.2011 15
FUNCII UNIVERSALE
Multiplexorul
universal - poate forma orice funcie de cele dou variabile de intrare S0 i S1 (seleciile) prin setarea valorilor D din tabelul de adevr la 0 sau la 1 logic complet funcional - poate forma funciile:
I i NU sau SAU i NU
20.12.2011 16
CELULE LOGICE
pot realiza orice funcie logic combinaional folosind una sau mai multe copii ale lor
17
MUX 8:1
Ieire
S2 S1 S0
20.12.2011
18
MUX 8:1
DATA
CP QN
S2 S1 S0
20.12.2011
19
celul hibrid problem: toate funciile combinaionale sunt obligate s foloseasc i bistabile D soluie se adaug nc un MUX, de tipul 2:1, care va comanda direct intrarea D a bistabilului sau l va ocoli pentru a "iei" n exterior
20.12.2011 20
intrrile de date nu sunt scoase n afara celulei numr de conexiuni externe redus
D7 D6 D5 D4 D3 D2 D1 D0 S2 S1 S0 CLOCK SELECT D0 01 MUX 8:1 DATA D1 D Q CP QN S D7 D6 D5 D4 D3 D2 D1 D0 S2 S1 S0 CLK SEL S2 S1 OUT S0 CLK SEL
OUT
S2 S1 S0
20.12.2011
23
PLD
PLD
PLD
PLD
PLD
PLD
PLD
PLD
I/O
20.12.2011
24
PROIECTARE
PROIECTARE
2 funcii principale
translatare (compilare sau fitting - potrivire)
convertete funciile proiectului n funcii realizabile
verificare
verific dac proiectul translatat este corect
TRANSLATARE
TRANSLATARE
Realizarea translatrii
set de reguli pt. substituiile de funcii
set de substituii pt. pori logice
20.12.2011
29
TRANSLATARE
Etape urmtoare
maparea tehnologic - inclusiv optimizarea plasarea rutarea
20.12.2011
30
MAPARE
Optimizare netlist
etap esenial metode clasice
teoremele algebrei booleene metode algebrice de minimizare diagrame Karnaugh
20.12.2011
31
MAPARE
Netlist
fiier text
funciile logice din proiect conexiunile de intrare / ieire
20.12.2011
32
MAPARE
Netlist
20.12.2011
* NETSTART * OUT3 DFF I(OUT3_D, CLOCK) O(OUT3, N_OUT3) OUT3_D AN2 I(A1, N2O_1) O(OUT3_D) B2O_1 INV I(A2) O(N2O_1) OUT2_D OR2 I(N21_2, N21_4) O(OUT2_D) OUT2 DFF I(OUT2_D, CLOCK) O(OUT2, N_OUT2) B21_4 AN2 I(N21_3, A4) O(N21_4) B21_2 AN2 I(N21_1, A2) O(N21_2) B21_1 INV I(A1) O(N21_1) B21_3 INV I(A3) O(N21_3) OUT1 DFF I(OUT1_D, CLOCK) O(OUT1, N_OUT1) B22_1 AN2 I(A1, A2) O(N22_1) B22_2 AN2 I(A3, A4) O(N22_2) OUT1_D OR2 I(N22_1, N22_2) O(OUT1_D) * NETEND * NETIN A1, A2, A3, A4, CLOCK NETOUT OUT1, OUT2, OUT3 *
33
PLASARE
Plasare
proces de amplasare fizic a componentelor logice n celulele logice din circuitele programabile se urmrete amplasarea funciilor logice adiacente n celule alturate criteriul critic de plasare - realizarea legturilor ntre celule
20.12.2011 34
RUTARE
Interconectarea
dup plasarea adecvat inspectarea netlistei i a plasrii curente linii de conectare consumate - la un capt au un semnal de ieire i la cellalt capt un semnal de intrare congestie - nu mai sunt linii de conectare disponibile re-rutare - reluarea procesului de plasare i rutare
20.12.2011 35
RUTARE
Interconectarea
rezultat fiier care descrie proiectul iniial n termenii celulelor circuitelor programabile fiierul descrie asignarea poziiilor celulelor i interconexiunile dintre celule fiierul translatat ntr-o hart de bii care va fi transmis unui programator de circuite programabile configurarea
20.12.2011 36
CI CRITICE
Probleme de temporizare
apar ci critice
sporesc numrul de constrngeri adiionale complic plasarea i rutarea
de obicei se plaseaz celulele cu ci critice i apoi celelalte celule din proiect rutarea ncepe cu celulele de pe ci critice se recomand un numr minim de ci critice n proiecte, pentru a scurta sesiunile de plasare i rutare
20.12.2011 37
VERIFICARE
Instrumente de verificare
programe
examineaz netlista transformat analizeaz proprietile proiectului iniial
20.12.2011
38
VERIFICARE
Instrumente de verificare
exemple de verificri
se izoleaz ieirea unei celule i se numr la intrarea ctor altor celule este transmis acel semnal; fiecare celul n care intr semnalul contribuie la o sarcin cumulativ a acestuia programul intervine, distribuind sarcina respectiv la mai multe celule de ieire identice se caut intrri ale celulelor lsate neconectate, care creeaz probleme de zgomote se caut ieiri care nu sunt three-state i sunt totui legate mpreun
20.12.2011 39
SIMULARE
Simulare logic
instrument de verificare
funcional a performanelor temporale
se creeaz un model al reelei logice i se aplic un model al intrrilor (numite stimuli) se obine un model al ieirilor (numite rspunsuri) permite observarea rspunsurilor logice interne (inaccesibile la pinii exteriori)
20.12.2011 40
SIMULARE
Tipuri de simulare
funcional temporal digital a defectelor
20.12.2011
41
SIMULARE
Simulare funcional
se modeleaz celulele logice se combin cu un model al intrrilor binare (tensiuni) se genereaz un model relativ de rspunsuri (tensiuni) avantaje:
modelul este simplu genereaz rapid rezultatele
dezavantaje:
furnizeaz numai relaii relative ntre semnale 20.12.2011 ofer informaii despre temporizare nu
42
SIMULARE
Simulare temporal
se creeaz un model al ntregului proiect
se conecteaz modelele celulelor fiecare model de celul are la ieire un bloc de ntrziere
20.12.2011
43
SIMULARE
Simulare temporal
blocul de ntrziere
ntrzierea introdus de celul n sine, fr conexiuni externe
ntrzierea pentru tranziia din "1" logic n "0" logic ntrzierea pentru tranziia din 0" logic n 1" logic
ntrzierea asociat capacitii de rutare a firului de metal care unete 2 celule ntrzierea dat de suma impedanelor de intrare ale celulelor comandate
planificator de evenimente
20.12.2011 44
SIMULARE
Simularea defectelor
se folosesc tehnici speciale pt. a se obine un scor = grad de defecte, pentru proiect i stimulii aplicai se testeaz fiecare aspect al proiectului conform standardelor industriale se creeaz probleme artificiale (defecte) i se urmrete dac rspunsurile difer de cele obinute n cazul normal, corect
20.12.2011 45
SIMULARE
Simularea defectelor
simulare fundamental
meninerea ieirilor unor celule la 0 sau la 1 logic, n timp ce se aplic stimulii procesul nu este efectuat pentru toate nodurile deodat poate fi realizat pentru mai multe noduri simultan, dac acestea sunt suficient de independente unul fa de cellalt necesit rulri multiple pentru a calcula un grad de defecte este o mare consumatoare de timp
20.12.2011 46
SIMULARE
Simulare
depinde de tipurile de circuite programabile
FPGA - se folosete mai ales simularea temporal CPLD-uri - se prefer simularea funcional ASIC-uri mari (circuite integrate specifice aplicaiei) - de regul se face simularea de defecte
20.12.2011
47
SIMULARE
Evaluare
simulatorul are o bibliotec de funcii fiecare intrare are ataat o rutin care evalueaz un tabel de adevr intrrile ntr-un tabel de adevr de simulator respect mai realist condiiile electrice (ieiri 3-state, intrri necunoscute etc.)
20.12.2011
48
SIMULARE
a b
ab
SIMULARE
20.12.2011
50
SIMULARE
SIMULARE
Simulare
cu ct numrul de intrri din simulator crete, cu att crete i acurateea simulrii, dar cu preul unui consum sporit de timp de rulare
20.12.2011
52
SIMULARE
Modelare
simularea performant include folosirea unor limbaje de modelare speciale = BLM (Behavioral Language Models) BLM
foarte eficiente modele de evaluare, care genereaz rspunsuri de ieire corecte, la stimuli de intrare dai alctuit din proceduri scrise pentru a reaciona corect la un stimul, dar nu conine vreun model de poart anume
20.12.2011
53
SIMULARE
Modelare
exemplu de BLM simplu - bistabil D cod scris n VHDL (Limbaj de Descriere Hardware)
EDGE_TRIGGERED_D: block (CLK = 1 and not CLK STABLE or CLR = 1) begin Q <= guarded 0 when (CLR = 1) else D when (CLK = 1 and not CLK STABLE) else Q; end block EDGE_TRIGGERED_D;
20.12.2011 54
SIMULARE
Modelare
BLM
verificri interne pentru violri de timpi de setup i de hold n interiorul rutinei care evalueaz operaia logic respectiv evalueaz rapid, dar nu arat operaiile interne rmne ca o cutie neagr utilizate la funcii mari
55
20.12.2011
SIMULARE
Modelare
bistabilul D - poate fi modelat n versiunea cu pori
versiunea trebuie s aib ataat o funcie extern, pentru a rspunde necesitilor de verificare a timpilor de setup i de hold ai modelului face o disecie complet a operaiilor modelului, necesitnd un timp de simulare mai mare permite o evaluare complet a gradului de defecte
20.12.2011 56
SIMULARE
Biblioteci
simulatoarele sunt livrate cu biblioteci de modele de simulare conin blocurile constructive necesare gestionrii celei mai mari pri a proiectelor includ pori elementare, bistabile, intrri, ieiri i mai multe funcii adiionale se pot modifica ntrzierile nodurilor interne, se pot rula subrutine ale stimulilor etc.
20.12.2011 57
SIMULARE
Back Annotation
Back Annotation = procesul de alterare a ntrzierilor nodurilor interne modelul de simulare iniial = netlista nainte de plasarea i rutarea proiectului, ntrzierile sunt necunoscute dup plasarea i rutarea proiectului, ntrzierile devin precizate
20.12.2011 58
SIMULARE
Back Annotation
se calculeaz ntrzierile interne folosind legile circuitului electric, lungimea firelor metalice, constantele dielectrice i ali parametri folosind aceste ntrzieri, se alctuiete o netlist cu ntrzieri notate nod cu nod, modificnd netlista originar procesul de back annotation simularea pe baza noii netliste este mult mai precis, detectnd puncte critice care nu au cum s fie observate din exterior
20.12.2011 59
PROGRAMARE (CONFIGURARE)
CONFIGURARE
Configurarea
etape
iniializare tergere memorie de configurare ncrcare date de configurare start-up
CONFIGURARE
Configurarea FPGA
20.12.2011
62
CONFIGURARE
Configurarea
iniializare
aplicare alimentare validare pin de intrare PROGRAM la 0 logic circuitul seteaz ieirea DONE la 0 logic
CONFIGURARE
Configurarea
ncrcare date de configurare
ncrcarea datelor specifice aplicaiei pentru:
a defini operaiile funcionale ale blocurilor interne circuitelor programabile a realiza legturile ntre blocuri
ntre 54K i 4,3G bii de configurare unele din variantele FPGA Spartan i Virtex au posibilitatea de criptare / decriptare
20.12.2011 64
CONFIGURARE
Configurarea
ncrcare date de configurare
modul de ncrcare stabilit cu 3 pini dedicai: M2, M1, M0 Slave Serial Mode Master Serial Mode Slave SelectMap Mode - paralel Master SelectMap Mode - paralel Boundary Scan (JTAG, IEEE 1532) Mode
20.12.2011 65
CONFIGURARE
pot fi ncrcate mai multe circuite simultan prin cascadare (Daisy Chain) datele trebuie s fie prezente pe DIN naintea frontului cresctor al CCLK
20.12.2011 66
CONFIGURARE
20.12.2011
67
CONFIGURARE
CONFIGURARE
20.12.2011
69
CONFIGURARE
CONFIGURARE
Configurarea
start-up
iniiat de o verificare CRC (Cyclic Redundancy Check) corect (ncrcare corect a datelor de configurare) 4 operaii care dureaz 8 cicluri de CCLK
DONE se seteaz pe 1 logic GTS (Global Three State) activeaz toate I/O GST (Global Set/Reset) permite bistabililor s-i schimbe starea GWE (Global Write Enable) permite ca memoriile i bistabilii s-i schimbe starea
20.12.2011 71
PROIECTARE
Procesul de proiectare
INTRODUCERE PROIECT
SIMULARE
TRANSLATARE
Back Annotation
20.12.2011
PROGRAMARE
72
PROIECTARE
Paii de proiectare
1. Se introduce proiectul folosind un editor schematic (schematic capture) sau ecuaii 2. Rezult o netlist (list de componente i legturi) care descrie proiectul 3. Netlista este transmis simulatorului pentru verificare funcional (pentru a vedea dac au fost capturate funciile corecte) 4. Urmeaz procesul de translatare (compilare); plasare i rutare
20.12.2011 73
PROIECTARE
Paii de proiectare
5. Dup translatare, se extrag ntrzierile date de interconectarea celulelor i se realizeaz procesul de back annotation al netlistei 6. Dac simularea noii netliste satisface condiiile, se face inscripionarea fizic a circuitelor programabile (programarea configurarea) 7. n caz contrar, se reface simularea pn la obinerea versiunii definitive corecte
20.12.2011 74