Sunteți pe pagina 1din 74

PROIECTAREA DISPOZITIVELOR NUMERICE CU CIRCUITE LOGICE PROGRAMABILE

CIRCUITE PROGRAMABILE

Grad de integrare
LSI - Large Scale Integration
PLA - Programmable Logic Array PLD - Programmable Logic Device

VLSI - Very Large Scale Integration


ASIC - Application Specific Integrated Circuit CPLD - Complex Programmable Logic Device FPGA - Field Programmable Gate Array
20.12.2011 2

PROIECTAREA CLASIC

Etapele fluxului de proiectare


se ncepe cu o specificaie se construiete o diagram bloc se separ seciunile organigramei, dup care se detaliaz fiecare pn cnd se atinge nivelul corect al proiectului logic se integreaz piesele
n caz c exist un produs software dezvoltat anume pentru gestionarea sistemului, se va utiliza n aceast etap
20.12.2011 3

PROIECTAREA CLASIC

Etapele fluxului de proiectare


se creeaz prototipul, care este depanat i corectat cu ajutorul software-ului
adeseori, prototipul nu funcioneaz la viteza proiectat i trebuie reexaminat pentru diverse corecii (de exemplu gtuiri - bottlenecks)

se realizeaz fizic sistemul pe plac (PCB Printed Circuit Board)


i aici apar de multe ori corecii care trebuie efectuate, aspecte impuse de condiiile fizice de realizare a PCB-ului
20.12.2011 4

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

PROIECTAREA CU DISPOZITIVE PROGRAMABILE

Etapele fluxului de proiectare


se pornete i aici tot de la specificaie sistemul este apoi partiionat n blocuri mari
memorii microprocesoare PLD CPLD FPGA + logic de interfaare
20.12.2011 6

PROIECTAREA CU DISPOZITIVE PROGRAMABILE

Etapele fluxului de proiectare


se formuleaz o descriere de nivel nalt a sistemului
cu un editor schematic cu un limbaj de descriere hardware abstract (de exemplu VHDL sau ABEL)

ntregul sistem este simulat - se nlocuiete astfel vechea faz de prototip


20.12.2011 7

PROIECTAREA CU DISPOZITIVE PROGRAMABILE

Etapele fluxului de proiectare


se creeaz lista de componente i legturile dintre ele (netlist) a sistemului netlista este folosit la realizarea PCB-ului n timpul realizrii fizice a PCB-ului, simularea mai este rafinat

20.12.2011

PROIECTAREA CU DISPOZITIVE PROGRAMABILE

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

COMPLETITUDINE FUNCIONAL Calitile eseniale pentru completitudinea funcional


cu ajutorul porii respective s poat fi construit funcia logic I cu ajutorul porii respective s poat fi construit funcia logic NU

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

tipuri de astfel de blocuri logice:


memorii multiplexoare

toate aceste blocuri logice pot realiza funcii booleene formnd tabelele lor de adevr
20.12.2011 13

FUNCII UNIVERSALE

Exemplu: multiplexor 4:1


D0 D1 D2 D3 S1 S0

Ieire

S1 0 0 1 1

S0 0 1 0 1

Ieire D0 D1 D2 D3

20.12.2011

14

FUNCII UNIVERSALE Ecuaia ieirii multiplexorului:


Ieire = S1S0D0 + S1S0D1 + S1S0D2 + S1S0D3

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

O celul cu proprietatea de completitudine funcional O celul cu funcie logic universal


20.12.2011

pot realiza orice funcie logic combinaional folosind una sau mai multe copii ale lor

17

Exemplu - celul logic

Exemplu: celul logic universal realizat cu multiplexoare


se utilizeaz MUX de tip 8:1
D7 D6 D5 D4 D3 D2 D1 D0

MUX 8:1

Ieire

S2 S1 S0

20.12.2011

18

Exemplu - celul logic


celul logic numai cu MUX 8:1 bistabilele trebuie implementate tot cu MUX preul mult prea mare uzual, celula universal (sau funcional complet) celul hibrid are ieirea legat direct la intrarea unui bistabil D (care basculeaz pe front)
Multiplexor cu ieire prin registru
D7 D6 D5 D4 D3 D2 D1 D0

MUX 8:1

DATA

CP QN

S2 S1 S0

20.12.2011

19

Exemplu - celul logic

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

Exemplu - celul logic


structura blocului constructiv poate forma:
orice funcie combinaional de trei variabile funcii secveniale realizate cu bistabile D

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

Celula logic constructiv de baz 20.12.2011

Simbolul celulei de baz 21

Exemplu - celul logic


funcionare:
pentru legturi ntre celule canale de rutare semnalele externe intr prin buffere de intrare i ajung la liniile verticale i orizontale n toate punctele de intersecie a unei linii orizontale cu una vertical se poate realiza o conexiune valorile logice de pe liniile de intrare de date ale multiplexoarelor sunt setate prin intermediul unor circuite de programare funcia fiecrei celule este programat intern ieirea multiplexoarelor este rutat nspre mai multe linii verticale i orizontale, la intrrile altor celule sau la ieirile circuitului ieirile circuitului sunt realizate prin buffere de ieire
20.12.2011 22

ARHITECTURI DE DISPOZITIVE NUMERICE PROGRAMABILE

Arhitectur cu canale de rutare


Celul Canal de rutare I/O

20.12.2011

23

ARHITECTURI DE DISPOZITIVE NUMERICE PROGRAMABILE

Arhitectur foldback (cu reacie invers)

PLD

PLD

PLD

PLD

Structur de interconectare programabil

PLD

PLD

PLD

PLD

I/O
20.12.2011

24

INSTRUMENTE PENTRU PROIECTAREA CU CIRCUITE LOGICE PROGRAMABILE

PROIECTARE

Arhitecturi circuite programabile


celule logice identice reea de conexiuni posibile utilizarea acestor arhitecturi implic translatarea funciilor dorite de proiectant n conexiuni intra i intercelulare pentru a obine proiectul final
20.12.2011 26

PROIECTARE

2 funcii principale
translatare (compilare sau fitting - potrivire)
convertete funciile proiectului n funcii realizabile

verificare
verific dac proiectul translatat este corect

Netlist - list de componente i conexiuni


20.12.2011 27

TRANSLATARE

Paii procesului de translatare


se verific dac numrul pinilor de intrare / ieire este mai mare dect numrul pinilor necesari n proiect se verific dac exist suficiente celule pentru a acoperi numrul de pori logice din proiect se caut n proiect grupuri de componente al cror numr de intrri i de ieiri este egal cu cel al celulei logice de baz se aleg nti grupurile cele mai mari care pot fi formate
20.12.2011 28

TRANSLATARE

Realizarea translatrii
set de reguli pt. substituiile de funcii
set de substituii pt. pori logice

strategie pt. utilizarea optim a regulilor de substituie

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

aici se fac substituiile de funcii


exist sute de reguli

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

verificarea se poate face n timpul translatrii sau al simulrii

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

Modelul de simulare a unei pori I-NU


I-NU 1 * 3 # 1 1 1 1 1 1 1 * # # * 1 * * # # 3 1 # # # # # 1 # # # #
= ZERO 1 = HIGH * = NECUNOSCUT 3 = TRI-STATE # = NEDETERMINAT

a b

ab

Modelul logic Delay Modelul cu o ntrziere adugat


20.12.2011 49

SIMULARE

Simulare poart I-NU


o poart I-NU cu 2 intrri are n tabelul de adevr doar patru combinaii de intrri n simulator fiecare intrare poate lua 5 valori diferite tabelul de adevr din simulator are 25 de combinaii de intrri

20.12.2011

50

SIMULARE

Simulare poart I-NU


* = necunoscut, poate s apar ntr-o situaie real, dac intrarea porii provine de la un bistabil a crui ieire Q este necunoscut (de exemplu la punerea sub tensiune) 3 = 3-state, poate s apar la o intrare dac aceasta provine de la o ieire 3-state de pe un nivel logic anterior # = nedeterminat, poate s apar dac dou buffere 3-state comand acelai nod i ambele sunt n perioada de tranziie
20.12.2011 51

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)

Programarea = configurarea circuitelor


controleaz circuitele programabile la nivel de memorie i de pori logice se urmrete procesarea paralel, simultan a porilor logice optimizarea este:
n spaiu - nr. mic de pori logice n timp = ntrzieri vitez mare de execuie
20.12.2011 60

CONFIGURARE

Configurarea
etape
iniializare tergere memorie de configurare ncrcare date de configurare start-up

control sincron - Clock de configurare (CCLK)


20.12.2011 61

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

tergere memorie de configurare


tergerea n progres e indicat prin INIT (bidirecional) la 0 logic terminarea tergerii seteaz INIT la 1 logic
20.12.2011 63

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

ncrcare date de configurare


Slave Serial Mode - implicit
CCLK - extern FPGA primete datele de configurare n mod serial de la:
PROM serial microprocesor alt surs de date serial

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

ncrcare date de configurare


Master Serial Mode
folosete oscilatorul intern al FPGA pentru generarea CCLK aceeai interfa cu modul Slave Serial Mode precauii legate de frecvena suportat de sursa de date

20.12.2011

67

CONFIGURARE

ncrcare date de configurare


Slave SelectMap Mode - paralel
modul cel mai rapid de ncrcare control cu microprocesor, microcontroler, CPLD flux de date aranjate n bytes (8 bii - 32 bii) flag de control al fluxului de date - BUSY activ pe 1 logic semnale necesare: CCLK, CS (chip select) activ pe 0 logic, RDWR (read/write) activ pe 0 logic se pot ncrca mai multe circuite n paralel
20.12.2011 68

CONFIGURARE

ncrcare date de configurare


Master SelectMap Mode - paralel
CCLK asigurat de oscilatorul FPGA interfaa i modul de funcionare identice cu cele de la Slave SelectMap Mode

20.12.2011

69

CONFIGURARE

ncrcare date de configurare Boundary Scan (JTAG, IEEE 1532) Mode


Boundary Scan - permite testarea la nivel de plac (board level) compatibil cu standardul IEEE 1149.1 Test Access Port logic suplimentar la nivelul ieirilor
20.12.2011 70

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