
- •Содержание
- •1. Создание схем 123
- •2. Технология составления отчета 129
- •Лабораторная работа №1 логические функции и схемы
- •1. Комбинационные схемы
- •2. Аксиомы алгебры логики
- •3. Тождества алгебры логики
- •4. Логические функции
- •5. Таблица истинности
- •6. Аналитическое представление логических функций
- •7. Карты Карно
- •8. Частично определенные логические функции
- •9. Система логических функций
- •10. Подготовка к выполнению работы
- •11. Порядок выполнения работы
- •12. Отчет по работе
- •13. Контрольные вопросы и задания
- •Варианты заданий Логические функции трех переменных
- •Системы логических функций четырех аргументов
- •Лабораторная работа №2 дешифраторы
- •1. Принцип действия дешифраторов
- •2. Каскадирование дешифраторов
- •3. Дешифратор в качестве демультиплексора
- •4. Структуры дешифраторов
- •5. Реализация логических функций на дешифраторах
- •6. Дешифратор десятичного кода
- •7. Подготовка к выполнению работы
- •8. Порядок выполнения работы
- •9. Отчет по работе
- •10. Контрольные вопросы и задания
- •Варианты заданий: Десятичные коды
- •Лабораторная работа №3 мультиплексоры
- •1. Мультиплексоры
- •2. Уравнение мультиплексора
- •3. Наращивание информационной емкости мультиплексоров
- •4. Реализация логических функций на мультиплексорах
- •5. Подготовка к выполнению работы
- •6. Порядок выполнения работы
- •7. Отчет по работе
- •8. Контрольные вопросы и задания
- •1.6. Контрольные вопросы
- •Лабораторная работа № 4.1 двухступенчатые триггеры
- •1. Постановка задачи
- •2. Пример проектирования двухступенчатого триггера
- •3. Экспериментальное исследование триггера
- •4. Подготовка к выполнению работы
- •5. Порядок выполнения работы
- •6. Отчет по работе
- •7. Варианты заданий
- •Группа 2
- •Лабораторная работа № 4.2 триггерные структуры на d- и jk-триггерах
- •1. Проектирование триггерных структур на d-триггерах
- •2. Проектирование триггерных структур на jk-триггерах
- •2. Синтез синхронных счетчиков
- •2.1. Счетчик на jk–триггерах
- •2.1. Счетчик на d–триггерах
- •3. Организация переноса
- •4. Примеры схем и временных диаграмм
- •5. Контрольные вопросы
- •7. Подготовка к выполнению работы
- •8. Порядок выполнения работы
- •9. Отчет по работе
- •10. Варианты заданий
- •Лабораторная работа № 6 Регистры
- •1. Введение
- •2. Регистры памяти
- •3. Регистры сдвига
- •4. Цепи ввода и вывода информации в регистрах
- •5. Регистры сдвига с обратными связями
- •5.1. Простое кольцо
- •5.2. Кольцо Мёбиуса – счетчик Джонсона
- •6. Контрольные вопросы
- •7. Подготовка к выполнению работы
- •8. Порядок выполнения работы
- •2. Проектирование конечных автоматов
- •2.1. Проектирование конечного автомата без учета времени
- •2.2. Проектирование конечного автомата с учетом времени
- •3. Контрольные вопросы
- •4. Подготовка к выполнению работы
- •5. Порядок выполнения работы
- •6. Отчет по работе
- •6. Варианты заданий
- •Группа 2
- •Литература
- •Приложение
- •1. Создание схем
- •1.1. Технология построения схем
- •Путем настройки приборов можно осуществить следующее:
- •Графические возможности программы позволяют:
- •1.2. Исследование схем
- •1.3. Контрольные вопросы
- •2. Технология составления отчета
- •2.1. Требования к отчету
- •2.2. Вывод результатов на принтер
2. Проектирование конечных автоматов
2.1. Проектирование конечного автомата без учета времени
Проектирование автоматов содержит следующие этапы:
– начальное задание функционирования;
– формализация задания;
– минимизация состояний;
– кодирование состояний;
– составление таблицы переходов;
– определение функций возбуждения элементов памяти;
– минимизация функций возбуждения элементов памяти;
– переход к выбранному базису элементов;
– составление логической схемы;
– создание макета (модели) и проверка автомата.
Начальное задание может иметь различную форму, в том числе и словесную. От нее переходят к формализованному заданию в виде таблиц, формул, временных диаграмм и т.п. Затем проводят минимизацию и кодирование состояний автомата, в результате получается таблица переходов, по которой можно найти функции возбуждения элементов памяти (триггеров).
Минимизация и кодирование состояний в общем случае достаточно сложная задача, но при проектировании узлов ЭВМ довольно часто она оказывается простой и ее решение подсказывается самой формулировкой задания на проектирование.
Обычно применяется двоичное кодирование состояний, при котором элементы памяти (триггеры) используются экономно.
Функции возбуждения триггеров, обеспечивающие переходы автомата из одного состояния в другое, реализуются его комбинационной частью. Они минимизируются и переводятся в заданный (выбранный) базис как обычно.
После получения функций возбуждения можно создать схему автомата и проверить ее моделированием.
Рассмотрим подробно методику создания автоматов, в которых в качестве элементов памяти применяются синхронные триггеры. Заметим, любой автомат можно построить на любом типе синхронных триггеров (RS, D, JK, T).
При двоичном кодировании состояний автомата число триггеров определяется по выражению
,
где N – число состояний автомата,
– знак округления до ближайшего большего
целого числа.
Пусть закон функционирования автомата определён и кодирование его состояний произведено. Значит, известна последовательность состояний триггеров, принимаемых ими в каждом такте под управлением входных сигналов x1,x2,…,xk и текущего состояния Q1, Q2,…, Qn. Следовательно, задача синтеза автомата сводится к получению функций возбуждения yij для каждого входа всех триггеров, обеспечивающих необходимые переходы автомата.
Функции выхода для автомата Мура зависят только от состояния автомата, поэтому
Zi = Qi.
Для автомата Мили функции выхода определяются как функции входных сигналов и состояний триггеров
Zi = f(x1,x2,…,xk,Q1,Q2,…,Qn).
Все триггеры тактируются общим сигналом С, который после формирования функций возбуждения переводит триггеры в новое состояние.
Для нахождения функций возбуждения триггеров при синтезе автоматов применяют таблицы входов триггеров (табл. 1), по которым можно определить, какие сигналы надо подать на управляющие входы триггера, чтобы перевести его из одного состояния в другое. Эти таблицы называют также «словарями» триггеров, составляются они по таблицам переходов триггеров (табл. 2).
В табл. 1 приведены таблицы входов для JK–, RS– и D–триггеров. Построение таких таблиц рассмотрим на примере JK–триггера.
Представим таблицу переходов JK–триггера в развернутом виде (табл. 3).
Из этой таблицы следует, что для перевода триггера из состояния 0 в состояние 0 на JK–входы необходимо подать JK = 00 или JK = 01, т.е. для осуществления этого перехода состояние управляющего входа K безразлично. Условно операцию определения функций возбуждения для реализации перехода триггера из состояния 0 в состояние 0 можно записать так:
JK = 00 01 = 0–.
Для перевода JK–триггера из состояния 0 в состояние 1 на JK–входы необходимо подать комбинацию
JK = 10 11 = 1–.
Для перевода JK–триггера из 1 в 0 должна быть подана комбинация
JK = 01 11 = –1,
а для перевода из 1 в 1
JK = 00 10= –0.
Таблица 1
Таблица входов JK–, RS– и D–триггеров
Qt Qt+1 |
J К |
R S |
D |
0 0 |
0 – |
– 0 |
0 |
0 1 |
1 – |
0 1 |
1 |
1 0 |
– 1 |
1 0 |
0 |
1 1 |
– 0 |
0 – |
1 |
Таблица 2
Таблица переходов RS–, JK– и D–триггеров.
Вход 1 |
Вход 2 |
RS–триггер |
JK–триггер |
D–триггер |
0 0 1 1 |
0 1 0 1 |
Qt 1 0 – |
Qt 0 1 Qt’ |
0 0 1 1 |
Таблица 3
Qt |
J |
K |
Qt+1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Аналогично получаются таблицы входов для RS–триггера и D–триггера (у D–триггера вход один).
Для определения функций возбуждения триггеров сначала строится совмещенная таблица переходов и входов вида табл. 4:
Таблица 4 |
||||||||||||||||
Входы в момент времени t |
Состояния триггеров |
Необходимые сигналы на всех входах каждого триггера |
||||||||||||||
Q (старое) |
Qн (новое) |
|||||||||||||||
x1 |
x2 |
… |
xk |
Q1 |
Q2 |
… |
Qn |
Q1 |
Q2 |
… |
Qn |
y11 |
y12 |
… |
yn1 |
yn2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Столбцы y11, y12,… ,yn1, yn2 определяют функции возбуждения триггеров (первый индекс – это номер триггера, второй индекс – номер входа триггера). Значения yij находят в таблице входов по значениям Q, Qн (см. примеры проектирования).
Поскольку память любого автомата можно построить на любом типе триггеров, а комбинационную часть в любом базисе, то для любого автомата можно получить достаточно много вариантов схем.
Какой тип триггера выбрать? Чаще всего автоматы строят на JK и D триггерах. JK триггер имеет два входа (более развитую входную логику), поэтому для него функции возбуждения получаются проще, но их в два раза больше, чем у D триггера. Какой вариант будет лучше, заранее неизвестно. Чтобы найти решение, применяют метод проб и ошибок.
Пример
Спроектировать устройство управления светофором с такой последовательностью смены сигналов
красный,
красный + желтый,
зеленый,
желтый,
красный и т.д.
Для решения этой задачи больше подходит автомат Мура, в котором цветными индикаторами могут управлять непосредственно выходы триггеров.
В качестве элементов памяти примем D – триггеры.
У светофора имеются индикаторы трех цветов, поэтому в качестве элементов памяти возьмем три D–триггера. Обозначим Q0 – выход триггера, управляющего зеленым индикатором, Q1 – выход триггера, управляющего желтым индикатором, Q2 – выход триггера, управляющего красным индикатором. Примем, при Qi = 1 индикатор светится, если Qi = 0, то индикатор не светится.
Граф переходов проектируемого автомата можно представить так, как показано на рис. 3, где обозначено
100 – красный,
110 – красный + желтый,
001 – зеленый,
010 – желтый.
Рисунок 3 Граф рабочего цикла автомата
Составим совмещенную таблицу переходов и входов (табл. 8)
Таблица 8
Q2 |
Q1 |
Q0 |
D2 |
D1 |
D0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
В левой части таблицы показаны возможные переходы автомата, в правой части – значения входных сигналов триггеров, вызывающих переход автомата в следующее состояние (при составлении таблицы учтено, что для D–триггера справедливо Qн = Dст).
Принимая D2, D1, D0 функциями Q2, Q1, Q0, составим карты Карно (табл. 9) и проведем минимизацию.
Таблица 9
D2 |
|
D1 |
|
D0 |
||||||||||||
Q1Q0 Q2 |
00 |
01 |
11 |
10 |
|
Q1Q0 Q2 |
00 |
01 |
11 |
10 |
|
Q1Q0 Q2 |
00 |
01 |
11 |
10 |
0 |
x |
0 |
x |
1 |
|
0 |
x |
1 |
x |
0 |
|
0 |
x |
0 |
x |
0 |
1 |
1 |
x |
x |
0 |
|
1 |
1 |
x |
x |
0 |
|
1 |
0 |
x |
x |
1 |
Из карт Карно находим
D0 = Q1Q2,
D1
=
,
D2
=
.
Замечание. Для D2 можно получить другое выражение, но цикл состояний 100, 110, 001, 010 сохранится.
Полученный автомат показан на рис. 4.
Р
исунок
4
В данном автомате используются четыре состояния из восьми возможных.
Чтобы выяснить, как поведет себя автомат, если он окажется в одном из неиспользуемых состояний, по схеме составим полную таблицу переходов автомата (табл. 10).
В левой части таблицы приведены значения выходов триггеров, принимаемые за “старые” состояния (все возможные состояния), в правой части таблицы приведены новые значения выходов триггеров, равные значениям сигналов на входах D, если на выходах триггеров установлены старые состояния. (Сигналы на входах D определяются по схеме автомата.)
На основе анализа полученной таблицы, можно составить граф переходов автомата, показанный на рис. 5. Из графа видно, что автомат переходит из любого неиспользуемого состояния в рабочий цикл за один шаг.