Общие сведения о счетчиках
Счётчики относятся к функциональным узлам последовательностного типа, логическое состояние которых определяется последовательностью поступления входных сигналов. Счётчики применяются в различных цифровых устройствах. Назначение счётчика очевидно: это подсчёт числа некоторых событий или временных интервалов, либо упорядочение событий в хронологической последовательности. Счётчики могут выполнять и другие функции, например, их можно использовать для адресации, в качестве делителей частоты и элементов памяти.
Счётчик характеризуются прежде всего модулем счёта (ёмкостью) М. Он переходит при поступлении входных сигналов из состояния в состояние, после каждых М сигналов возвращаясь к началу цикла. Счётчики классифицируют по значению модуля, направлению счёта, способу организации межразрядных связей, по способу подачи тактового импульса.
По значению модуля счёта различают двоичные (М=2n), двоично-кодированные (с произвольным модулем, но кодированием состояний двоичными кодами), счётчики с одинарным кодированием и др.
По направлению счёта счётчики делят на суммирующие (прямого счёта), вычитающие (обратного счёта) и реверсивные (с изменением направления счёта).
По способу организации межразрядных связей различают счётчики с последовательным, параллельным и комбинированными переносами. Параллельные счётчики называют синхронными, а последовательные — асинхронными.
Цифровую схему, выполняющую функцию счёта, можно собрать из триггеров. Рассмотрим некоторые схемы счётчиков.
Счётчики со сквозным переносом
Процедура двоичного и десятичного счёта показана в табл. 13.1. Используя 4 двоичных разряда (D, C, B и A) можно считать от 0000 до 1111 (от 0 до 15 в десятичной системе). Столбец А соответствует самому младшему разряду, а столбец D самому старшему разряду. Если нужен счётчик, который считает от 0000 до 1111 (в двоичной системе), у него должно быть 16 различных выходных состояний, т.е. нужен счётчик с модулем 16. На рис.13.1 показана схема счётчика по модулю 16, составленная из 4 JK‑триггеров. Каждый JK‑триггер работает в режиме переключения (J=K=1). Пусть в начальный момент состояние выходов счётчика соответствует двоичному числу 0000 (счётчик очищен). При поступлении тактового импульса 1 на синхронизирующий вход (C) триггера T1 этот триггер переключается (при прохождении среза импульса) и на индикаторе появляется двоичное число 0001. Тактовый импульс 2 возвращает триггер T1 в исходное состояние 0 (Q=0), что в свою очередь приводит к переключению триггера T2 в состояние 1 (Q=1). На индикаторе появится число 0010. Счёт продолжается: срез сигнала на выходе каждого триггера запускает следующий триггер.
Таблица двоичного и десятичного счета
Рис.13.1. Схема счетчика по модулю 16
Из табл.13.1 видно, что цифры (1 или 0) в столбце А изменяется на каждом шаге счёта, т.е. триггер T1 переключается с приходом каждого нового тактового импульса. Из столбца В видно, что триггер T2 переключается в два раза реже триггера T1. Каждый более старший разряд «переключается» в 2 раза реже предыдущего.
На рис.13.2 показаны временные диаграммы при работе счётчика в процессе счёта до 10 (двоичное число 1010).
Рис.13.2. Временные диаграммы работы счетчика по модулю 16
Синхронизирующему входу состветствует верхняя диаграмма. Диаграммы для выходов Q триггеров T1, T2, T3, T4 приведены ниже. Под диаграммами указаны двоичные числа, соответствующие различным состояниям счётчика. Из рис.13.2 видно, что тактовые импульсы запускают только триггер T1, триггер T1 запускает триггер T2, триггер T2 запускает триггер T3 и т.д. Каждый триггер воздействует только на один (следующий за ним триггер), поэтому для переключения всех триггеров необходимо некоторое время. Например, на импульсе 8 (рис.13.2) тактовый импульс запускает триггер T1, вызывая его переключение в состояние 0. Это в свою очередь приводит к переключению триггера T2 из состояния 1 в состояние 0. Затем точно также переключается T3. В момент установки на выходе Q триггера T3 уровня логического 0 запускается триггер T4, который переключается из состояния 0 в состояние 1. Таким образом, изменение состояний последовательно распространяется по цепочке триггеров. Рассматриваемый счётчик называют счётчиком со сквозным переносом. Кроме этого данный счётчик можно назвать асинхронным, поскольку предыдущий триггер вырабатывает для последующего тактовые импульсы. По направлению счёта счётчик, изображённый на рис.13.1 является суммирующим (прямого счёта).
Асинхронные счётчики по модулю 10
Счётчик по модулю 10 считает от 0000 до 1001 (от 0 до 9 в десятичной системе), т.е. до черты в табл.13.1. Для построения такого счётчика трёх триггеров недостаточно (10>23), поэтому он содержит 4 триггера, но имеет обратные связи, останавливающие счёт при коде 9=1001. На рис.13.3 показана схема счётчика по модулю 10, в которую кроме 4 триггеров включён логический элемент И‑НЕ, для установки всех триггеров в нулевое состояние (очистки счетчика) с приходом десятого импульса.
Рис.13.3. Схема асинхронного счетчика по модулю 10
Рассмотрим принцип работы данной схемы (рис.13.3). Из табл.13.1 видно, что за числом 1001 следует 1010 (10 в десятичной системе). При подаче логической 1, содержащейся в разрядах двоек и восьмерок двоичного числа 1010, на входы элемента И‑НЕ, этот элемент подаст логический 0 на входы R четырех триггеров. Таким образом, все триггеры установятся в состояние 0 и счетчик снова начинает считать от 0000 до 1010. Подобное использование логического элемента И‑НЕ позволяет создать счетчики с некоторыми другими значениями модуля. Счетчик, изображенный на рис.13.3 называют также декадным (десятичным) счетчиком.
В синхронных счетчиках все триггеры получают тактовый импульс одновременно, поскольку тактовые входы их соединяются параллельно. Такие триггеры переключаются практически одновременно. В асинхронных счетчиках каждый триггер вносит в процесс счета определенную задержку, поэтому младшие разряды результирующего кода появляются на выходах триггеров не одновременно, т.е. несинхронно с соответствующим тактовым импульсом. Например, для четырехразрядного асинхронного счетчика код 1111 появится на выходах триггеров уже после того, как поступит шестнадцатый тактовый импульс. Код 1111 сформируется не одновременно.
Рассмотрим схему 3‑разрядного счетчика по модулю 8 (рис.13.4). Все синхронизирующие входы триггеров (C) соединены параллельно, тактовые импульсы поступают непосредственно на синхронизирующий вход каждого триггера.
Рис.13.4. Схема синхронного счетчика по модулю 8
Последовательность двоичных чисел, проходимая счетчиком за один цикл счета (счетная последовательность) приведена в табл.13.2.
Счетная последовательность импульсов
Рассмотрим принцип работы данного счетчика в течение одного цикла счета. На каждом шаге цикла входной импульс поступает на синхронизирующий вход каждого триггера.
Импульс 1 — строка 2 табл.13.2. Переключается только триггер T1, поскольку только у него на входах J и K действует уровень логической 1. T1 переходит из состояния 0 в состояние 1.
Результат: на выходе счетчика 001.
Импульс 2 — строка 3. Переключаются два триггера T1 и T2, поскольку на входах J и K этих триггеров действует уровень логической 1. T1 переходит из состояния 1 в состояние 0, T2 — из состояния 0 в состояние 1.
Результат: на выходе 010.
Импульс 3 — строка 4. Переключается только один триггер. T1 переходит из состояния 0 в состояние 1. T2 не переключается, поскольку на входах J и K действует уровень логического 0.
Результат: на выходе 011.
Импульс 4 — строка 5. Все триггеры меняют свое состояние на противоположное. T1 и T2 переходят из 1 в 0. T3 переключается из 0 в 1.
Результат: на выходе 100.
Импульс 5 — строка 6. Триггер T1 переходит из состояния 0 в состояние 1.
Результат: на выходе 101.
Импульс 6 — строка 7. Переключаются два триггера. T1 переходит из 1 в 0, T2 — из 0 в 1.
Результат: на выходе 110.
Импульс 7 — строка 8. Триггер T1 переходит из состояния 0 в состояние 1.
Результат: на выходе 111.
Импульс 8 — строка 9. Все триггеры меняют свое состояние, переходя из 1 в 0.
Результат: на выходе 000.
Следует заметить, что в данном счетчике JK‑триггеры используются как в режиме переключения (J=K=1), так и в режиме блокировки (J=K=0).
Помимо суммирующих счетчиков (прямого счета), рассмотренных выше, существуют счетчики которые считают в обратном направлении — вычитающие.
Рассмотрим схему асинхронного вычитающего счетчика по модулю 8 (рис.13.5).
Рис.13.5. Схема асинхронного вычитающего счетчика по модулю 1
Отличие данной схемы от схемы суммирующего счетчика (рис.13.1) состоит в способе переноса сигнала от триггера к триггеру. В суммирующем счетчике синхронизирующий вход каждого триггера связан с прямым выходом Q предыдущего триггера. В вычитающем счетчике синхронизирующий вход каждого триггера связан с инверсным выходом предыдущего триггера. В счетчике изображенном на рис.13.5, перед началом счета в обратном направлении предусмотрена предварительная его установка в состояние 111 (десятичное число 7) с помощью входа предустановки (S). Счетная последовательность двоичных чисел приведена в табл.13.3.
Счетная последовательность импульсов
Вычитающий счетчик, схема которого показана на рис.13.5 — счетчик циклического типа. Когда этот счетчик приходит в состояние 000, он снова начинает счет с двоичного числа 111. В некоторых случаях нужны счетчики, которые останавливаются, когда исчерпывается вся счетная последовательность. Рассмотрим, какие изменения нужно внести в схему вычитающего счетчика, чтобы счет прекращался при достижении состояния 000.
Рис.13.6. Схема самоостанавливающегося счетчика
Из рис.13.6 видно, что для этого нужно ввести в схему логический элемент ИЛИ, который будет устанавливать на входах J и K триггера T1 уровень логического 0, когда на выходах (C, B, A) счетчика появится сигнал 000. Если нужно начать новый цикл счета с двоичного числа 111, на вход предустановки S следует подать уровень логического 0.
Используя один логический элемент или их комбинацию, можно останавливать счет прямом и обратном направлении, на любом наперед заданном двоичном числе. Выход логического элемента нужно для этого присоединить к входам J и K первого триггера в асинхронном счетчике. При этом триггер T1 переводится в режим хранения.
Счетчики — делители частоты
Одной из функций которую выполняют счетчики в цифровых системах, является деление частоты. Пример простой системы с делителем частоты показан на рис.13.7. Эта система составляет основу цифровых часов. Периодический сигнал электросети с частотой 50 Гц, сформированный в виде последовательности прямоугольных импульсов, подается на вход системы, которая делит частоту на 50.
Рис.13.7. Система с делителем частоты
На выходе схемы имеем последовательность прямоугольных импульсов с частотой 1 Гц (1 импульс в 1 сек). Это таймер секунд.
На рис.13.8 схематически изображен декадный счетчик, а на рис.13.9 приведены временные диаграммы для его синхронизирующего входа C и выхода QD, соответствующего двоичному разряду восьмерок.
Рис.13.8. Схема декадного счетчика
Рис.13.9. Временные диаграммы декадного счетчика
Из рис.13.9 видно, что 20 импульсов на входе счетчика преобразуются в 2 выходных импульса. Выполняется деление 20/2=10. Снимая сигнал с входа QD, декадного счетчика, получим счетчик‑делитель на 10. Т.е. частота выходного сигнала состовляет 1/10 частоты на входе счетчика.
Последовательно соединяя рассмотренный декадный счетчик (счетчик‑делитель на 10) и по модулю 5 (счетчик‑делитель на 5) получим схему, осуществляющую деления частоты на 50. Структура такой схемы показана на рис.13.10. Последовательность прямоугольных импульсов с частотой 50 Гц поступает на вход счетчика — делителя на 5, а с его выхода с частотой 10 Гц подается на вход счетчика‑делителя на 10. На выходе схемы получим сигнал с частотой 1 Гц.
Рис.13.10. Структурная схема делителя частоты на 50
Функция деления частоты используется в таких цифровых устройствах, как частотомер, осциллограф и т.п.
Интегральные схемы счетчиков
На рис.13.11 представлена схема четырехразрядного двоичного счетчика‑делителя на 2, на 6 и на 12 (К155ИЕ4).
Рис.13.11. Схема четырехразрядного двоичного счетчика
Если подать тактовые импульсы с частотой f на вход С1, то на выходе А получим частоту f/2. Тактовые импульсы с частотой f на входе С2 запускают делитель на 6 и на выходе D имеем частоту f/6. При этом на выходах B и C имеем импульсы с частотой f/3. На выводы R1 и R2 подаются команды сброса. Для построения счетчика с модулем деления 12, требуется соединить делители на 1 и на 6, соединив выход А со входом С2. На вход С1 подается входная частота f, на выходе D получаем последовательность импульсов с частотой f/12.
Рассмотрим пример структурного проектирования счетчиков. Выполним синтез структуры суммирующего синхронного (параллельного) счетчика по модулю 10 на JK‑триггерах. Следует отметить, что синхронные счетчики обычно строятся на базе RS, JK, D‑триггеров, синхронизируемых фронтом.
Для реализации счетчика требуется не менее 4 триггеров, поскольку трех триггеров недостаточно 23<10. Чтобы получить структуру с минимальным числом триггеров, примем m=4 (четырехразрядный счетчик). При этом 2m-M=24-10=6 состояний счетчика будут нештатаными. Рассмотрим таблицу состояний счетчика (табл. 13.4.), в которой в последних четырех столбцах показана функция переходов F для каждого разряда.
Таблица состояний счетчика
Функция переходов показывает изменения (или сохранения) состояния разряда в зависимости от значений управляющих сигналов. Эта функция принимает следующие значения
переход из состояния Qn=0 в Qn+1=1,
переход из состояния Qn=1 в Qn+1=0,
сохранение состояния Qn=Qn+1=0,
сохранение состояния Qn=Qn+1=1.
Используя таблицу состояний счетчика (табл. 13.4) для каждого разряда представляем функцию переходов в виде карты Карно (рис. 13.12).
Рис. 13.12. Карты Карно для функции переходов
В клетках карты указываются значения функции переходов. Знаком «X» обозначаются безразличные наборы, которые соответствуют нештатным состояниям счетчика.
Определив для каждого из значений FQ соответствующие ему значения входных переменных J и K, получим словарь переходов JK‑триггера (табл. 13.5).
Словарь переходов JK-триггера
Используя словарь переходов JK‑триггера получаем карты Карно для функций входов J‑ и K‑триггеров в каждом разряде (рис. 13.13).
Рис. 13.13. Карты Карно для входов J и K триггеров
На основание карт Карно произведем минимизацию функции входов. В результате объединения клеток, показанных на рис. 13.13, получим простые выражения для функции входов
Рассмотрим более подробно минимизацию функции J4. Эта функция имеет восемь безразличных наборов, обозначенных «X» на рис. 13.13. Доопределим функцию таким образом, чтобы она имела значения J4=1 при ABCD=1111, выполним объединение клеток (рис. 13.13) и получим минимально дизъюктивную нормальную форму (МДНФ) в виде
В соответствие с полученными выражениями для функции входов построим декадный счетчик (рис. 13.14).
Рис. 13.14. Схема декадного счетчика
Из рис.13.14 видно, что схема декадного счетчика реализована на четырех триггерах и трех логических элементах И, два из которых имеют два входа и один имеет три входа. Счетчик, изображенный на рис. 13.14 является параллельным, т.к. все триггеры переключаются одновременно (синхронно).
Счётчики
Счетчик — цифровое устройство, осуществляющее счет числа появлений на входе определенного логического уровня. В дальнейшем во всех случаях, когда это не оговаривается специально, будем полагать, что счетчик производит подсчет числа содержащихся во входном сигнале переходов с уровня лог. 0 к уровню лог. 1. При импульсном представлении логических переменных уровню лог. 1 соответствует импульс, и счетчик ведет счет поступающих на вход импульсов.
Числа в счетчике представляются определенными комбинациями состояний триггеров. При поступлении на вход очередного уровня лог. 1 в счетчике устанавливается новая комбинация состояний триггеров, соответствующая числу, на единицу большому предыдущего числа. Таким образом, счетчик представляет собой логическое устройство последовательностного типа, в котором новое состояние определяется предыдущим состоянием и значением логической переменной на входе.
Для представления чисел в счетчике могут использоваться двоичная или десятичная системы счисления. При использовании двоичной системы состояния триггеров и соответствующие им уровни на прямых выходах триггеров определяют цифры двоичных разрядов числа. Если для регистрации двоичного числа в счетчике используется n триггеров, то максимальное значение числа, до которого может вестись счет, N = 2 n — 1. Так, при n = 4 N = l5. На рис. 8.40 показаны вход и выходы счетчика (без раскрытия схемы счетчика), а в табл. 8.19 приведено состояние триггеров, соответствующее различному числу поступивших на вход импульсов.
При использовании десятичной системы счисления цифры разрядов десятичного числа в счетчике представляются в четырехразрядной двоичной форме, т. е. используется двоично-кодированная десятичная система счисления. Таким образом, для представления цифр каждого разряда десятичного числа требуется четыре триггера, и если число десятичных разрядов k, то число триггеров, необходимое для регистрации чисел в счетчике равно 4k, а максимальное значение чисел N = 10 k — 1. В табл. 8.20 показана последовательность состояний триггеров в двухразрядном десятичном счетчике, приведенном на рис. 8.41.
Таблица 8.19
Число
поступивших импульсов
Рекомендуемые материалы
Состояние триггеров
Число поступивших
импульсов
Состояние триггеров
Наряду с суммирующими счетчиками, в которых в процессе счета каждое очередное число на одну единицу превышает предыдущее, используются и такие счетчики, в которых в процессе счета числа последовательно убывают (эти счетчики называются вычитающими). Находят применение счетчики, которые допускают в процессе работы автоматическое переключение (реверс) из режима суммирующего счетчика в режим вычитающего счетчика, и наоборот. Такие счетчики называют реверсивными. Хотя для построения счетчиков могут использоваться любые типы триггеров, на которых может быть организован счетный вход, в дальнейшем будем пользоваться только одним типом, JK-триггерами.
Таблица 8.20
Число
поступивших
импульсов
Состояние триггеров
Суммирующие двоичные счетчики.
В суммирующем счетчике поступление на вход очередного уровня лог. 1 (очередного импульса) вызывает увеличение на одну единицу хранимого в счетчике числа. Таким образом, в счетчике устанавливается число, которое получается путем суммирования предыдущего значения с единицей. Это суммирование проводится по обычным правилам выполнения операций сложения в двоичной системе счисления. Например,
Заметим, что в процессе такого суммирования имеют место следующие особенности:
- если цифра некоторого разряда остается неизменной либо изменяется с 0 на 1, то при этом цифры более старших разрядов не изменяются;
- если цифра некоторого разряда изменяется с 1 на 0, то происходит инвертирование цифры следующего за ним более старшего разряда.
Этот принцип использован при построении схемы счетчика, представленной на рис. 8.42,а. В построении схемы имеются следующие особенности:
- входы J и K в каждом триггере объединены и на эти входы подан уровень лог. 1, таким образом, в каждом триггере синхронизирующий вход С является счетным входом триггера;
- сигнал с прямого выхода триггера каждого разряда поступает на счетный вход С триггера следующего более старшего разряда, а на счетный вход триггера 1-го разряда Тг1 подаются входные просчитываемые импульсы.
Если на счетном входе С триггера действует импульс, то его положительным фронтом переключается ведущая часть триггера, на отрицательном фронте — ведомая его часть. Итак, при каждом изменении сигнала на счетном входе с уровня лог. 1 на уровень лог. 0 изменяется на противоположное состояние выхода триггера. Таким образом, на отрицательном фронте сигнала на выходе триггера происходит переключение следующего за ним триггера более старшего разряда. На рис. 42,б показана временная диаграмма работы данного счетчика.
С каждым входным импульсом число в счетчике увеличивается на единицу. Такое нарастание числа происходит до тех пор, пока после (2 n — 1)-го входного импульса (n — число разрядов в счетчике) не установится в счетчике двоичное число 11. 1. Далее с приходом 2 n -го импульса в счетчике устанавливается исходное состояние 00 . 0, после чего счет ведется сначала. Таким образом, при непрерывной подаче на вход импульсов счетчик циклически с периодом в 2 n входных импульсов сбрасывается в исходное состояние.
Рассмотренная схема счетчика имеет следующие недостатки. Пусть первые k триггеров младших разрядов счетчика установлены в состояние лог. 1 и на вход счетчика поступает очередной импульс. При этом будет происходить процесс последовательного переключения триггеров. Если x — время переключения триггера, то относительно отрицательного фронта входного импульса первый триггер переключится с задержкой x, второй триггер переключается с задержкой x относительно отрицательного фронта сигнала на выходе первого триггера и с задержкой 2x относительно отрицательного фронта входного импульса и т. д. Следовательно, задержка в переключении k-го триггера составит kx. При большом числе разрядов задержка в переключении триггера старшего разряда может оказаться недопустимо большой. Ниже рассматриваются способы уменьшения этой задержки и, таким образом, увеличения быстродействия счетчика.
Для дальнейшего удобнее описывать процесс суммирования с помощью логических выражений.
Пусть a1, . аn — цифры разрядов числа до суммирования; cl, . сn — цифры разрядов числа, получаемого в результате суммирования с единицей; pi — значение переноса, формируемого в (i — 1)-м разряде счетчика и передаваемого в 1-й разряд.
Функционирование i-го разряда счетчика можно описать таблицей истинности (табл. 8.21).
Поступление лог. 1 на вход счетчика можно представить переносом pl = l, подаваемым на первый разряд счетчика. Из таблицы истинности следует:
- устанавливающееся в i-м разряде значение ci = ai
i /
ipi может быть получено путем подачи переноса pi на счетный вход триггера i-го разряда, хранившего значение ai,
- перенос, передаваемый в (i + l)-й разряд, pi+1 = aipi. Так как p1 = 1 то р2 = a1.
Таблица 8.21
Схема счетчика, в разрядах которого реализуются приведенные логические выражения, дана на рис. 8.43,а. Объединенные информационные входы J и К в триггерах разрядов счетчика образуют счетные входы, на которые подаются поступающие в разряды переносы. Подлежащие счету импульсы подаются на входы синхронизации триггеров. При этом если на счетный вход триггера поступает перенос, равный лог. 1, то входной импульс переводит триггер в новое состояние. В противном случае в триггере сохраняется прежнее состояние. Для формирования переносов использованы элементы И. Цепь установки 0 используется для начальной установки в состояние 0 триггеров всех разрядов счетчика.
На рис. 8.43,б представлены временные диаграммы работы счетчика. На переднем фронте входного импульса триггер принимаете поданное на его информационные входы значение переноса, затем при спаде входного импульса на выходе триггера устанавливается новое значение. С каждым входным импульсом число в счетчике увеличивается на единицу.
В данной схеме устранен недостаток предыдущей схемы счетчика. Отрицательным фронтом входного импульса одновременно переключаются те триггеры, на входы которых в данный момент поступает сигнал переноса pi = l. Таким образом может быть обеспечено более высокое быстродействие, чем в предыдущей схеме.
Фактором, ограничивающим быстродействие данной схемы счетчика, является последовательное формирование переносов.
Формирование переноса в i-м разряде начинается с момента завершения формирования переноса в предыдущем (i — 1)-м разряде и поступления сформированного переноса из (i — 1)-го в i-й разряд. При этом i-й разряд выдает перенос в следующий (i + l)-й разряд с задержкой относительно момента поступления переноса в i-й разряд. Эта задержка связана с задержкой распространения сигнала в элементе Иi. Таким образом, процесс продвижения переносов вдоль разрядов в счетчике последовательный (из разряда в разряд) и в каждом разряде имеет место задержка. Общее время задержки распространения переносов xпер определяется задержкой в одном разряде xпер1 и числом разрядов, через которые проходят переносы.
В наихудшем случае, когда переносы последовательно проходят через все разряды счетчика (начиная со второго), общая задержка xпер = xпер1(n — 1).
После переключения триггеров под действием предыдущего импульса, поданного на вход счетчика, только через время xпер на входах триггеров оказываются сформированными переносы и может быть подан очередной импульс на вход счетчика. Таким образом, временем xпер ограничивается минимальный временной интервал между входными импульсами, и xпер ограничивает максимальную частоту подачи импульсов на вход, т. е. быстродействие счетчика.
В тех случаях, когда необходимо обеспечить высокое быстродействие, применяют меры к уменьшению xпер. Уменьшение xпер может быть обеспечено применением в цепи передачи переносов элементов И с малым временем задержки распространения сигнала, а также использованием в счетчике последовательно- параллельной цепи передачи переносов. Рассмотрим принцип организации такой последовательно-параллельной передачи переносов.
Запишем логические выражения, по которым формируются переносы в разрядах счетчика
Подставляя выражения р3, р5, . в выражения p4, р6, . получаем
При использовании этих выражений перенос p2 выхода первого разряда одновременно поступает во второй и третий разряды, участвуя в формировании р3 и p4. Аналогично р4 передается одновременно в четвертый и пятый разряды и участвует в формировании р5 и p6 и т. д.
Очевидно, при этом примерно вдвое уменьшается число разрядов, через которые переносы передаются последовательно, уменьшается xпер. На рис. 44 приведена схема счетчика, в которой цепь передачи переносов построена в соответствии с приведенными выше логическими выражениями.
Развивая этот принцип, можно записать следующие логические выражения для переносов:
Схема счетчика на рис. 45 построена с использованием этих выражений. Такой счетчик обеспечивает еще большее снижение xпер.
Следует иметь в виду, что использование рассмотренного принципа повышения быстродействия вызывает усложнение схемы счетчика, связанное с использованием в цепи передачи переносов элементов И с большим числом входов.
Вычитающий и реверсивный счетчики.
В вычитающем счетчике поступление на вход очередной лог. 1 (очередного импульса) вызывает уменьшение хранившегося в счетчике числа на единицу. Покажем примеры такого вычитания единицы:
Из первого примера видно, что если в младшем разряде числа содержится 1, то получающееся в результате вычитания 1 число отличается от исходного лишь в младшем разряде.
Таблица 8.22
Если в младшем разряде числа содержится 0, то процесс вычитания сопровождается возникновением переносов. В отличие от операции суммирования, в которой перенос прибавляется в разряд, в который он поступает, в операции вычитания перенос имеет смысл заема из следующего, более старшего разряда и вычитается из этого разряда. Последовательная передача таких заемов из разряда в разряд продолжается до тех пор, пока в очередном разряде, в который передается заем, не обнаруживается 1.
Так, во втором из приведенных выше примеров такая 1 обнаруживается в четвертом разряде. В результате заема этой 1 в четвертом разряде образуется 0, а занятая из этого разряда 1 передается в третий разряд, где она имеет уже значение 2. Из этих двух единиц в третьем разряде остается одна, а другая передается во второй разряд, где она также приобретает значение 2 и т. д.
Таким образом, в результате вычитания часть числа левее первого из разрядов, содержащих 1, остается неименной, цифры остальных разрядов инвертируются.
Функционирование i-го разряда счетчика при выполнении операции вычитания единицы представлено в табл. 8.22. Из этой таблицы истинности следуют логические выражения:
Цифры разрядов ci определяются тем же логическим выражением, что и в суммирующем счетчике. Следовательно, как и в суммирующем счетчике, перенос должен подаваться на счетный вход, образованный соединением информационных входов J и K триггера. Отличие выражения pi+l (по сравнению с соответствующим выражением суммирующего счетчика) состоит в том, что вместо ai использовано i. Таким образом, в вычитающем счетчике на элементы И, формирующие переносы, подаются сигналы с инверсных выходов триггеров.
На рис. 8.46 показана схема вычитающего счетчика с последовательной передачей переносов. Для повышения скорости работы счетчика могут быть использованы последовательно-параллельные цепи передачи переносов. Вычитающий счетчик, как и суммирующий, имеет период циклической работы, равный 2 n импульсов.
Реверсивный счетчик — счетчик, допускающий в процессе работы переключение из режима суммирования в режим вычитания, и наоборот. На рис. 8.47 приведена схема такого счетчика. В ней предусмотрены две цепи передачи переносов, одна из которых соответствует схеме суммирующего счетчика, другая — схеме вычитающего счетчика. Управляющие сигналы Il и I2 включают в работу одну или другую цепь.
При Il = l и I2 = 0 оказывается закрытым элемент И2 и, следовательно, отключена цепь передачи переносов режима вычитания. Счетчик работает в режиме суммирования. При Il = 0 и I2 = 1 закрыт элемент И1 и отключена, таким образом, цепь передами переносов режима суммирования, счетчик работает в режиме вычитания.
Счетчик с периодом работы,
не выражаемый целой степенью двух.
Пусть счетчик должен иметь период циклической работы, равный N, причем N не представляется целой степенью двух. Необходимое число триггеров определяется как минимальное n, удовлетворяющее неравенству 2 n > N.
Счетчик с таким числом триггеров может иметь период 2 n , больший требуемого N. Поэтому после установления в счетчике числа N — 1 необходимо в следующем такте работы обеспечивать сброс счетчика в нулевое состояние.
Покажем метод синтеза такого счетчика. Пусть требуется синтезировать счетчик с периодом N = 3. Число триггеров n = 2 (это минимальное значение, удовлетворяющее неравенству 2 n > N). На рис. 8.48,а представлена незаконченная схема счетчика без указания способа включения информационных входов триггеров J1, К1 и J2, К2.
Рассмотрим метод, позволяющий определить, каким образом должны включаться информационные входы триггеров. Под действием входных импульсов счетчик переходит из одного состояния (с одной комбинацией состояний триггеров) в другое (с другой комбинацией состояний триггеров). Комбинация состояний триггеров определяет двоичное число, значение которого при переходе счетчика в новое состояние увеличивается на единицу или устанавливается равным нулю после достижения максимального значения N — l. Такие переходы счетчика с периодом цикла N = 2 показаны в табл. 8.23.
Переход счетчика в новое состояние связан с переключением триггеров. Для перевода триггеров в требуемые состояния необходимы на его входах определенные логические уровни. В табл. 8.24 показаны все возможные переходы состояния триггера и требуемые для этих переходов логические уровни на входах J и K. Знак “-” означает, что логический уровень на входе может быть произвольным (лог. 0 или 1). Пользуясь этой таблицей, легко построить таблицы истинности для входов J и K всех триггеров счетчика. При этом логические уровни на входах J и K являются функциями текущего состояния и на картах Вейча (табл. 8.25) под а2 и a1 понимается состояние триггеров перед поступлением на вход счетчика очередного импульса.
Пусть к моменту подачи импульса на вход счетчика триггеры находились в состоянии a2 = 0, al = 0. Под действием входного импульса должно быть обеспечено новое состояние a2 = 0, al = l.
Таблица 8.23
Таблица 8.24
Номер входного импульса
Состояние триггеров
Таблица 8.25
Таблица 8.26
Номер
входного
импульса
Состояние триггеров
Следовательно, в триггере Тг1 происходит переход вида 0 — 1, обеспечиваемый при следующих уровнях на информационных входах: Jl = l; K1 = -; в триггере Тг2 переход вида 0 — 0 обеспечивается уровнями J2 = 0, K2 = -. Эти значения занесены в клетки карт Вейча, соответствующие a2 = 0 и al = 0,
Перевод триггеров из состояния a2 = 0; al = l в следующее состояние a2 = l, al = 0 требует подачи на информационные входы триггеров уровней Jl = -; Kl = l; J2 = l; К2 = -. Эти значения нанесены на карты Вейча для состояния a2 = 0, al = l. Наконец, перевод триггеров из состояния a2 = 1, al = 0 в состояние a2 = 0, a1 = 0 требует следующих уровней на входах: J1 = 0; Kl = -; J2 = -; K2 = l.
Состояние a2 = l, al = l в рассматриваемом счетчике не используется, в соответствующие этому состоянию клетки карт записан символ "*", означающий запрещенную комбинацию.
По картам Вейча могут быть получены следующие минимальные логические выражения для информационных входов триггеров: J1 = 2; Kl = l; J2 = a1; K2 = l. Полученные логические выражения определяют способ включения входов J и К триггеров, показанный на рис. 8.48,б.
Построим счетчик с периодом цикла N = 5. В таком счетчике используется три триггера. Изменение состояния триггеров под действием входных импульсов показано в табл. 8.26.
В табл. 8.27 приведены карты Вейча для информационных входов триггеров, из которых следует
J1 = 3; K1 = 1; J2 = a1; K2 = a1; J3 = a1 . a2; K3 =1.
На рис. 8.49 показана схема счетчика.
Приведем пример построения еще одного счетчика с периодом цикла N = 6. Состояния счетчика и карты Вейча для входов J и K триггеров даны соответственно в табл. 8.28 и 8.29.
Таблица 8.27
Таблица 8.28
Таблица 8.28.1
Номер
входного
импульса
Состояние триггеров
Таблица 8.28.2
Логические выражения для входов триггеров
J1 = K1 = 1; J2 = a1 . 3; K2 = a1; J3 = a1 . a2; K3 = a1.
Схема счетчика изображена на рис. 8.50.
Десятичный счетчик.
На рис. 8.41 была показана структура десятичного счетчика. Каждый десятичный разряд такого счетчика — декада — представляет собой двоичный счетчик с периодом цикла, равным N = 10.
В табл. 8.30 и 8.31 представлены состояния декады и карты Вейча для входов ее триггеров. Из карт Вейча могут быть получены следующие логические выражения для входов J и К триггеров декады:
Таблица 8.30
Номер
входного
импульса
Состояние триггеров
Таблица 8.31
На рис. 8.51 приведена схема декады и показана связь со следующей декадой. Как видно из схемы, входными импульсами следующей декады являются импульсы, возникающие на выходе триггера старшего разряда данной декады. В момент отрицательного фронта десятого импульса, поступающего на вход данной декады, триггеры этой декады переходят в состояние 0, на выходе триггера четвертого разряда возникает спад уровня от значения лог. 1 до значения лог. 0. Спад уровня вызывает переход следующей декады в состояние, соответствующее двоичному числу, на единицу большему.
Десятичные счетчики находят широкое применение в тех случаях, когда число поступающих импульсов необходимо представлять в привычной для человека десятичной системе счисления.
Кольцевой счетчик.
В рассмотренных выше счетчиках число поступлений на вход импульсов представляется в форме двоичного числа, цифры разрядов которого выражаются через состояние триггеров. При этом, если требуется получить десятичное представление числа импульсов, к выходам счетчика подключается дешифратор.
На рис. 52 показано подключение дешифратора к декаде десятичного счетчика. В этой схеме уровень лог. 1 появляется на том из выходов дешифратора, десятичный номер которого соответствует двоичному числу в счетчике. В процессе счета с каждым поступлением на вход импульса происходит переход лог. 1 на следующий выход, номер которого на единицу больше.
Неудобства, связанные с необходимостью применения дешифратора, устраняются в кольцевом счетчике. В нем число поступлений импульсов выражается непосредственно в десятичной системе счисления и не возникает необходимости в использовании дешифратора.
Кольцевой счетчик строится в виде сдвигового регистра, в котором выдвигаемая из старшего разряда информация вводится в младший разряд. Схема счетчика показана на рис. 8.53.
В счетчике использовано N триггеров. Перед началом счета импульсом начальной установки триггер Тг0 устанавливается в состояние 1, остальные триггеры — в состояние 0. Этому состоянию счетчика соответствует число О; на выход счетчика, обозначенный цифровой 0, с прямого выхода триггера Тг0 передается лог. 1. Далее каждый из приходящих на вход счетчика импульсов переписывает 1 в следующий триггер и лог. 1 передается на следующий выход, обозначенный цифрой, на единицу большей. Таким образом, по тому, какой из триггеров находится в состоянии 1, т. е. на выходе какого из триггеров возникает уровень лог. 1, выявляется число поступивших на
вход счетчика импульсов непосредственно в десятичной системе счисления.
Кольцевой счетчик обеспечивает высокую скорость работы. Это связано с тем, что единица из одного триггера в другой передается непосредственно (без использования в цепи передачи логических элементов) путем подключения входов J и К каждого триггера соответственно к прямому и инверсному выходам предыдущего триггера.
После подачи N — 1 импульсов в состоянии 1 окажется триггер ТгN-1 а с приходом N-го импульса единица из триггера ТгN-1 перепишется в триггер Тг0 и счет импульсов начнется сначала. Таким образом, период цикла кольцевого счетчика равен числу использованных в нем триггеров. Например, для построения декады десятичного счетчика по принципу кольцевого счетчика потребуется 10 триггеров (вместо четырех триггеров в двоичном счетчике). Таким образом, возможность получения из счетчика чисел непосредственно в десятичной системе счисления достигается существенным увеличением числа используемых в схеме счетчика элементов.
Делители частоты импульсной последовательности.
Делитель частоты — устройство, которое при подаче на его вход периодической импульсной последовательности формирует на выходе такую же последовательность, но имеющую частоту повторения импульсов, в определенное число раз меньшую, чем частота повторения импульсов входной последовательности.
Отличие делителей частоты от счетчиков состоит в следующем. В счетчике каждая комбинация состояний триггеров определяет в некоторой системе счисления число импульсов, поступивших к данному моменту времени. В делителе частоты последовательность состояний может быть выбрана произвольной, важно лишь обеспечить заданный период цикла N. Последовательность состояний выбирается из соображений обеспечения при заданном N наибольшей простоты межтриггерных связей. Эти связи должны выполняться непосредственным соединением выходов одних триггеров со входами других без использования логических элементов. Счетчик, имеющий то же значение N, может выполнять роль делителя частоты, однако следует иметь в виду, что такое решение будет неэкономичным.
Рассмотрим схемы делителей частоты с различными коэффициентами деления N.
Делитель частоты с коэффициентом деления N = 2. Схема делителя приведена на рис. 8.54,а. В моменты отрицательного фронта входных импульсов триггер переключается в новое состояние. Как видно из временной диаграммы на рис. 8.54,а, период импульсной последовательности Твых на выходе триггера оказывается вдвое больше периода Твх следования импульсов на входе. Следовательно, fвых = 1/Tвых = 1/(2Tвх) = fвx/2, т. е. частота следования импульсов на выходе в 2 раза ниже, чем на входе.
Делители частоты с коэффициентом деления N = 2 n . На рис. 8.42,а показано последовательное соединение делителей частоты с коэффициентом деления, равным двум, при котором выход каждого из делителей подключен к входу следующего. На выходе каждого делителя частота следования импульсов вдвое ниже, чем на входе. Так, если частота следования импульсов на входе первого делителя fвх, то на выходе первого делителя она равна fвых1 = fвх/2, на выходе второго fвых2 = fвых1/2 = fвх/2 2 , на выходе третьего делителя fвых3 = fвых2/2 = fвх/2 3 и т. д. При n каскадах подобного деления частота выходной последовательности окажется равной fвых = fвх/2 n , т. е. будет осуществляться деление частоты в N = 2 n раз.
Счетные схемы ЭВМ. Счетчики и сумматоры
Счетными схемами, лежащими в основе построения арифметических устройств ЭВМ, являются счетчики и сумматоры. Любые, даже самые сложные, вычислительные схемы представляют собой комбинацию счетчиков различных разновидностей и сумматоров, реализующих вычисления, как правило, в дополнительном коде (подробно кодирование информации в двоичном коде и соответствующая арифметика представлены в «Заключение» ).
Двоичные счетчики
Счетчиком называют функциональный узел, предназначенный для счета сигналов [1, c. 252].
По мере поступления входных сигналов счетчик последовательно перебирает свои состояния в определенном для данной схемы порядке. В частности, двоичные счетчики, рассматриваемые в настоящем пособии, перебирают последовательность двоичных кодов. В том случае, если последовательность выдается с возрастанием кода, счетчик называется суммирующим, если код уменьшается с приходом каждого счетного сигнала, то счетчик называется вычитающим. Если в счетчике предусмотрено переключение из суммирующего режима в вычитающий и обратно, он называется реверсивным. Количество схем счетчиков огромно [1, 2, 3]. Их изучение является отдельной, обширной темой, и задачей данного курса не является.
Простейший синхронный суммирующий счетчик можно построить на счетных, или Т -триггерах (от англ . toggle — кувыркаться). Счетным Т -триггером называют так называемый JK — триггер , который работает в счетном режиме, когда на J- и K -входы постоянно подана логическая 1. JK — триггер представляет собой соединение двух однотактных D -триггеров-защелок (рис. 9.1.а), на С -входы которых поступают противоположные уровни сигналов.
При подаче и
на выходе нижнего элемента И будет постоянный логический 0, поскольку
, а
. При
она записывается в первый D — триггер , а при отрицательном фронте на
— во второй D — триггер и выдается на выход
всей схемы: формируется передний фронт импульса
. При
на инверсном выходе схемы
первый D — триггер в нулевое состояние, а при
— второй D — триггер и выход
всей схемы переводится в нулевое состояние схемы (формируется задний фронт импульса
) так, как показано на рис. 9.1,б.
Таким образом, в счетном режиме частота входных сигналов уменьшается в два раза. Факт переключения триггера в противоположное состояние при прохождении заднего фронта сигнала отображается на УГО динамическим входом в виде треугольника (рис. 9.1,в и г). Все ранее рассмотренные управляющие сигналы были статическими.
При последовательном соединении нескольких счетных Т-триггеров получаем схему простейшего синхронного счетчика (рис. 9.2,а). При этом выход самого последнего триггера будет являться самым старшим разрядом двоичного кода на выходе счетчика, выход самого первого триггера — младшим разрядом в соответствии с временной диаграммой, представленной на рис. 66,б. Данной схеме соответствует УГО на рис. 9.2.б. Как правило, у счетчиков предусматриваются вход для принудительного сброса в нулевое состояние (когда все триггеры схемы сброшены в
) и выход переноса
, устанавливаемый в 1 в том случае, когда прошла вся последовательность импульсов (рис. 9.2,в). Для схемы 3-разрядного счетчика, представленной на рис. 9.2, это коды от 000_ <2>до 111_<2>.
Выход переноса может быть использован для последовательного соединения нескольких счетчиков с целью повышения разрядности подсчитываемого числа. Такие схемы называются схемами с последовательным переносом. Существуют также и более сложные схемы с параллельным переносом [1, c. 257-262].
Сумматоры
Сумматором называют функциональный узел, выполняющий сложение одно- или многоразрядных двоичных чисел в соответствии с правилами двоичного сложения.
Подробно вопросы двоичной арифметики освещены в «Заключение» . Правила двоичного сложения можно представить в виде таблицы истинности будущей логической схемы (табл. 9.1) двоичного сумматора и построить эту схему по принципам, изложенным в лекции 3.
Входной перенос из младшего по (отношению к текущему) разряда ![]() ![]() ![]() ![]() ![]() | 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 |
Для текущего разряда суммы
Такая схема представляет собой асинхронный RS-триггер.
Он имеет два входа: S (set) – установка, R (reset) – сброс, и два выхода: Q (прямой) и Q с чертой сверху (инверсный, НЕ_Q).
При подаче сигнала логического нуля на оба входа триггера, его выходы будут установлены в произвольное состояние. Допустим, Q = 0, а НЕ_Q =1. Если на вход S подать «1», то состояние выхода Q скачкообразно изменится на «1», а НЕ_Q — на «0». И это состояние будет поддерживаться в независимости от того «0» или «1» подано на вход S, что и является проявлением свойства памяти.
Соответственно, при подаче уровня «1» на вход R выход Q станет «0», а НЕ_Q – «1».
Длительность устанавливающих импульсов может быть очень короткой, и ограничена физическим быстродействием логических модулей, из которых построен триггер.
Ситуация, когда на входах R и S действует высокий уровень, является недопустимой, поскольку при этом схема не может работать корректно. В этом есть недостаток RS-триггера.
RS-триггер также можно построить из двух элементов И-НЕ, такие элементы более распространены:
Установка и сброс триггера на элементах 2И-НЕ, в отличие от предыдущего, производится низким уровнем входного сигнала.
Если к последней схеме добавить еще два вентиля 2И-НЕ, то мы получим синхронный RS-триггер.
Изменение состояния такого триггера производится только при воздействии на вход С (Clock) синхронизирующего (тактового) импульса.
D-триггер
Немного изменив схему синхронного RS-триггера, можно получить D-триггер. (D-delay, задержка). У него только один информационный вход D.
Если на этот вход подать «1», а затем подать импульс на вход C, то на выходе Q будет «1», если на вход подать «0», затем импульс на C, то на выходе Q будет «0». Таким образом, D-триггер осуществляет задержку информации, поступающей на вход.
Если вход D соединить с выходом НЕ_Q, то триггер будет менять свое состояние при каждом изменении состояния входа С от «0» к «1» . При изменении от «1» к «0» состояние триггера меняться не будет. Таким образом, частота выходных импульсов будет вдвое меньше частоты входных импульсов. Такой триггер называется счетным или T-триггером. Делитель частоты используется очень широко в цифровой технике.
Существует разновидность синхронного RS-триггера, не имеющая запрещенной комбинации – JK-триггер. Он имеет три входа: J (вместо R), K (вместо S), и C. Если на оба информационных входа подана «1», то JK-триггер работает как счетный T-триггер с входом C.
Регистр хранения
На триггерах можно строить более сложные цифровые устройства, например такие, как регистры. Регистры предназначены для хранения многобитовой информации, то есть чисел, записанных в двоичном коде.
Рассмотри трех битовый регистр хранения на D-триггерах:
Каждый триггер может хранить один разряд (бит) числа. Вход R служит для установки выходов всех триггеров в нулевое (исходное) состояние перед записью числа, которое подается на входы D0,D1 и D2. При подаче импульса на вход C производится запись информации с этих входов. Информация может храниться сколь угодно долго, пока на вход С не подаются импульсы и подается питание.
Регистр сдвига
Другой разновидностью регистров является регистр сдвига. Он предназначен для преобразования информации путем ее побитного сдвига в ту или иную сторону. На следующем рисунке приведена схема простейшего регистра сдвига информации вправо (по схеме):
В отличие от регистра хранения выход предыдущего триггера соединен с входом последующего. Информация в виде логического уровня подается на вход первого (крайнего слева) триггера. При воздействии импульса на входе C присутствующая на входе D информация записывается в первый триггер. При подаче второго импульса информация из первого триггера переписывается во второй триггер, а в первый записывается информация, которая в этот момент присутствует на входе D, и так далее. Таким образом, с подачей каждого синхроимпульса информация в регистре сдвигается вправо на 1 разряд.
Сдвиговые регистры используются во многих схемотехнических решениях при построении цифровых устройств, прежде всего для преобразования последовательного кода в параллельный, а также для выполнения арифметических операций (умножения и деления на 2)с двоичными числами, организации линий задержки, формирования импульсов заданной длительности, генерирования псевдослучайных последовательностей (кодов) и т.п.
Счетчик
Еще один класс цифровых устройств, которые можно построить на триггерах – счетчики. Как следует из названия, они осуществляют счет входных импульсов в заданном коде и могут хранить результат.
Простейший счетчик с последовательным переносом можно получить с помощью счетных T-триггеров:
Подачей импульса на вход R счетчик приводится в исходное состояние, когда на выходах Q1-Q3 – уровень логического нуля.
На вход C подаются импульсы для счета. С приходом заднего фронта первого импульса первый (левый) по схеме триггер устанавливается в «1». Если читать код справа налево, то он соответствует единице. Для нашего трехразрядного счетчика это код 001. С приходом второго импульса в «1» переключается второй триггер, а первый переключается в «0». Таким образом, код на выходах счетчика будет 010, что соответствует десятичной цифре 2. Следующий импульс установит код 011, то есть 3. Трехразрядный счетчик может досчитать до кода 111, что соответствует десятичной цифре 7. При этом наступает так называемое переполнение счетчика, и с приходом следующего импульса счетчик обнулится.
Поскольку триггеры счетчика соединены последовательно, то и переключаться они будут также последовательно. Этот процесс отображен на графике, из которого видно, что время задержки переключения tз будет удваиваться и утраиваться. С увеличением числа разрядов задержка может оказаться неприемлемой, что является недостатком счетчиков с последовательным переносом.
Для повышения быстродействия применяются счетчики с параллельным переносом, что достигается одновременной подачей входных импульсов на входы всех триггеров счетчика. Это реализуется с помощью введения в схему логических элементов И:
Из схемы видно, что на вход второго триггера счетный импульс поступит только тогда, когда на выходе первого триггера будет «1», а на третий – когда «1» будет на выходах и первого, и второго триггеров. Очевидно, что с увеличением числа разрядов необходимо увеличивать как число логических элементов И, так и число их входов, что, в свою очередь, является недостатком такого типа счетчиков.
Регистры и счетчики, в свою очередь, могут применяться для построения более сложных цифровых устройств: сумматоров, ОЗУ и ПЗУ (оперативных и постоянных запоминающих устройств), АЛУ (арифметическо-логических устройств), входящих в состав процессоров, и так далее, к все более сложным цифровым устройствам.
В следующей серии статей мы начнем знакомство с микроконтроллерами — замечательным классом цифровых микросхем, которые являются настоящими компьютерами, умещающимися в одной микросхеме, и входящими входят в состав большинства электронных устройств, от кофемашины до космического корабля!