Sunteți pe pagina 1din 124

1

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE


curs

Bibliografie
1. Circuite de comutare aplicate n calculatoarele electronice, V. Pop, Volker Popovici, ed. Facla, 1976 2. Circuite integrate digitale, Gh. tefan, I. Drghici, T. Murean, E. Barbu, EDP, 1983 3. De la poarta TTL la microprocesor, I. Sztojanov .a., ET, 1987 4. Proiectarea cu circuite logice MSI i LSI standard, T.R. Blakeslee, ET, 1988 5. Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme, proiectare, EDP, 1992 6. Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme, proiectare, Ed. Albastr, 2000 7. Automatizri discrete n industrie, Culegere de probleme, N. Sprncean, R. Dobrescu, Th. Borangiu, ET, 1978 8. Sisteme numerice cu circuite integrate, Culegere de probleme, Sanda Maican, ET, 1980 9. Analiza i sinteza dispozitivelor numerice, I.A. Leia, ndrumtor de laborator, I.P. Cluj-Napoca, 1985 10.Analiza i sinteza dispozitivelor numerice, A. Nein, O. Cre, ndrumtor de laborator, UT Press. Cluj-Napoca, 1998

Curs 1 CAPITOLUL I ELEMENTE DE ALGEBR BOOLEAN


1.1. Generaliti
Transferul, prelucrarea i pstrarea datelor numerice sau nenumerice n interiorul unui calculator se realizeaz prin intermediul circuitelor de comutare. Aceste circuite se caracterizeaz prin faptul c prezint dou stri stabile care se deosebesc calitativ ntre ele. Strile sunt puse n coresponden cu valorile binare 0 i 1 sau cu valorile logice adevrat i fals (din acest motiv se mai numesc i circuite logice). Pornind de la aceste considerente, un domeniul al logicii matematice, (tiina care utilizeaz metode matematice n soluionarea problemelor de logic) numit algebra logicii i-a gsit o larg aplicare n analiza i sinteza circuitelor logice. Algebra logicii opereaz cu propoziii care pot fi adevrate sau false. Unei propoziii adevrate i se atribuie valoarea 1, iar unei propoziii false i se atribuie valoarea 0. O propoziie nu poate fi simultan adevrat sau fals, iar dou propoziii sunt echivalente d.p.d.v. al algebrei logice, dac simultan ele sunt adevrate sau false. Propoziiile pot fi simple sau compuse, cele compuse obinndu-se din cele simple prin legturi logice de tipul conjunciei disjunciei sau negaiei . , Bazele algebrei logice au fost puse de matematicianul englez George Boole (1815-1864) i ca urmare ea se mai numete i algebr boolean. Ea a fost conceput ca o metod simbolic pentru tratarea funciilor logicii formale, dar a fost apoi dezvoltat i aplicat i n alte domenii ale matematicii. n 1938 Claude Shannon a folosit-o pentru prima dat n analiza circuitelor de comutaie.

1.2. Definirea axiomatic a algebrei booleene


Algebra boolean este o algebr format din: - elementele {0,1}; - 2 operaii binare numite SAU i SI, notate simbolic + sau i sau ; - 1 operaie unar numit NU negaie, notat simbolic sau . Operaiile se definesc astfel: SI SAU NU 0 0=0 0+0=0 0=1 0 1=0 0+1=1 1=0 1 0=0 1+0=1 1 1=1 1+1=1
3

Axiomele algebrei booleene sunt urmtoarele: Fie o mulime M compus din elementele x1, x2,xn, mpreun cu operaiile i +. Aceast mulime formeaz o algebr dac: 1) Mulimea M conine cel puin 2 elemente distincte x1 x2 (x1,x2 M); 2) Pentru x1 M, x2 M avem: x1 + x2 M i x1 x2 M 3) Operaiile i + au urmtoarele proprieti: a. sunt comutative x1 x2 = x2 x1 x1 + x2 = x2 + x1 b. sunt asociative x1 (x2 x3) = (x1 x2) x3 x1 + (x2 + x3) = (x1 + x2) + x3 c. sunt distributive una fa de cealalt x1 (x2 + x3) = x1 x2 + x1 x3 x1 + (x2 x3) = (x1 + x2) (x1 + x3) 4) Ambele operaii admit cte un element neutru cu proprietatea: x1 + 0 = 0 + x1 = x1 x1 1 = 1 x1 = x1 unde 0 este elementul nul al mulimii, iar 1 este elementul unitate al mulimii. 5) Dac mulimea M nu conine dect dou elemente, acestea trebuie s fie obligatoriu elementul nul 0 i elementul unitate 1; atunci pentru x M exist un element unic notat cu x cu proprietile: x x=0 principiul contradiciei x+x=1 principiul terului exclus x este inversul elementului x. n definirea axiomatic a algebrei s-au folosit diferite notaii. n tabelul urmtor se dau denumirile i notaiile specifice folosite pentru diverse domenii: Matematic Prima lege de compoziie x1 + x2 A doua lege de compoziie x1 x2 Elementul invers x Logic Disjuncie x1 x2 Conjuncie x1 x2 Negare x Tehnic SAU x1 + x2 SI x1 x2 NU x

1.3. Proprietile algebrei booleene


Plecnd de la axiome se deduc o serie de proprieti care vor forma reguli de calcul n cadrul algebrei booleene. Aceste proprieti sunt: 1) Principiul dublei negaii x=x dubla negaie duce la o afirmaie 2) Idempotena x x=x x+x=x 3) Absorbia x1 (x1 + x2) = x1 x1 + (x1 x2) = x1 4) Proprietile elementelor neutre x 0=0 x 1=x x+0=x x+1=1 5) Formulele lui De Morgan x1 x2 = x1 + x2 x1 + x2 = x1 x2 Aceste formule sunt foarte utile datorit posibilitii de a transforma produsul logic n sum logic i invers. Formulele pot fi generalizate la un numr arbitrar de termeni: x1 x2 xn = x1 + x2 + + xn x1 + x2 + + xn = x1 x2 xn 6) Principiul dualitii dac n axiomele i proprietile algebrei booleene se interschimb 0 cu 1 i + cu , sistemul de axiome rmne acelai, n afara unor permutri. Verificarea proprietilor se poate face cu ajutorul tabelelor de adevr i cu observaia c dou funcii sunt egale dac iau aceleai valori n toate punctele domeniului de definiie. Prin tabelul de adevr se stabilete o coresponden ntre valorile de adevr ale variabilelor i valoarea de adevr a funciei. Obs. Comutativitatea i asociativitatea pot fi extinse la un numr arbitrar, dar finit, de termeni, indiferent de ordinea lor.

1.4. Funcii booleene


O funcie f: Bn B, unde B = {0,1} se numete funcie boolean. Aceast funcie boolean y = f(x1, x2,,xn) are drept caracteristic faptul c att variabilele ct i funcia nu pot lua dect dou valori distincte, 0 sau 1. Funcia va pune n coresponden fiecrui element al produsului cartezian n dimensional, valorile 0 sau 1. Astfel de funcii sunt utilizate pentru caracterizarea funcionrii unor dispozitive (circuite) construite cu elemente de circuit avnd dou stri (ex.: un ntreruptor nchis sau
5

deschis, un tranzistor blocat sau n conducie; funcionarea unui astfel de circuit va fi descris de o variabil boolean xi). 1.4.1. Funcii booleene elementare Revenim la forma general a unei funcii booleene de n variabile: y = f(x1, x2,,xn) Domeniul de definiie este format din m = 2n puncte. Deoarece n fiecare din aceste puncte funcia poate lua doar valorile 0 i 1 rezult c numrul total al funciilor booleene de n variabile este N = 2m. Vom considera n continuare funciile elementare de 1 variabil. Pentru n = 1 avem m = 2 i N = 4. Funcia are forma y = f(x) i cele 4 forme ale ei se gsesc n tabelul urmtor: fi f0 f1 f2 f3 x 0 0 0 1 1 1 0 1 0 1 Reprezentare 0 x x 1 Denumire Constanta 0 Variabila x Negaia lui x Constanta 1

La fel se pot realiza toate funciile cu ajutorul unor funcii de baz. Acestora le vor corespunde i nite circuite logice elementare, cu ajutorul crora se poate realiza practic orice tip de circuit. innd cont de faptul c circuitele logice de comutaie au 2 stri stabile LOW (L) i HIGH (H), asignnd lui L 0 i lui H 1 se poate ntocmi un tabel al funciilor elementare. Denumire Inversor NOT Poart SI AND Funcie f=x x f=x f = x1 x2 x1 x2 f=x1 x2 Poart SAU OR f = x1 + x2 x1 x2 f=x1+x2 Simbol Tabel de adevr x f 0 1 1 0 x1 x2 f 0 0 0 0 1 0 1 0 0 1 1 1 x1 x2 f 0 0 0 0 1 1 1 0 1 1 1 1 Tabel de definiie x f L H H L x1 x2 f L L L L H L H L L H H H x1 x2 f L L L L H H H L H H H H

Poart SI-NU NAND

f = x1 x2 x1 x2 f=x1 x2

Poart SAU-NU NOR

f = x1 + x2 x1 x2 f=x1+x2

SAU EXCLUSIV XOR f = x1 + x2 x1 x2 f=x1 + x2 COINCIDEN f = x1 x2 x1 x2 f=x1 x2 =x1 + x2

x1 0 0 1 1 x1 0 0 1 1 x1 0 0 1 1 x1 0 0 1 1

x2 0 1 0 1 x2 0 1 0 1 x2 0 1 0 1 x2 0 1 0 1

f 1 1 1 0 f 1 0 0 0 f 0 1 1 0 f 1 0 0 1

x1 L L H H x1 L L H H x1 L L H H x1 L L H H

x2 L H L H x2 L H L H x2 L H L H x2 L H L H

f H H H L f H L L L f L H H L f H L L H

1.4.2. Reprezentarea funciilor booleene Exist dou moduri de reprezentare a funciilor booleene: grafic i analitic. 1. Modaliti grafice - se caracterizeaz printr-o reprezentare intuitiv, uor de reinut, dar sunt inadecvate pentru funcii booleene cu un numr de variabile mai mare dect 4; 2. Modaliti analitice - sunt mai greoaie, dar permit metode automate, deci algoritmi de simplificare a funciei; se folosesc n general pentru funcii booleene cu numrul variabilelor mai mare dect 5. 1.4.2.1. Modaliti de reprezentare grafic Modalitile de reprezentare grafic sunt: tabel de adevr, diagram Karnaugh, schem logic, diagram de timp. 1. Tabel de adevr se marcheaz ntr-un tabel corespondena dintre valorile de adevr ale variabilelor de intrare i valoarea de adevr a funciei, n fiecare punct al domeniului de definiie. Pentru o funcie cu n variabile de intrare vom avea 2n combinaii. Exist situaii n care, pentru anumite combinaii ale variabilelor de intrare, valoarea funciei nu este specificat. Aceste funcii se numesc incomplet definite. n tabel, n locul n care funcia nu este specificat, se noteaz cu X. Dac o funcie boolean este incomplet definit pentru

m combinaii ale variabilelor de intrare se pot defini 2m funcii noi prin alegerea arbitrar a valorilor incomplet definite. 2. Diagram Karnaugh O diagram Karnaugh pentru o funcie boolean de n variabile se deseneaz sub forma unui ptrat sau dreptunghi mprit n 2n compartimente. Fiecare compartiment este rezervat unui termen canonic al funciei, respectiv unuia dintre vrfurile cubului n dimensional din reprezentarea geometric a funciei (2n n-uple ale funciei). Diagrama Karnaugh este organizat astfel nct dou compartimente vecine pe o linie sau pe o coloan corespund la doi termeni canonici care difer numai printr-o singur variabil, care apare n unul adevrat, iar n cellalt negat (la dou n-pluri adiacente). Se consider vecine i compartimentele aflate la capetele opuse ale unei linii, respectiv coloane. Diagrama Karnaugh se noteaz fie indicnd domeniul fiecrei variabile, fie indicnd pe linie i coloan n-uple de zerouri i uniti corespondente unui compartiment din diagram i ordinea variabilelor. Prima notaie se folosete n cazul n care se reprezint funcia prin forma ei canonic sau normal. A doua notaie se folosete n cazul n care funcia se reprezint prin tabel de adevr. Pentru a putea reprezenta uor funcii exprimate n mod convenional prin indicii termenilor canonici se poate nota fiecare compartiment cu indicele termenului corespondent, innd cont de o anumit ordine a variabilelor. Exemple: 1) Diagrama Karnaugh pentru funcia de 2 variabile: f(x1, x2) = x1 x2 + x1 x2 x2 x2 sau x1 00 01 11 10 x2 Obs. Numerotarea liniilor i coloanelor se face n cod Gray (cod binar reflectat) 0 1 x1 0 1 x1x2 x1x2 x1x2 x1x2 x1 x2 0 1 x1 0 0 1 1 1 0

Cod binar direct Cod Gray 0000 0000 0001 0001 0010 0011 0011 0010 0100 0110 0101 0111 0110 0101 0111 0100 1000 1100 1001 1101 1010 1111 1011 1110 1100 1010 1101 1011 1110 1001 1111 1000 2) Diagrama Karnaugh pentru funcia de 3 variabile: y = f(x1,x2,x3) Domeniul de definiie este format din 23 = 8 puncte i reprezint vrfurile unui cub cu latura 1: x1 001 011 010 x2 Diagramele Karnaugh corespunztoare pot fi reprezentate astfel: x2 x1 x2x3 0 1 00
0 4 1 5

101 111 000 110 100 x3

01
3 7

11
2 6

10

x1 sau

x3

10

x1x2 x3 0 0 1 00 3 01 2 x2 6 7 x1 11 5 10 4 3) Diagrama Karnaugh pentru funcia de 4 variabile: y = f(x1,x2,x3,x4) x4 x1x2 x3x4 00 01 11 10 0 1 3 2 00 5 7 6 01 4 x2 12 13 15 14 x1 11 9 11 10 10 8 x3 Prin sgei am marcat vecintile punctului de coordonate 0010. 4) Diagramele Karnaugh pentru funcii de mai mult de 4 variabile se construiesc din diagrame de 4 variabile considerate ca diagrame elementare. 3. Schem logic reprezentare cu ajutorul simbolurilor circuitelor logice. 4. Diagram de timp reprezentare util pentru studiul unor forme tranzitorii de hazard n circuitele logice. Se reprezint funcii logice n a cror evoluie intervine timpul. Exemplu: f = x1 x2 x1 x2 f

x3 1

Curs 2
1.4.2.2. Modaliti de reprezentare analitic 1) Formele canonice Fie o funcie boolean f(x), unde x = (x1,x2,,xn). Se definete numrul i = x1 20 + x2 21 + + xn 2n-1 ca numr de combinaii. Exemplu: x1 x2 x3 f 0 0 0 0 0 1
10

11

0 1 0 i = 0 22 + 1 21 + 0 20 = 2 0 1 1 Fie funcia Pi definit pe Bn B, deci Pi : Bn B Pi(x1,x2,,xn) = 1 dac numrul de combinaii este i 0 n caz contrar Aceast funcie se numete constituent al unitii. Se poate arta c orice funcie boolean dat prin tabelul de adevr se poate scrie ca o sum de constitueni ai unitii. f(x1, x2,,xn) = Pi1 + Pi2 + + Pip = Pij i,jM1 unde M1 = mulimea tuturor combinaiilor argumentelor pentru care funcia ia valoarea 1. Aceast form de scriere se numete forma canonic disjunctiv FCD, iar termenii constitueni se numesc termeni canonici conjunctivi sau mintermi (se mai numete i forma sum de produse). Funcia boolean se mai poate scrie i sub forma Si : Bn B unde B = {0,1}. Si(x1,x2,,xn) = 0 dac numrul de combinaii este i 1 n caz contrar Se poate demonstra c orice funcie boolean poate fi adus la forma: f(x1, x2,,xn) = Si1 Si2 Siq = Sij i,jM0 unde M0 = mulimea tuturor combinaiilor argumentelor pentru care funcia ia valoarea 0. Aceast form de scriere se numete forma canonic conjunctiv FCC, iar factorii constitueni se numesc termeni canonici conjunctivi sau maxtermi (se mai numete i forma produs de sume). Se poate demonstra c Si = Pi. Algoritmi de obinere a formelor canonice pe baza tabelului de adevr sau a diagramei Karnaugh: FCD - se determin toate combinaiile variabilelor pentru care valoarea funciei este 1; - se scriu mintermii corespunztori (o variabil apare nenegat dac are valoarea 1 i negat dac are valoarea 0); - se nsumeaz mintermii obinui anterior. FCC - se determin toate combinaiile variabilelor pentru care valoarea funciei este 0;

11

12

- se scriu maxtermii corespunztori prin nsumarea variabilelor (o variabil apare nenegat dac are valoarea 0 i negat dac are valoarea 1); - se nmulesc maxtermii obinui anterior. Exemplu: x1 x2 x3 f 0 0 0 0 0 0 1 1 mintermul este x1 x2 x3 0 1 0 0 maxtermi sunt (x1+x2+x3) (x1+x2+x3) Trecerea dintr-o form canonic n alta se poate face n dou moduri: - cu ajutorul tabelului de adevr; - prin aplicarea dublei negaii i a teoremelor lui De Morgan. Teorema lui Shannon Complementul unei funcii booleene se obine prin complementarea fiecrei variabile i interschimbarea operatorilor I cu SAU i reciproc. f(x1,x2,,xn)+, = f(x1,x2,,xn) ,+ Teorema de expansiune Fie funcia boolean f(x1,x2,, xi-1, xi, xi+1,,xn) care se expandeaz dup variabila xi. Avem atunci: f(x1,x2,, xi-1, xi, xi+1,,xn) = xi f(x1,x2,, xi-1, 1, xi+1,,xn) + xi f(x1,x2,, xi-1, 0, xi+1,,xn) Funcia dual este: f = [xi + f(x1,x2,, xi-1, 0, xi+1,,xn)] [xi + f(x1,x2,, xi-1, 1, xi+1,,xn)] 2) Forma elementar La formele canonice ale funciilor booleene termenii conin toate variabilele independente de intrare, negate sau nenegate. Termenii formei elementare nu conin toate variabilele de intrare. Aceast form se obine din formele canonice prin minimizare. 3) Forma neelementar Forma neelementar conine variabile sau grupuri de variabile comune mai multor termeni. Se obine din celelalte forme prin aplicarea algebrei booleene. Este folosit la implementarea funciilor logice deoarece permite reducerea numrului de intrri n circuitele logice. Are dezavantajul mririi numrului de nivele logice. 1.4.3. Minimizarea funciilor booleene Algebra boolean se folosete la analiza i sinteza dispozitivelor numerice (circuite de comutaie). ntre gradul de complexitate al circuitului i cel al funciei care l descrie exist o legtur direct. Aceasta este motivaia pentru care, n etapa de sintez a circuitelor de
12

13

comutaie, dup definirea acestora, urmeaz n mod obligatoriu etapa de minimizare a funciei, avnd drept scop obinerea unor forme echivalente mai simple (forma minim). Soluia minim obinut n urma minimizrii ar trebui s fie cea mai avantajoas (economie de pori logice, obinerea unei scheme mai fiabile, mai ieftine). n realitate nu este ntotdeauna aa. De exemplu, dorina de a obine un sistem uor depanabil poate duce la obinerea unei soluii neminimale, dar care prezint proprieti interesante de simetrie i regularitate. Prin aplicarea metodelor de minimizare (de simplificare) se ajunge la expresii minimale sub forma unor SAU-uri de SI-uri (reuniune minimal) ori a unor SI-uri de SAU-uri (intersecie minimal). Criteriile utilizate n vederea minimizrii sunt: - reducerea numrului de variabile; - reducerea numrului de termeni; - reducerea pe ansamblu a variabilelor i termenilor, astfel ca suma lor s devin minim. Minimizarea const n principal n transformarea formelor canonice i a formelor elementare parial simplificate n forme elementare minimale. Metodele de minimizare pot fi grupate n metode algebrice i metode grafice. 1.4.3.1. Minimizarea grafic 1. Diagrama Karnaugh Minimizarea se bazeaz pe proprietatea de adiacen a codului binar reflectat (Gray) cu ajutorul cruia se numeroteaz liniile i coloanele diagramei Karnaugh. n vederea minimizrii se aleg suprafeele maxime (subcuburi) formate din constitueni ai unitii, respectiv din constitueni ai lui 0, suprafee (subcuburi) avnd ca dimensiune un numr de ptrate (compartimente) egal ntotdeauna cu puteri ale lui 2. Aceste suprafee vor corespunde termenilor canonici, termenii vecini fiind adiaceni (difer printr-un singur bit). Ca urmare, n urma gruprii lor se vor reduce variabilele pe baza relaiei: x1 x2 + x1 x2 = x1. Metoda de minimizare: - se realizeaz grupri de compartimente (subcuburi) care sunt puteri ale lui 2. Un compartiment poate fi membru al mai multor suprafee. O suprafa cu 2m celule vecine va elimina 2m variabile de intrare. - se scriu ecuaiile corespunztoare fiecrei suprafee, obinnduse astfel termenii elementari.

13

14

- se realizeaz forma disjunctiv minim (FDM) prin nsumarea termenilor elementari obinui prin gruparea constituenilor lui 1 sau forma conjunctiv minim (FCM) prin nmulirea termenilor elementari obinui prin gruparea de constitueni ai lui 0; funciile minimale obinute sunt identice, ele diferind numai prin forma de prezentare. Pentru a se obine forma minimal a unei funcii booleene este util s se minimizeze ambele forme canonice, FCC i FCD. Apoi, n funcie de disponibilitatea componentelor i de numrul de conexiuni care rezult, se poate alege forma minimal a funciei booleene care va fi implementat. Exemplu: f(x1,x2,x3,x4) = (3, 7, 8, 9, 12, 13, 15) x4 x1x2 x3x4 00 01 x1 11 10 00 0 0 1 1 01 0 0 1 1 11 1 1 1 0 10 0 0 0 0 x2

x3 Pentru FDM a funciei se obin dou variante, dup cum se aleg suprafeele pentru minimizare: fFDM1 = x1 x3 + x1 x3 x4 + x1 x2 x4 sau fFDM2 = x1 x3 + x1 x3 x4 + x2 x3 x4 Implementarea cu pori de tip SI-NU arat astfel: fFDM1 = x1 x3 + x1 x3 x4 + x1 x2 x4 = = x1 x3 x1 x3 x4 x1 x2 x4

Minimizarea funciei negate va fi:


fFDM = x1 x3 + x3 x4 + x1 x2 x3 La fel se procedeaz i la minimizarea funciei prin folosirea constituenilor de 0: x4 x1x2 x3x4 00 01 11 10 00 0 0 1 0 01 0 0 1 0 x2 x1 11 1 1 1 0
14

15

10

x3 Forma minimizat conjunctiv a funciei FCM este: fFCM = (x1+x3) (x3+x4) (x1+x2+x3)
2. Diagrame Karnaugh pentru funcii incomplet definite

Funciile incomplet definite sunt cele care n anumite puncte ale domeniului de definiie pot lua valoarea 0 sau valoarea 1. Avem dou posibiliti: - combinaii de intrare pentru care funcia are valori indiferente (nedefinite); - combinaii ale variabilelor care nu pot s apar din punct de vedere fizic; n aceste situaii trebuie studiat dac combinaiile sunt susceptibile s se produc n urma unei manevre false sau n urma unui defect de funcionare; pentru a evita funcionarea greit, n locaiile corespunztoare se impun valori pentru funcie, astfel nct s nu se perturbe funcionarea normal. Valorile nespecificate precum i locaiile corespunztoare din diagrama Karnaugh se numesc indiferente sau arbitrare sau redundante. Ele se noteaz cu x i vor fi considerate n timpul minimizrii ca avnd valoarea 1 sau 0, n funcie de situaie, pentru a se obine o minimizare ct mai bun. x4 x1x2 x3x4 00 01 x1 11 10 00 x 1 1 01 x 1 1 x 11 1 1 1 10 x x x2

x3 Ca s minimizm funcia n FDM considerm c x au valoarea 1 i grupm aceti x numai cu valorile de 1, nu i ntre ei (o grupare ntre ei nu are nici o semnificaie). Se obine: fFDM = x1 x2 + x2 x3 + x1 x4 + x2 x4

Obs. n cazul funciilor incomplet definite, funcia complementar simplificat prin grupri de 0 nu coincide ntotdeauna cu complementul funciei.
3. Diagrame Karnaugh cu expresii a. Superpoziia funciilor booleene

15

16

Fie o funcie boolean f(X) cu X = (x1,x2,, xi, xi+1,,xn). Dac considerm X1 = (x1,x2,, xi) i X2 = (xi+1,,xn) i dac funcia f(X) poate fi scris ca o funcie f(X) = f3[f1(X1), f2(X2)] atunci spunem c f(X) a fost obinut prin superpoziia funciilor f1(X1) i f2(X2). Dac X1X2 = atunci avem o superpoziie disjunct, iar dac X1X2 avem o superpoziie nedisjunct. x1 f xn Dup superpoziie avem: x1 f1 xi f3 f xi+1 f2 xn b. Decompoziia funciilor booleene Dac se d o funcie boolean i un set de funcii se cere s se realizeze o spargere a funciei booleene. S-a reuit decompoziia funciei booleene dac: f = fm [fm-1(Xm-1), fm-2(Xm-2),,f1(X1),X0] unde Xi X Dac f poate fi scris ca f = f2[f1(X1),X0] decompoziia este simpl.
m-1

Decompoziia este nedisjunct dac: Xi =


i=j m-1

Decompoziia este disjunct dac: Xi


i=j

Exemplu: f(x1,x2,x3,x4) = (0, 2, 3, 7, 9, 10, 11, 14) x4 x1x2 x3x4 00 01 11 10 00 1 1 1 01 1 x2 x1 11 1 10 1 1 1 x3 fFDM = x1 x2 x4 + x1 x3 x4 + x1 x3 x4 + x1 x2 x4 = x2(x1 x4) + x3(x1 + x4) = = x2 G + x3 G unde G = x1 + x4 i deci f se poate scrie: f = f2[G(x1,x4), x2,x3]
16

17

Pornind de la aceast form pentru f, facem o minimizare.


f = x2 G + x3 G = x2 G (x3 + x3) + x3 G (x2 + x2) = = x2x3G + x2x3G + x2x3G + x2x3G = x2x3 + x2x3G + x2x3G Diagrama Karnaugh corespunztoare este: x2 x3 0 1 0G 1 x2 1 0 G x3 n general o diagram Karnaugh cu n expresii (sau variabile) are n 2 locaii. Prin nglobarea n diagram a m expresii (variabile) dimensiunea diagramei se reduce, numrul de locaii devenind 2n-m. Pentru a minimiza o funcie prin diagrame Karnaugh cu expresii se fac urmtorii pai: 1) se consider toate variabilele din diagram ca i cum ar fi 0 i se formeaz suprafee (subcuburi) cu constituenii lui 1; 2) se consider toate locaiile cu 1 indiferente i se formeaz suprafee (subcuburi) cu variabilele nglobate; 3) se consider intersecia variabilelor nglobate cu gruprile obinute n pasul 2; 4) se face reuniunea termenilor din paii 1 i 3; 5) pentru mai mult de o variabil nglobat se trateaz pe rnd conform pailor 1 - 4 numai cte o variabil, celelalte fiind considerate 0, iar apoi se scrie reuniunea tuturor termenilor obinui. Exemplu: S se minimizeze funcia cu variabile nglobate: x1 x2x3 00 01 11 10 0 a+b 1 c 1 1 1 x Pasul 1. x1 x2x3 00 01 11 10 0 1 1 1 1 x Se obine x2 x3 + x1 x3

Pasul 2 i 3.
11 x x 10 c x

x1 x2x3 0 1

00 x

01 a+b

Se obine

c x2 + (a+b) x1 x3
17

18

Pasul 4. f = x2 x3 + x1 x3 + c x2 + (a+b) x1 x3

Curs 3
1.4.3.2. Minimizarea algebric

Minimizarea algebric a funciilor booleene se face cu ajutorul teoremelor algebrei booleene. n cazul n care numrul de variabile este mai mare dect 6 se utilizeaz metoda de minimizare Quine-Mc Cluskey. Aceast metod are avantajul c algoritmul este uor de implementat pe calculator. Pentru prezentarea metodei vom lua ca exemplu funcia: f = (0, 2, 3, 5, 7, 8, 10, 11, 13, 15) Etapele de minimizare sunt: 1. Se grupeaz termenii canonici astfel nct termenii din fiecare grup s conin acelai numr de 1, respectiv 0. TC x1 x2 x3 x4 0 0 0 0 0 2 0 0 1 0 8 1 0 0 0 3 0 0 1 1 5 0 1 0 1 10 1 0 1 0 7 0 1 1 1 11 1 0 1 1 13 1 1 0 1 15 1 1 1 1 2. Se compar fiecare termen dintr-o grup cu toi cei din grupa urmtoare, aplicnd
18

19

relaia de reducere: x1 x2 + x1 x2 = x1. Se grupeaz termenii care difer printr-o singur variabil (o singur poziie binar). Termenul obinut prin combinare va conine pe poziia respectiv semnul -. Comparare Rezultatul comparrii ntre x1 x2 x3 x4
0, 2 0, 8 2, 3 2, 10 8, 10 3, 7 3, 11 5, 7 5, 13 10, 11 7, 15 11, 15 13, 15 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1

n continuare se repet procedeul de comparare pn cnd nu mai este posibil nici o reducere. Comparare Rezultatul comparrii ntre x1 x2 x3 x4 0, 2, 8, 10 - 0 - 0 2, 3, 10, 11 - 0 1 3, 7, 11, 15 - - 1 1 5, 7, 13, 15 - 1 - 1 Termenii rezultani, (0, 2, 8, 10), (2, 3, 10, 11), (3, 7, 11, 15) i (5, 7, 13, 15) se numesc implicani primi IP. 3. Se aleg acei implicani primi IP care asigur acoperirea minimal a termenilor
19

20

canonici TC. Pentru aceasta se construiete un tabel de acoperire, n care pe coloane se noteaz termenii canonici TC, iar pe linii implicanii primi IP. n intersecii se noteaz acei termeni canonici TC acoperii de fiecare implicant prim IP. IP 0 2 3 5 7 8 10 TC 11 13 15 0, 2, 8, x x x x 10 2, 3, 10, x x x 11 x 3, 7, 11, x x 15 x x 5, 7, 13, x x 15 x x Unii dintre implicanii primi sunt implicani primi eseniali pentru c acoper cel puin un termen canonic al funciei, care nu este acoperit de alt implicant prim. Implicanii primi eseniali vor face parte n mod obligatoriu din expresia minimizat a funciei. n cazul nostru implicani primi eseniali sunt (0, 2, 8, 10) i (5, 7, 13, 15). Pentru termenii canonici care au rmas neacoperii, 3 i 11, se observ c pot fi alei 2 implicani primi, (2, 3, 10, 11) i (3, 7, 11, 15), deci exist 2 soluii de minimizare. f = (0, 2, 8, 10) + (5, 7, 13, 15) + (2, 3, 10, 11) = x2x4 + x2x4 + x2x3 i
20

21

f = (0, 2, 8, 10) + (5, 7, 13, 15) + (3, 7, 11, 15) = x2x4 + x2x4 + x3x4
1.4.4. Minimizarea sistemelor de funcii booleene

Sistemele de funcii booleene sunt exprimate prin f: Bn Bm unde B ={0, 1}. Argumentele pot fi de n variabile i sunt mai multe funcii de acest tip: f1, f2,, fm. Pentru a minimiza sistemele de funcii se caut implicani primi pentru f1, f2,, fm i pentru produsele f1 f2, f1 f3, f1 fm, f1 f2 f3, , f1 f2 f3 f4,, f1 f2 fm. Soluia aleas pentru implementarea sistemului de funcii booleene va fi cea care va fi cea mai avantajoas din punct de vedere al circuitelor disponibile i al preului. Exemplu: f1(x1,x2,x3) = (1, 5, 6, 7) f2(x1,x2,x3) = (1, 4, 5, 6) f3(x1,x2,x3) = (0, 2, 5, 6, 7) 1. Calculm funciile produs: f1 f2 = (1, 5, 6) f1 f3 = (5, 6, 7) f2 f3 = (5, 6) f1 f2 f3 = (5, 6), identic cu f2 f3 2. Determinm implicanii primi din funciile simple i din produsele determinate la punctul 1.
21

22

Pentru determinarea implicanilor primi se folosesc diagrame Karnaugh n care se iau toate acoperirile posibile. Pentru f1:
x1 x2x3 0 1 x1 x2x3 0 1 x1 x2x3 0 1 x1 x2x3 0 1 x1 x2x3 0 1 x1 x2x3 0 1 00 01 1 1 01 1 1 01 1 00 01 1 1 01 1 00 01 1 11 1 11 10 1 10 1

Pentru f2:
00 1 00 1

Pentru f3:
11 1 11 10 1 1 10 1 11 1 11 10 1 10 1

Pentru f1 f2: Pentru f1 f3:

00

Pentru f2 f3 i f1 f2 f3:

3. Construim un tabel n care capetele de linii vor reprezenta funciile, iar coloanele vor fi implicanii primi.

Funcia

Implicani primi
22

23

Indici Expresii Notaii f1 1,5 x2x3 6,7 x1x2 5,7 x1x3 f2 1,5 x2x3 4,5 x1x2 i 4,6 x1x3 h f3 0,2 x1x3 g 2,6 x2x3 f 6,7 x1x2 5,7 x1x3 1,5 x2x3 e f1 f2 6 x1x2x3 5,7 x1x3 d f1 f3 6,7 x1x2 c 5 x1x2x3 b f2 f3 = 6 x1x2x3 a f1 f2 f3 4. Se noteaz IP pe coloana a patra din tabel ncepnd cu ultimul, iar cei care apar dublai nu se mai noteaz. 5. Se construiete un tabel al acoperirilor funciilor f1, f2, f3. Nota Indi Funci f1 f2 f3 ii cii a de 1 5 6 7 1 4 5 6 0 2 5 6 7 unde au rezulta t a 6 f1 f2 f x x x
23

24

5 f1 f2 f
3

c 6, 7 f1 f3 x x x x d 5, 7 f1 f3 x x x x e 1, 5 f1 f2 x x x x f 2, 6 f3 x x g 0, 2 f3 x x h 4, 6 f2 x x i 4, 5 f2 x x 6. Determinm acoperirile optime ale funciilor f1, f2, f3. A(f1) = e,c + e,d,a = A1 + A2 cu e implicant prim esenial A(f2) = e,h + e,i,a = B1 + B2 cu e implicant prim esenial A(f3) = g,c,b + g,c,d, + g,f,d + g,a,d = C1 + C2 + C3 + C4 cu g implicant prim esenial 7. Se scriu toate acoperirile posibile pentru sistemul de funcii i se alege acea acoperire care realizeaz condiiile de pre minim i disponibilitate de piese. Se face tabelul pentru acoperiri: Acoperiri A1B1C1 A1B1C2 A1B1C3 Elementele acoperirii e,c,h,g,b e,c,h,g,d e,c,h,g,f,d
24

Numr de termeni 5 5 6

Co st 11 10

25

A1B1C4 e,c,h,g,a,d 6 A1B2C1 e,c,i,a,g,b 6 A1B2C2 e,c,i,a,g,d 6 A1B2C3 e,c,i,a,g,f,d 7 A1B2C4 e,c,i,a,g,d 6 A2B1C1 e,d,a,h,g,c,b 7 A2B1C2 e,d,a,h,g,c 6 A2B1C3 e,d,a,h,g,f 6 A2B1C4 e,d,a,h,g 5 11 A2B2C1 e,d,a,i,g,c,b 7 A2B2C2 e,d,a,i,g,c 6 A2B2C3 e,d,a,i,g,f 6 A2B2C4 e,d,a,i,g 5 11 Avem acoperiri minimale cu 5 termeni. Pentru a calcula costul unei acoperiri se face suma costurilor implicanilor primi din acoperirea considerat. Costul unui implicant prim de n variabile din care lipsesc r variabile este n-r, pentru c fiecare variabil prezent necesit un contact, o legtur.
n-1

C = gr (n-r)
r=0

unde gr este numrul subcuburilor din care lipsesc r variabile. Pentru acoperirea A1B1C2, care are elementele e,c,h,g,d, avem costul:
2

25

26

C = gr (3-r) = g0 3 + g1 2 + g2 1 = 0 3 + 5 2 + 0 1 = 10
r=0

e = x2x3 c = x1x2 h = x1x3 g = x1x3 d = x1x3 Minimizarea sistemului de funcii va fi: f1 = x2x3 + x1x2 f2 = x2x3 + x1x3 f3 = x1x3 + x1x3 + x1x2 = x1x2 + x1 + x3 Datorit reducerii corelate a sistemului de funcii apar pori comune mai multor funcii.
Curs 4 CAPITOLUL II CIRCUITE LOGICE COMBINAIONALE
2.1. Definiii
Circuitele logice combinaionale, CLC, sunt un caz particular al sistemelor secveniale finite sau al automatelor finite, numite automate de grad 0. Circuitele logice combinaionale se caracterizeaz prin faptul c variabilele de ieire sunt independente de timp i de starea intern, fiind determinate numai de variabilele de intrare (starea variabilelor de intrare la momentul considerat). Legtura dintre starea ieirii i starea intrrii unui CLC este realizat de funcia de transfer. x1 y1 x2 y2 CLC xn ym

26

27

Oricare funcie de ieire y (y1, y2,, ym) este funcie de toate variabilele de intrare (x1, x2,, xn). Un CLC se poate descrie astfel: y1 = f1(x1, x2,, xn) y2 = f2(x1, x2,, xn) ym = fm(x1, x2,, xn) Funciile se vor exprima n forma canonic disjunctiv FCD sau n forma canonic conjunctiv FCC. Independena fa de timp presupune c o dat cu modificarea variabilelor de intrare se modific simultan i variabilele de ieire. Din punct de vedere practic, datorit ntrzierilor produse de circuitele logice i de conexiuni, modificarea simultan nu este posibil. Ca urmare, pe durata procesului tranzitoriu de stabilire a variabilelor de ieire, vectorul ieirilor poate lua valori intermediare diferite de valoarea final, ceea ce conduce la fenomenul de hazard combinaional, de care trebuie s se in cont la proiectarea unui sistem numeric. n general, la circuitele logice combinaionale, vom face abstracie de proprietile fizice ale porilor logice, de faptul c un impuls teoretic difer de unul real. Vom analiza aceste fenomene doar n cazul hazardului combinaional.

2.2. Analiza circuitelor logice combinaionale


n cadrul analizei CLC se pleac de la cunoaterea schemei logice a circuitului i se urmrete stabilirea funcionrii acestuia. Stabilirea expresiei variabilei de ieire se face de la intrare la ieire, urmrind transformrile variabilelor de intrare. Definim ca numr de nivele al unui CLC numrul maxim de pori dintre intrri i ieiri. Numerotarea nivelelor se face de la ieire nspre intrare. x5 x1 x2 y1 x3 x4 y2 x6 x7 4 3 2 1

x1

Circuitul logic combinaional din exemplu are 4 nivele. Exist i urmtoarea situaie de legturi ntre pori: y
27

28

x2 x3

Acest circuit are i legturi inverse. Ultimele pori nu pot fi numerotate, deci circuitul nu este un CLC. n CLC sunt admise legturile inverse (ieirea unei pori dintr-un nivel inferior s fie dus la intrarea unei pori dintr-un nivel superior) cu condiia ca definiia CLC s fie respectat.

Algoritm de determinare a legturilor inverse n CLC


a. Se numeroteaz toate porile logice care au ca intrri un subset din mulimea variabilelor de intrare ale circuitului logic (de la 1 la k); b. Se numeroteaz de la k+1 porile care au ca intrri fie intrri ale circuitului, fie ieiri ale porilor numerotate la punctul a. Dac am reuit s numerotm toate porile circuitului logic, acesta este fr legturi inverse i este circuit combinaional. Dac nu am reuit numerotarea tuturor porilor logice, circuitul este de tip secvenial.

2.3. Sinteza circuitelor logice combinaionale


n cadrul sintezei circuitelor logice combinaionale se cunoate funcia pe care trebuie s o ndeplineasc circuitul i se caut s se gseasc structura acestuia. Etapele sintezei circuitelor logice combinaionale sunt: 1. Enunul problemei; 2. Alctuirea tabelului de adevr, definirea funciei sau funciilor; 3. Minimizarea funciei sau funciilor; 4. Desenarea schemei circuitului Exist mai multe metode de implementare a CLC, difereniate dup nivelul de complexitate al circuitelor integrate folosite. 2.3.1. Sinteza CLC cu circuite integrate SSI Circuitele integrate de tip SSI small scale integration au pn la 50 de tranzistoare integrate pe capsul. Dintre aceste circuite fac parte porile logice fundamentale: SI-NU (NAND), SAU-NU (NOR), NU (NOT), SI (AND), SAU (OR), SAU-EXCLUSIV (XOR). Dup parcurgerea etapelor de sintez se face implementarea funciei sau funciilor logice cu ajutorul circuitelor integrate existente. CLC de tip SSI se folosesc mai mult pentru adaptarea la aplicaie a

28

29

circuitelor de tip MSI i LSI standardizate, care nu satisfac cu exactitate cerinele de proiectare. Ele vor fi utilizate acolo unde circuitele cu grad nalt de integrare nu pot fi folosite. 2.3.2. Sinteza CLC cu circuite integrate MSI Circuitele integrate de tip MSI medium scale integration au pn la 500 de tranzistoare integrate. Ele ofer structuri mai complexe, disponibile ca i structuri standard. Forma funciilor logice pe care dorim s le implementm cu circuite de tip MSI trebuie s fie corelat cu circuitele disponibile. De obicei nu mai este necesar minimizarea funciilor. Circuite combinaionale uzuale (specializate) 1. Convertoare de cod Convertoarele de cod sunt CLC care permit trecerea dintr-un cod binar n altul. La intrarea circuitului se aplic cuvintele unui cod i la ieire se obine alt cod. Convertoarele de cod fac compatibil funcionarea a 2 sisteme n care informaia este codificat n mod diferit. Exemplu: Conversiile din cod Gray n cod binar-zecimal (BCD) i invers 1) Cod Gray BCD Cuvintele de cod n cele dou coduri sunt: Gray: gn, gn-1,, g0 BCD: bn, bn-1,, b0 Reguli: bn = gn g3 g2 g1 g0 b3 b2 b1 b0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 Se construiesc diagrame Karnaugh pentru determinarea funciilor minimizate pentru b3, b2, b1, b0.
29

30

Diagrama Karnaugh pentru b3: g3g2 g1g0 00 01 11 10 00 01 11 1 1 1 1 10 1 1 1 1 Obinem: b3 = g3 Diagrama Karnaugh pentru b2: g3g2 g1g0 00 01 11 10 00 01 1 1 1 1 11 10 1 1 1 1 Obinem b2 = g2g3 + g2g3 = g2 + g3 Diagrama Karnaugh pentru b1: g3g2 g1g0 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 Obinem b1 = g1g2g3 + g1g2g3 + g1g2g3 + g1g2g3 = g1(g2 + g3) + g1(g2 + g3) = g1 + g2 + g3 Diagrama Karnaugh pentru b0: g3g2 g1g0 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 Obinem b0 = g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 = g2g3(g0 + g1) + = g0 + g1 + g2 + g3 n general: bn = gn
i

bi =

1 0

dac + gj = 1
j=n-1

dac nu

2) Conversia din BCD n Gray: gn = bn gi = bi + bi+1 2. Codificatoare


30

31

Codificatoarele sunt CLC la care activarea unei intrri conduce la apariia unui cuvnt de cod la ieire. Exemplu: Codificator din zecimal n BCD (binar codificat zecimal) Zecimal BCD 3 0 1 2 3 4 5 6 7 8 9 2 22 21 20 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 Intrrile sunt active pe 0 logic. De exemplu, dac este activ (adic 0) intrarea 5, pe ieire se va obine codul n BCD pentru 5, adic 0101. Funciile pentru ieiri sunt: 23 = 8 9 22 = 4 5 6 7 21 = 2 3 6 7 20 = 1 3 5 7 9 Codificatorul prioritar este un codificator care are mai multe intrri active simultan i la ieire se obine cuvntul de cod care corespunde intrrii care este cea mai prioritar. Prioritatea crete de la cifra 0 nspre cifra 9. 3. Decodificatoare Decodificatoarele sunt CLC la care se activeaz doar una dintre ieiri, pentru combinaia (codul) corespunztoare a variabilelor de intrare. Ele au funcie invers codificatoarelor. Ieirile decodificatoarelor sunt active pe 0 logic (funcioneaz n logic negativ). I1 y1

Circuite SI-NU
In ym Numrul ieirilor distincte este m 2n. Exemplu: Decodificator pentru 3 cifre binare. I2 I1 I0 O7 O6 O5 O4 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1
31

O3 1 1 1 0

O2 1 1 0 1

O1 1 0 1 1

O0 0 1 1 1

32

1 1 1 1

0 0 1 1

0 1 0 1

1 1 1 0

1 1 0 1

1 0 1 1

0 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

Funciile pentru ieiri sunt: O7 = I2I1I0; O6 = I2I1I0; O5 = I2I1I0; O4 = I2I1I0; O3 = I2I1I0; O2 = I2I1I0; O1 = I2I1I0; O0 = I2I1I0. 4. Multiplexoare Multiplexoarele sunt CLC care permit trecerea datelor de pe una din intrri la o ieire unic. Selecia intrrii se face printr-un cuvnt de cod de selecie numit i adres. I0

MUX In-1

sm-1 s0 Cu m linii de selecie se pot selecta 2m intrri. Funcia realizat de ieire este: y = Ik unde k este numrul de combinaii m-1 k = sm-1 2 + + s0 20 Aplicaiile cele mai importante ale MUX sunt la selecia secvenial a datelor, conversia paralel-serie a datelor, sisteme de transmisie a datelor pe un singur canal, implementarea circuitelor logice combinaionale cu o singur ieire. Exemple 1) I0 MUX y I1 2:1 s Multiplexorul de tip 2:1 are 2 semnale de intrare, I0 i I1, un semnal de selecie s i o ieire y. n funcie de semnalul de selecie avem pentru ieire: y = I0 s + I1 s. s=0 y = I0 s=1 y = I1

Deci multiplexorul las s treac spre ieire semnalul de pe acea linie de intrare corespunztoare lui s.
I0

2)

32

33

I1
I2 I3

MUX
4:1 y

s0 s1 Multiplexorul de tip 4:1 are 4 semnale de intrare, 2 semnale de selecie i un semnal de ieire. Ieirea va fi: y = I0 s0 s1 + I1 s0 s1 + I2 s0 s1 + I3 s0 s1 Exist multiplexoare de tip 8 : 1, 16: 1, 32 : 1. Multiplexoarele integrate au disponibile att ieirea adevrat ct i cea negat. Ele au i o intrare de Enable pentru validare, care permite o funcie SI suplimentar. 5. Demultiplexoare Demultiplexoarele sunt CLC care permit transmiterea datelor de pe o intrare de date comun pe una din ieirile selectate. Selectarea ieirii se face cu ajutorul unui cuvnt de cod de selecie numit i adres. y0

DEMUX yn-1
sm-1 s0

Cu m linii de selecie se pot selecta 2m ieiri. Funciile de ieire sunt: y0 = sm-1 s0 I y1 = sm-1 s0 I y2m = sm-1 s0 I 6. Comparatoare numerice Comparatoarele numerice sunt CLC care permit determinarea valorii relative a dou numere binare. Comparatoarele pot fi de 1 bit sau de mai muli bii. Exemplu: Comparator pe 1 bit Ai y1 y2 Bi y3 Funciile de ieire sunt: y1 = Ai Bi pentru Ai < Bi, y2 = Ai + Bi pentru Ai = Bi y3 = Ai Bi pentru Ai > Bi
33

34

Acest circuit constituie celula de baz pentru compararea numerelor cu mai muli bii. 7. Detectoare-generatoare de paritate Detectoarele-generatoare de paritate sunt CLC cu rol de a determina i genera paritatea sau imparitatea numrului de variabile de intrare egale cu 1. Bitul de paritate este utilizat ca metod de verificare a transferului de date. Sunt posibile 2 situaii: a. numrul biilor de 1 + bitul de paritate = numr par b. numrul biilor de 1 + bitul de paritate = numr impar Realizarea detectoarelor de paritate se bazeaz pe funcia logic SAUEXCLUSIV (0 pentru par i 1 pentru impar). 8. Sumatoare-scztoare Sumatoarele i scztoarele sunt CLC care realizeaz adunarea, respectiv scderea cifrelor binare. Semisumatorul este un CLC care efectueaz suma a 2 numere binare de cte 1 bit, fr a ine cont de transportul de la bitul de semnificaie imediat inferioar. Semisumatorul este: A0 S0 1/2 B0 C0 Valorile pentru suma S0 i transportul spre rangul superior C0 sunt: S0 = A0 B0 + A0 B0 = A0 + B0 C0 = A0 B0 Sumatorul pentru bitul de rang n este: An Sn Cn-1 Bn Cn Valorile pentru suma Sn i transportul Cn pentru rangul superior sunt: Sn = An Bn Cn-1 + An Bn Cn-1 + An Bn Cn-1 + An Bn Cn-1 = = (An + Bn) Cn-1 + (An + Bn) Cn-1 = An + Bn + Cn-1 Cn = An Cn-1 + Bn Cn-1 + An Bn Sumatoarele pentru cuvinte binare cu mai muli bii se realizeaz prin interconectarea sumatoarelor pentru 1 bit. Adunarea se efectueaz n paralel, iar propagarea transportului n serie. Semiscztorul de 1 bit are ieirile: D0 = A0 B0 + A0 B0 = A0 + B0 I0 = A0 B0 Scztorul complet de rangul n are ieirile:

34

35

Dn = An Bn In-1 + An Bn In-1 + An Bn In-1 + An Bn In-1 = =(An + Bn) In-1 + (An + Bn) In-1 = An + Bn + In-1 In = An In-1 + Bn In-1 + An Bn Scztoarele pentru cuvinte binare cu mai muli bii se realizeaz prin interconectarea scztoarelor pentru 1 bit. 9. Uniti aritmetico-logice Unitile aritmetico-logice sunt CLC care realizeaz operaii de tip aritmetic i operaii de tip logic.

Curs 5
2.3.2.1. Implementarea funciilor booleene cu circuite MSI Circuitele integrate de tip MSI cum sunt decodificatorul DCD, demultiplexorul DEMUX i multiplexorul MUX pot fi considerate circuite universale deoarece genereaz n interior toi termenii canonici. Implementarea cu DCD a unei funcii booleene nu necesit operaii de minimizare. La ieirea DCD se obin toi termenii canonici negai ai formei canonice disjunctive FCD ai funciei. Realizarea funciei se face cu o poart logic de tip SI-NU, cu un numr de intrri egal cu numrul de termeni ai funciei. Implementarea cu MUX a unei funcii booleene se bazeaz pe relaia care definete funcionarea sa. De exemplu, pentru un MUX de tip 4:1 avem ecuaia ieirii: y = I0 x1 x2 + I1 x1 x2 + I2 x1 x2 + I3 x1 x2 n care se observ c exist intrri separate pentru fiecare din cele 4 combinaii ale variabilelor de selecie x1, x2. Dac avem o funcie boolean de n variabile de intrare se pot da factor variabilele x1 i x2 i se obin 4 funcii de n-2 variabile de intrare, care se vor conecta la intrrile I0 I3 ale unui MUX de tip 4:1. Similar, cu un MUX 8:1 se pot elimina 3 variabile de intrare, iar cu un MUX 16:1 se pot elimina 4 variabile de intrare. Dac avem o funcie de 4 variabile se pot elimina 3 variabile prin aplicarea lor pe intrrile de selecie ale unui MUX 8:1. La cele 8 intrri ale MUX se vor conecta cele 8 funcii de o variabil. Singurele funcii posibile de o variabil sunt: xi, xi, 0, 1. Deci putem implementa orice funcie cu 4 variabile de intrare folosind un singur MUX de 8 ci i fr pori adiionale. Exemplu Considerm funcia: f = (0, 1, 3, 5, 9, 10, 13, 15) = x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 Folosim un MUX 8:1 i aplicm variabilele x2x1x0 pe intrrile de selecie. Pentru a determina intrrile multiplexorului, I0 I7, vom face un tabel:
35

36

I0 I1 I2 I3 I4 I5 I6 I7

x3 1 x3 x3 0 1 0 x3

x2x1x0 (x3 + x3) x2x1x0 x2x1x0 x2x1x0 x2x1x0 (x3 + x3) x2x1x0 x2x1x0 x2x1x0

Implementarea funciei cu MUX este: En x3 1 x3 x3 f 0 f 1 0 x3 s2 s1 s0 x2 x1 x0 Avantajele implementrii cu MUX: - se poate implementa funcia cu un sigur circuit de tip MUX; - intrarea de Enable poate fi folosit ca un SI final cu ntreaga funcie; - doar o singur variabil trebuie s fie disponibil i adevrat i negat. Dezavantajele implementrii cu MUX: - nu se pot folosi termeni n comun n cazul minimizrii sistemelor de funcii (sisteme cu mai multe ieiri); - nu se poate face implementarea funciilor la care numrul de termeni este mai mare dect numrul intrrilor MUX; - exist multe funcii care pot fi implementate comod prin utilizarea de pori logice MUX utilizat doar pentru funcii dificile. Procedura de implementare cu MUX se poate face plecnd de la diagrama Karnaugh. Se construiete o diagram Karnaugh n care se definete domeniul intrrilor I. x1x0 00 01 11 10 00 I0 I1 I3 I2 01 I4 I5 I7 I6 11 I4 I5 I7 I6
36

x3x2

37

10 x3x2 x1x0 00 01 11 10

I0 00 1

I1 01 1 1 1 1

I3 11 1 1

I2 10

Variabila care variaz este x3. Configuraiile de 1 din diagrama Karnaugh indic modul de conectare a intrrilor MUX, la x3, x3, 1 sau 0. I0 = x3; I1 = 1; I2 = x3; I3 = x3; I4 = 0; I5 = 1; I6 = 0; I7 = x3 2.3.3. Sinteza CLC cu circuite integrate LSI Circuitele integrate de tip LSI Large Scale Integration au peste 500 de tranzistoare integrate pe capsul. Pentru exemplificarea sintezei CLC se descriu dou tipuri de circuite din aceast categorie: ROM (Read Only Memory) i PLA (Programmable Logic Array), cu varianta FPLA. 2.3.3.1. Sinteza CLC cu memorii de tip ROM Memoria de tip ROM este numit i memorie fix sau permanent. Ea este nevolatil, coninutul ei nu se modific n timpul funcionrii. Structura ei este stabilit n procesul de fabricaie sau este stabilit de utilizator prin programare. I0 O0 DCD In-1 Matrice Om-1

Memoria ROM este format din dou niveluri de pori logice: SI (un decodificator) i SAU-NU (matricea de memorie). DCD din primul nivel primete codurile de intrare n binar (n este numrul intrrilor) i activeaz pentru fiecare cod o ieire din cele 2n. Ieirile DCD se conecteaz sau nu se conecteaz la circuitele de tip SAU-NU i astfel se memoreaz un 0 sau un 1 logic. Vectorii de intrare n ROM se numesc adrese i reprezint codurile n binar ale numerelor asociate fiecrui cuvnt de memorie. Ieirile sunt de obicei three-state sau open colector pentru a permite legarea n paralel cu ieirile altor memorii. Avem notaiile: n = numrul de bii ai vectorului de intrare (adresa) c = numrul de cuvinte memorate n ROM c = 2n b = numrul de bii din fiecare cuvnt Numrul de cuvinte trebuie s fie putere a lui 2. Modul de organizare a ROM este specificat prin produsul c x b. Capacitatea
37

38

memoriei se exprim prin numrul total de bii memorai: C = 2n x b. Unitatea de msur pentru capacitatea memoriei este kilobitul (1 Kb = 1024 bii). Memoriile au o intrare de Enable care permite (E = 0) sau inhib (E = 1) funcionarea ROM. Dac memoria este dezactivat, indiferent de adresare, ieirile sunt pe semnal logic 1. Aplicaiile mai importante ale memoriilor de tip ROM sunt: - memorarea instruciunilor i datelor n sisteme de calcul i automate secveniale; - transformri de adres i nmagazinarea instruciunilor n microprogramare; - conversii de cod; - generatoare de caractere; - generare de secvene de impulsuri; - implementarea CLC cu un numr mare de variabile de intrare i ieire. Implementarea CLC cu un numr mare de variabile de intrare i ieire se bazeaz pe structura intern a memoriei ROM. Pe nivelul de DCD se decodific toi termenii canonici. Fiecare cuvnt de la intrarea matricei reprezint de fapt un termen canonic format din variabilele de intrare. La nivelul urmtor se adun toi termenii din expresia oricrei funcii i rezult funcia de ieire. Lista de cuvinte din ROM este chiar tabelul de adevr al CLC. La implementarea cu ROM nu este necesar minimizarea, deoarece sunt memorai toi termenii canonici i sunt incluse toate posibilitile de apariie a acestora n funcia de ieire. Pentru folosirea eficient a memoriei ROM n sinteza funciilor booleene, variabilele de intrare i ieire trebuie codate, astfel nct s conin ct mai mult informaie. Se poate codifica orice grup de variabile care sunt mutual exclusive, adic doar una dintre ele poate fi activ la un moment dat. Pentru reducerea numrului de intrri n ROM se utilizeaz des i multiplexoarele. Exemplu: S se implementeze cu ROM funciile: f0(x3,x2,x1,x0) = x3 x2 x1 x0 f1(x3,x2,x1,x0) = x2 x1 f2(x3,x2,x1,x0) = x3 x2 x1 x0 + x3 x2 x0 + x3 x2 x0 + x2 x1 Memoria folosit este de tipul: x3 A3
38

39

x2 x1 x0

A2 A1 A0

16 x 4 bii CS D3D2D1D0

f2 f1 f0 Cu A s-au notat intrrile de adrese, cu D datele i cu CS (chip select), intrarea de Enable a circuitului. Coninutul nscris n memorie este dat n tabelul urmtor: A2 A1 A0 D3 f1 f0 A3 f2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0

Scopurile urmrite la implementarea cu ROM sunt: - utilizarea unui numr minim de circuite integrate; - folosirea integral a capacitii memoriei. Pentru implementarea CLC cu memorii ROM trebuie urmrite urmtoarele etape: - stabilirea dimensiunii memoriei necesare pentru aplicaia respectiv; - alegerea tipurilor de circuite de tip ROM cu dimensiuni identice sau ct mai apropiate de cele stabilite anterior; - dac nu exist memorii cu dimensiuni identice sau apropiate de cele dorite se fac transformri de dimensiuni (modificarea numrului de cuvinte sau numrului de bii pe cuvnt); - stabilirea tabelului de adevr al ROM;

39

40

- reducerea dimensiunii ROM atunci cnd este posibil prin utilizarea codificrii intrrilor sau ieirilor i a multiplexrii intrrilor. 2.3.3.2. Sinteza CLC cu PLA PLA (Programmable Logic Array) este un CLC cu dou nivele de logic programabil, o matrice de pori SI i o matrice de pori SAU. PLA este de fapt o structur universal, extins, de implementare cu 2 nivele de pori logice. Ambele matrici sunt programabile, n procesul de fabricaie sau de ctre utilizator, conform aplicaiei concrete. PLA este o structur mobil i se utilizeaz eficient pentru sisteme cu mai mult de 8 variabile de intrare. Deoarece la PLA sunt programabile ambele nivele, implementarea se face pornind de la termenii elementari ai funciei, obinui prin minimizarea ei. Reprezentarea schematic a PLA cu n intrri, m ieiri i p termeni elementari realizabili este: x1 conexiune programabil x2

xn Matrice SI 1 conexiune programabil p 1 Matrice SAU fm m conexiune programabil CS Avantajele implementrii cu PLA fa de implementarea cu ROM se refer la posibilitatea programrii matricei SI i a complementrii variabilelor de ieire (variabilele de ieire pot fi programate individual ca active pe 0 sau pe 1). Aplicaii ale PLA sunt la:
40

f1

41

- microprogramare; - conversii de cod; - generare de caractere; - realizare de tabele de funcii; - implementarea automatelor secveniale. Observaie. Exist circuite integrate cu grad i mai mare de integrare (VLSI) utilizate n implementare. Amintim dintre acestea FPGA (Field Programmable Gate Array).

2.4. Hazardul combinaional


Datorit ntrzierilor produse de circuitele logice i de firele de legtur ale unui CLC se poate ca starea ieirii circuitului n momentul modificrii strii variabilelor s nu coincid cu valoarea funciei corespunztoare valorii intrrilor n momentul considerat. Pentru timp scurt circuitul are o comportare greit, numit hazard. Exemplu f(x1,x2,x3) = x1 x3 + x2 x3 x1 1 f x3 g 3 f x2 2 x3 h Diagrama Karnaugh pentru funcie este: x1 x2x3 00 01 11 10 0 1 1 1 1 1 n practic ntrzierile 1, 2, 3 ale porilor SI-NU nu sunt egale, de aceea poate s apar hazardul combinaional i cnd se pune condiia ca doar o singur variabil de intrare s se modifice la un moment dat. Hazardul apare atunci cnd starea intrrilor x1x2x3 se modific de la 010 la 011 sau invers. x1 x2 x3

41

42

g h f f tr

dei starea ar trebui s fie nemodificat. Dup timpul de reacie tr = 1 + 2 va apare la ieire un impuls negativ de durat t = 2 1 i n aceast durat ieirea ia o valoare incorect. Eliminarea hazardului static se poate face n cazul n care se impune ca la un moment dat s se modifice starea unei singure variabile de intrare. Pentru realizarea funciei se consider i unii termeni redundani din diagrama Karnaugh, astfel nct oricare doi de 1 aflai n csue adiacente n diagram s fie inclui cel puin ntr-un contur luat n considerare la sinteza schemei.
2 1

>

Pentru exemplul dat se va introduce n expresia funciei termenul x1x2. f = x2 x1 + x3 x1 + x3 x2 x1 x3 x2 x3 x1 g h


1

f
2

i t
42

43

x2 x1 x2 x3 g h i f f Observaii 1. Hazardul static poate s apar i cnd 1 > 2, la schimbarea 011 n 000. 2. Proiectarea unui CLC cnd se schimb mai mult dect o singur variabil de intrare la un moment dat, fr s apar hazard, este mai dificil sau chiar imposibil de realizat (hazard de funcie). 3. Eliminarea sigur a hazardului se poate face lund n considerare ieirea circuitului dup un interval de timp mai mare dect ntrzierea maxim din circuit.

Curs 6 CAPITOLUL III CIRCUITE LOGICE SECVENIALE

Circuitele logice secveniale, CLS, sunt automate de ordinul 1. Se obin din automatele de ordinul 0 (CLC) prin introducerea unor reacii (legturi inverse). Sunt alctuite din circuite logice combinaionale i elemente de memorare binar.
43

44

Semnalele de ieire ale CLS depind att de combinaia semnalelor aplicate pe intrri ct i de starea circuitului. Un CLS este caracterizat printr-o secven a semnalelor de ieire i o secven a strilor elementelor de memorie, pentru fiecare secven a semnalelor aplicate pe intrrile circuitului.
Dup modul de funcionare (modul de transmitere a semnalelor) exist 2 categorii principale de CLS: 1. asincrone comportarea este determinat de aplicarea pe intrri a semnalelor n momente oarecare; starea circuitului depinde de ordinea n care se schimb semnalele; 2. sincrone comportarea este determinat de aplicarea pe intrri a semnalelor n momente discrete, bine determinate n timp; sincronizarea se realizeaz cu ajutorul unor impulsuri date de un generator de tact (ceas). Exemple de CLS: bistabili, numrtoare, registre, memorii RAM.

3.1. Circuite basculante bistabile


Definiie. Circuitele basculante bistabile (CBB sau bistabil) sunt circuite logice secveniale care au dou stri stabile distincte. Trecerea dintr-o stare n alta se face la aplicarea unei comenzi din exterior. Caracteristica principal a CBB este c sunt sisteme cu memorie (elemente de memorie binar). Un bistabil poate pstra un timp nedefinit informaia binar i n acelai timp starea sa poate fi citit n orice moment. Se asociaz uneia dintre cele 2 stri ale bistabilului funcia de memorare a cifrei binare 1 i celei de a doua stri funcia de memorare a cifrei binare 0. Bistabilul are 2 ieiri, una care pune n eviden cifra binar memorat, numit ieire adevrat i a doua, care pune n eviden valoarea negat a cifrei binare memorate, denumit ieire negat. 3.1.1. Bistabilul RS asincron (latch) Bistabilul RS asincron are 2 intrri de comand (de date): S (Set) i R (Reset) i dou ieiri Q i Q (complementare). Simbolul bistabilului RS asincron este: S Q R Q

44

45

Tabelul de adevr al bistabilului RS asincron este: tn tn+1 Sn Rn Qt+1 0 0 Qt 1 0 1 0 1 0 1 1 Din punct de vedere logic nu are sens s se fac simultan nscrierea i tergerea informaiei, ca urmare Sn = 1 i Rn = 1 va fi o situaie interzis (de nedeterminare, pentru c nu se poate prevedea starea final). Condiia de bun funcionare care se pune este Sn Rn = 0. Pentru a face sinteza circuitului vom considera semnalul de ieire Qt+1 la momentul tn+1, semnal care depinde de starea intrrilor Sn i Rn i de starea Qt, la momentul tn. Vom scrie Qt+1 ca o funcie de 3 variabile: Qt 0 0 0 0 1 1 1 1 Sn 0 0 1 1 0 0 1 1 Rn 0 1 0 1 0 1 0 1 Qt+1 0 0 1 1 0 1

Diagramele Karnaugh pentru Qt+1 i Qt+1 sunt urmtoarele: Qt+1: Qt SnRn 00 01 11 10 0 0 0 x 1 1 1 0 x 1 Qt+1: Qt SnRn 0 1 00 1 0 01 1 1 11 x x 10 0 0

Dac minimizm funciile n FCC obinem: Qt+1 = Rn (Sn + Qt) Qt+1 = Sn (Rn + Qt)
45

46

Deducem funciile pentru schema cu pori de tip SAU-NU: Qt+1 = Qt+1 = Rn (Sn + Qt) = Rn + (Sn + Qt) Qt+1 = Qt+1 = Sn (Rn + Qt) = Sn + (Rn + Qt) R Q

Schema bistabilului RS asincron realizat cu pori de tip SI-NU se bazeaz pe funciile n forma FCD obinute din diagramele Karnaugh: Qt+1 = Sn + (Qt Rn) Qt+1 = Rn + (Qt Sn) Qt+1 = Sn + (Qt Rn) = Sn (Qt Rn) Qt+1 = Rn + (Qt Sn) = Rn (Qt Sn) S Q

R
46

47

Pentru Sn = Rn = 1 rezult Q = 0 i Q = 0, cele dou ieiri nefiind complementare. Circuitul i pierde n acest caz caracterul de circuit bistabil, cu dou stri distincte stabile. Bistabilul RS asincron este cel mai simplu element de memorare care poate fi realizat cu circuite logice elementare. Observaie. O aplicaie tipic a bistabilului RS asincron este utilizarea acestuia la eliminarea oscilaiilor ce apar la contactele mecanice.

3.1.2. Bistabilul RS sincron (latch cu ceas) Bistabilul RS sincron se obine din bistabilul RS asincron prin adugarea unor pori logice suplimentare cu scopul de a rspunde la semnalele de intrare R i S numai sub aciunea unui semnal de comand numit impuls de tact (ceas). Sa S Q CLK R Ra
47

48

Ieirile bistabilului RS sincron se modific doar cnd semnalul de tact (ceas) CLK este activ. Simbolul bistabilului RS sincron este: S Q CLK R Q Diagrama de timp pentru bistabilul RS sincron este: CLK R S Q Funcionarea este descris de funciile: Qt+1 = S + R Qt Qt+1 = R + S Qt S R=0 i la acest bistabil situaia intrrilor n care S = R = 1 introduce o nedeterminare, de aceea ea trebuie evitat. Ct timp CLK este 0, intrrile de date nu influeneaz bistabilul. Cnd CLK = 1 bistabilul urmrete modificrile intrrilor de date. Cnd CLK redevine 0 bistabilul se zvorte (de aceea
48

49

se numete latch), pstreaz informaia avut anterior pe ieire. Introducem noiunea de funcie de excitaie, caracteristic pentru fiecare bistabil. Ea pune n eviden cum trebuie s fie intrrile bistabilului (ce stare trebuie s aib) pentru a se realiza o tranziie specific. Tabelul de excitaie pentru bistabilul RS sincron este: Qt Qt+1 R S 0 0 x 0 0 1 0 1 1 0 1 0 1 1 0 x Observaie. n afara intrrilor sincrone, la bistabilul RS sincron se introduc i intrri asincrone, Ra i Sa, la nivelul bistabilului RS asincron (porile SI-NU). Aceste intrri sunt utilizate cu scopul forrii la 0, prin Ra, sau la 1, prin Sa, a ieirii bistabilului. Apariia unor comenzi pe aceste intrri se execut independent de prezena sau absena tactului. Din acest motiv intrrile asincrone ale unui bistabil sunt prioritare n raport cu intrrile sincrone. 3.1.3. Bistabilul D sincron (delay) Bistabilul D sincron are o singur intrare, D i cele 2 ieiri complementare, Q i Q. Starea urmtoare a bistabilului D este determinat de
49

50

modificarea intrrii D. El ntrzie cu un tact informaia pe care o primete pe intrare (circuit elementar de ntrziere). Sunt cele mai rspndite bistabile n registrele de date. Simbolul bistabilului D sincron: S D Q CLK Q R Bistabilul D se obine din bistabilul RS sincron: D Q CLK Q Funciile bistabilului D sunt: Qt+1 = D Qt+1 = D Tabelul de adevr al bistabilului D este: D Q 0 0 1 1 Tabelul de excitaie al bistabilului D este: Qt Qt+1 D
50

51

0 0 0 0 1 1 1 0 0 1 1 1 Starea urmtoare a bistabilului de tip D sincron este dependent doar de semnalul aplicat pe intrare, ea fiind independent de starea actual a bistabilului. Exist dou tipuri de bistabile de tip D sincron, unele care comut pe front (atunci cnd se schimb tactul) i altele care comut pe nivel (atunci cnd tactul este pe nivel). 3.1.4. Bistabilul JK sincron Bistabilul JK sincron elimin situaia de nedeterminare pe ieiri, prezent la bistabilul RS sincron, la combinaia S = R = 1 pe intrri. Se folosesc reacii (legturi inverse) suplimentare. Tabelul de adevr al bistabilului JK sincron este: J K Qt+1 0 0 Qt 0 1 0 1 0 1 1 1 Qt Tabelul de excitaie al bistabilului JK sincron este: Qt Qt+1 J K
51

52

0 0 1 1

0 1 0 1

0 1 x x

x x 1 0

Funciile pentru bistabilul de tip JK se determin din diagrama Karnaugh, pe baza tabelului de adevr n forma detaliat: Qt J K Qt+1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0
Qt+1: Qt JK 0 1 00 1 01 11 1 10 1 1

Qt+1 = J Qt + K Qt Qt+1 = J Qt + K Qt Un bistabil de tip JK sincron se obine din bistabilul RS sincron prin efectuarea legturilor care permit eliminarea condiiei R S = 0. R = K Qt S = J Qt
52

53

Q J CLK sau K Q

S J CLK K R Intrrile S i R sunt intrrile asincrone, care acioneaz la ultimul nivel de pori logice, nu depind de semnalul de tact i sunt prioritare fa de intrrile sincrone J i K (adic n momentul n care una dintre ele se activeaz, bistabilul va funciona n regim asincron). Simbolul utilizat pentru bistabilul JK sincron este: J
53

S Q

54

CLK K Q R O analiz mai atent a bistabilului JK sincron arat c att timp ct intrarea de tact (CLK) rmne pe 1 logic dup stabilirea noii stri, bistabilul intr n oscilaie (i tot schimb starea). Pentru a exista o singur comutare, durata impulsului pe CLK trebuie s fie mai mare dect timpul de propagare a semnalului printr-o poart logic i mai mic dect timpul de propagare a semnalului prin dou pori logice. 3.1.5. Bistabilul T sincron (Toggle) Bistabilul T sincron se obine din bistabilul JK sincron prin legarea intrrilor J i K mpreun. Bistabilul schimb starea (comut) cnd pe intrare are semnal logic 1. S T CLK Q R Q

54

55

Tabelul de adevr al bistabilului T sincron este: T Qt+1 0 Qt 1 Qt Tabelul de excitaie al bistabilului T sincron este: Qt Qt+1 T 0 0 0 0 1 1 1 0 1 1 1 0 Pentru determinarea funciilor bistabilului T sincron utilizm diagrama Karnaugh de 2 variabile:
Qt T 0 1 0 1 1 1

Qt+1 = T Qt + T Qt = T + Qt Qt+1 = T Qt + T Qt = T + Qt = T Qt Bistabilul T sincron are aceleai deficiene ca i bistabilul JK sincron, legate de durata impus a semnalului de tact. Bistabilul T sincron este util n aplicaiile de numrtoare binare. Concluzie. Deficiena principal a structurilor de bistabile studiate este c nu se poate face o distincie net ntre intrrile care condiioneaz
55

56

momentul comutrii i cele care determin modul comutrii (nu se face distincie net ntre cnd i cum). 3.1.6. Bistabile master-slave MS Bistabilele de tip master-slave introduc un tip de structur care permite rezolvarea comutrii bistabilelor. Acest principiul masterslave poate fi aplicat oricrui circuit bistabil. Structura master-slave este compus din 2 celule de memorie, una master i cealalt slave. Master S R SM QM CLK RM QM CLK Impulsul de tact are dou fronturi, unul pozitiv (de urcare de la 0 la 1, n logica pozitiv) i unul negativ (de coborre de la 1 la 0, n logica pozitiv). La bistabilele master-slave pe frontul cresctor al semnalului de tact se face nscrierea informaiei n master, slave fiind practic deconectat. Pe frontul descresctor urmtor se
56

Slave SS QS Q CLK RS QS Q

57

face transferul informaiei din master n slave i informaia va apare la ieiri dup frontul descresctor al impulsului de tact. Se asigur astfel o bun separare ntre intrrile de date i ieirile bistabilelor. S 1 3 Q

2 R CLK M 2 1 Q

S 3 4

CLK

tS tH tS este timpul de set-up = perioada n care datele trebuie s fie pregtite nainte de impulsul de tact. tH este timpul de holding. Pe perioada 1 2 a impulsului de ceas, porile de la intrare nu sunt nc deschise, iar

57

58

porile 3,4 se blocheaz i astfel izoleaz slave de master. Pe zona 2 3 porile de intrare 1,2 se deschid i informaia trece n master. Porile 3,4 sunt nchise i slave i pstreaz vechea informaie. Pe zona 3 4 porile 1,2 se nchid i porile 3,4 nu se deschid nc: master este izolat de intrare i de slave. Pe perioada 4 5 porile 3,4 se deschid, n timp ce porile 1,2 sunt blocate i informaia apare pe ieire. Perioada critic este cea de meninere a datelor la intrare, tH, pe perioada 4 5. Memorarea se face pe frontul descresctor al impulsului de tact.
Curs 7
3.2. Aplicaii ale circuitelor basculante bistabile
3.2.1. Numrtoare Numrtoarele sunt circuite logice secveniale care nregistreaz numrul de impulsuri aplicate la intrare. Ele se realizeaz prin asocierea circuitelor basculante bistabile, avnd rol de celule de memorie binar, cu circuite logice combinaionale, care determin modul corect n care urmeaz ca numrtorul s-i schimbe starea la fiecare nou impuls aplicat la intrare. Clasificare Clasificarea numrtoarelor se face dup anumite criterii: 1. modul de funcionare (comutare a bistabililor): - asincrone celulele de memorie din care este construit numrtorul nu comut simultan ci aleator;

58

59

- sincrone celulele de memorie din care este construit numrtorul comut simultan sub aciunea unui impuls de tact aplicat simultan tuturor celulelor. 2. modul de modificare a strilor (coninutului): - directe i cresc coninutul cu o unitate la fiecare impuls aplicat la intrare; - inverse coninutul scade cu o unitate la fiecare impuls aplicat la intrare; - reversibile numr direct sau invers, n funcie de o comand aplicat din exterior. 3. modul de codificare a informaiei: - binare - binar-zecimale - modulo p etc. Numrtoarele se pot realiza cu celule de memorie de tip T care realizeaz o divizare cu 2. Prin interconectarea a n celule de memorie se obine un numrtor cu un numr de stri distincte. Fiecrei stri i vom asocia cte un cuvnt de cod binar de lungime n, reprezentnd coninutul celor n celule binare pentru starea dat a numrtorului. Codul n care numr un numrtor va fi dat de succesiunea cuvintelor de cod binar asociate strilor numrtorului. Numrul strilor stabile distincte posibile ale unui numrtor format din n celule binare este 2n. Dac din aceste stri se elimin k stri rezult un numrtor cu p = 2n k stri distincte. Matematic, operaia realizat de numrtor este o operaie modulo p. Definiii: Capacitatea numrtorului = numrul strilor sale distincte. Factorul de divizare = raportul dintre numrul de impulsuri de la intrare i numrul impulsurilor de la ieire. Observaie. Un numrtor funcioneaz de fapt i ca un divizor de frecven. Tipuri de numrtoare 1. Numrtor binar asincron direct Schema logic a numrtorului este realizat prin conectarea n cascad a bistabililor de tip JK n configuraie de bistabili de tip T: Q0 Q1 Q2 J0 Q0 CLK0 K0 Q0 J1 Q1 CLK1 K1 Q1 J2 Q2 CLK2 K2 Q2

59

60

Q0, Q1, Q2, ieirile numrtorului, ne dau starea lui la un moment dat. R este semnalul de Reset, folosit pentru aducerea numrtorului n starea iniial, la 000. Intrrile bistabililor JK sunt toate legate la 1 logic, deci bistabilii vor comuta la fiecare impuls de tact. Tact exterior se aplic doar pe intrarea primului bistabil. Formele de und pentru numrtorul binar asincron direct sunt: CLK Q0 Q1 Q2 Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Numrtorul este modulo 8, numrnd direct n binar, de la 000 la 111. El basculeaz pe fronturile descresctoare ale impulsurilor de tact.
Dac dorim s obinem valorile numrului n zecimal putem utiliza ieirile numrtorului, Q0, Q1, Q2, ca i intrri ntr-un decodificator binar zecimal. Dezavantajul numrtorului asincron este c timpul de comutare, n cel mai defavorabil caz, este egal cu suma timpilor de comutare a tuturor bistabililor care l compun. Avantajul lui const n simplitatea schemei, realizat doar cu bistabile, prin interconectri directe. 2. Numrtor binar asincron invers Schema logic a numrtorului este: Q0 Q1 Q2 J0 Q0 CLK0 K0 Q0 1 1
60

J1 Q1 CLK1 K1 Q1 1

J2 Q2 CLK2 K2 Q2 R

61

Formele de und pentru numrtorul binar asincron invers sunt: CLK Q0 Q1 Q2 Q2 Q1 Q0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0

Numrtorul este modulo 8, numrnd invers n binar, de la 111 la 000. El basculeaz pe fronturile descresctoare ale impulsurilor de tact.
3. Numrtor binar asincron reversibil Numrtorul binar asincron reversibil are celula de memorie de baz ca i numrtoarele asincrone anterioare, dar ntre celulele de memorie se intercaleaz multiplexoare de tip 2:1 prin care se comand sensul de numrare. Q0 Q1 Q2 J0 Q0 CLK0 K0 Q0 1 S A Mux 2:1 Y B 1 J1 Q1 CLK1 K1 Q1 A Mux 2:1 Y B 1 J2 Q2 CLK2 K2 Q2 R

Pentru S = 0 numrtorul numr direct, iar pentru S = 1 numrtorul numr invers. 4. Numrtor binar sincron serie i paralel Realizarea numrtoarelor de tip sincron are ca scop creterea vitezei de comutare a numrtorului n ansamblu. Funcionarea acestor numrtoare este sincron, bistabilii, de tip JK, avnd intrrile de CLK legate mpreun. Pe baza tabelului de adevr se obine logica combinaional suplimentar, care asigur funcionarea corect a numrtorului.
61

62

Nr. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Schema logic pentru numrtorul binar sincron serie este: Q0 1 S J Q CLK K Q R Reset Intrrile J i K ale primului bistabil sunt legate la 1 logic i vor comuta bistabilul la fiecare tact (conform tabelului de adevr). Al doilea bistabil comut doar din 2 n 2 impulsuri de tact, adic atunci cnd Q0 trece din 1 n 0, deci pot fi legate la ieirea primului bistabil. Al treilea bistabil basculeaz din 4 n 4 impulsuri i va fi comandat de funcia SI ntre ieirile Q1 Q0, iar al patrulea bistabil comut din 8 n 8 impulsuri i va fi comandat de funcia SI ntre ieirile Q2 Q1 Q0. n cazul numrtorului binar sincron de tip serie porile logice de tip SI utilizate vor fi toate cu 2 intrri, ca n schema logic anterioar.
62

Q1

Q2

Q3

S J Q CLK K Q R

S J Q CLK K Q R

S J Q CLK K Q R

63

Pentru mrirea vitezei de rspuns a numrtorului se vor folosi pori logice de tip SI cu numrul de intrri necesar funciei SI implementate, ca n schema de mai jos, corespunztoare unui numrtor binar sincron paralel. Q0 1 S J Q CLK K Q R CLK Reset Timpul de comutare al numrtorului binar sincron paralel este mai mic dect la cel serie, dar exist pori de tip SI cu un numr mai mare de intrri. 5. Numrtor binar sincron reversibil Pentru realizarea reversibilitii numrtorului binar sincron se folosesc 2 intrri suplimentare, Count-Up (numr direct) i Count-Down (numr invers). Aceste numrtoare vor avea i ieiri pentru transport (Carry) i mprumut (Borrow), care vor permite legarea n cascad a numrtoarelor. Sinteza numrtoarelor modulo p Pentru a face sinteza unui numrtor cu p 2n trebuie determinat numrul minim de celule de memorie binar necesare. Relaia folosit este: 2n p. Celulele de memorie se interconecteaz apoi astfel nct s se omit (2n p) stri. Din acest motiv exist mai multe variante posibile pentru interconectare, deci i pentru sinteza numrtorului. Exemplu: Sinteza unui numrtor modulo 5. Pentru 2n 5 obinem n = 3, deci vom avea 3 celule de memorie pentru numrtor. Numrul strilor omise va fi 23 5 = 8 5 = 3. Presupunem c avem urmtoarea succesiune a strilor de numrare (ciclu de numrare): 000 001 010 011 100 S J Q CLK K Q R S J Q CLK K Q R S J Q CLK K Q R Q1 Q2 Q3

63

64

Evident c se putea alege i alt succesiune a strilor numrtorului. Folosim pentru realizarea numrtorului bistabili de tip JK. Se construiete un tabel cu strile actuale ale numrtorului, cu strile urmtoare i cu condiionrile intrrilor JK ale celor 3 bistabili folosii pentru sintez. Completarea tabelului se face pe baza tabelului de excitaie al bistabilului JK sincron.

Qt 0 0 1 1
Q2t 0 0 0 0 1 Q1t 0 0 1 1 0 Q0t 0 1 0 1 0

Qt+1 J 0 0 1 1 0 x 1 x
J2 0 0 0 1 x K2 x x x x 1

K x x 1 0
J1 0 1 x x 0 K1 x x 0 1 x J0 1 x 1 x 0 K0 x 1 x 1 x

Q2t+1 Q1t+1 Q0t+1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0

Diagramele Karnaugh pentru cele 6 intrri ale bistabilelor ne permit determinarea funciilor pentru intrri. Strile omise se consider indiferente. J2: Q2 Q1Q0 00 01 11 10 0 1 1 x x x x J2 = Q1 Q0 K2: Q2 Q1Q0 00 01 11 10 0 x x x x 1 1 x x x K2 = 1 J1: Q2 Q1Q0 00 01 11 10 0 1 x x 1 x x x J1 = Q0 K1: Q2 Q1Q0 00 01 11 10
64

65

0 1

x x

x x

1 x

K1 = Q0 J0: Q2 Q1Q0 00 01 11 10 0 1 x x 1 1 x x x J0 = Q2 K0: Q2 Q1Q0 00 01 11 10 0 x 1 1 x 1 x x x x K0 = 1 Schema logic pentru numrtorul modulo 5 va fi urmtoarea: Q2 Q1 Q0

J2 Q2 CLK K2 Q2 R2

J1 Q1 CLK K1 Q1 R1

J0 Q0 CLK 1 K0 Q0 R0

CLK Reset Pentru rezolvarea complet a sintezei numrtorului modulo 5 trebuie discutat i problema strilor omise. Ce se ntmpl cu numrtorul dac nu are secven de iniializare sau dac ajunge cumva n una dintre strile care nu face parte din ciclul de numrare? Care va fi evoluia numrtorului? Trebuie verificate tranziiile numrtorului n cazul n care este ntr-o stare din afara ciclului de numrare. Putem avea 2 situaii: fie numrtorul revine singur n ciclul de numrare, fie trebuie reproiectat astfel nct s revin n ciclul de numrare. Strile omise n exemplul dat sunt: 101 010 110 010 i din starea aceasta se revine n ciclu 111 010 Observaie. Un numrtor modulo p se poate obine folosind un numrtor binar sincron. Se las numrtorul binar s evolueze pn la

65

66

starea p-1. La atingerea strii p se aplic numrtorului, printr-o logic combinaional, un impuls de tergere (pe intrarea de Reset). Numrtoare Moebius Numrtoarele Moebius sunt numrtoare n inel cu coad ntoars (twisted tail ring counter). Dei exist numrtoare de tip MSI pentru numrarea binar sau a altor tipuri de secvene, exist unele cazuri n care se prefer proiectarea unor numrtoare speciale cu bistabili i pori logice. Exemplu: un numrtor cu 8 stri la care la fiecare tranziie se modific numai un singur bit, se poate construi utiliznd urmtoarea secven: 0000 0 1000 8 1100 12 1110 14 1111 15 0111 7 0011 3 0001 1 Proiectarea se face i cu bistabili de tip D i cu bistabili de tip JK. Tabelul folosit pentru sinteza numrtorului este: t t t t t t t Q Q2 Q1 Q0 Q3 Q2 Q1 Q0 D3 D2 D1 D0 J3 K3 J2 K2 J1 K1 J0 K0
+1 +1 +1 +1

0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 Diagramele Karnaugh ne permit intrrile bistabilelor D3 D0 i J3 K0. D3: Q3Q2 Q1Q0 00 01 11 10 D3 = Q0 D2: 00 1 x 1 1 01 x x x 11 10 x x 1 x

0 1 1 1 1 0 0 0

0 0 1 1 1 1 0 0

0 0 0 1 1 1 1 0 s

1 x 0 x 0 x 0 x x 0 1 x 0 x 0 x x 0 x 0 1 x 0 x x 0 x 0 x 0 1 x x 1 x 0 x 0 x 0 0 x x 1 x 0 x 0 0 x 0 x x 1 x 0 0 x 0 x 0 x x 1 determinm valorile pentru

66

67

Q3Q2 Q1Q0 00 01 11 10 D2 = Q3 Q3Q2 Q1Q0 00 01 11 10 D1 = Q2 D0: Q3Q2 Q1Q0 00 01 11 10 D0 = Q1 Q3Q2 Q1Q0 00 01 11 10 J3 = Q0 K3: Q3Q2 Q1Q0 00 01 11 10 K3 = Q0 J2: Q3Q2 Q1Q0 00 01 11 10 J2 = Q3

00 x 1 1

01 x x x

11 1 x

10 x x 1 x

D1:
00 x 1 01 x x x 01 x x x 11 1 1 x 11 1 1 1 x 10 x x 1 x 10 x x 1 x

00 x

J3:
00 1 x x x 00 x x 01 x x x 01 x x x x 01 x x x 11 x x 11 x x 1 x 11 x x x 10 x x x x 10 x x x 10 x x x x

00 x x 1

67

68

K2: Q3Q2 Q1Q0 00 01 11 10 K2 =Q3 J1: Q3Q2 Q1Q0 00 01 11 10 J1 = Q2 K1: Q3Q2 Q1Q0 00 01 11 10 K1 = Q2

00 x x x 00 x 1

01 x x x x 01 x x x 01 x x x x

11 x 1 x 11 x x x x 11 1 x

10 x x x 10 x x x x 10 x x x

00 x x x x

J0:
Q3Q2 Q1Q0 00 01 11 10 00 x x x 01 x x x x 11 x x 1 10 x x x J0 = Q1 K0: Q3Q2 Q1Q0 00 01 11 10 00 x 1 x 01 x x x 11 x x x 10 x x x x K0 = Q1 Cele 2 scheme logice pentru numrtor sunt: D3 Q3 D2 Q2 D1 Q1 D0 Q0

CLK Q3

CLK Q2

CLK Q1

CLK Q0

68

69

CLK

J3 Q3 CLK K3 Q3 CLK

J2 Q2 CLK K2 Q2

J1 Q1 CLK K1 Q1

J0 Q0 CLK K0 Q0

Observaie. Starea fiecrui bistabil este determinat de starea anterioar a bistabilului plasat n stnga sa, iar starea primului bistabil este determinat de ieirea complementar a ultimului bistabil. Se pot construi numrtoare Moebius de orice dimensiune (ordin). Aplicaii ale numrtoarelor Moebius a. Se pot folosi ca i numrtoare de stare. Dac numrtorul este implementat cu bistabile JK, fiecare comutare a strii este controlat de cte o intrare diferit. Din acest motiv, modificarea oricrei stri va putea fi controlat independent, adugnd o poart SI sau SI-NU pe intrarea respectiv (de exemplu tranziia 0 8 este controlat de J3, tranziia 8 12 de J2 .a.m.d.).

b. Generatoare de ceas cu mai multe faze. Cele 8 ieiri ale numrtorului genereaz de fapt 8 semnale de ceas defazate n mod egal, cu factor de umplere de 50%. n general un numrtor Moebius de n bii genereaz 2n faze de ceas.
c. Decodificarea oricrei stri se poate face printr-o poart cu 2 intrri. Pt. a face decodificarea strii se vor urmri cei 2 bii adiaceni distinci, 1 i 0. d. Decodificarea strilor succesive se realizeaz prin pori care au ca intrri ultimul 1 al primei stri i primul 0 al ultimei stri.

Curs 8
3.2.2. Registre Registrele sunt circuite logice secveniale care permit stocarea i/sau deplasarea informaiei codificate binar. Ele se realizeaz din celule de memorie binar (CBB) i din circuite logice combinaionale (CLC),

69

70

care permit nscrierea, citirea i transferul informaiei. Capacitatea unui registru este dat de numrul celulelor de memorie. Orice informaie binar, care nu depete capacitatea registrului, poate fi nscris prin acionarea corespunztoare a intrrilor (care depinde i ea de natura bistabilelor). Registrele pot s fie de mai multe tipuri: de memorie; de deplasare; combinate; universale. Registrele de memorie memoreaz informaia binar n celule de memorie binar. n fiecare celul de memorie se memoreaz un bit de informaie. ncrcarea se poate face paralel, prin intrrile asincrone, de Set i Reset. Registrele de deplasare sunt cele care realizeaz transferul informaiei. Transferul se poate face: stnga-dreapta; dreapta-stnga; n ambele sensuri. La fiecare impuls de tact coninutul registrului se deplaseaz cu cte o celul (n sensul stabilit). Semnalul de ieire este identic cu cel de intrare, dar ntrziat cu un numr de impulsuri de tact egal cu numrul de celule de memorie din care este format registrul. Exceptnd primul bistabil, ecuaia de stare a unui registru de deplasare stnga-dreapta este dat de relaia: Qi(t+1) = Qi-1(t) c (unde c = impulsul de tact). Exemplu: Registru de deplasare stnga-dreapta cu bistabile JK MS. Q0 Q1 Q2 Q3 SIN J0 Q0 J1 Q1 J2 Q2 J3 Q3

CLK CLK
K0 R Reset CLK Q0

CLK
K1 R Q1 K2 R

CLK
Q2 K3 R Q3

La fiecare impuls de tact coninutul bistabilului Qi se transfer n bistabilul Qi+1. n bistabilul Q0 se introduce informaia din exterior, iar coninutul ultimului bistabil se pierde. ncrcarea registrului se realizeaz deci n mod serie. Iniializarea registrului se face prin semnalul de Reset, care foreaz toate ieirile registrului n 0 logic. Registrele de deplasare dreapta-stnga i reversibile se realizeaz folosind circuite logice combinaionale suplimentare. Registrele combinate sunt cele care au i funcia de memorare i cea de deplasare.

70

71

Registrele universale cumuleaz toate funciile: deplasare stngadreapta, deplasare dreapta-stnga, ncrcare serie sau paralel a informaiei, citire serie sau paralel a informaiei. RI A B C D LI S0 S1

CLK CLR

D Q CLK CLR

D Q CLK CLR

D Q CLK CLR

D Q CLK CLR

Q0 Q1 Q2 Q3 Intrrile de selecie S1S0 condiioneaz modul de funcionare a registrului. Avem: S1S0 = 00 pstreaz coninutul nemodificat; S1S0 = 01 deplasare stnga-dreapta; S1S0 = 10 deplasare dreapta-stnga; S1S0 = 11 ncrcare paralel. tergerea registrului se face asincron, prin semnalul CLR. Aplicaii ale registrelor Registrele sunt utilizate n mai multe tipuri de aplicaii, dup funciile pe care pot s le ndeplineasc. 1. Registre de deplasare cu reacie Au ieirile conectate la intrri i pot fi: - registre de deplasare n inel coninutul ultimei celule de memorie se nscrie n prima celul de memorie; Q0 Q1 Q2 Q3 1 0 0 0 SIN 0 1 0 0 0 0 1 0

Q0 Q1 Q2 Q3

1 0 0 0 - registre (numrtoare) Johnson n prima celul se introduce coninutul negat al ultimei celule. Q0 Q1 Q2 Q3

71

72

SIN

0 1 1

0 0 1

0 0 0

0 0 0

Q0 Q1 Q2 Q3

1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 2. Memorie de tip FIFO (First In, First Out), primul nscris primul citit (memorie coad) Se realizeaz cu registre de deplasare stnga-dreapta. Numrul registrelor depinde de lungimea cuvintelor ce urmeaz a fi memorate. Capacitatea memoriei depinde de lungimea registrelor. De exemplu, dac registrele sunt de 4 bii, capacitatea memoriei este de 4 cuvinte. La fiecare impuls de tact se introduc datele pe intrarea serial. y1 SIN x1 y2 SIN x2 y3 SIN x3 y4 SIN x4 CLK Ts Ts Ts Ts

3. Memorie de tip LIFO (Least In, First Out), ultimul introdus primul citit (memorie stiv)

72

73

Realizarea se face cu registre combinate. Numrul registrelor este dat de lungimea cuvntului de memorie, iar lungimea registrelor determin capacitatea de memorie. xi
A0 A1 A1 SIN A0 Q0 Q1 Q2 Q3 CLK yi

A1 A0 0 1 deplasare stnga-dreapta nscriere 1 0 citire Memoria stiv poate fi organizat i soft, n memoria de tip RAM, dar dei capacitatea acesteia poate fi mare, timpul de acces va fi i el mare. 4. Conversia serie-paralel i paralel serie a informaiei Pentru conversia serie-paralel se face ncrcarea registrului pe intrarea serial i cu comand de tact serie Ts i se citete informaia pe ieiri, paralel. Pentru conversia paralel-serie se face ncrcarea paralel a informaiei, cu comand de tact paralel Tp i apoi se deplaseaz informaia stnga-dreapta, cu comand de tact serie Ts i se citete serie la ultima ieire. 5. Generatoare de secvene Generatoarele de secvene genereaz o succesiune de secvene binare (1 i 0) de lungime dat (prestabilite). Lungimea secvenei reprezint numrul de bii dup care se repet ntreaga secven. Secvenele binare pot fi: - aleatoare, de lungime infinit; - deterministe, de lungime finit. Secvenele binare deterministe de lungime maxim se numesc secvene pseudoaleatoare. Realizarea generatoarelor de secvene se face cu registre n reacie cu circuite logice combinaionale adecvate.

73

74

Q0 y = Q0 + Q2 S0 Q0 CLK R0 Q0 CLK

Q1

Q2

S1 Q1 CLK R1 Q1

S2 Q2 CLK R2 Q2

Secvena pseudoaleatoare generat la ieirile Q0Q1Q2 este: 100 110 111 011 101 010 001 3.2.3. Memorii RAM Memoriile de tip RAM (random access memory) sunt memorii de tip citete-scrie, cu acces aleator. Ele nu-i pstreaz informaia dup ntreruperea tensiunii de alimentare. Memoria este format din nivelul de decodificare, matricea de memorie realizat cu celule de memorie binar de tip latch i nivelul de multiplexare. Dimensiunea memoriei este specificat prin numrul de cuvinte i numrul de bii pe cuvnt. Capacitatea memoriei este dat de numrul de bii memorai n matricea de memorie. Schema funcional de principiu a unei memorii RAM este urmtoarea: Adres n n CE sau CS (chip select) Decodificator 2n Matrice de memorie 2n WE (write enable) Multiplexor

Date
Decodificatorul acioneaz pentru selectarea fiecrei celule de memorie, iar multiplexorul permite selectarea oricrei celule de memorie la intrare ieire.

74

75

Validarea memoriei se face prin intrarea CS. Citirea memoriei se face dac WE = 1, iar scrierea memoriei se face dac WE = 0. Datele de intrare i ieire pot s foloseasc linii diferite sau aceeai linie bidirecional. Memoriile pot avea un numr diferit de ci de date (de obicei cuvinte de 1 bit sau de un numr de bii multiplu de 2). Memoriile de tip RAM pot s fie din punct de vedere constructiv de tip static sau dinamic. Cele dinamice sunt realizate cu condensatoare i au nevoie de remprosptarea la diferite intervale de timp a informaiei memorate, pentru a se evita pierderea ei. Extinderea capacitii memoriilor se face att prin extinderea dimensiunii cuvntului de memorie (numrul de bii din cuvnt), ct i prin extinderea numrului de cuvinte ale memoriei (adresa de memorie).

Curs 9
3.3. Sinteza circuitelor logice secveniale sincrone
Circuitele secveniale sincrone trec dintr-o stare n alta la momente distincte de timp, determinate de impulsurile de tact. ntre dou impulsuri de tact starea circuitului nu se modific. Variabile de intrare Generare stare nou Calculul excitaiilor secundare CLC Excitaii secundare Tact Registru de stri Stri interne CL Variabile secundare Calculul variabilelor de ieire CLC CL = circuit logic general pstreaz starea intern registru de stri (bistabili RS, D, JK, registre, memorii); poate fi circuit logic secvenial cu bucl de reacie.

75

76

CLC = determin funciile de excitaie secundare care n prezena tactului determin trecerea circuitului n alt stare se poate numi generatorul strii noi; se pot realiza cu pori logice sau cu circuite specializate (multiplexoare, decodificatoare). Variabilele de intrare sunt n general sincrone cu impulsul de tact, dar pot fi i de tip asincron. 3.3.1. Etapele de sintez 1. Expunerea condiiilor de funcionare (descrierea comportrii circuitului). Stabilirea modalitii de definire a circuitului care trebuie sintetizat prin: - tabel de tranziii; - graf de tranziii; - organigram; - forme de und. Trebuie evideniate: - strile prin care trece circuitul; - valorile variabilelor de intrare pentru care se schimb strile; - valorile rezultate ale variabilelor de ieire. Evoluia circuitului ncepe ntr-o stare iniial i de obicei se revine la aceast stare, dup ultima stare a ciclului. 2. Se codific strile circuitului. 3. Se ncearc reducerea (simplificarea) numrului de stri a circuitului, dac este posibil, nct s se pstreze funcionarea lui corect.

4. Se decide asupra modului de implementare (registrul de stri interne). 5. Se determin funciile de excitaie i cele de ieire, dac este posibil.
6. Se studiaz problemele legate de eventualele ieiri false (hazard) sau tranziii false. 7. Se deseneaz circuitul. Etapa cea mai dificil este cea de codificare a strilor. n general funcionrile defectuoase se datoreaz unor tranziii greite ntre stri sau unor semnale greite care apar la circuitul de generare a variabilelor de ieire. Tranziiile greite ntre stri apar datorit prezenei variabilelor de intrare asincrone (se elimin cel mai uor dac se sincronizeaz variabilele de intrare cu semnalul de tact).

76

77

Codificarea strilor se stabilete astfel nct, n orice stare, pentru toate combinaiile posibile de intrri asincrone, s nu fie mai mult dect o singur variabil de stare dependent de o variabil de intrare asincron. n aceste condiii, dou stri rezultate din calea de ieire a unei intrri asincrone vor avea codificare adiacent. Ieirile false pot s apar din cauz c la trecerea dintr-o stare n alta, variabilele de stare practic nu se modific simultan. Pentru evitarea tranziiilor false ale ieirilor se pot folosi metodele: - se realizeaz o codificare adiacent a strilor; - se foreaz trecerea circuitului prin stri suplimentare; - se sincronizeaz variabilele de ieire. Observaie: Hazardul static al CLC se elimin prin proiectare (se introduc termeni redundani, indifereni).

3.3.2. Utilizarea organigramei n sinteza circuitelor logice secveniale sincrone Elementele componente ale organigramei de funcionare a oricrui circuit secvenial sincron sunt: - elementul de intrare (control sau decizie): Variabile de intrare - sincrone var. 0 - asincrone var. 0 - elementul de stare: Q2Q1Q0 000 - elementul de ieire: transfer 1 1

77

78

Configuraii elementare care unesc cele 3 elemente de baz: A B 001 011 tranziie simpl: - contor de timp - soluionarea problemei de codificare a strilor

A Adun B

stare cu ieire

A 1 B I1

stare cu decizie 0 C

A Scade 1 B I1

stare cu ieire i decizie

0 C

A I1

stare cu ieire condiionat 1

78

79

0 B

Ieire

A 0 1 I2 0 B 1 I3 0 I1 1

stri cu decizii multiple i ieire

C Ieire

Observaii
1. Orice tranziie ntre 2 stri ale circuitului se face ntr-un singur impuls de tact. 2. La un moment dat circuitul se poate gsi ntr-o singur stare. 3. Un circuit care se gsete la un moment dat ntr-o stare dat, cu un set de intrri dat, poate avea o singur stare urmtoare. 3.3.3. Sinteza circuitelor secveniale sincrone cu diferite elemente de memorie n sinteza circuitelor secveniale sincrone se vor folosi ca elemente de memorie bistabili de tip D i JK. Implementarea registrului de stri se va realiza cu aceste tipuri de bistabile. Exemplu: S se recunoasc secvena 101 n irul de cifre binare 10101. Graful de tranziii are n noduri strile circuitului. Pe arce avem tranziia dintr-o stare n alta pentru o anumit intrare, cu o anumit ieire. 0/0 1/0 Init A B 1/1 0/0 Avem 2 variabile B=01, C=11). Cu x am este: St Q1Q0 de stare pentru a putea codifica 2 stri (A=00, notat intrarea, cu z ieirea. Tabelul de tranziii St+1,z x=0 x=1
79

1/0 0/0 C

80

00 01 11

A B C

A,0 C,0 A,0

B,0 B,0 B,1

a. Implementm registrul de stri cu bistabile de tip D. Funciile de excitaie se deduc explicitnd diagrama strilor pentru momentul t i momentul t+1. Strile se vor nlocui cu codurile lor (A=00, B=01, C=11). St St+1 (Q1Q0)t+1 z Q1Q0 D1D0 D1D0 x=0 x=1 x=0 x=1 00 (A) 00 (A) 01 (B) 0 0 01 (B) 11 (C) 01 (B) 0 0 11 (C) 00 (A) 01 (B) 0 1 Di = Qit D1: Q1Q0 x 00 01 11 10 D1 = Q1 Q0 x D0: Q1Q0 x 00 01 11 10 D0 = x + Q1 Q0 z: Q1Q0 x 00 01 11 10 z = Q1 x 0 0 1 0 x 0 0 1 0 x 1 0 0 0 x 1 1 1 1 x ecuaia strii urmtoare

0 0 0 0 x

1 0 0 1 x

80

81

La trecerea din starea C n starea A se poate trece prin starea B, ceea ce nu corespunde funcionrii. n mod normal se introduce o stare suplimentar pentru a rezolva situaia. Schema pentru circuitul secvenial sincron este: D1 Q1 CLK Q1 Init CLK D0 Q0 CLK Q0 R Q1 Q0 x R Q1 x Q1 x D1 Q0 D0 z

b. Implementm registrul de stri cu bistabile de tip JK. Diagrama strilor se completeaz innd cont de tabelul de excitaie al bistabilului JK.

Qt 0 0 1 1
St+1(Q1Q0)t+1 Q1Q0 x=0 x=1 00 (A) 00 01 01 (B) 11 01 11 (C) 00 01 St J1: Q1Q0 x 00 01 11 10 J1 = Q0 x K1: 0 0 1 x x 1 0 0 x x

Qt+1 J 0 0 1 1 0 x 1 x

K x x 1 0

z J1K1 J0K0 J1K1 J0K0 x=0 x=1 x=0 x=1 0x 0x 0x 1x 0 0 1x x0 0x x0 0 0 x1 x1 x1 x0 0 1

81

82

Q1Q0 x 00 01 11 10 K1 = 1 J0: Q1Q0 x 00 01 11 10 J0 = x K0: Q1Q0 x 00 01 11 10 K0 = Q1 x z: Q1Q0 x 00 01 11 10 z = Q1 x

0 x x 1 x 0 0 x x x 0 x 0 1 x

1 x x 1 x 1 1 x x x 1 x 0 0 x

0 0 0 0 x

1 0 0 1 x

3.3.4. Implementarea generatorului noii stri cu multiplexoare Pentru a realiza o implementare cu multiplexoare se scriu funciile de excitaie pentru bistabile n forma canonic (fr a se minimiza). Se iau n considerare locaiile care sunt 1 sau care au o variabil nglobat. x CLC MUX

82

83

Registru de stare CLC y 3.3.5. Implementarea generatorului noii stri cu decodificatoare n cazul implementrii generatorului noii stri cu decodificatoare, la intrarea decodificatorului sunt aplicate variabilele de stare, iar la ieire sunt individualizate strile interne. 3.3.6. Implementarea generatorului noii stri cu memorii i multiplexoare Acest tip de implementare a generatorului noii stri se utilizeaz n cazul circuitelor complexe. Se asigur o simplificare a logicii de generare a noii stri i o cretere a siguranei n funcionare.

Implementarea generatorului noii stri cu decodificatoare: x CLC Registru de stri DEC CLC y Implementarea generatorului noii stri cu multiplexoare i memorii: x

83

84

MUX Memorie Registru de stri CLC y

Curs 10
Exemplu: Sinteza unui automat (circuit secvenial sincron) de rspuns la telefon. Se poate programa numrul de apeluri sonore ale soneriei telefonului dup care ncepe s funcioneze automatul. Programul automatului se ncheie n condiiile: 1) dup preluarea (nregistrarea) mesajului; 2) dac apelantul nchide; 3) dac destinatarul rspunde la telefon. 1. Determinarea funcionrii obinerea organigramei. Se stabilete schema bloc a automatului, cu componentele periferice adiionale necesare. Se stabilesc variabilele de intrare i ieire i caracterul lor sincron sau asincron. Avem nevoie de: - telefon propriu-zis (TEL); - numrtor pentru apelurile sonore ale soneriei telefonului (NRT); - casetofon pentru redarea mesajului de ntmpinare (PLAY); - casetofon pentru nregistrarea mesajului apelantului (REC). Variabilele folosite sunt: Sonerie: fiecare apel al soneriei telefonului provoac decrementarea numrtorului NRT pn ce ajunge la 0. Nu este variabil a automatului.

Start: variabil de intrare asincron, de la numrtor, care determin nceperea funcionrii automatului, dac numrtorul a ajuns pe 0. StartPlay (SP), StartRecord (SR): variabile de ieire spre casetofon.
84

85

EndOfPlay (EP), EndOfRecord (ER): variabile de intrare asincrone, de la casetofon. ApelantStop (AS): variabil de intrare asincron de la telefon (apelantul poate nchide oricnd telefonul). DestinatarPick-Up (DPU): variabil de intrare asincron de la telefon; apare cnd destinatarul rspunde la telefon. Init: variabil de ieire spre numrtor; ncarc paralel numrtorul cu valoarea stabilit pentru numrul de apeluri ale soneriei telefonului pn la intrarea n funciune a automatului. Obs: variabilele de intrare AS i DPU genereaz semnalul de Reset pentru bistabilii interni ai automatului i opresc nregistrarea pe casetofon. Schema bloc este: CLK Sonerie PL NRT TEL Zero AS DPU Start Init Automat ER SP EP SR PLAY REC Organigrama automatului este: 000 A Init
85

86

1 Start B 001 SP 011 C 1 EP D 010 SR 100 E 1 0 ER 0

2. Codificarea strilor Pentru c variabilele de intrare sunt asincrone este nevoie de o codificare adiacent a strilor automatului (A,B), (C,D), (E,A) . Pentru 5 stri sunt necesare 3 variabile de stare pentru codificare. Se alege codificarea: A = 000; B = 001; C = 011; D = 010; E = 100.
86

87

Se construiete diagrama Karnaugh pentru stri, pe baza codificrii fcute:


Q2 Q1Q0 0 1 00 A E 01 B 11 C 10 D

Trebuie obinute diagramele pentru strile urmtoare. Le vom suprapune i vom desena o singur diagram, nglobnd i variabilele de intrare. Completarea se face urmrind tranziiile din organigram i completnd pentru fiecare stare codul strii urmtoare. Locaiile necompletate vor fi indiferente deoarece coninutul lor nu poate fi atins prin funcionare.
Q2 Q1Q0 00 0 00Start 1 ER00 01 011 11 01EP 10 100

3. Reducerea numrului de stri nu mai este posibil. 4. i 5. Registrul de stri se implementeaz cu bistabile de tip D, iar generatorul noii stri (funciile de excitaie) i ieirile cu pori logice. a. Pentru implementarea registrului de stri cu bistabile de tip D se ine cont de ecuaia strii urmtoare a acestui tip de bistabil: Di = Qit. Diagramele Karnaugh pentru intrrile bistabilelor vor fi: D2:
Q2 Q1Q0 00 01 11
87

10

88

0 1

0 ER

0 x

0 x

1 x

D2 = ER Q2 + Q1 Q0 D1:
Q2 Q1Q0 0 1 00 0 0 01 1 x 11 1 x 10 0 x

D1 = Q0 D0:
Q2 Q1Q0 0 1 00 Start 0 01 1 x 11 EP x 10 0 x

D0 = Start Q2 Q1 + EP Q0 + Q1 Q0 Diagramele ieirilor se completeaz innd cont de organigram i de diagrama strilor. Init:
Q2 Q1Q0 0 1 00 1 01 x 11 x 10 x

Init = Q2 Q1 Q0 SP:
Q2 Q1Q0 0 1 00 01 1 x 11 x 10 x

SP = Q1 Q0 SR:
Q2 Q1Q0 0 1 00 01 x 11 x 10 1 x

SR = Q1 Q0 7. Desenarea schemei circuitului Ieirile se realizeaz cu pori logice de tip SI: Q2


88

89

Q1 Q0 Q2 Q1 Q0

Init SP SR

Generarea semnalului de Reset se realizeaz cu o poart logic SAU-NU: Reset = AS + DPU AS Reset DPU Registrul de stri este cu bistabile de tip D: D2 Q2 Clk Q2 R D1 Q1 Clk Q1 R Reset Funciile de excitaie se implementeaz cu pori logice: Q2 D0 Q1 Q0 Q2 Q1 D2 Q0 D1
89

D0 Q0 Clk Q0 R Clk

90

Start ER EP b. Implementarea generatorului noii stri cu multiplexoare se poate realiza numai cu multiplexoare dac numrul intrrilor de selecie a multiplexorului este egal cu numrul variabilelor de stare. Dac numrul intrrilor de selecie este mai mic dect cel al variabilelor de stare, la intrrile selectate se vor conecta circuite realizate cu pori logice. Se scriu termenii canonici care conin 1 sau variabile nglobate in diagrama Karnaugh. D2 = Q2 Q1 Q0 + ER Q2 Q1 Q0 D1 = Q2 Q1 Q0 + Q2 Q1 Q0 D0 = Start Q2 Q1 Q0 + EP Q2 Q1 Q0 + Q2 Q1 Q0 Implementarea cu MUX 8:1 este:
0 0 1 0 ER 0 0 0 MUX 8:1 D2 D2 74151 s2 s1 s0 Q2 Q1 Q0 0 1 0 1

MUX 8:1 D1
90

91

0 0 0 0

D1 74151 s2 s1 s0 Q2 Q1 Q0 Start 1 0 EP 0 0 0 0

MUX 8:1 D0 D0 74151 s2 s1 s0 Q2 Q1 Q0

Dac implementarea s-ar realiza cu MUX 4:1 pe intrrile multiplexorului am avea ieiri din pori logice de tip SI. c. Implementarea generatorului noii stri cu decodificatoare se face aplicnd la intrarea decodificatorului variabilele de stare. La ieirile decodificatorului se obin strile interne individualizate. Putem scrie: D2 = D + ER E D1 = B + C D0 = Start A + B + EP C Pentru obinerea funciilor de excitaie se vor utiliza pori logice de tip SI, SAU i NU. Decodificatorul va fi de tip zecimal:

91

92

0 Q2 Q1 Q0

DCD 1 B 2 3 4

0 D C E 9

A D1

d. Implementarea generatorului noii stri cu memorii i multiplexoare permite simplificarea logicii generrii noii stri. ROM 16 x 4 A0 Start A1 MUX 0

8:1 1 0 A2 2 0 y3 y2 y1 y0 A3 Y 3 EP 4 ER 5 0 D2 Q2 D1 Q1 D0 Q0 6 0 Clk Clk Clk s2 s1 s0 7 0 Q2Q1Q0 A3A2A1A0 000 (s2s1s0) 0000 y3y2y1y0 Q2Q1Q0 A3A2A1A0 y3y2y1y0 (s2s1s0) 0000 000 1000 0001
92

93

0011 001 1001 0000 010 0010 0100 010 1010 0000 011 0011 0010 011 1011 0011 100 0100 0000 100 1100 0100 101 0101 0000 101 1101 0000 110 0110 0000 110 1110 0000 111 0111 0000 111 1111 0000 e. Implementarea circuitelor secveniale sincrone se poate realiza cu numrtoare MSI. Numrtorul va fi utilizat pentru funcia de memorare i parial pentru efectuarea tranziiilor. Vom utiliza pentru implementare un numrtor sincron (de exemplu numrtorul zecimal 74162). Bistabilii interni ai acestuia pot memora starea circuitului. Codificarea strilor se face innd cont de ordinea de numrare a numrtorului: A = 000; B = 001; C = 010; D = 011; E = 100.
Q2 Q1Q0 0 1 00 A E 01 B 11 D 10 C

001

0001

93

94

Vom determina funciile de numrare fN i ncrcare (ramificare) fR i vom realiza implementarea lor cu multiplexoare 8:1 (de tipul 74151). Intrrile de selecie vor fi ieirile numrtorului, Q2Q1Q0. Diagramele pentru cele 2 funcii vor fi: f N:
Q2 Q1Q0 00 0 Start 1 01 1 11 1 10 EP

f R:
Q2 Q1Q0 00 0 1 ER 01 11 10

Strile urmtoare ale numrtorului trebuie specificate pentru strile din care au loc ramificri (E). D2 = Q2; D1 = Q1; D0 = Q0. n acest caz se utilizeaz ncrcarea paralel a numrtorului cu valoarea prestabilit pe intrrile paralele. Schema circuitului trebuie completat i cu logica pentru determinarea ieirilor. Ieirile Init, SP i SR corespund strilor A, B, D. Funciile de ieire sunt: Init = Q2 Q1 Q0 SP = Q1 Q0 SR = Q1 Q0

94

95

Implementarea funciilor de ieire se poate realiza cu pori logice de tip SI sau cu un decodificator zecimal.

Circuitul secvenial sincron va avea urmtoarea implementare: 0 0 En 0 1 MUX 0 2 8:1 0 3 fR ER 4 Y 0 5 Y 0 0 6 7 4151 s2 s1 s0 Start 0 En 1 1 MUX EP 2 8:1 1 3 fN 0 4 Y 5 Y 0

Init 0 6 DCD 1 SP 0 7 4151 2 s2 s1 s0 0 D3 3 SR D2 4 D1 5 D0 6 7 Q3Q2Q1Q0 7442 8


95

96

Reset

MR 74162 Clk 9 LD D3D2D1D0 0

EN

Curs 11
3.4. Sisteme secveniale sincrone
Evoluia circuitelor secveniale sincrone a fost determinat de metodele de sintez adecvate. Pentru circuitele secveniale sincrone cu numr mic de variabile de intrare i de stare se poate utiliza sinteza pornind de la grafuri sau diagrame de tranziii (metoda studiat). Pentru circuitele cu numr mare de variabile de intrare i de stare se face o organigram funcional care pune n eviden direct strile interne i tranziiile, n funcie de modificarea unei singure variabile de intrare. Aceste circuite se numesc sisteme secveniale sincrone (SSS). Structura unui sistem secvenial sincron: START ncrcare R numrtor C = 0 DA Ri = 1 NU Deplasare stnga R C=C1 S1 cutarea biilor = 1 ntr-un registru de 8 bii S2 S3

Prelucrare n funcie de rangul bitului (succesiune de operaii)

NU C=8 DA
96

S4

97

STOP Analiza figurii permite determinarea a 2 blocuri funcionale: 1. Unitatea de execuie UE realizat cu regitri, numrtoare, bistabili, CLC. 2. Generatorul de secvene sau unitatea de comand UC secveniator care opereaz asupra unitii de execuie. UC trebuie s asigure: - trecerea din starea Si n starea Si+1; - ntreruperi de secvene prin salt; - bucle de ateptare. Schema sistemului secvenial complex UC UE Calculul secvenei urmtoare Generator de tact CLK Generator de secvene secvene CLK Bloc de determinare aciune a aciunii asupra UE UE Stri Unitate de execuie UE

Unitile de comand UC pot fi: cablate sau microprogramate. Generatorul de secvene poate deci fi realizat cablat sau microprogramat. 1) UC cablate exist 2 posibiliti de realizare: a. Generatorul de secvene este realizat cu un numrtor programabil. Acesta numr, se oprete sau se ncarc cu o nou valoare. Ieirile sale sunt decodificate de un decodificator de secvene. Se genereaz secvene care valideaz aciunile asupra elementului funcional (UE). Generator de tact CLK

Calcul adres

Calcul adres de salt (condiii de ntrerupere)

Calcul adres urmtoare (condiii urmtoare)


97

Calcul adres de oprire (condiii de oprire)

98

Adres

Load Numrare (Salt) Numrtor de secven

Oprire UE

Decodificator de secvene

Calcul aciuni UE CLK

b. Generatorul de secvene este realizat cu un registru de deplasare (decalaj) n care va circula un bit de 1. Fiecrei stri i corespunde un bit din registrul de deplasare. Poziia bitului de 1 semnalizeaz o anumit secven. Pentru a obine starea urmtoare registrul va fi decalat cu o poziie sau va fi decalat n cazul saltului. Avantajul acestei variante const n eliminarea decodificatorului de secvene. n fiecare secven se realizeaz o aciune sau un grup de aciuni. O aciune poate s necesite mai multe etape. Dirijarea n cadrul secvenei se realizeaz cu ajutorul generatorului de tact. Variantele a i b de UC cablate au dezavantajul c o modificare a funcionrii presupune o modificare a secvenei de lucru, deci o modificare a cablajului. 2) UC microprogramate Generatorul de secvene trebuie s aib exact aceleai funcii ca i n cazul UC cablate. Generator de tact CLK

Calcul adres de salt (condiii de CLK ntrerupere)

Calcul adres urmtoare (condiii urmtoare)

Calcul adres de oprire (condiii de oprire)

Adres Load (Salt) Numrare Oprire Registru de microinstruciune Registru de adres microprogram

UE

98

99

Adres Memorie microprogram Adres nou Aciuni

Calcul aciuni UE CLK

La acest mod de realizare a UC se ctig n fiabilitate deoarece se execut o singur operaie ntr-o secven, dar se pierde n vitez. Tactul acioneaz asupra registrului (numrtorului) de microprogram. 3.4.1. Principii de comand a sistemelor secveniale sincrone

Sistemele secveniale sincrone i modific ieirea n funcie de intrare doar n prezena unui semnal de tact. Funcii logice de comand. Tabele de excitaie Generatorul de tact furnizeaz un semnal de tact de baz, care provine de la un oscilator i este un semnal periodic de durat i perioad constant. Cu ajutorul semnalului de tact se vor genera toate semnalele de comand necesare unui sistem secvenial sincron. n sistemele cablate, n cadrul unei secvene se pot efectua mai multe operaii. Din acest motiv este necesar dirijarea perioadei tactului pentru a stabili o succesiune a diferitelor aciuni. Pot s apar urmtoarele situaii: Tact suprapus T CLK1

99

100

CLK2 CLK3 Tact adiacent CLK1 CLK2 CLK3 Tact neadiacent CLK1 CLK2 CLK3 Sistemele secveniale sincrone se comand prin funcii care conin unul dintre semnalele de tact CLKi, o stare a circuitului i un semnal extern. Toate funciile de comand care acioneaz asupra elementelor din unitatea de execuie UE vor conine obligatoriu unul dintre semnalele de tact n cadrul expresiei funciei (valideaz o aciune). Funciile logice de comand nu in cont de natura elementului fizic utilizat. Dup alegerea
100

101

elementelor fizice se vor grupa funciile de comand ntr-un tabel de excitaie. Tabelul de excitaie conine: - numele elementului circuitului; - tipul elementului; - intrrile elementului; - modul de comand a intrrilor; - funcia logic corespunztoare fiecrei intrri, scris sub form simbolic. 3.4.2. Hazardul n funcionarea sistemelor secveniale sincrone Hazardul reprezint apariia unei modificri neprevzute i nedorite a unei stri a sistemului secvenial sincron. Hazardul poate fi: - static datorat propagrilor pe ci diferite a semnalelor; se manifest prin comutri fr semnificaie logic; - dinamic datorat proceselor asincrone pe intrri; se manifest prin comutri fr semnificaie logic. Cauzele apariiei pot fi: - semnale parazite la funciile de excitaie; - nerespectarea parametrilor dinamici; - durata insuficient a impulsului de comand. Metodele de evitare a hazardului: 1) Sincronizarea intrrilor asincrone semnal
101

102

asincron extern CLK tsetup thold Exemplu. Se consider un numrtor N care face o incrementare +1 la tactul CLK i un semnal extern E. Incrementarea se face la CLK E. E CLK E CLK CLK E Se poate ca semnalul CLK E s aib o durat foarte scurt care va provoca o funcionare greit a numrtorului N. Se va face o sincronizare a semnalului asincron E cu ajutorul unui bistabil. E Es CBB CLK1 CLK2 +1 N +1

102

103

Dac exist mai multe semnale asincrone, pentru realizarea sincronizrii se utilizeaz registre. 2) Automodificarea unui circuit secvenial Poate s apar n situaii ca i urmtoarea: f = s CLK1 CLK2 Q1 Q2 n cazul n care bistabilul al doilea, Q2, va comuta n 0. D CLK2 s CLK2 s CLK1 Q1 Q2 durat foarte scurt, neutilizabil Q2 Se face sincronizarea pentru Q2. Q1 s D Q2 CLK2 CLK2 s Q1 Q2
103

Q2

104

Q2 3) Probleme datorate decalajului de tact (defazarea tactului) Dac la CLK2 s Q1 Q2 avem Q3 1 i la CLK2 s Q1 avem Q2 0 Dac CLK2 care se aplic bistabilului 2 este n avans fa de CLK2 aplicat bistabilului 3, s Q1 Q2 0 prea repede i nu se respect thold pentru bistabilul 3, deci Q3 nu va 1. J2 Q2 CLK2 CLK K2 J3 Q3 CLK K3

Q1 s

CLK2 Q1 Q2 s CLK2 Q1 tsetup thold Pentru rezolvarea problemei este necesar aplicarea unui alt tact CLK3. 4) Probleme datorate frecvenei maxime a tactului
104

105

Circuitele MSI au specificat n catalog frecvena maxim de lucru, care este de obicei valoarea tipic sau medie. Datorit CLC care se interpun crete timpul de propagare (se adaug la timpul de propagare prin CLS, timpul de propagare prin CLC i timpul de setup) i astfel scade frecvena maxim a tactului. Proiectarea trebuie fcut nct s se introduc cel mult 2 nivele de CLC ntre CLS. 5) Probleme legate de iniializare i blocare Orice sistem secvenial care conine elemente de memorie trebuie prevzut cu o logic de iniializare la punerea sub tensiune. Altfel elementele de memorie pot s se gseasc n orice stare i succesiunea de stri nu urmeaz cursul firesc proiectat. Deoarece nu toate strile sunt folosite trebuie s se introduc o logic de autoiniializare, care are ca scop aducerea circuitului secvenial n secvena normal de lucru. 3.4.3. Perturbaii datorate structurii electrice Perturbaiile pot fi de natur electric, magnetic sau electromagnetic. a. Perturbaiile mediului nconjurtor se elimin prin ecranare (cmpuri electrice i magnetice) i prin filtre de reea (cmpul electromagnetic). b. Efectele perturbatoare introduse de sursa de alimentare (n condiiile n care poarta logic
105

106

se asimileaz cu un generator de tensiune cu rezisten intern i cu ieirea avnd un salt de la 0 la 5V, care determin un curent pe linia de conexiune i prin linia de mas) se datoreaz: - zgomotelor de pe liniile de mas n cazul n care punerea la mas este incorect (nu este aproape de porile de emisie i de recepie) se genereaz cureni parazii care se propag pe linie i pot produce impulsuri de tensiune parazite, care la rndul lor pot provoca rspunsuri false la ieirile circuitelor logice; - variaiilor de curent continuu care apar la trecerea dintr-o stare logic n alta. Pentru eliminarea acestor probleme se cupleaz la mas firele de legtur i cablurile coaxiale ct mai aproape de porile de emisie i recepie ale liniei. Decuplarea tensiunii de alimentare a porilor de emisie i de recepie ale liniilor se realizeaz cu condensatoare pentru nalt frecven i pentru joas frecven, montate ct mai aproape de circuitul logic. Pentru o decuplare i mai eficient se folosesc i inductane pentru eliminarea oscilaiilor. c. Diafonia reprezint toate fenomenele de cuplaj electromagnetic ntre semnalele de pe liniile de legtur, care dac interacioneaz produc semnale parazite. O bucat de conductor poate fi privit ca i o anten slab, dac nu are o lungime de cel puin . Din acest motiv firele de legtur
106

107

pot fi privite ca antene de recepie pentru zgomote. Diafonia poate fi privit ca i transmisie radio n care un conductor emite i cellalt recepioneaz. Din acest motiv 2 fire de legtur paralele alturate pot produce diafonie. Eliminare se realizeaz prin introducerea unui traseu de mas ntre liniile de legtur. Ideal ar fi utilizarea firelor ncruciate (fir de legtur cu fir de mas n jurul lui). d. Propagarea i reflexiile pe liniile de transmisie. Liniile de transmisie sunt caracterizate de impedan. Aceasta reprezint raportul dintre tensiunea i curentul semnalelor de nalt frecven care parcurg linia. Dac terminaia liniei este o rezisten egal cu impedana lui nu apar probleme de propagare. Altfel pot aprea reflexii, datorit neechilibrrii liniei de transmisie, care se suprapun peste semnalul iniial. Dac liniile de transmisie sunt foarte lungi timpul de propagare poate ajunge egal sau mai mare dect fronturile i atunci pot s apar reflexii. Aceste probleme sunt deosebit de importante pentru semnalele de tact, de aceea se va urmri cu atenie lungimea i terminaia firelor de pe aceste semnale (altfel circuitul poate ntr-un singur tact s parcurg mai multe stri).

107

108

Curs 12 CAPITOLUL IV PROIECTAREA SISTEMELOR NUMERICE CU DISPOZITIVE PROGRAMABILE


4.1. Metodologii generale de proiectare a sistemelor numerice 4.1.1. Proiectarea clasic S recapitulm etapele fluxului de proiectare n varianta clasic. - 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 designului logic; - se integreaz piesele; n caz c exist un produs software dezvoltat anume pentru gestionarea sistemului, acesta este momentul cnd se va utiliza; - se creeaz prototipul, care este depanat i corectat cu ajutorul softului; 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. Deci revenirile multiple n procesul de proiectare clasic constituie regula, nu excepia. Procesul de proiectare este astfel costisitor din punct de vedere al timpului (circa 6-12 luni pentru sisteme de 500-1000 de circuite integrate (capsule)).

4.1.2. Proiectarea cu dispozitive programabile


Noul scenariu de proiectare, cu dispozitive programabile, este urmtorul: - se pornete i aici tot de la specificaie; - sistemul este apoi partiionat n blocuri mari (memorii, microprocesoare, dispozitive logice programabile, FPGA-uri sau CPLD-uri i logic de interfaare); - se formuleaz o descriere de nivel nalt a sistemului, folosinduse un editor schematic sau un limbaj de descriere hardware abstract (de exemplu, VHDL sau ABEL);

108

109

ntregul sistem este simulat - nlocuindu-se astfel vechea faz de prototip; - se creeaz lista de componente (netlist) a sistemului; - netlista este folosit la realizarea PCB-ului; n timpul realizrii fizice a PCB-ului, simularea mai este rafinat. n acest tip de proiectare cele mai multe modificri, dac nu chiar toate, apar n software, n PLD-uri sau n FPGA, nu n interconexiuni sau n componente secundare. Dac designul a fost bine conceput, el poate fi reproiectat cu matrici de pori, pentru a maximiza profitul la producia de serie mare. Folosirea intensiv a circuitelor FPGA este o modalitate foarte eficient de proiectare a sistemelor numerice. FPGA-urile permit proceduri de realizare fizic foarte rapide i modificri chiar mai rapide ale designului, cu condiia s fie corect folosite. Cheia succesului lor este time-to-market-ul (timpul de la conceperea abstract a unui proiect pn la realizarea sa efectiv) foarte rapid.
-

4.2. Definiia i structura unui circuit FPGA


4.2.1. Completitudine funcional Un concept de baz n nelegerea FPGA-urilor este completitudinea funcional. Se tie c orice funcie poate fi realizat pornind de la o sum de produse. Dac un singur tip de poart logic este capabil de a forma o sum de produse, atunci spunem c are proprietatea de completitudine funcional. Asta nseamn c orice funcie boolean poate fi realizat folosindu-se numai acel tip de poart logic. n consecin este avantajos s avem multe pori de tipul respectiv. Calitile eseniale pentru completitudinea funcional sunt: - 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. Nu este nevoie s impunem realizarea simultan a funciilor I i SAU, deoarece, dac se poate realiza funcia NU, atunci, folosind teoremele lui De Morgan, se poate obine i funcia care lipsete. 4.2.2. 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. Exist mai multe tipuri de astfel de blocuri logice. Cele mai cunoscute sunt memoriile (ROM, RAM, PROM, EPROM i EEPROM) i multiplexoarele. Toate aceste blocuri pot realiza funcii,
109

110

formnd tabelele lor de adevr. FPGA-urile sunt adeseori construite pe baza unor blocuri constructive care sunt funcii universale. S lum exemplul unui multiplexor 4:1. Ecuaia ieirii este urmtoarea: DATAOUT = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3
D3 D2 D1 D0 S1 S0 DATAOUT

S1 0 0 1 1

S0 0 1 0 1

DATAOUT D0 D1 D2 D3

Examinnd fie tabelul de adevr al multiplexorului, fie ecuaia ieirii, obinem: - dac D0 = D1 = D2 = 0 i D3 = 1, atunci funcia DATAOUT va fi S1 S0, adic I logic; - dac D0 = 0 i D1 = D2 = D3 = 1, obinem DATAOUT = S1+S0, adic SAU logic; - dac D0 = D2 = 1 i D1 = D3 = 0, obinem DATAOUT = S0, adic NU logic. Aceste observaii arat c multiplexorul este complet funcional. El este i universal pentru c poate forma orice funcie de cele dou variabile de intrare S0 i S1 (seleciile) prin setarea valorilor lui D din tabelul de adevr la 0 sau la 1 logic. Analog, un multiplexor 8:1 poate realiza orice funcie de 3 variabile de intrare, iar un multiplexor 16:1 poate realiza orice funcie de 4 variabile etc. O celul care are proprietatea de completitudine funcional poate realiza orice funcie logic combinaional folosind una sau mai multe copii ale sale. O funcie logic universal poate face acelai lucru, dar s-ar putea s necesite mai puine celule. Aici presupunem c celula universal are suficiente intrri pentru a fi eficient, ceea ce poate s nu fie ntotdeauna adevrat. Unele FPGA-uri folosesc ca blocuri constructive celule universale, altele folosesc celule funcional complete. 4.2.3. Definiia circuitului FPGA Un FPGA este o colecie de elemente logice cu completitudine funcional sau universale plasate ntr-o reea de interconectare. Unele FPGA-uri arat ca nite matrici de celule bidimensionale, cu canale de interconectare orizontale i verticale ntre celule. Altele arat ca nite pori logice mpreun cu matrici programabile, cu reacie invers, similare PLD-urilor obinuite. Pentru a face distincia ntre ele, primele
110

111

au fost numite FPGA-uri, iar celelalte - CPLD-uri (Complex Programmable Logic Device); sau arhitecturi cu canale de rutare i respectiv arhitecturi foldback.
Celula Canal derutare Conexiuni program abile

Matrice de por SAU i

OE

Buffer
PIN(I/O)

Calea de reac ie

Matrice de por SI i

Arhitecturi FPGA i CPLD (foldback) S lum un exemplu de arhitectur FPGA pe care s o construim pe baz de multiplexoare. Pornim de la un multiplexor de tip 8:1.
D7 D6 D5 D4 D3 D2 D1 D0 MUX 8:1 DATAOUT

S2 S1 S0

Dac FPGA-ul ar fi construit numai pe baz de multiplexoare 8:1, bistabilele ar fi greu de implementat i preul realizrii lor ar fi mult prea mare. O practic uzual const n a face celula universal (sau funcional complet) s aib ieirea legat direct la intrarea unui bistabil D, care basculeaz pe front, obinndu-se astfel o celul hibrid, care conine i un bistabil. Aici apare n continuare o problem: toate funciile combinaionale sunt obligate s foloseasc i bistabile D.
D7 D6 D5 D4 D3 D2 D1 D0

MUX 8:1

DATA

CP QN

S2 S1 S0

Multiplexor cu ieire prin registru

111

112

Soluia cea mai folosit const n a aduga nc un multiplexor n celul, permind multiplexorului s conduc direct intrarea D a bistabilului sau s-l ocoleasc pentru a "iei" n exterior. Acum, structura blocului constructiv este rezonabil din multe puncte de vedere. El poate forma orice funcie combinaional de trei variabile i poate, de asemenea, forma funcii secveniale realizate cu bistabile D. n figur se prezint celula final, mpreun cu simbolul ei. De notat c intrrile de date nu sunt scoase n afara celulei. Numai ceasul i 4 intrri de selecie sunt intrri pentru formarea funciilor logice, ceea ce reduce considerabil numrul de conexiuni externe necesare implementrii de funcii logice.
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

OUT

S2 S1 S0

S2 S1 OUT S0 CLK SEL

Celula logic constructiv de baz

Simbolul celulei de baz

Celula de baz a unui FPGA cu blocuri logice universale S vedem acum cum pot fi interconectate aceste celule. Potrivit celor expuse anterior exist dou moduri fundamentale de a realiza interconectarea: prin canale de rutare sau prin matrice programabil de tip foldback, cu reacie invers.

112

113
S 2 S 1 S 0 Sl e S 2 S 1 S 0 Sl e S 2 S 1 S 0 Sl e S 2 S 1 S 0 Sl e S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 O S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e

S 2 O S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 O S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e

S 2 O S 1 S 0 Sl e O

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

S 2 S 1 S 0 Sl e

113

114

Arhitectur FPGA cu canale de rutare a

semnalelor inter-celulare

114

115

Semnalele intr n structura din figur prin buffere de intrare, ajungnd 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 a FPGA-ului. Funcia fiecrei celule este deci programat intern, iar ieirea este rutat nspre mai multe linii verticale i orizontale. Semnalele de la ieirea unei celule pot fi rutate la intrrile altor celule sau la ieirile circuitului FPGA, ieiri care sunt realizate prin buffere de ieire.
S2 S1 S0 Sel

S2 S1 S0 Sel

S2 S1 S0 Sel

S2 S1 S0 Sel O

S2 S1 S0 Sel

S2 S1 S0 Sel

Arhitectur CPLD de tip foldback, cu reacie invers

115

116

n cazul arhitecturii CPLD, ieirile tuturor celulelor sunt rerutate n interiorul matricii (reacie invers) ctre intrrile tuturor celorlalte celule. i aici se presupune c circuitele de programare (configurare) a celulelor nu apar n figur. Funciile simple sunt realizate n celule, iar pentru cele mai complexe se folosesc cile de reacie invers. n figur apar puine celule n structura foldback-ului, dar n realitate, cu tehnologia de azi, numrul acestor celule poate atinge cteva sute. Arhitecturile prezentate sunt relativ simple i totui exist un anumit numr de probleme care apar: - Ci pini de intrare, ieire i bidirecionali sunt necesari? - Este oare bine s avem pini de clock (tact) dedicai? - Care este numrul corect de linii de interconectare verticale i orizontale necesare pentru a evita congestia? - Este bine oare s se divizeze liniile de interconectare n mai multe sub-segmente, n vederea evitrii blocrii unei ci? La toate aceste probleme trebuie s se rspund n funcie de arhitectura specific folosit (firma productoare, tehnologia de realizare a FPGA-ului, structura celulei etc.).

Curs 13
4.3. Instrumentele software de susinere a proiectrii cu FPGA-uri
4.3.1. Introducere Arhitecturile prezentate anterior erau alctuite din celule logice identice plasate ntr-o reea de conexiuni posibile. Folosirea acestor arhitecturi necesit translatarea funciei dorite de ctre proiectant n conexiunile intra i intercelulare necesare obinerii designului final. Exist dou funcii principale pe care trebuie s le realizeze instrumentele software de susinere a proiectrii cu circuite FPGA: 1) s converteasc funciile designului n funciile realizabile de ctre FPGA. Aceast funcie se numete translatare (alteori compilare sau fitting - potrivire). 2) s verifice dac designul translatat este corect. Aceast funcie se numete verificare i poate fi realizat cu softul de verificare a designului i de simulare logic. Ambele funcii opereaz cu o versiune a designului numit netlist (list de conexiuni i componente) asupra creia se pot face investigaii, deoarece este o reprezentare comun a circuitului. 4.3.2. Problema translatrii
116

117

Paii care trebuie parcuri n cursul procesului de translatare sunt n general urmtorii: - se verific dac numrul pinilor de intrare/ieire ai FPGA-ului este mai mare dect numrul pinilor necesari n design; - se verific dac exist suficiente celule n FPGA pentru a acoperi numrul de pori logice din design; - se caut n design grupuri de componente al cror numr de intrri i de ieiri este egal cu cel al celulei de baz din FPGA; - se aleg prima dat grupurile cele mai mari care pot fi formate (de exemplu porile cu mai mult de trei intrri au nevoie de dou sau mai multe celule). Instrumentul software utilizeaz un set de reguli pentru substituiile de funcii. La nivelul cel mai simplu, el are nevoie de un set de substituii pentru porile din design care s fie mapate n celule din FPGA. n continuare, el are nevoie de o strategie pentru a utiliza optimal regulile de substituie. Procesul de translatare este alctuit din trei etape eseniale: - maparea tehnologic (inclusiv optimizarea); - plasarea; - rutarea. O operaiune important este eliminarea prilor redundante din design - altfel cele mai multe designuri nu pot fi implementate n FPGA. Exemplu: Dac n design apare un numrtor pe 4 bii din care se folosesc efectiv numai cei 2 bii mai puin semnificativi, softul va "sparge" implementarea numrtorului pe 4 bii i va realiza doar implementarea unui numrtor pe 2 bii, restul logicii iniiale fiind de prisos n acest caz. 4.3.3. Optimizarea netlist-ei Este o etap esenial a procesului de proiectare automat cu FPGA-uri. Se folosesc de obicei metodele clasice: diagrame Karnaugh, teoremele algebrei booleene etc. Aceast optimizare este de fapt minimizarea designului dup translatarea sa ntr-o netlist. Netlista este un fiier text care conine pur i simplu funciile logice din design i conexiunile lor de intrare i de ieire. Acelai format poate fi folosit la orice nivel de reprezentare. Un exemplu de netlist:

117

118

* 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 * Exemplu de netlist n aceast netlist, DFF nseamn bistabil D (D flip-flop), AN nseamn poart I, INV nseamn poart NU, iar OR nseamn poart SAU. Acesta este nivelul la care se fac substituiile; exist sute de reguli. Exemplu: Se elimin porile logice din design ale cror ieiri nu sunt folosite. Astfel se pot combina porile care realizeaz funcii identice, se pot elimina bistabile etc. Procesul de "convertire" a componentelor logice din design n componente logice implementabile de ctre celulele de baz din FPGA se numete mapare tehnologic. 4.3.4. Plasarea Este procesul de amplasare fizic a componentelor logice n celulele din FPGA. n principiu se urmrete amplasarea funciilor logice adiacente n celule alturate (dac un modul logic are ca intrri ieirile altui modul, cele dou module vor fi adiacente). Criteriul critic de plasare este urmtorul: s se poat face legturile cu celelalte celule. 4.3.5. Rutarea Presupunnd c s-a reuit efectuarea unei plasri adecvate a componentelor logice n celulele din FPGA, pasul urmtor este
118

119

interconectarea acestora. La nceput, netlista este inspectat, urmrindu-se informaiile de interconectare din ea. Apoi se inspecteaz plasarea existent n acest moment. Se consider c dac o linie metalic de interconexiune are ataat un semnal de ieire i cellalt capt al su este conectat la intrarea unei alte celule, atunci linia este folosit (consumat). Pe msur ce procesul de interconectare avanseaz, liniile devin ocupate i poate s apar congestia. n aceast situaie, softul va reface plasarea, proces numit re-rutare. Rezultatul plasrii i rutrii este un fiier care descrie designul originar n termenii celulelor FPGA-ului. Acest fiier conine descrierea asignrii poziiilor celulelor i interconexiunilor dintre celule pentru reeaua de tip FPGA sau CPLD (foldback). n final fiierul este translatat ntr-o hart de bii care poate fi transmis unui programator de dispozitive care configureaz FPGA-ul. Se vede deci c un instrument software de rutare a semnelor din FPGA este vital pentru exploatarea posibilitilor oferite de aceste circuite. 4.3.6. Ci critice Problemele care apar n proiectarea cu FPGA-uri sunt n special probleme de temporizare. De exemplu: un semnal trebuie s intre n FPGA, s ia parte la implementarea unei funcii logice i apoi s ias imediat pentru a participa la alte operaii n afara FPGA-ului (aa se ntmpl deseori la sistemele cu microprocesoare, la decodificatoare, la comparatoare rapide etc.). Alteori, toate bistabilele dintr-un registru de deplasare sau numrtor trebuie s fie plasate n celule adiacente din FPGA, pentru a garanta sosirea aproape simultan a semnalului de tact la aceste celule. Cile critice complic plasarea i rutarea pentru c sporesc numrul de constrngeri adiionale. De obicei se plaseaz nti celulele aflate pe ci critice, apoi restul celulelor din design. n continuare se ruteaz n mod similar: nti celulele aflate pe ci critice, apoi restul celulelor din design. n acest fel rmn mai puine posibiliti pentru plasarea i rutarea restului designului. Se recomand s se pstreze la un nivel minim cile critice, pentru c altfel sesiunile de plasare i rutare devin mult mai lungi. 4.3.7. Verificarea designului Cele mai simple instrumente de verificare a designului sunt programe care examineaz netlista transformat i analizeaz proprietile ordinare ale designului final. Iat cteva exemple de verificri efectuate: - se izoleaz ieirea unei celule i se numr la intrarea ctor altor celule este transmis acel semnal. Fiecare celul n care intr semnalul
119

120

contribuie la o sarcin cumulativ a acestuia i este posibil ca atunci programul s intervin, distribuind sarcina respectiv la mai multe celule de ieire identice; - se caut intrri lsate neconectate ale celulelor, care creeaz probleme de zgomote; - se caut ieiri care nu sunt three-state i sunt totui legate mpreun. Uneori verificarea se face n etapa de translatare, alteori n etapa de simulare. 4.3.8. Simularea logic Acesta este instrumentul de baz pentru verificarea funcionalitii i performanelor temporale ale unui design cu FPGA. n orice tip de simulare, se creeaz un model al reelei logice cruia i se aplic un model al intrrilor (numite stimuli) n vederea obinerii unui model al ieirilor (numite rspunsuri). O proprietate fundamental a simulrii este urmtoarea: ea permite observarea rspunsurilor logice interne, cnd aceste rspunsuri s-ar putea s nu fie observabile pe pinii de ieire. Exist mai multe tipuri diferite de simulare: 4.3.8.1. Simularea funcional n acest tip de simulare se modeleaz celulele logice, care sunt combinate cu un model al intrrilor binare (tensiuni), generndu-se un model relativ de rspunsuri (tot tensiuni). Avantaje: - genereaz rapid rezultatele; - modelul este simplu. Dezavantajul principal: - nu ofer informaii despre temporizare, ci numai relaii relative ntre semnale.

4.3.8.2. Simularea temporal digital


n acest tip de simulare se creeaz un model al ntregului design, interconectndu-se modelele celulelor, asociindu-se n plus un element adiional la ieirea modelului fiecrei celule: un bloc de ntrziere. Blocul de ntrziere al unei celule este compus din trei factori: 1) ntrzierea introdus de celul n sine, n absena oricrei conexiuni externe. i aceast ntrziere este de fapt alctuit din dou ntrzieri: - ntrzierea pentru tranziia din "1" logic n "0" logic; - ntrzierea pentru tranziia din "0" logic n "1" logic. Specificarea acestor dou valori n data sheet-ul circuitului integrat FPGA este opional.

120

121

2) ntrzierea asociat capacitii de rutare a firului de metal care unete dou celule; 3) ntrzierea dat de suma impedanelor de intrare ale celulelor comandate. Uneori, ntrzierile de la punctele 2) i 3) sunt luate mpreun. Aceast simulare este mult mai complex. Nu vom intra n detaliile realizrii efective a acestui tip de simulare (modul de realizare a modelelor, planificatorul de evenimente etc.) 4.3.8.3. Simularea defectelor n acest tip de simulare se folosesc tehnici speciale pentru a se obine un "scor" (numit grad de defecte) pentru design i stimulii aplicai. Se testeaz fiecare aspect al designului conform standardelor industriale. Ideea este de a crea probleme artificiale ("defecte") i de a urmri dac rspunsurile difer de cele obinute n cazul normal, corect. Simularea fundamental const n meninerea ieirilor unor celule la 0 sau la 1 logic, n timp ce se aplic stimulii. Acest proces nu este efectuat pentru toate nodurile deodat, dar poate fi realizat pentru mai multe noduri simultan, dac acestea sunt suficient de independente unul fa de cellalt. Aceast simulare necesit multiple rulri pentru a calcula un grad de defecte i de aceea este o mare consumatoare de timp. n general, pentru FPGA-uri se folosete mai ales simularea temporal, pentru PLD-uri - simularea funcional, iar pentru ASIC-uri mari - simularea de defecte. 4.3.9. Evaluarea Simulatorul are o bibliotec de funcii n care fiecare intrare are ataat o rutin care evalueaz un tabel de adevr. Spre deosebire de un tabel de adevr normal, intrrile ntr-un tabel de adevr de simulator reflect mai realist condiiile electrice (de exemplu: ieiri three-state, stri necunoscute etc. - vezi figura 9). A) I-NU 1 * 3 # 1 1 1 1 1 = ZERO 1 1 * # # 1 = HIGH * 1 * * # # * = NECUNOSCUT 3 1 # # # # 3 = TRI-STATE # 1 # # # # # = NEDETERMINAT Modelul logic
a
f = a b

Delay

B) Modelul cu o ntrziere adugat Modelul de simulare al unei pori I-NU

121

122

O poart I-NU normal are doar patru intrri n tabelul de adevr. Acest tabel de adevr are 25 de intrri deoarece intrrile porii pot avea 5 valori posibile per intrare. n figura 9, intrrile pot fi valorile logice 0 i 1, dar i necunoscute, three-state sau nedeterminate. Condiia 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, start-up). Intrarea three-state poate s apar la o intrare dac aceasta provine de la ieirea unei pori three-state de pe un nivel logic anterior. Condiia nedeterminat a intrrii poate s apar dac dou buffere three-state comand acelai nod cu un nod care realizeaz un I cablat atunci cnd un buffer elibereaz comanda sa n timp ce cellalt buffer aserteaz. Cu ct numul de stri crete, cu att crete i acurateea simulrii, dar cu preul unui consum sporit de timp de rulare. 4.3.10. Modelarea Simularea performant include folosirea unor limbaje de modelare speciale, foarte eficiente, numite BLM (Behavioral Language Models). Acestea sunt modele de evaluare care genereaz rspunsuri de ieire corecte la stimuli de intrare dai. Un BLM este alctuit de fapt din proceduri scrise pentru a reaciona corect la un stimul, dar nu conine vreun model de poart anume. Cel mai simplu BLM este cel al unui bistabil D. Codul este scris n VHDL, care a fost optimizat pentru portabilitate pe multe sisteme de proiectare asistat de calculator. 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; Modelul unui bistabil n VHDL Abordarea BLM permite verificri interne pentru violri de timpi de setup i de hold n interiorul rutinei care evalueaz operaia logic respectiv. Acelai bistabil D poate fi modelat i n versiunea cu pori (deci bistabilul e vzut ca un circuit de ase pori I-NU, cu reacie). Aceast versiune necesit ca modelului s-i fie ataat o funcie extern, pentru a rspunde necesitilor de verificare a timpilor de setup i de hold ai modelului.
122

123

BLM evalueaz rapid, dar nu arat operaiile interne - rmne ca o cutie neagr. Versiunea cu pori face o disecie complet a operaiilor modelului, necesitnd un timp de simulare mai mare. n plus, ea permite o evaluare complet a gradului de defecte. De regul, funciile mari sunt modelate i simulate cu BLM, iar cele mai mici - cu ajutorul modelelor cu pori. 4.3.11. Biblioteci Simulatoarele sunt livrate cu biblioteci de modele de simulare, cu blocurile constructive necesare gestionrii celei mai mari pri a designurilor. Aceste biblioteci includ pori elementare, bistabile, intrri, ieiri i mai multe funcii adiionale. Aici se pot modifica ntrzierile nodurilor interne, se pot rula subrutine ale stimulilor etc.

4.3.12. Back Annotation


Procesul de alterare a ntrzierilor nodurilor interne se numete back annotation, noiune esenial n proiectarea cu FPGA. Modelul de simulare iniial era pur i simplu netlista designului. nainte de plasarea i rutarea designului, ntrzierile sunt necunoscute (ntre oricare dou puncte din interiorul FPGA-ului). Dup plasarea i rutarea designului, ntrzierile devin precizate. Produsul software calculeaz ntrzierile interne folosind legile circuitului electric, lungimea firelor metalice, constantele dielectrice i ali parametri. Folosind aceste ntrzieri, softul alctuiete o netlist cu ntrzieri notate nod cu nod, modificnd netlista originar. Acesta este procesul de back annotation. Simularea pe baza acestei noi netliste este mult mai precis, detectnd puncte critice care nu au cum s fie observate din lumea extern. 4.3.13. Procesul de proiectare cu FPGA n concluzie, putem sintetiza paii procesului de proiectare cu FPGA:

123

124 DESIGN

SIMULARE

COMPILARE E PROGRAMARE

Back Annotation

Diagrama procesului de proiectare cu FPGA


1. 2. 3. 4. 5.

6.

Recapitulnd, putem distinge urmtorii pai ai acestui proces: Se introduce designul folosind un editor schematic (schematic capture sau ecuaii); Rezult o netlist care descrie designul; Netlista este transmis simulatorului pentru verificare funcional (pentru a vedea dac au fost capturate funciile corecte); Urmeaz procesul de compilare: plasare i rutare; Dup compilare, softul de analiz extrage ntrzierile date de interconectarea celulelor i realizeaz procesul de back annotation al netlistei; Dac simularea noii netliste satisface condiiile, atunci totul este n regul i se face inscripionarea fizic a circuitului FPGA (programarea). n caz contrar, se reface simularea pn la obinerea versiunii definitive corecte.

124