Счетные схемы ЭВМ. Счетчики и сумматоры
Счетными схемами, лежащими в основе построения арифметических устройств ЭВМ, являются счетчики и сумматоры. Любые, даже самые сложные, вычислительные схемы представляют собой комбинацию счетчиков различных разновидностей и сумматоров, реализующих вычисления, как правило, в дополнительном коде (подробно кодирование информации в двоичном коде и соответствующая арифметика представлены в "Заключение" ).
Двоичные счетчики
Счетчиком называют функциональный узел, предназначенный для счета сигналов [1, c. 252].
По мере поступления входных сигналов счетчик последовательно перебирает свои состояния в определенном для данной схемы порядке. В частности, двоичные счетчики, рассматриваемые в настоящем пособии, перебирают последовательность двоичных кодов. В том случае, если последовательность выдается с возрастанием кода, счетчик называется суммирующим, если код уменьшается с приходом каждого счетного сигнала, то счетчик называется вычитающим. Если в счетчике предусмотрено переключение из суммирующего режима в вычитающий и обратно, он называется реверсивным. Количество схем счетчиков огромно [1, 2, 3]. Их изучение является отдельной, обширной темой, и задачей данного курса не является.
Простейший синхронный суммирующий счетчик можно построить на счетных, или Т -триггерах (от англ . toggle - кувыркаться). Счетным Т -триггером называют так называемый JK -триггер, который работает в счетном режиме, когда на J- и K -входы постоянно подана логическая 1. JK -триггер представляет собой соединение двух однотактных D -триггеров-защелок (рис. 9.1.а), на С -входы которых поступают противоположные уровни сигналов.
При подаче и
на выходе нижнего элемента И будет постоянный логический 0, поскольку
. А состояние верхнего элемента И будет определяться состоянием выхода
всей схемы. Если в предыдущий момент времени
, а
то на выходе элемента И-ИЛИ будет логическая
. При
она записывается в первый D -триггер, а при отрицательном фронте на
- во второй D -триггер и выдается на выход
всей схемы: формируется передний фронт импульса
. При
на инверсном выходе схемы
. Этот сигнал переведет при
первый D
-триггер в нулевое состояние, а при
- второй D -триггер и выход
всей схемы переводится в нулевое состояние схемы (формируется задний фронт импульса
) так, как показано на рис. 9.1,б.
![JK-триггер: а - функциональная схема; б - временная диаграмма работы; в - УГО JK-триггера; г - УГО счетного Т-триггера](/EDI/03_01_17_9/1483395677-6027/tutorial/1004/objects/9/files/09_01.gif)
Рис. 9.1. JK-триггер: а - функциональная схема; б - временная диаграмма работы; в - УГО JK-триггера; г - УГО счетного Т-триггера
Таким образом, в счетном режиме частота входных сигналов уменьшается в два раза. Факт переключения триггера в противоположное состояние при прохождении заднего фронта сигнала отображается на УГО динамическим входом в виде треугольника (рис. 9.1,в и г). Все ранее рассмотренные управляющие сигналы были статическими.
При последовательном соединении нескольких счетных Т-триггеров получаем схему простейшего синхронного счетчика (рис. 9.2,а). При этом выход самого последнего триггера будет являться самым старшим разрядом двоичного кода на выходе счетчика, выход самого первого триггера - младшим разрядом в соответствии с временной диаграммой, представленной на рис. 66,б. Данной схеме соответствует УГО на рис. 9.2.б. Как правило, у счетчиков предусматриваются вход для принудительного сброса в нулевое состояние (когда все триггеры схемы сброшены в
) и выход переноса
, устанавливаемый в 1 в том случае, когда прошла вся последовательность импульсов (рис. 9.2,в). Для схемы 3-разрядного счетчика, представленной на рис. 9.2, это коды от 000_{2} до 111_{2}.
увеличить изображение
Рис. 9.2. Суммирующий двоичный счетчик: а - функциональная схема; б - временная диаграмма работы; в - УГО
Выход переноса может быть использован для последовательного соединения нескольких счетчиков с целью повышения разрядности подсчитываемого числа. Такие схемы называются схемами с последовательным переносом. Существуют также и более сложные схемы с параллельным переносом [1, c. 257-262].
Сумматоры
Сумматором называют функциональный узел, выполняющий сложение одно- или многоразрядных двоичных чисел в соответствии с правилами двоичного сложения.
Подробно вопросы двоичной арифметики освещены в "Заключение" . Правила двоичного сложения можно представить в виде таблицы истинности будущей логической схемы (табл. 9.1) двоичного сумматора и построить эту схему по принципам, изложенным в лекции 3.
Входной перенос из младшего по (отношению к текущему) разряда ![]() |
Текущий разряд первого слагаемого ![]() |
Текущий разряд второго слагаемого ![]() |
Текущий разряд суммы ![]() |
Выходной перенос из текущего разряда суммы ![]() |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Для текущего разряда суммы логическое выражение имеет вид:
![S_i = \overline{P_{i-1}}\cdot \overline{a_i}\cdot b_i +
P_{i-1}\cdot a_i \cdot \overline{b_i } +
P_{i-1}\cdot a_i \cdot b_i](/sites/default/files/tex_cache/b9feb3bcff9ffd8f13be1c38de1b8b85.png)
причем согласно карте Карно, представленной на рис. 9.3,а, данное выражение не минимизируется. Для выходного переноса минимизация возможна, поэтому логическое выражение согласно рис. 9.3,б, получается следующим:
![S_i = P_{i-1}\cdot b_i + a_i \cdot b_i + P_{i-1}\cdot a_i](/sites/default/files/tex_cache/58c27526e92c15d88b205d9d290e805c.png)
![Карты Карно для одноразрядного сумматора: а - для текущего разряда суммы; б - для текущего разряда выходного переноса](/EDI/03_01_17_9/1483395677-6027/tutorial/1004/objects/9/files/09_03.gif)
Рис. 9.3. Карты Карно для одноразрядного сумматора: а - для текущего разряда суммы; б - для текущего разряда выходного переноса
Схема одноразрядного сумматора и его УГО представлены на рис. 9.4.