Documente Academic
Documente Profesional
Documente Cultură
PROIECT :
ELECTRONIC DIGITAL
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:
sunt egale.
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.
__
__
__
__
__
__
__
__
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;
Ecuaiile minimizate :
Chip report:
Rezultate simulare: