- •Основы прикладной теории цифровых автоматов
- •Основы прикладной теории цифровЫх автоматов
- •Оглавление
- •Предисловие
- •Глава 1. Информационные основы цифровых автоматов
- •1.1. Информация и общие принципы ее преобразования
- •1.2. Обмен информацией между различными информационными устройствами
- •1.3. Аппаратные средства хранения и обработки информации
- •1.4. Общие понятия о цифровом автомате и алгоритме
- •Глава 2. Представление числовой информации в цифровом автомате
- •2.1. Системы счисления и понятие кода
- •2.2. Выбор системы счисления
- •2.3. Формальные правила двоичной арифметики
- •2.4. Перевод числа из одной позиционной системы счисления в другую
- •Глава 3. Формы представления чисел в цифровых автоматах
- •3.1. Форма представления двоичных чисел с фиксированной запятой
- •3.2. Представление отрицательных чисел в формате с фиксированной запятой
- •3.3. Форма представление чисел с плавающей запятой
- •3.4. Перевод чисел из формата с фиксированной запятой в формат с плавающей запятой и обратно
- •3.5. Погрешности представления чисел
- •20 [A]ф 2n - 1 для целых чисел
- •Глава 4. Арифметические действия с двоичными числами
- •4.1. Сложение двоичных чисел
- •4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
- •4.1.2. Переполнение разрядной сетки
- •4.1.3. Модифицированный прямой, обратный и дополнительный код
- •4.1.4. Алгебраическое сложение чисел, представленных в форме с плавающей запятой
- •4.2. Умножение двоичных чисел
- •4.2.1. Методы умножения двоичных чисел
- •4.2.2. Умножение чисел, представленных в форме с фиксированной запятой
- •4.2.3. Умножение чисел, представленных в форме с плавающей запятой
- •4.2.4. Ускорение операции умножения
- •4.3. Деление двоичных чисел
- •4.3.1. Деление двоичных чисел, представленных в форме с фиксированной запятой.
- •4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
- •4.4. Оценка точности выполнения арифметических операций
- •4.4.1. Погрешность округления
- •Глава 5. Выполнение операций над десятичными числами
- •5.1. Представление десятичных чисел в д-кодах
- •5.2. Формальные правила поразрядного сложения в д-кодах
- •5.3. Представление отрицательных чисел в д-кодах
- •5.4. Выполнение операций сложения и вычитания в д-кодах
- •5.5. Умножение чисел в д-кодах
- •5.6. Деление чисел в д-кодах
- •5.7. Перевод чисел из д-кода в двоичный и из двоичного в д-код
- •Глава 6 контроль работы цифрового автомата
- •6.1. Основные понятия теории кодирования
- •6.2. Кодирование по методу четности-нечетности
- •6.3. Коды Хеминга
- •6.4. Контроль по модулю
- •6.5. Контроль арифметических операций
- •Глава 7. Основы алгебры логики
- •7.1. Основные понятия алгебры логики
- •7.2. Свойства элементарных функций алгебры логики
- •7.3. Аналитическое представление функций алгебры логики
- •7.4. Совершенные нормальные формы
- •7.5. Системы функций алгебры логики
- •7.6. Числовое и геометрическое представление логических функций
- •Глава 8. Упрощение и минимизация логических функций
- •8.1. Задача минимизации
- •8.2. Метод Квайна и импликантные матрицы
- •8.3. Метод Карно (диаграммы Вейча)
- •Глава 9. Методы анализа и синтеза логических электронных схем
- •9.1. Логические операторы электронных схем или цепей
- •9.1.1. Задачи анализа и синтеза электронных схем
- •9.2. Синтез логических схем с одним выходом
- •9.3. Электронные схемы с несколькими выходами
- •9.4. Временные булевы функции и последовательностные автоматы
- •Глава 10. Введение в теорию автоматов и структурный синтез цифровых автоматов
- •10.1. Основные понятия и определения
- •10.2. Методы структурного синтеза и языки описания цифровых автоматов
- •10.3. Элементарный автомат (триггерный элемент)
- •10.4. Синтез цифрового автомата с памятью
- •Глава 11 алгоритмы реализации арифметических действий в цифровых автоматах
- •11.1. Общие принципы разработки алгоритмов
- •11.2. Алгоритмы реализации арифметических действий с операндами, представленными в форме с фиксированной запятой
- •11.2.1.Сложение и вычитание
- •11.2.2. Умножение
- •11.2.3. Деление
- •11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой
- •11.3.1. Сложение и вычитание
- •11.3.2. Умножение
- •11.3.3. Деление
- •11.4. Блок-схемы регистра накапливающего сумматора
- •11.4.1. Для работы с обратным кодом
- •11.4.2. Для работы с дополнительным кодом
- •11.5. Алгоритм извлечения квадратного корня операнда с плавающей запятой
- •Определения основных понятий и терминов
- •Литература
10.4. Синтез цифрового автомата с памятью
Рассмотрим пример реализации процесса построения простой после-довательностной схемы
Построим десятичный счетчик с помощью синхронизируемых
Т-триггеров. Эта схема содержит четыре таких триггера, выходные сигналы которых формируют кодовый набор, интерпретируемый как десятичная величина в двоично-десятичном коде. Каждый синхроимпульс увеличивает значение кода, которое, достигнув 9, переводится следующим синхроимпульсом в 0. При переходе от 9 к 0 схема выдает выходной сигнал, который указывает на переполнение счетчика: этот сигнал часто называют сигналом переноса.
Первый шаг в процессе проектирования - определение структурной модели и использование ее для идентификации входных и выходных переменных. На рис.10.7 показана подобная модель для десятичного счетчика. В этой схеме, кроме синхросигнала, нет других входных сигналов. Единственным выходным сигналом комбинационной подсхемы является сигнал переноса С.
Если кроме сигнала С вывести также сигналы Q0 - Q3 от всех четырех Т-триггеров, то, используя несколько таких счетчиков, можно получить изображение числа поступивших извне сигналов СИ в двоично-десятичном коде (Д-коде). В таком случае внешний СИ очевидно должен поступать на счетчик, формирующий младшую тетраду кода. Для всех других счетчиков в качестве СИ будет сигнал С предыдущего счетчика. Сигнал С счетчика, формирующего старшую тетраду, является признаком переполнения разрядной сетки, сформированной данной группой этих десятичных счетчиков.
Сигнал переноса C
Q3 - Q0 T3 - T0
Рис.10.7 Структурная модель десятичного счетчика
Следующий шаг состоит в построении либо таблицы состояний, либо диаграммы состояний, описывающих поведение схемы. Диаграмма состояний для этого счетчика приведена на рис.10.8. Согласно диаграмме, схема имеет 10 допустимых состояний, последовательность которых есть 0000, 0001, 0010 ... ,1000, 1001, затем следует повторение 0000, 0001 и т.д. Поскольку схема не имеет входов, на ориентированных линях указан лишь текущий выходной сигнал, соответствующий каждому состоянию. Эти значения равны 0 для всех допустимых состояний, за исключением 1001. Таблица 10.1 является соответствующей таблицей состояний. Так как схема не имеет входов, таблица содержит только один внутренний столбец. Отметим, что для шести неиспользованных состояний от 1010 до 1111 следующие состояния не заданы, они обозначены как неопределенные состояния.
Таблицы 10.2 и 10.3 являются соответственно таблицей истинности для выхода схемы С и расширенной таблицей истинности для входов триггеров Т3, Т2, Т1, Т0. Выходные значения таблицы истинности и следующие состояния расширенной таблицы истинности получены последовательно по строкам из соответствующих элементов таблицы состояний или соответствующих ориентированных линий на диаграмме состояний. Выходные значения триггеров выбраны такими, чтобы мог осуществляться каждый заданный переход состояний. При определении этих состояний была использована таблица переходов Т-триггера:
Т а б л и ц а 10.1. Таблица состояний десятичного счетчика
Текущее состояние Следующее состояние
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 0 0 0 0 0 0 1/0
0 0 0 1 0 0 1 0/0
0 0 1 0 0 0 1 1/0
0 0 1 1 0 1 0 0/0
0 1 0 0 0 1 0 1/0
0 1 0 1 0 1 1 0/0
0 1 1 0 0 1 1 1/0
0 1 1 1 1 0 0 0/0
1 0 0 0 1 0 0 1/0
1 0 0 1 0 0 0 0/1
1 0 1 0 d d d d/d
1 0 1 1 d d d d/d
1 1 0 0 d d d d/d
1 1 0 1 d d d d/d
1 1 1 0 d d d d/d
1 1 1 1 d d d d/d
Т а б л и ц а 10.2. Таблица переходов Т-триггера
Текущее состояние Q Следующее состояние Q N
0 0 0
0 1 1
1 0 1
1 1 0
Таблица 10\3\
Текущее состояние Выход Текущее состояние Следующее состояние Вход триггера
Q3 Q2 Q1 Q0 C Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 T3 T2 T1 T0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1
0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1
0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1
0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1
0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1
0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1
0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1
1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1
1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1
1 0 1 0 d 1 0 1 0 d d d d d d d d
1 0 1 1 d 1 0 1 1 d d d d d d d d
1 1 0 0 d 1 1 0 0 d d d d d d d d
1 1 0 1 d 1 1 0 1 d d d d d d d d
1 1 1 0 d 1 1 1 0 d d d d d d d d
1 1 1 1 d 1 1 1 1 d d d d d d d d
Следующим шагом является получение выражений для выходного сигнала С и входных сигналов триггеров Т3, Т2, Т1 и Т0. На рис.10.9 показаны карты, использованные при получении этих минимальных сумм произведений. Логическая схема десятичного счетчика, реализованная в соответствии с этими выражениями посредством вентилей И, ИЛИ, НЕ и четырех синхронизируемых Т-триггеров, приведена на рис.10.10.
Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0
Q3Q2 0 0 0 0 Q3Q2 0 0 1 0
Q3Q2 0 0 1 0 Q3Q2 0 0 1 0
Q3Q2 d d d d Q3Q2 d d d d
Q3Q2 0 1 d d Q3Q2 0 0 d d
T3 = Q3Q0 + Q2Q1Q0 T2 = Q1Q0
Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q1Q0
Q3Q2 0 1 1 0 Q3Q2 1 1 1 1
Q3Q2 0 1 1 0 Q3Q2 1 1 1 1
Q3Q2 d d d d Q3Q2 d d d d
Q3Q2 0 0 d d Q3Q2 1 1 d d
T1 =Q3Q0 T0 = 1
Q1Q0 Q1Q0 Q1Q0 Q1Q0
Q3Q2 0 0 0 0
Q3Q2 0 0 0 0
Q3Q2 d d d d
Q3Q2 0 1 d d
C = Q3Q0
Рис.10.9.
Изучение принципов синтеза таких узлов компьютерной техники как различные сумматоры, умножители, шифраторы, дешифраторы, счетки и регистры разного типа и т.д. является своего рода заключительным этапом изучения арифметических и логических основ вычислительной техники. Знания этих принципов безусловно необходимы для будущих специалистов по разработке и эксплуатации вычислительной техники, а также различных автоматизированных устройств .
Однако на практике при синтезе узлов цифровых автоматов, пред-назначенных для реализации достаточно сложных алгоритмов, надо четко и хорошо знать номенклатуру, реализуемые функции и рабочие характеристики современных перспективных интегральных схем средней и большой интеграции. В настоящее время существует достаточно большое число интегральных схем средней и большой интеграции, реализующих различные функции узлов компьютера: триггеры, счетчики, шифраторы, дешифраторы и т.д. Поэтому нет необходимости разрабатывать такие узлы при помощи схем малой интеграции, которые реализуют элементарные логические функци: И, ИЛИ, И-НЕ, НЕ и т.д.