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 (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 Gray'a na wyrazy kodu 8421. W poprzednim rozdziale opisaliśmy konwerter odwrotny: kod 8421 na kod Gray'a. Nasz konwerter będzie posiadał 4 wejścia A, B, C D, na które podajemy wyrazy w kodzie Gray'a, i 4 wyjścia b1, b2, b4, b8, na których pojawia się odpowiedni dla danych wejściowych wyraz w kodzie 8421.
Tablica stanów wejściowych i wyjściowych dla konwertera jest następująca:
Kod Gray'a | Kod 8421 | ||||||
D | C | B | A | b8 | b4 | b2 | b1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
Do wyznaczenia funkcji logicznych dla wyjść b1, b2, b4 i b8 wykorzystujemy algorytm opisany w rozdziale o kodzie Gray'a. Najstarszy bit b8 jest równy bitowi D. Pozostałe bity wyznaczamy kaskadowo na podstawie bitów wyznaczonych wcześniej.
Sieć budujemy w kolejności funkcji podanej we wzorze. Rozpoczynamy od sygnałów wejściowych i wyjściowych:
Teraz realizujemy kolejne funkcje logiczne sieci:
Sieć działa kaskadowo. Oznacza to, iż sygnał wyjściowy ustali się dopiero po czasie równym sumie czasów propagacji dla poszczególnych bramek EX-OR.
Rozpoczynamy od ponumerowania bramek. Należy je ponumerować zgodnie z kolejnością przetwarzania sygnałów, ponieważ sieć logiczna ma strukturę kaskadową:
Określamy sieć połączeń:
Na wejścia A, B, C i D będziemy podawać stany zgodnie z poniższą tabelką. Stany te oznaczają wyrazy w kodzie Gray'a. Na wyjściach b8, b4, b2 i b1 powinniśmy otrzymać wyrazy w kodzie 8421, które odpowiadają wyrazom kodu Gray'a.
Kod Gray'a | Kod 8421 | ||||||
D | C | B | A | b8 | b4 | b2 | b1 |
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 | 1 |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
C++// Symulacja sieci logicznej // kodera kodu Gray'a na 8421 // (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 A,B,C,D,b1,b2,b4,b8; // Stany wyjściowe bramek int YB1,YB2,YB3; cout << " D C B A | b8 b4 b2 b1\n" "------------+------------" << endl; // Generujemy kolejne stany wejściowe for(D = 0; D < 2; D++) for(C = 0; C < 2; C++) for(B = 0; B < 2; B++) for(A = 0; A < 2; A++) { // Symulacja sieci YB1 = EXOR(D,C); YB2 = EXOR(YB1,B); YB3 = EXOR(YB2,A); // Określamy stany wyjściowe b1 = YB3; b2 = YB2; b4 = YB1; b8 = D; // Wyświetlamy wyniki cout << " " << D << " " << C << " " << B << " " << A << " | " << b8 << " " << b4 << " " << b2 << " " << b1 << endl; } return 0; } |
Wynik: |
D C B A | b8 b4 b2 b1 ------------+------------ 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 1 0 1 0 1 | 0 1 1 0 0 1 1 0 | 0 1 0 0 0 1 1 1 | 0 1 0 1 1 0 0 0 | 1 1 1 1 1 0 0 1 | 1 1 1 0 1 0 1 0 | 1 1 0 0 1 0 1 1 | 1 1 0 1 1 1 0 0 | 1 0 0 0 1 1 0 1 | 1 0 0 1 1 1 1 0 | 1 0 1 1 1 1 1 1 | 1 0 1 0 |
Kod wejściowy Gray'a ustalasz kliknięciami w kwadratowe przyciski. Kolor czarny oznacza stan 0, kolor czerwony oznacza stan 1. Słowo w kodzie 8421 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.