Documente Academic
Documente Profesional
Documente Cultură
Partea 1
f : S n S1
, (1.1)
unde:
1
Alt operator logic important este operatorul XOR (sumă modulo 2, sau exclusiv): .
Simbolul grafic al operatorului (porţii) XOR este prezentat în Tabelul 1.1.Operatorul XOR se
poate exprima cu ajutorul operatorilor logici fundamentali:
x y x y x y (1.2)
Tabelul 1.1. Reprezentarea grafică a porţilor logice cu una sau două intrări
Nume funcție Simbol Reprezentare prin contacte
NOT
(NU) Contact normal - închis
AND
Circuit serie cu contacte de tip normal-
(ȘI)
deschis
NAND
(ȘI NEGAT) Circuit paralel cu contacte de tip
normal închis
OR
(SAU) Circuit paralel cu contacte de tip
normal-deschis
NOR
(SAU NEGAT) Circuit serie cu contacte de tip normal -
închis
XOR
( SAU EXCLUSIV) Contact dublu
2
Tabelul 1.2. Expresiile operaţiilor logice pentru porţile logice elementare
NOT yx
AND y x1 x2
OR y x1 x2
NAND y x1 x 2
NOR y x1 x 2
XOR y x1 x2
XNOR y x1 x 2
Funcţiile logice (în particular şi porţile logice elementare) pot fi descrise atât prin
expresii analitice, precum cele din tabelul 1.2, cât şi prin tabele (numite, în cazul funcţiilor
logice, tabele de adevăr).
3
x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1
a) b)
Fig. 1.2. Poarta logică AND: a) simbol electric, b) tabel de adevăr;
x1, x2 – intrări, y - ieşire
Poarta logică OR
Poarta logică OR (SAU) are expresia matematică y x1 x2 , iar simbolul şi tabelul
de adevăr sunt prezentate în Fig. 1.4. Din interpretarea tabelului de adevăr, se observă că
poarta logică OR are valoarea logică 1 la ieșire dacă cel puţin una dintre intrări are valoarea
logică 1. Există porți logice AND standardizate cu 2, 3 sau 4 intrări. Expresia matematică se
citește „y este egal cu x1saux2 ”, sau, pur şi simplu, „x1 plusx2”.
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 1
a) b)
Fig. 1.4. Poarta logică OR: a) simbol electric, b) tabel de adevăr
x1, x2 – intrări, y - ieşire
4
Poarta logică NOR
Poarta logică OR, combinată cu poarta NOT formează poarta NOR. Poarta logică
NOR(SAU NEGAT) are expresia matematică y x1 x 2 , iar simbolul şi tabelul de adevăr
sunt prezentate în Fig. 1.5. Din interpretarea tabelului de adevăr, se observă că poarta logică
NOR are valoarea logică 1 la ieșire dacă ambele intrări are valoarea logică 0. Expresia
matematică se citește „y este egal cu x1 sau x2, totul negat”, sau, pur şi simplu, „x1 plusx2,
totul negat”.
x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 0
a) b)
Fig. 1.5. Poarta logică NOR: a) simbol electric, b) tabel de adevăr
x1, x2 – intrări, y - ieşire
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 0
a) b)
Fig. 1.6. Poarta logică XOR: a) simbol electric, b) tabel de adevăr
x1, x2 – intrări, y - ieşire
Din interpretarea tabelului de adevăr, se observă că poarta logică XOR are valoarea
logică 1 la ieșire dacă cele două intrări au valori logice diferite, manifestându-se ca un
detector de necoincidenţă. Expresia matematică se citește „y este egal cu x1 sau exclusiv x2 ”.
5
x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 1
a) b)
Fig. 1.6. Poarta logică XNOR: a) simbol electric, b) tabel de adevăr
x1, x2 – intrări, y - ieşire
Aduceți-vă aminte modul de lucru cu modulul de interfața pentru placa de teste. Vor
fi folosite comenzile „dw” și „dr” din Matlab în funcție de context.
Pașii sunt următorii:
s = serial('COM3');
set(s,'BaudRate',115200);
fopen(s);
pause(3);
cmd='rv';
fprintf(s,cmd);
out = fgets(s)
În anexa 1 este prezentată codul Matlab pentru o funcție care generează automat toate
combinațiile variabilelor de intrare și verifică dacă ieșirea circuitului este cea dorită (există pe
Moodle - verificare1.m).
[Eroare, pozitie]=verificare1(s,NvarIn,y)
s reprezintă portul serial la care este conectat modulul de interfațare (inițial portul
trebuie deschis).
NvarIn reprezintă numărul variabilelor de intrare NvarIn ≤16.
y reprezintă un vector cu valorile ieșirilor față de care se dorește verificarea.
Valorile returnate sunt descrise de asemenea în anexa 1
Exemplu de utilizare:
Er =
p =
1 2 6 7 12 13 15
7
Experimentul 1. Studiul porţii logice AND cu 3 intrări.
Modul de lucru:
1. Se calculează tabelul de adevăr al funcției (Tabelul 1)
8
Notă: Pentru generarea de o manieră automată și a tabelului de adevăr pe baza unei
funcții logice puteți utiliza programul din anexa 2. Spre exemplu, pentru funcția =
( , , )= ∙ + , va genera rezultatul de mai jos. y-ul respectiv poate fi
folosit mai departe în funcția verificare1.
>> gen_y
Nr. | x2 x1 x0 | y
====================
0 | 0 0 0 | 0
-----+----------+---
1 | 0 0 1 | 1
-----+----------+---
2 | 0 1 0 | 0
-----+----------+---
3 | 0 1 1 | 0
-----+----------+---
4 | 1 0 0 | 1
-----+----------+---
5 | 1 0 1 | 1
-----+----------+---
6 | 1 1 0 | 1
-----+----------+---
7 | 1 1 1 | 1
-----+----------+---
>> y'
ans =
0 1 0 0 1 1 1 1
TEMĂ DE CASĂ
1.1.1. Să se implementeze funcţia logică (1.3) utilizând porţi elementare standardizate. Să se
precizeze indicatorul comercial şi pinii pentru fiecare poartă.
f ( x2 , x1 , x0 ) x2 ( x0 x1 ) (1.3)
1.1.2. Pornind de la relaţia (1.2), să se implementeze operatorul XOR cu NAND – uri cu două
intrări, de tip 7400. Sa se marcheze pinii folosiţi pentru fiecare poartă.
1.1.3. Să se implementeze cu porţi logice comerciale funcţia logică (1.4), marcând circuitele
şi pinii folosiţi.
f ( x3 , x2 , x1 , x0 ) x3 x2 x1 x0 (1.4)
1.1.4. Să se implementeze un circuit de conversie din cod binar natural în cod Gray (ciclic)
utilizând porţi logice de tip XOR.
9
Partea a 2-a
k 1
y : f ( x0 , x1 ,..., xn 1 ) pi (2.1)
i 0
unde pi sunt produse de variabile normale sau negate ale spaţiului logic Sn. În cadrul unui
produs logic, numele variabilelor nu se repetă.
Dacă toţi termenii pi sunt mintermeni (adică fiecare produs conţine toate variabilele,
normale sau negate), atunci reprezentarea (2.1) se numeşte formă canonică disjunctivă
(FCD). Pentru un spaţiu Sn , avem 2n mintermeni posibili. Mintermenii se pot scrie din
cuvintele de cod corespunzătoare de n biţi, atribuind variabila normală pentru simbolul 1 şi
variabila negată pentru simbolul 0.
Se spune că o funcţie logică este în formă conjunctivă dacă expresia ei analitică este
un produs de sume logice (2.2):
m 1
y : f ( x0 , x1 ,..., xn1 ) si (2.2)
i 0
10
Folosind proprietăţile algebrei logice, sau direct, din tabelul de adevăr, orice funcţie
poate fi adusă la forma canonică disjunctivă sau la forma canonică conjunctivă. Pentru o
funcţie logică dată FCD şi FCC sunt unice. Astfel, din tabelul de adevăr se poate scrie direct
FCD, prin relaţia (2.3), iar FCC, prin relaţia (2.4):
2 n 1
y ai mi , (2.3)
i 0
2 n 1
y (bi M i ) (2.4)
i 0
unde ai este valoarea funcţiei f din tabelul de adevăr corespunzătoare mintermenului mi,
respectiv, bi este valoarea funcţiei f din tabelul de adevăr corespunzătoare maxtermenului Mi.
12
Modul de lucru. Montaje şi rezultate experimentale
Experimentul 2.2.1.
Se dă funcţia logică în forma disjunctivă (2.5):
y x 2 x1 x1 x0 x 2 x1 x 0 (2.5)
i) Să se facă montajul pentru funcţia logică y folosind placa de lucru. Pe cale
experimentală să se completeze tabelul de adevăr dând toate valorile posibile variabilelor de
intrare. Pe baza tabelului să se scrie forma canonică disjunctivă yFCD . (0,5pct)
y FCD x 2 x1 x 0 x 2 x1 x0 x 2 x1 x 0 x2 x1 x0 (2.6)
y M x 2 x 0 x 1 x0 (2.7)
x 1 x0
00 01 11 10
x2
0 1 1 0 1
1 0 1 0 0
iii) Să se elimine hazardul static din forma minimală. Să se facă montajul pentru forma
minimizată fără hazard static yMC a funcţiei. Pe cale experimentală să se completeze tabelul
de adevăr a lui yMC şi să se compare cu tabelul de adevăr al lui y. Ce se observă? (0,5pct)
Indicaţie: Deoarece grupările adiacente din diagrama Karnaugh (Fig. 2.3) nu sunt
înlănţuite, trebuie introdus un termen de consens (evident, având cât mai puţine variabile).
Acesta este marcat cu linie întreruptă şi reprezintă ultimul produs din (2.8). Astfel, forma
minimală care conţine termenul de consens (forma minimală fără hazard static) are expresia
următoare:
y MC x 2 x 0 x 1 x 0 x 2 x 1 (2.8)
13
x 1 x0
00 01 11 10
x2
0 1 1 0 1
1 0 1 0 0
0 m0 000 (0,1)
( x 2 x1 x 0 ) 00−*
1 m1 001 (0,2)
( x 2 x1 x0 ) 0−0*
2 m2 010 (1,5)
( x 2 x1 x 0 ) −01*
5 m5 101
( x2 x1 x0 )
14
Tabelul 2.2. Selectarea implicanţilor primi
Minter. m0 m1 m2 m5
Impl.
00−
X X
( x 2 x1 )
0−0
X X
(x2 x0 )
−01
X X
( x 1 x0 )
Experimentul 2.2.2.
Se dă funcţia logică în forma disjunctivă (2.9):
y x 3 x1 x 0 x 3 x2 x0 x 3 x1 x 0 x3 x2 x0 (2.9)
i) Să se facă montajul pentru funcţia logică y folosind placa de lucru. Pe cale
experimentală să se completeze tabelul de adevăr dând toate valorile posibile variabilelor de
intrare. Pe baza tabelului să se scrie forma canonică disjunctivă yFCD . (0,5pct)
ii) Să se minimizeze funcţia y utilizând diagrama Karnaugh. Să se facă montajul pentru
forma minimizată yM a funcţiei. Pe cale experimentală să se completeze tabelul de adevăr a
lui yM şi să se compare cu tabelul de adevăr al lui y. Ce se observă? (0,5pct)
iii) Să se elimine hazardul static din forma minimală. Să se facă montajul pentru forma
minimizată fără hazard static yMC a funcţiei. Pe cale experimentală să se completeze tabelul
de adevăr a lui yMC şi să se compare cu tabelul de adevăr al lui y. Ce se observă? (0,5pct)
iv) Să se minimizeze funcţia utilizând algoritmul Quine – Mc Cluskey.
Experimentul 2.2.3.
TEMĂ DE CASĂ
2.3.1. Sa se implementeze funcţia logică (2.10) într-o formă disjunctivă utilizând porţi logice
integrate comerciale.
f ( x3 , x 2 , x1 , x 0 ) ( x 3 x 2 x 1 ) ( x 0 x1 ) x 2 (2.10)
2.3.2. Să se facă tabelul de adevăr şi apoi să se implementeze funcţia logică (2.10) în formă
canonică disjunctivă utilizând porţi logice integrate comerciale.
15
2.3.3. Utilizând tabelul de adevăr să se implementeze funcţia logică (2.10) în formă canonică
conjunctivă utilizând porţi logice integrate comerciale.
2.3.4. Utilizând forma disjunctivă să se minimizeze funcţia prin metoda diagramei
Karnaugh. Să se facă montajul pentru forma minimizată yM a funcţiei folosind porţi
logice integrate comerciale.
2.3.5. Să se elimine hazardul static din forma minimală. Să se facă montajul pentru forma
minimizată fără hazard static yMC a funcţiei folosind porţi logice integrate comerciale.
2.3.6. Să se minimizeze funcţia utilizând algoritmul Quine – Mc Cluskey. Pe baza acestui
algoritm să se facă un program adecvat pentru minimizarea funcţiei logice.
16
Anexa 1
%------------------------------------------------------------
% Program pentru verificarea unui circuit pe baza tabelului
% de adevar.
%------------------------------------------------------------
% Aceasta varianta prespune ca variabilele de intrare xi
% au fost conectate la iesirile digitale i, unde i=0:N-1, iar N
% este numarul de variabile de intrare.
% Se testeaza o singura iesire a circuitului, aceasta trebuind
% sa fie conectata la intrarea digitala 0.
%
% Varianta: 0.1 beta
% Data: 20.03.2016
%-------------------------------------------------------------
%Initializare
Eroare=0;
pozitie=[];
pauza=0.1;
fAfisare=1; %1 reprezinta ecranul
17
end
%verificarea vectorului de iesire dat ca parametru
for i=1:N
if (y(i)~=0)&&(y(i)~=1)
Eroare=3;
pozitie=[pozitie i];
end
end
if Eroare~=0
return;
end
end
19
Anexa 2
sBin=dec2bin(xd,NvarIn);
for j=1:NvarIn
x(:,NvarIn-j+1)=str2num(sBin(:,j));
end
% Caluclul iesirii
% Exemplu pentru y=x0*!x1+x2
y=x(:,1)¬(x(:,2))|x(:,3);
%afisarea tabelului
%mai inati capul de tabel
L1=' Nr. |';
L2='======';
for i=NvarIn:-1:1
L1=[L1 sprintf(' x%d',i-1)];
L2=[L2 '==='];
if i>10
L2=[L2 '='];
end
end
L1=[L1 ' | y '];
L2=[L2 '====='];
fprintf('\n%s\n%s\n',L1,L2);
%acum e randul tabelului
for i=1:N
Li=sprintf(' %3d | ', xd(i));
Lip1='-----+';
for j=NvarIn:-1:1
Li=[Li sprintf(' %d ',x(i,j))];
Lip1=[Lip1 '---'];
end
Li=[Li sprintf('| %d ',y(i))];
Lip1=[Lip1 '-+---'];
fprintf('%s\n%s\n',Li,Lip1);
end
20