-54-
Komparatory są układami porównującymi liczby. Porównanie wartości bezwzględnych liczb zapisanych w kodzie dwójkowym odbywa się na zasadzie porównania ich kolejnych bitów z uwzględnieniem ich wag. Porównanie może przy tym przebiegać w jednym z dwóch kierunków - albo począwszy od bitu najbardziej znaczącego (tj. bitu o największej wadze), albo zaczynając od bitu najmniej znaczącego (tj. bitu o najmniejszej wadze). W pierwszym przypadku pierwsza pozycja napotkana w procesie porównania, na której obie liczby się różnią, decyduje o tym, która z nich jest większa. W przypadku drugim, to, która z liczb jest większa, jest określone przez ostatnią znalezioną w procesie porównania pozycję, na której bity obu liczb są różne. Ze względu na charakter obydwu powyższych algorytmów porównania liczb, komparatory zwykle realizowane są jako układy iteracyjne.
Przykład 10
Zaprojektować i-tą komórkę komparatora równoległego przeprowadzającego porównanie począwszy od najmniej znaczących bitów.
Przyjmujemy następujący sposób zakodowania wyników porównania poszczególnych bitów:
Pn |
Pa | ||
A > |
B |
0 |
1 |
A = |
B |
0 |
0 |
A < |
B |
1 |
0 |
p(t* i)i P(l+ 02
z |
, B |
i | ||
Komparator | ||||
Rys. 4.17. Symbol logiczny i-tej komórki komparatora
Symbol logiczny i-tej komórki komparatora pokazano na rys. 4.17. Siatki wyrażające zależności między P(i+i)i, P(,+i)2 a A„ Pn, Pa zaprezentowano na rys. 4.18.
A,Bi A fi, Afi,
Pil Pil 00 |
< 01 |
11 |
> 10 |
PnPa |
00 |
01 |
11 |
10 |
PnPa |
00 |
01 |
11 |
10 | |
=00 |
= |
< |
= |
> |
00 |
0 |
1 |
0 |
0 |
00 |
0 |
0 |
0 |
1 |
>01 |
> |
< |
> |
> |
01 |
0 |
1 |
0 |
0 |
01 |
1 |
0 |
1 |
1 |
=n |
- |
- |
- |
- |
11 |
- |
- |
- |
- |
11 |
- |
- |
- |
- |
<10 |
< |
< |
< |
> |
10 |
1 |
1 |
1 |
0 |
10 |
0 |
0 |
0 |
1 |
P(i+\)\P(i+1)2 /*(»+!)! P(M)2
Rys. 4.18. Siatki zależności dla />(i+i)i> P(i+i)2
Z powyższych siatek wynikają następujące formuły boolowskie:
Realizację i tej komórki komparatora na elementach NAND przedstawiono na rys. 4.19.
A A
Rys. 4.19. Realizacja i-tej komórki komparatora z wykorzystaniem elementów NAND
Zaprojektować i zrealizować:
1) koder kodu „1 z 10” na kod cykliczny Wattsa,
2) dekoder kodu binarnego na kod „1 z 10” z uwzględnieniem nieprawidłowych kombinacji wejściowych,
3) translator kodu BCD na kod 2421,
4) demultiplekser 4-bitowy z wejściami adresowymi w kodzie EXCESS 3,
5) czterobitowy sumator/subtraktor,
6) czterobitowy komparator.