Referat ANALIZA SI SINTEZA DISPOZITIVELOR NUMERICE
Mai jos puteti citi fragmente din
Referat ANALIZA SI SINTEZA DISPOZITIVELOR NUMERICE si de asemenea puteti face
Download Referat ANALIZA SI SINTEZA DISPOZITIVELOR NUMERICECiteste fragmente din Referat ANALIZA SI SINTEZA DISPOZITIVELOR NUMERICE
ANALIZA ÅžI SINTEZA DISPOZITIVELOR NUMERICE
cursBibliografie
Circuite de comutare aplicate în calculatoarele electronice, V. Pop,
Volker Popovici, ed. Facla, 1976
Circuite integrate digitale, Gh. Ştefan, I. Drăghici, T. Mureşan, E.
Barbu, EDP, 1983
De la poarta TTL la microprocesor, I. Sztojanov ÅŸ.a., ET, 1987
Proiectarea cu circuite logice MSI ÅŸi LSI standard, T.R. Blakeslee, ET,
1988
Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme,
proiectare, EDP, 1992
Circuite integrate digitale, Gh. Stefan, V. Bistriceanu, Probleme,
proiectare, Ed. Albastră, 2000
Automatizări discrete în industrie, Culegere de probleme, N.
Sprânceană, R. Dobrescu, Th. Borangiu, ET, 1978
Sisteme numerice cu circuite integrate, Culegere de probleme, Sanda
Maican, ET, 1980
Analiza şi sinteza dispozitivelor numerice, I.A. Leţia, Îndrumător
de laborator, I.P. Cluj-Napoca, 1985
Analiza şi sinteza dispozitivelor numerice, A. Neţin, O. Creţ,
Îndrumător de laborator, UT Press. Cluj-Napoca, 1998
Curs 1
CAPITOLUL I
ELEMENTE DE ALGEBRÄ‚ BOOLEANÄ‚
1.1. Generalităţi
Transferul, prelucrarea şi păstrarea datelor numerice sau nenumerice
în interiorul unui calculator se realizează prin intermediul
circuitelor de comutare. Aceste circuite se caracterizează prin faptul
că prezintă două stări stabile care se deosebesc calitativ între
ele. Stările sunt puse în corespondenţă cu valorile binare “0â€Â
şi “1†sau cu valorile logice “adevărat†şi “fals†(din
acest motiv se mai numesc ÅŸi circuite logice). Pornind de la aceste
considerente, un domeniul al logicii matematice, (ştiinţa care
utilizează metode matematice în soluţionarea problemelor de logică)
numit “algebra logicii†şi-a găsit o largă aplicare în analiza
şi sinteza circuitelor logice. Algebra logicii operează cu propoziţii
care pot fi adevărate sau false. Unei propoziţii adevărate i se
atribuie valoarea “1â€Â, iar unei propoziÅ£ii false i se atribuie
valoarea “0â€Â. O propoziÅ£ie nu poate fi simultan adevărată sau
falsă, iar două propoziţii sunt echivalente d.p.d.v. al algebrei
logice, dacă simultan ele sunt adevărate sau false. Propoziţiile pot
fi simple sau compuse, cele compuse obţinându-se din cele simple prin
legături logice de tipul conjuncţiei (, disjuncţiei ( sau negaţiei
(.
Bazele algebrei logice au fost puse de matematicianul englez George
Boole (1815-1864) şi ca urmare ea se mai numeşte şi algebră
booleană. Ea a fost concepută ca o metodă simbolică pentru tratarea
funcţiilor 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 comutaţie.
1.2. Definirea axiomatică a algebrei booleene
Algebra booleană este o algebră formată din:
elementele (0,1(;
2 operaţii binare numite SAU şi SI, notate simbolic + sau ( şi ( sau
(;
1 operaţie unară numită NU negaţie, notată simbolic sau (.
Operaţiile 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
Axiomele algebrei booleene sunt următoarele:
Fie o mulţime M compusă din elementele x1, x2,…xn, împreună cu
operaţiile ( şi +. Această mulţime formează o algebră dacă:
Mulţimea M conţine cel puţin 2 elemente distincte x1 ( x2 (x1,x2( M);
Pentru ( x1 ( M, x2 ( M avem:
x1 + x2 ( M ÅŸi x1 ( x2 ( M
Operaţiile ( şi + au următoarele proprietăţi:
sunt comutative
x1 ( x2 = x2 ( x1
x1 + x2 = x2 + x1
sunt asociative
x1 ( (x2 ( x3) = (x1 ( x2) ( x3
x1 + (x2 + x3) = (x1 + x2) + x3
sunt distributive una faţă de cealaltă
x1 ( (x2 + x3) = x1 ( x2 + x1 ( x3
x1 + (x2 ( x3) = (x1 + x2) ( (x1 + x3)
Ambele operaţii admit câte un element neutru cu proprietatea:
x1 + 0 = 0 + x1 = x1
x1 ( 1 = 1 ( x1 = x1
unde 0 este elementul nul al mulţimii, iar 1 este elementul unitate al
mulţimii.
Dacă mulţimea M nu conţine decât 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 proprietăţile:
x ( x = 0 principiul contradicţiei
x + x = 1 principiul terţului exclus
x este inversul elementului x.
În definirea axiomatică a algebrei s-au folosit diferite notaţii.
În tabelul următor se dau denumirile şi notaţiile specifice folosite
pentru diverse domenii:
Matematică Logică Tehnică
Prima lege de compoziţie
x1 + x2 Disjuncţie
x1 ( x2 SAU
x1 + x2
A doua lege de compoziţie
x1 ( x2 Conjuncţie
x1 ( x2 SI
Elementul invers
x Negare
(x NU
x
1.3. Proprietăţile algebrei booleene
Plecând de la axiome se deduc o serie de proprietăţi care vor forma
reguli de calcul în cadrul algebrei booleene. Aceste proprietăţi
sunt:
Principiul dublei negaţii
x = x dubla negaţie duce la o afirmaţie
Idempotenţa
x ( x = x
x + x = x
Absorbţia
x1 ( (x1 + x2) = x1
x1 + (x1( x2) = x1
Proprietăţile elementelor neutre
x ( 0 = 0 x ( 1 = x
x + 0 = x x + 1 = 1
Formulele lui De Morgan
x1 ( x2 = x1 + x2
x1 + x2 = x1 ( x2
Aceste formule sunt foarte utile datorită posibilităţii de a
transforma produsul logic în sumă logică şi invers.
Formulele pot fi generalizate la un număr arbitrar de termeni:
x1 ( x2 ( … ( xn = x1 + x2 + … + xn
x1 + x2 + … + xn = x1 ( x2 ( … ( xn
Principiul dualităţii – dacă în axiomele şi proprietăţile
algebrei booleene se interschimbă 0 cu 1 şi + cu (, sistemul de axiome
rămâne acelaşi, în afara unor permutări.
Verificarea proprietăţilor se poate face cu ajutorul tabelelor de
adevăr şi cu observaţia că două funcţii sunt egale dacă iau
aceleaşi valori în toate punctele domeniului de definiţie. Prin
tabelul de adevăr se stabileşte o corespondenţă între valorile de
adevăr ale variabilelor şi valoarea de adevăr a funcţiei.
Obs. Comutativitatea şi asociativitatea pot fi extinse la un număr
arbitrar, dar finit, de termeni, indiferent de ordinea lor.
1.4. Funcţii booleene
O funcţie f: Bn ( B, unde B = (0,1( se numeşte funcţie booleană.
Această funcţie booleană y = f(x1, x2,…,xn) are drept
caracteristică faptul că atât variabilele cât şi funcţia nu pot
lua decât două valori distincte, 0 sau 1. Funcţia va pune în
corespondenţă fiecărui element al produsului cartezian n dimensional,
valorile 0 sau 1. Astfel de funcţii sunt utilizate pentru
caracterizarea funcţionării unor dispozitive (circuite) construite cu
elemente de circuit având două stări (ex.: un întrerupător închis
sau deschis, un tranzistor blocat sau în conducţie; funcţionarea unui
astfel de circuit va fi descrisă de o variabilă booleană xi).
1.4.1. Funcţii booleene elementare
Revenim la forma generală a unei funcţii booleene de n variabile:
y = f(x1, x2,…,xn)
Domeniul de definiţie este format din m = 2n puncte. Deoarece în
fiecare din aceste puncte funcţia poate lua doar valorile 0 şi 1
rezultă că numărul total al funcţiilor booleene de n variabile este
N = 2m.
Vom considera în continuare funcţiile elementare de 1 variabilă.
Pentru n = 1 avem m = 2 şi N = 4. Funcţia are forma y = f(x) şi cele
4 forme ale ei se găsesc în tabelul următor:
f2 1 0 x Negaţia lui x
f3 1 1 1 Constanta 1
La fel se pot realiza toate funcţiile cu ajutorul unor funcţii de
bază. Acestora le vor corespunde şi nişte circuite logice elementare,
cu ajutorul cărora se poate realiza practic orice tip de circuit.
Ţinând cont de faptul că circuitele logice de comutaţie au 2 stări
stabile LOW (L) şi HIGH (H), asignând lui L ( 0 şi lui H ( 1 se poate
întocmi un tabel al funcţiilor elementare.
Inversor – NOT f = x x
f = x x f
0 1
1 0 x f
L H
Poartă SI – AND f = x1 ( x2 x1
x2
f=x1(x2 x1 x2 f
0 0 0
0 1 0
1 0 0
1 1 1 x1 x2 f
L L L
L H L
H L L
Poartă SAU – OR f = x1 + x2 x1
x2
f=x1+x2 x1 x2 f
0 0 0
0 1 1
1 0 1
1 1 1 x1 x2 f
L L L
L H H
H L H
Poartă SI-NU – NAND f = x1 ( x2 x1
x2
f=x1(x2 x1 x2 f
0 0 1
0 1 1
1 0 1
1 1 0 x1 x2 f
L L H
L H H
H L H
Poartă SAU-NU – NOR f = x1 + x2 x1
x2
f=x1+x2 x1 x2 f
0 0 1
0 1 0
1 0 0
1 1 0 x1 x2 f
L L H
L H L
H L L
SAU EXCLUSIV – XOR f = x1 + x2 x1
x2
f=x1 + x2 x1 x2 f
0 0 0
0 1 1
1 0 1
1 1 0 x1 x2 f
L L L
L H H
H L H
COINCIDENŢĂ f = x1 ( x2 x1
x2
f=x1 ( x2
=x1 + x2 x1 x2 f
0 0 1
0 1 0
1 0 0
1 1 1 x1 x2 f
L L H
L H L
H L L
H H H
1.4.2. Reprezentarea funcţiilor booleene
Există două moduri de reprezentare a funcţiilor booleene: grafică
şi analitică.
Modalităţi grafice - se caracterizează printr-o reprezentare
intuitivă, uşor de reţinut, dar sunt inadecvate pentru funcţii
booleene cu un număr de variabile mai mare decât 4;
2. Modalităţi analitice - sunt mai greoaie, dar permit metode
automate, deci algoritmi de simplificare a funcţiei; se folosesc în
general pentru funcţii booleene cu numărul variabilelor mai mare
decât 5.
Modalităţi de reprezentare grafică
Modalităţile de reprezentare grafică sunt: tabel de adevăr,
diagramă Karnaugh, schemă logică, diagramă de timp.
Tabel de adevăr – se marchează într-un tabel corespondenţa dintre
valorile de adevăr ale variabilelor de intrare şi valoarea de adevăr
a funcţiei, în fiecare punct al domeniului de definiţie.
Pentru o funcţie cu n variabile de intrare vom avea 2n combinaţii.
Există situaţii în care, pentru anumite combinaţii ale variabilelor
de intrare, valoarea funcţiei nu este specificată. Aceste funcţii se
numesc incomplet definite. În tabel, în locul în care funcţia nu
este specificată, se notează cu “Xâ€Â. Dacă o funcÅ£ie booleană
este incomplet definită pentru “m†combinaţii ale variabilelor de
intrare se pot defini 2m funcţii noi prin alegerea arbitrară a
valorilor incomplet definite.
Diagramă Karnaugh
O diagramă Karnaugh pentru o funcţie booleană de n variabile se
desenează sub forma unui pătrat sau dreptunghi împărţit în 2n
compartimente. Fiecare compartiment este rezervat unui termen canonic al
funcţiei, respectiv unuia dintre vârfurile cubului n dimensional din
reprezentarea geometrică a funcţiei (2n n-uple ale funcţiei).
Diagrama Karnaugh este organizată astfel încât 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
adevărată, iar în celălalt 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 indicând domeniul fiecărei
variabile, fie indicând pe linie şi coloană n-uple de zerouri şi
unităţi corespondente unui compartiment din diagramă şi ordinea
variabilelor. Prima notaţie se foloseşte în cazul în care se
reprezintă funcţia prin forma ei canonică sau normală. A doua
notaţie se foloseşte în cazul în care funcţia se reprezintă prin
tabel de adevăr. Pentru a putea reprezenta uşor funcţii exprimate în
mod convenţional prin indicii termenilor canonici se poate nota fiecare
compartiment cu indicele termenului corespondent, ţinând cont de o
anumită ordine a variabilelor.
Exemple:
Diagrama Karnaugh pentru funcţia de 2 variabile:
f(x1, x2) = x1(x2 + x1(x2
x1
sau
x1
x2
Obs. Numerotarea liniilor şi coloanelor se face în cod Gray (cod binar
reflectat)
10
1100 1010
1101 1011
1110 1001
1111 1000
Diagrama Karnaugh pentru funcţia de 3 variabile:
y = f(x1,x2,x3)
Domeniul de definiţie este format din 23 = 8 puncte şi reprezintă
vârfurile unui cub cu latura 1:
x1
001 101
011 111
000 100 x3
010 110
x2
Diagramele Karnaugh corespunzătoare pot fi reprezentate astfel:
x2
x3
sau
Diagrama Karnaugh pentru funcţia de 4 variabile:
y = f(x1,x2,x3,x4)
x3
Prin săgeţi am marcat vecinătăţile punctului de coordonate 0010.
4) Diagramele Karnaugh pentru funcţii de mai mult de 4 variabile se
construiesc din diagrame de 4 variabile considerate ca diagrame
elementare.
Schemă logică – reprezentare cu ajutorul simbolurilor circuitelor
logice.
Diagramă de timp – reprezentare utilă pentru studiul unor forme
tranzitorii de hazard în circuitele logice. Se reprezintă funcţii
logice în a căror evoluţie intervine timpul.
Exemplu: f = x1(x2
x2
f
Curs 2
1.4.2.2. Modalităţi de reprezentare analitică
1) Formele canonice
Fie o funcţie booleană f(x), unde x = (x1,x2,…,xn). Se defineşte
numărul i = x1(20 + x2(21 + … + xn(2n-1 ca număr de combinaţii.
Exemplu:
x1 x2 x3 f
0 0 0
0 0 1
0 1 0 ( i = 0(22 + 1(21 + 0(20 = 2
0 1 1
Fie funcţia Pi definită pe Bn ( B, deci Pi : Bn ( B
Pi(x1,x2,…,xn) = 1 dacă numărul de combinaţii este i
0 în caz contrar
Această funcţie se numeşte constituent al unităţii. Se poate arăta
că orice funcţie booleană dată prin tabelul de adevăr se poate
scrie ca o sumă de constituenţi ai unităţii.
f(x1, x2,…,xn) = Pi1 + Pi2 + … + Pip = ( Pij
i,j(M1
unde M1 = mulţimea tuturor combinaţiilor argumentelor pentru care
funcţia ia valoarea 1. Această formă de scriere se numeşte forma
canonică disjunctivă FCD, iar termenii constituenţi se numesc termeni
canonici conjunctivi sau mintermi (se mai numeşte şi forma sumă de
produse).
Funcţia booleană se mai poate scrie şi sub forma Si : Bn ( B unde B =
{0,1}.
Si(x1,x2,…,xn) = 0 dacă numărul de combinaţii este i
1 în caz contrar
Se poate demonstra că orice funcţie booleană poate fi adusă la
forma:
f(x1, x2,…,xn) = Si1 ( Si2 ( … ( Siq = ( Sij
i,j(M0
unde M0 = mulţimea tuturor combinaţiilor argumentelor pentru care
funcţia ia valoarea 0. Această formă de scriere se numeşte forma
canonică conjunctivă FCC, iar factorii constituenţi se numesc termeni
canonici conjunctivi sau maxtermi (se mai numeÅŸte ÅŸi forma produs de
sume).
Se poate demonstra că Si = Pi.
Algoritmi de obţinere a formelor canonice pe baza tabelului de adevăr
sau a diagramei Karnaugh:
FCD
se determină toate combinaţiile variabilelor pentru care valoarea
funcţiei este 1;
se scriu mintermii corespunzători (o variabilă apare nenegată dacă
are valoarea 1 şi negată dacă are valoarea 0);
se însumează mintermii obţinuţi anterior.
FCC
se determină toate combinaţiile variabilelor pentru care valoarea
funcţiei este 0;
se scriu maxtermii corespunzători prin însumarea variabilelor (o
variabilă apare nenegată dacă are valoarea 0 şi negată dacă are
valoarea 1);
se înmulţesc maxtermii obţinuţi 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 adevăr;
prin aplicarea dublei negaţii şi a teoremelor lui De Morgan.
Teorema lui Shannon
Complementul unei funcţii booleene se obţine prin complementarea
fiecărei variabile şi interschimbarea operatorilor ŞI cu SAU şi
reciproc.
f(x1,x2,…,xn)+,( = f(x1,x2,…,xn)(,+
Teorema de expansiune
Fie funcţia 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)
Funcţia 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 funcţiilor booleene termenii conţin toate
variabilele independente de intrare, negate sau nenegate. Termenii
formei elementare nu conţin toate variabilele de intrare. Această
formă se obţine din formele canonice prin minimizare.
3) Forma neelementară
Forma neelementară conţine variabile sau grupuri de variabile comune
mai multor termeni. Se obţine din celelalte forme prin aplicarea
algebrei booleene. Este folosită la implementarea funcţiilor logice
deoarece permite reducerea numărului de intrări în circuitele logice.
Are dezavantajul măririi numărului de nivele logice.
1.4.3. Minimizarea funcţiilor booleene
Algebra booleană se foloseşte la analiza şi sinteza dispozitivelor
numerice (circuite de comutaţie). Între gradul de complexitate al
circuitului şi cel al funcţiei care îl descrie există o legătură
directă. Aceasta este motivaţia pentru care, în etapa de sinteză a
circuitelor de comutaţie, după definirea acestora, urmează în mod
obligatoriu etapa de minimizare a funcţiei, având drept scop
obţinerea unor forme echivalente mai simple (forma minimă).
Soluţia minimă obţinută în urma minimizării ar trebui să fie cea
mai avantajoasă (economie de porţi logice, obţinerea unei scheme mai
fiabile, mai ieftine). În realitate nu este întotdeauna aşa. De
exemplu, dorinţa de a obţine un sistem uşor depanabil poate duce la
obţinerea unei soluţii neminimale, dar care prezintă proprietăţi
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 (intersecţie minimală).
Criteriile utilizate în vederea minimizării sunt:
reducerea numărului de variabile;
reducerea numărului 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 parţial simplificate în forme elementare
minimale.
Metodele de minimizare pot fi grupate în metode algebrice şi metode
grafice.
1.4.3.1. Minimizarea grafică
Diagrama Karnaugh
Minimizarea se bazează pe proprietatea de adiacenţă a codului binar
reflectat (Gray) cu ajutorul căruia se numerotează liniile şi
coloanele diagramei Karnaugh. În vederea minimizării se aleg
suprafeţele maxime (subcuburi) formate din constituenţi ai unităţii,
respectiv din constituenţi ai lui 0, suprafeţe (subcuburi) având ca
dimensiune un număr de pătrate (compartimente) egal întotdeauna cu
puteri ale lui 2. Aceste suprafeţe vor corespunde termenilor canonici,
termenii vecini fiind adiacenţi (diferă printr-un singur bit). Ca
urmare, în urma grupării lor se vor reduce variabilele pe baza
relaţiei: x1(x2 + x1(x2 = x1.
Metoda de minimizare:
se realizează grupări de compartimente (subcuburi) care sunt puteri
ale lui 2. Un compartiment poate fi membru al mai multor suprafeţe. O
suprafaţă cu 2m celule vecine va elimina 2m variabile de intrare.
se scriu ecuaţiile corespunzătoare fiecărei suprafeţe,
obţinându-se astfel termenii elementari.
se realizează forma disjunctivă minimă (FDM) prin însumarea
termenilor elementari obţinuţi prin gruparea constituenţilor lui 1
sau forma conjunctivă minimă (FCM) prin înmulţirea termenilor
elementari obţinuţi prin gruparea de constituenţi ai lui 0;
funcţiile minimale obţinute sunt identice, ele diferind numai prin
forma de prezentare.
Pentru a se obţine forma minimală a unei funcţii booleene este util
să se minimizeze ambele forme canonice, FCC şi FCD. Apoi, în funcţie
de disponibilitatea componentelor şi de numărul de conexiuni care
rezultă, se poate alege forma minimală a funcţiei booleene care va fi
implementată.
Exemplu:
f(x1,x2,x3,x4) = ( (3, 7, 8, 9, 12, 13, 15)
x3
Pentru FDM a funcţiei se obţin două variante, după cum se aleg
suprafeţele pentru minimizare:
fFDM1 = x1(x3 + x1(x3(x4 + x1(x2(x4 sau
fFDM2 = x1(x3 + x1(x3(x4 + x2(x3(x4
Implementarea cu porţi de tip SI-NU arată astfel:
fFDM1 = x1(x3 + x1(x3(x4 + x1(x2(x4 = = x1(x3 ( x1(x3(x4 ( x1(x2(x4
Minimizarea funcţiei negate va fi:
fFDM = x1(x3 + x3(x4 + x1(x2(x3
La fel se procedează şi la minimizarea funcţiei prin folosirea
constituenţilor de 0:
x3
Forma minimizată conjunctivă a funcţiei FCM este:
fFCM = (x1+x3)((x3+x4)((x1+x2+x3)
Diagrame Karnaugh pentru funcţii incomplet definite
Funcţiile incomplet definite sunt cele care în anumite puncte ale
domeniului de definiţie pot lua valoarea 0 sau valoarea 1. Avem două
posibilităţi:
combinaţii de intrare pentru care funcţia are valori indiferente
(nedefinite);
combinaţii ale variabilelor care nu pot să apară din punct de vedere
fizic; în aceste situaţii trebuie studiat dacă combinaţiile sunt
susceptibile să se producă în urma unei manevre false sau în urma
unui defect de funcţionare; pentru a evita funcţionarea greşită, în
locaţiile corespunzătoare se impun valori pentru funcţie, astfel
încât să nu se perturbe funcţionarea normală.
Valorile nespecificate precum şi locaţiile corespunzătoare din
diagrama Karnaugh se numesc “indiferente†sau “arbitrare†sau
“redundanteâ€Â. Ele se notează cu “x†şi vor fi considerate în
timpul minimizării ca având valoarea 1 sau 0, în funcţie de
situaţie, pentru a se obţine o minimizare cât mai bună.
x3
Ca să minimizăm funcţia în FDM considerăm că x au valoarea 1 şi
grupăm aceşti x numai cu valorile de 1, nu şi între ei (o grupare
între ei nu are nici o semnificaţie).
Se obţine: fFDM = x1(x2 + x2(x3 + x1(x4 + x2(x4
Obs. În cazul funcţiilor incomplet definite, funcţia complementară
simplificată prin grupări de 0 nu coincide întotdeauna cu
complementul funcţiei.
Diagrame Karnaugh cu expresii
Superpoziţia funcţiilor booleene
Fie o funcţie booleană f(X) cu X = (x1,x2,…, xi, xi+1,…,xn). Dacă
considerăm X1 = (x1,x2,…, xi) şi X2 = (xi+1,…,xn) şi dacă
funcţia f(X) poate fi scrisă ca o funcţie f(X) = f3[f1(X1), f2(X2)]
atunci spunem că f(X) a fost obţinută prin superpoziţia funcţiilor
f1(X1) ÅŸi f2(X2).
Dacă X1(X2 = ( atunci avem o superpoziţie disjunctă, iar dacă X1(X2
( ( avem o superpoziţie nedisjunctă.
x1
f
xn
După superpoziţie avem:
x1
f1
xi
f3 f
xi+1
f2
xn
Decompoziţia funcţiilor booleene
Dacă se dă o funcţie booleană şi un set de funcţii se cere să se
realizeze o “spargere†a funcţiei booleene. S-a reuşit
decompoziţia funcţiei 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] decompoziţia este
simplă.
m-1
Decompoziţia este nedisjunctă dacă: (Xi = (
i=j
m-1
Decompoziţia este disjunctă dacă: (Xi ( (
i=j
Exemplu:
f(x1,x2,x3,x4) = ((0, 2, 3, 7, 9, 10, 11, 14)
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]
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 corespunzătoare este:
x3
În general o diagramă Karnaugh cu “n†expresii (sau variabile)
are 2n locaţii. Prin înglobarea în diagramă a “m†expresii
(variabile) dimensiunea diagramei se reduce, numărul de locaţii
devenind 2n-m.
Pentru a minimiza o funcţie prin diagrame Karnaugh cu expresii se fac
următorii paşi:
se consideră toate variabilele din diagramă ca şi cum ar fi 0 şi se
formează suprafeţe (subcuburi) cu constituenţii lui 1;
se consideră toate locaţiile cu 1 indiferente şi se formează
suprafeţe (subcuburi) cu variabilele înglobate;
se consideră intersecţia variabilelor înglobate cu grupările
obţinute în pasul 2;
se face reuniunea termenilor din paÅŸii 1 ÅŸi 3;
pentru mai mult de o variabilă înglobată se tratează pe rând
conform paşilor 1 - 4 numai câte o variabilă, celelalte fiind
considerate 0, iar apoi se scrie reuniunea tuturor termenilor
obţinuţi.
Exemplu:
Să se minimizeze funcţia cu variabile înglobate:
x1 x2x3 00 01 11 10
0
a+b 1 c
1 1
1 x
Pasul 1.
Se obţine x2(x3 + x1(x3
Pasul 2 ÅŸi 3.
Se obţine c(x2 + (a+b)(x1(x3
Pasul 4. f = x2(x3 + x1(x3 + c(x2 + (a+b)(x1(x3
Curs 3
1.4.3.2. Minimizarea algebrică
Minimizarea algebrică a funcţiilor booleene se face cu ajutorul
teoremelor algebrei booleene.
În cazul în care numărul de variabile este mai mare decât 6 se
utilizează metoda de minimizare Quine-Mc Cluskey. Această metodă are
avantajul că algoritmul este uşor de implementat pe calculator. Pentru
prezentarea metodei vom lua ca exemplu funcţia:
f = ( (0, 2, 3, 5, 7, 8, 10, 11, 13, 15)
Etapele de minimizare sunt:
Se grupează termenii canonici astfel încât termenii din fiecare
grupă să conţină acelaşi număr 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
Se compară fiecare termen dintr-o grupă cu toţi cei din grupa
următoare, aplicând relaţia de reducere: x1(x2 + x1(x2 = x1. Se
grupează termenii care diferă printr-o singură variabilă (o singură
poziţie binară). Termenul obţinut prin combinare va conţine pe
poziţia respectivă semnul -.
Comparare Rezultatul comparării
între x1 x2 x3 x4
0, 2 0 0 - 0
0, 8 - 0 0 0
2, 3 0 0 1 -
2, 10 - 0 1 0
8, 10 1 0 - 0
3, 7 0 - 1 1
3, 11 - 0 1 1
5, 7 0 1 - 1
5, 13 - 1 0 1
10, 11 1 0 1 -
7, 15 - 1 1 1
11, 15 1 - 1 1
13, 15 1 1 - 1
În continuare se repetă procedeul de comparare până când nu mai
este posibilă nici o reducere.
Comparare Rezultatul comparării
î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 rezultanţi, (0, 2, 8, 10), (2, 3, 10, 11), (3, 7, 11, 15)
şi (5, 7, 13, 15) se numesc implicanţi primi IP.
Se aleg acei implicanţi primi IP care asigură acoperirea minimală a
termenilor canonici TC. Pentru aceasta se construieÅŸte un tabel de
acoperire, în care pe coloane se notează termenii canonici TC, iar pe
linii implicanţii primi IP. În intersecţii se notează acei termeni
canonici TC acoperiţi de fiecare implicant prim IP.
Unii dintre implicanţii primi sunt implicanţi primi esenţiali pentru
că acoperă cel puţin un termen canonic al funcţiei, care nu este
acoperit de alt implicant prim. Implicanţii primi esenţiali vor face
parte în mod obligatoriu din expresia minimizată a funcţiei. În
cazul nostru implicanţi primi esenţiali sunt (0, 2, 8, 10) şi (5, 7,
13, 15). Pentru termenii canonici care au rămas neacoperiţi, 3 şi 11,
se observă că pot fi aleşi 2 implicanţi primi, (2, 3, 10, 11) şi
(3, 7, 11, 15), deci există 2 soluţii de minimizare.
f = (0, 2, 8, 10) + (5, 7, 13, 15) + (2, 3, 10, 11) = x2x4 + x2x4 + x2x3
ÅŸi
f = (0, 2, 8, 10) + (5, 7, 13, 15) + (3, 7, 11, 15) = x2x4 + x2x4 + x3x4
1.4.4. Minimizarea sistemelor de funcţii booleene
Sistemele de funcţii booleene sunt exprimate prin f: Bn ( Bm unde B
=(0, 1(. Argumentele pot fi de n variabile şi sunt mai multe funcţii
de acest tip: f1, f2,…, fm.
Pentru a minimiza sistemele de funcţii se caută implicanţi primi
pentru f1, f2,…, fm şi pentru produsele f1(f2, f1(f3…, f1(fm, …
f1(f2(f3,…, f1(f2(f3(f4,…, … f1(f2(…(fm. Soluţia aleasă pentru
implementarea sistemului de funcţii booleene va fi cea care va fi cea
mai avantajoasă din punct de vedere al circuitelor disponibile şi al
preţului.
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. Calculăm funcţiile 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. Determinăm implicanţii primi din funcţiile simple şi din
produsele determinate la punctul 1. Pentru determinarea implicanţilor
primi se folosesc diagrame Karnaugh în care se iau toate acoperirile
posibile.
Pentru f1:
1
1 1 1
Pentru f2:
1 1 1
1
Pentru f3:
1
1 1 1
Pentru f1(f2:
1
1
1
Pentru f1(f3:
1
1 1 1
Pentru f2(f3 ÅŸi f1(f2(f3:
1
1
1
3. Construim un tabel în care capetele de linii vor reprezenta
funcţiile, iar coloanele vor fi implicanţii primi.
f1 1,5
6,7
5,7 x2x3
x1x2
x1x3 -
-
f2 1,5
4,5
4,6 x2x3
x1x2
x1x3 -
i
f3 0,2
2,6
6,7
5,7 x1x3
x2x3
x1x2
x1x3 g
f
-
f1(f2 1,5
6 x2x3
x1x2x3 e
-
f1(f3 5,7
6,7 x1x3
x1x2 d
f2(f3 = f1(f2(f3 5
6 x1x2x3
x1x2x3 b
a
4. Se notează IP pe coloana a patra din tabel începând cu ultimul,
iar cei care apar dublaţi nu se mai notează.
5. Se construieşte un tabel al acoperirilor funcţiilor f1, f2, f3.
Notaţii Indicii Funcţia de unde au rezultat f1 f2 f3
1 5 6 7 1 4 5 6 0 2 5 6 7
a 6 f1(f2(f3
x
x
x
b 5 f1(f2(f3
x
x
x
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. Determinăm acoperirile optime ale funcţiilor f1, f2, f3.
A(f1) = e,c + e,d,a = A1 + A2 cu e implicant prim esenţial
A(f2) = e,h + e,i,a = B1 + B2 cu e implicant prim esenţial
A(f3) = g,c,b + g,c,d, + g,f,d + g,a,d = C1 + C2 + C3 + C4 cu g
implicant prim esenţial
7. Se scriu toate acoperirile posibile pentru sistemul de funcţii şi
se alege acea acoperire care realizează condiţiile de preţ minim şi
disponibilitate de piese. Se face tabelul pentru acoperiri:
unei acoperiri se face suma costurilor implicanţilor 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 legătură.
n-1
C = ( gr ((n-r)
r=0
unde gr este numărul subcuburilor din care lipsesc r variabile.
Pentru acoperirea A1B1C2, care are elementele e,c,h,g,d, avem costul:
2
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 funcţii va fi:
f1 = x2x3 + x1x2
f2 = x2x3 + x1x3
f3 = x1x3 + x1x3 + x1x2 = x1x2 + x1 + x3
Datorită reducerii corelate a sistemului de funcţii apar porţi comune
mai multor funcţii.
Curs 4
CAPITOLUL II
CIRCUITE LOGICE COMBINAÅ¢IONALE
2.1. Definiţii
Circuitele logice combinaţionale, CLC, sunt un caz particular al
sistemelor secvenţiale finite sau al automatelor finite, numite
automate de grad 0.
Circuitele logice combinaţionale se caracterizează prin faptul că
variabilele de ieşire sunt independente de timp şi de starea internă,
fiind determinate numai de variabilele de intrare (starea variabilelor
de intrare la momentul considerat).
Legătura dintre starea ieşirii şi starea intrării unui CLC este
realizată de funcţia de transfer.
x1 y1
x2 y2
CLC
xn ym
Oricare funcţie de ieşire y (y1, y2,…, ym) este funcţie 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)
Funcţiile se vor exprima în forma canonică disjunctivă FCD sau în
forma canonică conjunctivă FCC.
Independenţa faţă de timp presupune că o dată cu modificarea
variabilelor de intrare se modifică simultan şi variabilele de
ieşire. Din punct de vedere practic, datorită întârzierilor produse
de circuitele logice şi de conexiuni, modificarea simultană nu este
posibilă. Ca urmare, pe durata procesului tranzitoriu de stabilire a
variabilelor de ieÅŸire, vectorul ieÅŸirilor poate lua valori
intermediare diferite de valoarea finală, ceea ce conduce la fenomenul
de hazard combinaţional, de care trebuie să se ţină cont la
proiectarea unui sistem numeric.
În general, la circuitele logice combinaţionale, vom face abstracţie
de proprietăţile fizice ale porţilor logice, de faptul că un impuls
teoretic diferă de unul real. Vom analiza aceste fenomene doar în
cazul hazardului combinaţional.
2.2. Analiza circuitelor logice combinaţionale
În cadrul analizei CLC se pleacă de la cunoaşterea schemei logice a
circuitului şi se urmăreşte stabilirea funcţionării acestuia.
Stabilirea expresiei variabilei de ieÅŸire se face de la intrare la
ieşire, urmărind transformările variabilelor de intrare.
Definim ca număr de nivele al unui CLC numărul maxim de porţi dintre
intrări şi ieşiri. Numerotarea nivelelor se face de la ieşire
înspre intrare.
x5
x1
x2
y1
x3
x4 y2
x6 x7
4 3 2 1
Circuitul logic combinaţional din exemplu are 4 nivele.
Există şi următoarea situaţie de legături între porţi:
x1 y
x2
x3
Acest circuit are şi legături inverse. Ultimele porţi nu pot fi
numerotate, deci circuitul nu este un CLC.
În CLC sunt admise legăturile inverse (ieşirea unei porţi dintr-un
nivel inferior să fie dusă la intrarea unei porţi dintr-un nivel
superior) cu condiţia ca definiţia CLC să fie respectată.
Algoritm de determinare a legăturilor inverse în CLC
a. Se numerotează toate porţile logice care au ca intrări un subset
din mulţimea variabilelor de intrare ale circuitului logic (de la 1 la
k);
b. Se numerotează de la k+1 porţile care au ca intrări fie intrări
ale circuitului, fie ieşiri ale porţilor numerotate la punctul a.
Dacă am reuşit să numerotăm toate porţile circuitului logic, acesta
este fără legături inverse şi este circuit combinaţional. Dacă nu
am reuşit numerotarea tuturor porţilor logice, circuitul este de tip
secvenţial.
2.3. Sinteza circuitelor logice combinaţionale
În cadrul sintezei circuitelor logice combinaţionale se cunoaşte
funcţia pe care trebuie să o îndeplinească circuitul şi se caută
să se găsească structura acestuia.
Etapele sintezei circuitelor logice combinaţionale sunt:
Enunţul problemei;
Alcătuirea tabelului de adevăr, definirea funcţiei sau funcţiilor;
Minimizarea funcţiei sau funcţiilor;
Desenarea schemei circuitului
Există mai multe metode de implementare a CLC, diferenţiate 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
până la 50 de tranzistoare integrate pe capsulă. Dintre aceste
circuite fac parte porţile 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 funcţiei
sau funcţiilor logice cu ajutorul circuitelor integrate existente. CLC
de tip SSI se folosesc mai mult pentru adaptarea la aplicaţie a
circuitelor de tip MSI ÅŸi LSI standardizate, care nu satisfac cu
exactitate cerinţele 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
până la 500 de tranzistoare integrate. Ele oferă structuri mai
complexe, disponibile ca ÅŸi structuri standard.
Forma funcţiilor logice pe care dorim să le implementăm cu circuite
de tip MSI trebuie să fie corelată cu circuitele disponibile. De
obicei nu mai este necesară minimizarea funcţiilor.
Circuite combinaţionale uzuale (specializate)
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
ieşire se obţine alt cod. Convertoarele de cod fac compatibilă
funcţionarea a 2 sisteme în care informaţia 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
e construiesc diagrame Karnaugh pentru determinarea funcţiilor
minimizate pentru b3, b2, b1, b0.
Diagrama Karnaugh pentru b3:
11 1 1 1 1
10 1 1 1 1
Obţinem: b3 = g3
Diagrama Karnaugh pentru b2:
Obţinem b2 = g2g3 + g2g3 = g2 + g3
Diagrama Karnaugh pentru b1:
Obţinem b1 = g1g2g3 + g1g2g3 + g1g2g3 + g1g2g3 = g1(g2 + g3) + g1(g2 +
g3) = g1 + g2 + g3
Diagrama Karnaugh pentru b0:
Obţinem b0 = g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 + g0g1g2g3 +
g0g1g2g3 + g0g1g2g3 + g0g1g2g3 = g2g3(g0 + g1) + … = g0 + g1 + g2 + g3
ÃŽn general:
bn = gn
i
bi = 1 dacă + ( gj = 1
j=n-1
0 dacă nu
2) Conversia din BCD în Gray:
gn = bn
gi = bi + bi+1
Codificatoare
Codificatoarele sunt CLC la care activarea unei intrări conduce la
apariţia unui cuvânt de cod la ieşire.
Exemplu: Codificator din zecimal în BCD (binar codificat zecimal)
Intrările sunt active pe 0 logic. De exemplu, dacă este activă
(adică 0) intrarea 5, pe ieşire se va obţine codul în BCD pentru 5,
adică 0101.
Funcţiile pentru ieşiri 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 intrări
active simultan şi la ieşire se obţine cuvântul de cod care
corespunde intrării care este cea mai prioritară. Prioritatea creşte
de la cifra 0 înspre cifra 9.
Decodificatoare
Decodificatoarele sunt CLC la care se activează doar una dintre
ieşiri, pentru combinaţia (codul) corespunzătoare a variabilelor de
intrare. Ele au funcţie inversă codificatoarelor. Ieşirile
decodificatoarelor sunt active pe 0 logic (funcţionează în logică
negativă).
I1 y1
Circuite SI-NU
In ym
Numărul ieşirilor distincte este m ( 2n.
Exemplu: Decodificator pentru 3 cifre binare.
Funcţiile pentru ieşiri sunt: O7 = I2I1I0; O6 = I2I1I0; O5 = I2I1I0;
O4 = I2I1I0; O3 = I2I1I0; O2 = I2I1I0; O1 = I2I1I0; O0 = I2I1I0.
Multiplexoare
Multiplexoarele sunt CLC care permit trecerea datelor de pe una din
intrări la o ieşire unică. Selecţia intrării se face printr-un
cuvânt de cod de selecţie numit şi adresă.
I0
MUX y
In-1
sm-1 s0
Cu m linii de selecţie se pot selecta 2m intrări. Funcţia realizată
de ieÅŸire este:
y = Ik unde k este numărul de combinaţii
k = sm-1 ( 2m-1 + … + s0 ( 20
Aplicaţiile cele mai importante ale MUX sunt la selecţia secvenţială
a datelor, conversia paralel-serie a datelor, sisteme de transmisie a
datelor pe un singur canal, implementarea circuitelor logice
combinaţionale cu o singură ieşire.
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 selecţie s şi o ieşire y. În funcţie de semnalul de selecţie
avem pentru ieÅŸire: y = I0 ( s + I1 ( s.
s = 0 ( y = I0
s = 1 ( y = I1
Deci multiplexorul lasă să treacă spre ieşire semnalul de pe acea
linie de intrare corespunzătoare lui s.
2) I0
I1 MUX
I2 4 : 1 y
I3
s0 s1
Multiplexorul de tip 4:1 are 4 semnale de intrare, 2 semnale de
selecţie şi un semnal de ieşire. Ieşirea 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 atât ieşirea adevărată cât şi cea
negată. Ele au şi o intrare de “Enable†pentru validare, care
permite o funcţie SI suplimentară.
Demultiplexoare
Demultiplexoarele sunt CLC care permit transmiterea datelor de pe o
intrare de date comună pe una din ieşirile selectate. Selectarea
ieşirii se face cu ajutorul unui cuvânt de cod de selecţie numit şi
adresă.
y0
I DEMUX
yn-1
sm-1 s0
Cu m linii de selecţie se pot selecta 2m ieşiri. Funcţiile de ieşire
sunt:
y0 = sm-1 ( … ( s0 ( I
y1 = sm-1 ( … ( s0 ( I
y2m = sm-1 ( … ( s0 ( I
Comparatoare numerice
Comparatoarele numerice sunt CLC care permit determinarea valorii
relative a două numere binare. Comparatoarele pot fi de 1 bit sau de
mai mulţi biţi.
Exemplu: Comparator pe 1 bit
Ai y1
y2
Bi y3
Funcţiile de ieşire sunt:
y1 = Ai ( Bi pentru Ai < Bi,
y2 = Ai + Bi pentru Ai = Bi
y3 = Ai ( Bi pentru Ai > Bi
Acest circuit constituie celula de bază pentru compararea numerelor cu
mai mulţi biţi.
Detectoare-generatoare de paritate
Detectoarele-generatoare de paritate sunt CLC cu rol de a determina ÅŸi
genera paritatea sau imparitatea numărului de variabile de intrare
egale cu 1. Bitul de paritate este utilizat ca metodă de verificare a
transferului de date. Sunt posibile 2 situaţii:
numărul biţilor de 1 + bitul de paritate = număr par
numărul biţilor de 1 + bitul de paritate = număr impar
Realizarea detectoarelor de paritate se bazează pe funcţia logică
SAU-EXCLUSIV (0 pentru par ÅŸi 1 pentru impar).
Sumatoare-scăzătoare
Sumatoarele şi scăzătoarele sunt CLC care realizează adunarea,
respectiv scăderea cifrelor binare.
Semisumatorul este un CLC care efectuează suma a 2 numere binare de
câte 1 bit, fără a ţine cont de transportul de la bitul de
semnificaţie 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 mulţi biţi se realizează
prin interconectarea sumatoarelor pentru 1 bit. Adunarea se efectuează
în paralel, iar propagarea transportului în serie.
Semiscăzătorul de 1 bit are ieşirile:
D0 = A0 ( B0 + A0 ( B0 = A0 + B0
I0 = A0 ( B0
Scăzătorul complet de rangul n are ieşirile:
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
Scăzătoarele pentru cuvinte binare cu mai mulţi biţi se realizează
prin interconectarea scăzătoarelor pentru 1 bit.
Unităţi aritmetico-logice
Unităţile aritmetico-logice sunt CLC care realizează operaţii de tip
aritmetic şi operaţii de tip logic.
Curs 5
2.3.2.1. Implementarea funcţiilor 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 toţi termenii canonici.
Implementarea cu DCD a unei funcţii booleene nu necesită operaţii de
minimizare. La ieşirea DCD se obţin toţi termenii canonici negaţi ai
formei canonice disjunctive FCD ai funcţiei. Realizarea funcţiei se
face cu o poartă logică de tip SI-NU, cu un număr de intrări egal cu
numărul de termeni ai funcţiei.
Implementarea cu MUX a unei funcţii booleene se bazează pe relaţia
care defineşte funcţionarea sa. De exemplu, pentru un MUX de tip 4:1
avem ecuaţia ieşirii:
y = I0 ( x1 ( x2 + I1 ( x1 ( x2 + I2 ( x1 ( x2 + I3 ( x1 ( x2
în care se observă că există intrări separate pentru fiecare din
cele 4 combinaţii ale variabilelor de selecţie x1, x2.
Dacă avem o funcţie booleană de n variabile de intrare se pot da
factor variabilele x1 şi x2 şi se obţin 4 funcţii de n-2 variabile
de intrare, care se vor conecta la intrările 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 funcţie de 4 variabile se pot elimina 3 variabile prin
aplicarea lor pe intrările de selecţie ale unui MUX 8:1. La cele 8
intrări ale MUX se vor conecta cele 8 funcţii de o variabilă.
Singurele funcţii posibile de o variabilă sunt: xi, xi, 0, 1. Deci
putem implementa orice funcţie cu 4 variabile de intrare folosind un
singur MUX de 8 căi şi fără porţi adiţionale.
Exemplu
Considerăm funcţia: f = (0, 1, 3, 5, 9, 10, 13, 15) = x3x2x1x0 +
x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 +
x3x2x1x0
Folosim un MUX 8:1 şi aplicăm variabilele x2x1x0 pe intrările de
selecţie. Pentru a determina intrările multiplexorului, I0 – I7, vom
face un tabel:
I0 x3 x2x1x0
I1 1 (x3 + x3) ( x2x1x0
I2 x3 x2x1x0
I3 x3 x2x1x0
I4 0 x2x1x0
I5 1 (x3 + x3) ( x2x1x0
I6 0 x2x1x0
I7 x3 x2x1x0
Implementarea funcţiei cu MUX este:
En
x3
1
x3
x3 f
0 f
1
0
x3 s2 s1 s0
x2 x1 x0
Avantajele implementării cu MUX:
se poate implementa funcţia cu un sigur circuit de tip MUX;
intrarea de Enable poate fi folosită ca un SI final cu întreaga
funcţie;
doar o singură variabilă trebuie să fie disponibilă şi adevărată
şi negată.
Dezavantajele implementării cu MUX:
nu se pot folosi termeni în comun în cazul minimizării sistemelor de
funcţii (sisteme cu mai multe ieşiri);
nu se poate face implementarea funcţiilor la care numărul de termeni
este mai mare decât numărul intrărilor MUX;
există multe funcţii care pot fi implementate comod prin utilizarea de
porţi logice ( MUX utilizat doar pentru funcţii dificile.
Procedura de implementare cu MUX se poate face plecând de la diagrama
Karnaugh. Se construieşte o diagramă Karnaugh în care se defineşte
domeniul intrărilor I.
x3x2 x1x0 00 01 11 10
00 I0 I1 I3 I2
01 I4 I5 I7 I6
11 I4 I5 I7 I6
10 I0 I1 I3 I2
x3x2 x1x0 00 01 11 10
00 1 1 1
01
1
11
1 1
10
1
1
Variabila care variază este x3. Configuraţiile de 1 din diagrama
Karnaugh indică modul de conectare a intrărilor 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ă, conţinutul ei nu se modifică în timpul
funcţionării. Structura ei este stabilită în procesul de fabricaţie
sau este stabilită de utilizator prin programare.
I0 O0
DCD Matrice
In-1 Om-1
Memoria ROM este formată din două niveluri de porţi logice: SI (un
decodificator) ÅŸi SAU-NU (matricea de memorie). DCD din primul nivel
primeşte codurile de intrare în binar (n este numărul intrărilor)
şi activează pentru fiecare cod o ieşire din cele 2n. Ieşirile 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 fiecărui cuvânt de memorie. Ieşirile
sunt de obicei “three-state†sau “open colector†pentru a
permite legarea în paralel cu ieşirile altor memorii.
Avem notaţiile:
n = numărul de biţi ai vectorului de intrare (adresa)
c = numărul de cuvinte memorate în ROM ( c = 2n
b = numărul de biţi din fiecare cuvânt
Numărul de cuvinte trebuie să fie putere a lui 2. Modul de organizare
a ROM este specificat prin produsul c x b. Capacitatea memoriei se
exprimă prin numărul total de biţi memoraţi: C = 2n x b. Unitatea de
măsură pentru capacitatea memoriei este kilobitul (1 Kb = 1024 biţi).
Memoriile au o intrare de “Enable†care permite (E = 0) sau inhibă
(E = 1) funcţionarea ROM. Dacă memoria este dezactivată, indiferent
de adresare, ieÅŸirile sunt pe semnal logic 1.
Aplicaţiile mai importante ale memoriilor de tip ROM sunt:
memorarea instrucţiunilor şi datelor în sisteme de calcul şi
automate secvenţiale;
transformări de adresă şi înmagazinarea instrucţiunilor în
microprogramare;
conversii de cod;
generatoare de caractere;
generare de secvenţe de impulsuri;
implementarea CLC cu un număr mare de variabile de intrare şi ieşire.
Implementarea CLC cu un număr mare de variabile de intrare şi ieşire
se bazează pe structura internă a memoriei ROM. Pe nivelul de DCD se
decodifică toţi termenii canonici. Fiecare cuvânt de la intrarea
matricei reprezintă de fapt un termen canonic format din variabilele de
intrare. La nivelul următor se adună toţi termenii din expresia
oricărei funcţii şi rezultă funcţia de ieşire. Lista de cuvinte
din ROM este chiar tabelul de adevăr al CLC. La implementarea cu ROM nu
este necesară minimizarea, deoarece sunt memoraţi toţi termenii
canonici şi sunt incluse toate posibilităţile de apariţie a acestora
în funcţia de ieşire.
Pentru folosirea eficientă a memoriei ROM în sinteza funcţiilor
booleene, variabilele de intrare ÅŸi ieÅŸire trebuie codate, astfel
încât să conţină cât mai multă informaţie. 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 numărului de intrări în ROM se utilizează des şi
multiplexoarele.
Exemplu: Să se implementeze cu ROM funcţiile:
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
x2 A2 16 x 4 biţi
x1 A1
x0 A0 CS
D3D2D1D0
f2 f1 f0
Cu A s-au notat intrările de adrese, cu D datele şi cu CS (chip
select), intrarea de Enable a circuitului.
Conţinutul înscris în memorie este dat în tabelul următor:
1 0 1 0 0 1 0 1
1 0 1 1 0 0 0 0
1 1 0 0 0 0 1 0
1 1 0 1 0 1 1 0
1 1 1 0 0 1 0 0
1 1 1 1 0 1 0 0
Scopurile urmărite la implementarea cu ROM sunt:
utilizarea unui număr minim de circuite integrate;
folosirea integrală a capacităţii memoriei.
Pentru implementarea CLC cu memorii ROM trebuie urmărite următoarele
etape:
stabilirea dimensiunii memoriei necesare pentru aplicaţia respectivă;
alegerea tipur