Jednostka arytmetyczno-logiczna

|



Chociaż dziś nikt jej nie używa, jest ona ogniwem w łańcuchu ewolucji elektroniki cyfrowej, łączącym bramkę logiczną z mikroprocesorem.



Co to za czort?


Weźmy na przykład bramkę AND. Ma ona dwa wejścia, jedno wyjście i koniec. Bramka AND jest tylko bramką AND i niczym więcej. Tak samo bramki OR, NAND, NOR, EXOR, EXNOR pełnią tylko jedną funkcję. Budując zatem zaawansowane układy, trzeba by mieć całą garść różnorakich bramek, które oczywiście zajmują dużo miejsca, ciągną dużo prądu i są drogie. Ktoś wpadł na pomysł, by stworzyć bramkę uniwersalną, która mogła by wykonywać wszystkie te funkcje.

Elementy elektroniczne, zestawy prototypowe, Arduino

Takim właśnie układem jest 4-bitowa jednostka arytmetyczno-logiczna 74181 (zwana dalej ALU). Realizuje 16 funkcji logicznych, m.in. potwierdzenie A, B, negację A, B, AND, OR, IF, NAND, NOR, EXOR, EXNOR i kilka innych, powstałych poprzez połączenie wymienionych. Można także zrealizować 16 funkcji arytmetycznych, jak pokazuje tabelka:

Wybór żądanej funkcji odbywa się poprzez podanie odpowiednich sygnałów na wejścia funkcyjne S0 S1 S2 S3 i pomocnicze M (wejście trybu pracy: logicznego lub arytmetycznego) oraz wejście Cn (przeniesienie nadmiaru na poprzedniego układu systemu).

W trybie logicznym, ALU zachowuje się jak cztery niezależne od siebie bramki logiczne - np. wejścia A1 i B1 sterują tylko sygnałem F1. W trybie arytmetycznym, stan wejść reprezentuje dwie liczby binarne od 0 do 15.


Aby było widać gdzie jakie są stany, dałem diodę* na każde wejście i wyjście. Zapalona dioda oznacza 1, zgaszona 0. Umiejscowienie diod jest dobrane nie bez powodu - kolumny odpowiadają kolejnym potęgom dwójki: 16, 8, 4, 2, 1; a wiersze, to wejście A, B i wynik. Taka konfiguracja diod przypomina dodawanie w słupku znane ze szkoły. Szczegóły działania tego wynalazku wyjaśnia film







Co było dalej?


Układy ALU były stosowane w latach 60-tych i 70-tych. Jednak mimo fajnej idei działania miały swoje wady. ALU to układ kombinacyjny, który nie ma pamięci. Nie potrafi też zrobić nic ambitniejszego niż 32 standardowe operacje. Aby układ wykorzystać w praktyce, trzeba było dołączyć do niego pamięć operacyjną, coś co będzie sterowało wejściami i wyjściami i jakąś pamięć z programem do wykonania. Na początku lat 70-tych w firmie Intel wpadli na pomysł, by wszystkie te układy wepchnąć do jednej obudowy, i tak powstał pierwszy mikroprocesor Intel 4004. Obecnie nikt już nie stosuje ALU w postaci pojedynczego układu, ale są one częścią składową wszystkich zaawansowanych mikroprocesorów.

Moduł prototypowy X3-DIL64

Ciekawostka - układy 74181 można było łączyć dla uzyskania systemów o większej liczbie bitów niż 4. Układem 74182 można było połączyć tyle ALU, by uzyskać system 64 bitowy.

*Diody pochodzą z mrugającego serduszka, które kiedyś robiłem dla mojej byłej kochanej :) serduszko nie działało, więc Elcia musiała zadowolić się czymś innym, a niedorobiony układ na 2 lata trafił do szuflady. Niedawno go znalazłem i wymyśliłem, że przerobię romantyczny prezent na zimny układ logiczny :)

Pliki do pobrania:

Termometr

|



To artykuł na temat urządzenia, które zostało zastąpione przez nowszą wersję. Znajdziesz ją na stronie: Miernik panelowy ICL7106


Oto prosty termometr cyfrowy w oparciu o schemat z AVT. Właściwie rzadko on mi się przydaje. Zrobiłem go głównie po to, by poćwiczyć robienie płytek drukowanych, bo następne konstrukcje jakie mam w planach będą wymagały bardzo porządnego wykonania płytki.

Elementy elektroniczne, zestawy prototypowe, Arduino


Przedstawiony układ nie jest w żaden sposób oryginalny ani innowacyjny. Po prostu zwykłe połączenie ICL7107 i LM35. Pierwszy z nich to scalony woltomierz mierzący napięcie w zakrecie do 2V, a LM35 to scalony termometr. Podaje temperaturę w postaci napięcia, a dokładniej 10mV na każdy stopień Celsjusza. Jeżeli zatem w pokoju jest 21 stopni, LM35 wygeneruje napięcie 210mV.



Po zmontowaniu należy ustawić potencjometr w ten sposób, by napięcie na nóżkach REF_HI i REF_LO było równe dokładnie 1,000V. Niedokładne ustawienie potencjometru spowoduje błędny wynik.

Chciałem by ten układ nie był tylko termometrem ale też woltomierzem do 2V. Aby łatwo można było wyjąć termometr LM35 zastosowałem złączkę SIL. Złączka ma pięć pinów, od góry: R, +5V, IN, GND, R. Do dziurek R należy włożyć rezystor 100k w celu mierzenia temperatury poniżej zera. W sumie można by go wlutować na stałe, ale taki miałem dziwny pomysł. Aby mierzyć napięcie zamiast temperatury należy wyjąć rezystor (chociaż nie trzeba) i badane napięcie dać na piny IN oraz GND. Wynik będzie w miliwoltach, kropkę zignorować.

Pliki do pobrania:
- Schemat i płytka w programie KiCad