Нсанов
Цифровые устройства. Учебник для колледжей
ISBN 9785449318817
Аннотация
Цифровые устройства
Учебник для колледжей
М. А. Нсанов
© М. А. Нсанов, 2018
ISBN 978-5-4493-1881-7
Создано в интеллектуальной издательской системе Ridero
Введение
***
***
З а д а н и я:
1. Указать названия всех элементов, и какие операции они выполняют.
2. Исследовать работу схемы в статическом режиме: по заданным (рис.1.3) значениям
сигналов на входах ЦУ определить значения сигналов на входах и выходах всех элементов.
3. Проанализировать работу схемы в динамическом режиме: построить временные
диаграммы для всех элементов при заданных (рис.1.4) изменениях входных сигналов. Для
некоторого упрощения уровень логического нуля примем равным точно 0 .
О тветы
1. Названия элементов и выполняемые операции (номер каждого элемента стоит над
его изображением в схеме):
1,3 – элементы НЕ , выполняют операцию логического отрицания (инвертирование).
4 – элемент 2И , выполняет операцию логического умножения.
8 – элемент 3И , выполняет операцию логического умножения.
6,7 – элементы 2ИЛИ , выполняют операцию логического сложения.
2,9 – элементы 2И-НЕ , выполняют операцию логического умножения с последующим
инвертированием полученного результата.
5 – элемент 3И-НЕ , выполняет операцию логического умножения с последующим
инвертированием полученного результата.
10 – элементы 2ИЛИ-НЕ , выполняет операцию логического сложения
с последующим инвертированием полученного результата.
2. Исследование работы схемы в статическом режиме. Значения сигналов на выходах
всех элементов показаны на рис.1.5.
Рассмотрим более подробно происходящие процессы.
Со входов Х1 , Х2 , Х3 , Х4 указанные в задании сигналы (рис.3) поступают на входы
элементов (на какие элементы – указано красными стрелками на рис.1.5).
а) Сначала срабатывают элементы 1 , 2 и 3 , стоящие в 1 -й колонке:
– Элемент 1 инвертирует поступающий на его вход сигнал 0 и на выходе формирует
сигнал 1 , который далее проходит на вход элемента 4 (прохождение сигнала указано синей
стрелкой ).
– Элемент 2 выполняет операцию И-НЕ : сначала умножает поступающие на его
входы сигналы 0 и 0 , а затем полученный результат инвертирует. В результате на выходе
элемента формируется сигнал 1 , который далее проходит (синяя стрелка ) на вход
элемента 5 .
– Элемент 3 инвертирует поступающий на его вход сигнал 1 и на выходе формирует
сигнал 0 , который далее проходит (синие стрелки ) на входы элементов 7, 8 и 9 .
б) На следующем этапе срабатывают элементы 4 и 5 , стоящие во 2 -й колонке:
– Элемент 4 выполняет умножение поступающих на его входы сигналов 1 и 1 .
В результате на выходе элемента формируется сигнал 1 , который далее проходит (зеленая
стрелка ) на вход элемента 6 .
– Элемент 5 выполняет операцию И-НЕ : сначала умножает поступающие на его
входы три сигнала 1 , 1 и 1 , а затем полученный результат инвертирует. В результате
на выходе элемента формируется сигнал 0 , который далее проходит (зеленые стрелки )
на входы элементов 6 и 7 .
в) Далее срабатывают элементы 6 и 7 , стоящие в 3 -й колонке:
– Элемент 6 выполняет логическое сложение поступающих на его входы сигналов
1 и 0 . В результате на выходе элемента формируется сигнал 1 , который далее проходит
(желтая стрелка ) на вход элемента 8 .
– Элемент 7 выполняет логическое сложение поступающих на его входы сигналов
0 и 0 . В результате на выходе элемента формируется сигнал 0 , который далее проходит
(желтые стрелки ) на входы элементов 8 и 9 .
г) Затем срабатывают элементы 8 и 9 , стоящие в 4 -й колонке:
– Элемент 8 выполняет умножение поступающих на его входы трех сигналов 1 , 0 и 0
. В результате на выходе элемента формируется сигнал 0 , который далее проходит (розовая
стрелка ) на вход элемента 10 .
– Элемент 9 выполняет операцию И-НЕ : сначала умножает поступающие на его
входы сигналы 0 и 0 , а затем полученный результат инвертирует. В результате на выходе
элемента формируется сигнал 1 , который далее проходит (розовая стрелка ) на вход
элемента 10 .
д) В конце срабатывает элемент 10 , который выполняет операцию ИЛИ-НЕ : сначала
делает логическое сложение поступающих на его входы сигналов 0 и 1 , а затем полученный
результат инвертирует. В результате на выходе элемента формируется сигнал 0 , который
проходит на выход схемы Y .
3. Анализ работы схемы в динамическом режиме.
а) Сначала определим, как меняются сигналы на выходе элемента 1 (рис.1.6а). На вход
этого элемента сигналы поступают со входа X1 (показано красным цветом на рис.1.6а),
которые меняются следующим образом: в первом такте – 0 , во втором – 1 , в третьем – 0 ,
в четвертом – 0 . Элемент 1 – это элемент НЕ , который инвертирует данные поступающие
сигналы и на своем выходе Y1 формирует последовательность 1011 (на рис.1.6а показано
синим цветом).
1 ***Темы, отмеченные звездочками, не были включены в программу предмета ко времени работы над
книгой из-за недостатка времени по учебным планам. Они здесь даются для расширения и углубления знаний
тех учащихся, которым это интересно, а также для помощи при выполнении курсовых работ и дипломных
проектов.
Она может выполнять одновременное преобразование 8 сигналов как от уровня ТТЛ
(ТТЛШ) к МОП, так и от уровня МОП к ТТЛ (ТТЛШ). Входы ЕZ и DEZ предназначены
для управления режимами работы:
– при подаче на вход DEZ сигнала 0 микросхема выполняет преобразование
сигналов МОП уровня в ТТЛ (ТТЛШ) при любом сигнале на входе EZ ;
– при одновременной установке сигналов 1 на входах EZ и DEZ микросхема
выполняет преобразование сигналов ТТЛ (ТТЛШ) уровня в МОП;
– если же на входе EZ установить уровень логического 0 , а на вход DEZ подать 1 ,
то микросхема переходит в Z -состояние.
Следует учесть, что выходные сигналы инвертируются, т.к. на выходах стоит
графический знак операции логического отрицания.
П р и м е ч а н и е. В настоящее время выпускаются микросхемы МОП-структуры,
прямо совместимые со стандартными сериями ТТЛ (ТТЛШ). Например, микросхемы серий
1564, КР1564, КР1594 (аналоги – соответственно серии ММ54НС, ММ74НС и 74АСТ фирмы
«National Semiconductor»).
Любая совершенная нормальная форма (СДНФ или СКНФ) содержит очень большое
количество логических операций, поэтому схемная реализация ЦУ непосредственно
по СДНФ (или по СКНФ) потребует соответствующего числа логических элементов,
которые должны будут выполнять данные операции. Поэтому невольно напрашивается
вопрос: а нельзя ли логические выражения вида СДНФ или СКНФ упростить, чтобы
количество операций (и, соответственно, количество элементов в схеме ЦУ) стало меньше?
Оказывается, что в подавляющем большинстве случаев это сделать можно!
Процесс упрощения логических выражений любой совершенной нормальной формы
записи получил название: минимизация от латинского minimum. Существует несколько
способов ручной минимизации, но практически наиболее простым и наглядным является
метод Вейча (несколько модифицированный метод Карно ), который мы и будем здесь
рассматривать. Его единственным недостатком является невозможность применения для
минимизации логических выражений, содержащих более чем 5 переменных; но т.к. это
случается довольно редко, то с указанным недостатком вполне можно мириться.
Сущность данного метода заключается в применении так называемых карт (диаграмм)
Вейча, которые представляют собой прямоугольники, разделенные на клетки (карты Карно
несколько отличаются от карт Вейча, но суть метода та же; – смотрите окончание данного
параграфа). Количество клеток в карте определяется числом наборов переменных (числом
комбинаций входных сигналов) N = 2n , где n – это количество переменных; причем каждой
клетке строго соответствует свой набор переменных, определяемый по обычной
координатной сетке.
Рассмотрим два наиболее часто встречающихся случая:
1. Для ЦУ с n = 3 входами максимальное число наборов переменных (смотрите
таблицы 2.1 и 2.2 таких устройств) равно 2n = 23 = 8 , следовательно и карта Вейча будет
иметь 8 клеток (рис.2.5):
Х1·Х2·X3′ X1·X2′·X3′;
легко проверить, что выражение в скобках при любых значениях X2 (0 или 1 ) дает 1
, тогда:
X1·X3·1 = X1·X3 .
Очевидно, что при объединении всех клеток любой карты сокращаются все
переменные, и результат «склеивания» дает 1 .
Из сравнения полученных результатов можно сделать вывод : чем больше
объединяется клеток, тем проще получается результат «склеивания» , т.е. итоговое
логическое выражение содержит меньше операций, и, соответственно, схема ЦУ будет иметь
меньше логических элементов.
Теперь приведем порядок минимизации :
– Чертим карту Вейча с нужным количеством клеток.
– Клетки карты, соответствующие минтермам СДНФ (или СКНФ) обозначаем
символом «1 ».
– Объединяем все клетки с «1 ». Количество клеток в каждом объединении должно
быть максимальным, а самих областей объединения должно быть как можно меньше. П р
и м е ч а н и е: любое количество клеток с «1 » могут одновременно входить в две или
больше области объединения.
– В каждой области производим операцию «склеивания», в результате чего получаем
многочлены минимальной формы: МДНФ или МКНФ.
Приведем несколько примеров минимизации:
***
Сравнивая эти результаты с МДНФ примера 1 данной темы и примера из темы 2.8, мы
легко убеждаемся, что они полностью совпадают с полученными при использовании карт
Вейча.
П р и м е ч а н и я к таблице:
1. Названия заголовков устанавливаются стандартом и их обязательно нужно
сокращать именно так, как показано в табл.2.3.
2. Размеры таблицы также устанавливаются стандартом:
– ширина колонок по порядку слева направо: 20 (Позиционное обозначение),
110 (Наименование), 10 (Количество), 45 (Примечание) мм;
– высота строки заголовков – 15 мм;
– высота всех остальных строк – не менее 8 мм.
3. В колонке «Примечание» мы в дальнейшем будем указывать количество элементов
из указанной микросхемы, которые в данной схеме использоваться не будут.
Выполним анализ работы ЦУ хотя бы в одном статическом режиме (рис.2.25). Для
этого на входы подадим цифровые сигналы, например: Х1 = 1 , Х2 = 0 , Х3 = 0 . По схеме,
последовательно указывая значения сигналов на входах и выходах всех элементов (см. тему
1.2), определяем, что на выходе ЦУ формируется сигнал Y1 = 1 . Сравниваем полученный
результат с таблицей истинности данного ЦУ (соответствующая строка выделена красным
цветом в табл.2.1) и делаем вывод: в данном случае (при заданных значениях входных
сигналов) устройство сработало правильно.
Т = 3τ = 3·8 = 24 нс;
– со входа Х1 через 4 элемента – D1.1, D3.1, D4.1 и D4.2 (этот путь
на рис.2.24 выделен жирной синей линией);
Т = 4τ = 4·8 = 32 нс;
– со входа Х2 через 3 элемента – D2.1, D4.1 и D4.2;
Т = 3τ = 3·8 = 24 нс;
– со входа Х2 через 4 элемента – D1.2, D3.1, D4.1 и D4.2;
Т = 4τ = 4·8 = 32 нс;
– со входа Х3 через 3 элемента – D2.1, D4.1 и D4.2;
Т = 3τ = 3·8 = 24 нс;
– со входа Х3 через 3 элемента – D1.3, D3.2 и D4.2;
Т = 3τ = 3·8 = 24 нс.
Таким образом, для данной схемы максимальная задержка составляет Т = 4τ = 4·8 =
32 нс.
П р и м е ч а н и е. Строго говоря, полученное численное значение (в данном случае
32 нс) особого значения не имеет, так как задержка (да и аппаратурные затраты тоже)
используются в основном для сравнительной оценки качества различных вариантов схем
одного и того же ЦУ. Кроме этого, схема может строиться не на микросхемах логических
элементов, а включаться целиком в состав какой-либо другой микросхемы, что приведет
к существенному уменьшению задержки из-за сокращения линий связи между элементами
внутри микросхемы, выполненной по интегральной технологии. Поэтому в большинстве
случаев достаточно оперировать величиной Т = 4τ , не указывая его численное значение.
Приведем ряд других примеров, но уже без подробных пояснений.
Y2 = X1′·X3′ X1·X2·X3 .
= 1,16 корпуса; T = 3τ .
Y3 = X3′ X1′·X2
A = A′′ .
(X1·X2)′ = X1 / X2 .
Переходим к базису И-НЕ . Для этого сначала используем закон двойного отрицания:
Y2 = X1′·X3′ X1·X2·X3 .
= [(X1′/X3′) / (X1/X2/X3)].
Y3 = X3′ X1′·X2 .
A = A′′
(B·C·D·…)′ = B′ C′ D′ …
(X1 X2)′ = X1 ↓ X2 .
Примечание:
В итоговом логическом выражении должны содержаться только операции ИЛИ-НЕ
. Но кроме них, как правило, остаются все-таки операции НЕ , которые в данном случае
следует выполнять с помощью элементов 2ИЛИ-НЕ путем объединения входов этих
элементов.
Пример 1. МКНФ (см. пример 4 из темы 2.2):
= X1 / X2′ / X3 .
***
Но здесь нужно учесть, что в данной микросхеме на выходе стоит элемент ИЛИ-НЕ ,
поэтому выходной сигнал получится инвертированным. Чтобы получить на выходе все-таки
прямое значение сигнала, выполним его повторное отрицание с помощью еще одного
элемента НЕ из микросхемы КР1533ЛН1.
Строим схему ЦУ (рис. 2.40):
П р и м е ч а н и е: один элемент 3И из микросхемы КР1533ЛР13 получается
лишним. В схеме рис. 2.40 его входы оставлены свободными , но этого делать нельзя !
В микросхемах ТТЛ и ТТЛШ-структур входы лишних элементов обязательно следует
куда-либо подключить , иначе данная ИМС работать не будет (смотрите тему 2.9).
Определим количество внешних соединений между элементами:
– в схеме рис. 2.25, построенной по исходной МДНФ: 8 ;
– в схеме рис. 2.40: 5 .
Это подтверждает сказанное ранее: использование комбинированных ИМС уменьшает
количество внешних соединений между элементами микросхем.
Подсчитаем аппаратурные затраты и задержку:
Как уже было сказано ранее, в цифровой технике числа удобнее всего представлять
двоичным кодом, а мы все в повседневной жизни привыкли иметь дело с числами в десятичной
системе счисления. Поэтому при проектировании и эксплуатации цифровой аппаратуры
возникает необходимость преобразования чисел из десятичной системы счисления в двоичную
и наоборот. Здесь мы сразу сталкиваемся с первым неприятным моментом: в подавляющем
большинстве случаев такой перевод производится не с абсолютной точностью,
а лишь приблизительно.
Рассмотрим принцип преобразования для обоих случаев:
А. Из десятичной системы счисления в двоичную.
Для перевода целой части числа ее нужно последовательно делить на 2 с записью остатков
деления справа налево.
Для перевода дробной части числа ее нужно последовательно умножать на 2 с записью
получаемых целых частей сверху вниз. Количество операций умножения определяется
задаваемой заранее точностью перевода.
Пример 1. Десятичное число 275,68 перевести в двоичную систему счисления с точностью
до пятого знака после запятой. Перевод целой части показан на рис.3.1а, дробной части –
на рис.3.1b.
Ответ:
275,68 (10) ≈ 100010011,10101 (2).
N = ΣAn· 2 n, где:
Ответ:
10110101,011 (2) = 1×2 7 + 0×2 6 + 1×2 5 + 1×2 4 + 0×2 3 + 1×2 2 + 0×2 1 + 1×20 + 0×2 —1 + 1×2 —2 +
1×2 —3 = 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 + 0 + 1/2 2 + 1/2 3 = 181 + 1/4 + 1/8 = 181 + 0,375 = 181,
375 (10).
Как видно из приведенных примеров, при переводе чисел из десятичной системы счисления
в двоичную и наоборот (особенно если числа большие!) используется значительное количество
разных и достаточно сложных действий, из-за чего реализация таких переводов аппаратными
средствами становится нерациональной. Поэтому для представления десятичных чисел
в цифровой технике используется две разновидности кодов:
– Только что рассмотренный нами двоичный код (см. табл.3.1—3.3) соответствующей
разрядности (здесь еще раз обратите внимание на пункты 1—4 настоящего параграфа!). Он
практически применяется в тех случаях, когда числа небольшие (обычно в пределах 15).
– Какой-либо двоично-десятичный код (см. табл.3.4), если числа большие (больше 15).
В этом случае десятичные числа не переводятся в двоичный код, а оставляются в десятичной,
но при этом каждая десятичная цифра заменяется определенной комбинацией нулей и единиц.
A = X1 \/ X3 \/ X5 \/ X7 \/ X9.
B = X2 \/ X3 \/ X6 \/ X7.
C = X4 \/ X5 \/ X6 \/ X7.
D = X8 \/ X9.
При записи подобных логических выражений можно подойти с другой стороны, например:
сигнал 1 на выходе А формируется, если подается активный сигнал (см. табл.3.7) на вход
цифры 1, ИЛИ на вход цифры 3, ИЛИ на вход цифры 5, ИЛИ на вход цифры 7, ИЛИ на вход
цифры 9.
4. Переходим к базису И-НЕ и определяем требуемое количество логических элементов:
Y0 = D′·C′·B′·A′; Y5 = D′·C·B′·A;
Y1 = D′·C′·B′·A; Y6 = D′·C·B·A′;
Y2 = D′·C′·B·A′; Y7 = D′·C·B·A;
Y3 = D′·C′·B·A; Y8 = D·C′·B′·A′;
Y4 = D′·C·B′·A′; Y9 = D·C′·B′·A.
Y0′ = (D′·C′·B′·A′)′.
В правой части мы сразу получаем операцию И-НЕ, которую записываем более компактным
способом с помощью символа «штрих Шеффера»:
Y0′ = D′ / C′ / B′ / A′.
Это одна операция, в которой участвуют 4 сигнала, поэтому и выполняться она
должна однимэлементом 4И-НЕ.
В левой части мы видим, что выход Y дешифратора получается инверсным.
Так как остальные логические выражения имеют такую же структуру, то для них переход
к базису И-НЕ производится аналогично, поэтому сразу же записываем конечные результаты:
Функции четырех переменных Х1, Х2, Х3, Х4 выгоднее всего можно реализовать с помощью
мультиплексоров, имеющих 8 информационных входов D0…D7 и три адресных A0, A1, A2.
Здесь в качестве адресных используем любые три переменные,
например: X2 (A0), X3 (A1) и X4 (A2). Каждому входу D опять же соответствует свой многочлен
СДНФ (не учитывая стробирующий вход) и своя область в карте Вейча для минимизации
заданной функции (рис. 3.32).
Пример 1. Разработать схему ЦУ на базе мультиплексора (он выполняет роль ПЛИС),
реализующую функцию Y1 (см. табл. 2.1). Она является функцией трех переменных, поэтому
используем мультиплексор на 4 информационных входа и карту Вейча на 8 клеток.
1. Записываем СДНФ (см. тему 2.1):
2. Минимизируем это выражение методом Вейча. Для этого чертим карту Вейча, заполняем
ее, производим объединение клеток в каждой области D отдельно, пользуясь рис. 3.32,
и записываем результаты минимизации опять же для каждой области D отдельно (рис.3.35).
D0 = 0; D1 = X1; D2 = 0; D3 = X1;
D4 = 0; D5 = 1; D6 = X1′; D7 = X1.
0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1;
1 + 1 = 10 (это цифра 2 в двоичном коде).
Если при арифметическом сложении чисел результат сложения двух цифр в каком-либо
разряде представляет собой число, состоящее из двух цифр, то младшая цифра этого числа
непосредственно заносится в ответ, а старшая учитывается при сложении цифр следующего
разряда. Последняя называется переносом из данного разряда в следующий
и обозначается Р, С или CR (от английского carry). Из результата 10 арифметического сложения
(1 + 1) сигнал 0 записывается в ответ («ноль пишем»), а сигнал 1 является переносом
в следующий разряд («один в уме»).
С учетом вышесказанного приведем пример арифметического сложения двух
многоразрядных (в данном случае четырехразрядных) кодов (рис.3.37).
Y = C4 \/ Z = C4 \/ (Σ3·Σ2 \/ Σ3·Σ1).
Для реализации полученного логического выражения
потребуются 2 элемента 2И и 1 элемент 3ИЛИ(элементы 3ИЛИ не впускаются в виде отдельных
микросхем, но в данном случае наша задача – лишь разобраться со структурой БДК).
Строим схему блока десятичной коррекции (рис. 3.47).
Пример:
А = 810 = 1000 2;
В = 510 = 0101 2;
А – В = 8 – 5 = 3 10 = 0011 2.
Входы А> В, А=В, А <В предназначены для наращивания (увеличения) разрядности: если
разрядность сравниваемых кодов больше четырех, то необходимо использовать две или более
таких микросхемы, причем выходы А> В, А=В, А <В одной микросхемы (выполняющей
сравнение младших разрядов) присоединяются к соответствующим входам другой микросхемы
(выполняющей сравнение следующих разрядов) и т.д., то есть аналогично наращиванию
разрядности сумматоров (смотрите рис.3.44 из темы 3.14).
У компаратора, выполняющего сравнение младших разрядов (а также при использовании
одной микросхемы), на входах А>В, А<В должен быть установлен постоянный уровень сигнала
логического 0, а на входе А=В – постоянный уровень логической 1. Предлагается учащимся
подумать и логически объяснить значения сигналов на указанных входах.
На рис. 3.51 показано срабатывание ИМС при сравнении двоичных
кодов А = 10112 = 1110 и В = 11102 = 1410, которые подаются на соответствующие
входы А и В микросхемы. На входах А>В, А=В, А<В устанавливаются указанные в предыдущем
абзаце уровни сигналов. Ясно, что число А меньше числа В, поэтому активный
сигнал 1 формируется на выходе А<В, на остальных выходах формируются пассивные
сигналы 0.
3.18. Арифметико-логические устройства (АЛУ)
АЛУ (ALU – arithmetic and logic unit) – это многофункциональное цифровое устройство,
выполняющее определенный набор арифметических, логических и комбинированных операций.
Содержит все необходимые для этого элементы и устройства, с которыми мы уже знакомы.
Микросхемы АЛУ относятся к группе прочих ЦУ, поэтому маркируются буквами ИП.
Рассмотрим для примера микросхему 4-разядного АЛУ КР1533ИП3 (рис. 3.52), аналогом
которой является микросхема SN74LS181 фирмы «Texas Instruments».
Если у восьми разрядов входного кодового слова нечетное количество единиц (Q = 0),
а со входа I приходит сигнал 0, то во всех девяти разрядах количество единиц остается
нечетным, поэтому на выходе EVEN формируется 0.
Если опять же у восьми разрядов входного кодового слова нечетное количество единиц (Q =
0), но со входа I приходит сигнал 1, то во всех девяти разрядах количество единиц становится
четным, поэтому на выходе EVEN формируется 1.
Рассуждая аналогичным образом, дополняем таблицу 3.25 для оставшихся двух вариантов
Теперь видно, что полученная табл. 3.19 представляет собой таблицу истинности
элемента «исключающее ИЛИ». Если кроме этого учесть, что
выходы EVEN и ODD микросхемы контроля четности комплементарные, то сигнал
на выходе ODD будет всегда противоположен сигналу на выходе EVEN, и тогда окончательная
структура схемы контроля четности примет вид, изображенный на рис. 3.55.
П р и м е ч а н и е: полученная схема является наиболее простой, хотя ее можно реализовать
и на других логических элементах.
3.20. Обнаружение ошибок
при передаче и хранении информации
с помощью схем контроля четности
Рассмотрим, как с помощью микросхем контроля четности можно
выявить одиночную ошибку при передаче по каналу связи информации,
выраженной 8-разрядным кодовым словом (рис. 3.56).
Одновременно с передачей по каналу 8-разрядного кодового слова все его разряды заводятся
на первую схему контроля четности в передающей части (на девятом входе этой микросхемы
следует установить постоянный уровень логического 0, не влияющий на результат проверки
четности), которая выдает флаг четности 1 (если в кодовом слове четное количество единиц)
или 0 (при нечетном количестве единиц) в дополнительную линию контроля по четности.
Восемь информационных разрядов вместе с флагом четности образуют 9-разрядное кодовое
слово, которое и передается по каналу. Очевидно, что в нем будет всегда нечетное количество
единиц: если в 8-разрядном коде четное количество единиц, то флаг четности 1 меняет общее
количество единиц в 9-разрядном коде на нечетное; если же в 8-разрядном коде нечетное
количество единиц, то флаг четности 0 оставляет общее количество единиц нечетным.
После прохождения по каналу 9-разрядное кодовое слов (включая флаг четности в линии
контроля по четности) передается на входы второй схемы контроля четности уже в приемной
части. Если эта схема выдаст пассивный сигнал 0, то количество единиц осталось нечетным, то
есть при передаче по каналу искажения информации не произошло (нет ошибки). Если же
указанная схема контроля четности выдаст активный сигнал 1, то, следовательно, кодовое слово
при передаче изменилось и сумма единиц в нем стала четной; то есть при передаче информации
по каналу произошла ошибка – ошибка, выявленная контролем по четности.
Такой способ контроля позволяет обнаружить одиночную ошибку, а также несколько ошибок
с нечетной кратностью (то есть ошибки в 3, 5 и т. д. разрядах кодовых слов), но он не способен
выявить несколько ошибок с четной кратностью.
Кроме этого, указанный способ позволяет лишь обнаружить ошибку, но не исправить ее.
С помощью контроля четности можно также обнаружить одиночные ошибки в работе
устройств, предназначенных для хранения информации, таких, например, как ЗУ (см. тему 4.18).
В этом случае одна схема контроля четности ставится на информационных входах, а вторая –
на информационных выходах.
Дальнейшее развитие принципа контроля по четности приводит к корректирующему коду
Хэмминга, который позволяет не только обнаруживать, но и исправлять одиночные ошибки.
К сожалению, этот материал выходит за рамки данного предмета для колледжей.
3.21. Узлы мажоритарного контроля
Самым простым, пожалуй, способом обнаружения и устранения одиночных ошибок
не только при передаче и хранении информации, но и вообще в любых блоках цифровой
аппаратуры является тройное резервирование: устанавливаются три одинаковых цифровых
блока, на каждый из которых из канала подаются все входные сигналы. Соответствующие друг
другу выходы всех трех блоков подключаются к узлу мажоритарного контроля (см. рис. 3.57),
который обнаруживает и устраняет появляющиеся одиночные ошибки, выдавая на свой выход
и далее в канал правильные сигналы. Количество узлов мажоритарного контроля (УМК)
определяется числом выходов каждого блока.
Любой УМК (рис. 3.57) состоит из мажоритарного элемента и элемента AER.
Минимизируем оба этих выражения методом Вейча (рис. 3.58) и запишем МДНФ для
выходов HBи LB.
Для реализации полученных логических выражений
потребуются 3 элемента НЕ, 4 элемента 2Ии 2 элемента 2ИЛИ.
Строим структуру схемы AER (рис. 3.59).
Любой интегральный триггер имеет два комплементарных выхода (см. рис. 4.1):
прямой Q и инверсный Q′.
Интегральные триггеры могут иметь входы следующего назначения:
R (reset), K – входы сброса (в ноль). При подаче активного сигнала на такой вход триггер
устанавливается в состояние 0, то есть на его прямом выходе устанавливается уровень
логического 0.
S (set), J – входы установки (единицы). При подаче активного сигнала на такой вход триггер
устанавливается в состояние 1, то есть на его прямом выходе устанавливается уровень
логической 1.
D (data) – информационный вход. На прямом выходе триггера устанавливается такой же
сигнал, какой подается на вход D.
T (complementing) – счетный вход. При подаче активного сигнала на такой вход триггер
переключается в другое состояние, то есть тот уровень сигнала, который удерживался на выходе
триггера в предыдущий момент времени, меняется на противоположный.
C (sync) или CLK (clock) – синхронизирующий вход. Подача активного сигнала на такой
вход дает разрешение на срабатывание триггера, причем жестко определяя момент
срабатывания (см. тему 4.2). Триггеры, имеющие вход C, называются синхронными,
не имеющие такого входа – асинхронными. Асинхронные триггеры практически встречаются
редко.
4.2. Управление интегральными триггерами
По способу управления входы интегральных триггеров могут быть статическими (см. тему
3.2) и динамическими, для которых активным сигналом является импульс, изображенный
на рис.4.2a (точнее, фронт импульса, то есть перепад напряжения на входе с уровня
логического 0 до уровня логической 1 или наоборот).
Динамические входы могут быть:
1. Прямые динамические, для которых активным сигналом является положительный
перепаднапряжения (передний фронт положительного импульса) от уровня
логического 0 до уровня логической 1 в момент t1 (см. рис. 4.2a). В технической и справочной
литературе такой активный сигнал принято обозначать: _|¯, ↑, Р или POS (positive-going
edge – положительный перепад).
Два варианта изображения этих входов приведено на рис. 4.2b.
2. Инверсные динамические, для которых активным сигналом является отрицательный
перепаднапряжения (задний фронт положительного импульса) от уровня
логической 1 до уровня логического 0 в момент t2 (см. рис. 4.2a). В технической и справочной
литературе такой активный сигнал принято обозначать: ¯|_, ↓, N или NEG (negative edge –
отрицательный перепад).
Два допустимых стандартом изображения этих входов приведено на рис. 4.2c.
Динамическими, как правило, делают синхронизирующие входы С. В этом случае
соответствующий перепад напряжения (перепад логических уровней) на таком входе дает
разрешение на срабатывание триггера, а момент перепада t1 или t2 жестко определяет момент
срабатывания триггера.
4.3. Структура и особенности работы
интегральных триггеров
1. RS-триггеры.
2. JK-триггеры.
4. T-триггеры.
5. MS-триггеры.
Для записи кодового слова (например, кода 1011) в регистр все сигналы этого кода подаются
на информационные входы этого регистра одновременно (как уже было указано в конце пункта
2 темы 4.3, соответствующие уровни сигналов на информационных входах должны быть
установлены заранее, до момента подачи синхросигнала на вход C). Затем
на синхронизирующий вход C подается разрешающий срабатывание импульс синхронизации
(в данном случае P – положительный перепад напряжения данного импульса, так как указанный
вход C прямой динамический), и все триггеры регистра срабатывают под действием сигналов
на входах D: на выходах триггеров устанавливаются такие же логические уровни.
После этого регистр автоматически переходит в режим хранения. Положительный перепад
напряжения импульса синхронизации вызвал срабатывание регистра, а после окончания
импульса на входе С устанавливается постоянный уровень логического 0, при котором триггеры
регистра срабатывать не будут даже при изменении сигналов на информационных входах D.
И записанное в регистр кодовое слово сохраняется на выходах в виде соответствующих уровней
напряжения до подачи на вход С следующего синхросигнала. Регистры с тремя состояниями
выходов при хранении информации переходят в Z-состояние.
Вывод информации из параллельного регистра обычного типа не требует специальных
дополнительных действий: хранящийся код при необходимости просто снимается с выходов.
Если же регистр имеет три состояния выходов, то для выдачи хранящегося кодового слова его
следует вывести из Z-состояния.
Решение данного примера уже было показано в теме 4.6 на рис.4.17. Но в данной микросхеме,
в отличие от рис.4.17, выходы вместо Q0,Q1,Q2,Q3 обозначены QA, QB, QC, QD.
В данном случае первым сигналом кода 1010, подлежащим записи, является сигнал старшего
разряда 1, чтобы он в конце записи установился на выходе QD старшего разряда регистра,
передвигаясь в процессе ввода от младшего разряда к старшему (при последовательной записи
со сдвигом влево запись следует начинать с сигнала 0 кода 1010, чтобы он в конце записи
установился на выходе QАмладшего разряда регистра, передвигаясь в процессе ввода
от старшего разряда к младшему).
Снова, как и в примере 3, на асинхронном входе сброса CLR следует установить пассивный
уровень логической 1, иначе запись происходить не будет (напомним, что при подаче активного
сигнала 0 на вход CLR все остальные входы блокируются).
На входах выбора режима работы S1,S0 устанавливаются сигналы 01 (см. табл. 4.2),
обеспечивающие режим последовательной записи со сдвигом вправо. На информационном
входе SR для последовательной записи со сдвигом вправо устанавливается уровень
логической 1 (первый сигнал 1 кода 1010). Послеэтого на вход CLK подается синхросигнал
(в данном случае положительный перепад напряжения, так как указанный вход прямой
динамический), в результате поданный на вход SR сигнал 1 записывается в первый триггер (см.
рис. 4.19) и устанавливается на выходе QA. Хранившийся ранее на этом выходе
сигнал 0 вытесняется вниз и появляется на выходе QB, в свою очередь сдвигая вниз все
остальные сигналы.
Код 01 на входах S1,S0 одновременно с включением цепи для последовательной работы
со сдвигом вправо SR – QD (см. рис. 4.19) отключает последовательную цепь со сдвигом
влево SL – QAи параллельные цепи A…D – QA… QD. Поэтому значения сигналов
на информационном входе SL для последовательной записи со сдвигом влево
и на информационных входах A…D для параллельной записи в данном случае безразличны, так
как они все равно записываться в регистр не будут.
Пример 5. Показать полностью процесс последовательной записи в регистр
кода 1010 со сдвигом вправо при помощи временной диаграммы, если перед началом записи
регистр (как в примере 4) был сброшен в ноль (в принципе безразлично, какой код хранился
в регистре до начала записи, так как в процессе загрузки он все равно будет вытеснен
из регистра; указанное условие принято просто для определенности), а на входе SR удерживался
уровень логического 0 (опять же безразлично, какой сигнал был на входе SR, потому что
до подачи первого синхроимпульса он все равно не будет записываться в регистр; указанное
условие снова принято просто для определенности). Ответ приведен на рис. 4.24а.
Еще раз напоминаем: соответствующие уровни сигналов на информационном
входе SRустанавливаются в каждом тактовом интервале заранее, до момента подачи очередного
синхросигнала на вход СLK.
При необходимости последовательный вывод информации из регистра осуществляется
вытеснением хранящегося кодового слова любыми другими сигналами, которые подаются
на информационный вход SR, по синхросигналам на входе СLK.
На рис. 4.24b показан последовательный вывод со сдвигом вправо на выход QD (см. рис.
4.19) хранящегося в регистре кодового слова 1010, которое в данном случае вытесняется
подающимися на вход SR сигналами 0. Для полного вывода кодового слова на выход QD здесь
достаточно трех синхросигналов, так как первый сигнал 1 кода 1010 уже находился
на выходе QD до начала процесса вывода.
П р и м е ч а н и е. На диаграммах показано, что переключение любого триггера регистра
и установка на его выходе нового уровня сигнала происходит одновременно с положительным
перепадом напряжения на входе СLK. На самом деле это не совсем так: установка нового уровня
сигнала на выходе по отношению к положительному перепаду напряжения
на входе СLK происходит с задержкой, равной времени задержки распространения сигнала для
данного триггера. Но принятый на рис.4.24 относительный масштаб времени эту величину
увидеть просто не позволяет.
Из приведенных примеров видно, что рассмотренная микросхема регистра К555ИР11 может
производить прием информации в параллельной форме со входов A…D, а выдачу – не только
в параллельной форме на выходы QA… QD, но и в последовательной как со сдвигом вправо
на выход QD, так и со сдвигом влево на выход QA (см. рис. 4.19). Она также может
осуществлять прием информации в последовательной форме со сдвигом вправо
со входа SR и со сдвигом влево со входа SL, а выдачу – в параллельной форме на выходы QA…
QD, и в последовательной как со сдвигом вправо на выход QD, так и со сдвигом влево
на выход QA. Поэтому подобного типа регистры иногда используются для преобразования
потоков информации из последовательной формы в параллельную (см. тему 1.1) и наоборот.
4.8. Регистровые файлы
При необходимости одновременного хранения нескольких кодовых слов организуются блоки
регистровой памяти – регистровые файлы. В качестве примера можно привести микросхему
КР1533ИР26 (рис. 4.25), аналогом которой является микросхема SN74LS670 фирмы «Texas
Instruments».
Она содержит четыре адресуемых 4-разрядных регистра параллельного действия с тремя
состояниями выходов.
Назначение выводов:
RDA, RDB (от английского read – читать) – адресные входы при считывании (выводе
информации из регистра). Сюда подается двухразрядный код номера того регистра, из которого
нужно вывести код на выходы QA… QD.
ERD (enable read) – разрешение считывания. При наличии на этом входе пассивного уровня
сигнала выходы микросхемы переводятся в Z-состояние.
Раздельная система адресации и разрешения для записи и считывания позволяет
одновременно производить запись по одному адресу и считывать по другому.
При необходимости одновременного хранения более четырех кодовых слов
преимущественно применяются уже другие специальные микросхемы (см. тему 4.18).
4.9. Счетчики. Основные понятия
и классификация
Счетчик – это цифровое устройство, выполняющее подсчет поступающих на его счетный
входцифровых сигналов (практически всегда – импульсов). Используются они очень широко,
в большинстве блоков цифровой аппаратуры.
Очевидно, что в процессе счета любой счетчик должен запоминать получаемые результаты
и хранить их в паузе между поступающими на счетный вход импульсами. Поэтому основными
составляющими структуры любого счетчика являются элементы памяти – интегральные
триггеры. Количество триггеров в счетчике «n» определяется из соотношения 2n ≥ N. Для
построения счетчика в принципе можно применять любые триггеры, однако наиболее простые
схемы получаются при использовании Т– или JK-триггеров.
Обычные типовые счетчики начинают счет с нуля, а последний импульс цикла возвращает
счетчик в исходное нулевое состояние. В некоторых счетчиках предусмотрена возможность счет
начинать не с нуля, а с любого другого числа в пределах его модуля счета (см. §4.12).
По направлению счета различают счетчики трех видов:
1. Суммирующие (прямого счета), у которых каждый поступающий на счетный вход
импульс увеличивает число в счетчике на единицу.
2. Вычитающие (обратного счета)), у которых каждый поступающий на счетный вход
импульс уменьшает число в счетчике на единицу.
3. Реверсивные (с изменением направления счета), которые способны работать как в режиме
суммирования, так и в режиме вычитания. Такие счетчики могут быть двух видов:
– имеют два счетных входа (как на рис.4.47): при поступлении импульсов на один вход (UP)
они будут суммироваться, на другой (DOWN) – вычитаться;
– с одним счетным входом, тогда такой счетчик будет иметь дополнительный вход
управления режимами работы (например, UP/DOWN′): при подаче на этот вход
сигнала 1 счетчик переходит в режим суммирования, при 0 – в режим вычитания.
Одним из главных параметров любого счетчика является коэффициент счета (цикл счета,
модуль счета, коэффициент деления, емкость) N (или M, или P в различных учебниках и другой
технической литературе). Он показывает, какое максимальное количество импульсов способен
подсчитать данный счетчик.
По коэффициенту счета различают следующие типы счетчиков, формирующие результат
счета двоичным кодом:
1. Двоичные, имеющие коэффициент счета N =
2n: 2 (одноразрядные), 4 (2-разрядные), 8 (3-разрядные) и т. д. В изображении таких счетчиков
ставится обозначение: СТ2.
2. Двоично-десятичные (декадные) с коэффициентом счета N = 10, которые
обозначаются: СТ2/10.
3. Счетчики с другим (не равным 2n или 10) фиксированным коэффициентом счета.
4. С переменным управляемым коэффициентом счета. В изображении двух последних
типов счетчиков ставится обозначение: СТ.
В процессе счета, так же как и при выполнении арифметического сложения (см. тему 3.16),
должны формироваться сигналы переноса из одного разряда в следующий. По способу
организации переносасчетчики могут быть с последовательным и параллельным переносом..
4.10. Счетчики с последовательным переносом. Деление частоты
Последовательный способ организации переноса обычно применяется в двоичных счетчиках,
причем для их построения в основном используются Т-триггеры с динамическим входом Т. Для
примера приведем структуру суммирующего трехразрядного двоичного счетчика
с коэффициентом счета N = 2 3 = 8 (рис. 4.27). Результат подсчета поступающих на счетный вход
импульсов формируется на выходах QА, QВ, QС в виде трехразрядного двоичного кода.
Здесь счетчик представляет собой цепочку последовательно соединенных триггеров
с динамическими входами Т, где подлежащие подсчету импульсы поступают и воздействуют
на вход Т только первого триггера. На второй триггер действуют сигналы с выхода первого,
на третий – с выхода второго. Таким образом, сигналы переноса в данном случае
передаются последовательно.
Проиллюстрируем работу такого счетчика с помощью временной диаграммы (рис. 4.28). При
построении диаграммы предположим, что перед началом работы счетчик был сброшен в ноль,
а также учтем, что в схеме стоят Т-триггеры с инверсным динамическим входом Т, срабатывание
которых происходит от отрицательного перепада напряжения на данном входе (эти моменты
показаны на рис. 4.28 штриховыми линиями).
Отрицательный перепад каждого входного импульса будет переключать первый Т-триггер
в другое состояние, а формирующиеся в процессе счета на выходах триггеров отрицательные
перепады напряжения будут являться сигналами переноса и переключать последующие
триггеры. По диаграмме несложно проследить, что входные импульсы последовательно
увеличивают число в счетчике на 1 (то есть данный счетчик является суммирующим),
а последний 8-й импульс вернет счетчик в исходное нулевое состояние.
Задание учащимся: Построить временную диаграмму двоичного трехразрядного счетчика
с последовательным переносом на Т-триггерах с прямым динамическим входом Т. Какой
счетчик получается в этом случае?
Задания учащимся:
– Построить временную диаграмму и ответить на вопрос: какой счетчик мы получили?
– Построить временную диаграмму для аналогичной схемы, но построенной на Т-триггерах
с прямым динамическим входом Т, и ответить на вопрос: какой счетчик получается в этом
случае?
Вернемся к временной диаграмме (рис. 4.28) и обратим внимание на следующий момент:
на всех выходах (QА, QВ, QС) счетчика в процессе счета формируются прямоугольные
импульсы, но с меньшей частотой следования (большим периодом повторения), чем на счетном
входе. Поэтому любой счетчик может использоваться не только для подсчета импульсов,
но и в качестве делителя частоты. Именно из-за этого цифровые счетчики часто
называют счетчиками-делителями, а их коэффициент счета – коэффициентом деления.
Рассмотрим, какое деление может выполнять рассмотренный трехразрядный двоичный
счетчик. На выходе QА период повторения импульсов ТвыхА получается (см. рис. 4.28) в два раза
больше по сравнению с частотой повторения входных импульсов Твх, а, следовательно, частота
следования – в два раза меньше. На выходе QВ частота следования импульсов получается в 4,
а на выходе QС – в 8 раз меньше, чем на счетном входе. Получаемые соотношения справедливы
для любых двоичных счетчиков, причем при увеличении разрядности на выходе QD получается
деление частоты на 16, на выходе QE – на 32 и т. д. с кратностью 2n.
Примером счетчика с последовательным переносом является микросхема КР1533ИЕ5 (рис.
4.30), аналогом которой является микросхема SN74LS93 фирмы «Texas Instruments». Она
содержит два независимых (они могут использоваться раздельно) счетчика:
Если выход первого счетчика QA соединить со счетным входом СКВ второго счетчика, то
получится счетчик-делитель на 16 (двоичный четырехразрядный счетчик с коэффициентом
счета 16), который будет иметь счетный вход СКА и четыре выхода QA, QB, QC и QD.
Микросхема имеет два входа сброса (в ноль) R01 и R02, объединенных по И. Данное
выражение означает следующее: внутри микросхемы находится
элемент 2И со входами R01 и R02 и выходом, подключенным к прямым статическим
входам R всех триггеров. Поэтому сброс в ноль сразу всех триггеров счетчика происходит
только при одновременной установке активного сигнала 1 на обоих входах R01 и R02.
П р и м е ч а н и е. На диаграмме (рис. 4.28) показано, что переключение любого триггера
и установка на его выходе нового уровня сигнала происходит одновременно с отрицательным
перепадом напряжения на входе T. В выбранном нами для построения диаграммы временном
масштабе для человеческого глаза действительно будет казаться так. Но на самом деле это
не совсем верно: установка нового уровня сигнала на выходе по отношению к отрицательному
перепаду входного напряжения происходит с задержкой, равной времени задержки
распространения сигнала tp для данного триггера. Начертим временную диаграмму (рис. 4.31)
рассматриваемого счетчика, увеличив реальное значение tpдо заметной глазу величины,
ограничив количество входных импульсов до трех для упрощения рисунка. Величину tp выделим
на диаграмме синей штриховкой.
Из данного рисунка отлично видно, что последовательный способ передачи переносов
с учетом задержки распространения сигналов приводит к появлению ложных состояний:
в частности, после выходного кода 001 (код цифры 1) сначала на выходах появляется ложное
состояние 000 (код цифры 0), а уже затем – правильное состояние 010 (код цифры 2). Если
достраивать диаграмму для последующих входных импульсов, то можно легко убедиться, что
после состояния 011 (код цифры 3) будут появляться на выходе даже два ложных состояния:
сначала 010 (код цифры 2), затем 000 (код цифры 0), и только потом установится правильное
состояние 100 (код цифры 4).
Опасность появления ложных состояний и их воздействия на последующие за счетчиком
узлы цифровой аппаратуры заставляет при необходимости применять стробирование выходов
счетчиков с последовательным переносом (что практически применяется крайне редко) или
выполнять такие счетчики синхронными.
Принцип организации синхронного счетчика с последовательным переносом показан на рис.
4.32.
При ме чани е:
На входе Т первого триггера счетчика должен поддерживаться постоянный уровень
логической 1.
Здесь, в отличие от схемы рис. 4.27, все триггеры срабатывают одновременно при подаче
очередного импульса на счетный вход, но формирование переносов происходит все равно
последовательно с помощью цепочки логических элементов И. Поэтому величина паузы между
импульсами должна дать возможность сработать не только триггерам (срабатывают
одновременно!), но и всем логическим элементам путем их последовательного переключения.
4.11. Счетчики с параллельным переносом
Построение счетчиков с циклом N ≠ 2 n (декадных, с другим коэффициентом счета) требует
наличия в схеме дополнительных цепей связи (причем некоторые из них будут обратными),
которые позволяют формирующимся здесь сигналам переноса переключать триггеры счетчика
из одного состояния в другое по заданным условиям. Такие связи организуются по Т, D, JK,
RS входам триггеров с применением, при необходимости, дополнительных логических
элементов. Счетным входом в этом случае будет объединенный синхронизирующий
вход С (CLK) всех триггеров, что позволяет цепи синхронизации и цепям переноса
функционировать параллельно и дает возможность всем триггерам (в отличие от счетчиков
с последовательным переносом) срабатывать одновременно.
Принцип организации счетчиков такого типа лучше всего показать, используя хорошо
знакомые нам способы синтеза цифровых устройств. Приведем пример.
Разработать схему вычитающего счетчика с коэффициентом счета N = 14. Начальное
состояние – 0. Результат подсчета формируется на выходах в виде обычного двоичного кода.
Последний импульс цикла должен возвращать счетчик в исходное нулевое состояние.
При решении данной задачи мы будем использовать реальные микросхемы интегральных
триггеров и логических элементов в следующих целях:
– еще раз закрепить навыки синтеза цифровых устройств, особенно в свете предстоящего
выполнения курсовой работы;
– именно так при необходимости можно построить нестандартный счетчик (например,
подсчитывающий только нечетные импульсы, или выдающий результат подсчета в каком-либо
коде, отличном от стандартного двоичного, и т.д.).
1. Определим назначение основных выводов счетчика, количество и вид триггеров
в счетчике.
По заданию счетчик должен работать только в одном счетном режиме – вычитания, поэтому
и счетный вход у него тоже будет один. Из соотношения 2n ≥ N количество триггеров
в счетчике n = 4, поэтому счетчик будет иметь 4 выхода. Выбираем для построения
счетчика JK-триггеры.
2. Составляем таблицу истинности счетчика (табл. 4.3).
П р и м е ч а н и я к таблице:
– Показаны результаты подсчета привычными нам десятичными числами, а также двоичными
кодами непосредственно на выходах счетчика. Здесь видно, что первый поступивший на счетный
вход счетчика импульс вызывает переключение счетчика из исходного нулевого состояния
в 13 (коэффициент счетчика N = 14, поэтому 14 -1 = 13), и на выходах счетчика вместо нулей
устанавливается соответствующий числу 13 двоичный код 1101; второй импульс переключает
счетчик из 13 в 12, и на выходах счетчика формируется соответствующий числу 12 двоичный
код 1100; и далее каждый поступающий на счетный вход счетчика импульс уменьшает (счетчик
вычитающий!) число в счетчике на 1; последний 14-й импульс цикла возвращает счетчик
в исходное нулевое состояние.
Например: по табл. 4.3 видно, что 1-й импульс переключает третий триггер (триггер
с выходом Q3) из 0 в 1; по табл. 4.4 смотрим, что для этого на входах J3 и K3 нужно установить
следующие уровни сигналов: J3 = 1, K3 = x; указываем эти значения в соответствующих
колонках табл. 4.3 в строке для 1-го импульса. Второй импульс (см. табл. 4.3) переключает
этот же триггер из 1 в 1; по табл. 4.4 смотрим, что для обеспечения указанного перехода
на входы J3 и K3 нужно подать сигналы: J3 = x, K3 = 0; указываем эти значения
в соответствующих колонках табл. 4.3 в строке для 2-го импульса. Таким же образом
определяются необходимые уровни сигналов на входах J и K для последующих импульсов,
а также для других триггеров.
3. Определяем порядок заполнения карт Вейча (см. п. 3 из темы 3.9).
Для каждой строки табл. 4.3 записываем многочлены СДНФ и определяем их место в карте
Вейча (рис. 4.33).
4. Для входов J и K всех триггеров заполняем карты Вейча и производим объединение клеток
(рис. 4.34).
П р и м е ч а н и е: для входов J0 и K0 карты чертить не обязательно: по табл. 4.3 сразу видно,
что сигналы на входах J0 и K0 не имеют нулевых значений, поэтому у них будут заполнены
и объединены все 16 клеток.
5. Записываем МДНФ для входов J и K всех триггеров:
J0 = K0 = 1. J2 = K2 = Q1′·Q0′.
J1 = Q3·Q0′ \/ Q2·Q0′. J3 = K3 = Q2′·Q1′·Q0′.
K1 = Q0′.
J0 = K0 = 1. K1 = Q0′.
Выражение для J1 имеет стандартную дизъюнктивную форму, поэтому переход
к базису И-НЕ здесь производится обычным способом:
Схемная реализация в данном случае также имеет вид, аналогичный рис. 4.35, но только
первым будет стоять элемент 3И-НЕ, так как здесь операция И-НЕ производится над тремя
сигналами: Q2′, Q1′и Q0′. Таким образом, для реализации логического выражения,
потребуется 1 элемент 3И-НЕ и 1 элемент 2И-НЕ.
7. Определяем общее количество компонентов.
В итоге схема счетчика должна
содержать: 4 JK-триггера, 6 элементов 2И-НЕ и 1 элемент 3И-НЕ.
8. Подбираем микросхемы: по две микросхемы КР1533ТВ6, КР1533ЛА3 и одна микросхема
КР1533ЛА4.
9. Строим схему счетчика в базисе И-НЕ (рис. 4.36).
П р и м е ч а н и е. Вернемся к логическому выражению для J0 = K0 = 1. Отсюда видно, что
в данном случае на входах J0 и K0 должен поддерживаться постоянный уровень логической
единицы. Если учесть, что у нас элементной базой являются микросхемы серии КР1533, то (см.
тему 2.9) здесь в качестве источника постоянного сигнала логической 1 лучше всего
использовать напряжение питания микросхем (UCC), которое можно подключать напрямую.
10. Составляем перечень элементов к этой схеме (табл. 4.5):
11. Выполним на рис.4.36 анализ работы счетчика для одного переключения
(в табл.4.3 показано красной стрелкой): из числа 2 (код 0010) в число 1 (код 0001).
В исходном состоянии на прямых выходах триггеров хранились сигналы 0010 (выделено
голубым цветом в табл.4.3. и на схеме). По схеме определяем, какие сигналы поступают
на входы J и K всех триггеров.
Теперь подаем очередной импульс на счетный вход. Тогда от отрицательного перепада этого
импульса (входы CLK инверсные динамические) срабатывают триггеры:
– на входы J0 и K0 (входы 1J и 1К микросхемы D1) поступают активные
сигналы 1 и 1 (активными будут сигналы 1, т.к. входы прямые статические), и триггер
переключается в другое состояние (смотрите пункт 2 из темы 4.3): на его прямом выходе сигнал
меняется из 0 в 1;
– на входах J1 = 0, K1 = 1 (входы 2J и 2К микросхемы D1), под действием активного
сигнала 1 на входе K1 (вход сброса) произойдет сброс этого триггера и на его прямом выходе
установится сигнал 0 (была 1);
– на входах J2 = 0, K2 = 0 (входы 1J и 1К микросхемы D2), а также J3 = 0, K3 =
0 (входы 2J и 2Кмикросхемы D2) только пассивные сигналы 0, поэтому состояние триггеров
не меняется: на прямых выходах были 0 и остаются 0.
В результате на выходах счетчика сформировался код 0001 (в схеме выделен зеленым
цветом). Проверяем этот результат по табл. 4.3 (здесь тоже выделен зеленым цветом) и делаем
вывод: в данном случае счетчик сработал правильно.
В качестве примера счетчика с параллельным переносом рассмотрим микросхему декадного
(двоично-десятичного) суммирующего счетчика КР1533ИЕ2 (рис. 4.37), аналогом которой
является микросхема SN74LS90 фирмы «Texas Instruments». Она очень похожа на микросхему
КР1533ИЕ5 и содержит два независимых счетчика:
1. Счетчик-делитель на 2 (двоичный одноразрядный счетчик с коэффициентом счета 2)
со счетным входом СКА и выходом QA, состоящий из одного триггера.
3. Если выход первого счетчика QA соединить со счетным входом СКВ второго счетчика, то
получится счетчик-делитель на 10 (декадный счетчик с коэффициентом счета 10), который будет
иметь счетный вход СКА и четыре выхода QA, QB, QC и QD. Полученный в этом случае
счетчик имеет групповую структуру с последовательно – параллельным переносом:
из первого счетчика в второй перенос передается последовательно, а во втором счетчике перенос
организуется параллельно. В этом случае микросхема может выполнять деление частоты
на 2 с выхода QA и на 10 с выхода QD, но на выходах QB, QC последовательность импульсов
получается апериодической.
Микросхема имеет два входа сброса (в ноль) R01 и R02, объединенных по И. Кроме этого,
счетчик имеет два объединенных по И входа R91, R92 предустановки 9: при одновременной
подаче активных сигналов на оба эти входа устанавливается код 9 (1001) на выходах QA, QB,
QC и QD.
4.12. Примеры работы микросхем счетчиков
Рассмотрим работу микросхемы КР1533ИЕ9 (аналог – микросхема SN74ALS160А фирмы
«Texas Instruments»), изображенной на рис. 4.38, в различных режимах. Указанная микросхема
представляет собой суммирующий декадный (с коэффициентом счета N = 10) счетчик
с предустановкой.
Укажем назначение выводов:
CLK – счетный вход. Срабатывание данного счетчика происходит от переднего фронта
(положительного перепада напряжения) импульса, т.к. данный вход прямой динамический.
CLR – асинхронный вход сброса.
A,B,C,D – информационные входы предварительной загрузки (предустановки) кода того
числа, с которого необходимо начинать счет. В данном счетчике имеется возможность начинать
счет импульсов не с 0, а с любого другого числа в пределах его коэффициента счета.
LOAD (загрузка) – разрешение предустановки. Предварительная загрузка производится при
активном уровне сигнала на входе LOAD по синхроимпульсу на входе CLK.
ENT (enable Т – разрешение счета) и ENP (enable Р – разрешение переноса) – входы,
используемые лишь при каскадном соединении счетчиков (см. тему 4.13). В режиме счета
на этих входах должен поддерживаться уровень логической 1, в остальных режимах значения
сигналов на этих входах могут быть любыми.
QA, QB, QC, QD – выходы, где формируется результат подсчета импульсов в двоичном коде.
RCO – выход окончания счета или выход переноса (carry out). Здесь устанавливается
активный уровень при достижении конца счета, когда на выходах QA, QB, QC, QD появляется
код 1001 последнего числа цикла – 9. При сбросе на выходе RCO устанавливается пассивный
сигнал. На этапе предварительной установки данный выход не нужен, поэтому здесь может
устанавливаться любой сигнал в зависимости от конкретного загружаемого кода.
Предположим, что на выходах счетчика изначально хранился код числа 9 → 1001.
П р и м е ч а н и е. Каждый последующий пример является продолжением предыдущего
в следующем такте.
Пример 1. Указать значения сигналов на всех выводах микросхемы для сброса. Ответ
приведен на рис. 4.38.
В результате выполнения данной операции на выходах QA, QB, QC, QD должны установится
уровни логического 0. Для этого достаточно на асинхронный вход сброса CLR подать активный
сигнал логического 0. Так как вход CLR асинхронный и всегда обладает приоритетом, то
указанный сигнал 0 заблокирует все остальные входы, поэтому значения сигналов здесь будут
безразличны (знак «х»). Хранившийся на выходах QA, QB, QC, QD код числа 9 (1001) – это
конец счета (счетчик суммирующий декадный), поэтому на выходе RCO сохранялся активный
сигнал 1. Как уже было сказано выше, при сбросе на выходе RCO формируется пассивный
сигнал 0.
Пример 2. Указать значения сигналов на всех выводах микросхемы для предварительной
установки в счетчике кода числа 5 (0101). Ответ приведен на рис. 4.39.
В результате выполнения указанной операции на выходах счетчика QA, QB, QC, QD должен
установиться код 0101 числа 5. Для этого на входе LOAD следует установить активный уровень
логического 0, разрешающий загрузку нужного кода. Сам код 0101 подаем на информационные
входы ABCD. При подаче синхроимпульса на вход CLK микросхема срабатывает
и на выходах QA, QB, QC, QD устанавливается код 0101, который подавался на входы ABCD.
На входе CLR устанавливаем пассивный уровень логической 1, иначе остальные входы
счетчика будут блокированы и никакой загрузки не произойдет.
Так как рассматриваемый режим работы не является режимом счета, то значения сигналов
на входах ENT и ENP в данном случае безразличны (знак «х»).
На выходе RCO в процессе предустановки кода 0101 формируется сигнал 1, что определено
из опыта. Напомним: сейчас этот сигнал не нужен, он потребуется только в режиме счета.
Пример 3. Указать значения сигналов на всех выводах микросхемы в режиме счета, если
предварительно (см. предыдущий пример) в счетчик уже был загружен код числа 5 (0101). Ответ
приведен на рис. 4.40.
На входе LOAD устанавливаем пассивный уровень логической 1, запрещающий
предварительную загрузку любого кода со входов ABCD, поэтому значения сигналов здесь
будут безразличны (знак «х»).
На вход CLR подаем пассивный сигнал логической 1, иначе остальные входы счетчика будут
блокированы и никакого счета не будет. На входах ENT и ENP устанавливаем активные уровни
логической 1, при которых счет импульсов будет разрешен. После этого
на вход CLK подаем импульс, который прибавится (счетчик суммирующий!) к предварительно
загруженному коду числа 5 и на выходах QA, QB, QC, QD сформируется код
числа 5+1=6 (0110). Установленный на выходах QA, QB, QC, QDкод числа 6 (0110) – это тоже
еще не конец счета, поэтому на выходе RCO установится пассивный сигнал 0.
Пример 4. Дальнейший счет импульсов, поступающих на вход CLK, покажем с помощью
временной диаграммы (рис. 4.41).
При ме чани я:
– В режиме счета при установке на выходах QA, QB, QC, QD кода последнего числа
цикла 9 (1001) на выходе RCO появляется активный сигнал 1. Следующий импульс, который
поступает на вход CLK, сбросит счетчик в ноль (на выходах QA, QB, QC, QD – код 0000),
а на выходе RCO снова установится пассивный уровень логического 0.
– Последний 10-й импульс цикла возвращает счетчик в состояние, с которого начинался счет:
на выходах QA, QB, QC, QD вновь устанавливается код числа 5 (0101).
– В режиме предустановки цифры 5, как уже было сказано в Примере 3,
на выходе RCO формируется сигнал 1.
4.13. Каскадное соединение счетчиков
Если необходимый нам счетчик имеет коэффициент счета больше, чем у имеющихся
микросхем, то используется каскадное соединение нескольких микросхем счетчиков
с обязательной организацией переносов между этими микросхемами. По способу передачи
сигналов переноса каскадное соединение счетчиков может выполняться двумя способами:
1. С последовательным переносом, что можно проще всего реализовать при помощи
микросхем типа К1533ИЕ6 (рис. 4.42), аналогом которых являются микросхемы SN74ALS192
фирмы «Texas Instruments».
Укажем назначение выводов микросхемы КР1533ИЕ6, представляющей собой реверсивный
декадный счетчик:
UP (указывает на увеличение) – счетный вход в режиме суммирования.
DOWN (указывает на уменьшение) – счетный вход в режиме вычитания.
CLR – асинхронный вход сброса.
A,B,C,D – информационные входы предварительной загрузки (предустановки) кода того
числа, с которого необходимо начинать счет, причем такая загрузка производится при активном
уровне сигнала на входе LOAD (загрузка).
QA, QB, QC, QD – выходы, где формируется результат подсчета импульсов в двоичном коде.
CO – выход окончания счета в режиме суммирования (выход переноса). Здесь
устанавливается активный уровень при достижении конца счета в режиме суммирования, когда
на выходах QA, QB, QC, QD появляется код 1001 последнего числа цикла – 9. Следует иметь
в виду, что установка активного уровня сигнала на выходе СО производится отрицательным
перепадом напряжения 9-го импульса цикла, поступающего на счетный вход UP.
ВО (back) – указание на обратный, противоположный) – выход окончания счета в режиме
вычитания (выход заема). Здесь устанавливается активный уровень при достижении конца счета
в режиме вычитания, когда на выходах QA, QB, QC, QD появляется код 0000 последнего числа
цикла – 0. Следует иметь в виду, что установка активного уровня сигнала на выходе ВО также
производится отрицательным перепадом напряжения 9-го импульса цикла, поступающего
на счетный вход DOWN.
П р и м е ч а н и е: при работе в режиме суммирования на входе DOWN и в режиме
вычитания на входе UP должен поддерживаться уровень логической 1.
Принцип организации последовательной передачи сигналов переноса при каскадном
соединении микросхем КР1533ИЕ6 и других подобных очень прост. Например, если требуется
построить суммирующий счетчик с коэффициентом N = 1000, то потребуются три микросхемы:
первая будет считать единицы, вторая – десятки, и третья – сотни. Цепи переноса показаны
и выделены красным цветом на рис. 4.42.
До прихода на счетный вход 9-го импульса на выходе СО первого счетчика, считающего
единицы, сохраняется пассивный уровень логической 1, поэтому последующие счетчики,
считающие десятки и сотни, срабатывать не будут, и на их выходах будут сохраняться исходные
нули. Отрицательный перепад девятого импульса, поступающего на счетный вход,
устанавливает на выходе СО первого счетчика активный уровень логического 0, в результате
чего на этом выходе формируется отрицательный перепад напряжения, не являющийся
активным для входа UP следующего счетчика, поэтому последующие счетчики опять же
срабатывать не будут, и на их выходах будут сохраняться исходные нули. Положительный
перепад последнего, 10-го импульса цикла первого счетчика сбросит его в ноль,
а на выходе СО вернет пассивный уровень логической 1. В результате этого
на выходе СО первого счетчика сформируется положительный перепад напряжения, который
является активным для входа UPвторого счетчика и будет являться сигналом переноса
из первого счетчика во второй. Второй счетчик сработает и его показание увеличится на 1.
В дальнейшем описанный процесс будет периодически повторяться до числа 99, после чего
аналогичным образом вступит в работу третий счетчик.
Очевидно, что каскадное соединение счетчиков с последовательной организацией передачи
сигналов переноса основным недостатком имеет низкое быстродействие, причем величина
задержки сигналов переноса увеличивается с наращиванием разрядности.
2. С параллельным переносом. Для реализации такого способа организации сигналов
переноса как раз и предназначены микросхемы счетчиков типа рассмотренной нами ранее (см.
тему 4.12) КР1533ИЕ9.
Параллельный принцип организации переносов при каскадном соединении счетчиков показан
на рис. 4.43, где приведена схема суммирующего счетчика с коэффициентом N = 1000. Здесь
видно, что импульсы со счетного входа поступают на входы CLK сразу всех счетчиков, что
заставляет их срабатывать одновременно независимо от разрядности схемы.
До прихода на счетный вход 9-го импульса на выходе RСО первого счетчика, считающего
единицы, сохраняется пассивный уровень логического 0. Этот сигнал, поступая
на входы ENP последующих счетчиков, не позволяет им работать в режиме счета, поэтому они
сохраняют свое исходное нулевое состояние. В момент установки в счетчике единиц
числа 9 (1001) на его выходе RСО появляется активный сигнал 1, который, проходя
на вход ENP счетчика десятков, разрешает и ему работать в режиме счета. Поэтому при
поступлении на счетный вход очередного импульса срабатывают уже два счетчика: счетчик
единиц сбрасывается в исходное нулевое состояние и в дальнейшем начнет счет сначала,
а содержание счетчика десятков увеличивается на 1.
В дальнейшем описанный процесс будет периодически повторяться до числа 99. В этот
момент на выходах RCO счетчиков единиц и десятков устанавливаются 1, которые, проходя
соответственно на входы ENP и ENT счетчика сотен, разрешат работать и этим счетчикам.
Поэтому при поступлении на счетный вход следующего 100-го импульса срабатывают уже все
три счетчика: первые два сбрасываются в 0 и в дальнейшем начнут счет сначала, а содержание
счетчика сотен возрастет на 1. Аналогично работа счетчика будет происходить и в дальнейшем.
П р и м е ч а н и е: чтобы в режиме счета могли работать счетчик единиц и десятков, на их
неиспользуемых входах ENT и ENP следует поддерживать постоянный уровень
логической 1 (в серии КР1533 – непосредственно от источника питания UCC).
4.14. Изменение коэффициента счета
микросхем счетчиков
Если счетчик с необходимым коэффициентом счета не выпускается в виде готовой
микросхемы, то можно воспользоваться другой микросхемой счетчика, где с помощью
дополнительной логической цепочки обеспечивается требуемый модуль счета. При этом
микросхема должна удовлетворять двум требованиям:
– содержать вход сброса;
– иметь коэффициент счета не меньше требуемого.
В качестве примера рассмотрим построение суммирующего счетчика с коэффициентом
счета N = 6.
1. Выбираем микросхему счетчика.
Берем микросхему КР1533ИЕ5 (см. рис. 4.30 и пояснения к нему), второй счетчик которой
удовлетворяет указанным выше требованиям: имеет объединенные по И входы
сброса R01,R02и наиболее близкий к требуемому (это не обязательно!) коэффициент счета N = 8.
2. Разрабатываем логическую цепь формирования сигнала окончания счета.
Рассмотрим подробно, как должен работать нужный нам счетчик. Исходное его
состояние 0 (код 000 на выходах QB, QC, QD). Первый импульс, поступающий на счетный
вход СКВ, увеличивает число в счетчике на 1: 0+1=1 (001). Следующий второй импульс снова
увеличивает число в счетчике на 1: 1+1=2 (010). Аналогично от каждого следующего
импульса: 3-й – 2+1=3 (011), 4-й – 3+1=4 (100), 5-й – 4+1=5 (101). А последний 6-й импульс
цикла должен вернуть счетчик в исходное нулевое состояние: 0 (000). Сформированный
на выходах QB, QC, QD счетчика код 101 числа 5, после которого счетчик должен сбрасываться
в ноль, следует выделить с помощью логической цепи. Для этого запишем многочлен СДНФ для
данного состояния выходов (в комбинации 101 средний сигнал равен нулю, поэтому
соответствующий выход QC берем с инверсией):
Y = QB·QC′·QD.
Y = QB·QD.
Для реализации полученного выражения потребуется один элемент 2И (в схеме рис. 4.44 он
обозначен D1.3), который и подключим к соответствующим выходам счетчика (рис. 4.44).
Полученная логическая цепь формирования сигнала окончания счета на этом рисунке выделена
желтым цветом.
Теперь, когда в процессе счета число на выходах счетчика достигнет 5 (101), будет
формироваться сигнал 1 на выходе Y элемента D1.3.
3. Вводим элемент, запоминающий сигнал окончания счета.
Для запоминания полученного на выходе Y элемента D1.3 сигнала 1 окончания счета введем
в схему интегральный триггер, проще всего – синхронный D-триггер (см. рис. 4.44). Здесь сигнал
с выхода Yэлемента D1.3 запишется в триггер (установится на его прямом выходе) при
поступлении синхросигнала на вход 1CLK. Этот синхросигнал должен
поступать позже импульса на счетном входе, переключившего счетчик в состояние 5 (101),
но раньше следующего импульса.
4. Вводим коммутирующее устройство – демультиплексор, переключающий импульсы
со счетного входа либо на вход СКВ, либо на входы сброса R01,R02 микросхемы счетчика.
В данном случае демультиплексор (в схеме рис. 4.44 выделен зеленым цветом) состоит всего
лишь из двух элементов 2И, обозначенных D1.1, D1.2, и всегда подключается так, как показано
на рис. 4.44.
5. Подбираем микросхемы логических элементов и триггера.
Берем по одной микросхеме КР1533ЛИ1 и КР1533ТМ2.
6. Строим схему счетчика (рис. 4.44).
П ри ме чани я:
Первый счетчик микросхемы КР1533ИЕ2 с счетным входом СКА и выходом QA в данной
схеме не используется, поэтому вход СКА (напомним: лишние входы нельзя оставлять
свободными!) проще всего подключить к корпусу (к общему проводу), а выход QA вообще
оставить свободным.
Входы 1PRE и 1CLR триггера микросхемы КР1533ТМ2 сейчас нам не нужны, поэтому здесь
следует установить постоянный пассивный уровень логической 1 путем подключения
к источнику питания UCC(напомним: в микросхемах серии КР1533 это можно делать напрямую).
7. Составляем к этой схеме перечень элементов (табл. 4.6).
8. Посмотрим, как будет работать построенная нами схема.
В начале счета на выходах QB, QC, QD последовательно устанавливаются коды 000 (код
числа 0), 001 (1), 010 (2), 011 (3), 100 (4), и на выходе Y элемента D1.3 все это время
удерживается уровень логического 0. При поступлении каждого очередного синхросигнала
на вход 1CLK указанный сигнал 0 записывается в триггер и устанавливается на его прямом
выходе. Сигнал 1 с инверсного выхода этого триггера будет действовать на входе элемента D1.1.
И как только на счетный вход поступит очередной импульс, он сразу же пройдет на выход
элемента D1.1 и далее на вход СКВ счетчика. В результате счетчик сработает и число в нем
увеличится на 1. В это же время сигнал 0 с прямого выхода триггера будет действовать на входе
элемента D1.2, в результате на выходе этого элемента и, соответственно,
на входах R01,R02 счетчика будет поддерживаться пассивный уровень логического 0.
Но как только число в счетчике достигнет 5 (код 101 на выходах QB, QC, QD),
на выходе Y элемента D1.3 сформируется 1, которая затем при поступлении синхросигнала
запишется в триггер. Сигнал 0 с инверсного выхода этого триггера «запрет» элемент D1.1, из-за
чего очередной импульс со счетного входа не пройдет на вход СКВ счетчика. Зато
сигнал 1 с прямого выхода триггера «откроет» элемент D1.2, и очередной импульс со счетного
входа пройдет на входы R01,R02 счетчика, который в результате сбросится в ноль. И счет
начнется сначала.
4.15. Счетчики с переменным управляемым
коэффициентом деления
Для примера рассмотрим микросхему программируемого счетчика-делителя К564ИЕ15 (рис.
4.45), функциональным аналогом которого является микросхема CD4059 фирмы «RCA
Corporation». Используется она исключительно в качестве делителя частоты с максимальным
коэффициентом деления N = 21327.
Структуру этой микросхемы мы рассматривать не будем из-за ее большой сложности; но,
упрощенно говоря, она состоит из пяти управляемых каскадов: секции модуля, счетчика тысяч,
счетчика сотен, счетчика десятков и счетчика единиц с дополнительной установкой остатка
деления, что позволяет плавно менять коэффициент деления на 1.
Работа микросхемы описывается выражением:
Таким образом, в данном случае при поступлении на вход CLK серии импульсов
на выходе Qформируется последовательность импульсов с частотой следования в 62 раза
больше, чем на входе CLK.
4.16. Счетчики с недвоичным кодированием
Практически достаточно широкое применение получили счетчики, которые формируют
результат подсчета не в обычном двоичном коде, а в коде Грея или коде Джонсона (см. табл.
3.4 из темы 3.1). Главное преимущество таких счетчиков заключается в их высоком
быстродействии: любое кодовое слово обоих указанных кодов отличается от предыдущего лишь
в одном разряде, что в схемотехнике счетчиков устраняет одновременное переключение
нескольких триггеров, свойственное в счетчиках (особенно большой разрядности!) с двоичным
кодированием.
П р и м е ч а н и е: Следует иметь в виду, что в табл. 3.4 (см. тему 3.1)
указаны двоично-десятичныекоды Грея и Джонсона. Но они могут быть и двоичными любой
разрядности, принцип их организации при этом все равно сохраняется.
Любой учащийся по указанной в теме 4.11 методике может самостоятельно разработать
схему счетчика Грея как двоично-десятичного, так и двоичного любой нужной разрядности,
причем эти схемы будут отличаться друг от друга достаточно существенно. Самостоятельного
значения счетчики Грея не имеют и не выпускаются отдельными микросхемами. Обычно они
встраиваются в микросхемы БИС или СБИС, когда требуются счетчики большой разрядности;
в этих случаях на выходы счетчика ставится преобразователь из кода Грея в обычный
двоичный код.
Значительно более простые по структуре счетчики Джонсона (счетчики Либау-Крейга,
счетчики Мёбиуса, кольцевые регистры с перекрестной обратной связью) разной разрядности
принципиального отличия между собой не имеют, а отличаются только количеством совершенно
одинаковых каскадов. Приведем для примера структуру трехразрядного счетчика Джонсона (рис.
4.46), а сам 3-разрядный двоичный код Джонсона укажем в табл. 4.9.
Любой учащийся может легко убедиться в правильности этой схемы, если проанализирует ее
работу согласно таблице истинности (табл. 4.9).
Счетчики в коде Джонсона также самостоятельного значения не имеют и не выпускаются
отдельными микросхемами, а встраиваются в микросхемы БИС, СБИС, УБИС или ГБИС, когда
требуются счетчики большой разрядности; в этих случаях на выходы счетчика ставится
преобразователь из кода Джонсона в обычный двоичный код. Кроме этого, счетчики в коде
Джонсона, как имеющие несложную структуру и обладающие высоким быстродействием, часто
лежат в основе достаточно широко распространенных цифровых устройств – распределителей
(см. §4.17).
4.17. Распределители
Распределитель (распределитель импульсов, счетчик в коде «1 из N», кольцевой счетчик) –
ЦУ, имеющее один основной (его, как в счетчиках, часто называют счетным) вход и несколько
выходов, причем на одном выходе удерживается активный уровень сигнала (обычно единица),
на остальных выходах поддерживается пассивный уровень (обычно ноль). Именно поэтому
распределитель часто называют счетчиком в коде «1 из N»).
Поступление на счетный вход каждого очередного активного сигнала (обычно – импульса,
поэтому распределитель часто и называют распределителем импульсов) вызывает сдвиг этого
уровня на следующий выход (рис.4.47).
При подаче на счетный вход серии импульсов на выходах распределителя будет наблюдаться
картина типа «бегущие огни». Когда активный сигнал перейдет на последний выход, тогда
следующий импульс на счетном входе должен вернуть его на первый выход, обеспечивая
кольцевую работу распределителя (почему его часто и называют кольцевым счетчиком).
Применяются распределители в елочных гирляндах, таймерах, делителях частоты,
полицейских мигалках, «бегущих строках», а также в множестве других устройств.
Распределители строятся двумя различными способами:
1. На сдвигающем регистре (рис. 4.48), причем на выходе одного из триггеров такого
регистра устанавливается активный уровень сигнала, а выход последнего триггера подключается
к информационному входу первого для обеспечения цикличности работы. Тогда поступление
очередного синхросигнала на вход C вызывает сдвиг активного сигнала на выход следующего
триггера.
Здесь поступление на счетный вход очередного импульса вызовет увеличение кода числа
в суммирующем счетчике (или уменьшение в вычитающем) на 1, и появится активный сигнал
на следующем выходе дешифратора.
Если в схеме рис. 4.50 использовать счетчик Джонсона, то к высокому быстродействию,
характеризующему работу непосредственно счетчика Джонсона, прибавляется еще и простота
структуры дешифратора, выполняющего преобразование кода Джонсона в десятичные числа.
Поэтому распределители с такой структурой в настоящее время получили широкое
распространение и даже выпускаются в виде отдельных микросхем. Распределители
со счетчиком Джонсона обозначаются и маркируются как счетчики, да и называются они часто
в справочной литературе счетчиками Джонсона. Это приводит к определенной путанице
в понятиях, поэтому следует различать счетчик Джонсона и распределитель со счетчиком
Джонсона.
Для примера рассмотрим микросхему счетчика Джонсона К561ИЕ8 (рис. 4.51),
функциональным аналогом которого является микросхема CD4017 фирмы «RCA Corporation».
Как раз здесь мы и сталкиваемся с вышеуказанной путаницей в названиях: обозначение,
маркировка и название данной микросхемы соответствуют счетчику, тем не менее
это распределитель со счетчиком Джонсона!
MR – вход сброса (вход начальной установки). При подаче на этот вход активного
сигнала 1 (здесь активным сигналом является 1, т.к. данный вход – прямой статический) счетчик
распределителя сбрасывается в 0, формируется активный
сигнал 1 на выходе О0 и на выходе О5—9. При этом счетчик распределителя счет поступающих
импульсов не ведет, поэтому перемещение активного сигнала на выходах не происходит. Для
нормальной работы распределителя на входе MR нужно установить сигнал 0.
CP0, CP1 – счетные входы, на которые подаются импульсы, причем вход СР0 прямой
динамический, поэтому срабатывание идет от переднего фронта импульса, вход СР1 –
инверсный динамический, поэтому срабатывание идет от заднего фронта импульса. При подаче
импульсов на вход СР0 нужно отключить вход СР1 или обеспечить здесь постоянный уровень
логического 0 (подключить к общему проводу). При подаче импульсов на вход СР1 нужно
обеспечить на входе СР0 постоянный уровень логической 1 (подключить к источнику
питания Vdd).
О0…О9 – выходы.
05—9 – выход переноса. При счете от 0 до 4 на этом выходе удерживается уровень
логической 1, при счете от 5 до 9 – уровень логического 0. Применяется при каскадном
соединении данных распределителей в схемах таймеров, делителей частоты и других устройств.
Для наглядности проиллюстрируем работу данной микросхемы с помощью временной
диаграммы (рис.4.52). Будем использовать счетный вход СР0, тогда срабатывание
распределителя будет происходить в этом случае по положительному перепаду напряжения
импульса на этом входе. В это время на входе СР1 нужно обеспечить постоянный уровень
логического 0 (наиболее просто – путем его подключения к общему проводу),
а на вход MR подать пассивный уровень логического 0.
***
А если для получения «бегущих огней» (хотя бы в елочных гирляндах, «бегущих строках»
и т.д.) требуется распределитель с большим количеством выходов? В этом случае нужно
использовать каскадное соединение нескольких подобных микросхем.
Рассмотрим увеличение разрядности распределителя до 16 выходов. Очевидно, что в этом
случае необходимо применить каскадное соединение двух микросхем К561ИЕ8 (рис.4.53). Здесь
мы тоже используем вход СР0 для подачи импульсов, причем напомним: в этом случае
срабатывание микросхем будет происходить от положительного перепада напряжения этих
импульсов. И еще одно напоминание: если на входе СР1 какой-то микросхемы будет сигнал 0, то
она будет работать; если же на входе СР1появится 1, то работа этой микросхемы в режиме счета
происходить не будет.
***
При считывании сначала идет обращение в кэш-память: если здесь тег кода, хранящегося
в какой-либо ячейке, совпадет с поступающим адресом ячейки основного ОЗУ, где находится
нужная информация, то следовательно кэш-память имеет копию требуемых данных. Тогда кэш
выдает сигнал hit(от английского hit – попадание в цель), и коммутирующее устройство
переключается в положение «2», передавая считанную из кэш-памяти информацию на общую
шину данных и далее в процессор CPU(обозначение CPU от английского computer –
компьютер). Если же в кэш-памяти нужной информации нет, то сигнал hit не вырабатывается,
и коммутирующее устройство переключается в положение «1», передавая информацию
в процессор уже из основной оперативной памяти; одновременно эти же данные копируются, то
есть вместе с адресом записываются в свободную ячейку кэша.
Рассмотрим структуру (рис. 4.67) и принцип работы кэш-памяти
типа FASM (от английского fully associated cache memory – полностью ассоциативная
кэш-память), которая иногда называется структурой с произвольной загрузкой.
Каждая ячейка (строка) хранит копию данных, а в поле «тег» – адрес этих данных (адрес
ячейки основной оперативной памяти, где гранится оригинал указанных данных). При любых
обменах информацией адрес нужных данных сначала сравнивается с тегами всех ячеек
кэш-памяти, и при их совпадении компаратор выдает активный сигнал 1, который и проходит
через элемент ИЛИ на выход Нit.
При считывании и значении сигнала Hit = 1 информация из соответствующей ячейки
кэш-памяти выдается на шину данных. При отсутствии совпадений Hit = 0 и данные выдаются
из основной оперативной памяти, при этом они вместе с адресом записываются в свободную
ячейку кэш-памяти.
При записи (цепи, предназначенные для записи, на рис. 4.67 для упрощения не показаны)
данные вместе с адресом записываются, как правило, сначала в кэш-память: в обнаруженную
ячейку при Hit =1 или свободную при Hit = 0. Копирование данных в основное ОЗУ
производится под управлением специального контроллера, когда нет обращений к памяти.
Существуют и другие разновидности кэш-памяти (с прямым размещением
и наборно-ассоциативного типа), которые мы здесь рассматривать не будем.
Ряд фирм (например, «Cyrix») выпускают специальные микросхемы кэш-памяти,
но в настоящее время кэш-память обычно интегрирована непосредственно в процессор.
4.25. Построение ЗУ
заданной емкости и разрядности
Разрядность и информационная емкость даже самых больших ЗУ иногда оказывается
недостаточной. Это приводит к необходимости использования нескольких микросхем,
определенным образом соединенных между собой. Целью данного параграфа и является
рассмотрения принципа построения ЗУ большой емкости, составленного из нескольких
микросхем. При постановке подобной задачи обычно задается требуемые информационная
емкость и разрядность, а также оговаривается элементная база.
Рассмотрим конкретный пример: построить статическое ОЗУ емкостью 32 Кбайта для
хранения 16-разрядных кодов на микросхемах КР537РУ8 (аналог – микросхема HM6516 фирмы
Harris Semiconductor), одна из них показана на рис.4.68.
АЛ305Ж (рис.9), тема 3.8. Сегментный цифровой индикатор на световых излучающих диодах
с общим катодным выводом.
7. Мультиплексоры
КР1533КП2 (рис.10), тема 3.10. Сдвоенный селектор-мультиплексор 4—1.
При ме чани я:
1. Если микросхема используется как один двухразрядный селектор-мультиплексор 4—1, то
ее выводы удобнее располагать так, как показано на рис. 3.26.
2. Такую же структуру имеют:
– Микросхема КР1533КП19, но у нее инверсные выходы.
– Микросхема КР1533КП12, но это уже буферная ИМС с тремя состояниями выходов.
– Микросхема КР1533КП17, которая отличается от микросхемы КР1533КП12 инверсными
выходами.
8. Сумматор, компаратор, схема контроля четности и АЛУ
К555ИМ6 (рис.12), тема 3.14. Четырехразрядный двоичный сумматор со встроенной СУП.
КР1533ИП5 (рис.12), тема 3.19. Девятиразрядная схема контроля четности.
КР1533СП1 (рис.13), тема 3.17. Четырехразрядный цифровой компаратор.
. SN 74S00 N
префикс корень суффикс