Sunteți pe pagina 1din 10

UNIVERSITATEA TEHNIC GHEORGHE ASACHI , IAI

FACULTATEA DE AUTOMATIC I CALCULATOARE

PROIECT :
ELECTRONIC DIGITAL

Profesor laborator : Ioan Cleju


Student : Grigoriciuc Bogdan-Alexandru
Grupa 1206 A

Cerin:
S se implementeze un comparator de 2 vectori de 6 bii care s furnizeze la
ieire rezultatul mai mic, egal sau mai mare.

Implementare:
Sa consideram doua numere de dimensiune 6 biti, X i Y, de forma:

X=X5X4X3X2X1X0
B=Y5Y4Y3Y2Y1Y0
cu mentiunea ca fiecare indice reprezinta una din cifrele numarului,care poate fi 0
sau 1.
Sa consideram cateva exemple:
A
X0 X1
X X3
X X5 Y0
Y Y2
Y Y Y
2
4
1
3
4
5
ES

E
QL

G
TR

Egalitate
Comparatorul de baza compara doar egalitatea celor doua
numere, iar extensia acestui comparator de baza numit
comparator de magnitudine genereaza la iesiri toate cele trei
semnale:

Cele dou numere binare X i Y vor fi egale dac toate perechile celor mai
semnificativi bii ale celor dou numere sunt egale:

X5=Y5 ,X4 = Y4 , X3 = Y3, X2 = Y2, X1 = Y1i X0 = Y0


Din moment ce numerele sunt binare ,cifrele sunt 0 sau 1 si funcia boolean de
egalitate a oricror 2 cifre Ai iBi poate fi exprimat astfel:
.

este 1 doar dac

sunt egale.

Pentru a exista egalitate intre A i B toate variabilele (de la i=0,1,2,3,4,5) trebuie


sa fie 1.
Prin urmare, condiia egalitii intre A i B poate fi implementat folosind o
operaie AND :( A = B ) = x5x4x3x2x1x0

Inegalitate
n scopul de a determina cel mai mare dintre cele dou numere,
vom compara perechile de cifre ale numerelor , pornind de la cel mai semnificativ
bit pn la cel mai puin semnificativ bit pn cnd inegalitatea este gsit. Cnd
este gsit o inegalitate ,dac bitul ce i corepunde lui A este 1 iar al lui B 0 tragem
concluzia ca A > B.

Aceast comparaie secvenial poate fi exprimat prin relaia:


__

__

__

__

__

( A > B ) = A5B5 + x5A4B4 + x5x4A3B3+ x5x4x3A2B2 + x5x4x3x2A1B1 +


__
+ x5x4x3x2x1A0B0
__

__

__

__

__

( A < B ) = A5B5 + x5A4B4 + x5x4A3B3+ x5x4x3A2B2 + x5x4x3x2A1B1 +


__
+ x5x4x3x2x1A0B0
Circuitul va avea 12 pini de intrare (ia5,ia4,ia3,ia2,ia1,ia0, ib5,ib4,ib3,ib2,ib1,ib0)
i 2 pini de ieire(grt, eql) deoarece implementarea cu circuite GAL16V8 necesit
6 noduri interne.

Varianta 1 :
MODULE compara
TITLE ''Comparator "
"S se implementeze un comparator de 2 vectori de 6 bii care s furnizeze la
"ieire rezultatul mai mic, egal sau mai mare
@alternate
declarations
x5..x0 node;
eql, gtr pin ;
ia5..ia0 pin ;
ib5..ib0 pin;
x=.X.;
a = [ia5..ia0];
b = [ib5..ib0];
equations
x0 =!ia0 $ ib0 ;

x1 =!ia1 $ ib1 ;
x2 =!ia2 $ ib2 ;
x3 =!ia3 $ ib3 ;
x4 =!ia4 $ ib4 ;
x5 =!ia5 $ ib5 ;
eql = x5&x4&x3&x2&x1&x0;
gtr = ia5&!ib5 + x5 & ia4&!ib4+x5&x4&ia3&!ib3 + x5&x4&x3&ia2&!ib2 +
x5&x4&x3&x2&ia1&!ib1 + x5&x4&x3&x2&x1&ia0&!ib0;
Test_vectors ([a,b] -> [gtr,eql])
[0,1]->[x,x];
[2,1]->[x,x];
[2,0]->[x,x];
[5,5]->[x,x];
[7,8]->[x,x];
[2,9]->[x,x];
END compara
Varianta 2 :
MODULE compara
TITLE ''Comparator "
"S se implementeze un comparator de 2 vectori de 6 bii care s furnizeze la
"ieire rezultatul mai mic, egal sau mai mare
@alternate
declarations
eql, les, gtr pin;
ia5..ia0 pin;
ib5..ib0 pin;
x=.X.;
ia=[ia5..ia3];
ic=[ia2..ia0];
ib=[ib5..ib3];
id=[ib2..ib0];
equations
when ia >ib then gtr = 1;
else {when ia == ib then {when ic> id then gtr = 1;

else when ic == id then eql = 1; else les=1; }


else when ia<ib then les = 1;}
Test_vectors ([ia,ic,ib,id] -> [les,gtr,eql])
[2,4,3,5] -> [x,x,x]
[6,7,4,3] -> [x,x,x]
END compara

Ecuaiile minimizate :

Chip report:

Rezultate simulare:

S-ar putea să vă placă și