Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
Konwerter (lub transkoder) jest układem cyfrowym, który przekształca wyrazy jednego kodu binarnego w odpowiadające im wyrazy innego kodu. Nasz konwerter tłumaczy wyrazy kodu 8421 w wyrazy kodu Gray'a. Konwerter będzie posiadał 4 wejścia na bity kodu 8421, które oznaczymy b1, b2, b4 i b8, i 4 wyjścia A, B, C i D, na których pojawi się odpowiedni dla danych wejściowych wyraz w kodzie Gray'a.
Tablica stanów wejściowych i wyjściowych dla konwertera jest następująca:
Kod 8421 | Kod Gray'a | ||||||
b8 | b4 | b2 | b1 | D | C | B | A |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
Przy wyznaczaniu funkcji logicznych wyjść D, C, B i A możemy wykorzystać mapy Karnaugha. Jednakże istnieje dużo prostszy sposób, który opisaliśmy w artykule o kodzie Gray'a. Otóż jeśli chcemy z wyrazu kodu 8421 uzyskać odpowiadający mu wyraz w kodzie Gray'a, to wykonujemy operację różnicy symetrycznej (EX-OR) nad danym wyrazem 8421 i jego przesunięciem o 1 bit w prawo. Na przykład, dla wyrazu 1011(8421) wyraz kodu Gray'a jest równy:
0 | 1 | 0 | 1 | 1 | |
⊕ | 1 | 0 | 1 | 1 | |
1 | 1 | 1 | 0 |
Stąd już można prosto wyprowadzić odpowiednie funkcje logiczne dla wyjść transkodera:
D = b8 C = b8 ⊕ b4 B = b4 ⊕ b2 A = b2 ⊕ b1 |
Sieć logiczna jest następująca:
Numerujemy bramki:
Określamy sieć połączeń:
Na wejścia b1, b2, b4 i b8 będziemy podawać stany zgodnie z tabelką:
Kod 8421 | Kod Gray'a | ||||||
b8 | b4 | b2 | b1 | D | C | B | A |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
Na wyjściach A, B, C i D powinniśmy otrzymać bity kodu Gray'a.
C++// Symulacja sieci logicznej // kodera 8421 na kod Gray'a // (C)2020 mgr Jerzy Wałaszek // I LO w Tarnowie #include <iostream> using namespace std; // Funkcje bramek int EXOR(int a, int b) { return (a ^ b); } int main( ) { // Stany wejściowe oraz stany wyjściowe int b1,b2,b4,b8,A,B,C,D; // Stany wyjściowe bramek int YB1,YB2,YB3; cout << "b8 b4 b2 b1 | D C B A\n" "------------+-----------" << endl; // Generujemy kolejne stany wejściowe for(b8 = 0; b8 < 2; b8++) for(b4 = 0; b4 < 2; b4++) for(b2 = 0; b2 < 2; b2++) for(b1 = 0; b1 < 2; b1++) { // Symulacja sieci YB1 = EXOR(b1,b2); YB2 = EXOR(b2,b4); YB3 = EXOR(b4,b8); // Określamy stany wyjściowe A = YB1; B = YB2; C = YB3; D = b8; // Wyświetlamy wyniki cout << " " << b8 << " " << b4 << " " << b2 << " " << b1 << " | " << D << " " << C << " " << B << " " << A << endl; } return 0; } |
Wynik: |
b8 b4 b2 b1 | D C B A ------------+----------- 0 0 0 0 | 0 0 0 0 0 0 0 1 | 0 0 0 1 0 0 1 0 | 0 0 1 1 0 0 1 1 | 0 0 1 0 0 1 0 0 | 0 1 1 0 0 1 0 1 | 0 1 1 1 0 1 1 0 | 0 1 0 1 0 1 1 1 | 0 1 0 0 1 0 0 0 | 1 1 0 0 1 0 0 1 | 1 1 0 1 1 0 1 0 | 1 1 1 1 1 0 1 1 | 1 1 1 0 1 1 0 0 | 1 0 1 0 1 1 0 1 | 1 0 1 1 1 1 1 0 | 1 0 0 1 1 1 1 1 | 1 0 0 0 |
Kod wejściowy 8421 ustalasz kliknięciami w kwadratowe przyciski. Kolor czarny oznacza stan 0, kolor czerwony oznacza stan 1. Słowo Gray'a odczytujesz z okrągłych wskaźników.
Symulator |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.