--- title: Techniki Cyfrowe - Sprawozdanie \#4 description: Techniki Cyfrowe - Liczniki tags: college --- # Techniki Cyfrowe - Sprawozdanie \#4 ## Liczniki **Artur Majdak, Michał Dolaś** ### a) Zaprojektować, zrealizować i przetestować dwójkę liczącą w oparciu o przerzutnik "D", a następnie w oparciu przerzutnik "JK". Dwójka licząca to nic innego jak przerzutnik T z wartością logiczną $1$ podaną na wejście $T$. ![](https://i.imgur.com/2hQDnJZ.png) ![](https://i.imgur.com/31mGsC0.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1Vl0ygUcr62pftG4jDFnY35uH0HBe_P6L) --- ![](https://i.imgur.com/OrI8cx5.png) ![](https://i.imgur.com/s3uyos8.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1r483m6xawqWE5NCleUbOKslCpVxDqz2D) ### b) W oparciu o dowolnie wybrany typ dwójek liczących, zaproponować i zbudować czterobitowy licznik asynchroniczny. Przetestować jego działanie w programie Multisim i dokładnie opisać. Zbadać jak zachowa się licznik gdy zamienimy wykorzystane przerzutniki na identycznego typu, ale reagujące na przeciwne zbocze sygnału zegarowego. Zaproponować użycie zbudowanego układu jako dzielnika częstotliwości (jakie podziały można uzyskać?). Pokazać działanie dzielnika przy pomocy oscyloskopu lub analizatora stanów logicznych. Dwójki liczące zbudowane na przerzutnikach typu D można bardzo łatwo ze sobą łączyć: ![](https://i.imgur.com/iYKO5ir.png) W ten sposób budujemy 4-bitowy asynchroniczny licznik: ![](https://i.imgur.com/G4M13fS.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1FWnkSUBJVsF6MDReEydxt1cATeEZ6lGH) MultiSim nie posiada domyślnie przerzutnika D reagującego na przeciwne zbocze zegara, więc zasymulowaliśmy to używając tych samych przerzutników, ale podając odwrotną wartość na wejścia zegarowe. ![](https://i.imgur.com/BSROjKd.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1yXqoWO15SU9o1A_phCa1qXLq647e0HbJ) Taki układ również działa jak licznik, ale liczący w tył. --- Podpinamy oryginalny sygnał zegara i wyjścia Q przerzutników do analizatora stanów logicznych. Wyniki: ![](https://i.imgur.com/Au6rxSh.png) [Układ z powyższego obrazka](https://drive.google.com/open?id=1qBRb5gvsfORcOvWakpl4Bn2AG1hMGwNt) Każda kolejna dwójka licząca działa jak dzielnik częstotliwości przez 2. Wykorzystując więc jedną dwójkę mamy dzielnik częstotliwości przez 2, dwie dwójki -- dzielnik częstotliwości przez 4, trzy dwójki -- przez 8, itd. ### c) Bazując na przerzutnikach "D", zaprojektować, zbudować i przetestować synchroniczny licznik modulo "8". ![](https://i.imgur.com/PfeznWC.png) ![](https://i.imgur.com/YYSoRZJ.png) ![](https://i.imgur.com/yvHDKxV.png) ![](https://i.imgur.com/zKFJfLt.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1PEkdSu6DBez3v6h6P9HdALTuHEnN4EOZ) ### d) Bazując na przerzutnikach "D", zaprojektować, zbudować i przetestować synchroniczny licznik pracujący w cztero-bitowym kodzie Greya. Na początek stworzyliśmy tabelę przejść z 4-bitowych kodów binarnych na ich kody Graya. ![](https://i.imgur.com/8ziWeM7.png) Licznik powinien dla każdego kodu Graya przestawiać bity na następujący po nim kod Graya. $A$ to najmłodszy bit, $D$ najstarszy. ![](https://i.imgur.com/oPI6lfv.png) ![](https://i.imgur.com/Uin50VF.png) ![](https://i.imgur.com/Dos8LgG.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1B8DFhL21Gf_N5o0Nuvf5i6YilcYmfq5q) ### e) Bazując na dowolnym liczniku czterobitowym zliczającym wprzód, zrealizować licznik modulo 6. Najpierw budujemy synchroniczny 4-bitowy licznik. Tablica przejść: ![](https://i.imgur.com/Fphz3J3.png) ![](https://i.imgur.com/fGjZOvC.png) ![](https://i.imgur.com/upaWDca.png) Przy okazji można zauważyć pewną zasadę jak dodawać kolejne bity w synchronicznym liczniku: Najmłodszy bit: $A = \overline{A}$ Kolejne bity: $B = A\:xor\:B$, $C = AB\:xor\:C$, $D = ABC\:xor\:D$, itd. ![](https://i.imgur.com/pU9tQwB.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1ABSYbS_Qx7uYVqKb1gGlTuJ0p4qlUxEq) Przystępujemy do modyfikacji. Żeby z tego licznika uzyskać licznik modulo 6 musimy wymusić wszystkie bity na wartość $0$, gdy licznik wskazuje wartość $5$ ($A = 1$, $B = 0$, $C = 1$). Licznik nigdy nie osiągnie wartości na tyle wysokich, by najstarszy bit zmienił wartość z $0$ na $1$, więc go ignorujemy. Pomocniczy układ `TERNARY`: ![](https://i.imgur.com/3Jdo34w.png) ![](https://i.imgur.com/jWcDVLU.gif) [Układ z powyższego obrazka](https://drive.google.com/open?id=1CFSJYEoXKhxXZMPsgUhOZMYQ2ufVGudM) Jako że zrealizowaliśmy w tym momencie licznik modulo 6, jeden przerzutnik jest nam kompletnie niepotrzebny. Zostawiliśmy go ze względu na polecenie ("Bazując na dowolnym liczniku **czterobitowym**").