- •6 Структурный синтез микропрограммного автомата мили
- •6.1 Цель работы
- •6. 2 Методические указания по организации самостоятельной работы студентов
- •6.3 Описание лабораторной установки
- •6.4 Порядок выполнения работы и методические указания по ее выполнению
- •6.5 Содержание отчета
- •6.6 Контрольные вопросы и задания
6 Структурный синтез микропрограммного автомата мили
6.1 Цель работы
Изучить методику синтеза микропрограммного автомата Мили по прямой структурной таблице путем использования канонического метода структурного синтеза автоматов.
6. 2 Методические указания по организации самостоятельной работы студентов
Каждое состояние автомата должно быть как-то представлено в схеме, где-то храниться. Состояние кодируется двоичной последовательностью, которая хранится в триггерах. Каждому новому состоянию соответствует своя уникальная двоичная последовательность, чтобы состояния были различимыми.
Минимальное число триггеров для хранения состояний, определяется выражением
,
где n – число триггеров для хранения состояний;
k – количество состояний.
Как кодировать состояния? Существует большое количество методов кодирования, о которых речь пойдет позже. Сейчас рассмотрим алгоритм кодирования состояний, при условии использования D-триггеров. Целью такого кодирования будет минимизация сложности схемы, т.е. минимизация аппаратурных затрат.
Для уменьшения сложности системы, реализующей функции возбуждения D-триггеров лучше использовать частотный алгоритм кодирования состояний автомата. Этот алгоритм состоит из 5-ти этапов.
1. Каждому внутреннему состоянию автомата аi ставится в соответствие целое число Ni, равное числу переходов в это состояние (Ni равно числу появлений состояния аi в таблице переходов или числу стрелок, входящих в аi в графе переходов).
2. Все числа N1, N2,… Ni,… NМ сортируются по убыванию.
3. Состояние at с максимальным значением Nt кодируется нулевой комбинацией, т.е. кодом kt=00…00;
4. Следующие n внутренних состояний кодируются кодовой комбинацией с одной единицей: 00…01, 00…10,…
5. Оставшиеся незакодированные внутренние состояния кодируют вначале комбинациями с двумя единицами, затем с тремя и т. д., пока все состояния не будут закодированы.
В результате получаем такое кодирование, при котором чем больше имеется переходов в некоторое состояние, тем меньше единиц содержится в его коде.
Подобные соображения могут быть использованы при кодировании выходных сигналов для минимизации функции выходов.
Граф переходов с закодированными состояниями приведен на рис. 6.1. На дугах графа указаны разряды, на которые имеются единицы кодов состояний, куда входят дуги.
Рисунок 6.1 – Кодирование состояний автомата Мили
Кодирование состояний по выше рассмотренному алгоритму сведено в табл. 6.1
Таблица 6.1– Кодирование состояний автомата Мили на D -триггерах
|
|
D3 D2 D1 |
a1 – 2 a2 – 1 a3 – 2 a4 – 2 a5 – 2 |
a1 – 2 a3 – 2 a4 – 2 a5 – 2 a2 – 1 |
000 001 010 100 011 |
Коэффициент качества кодирования определяется как отношение числа букв D на графе к общему числу дуг.
Заполненная прямая структурная таблица для автомата Мили представлена в табл. 6.2.
Функции возбуждения Zк и функция выхода Yl автомата Мили находят по полностью оформленной структурной таблице автомата в виде дизъюнктивных нормальных форм:
Zк = V аm·Хh(аm,аs); к ,
(аm,аs) h;
Yl = V аm·Хh(аm,аs); l ,
(am,as) h,
где n и m – число сигналов возбуждения и выходных сигналов автомата соответственно; h – номер строки структурной таблицы, в столбце F(аm, аs) которой есть отметка сигнала возбуждения ZК или в столбце Y(аm, аs) - отметка исходного сигнала Yl. Терм (логическое произведение) аm Хh(аm, аs) включают в выражение Zк, если сигнал возбуждения Zк есть в столбце F(аm, аs) h-й строки таблицы автомата Мили.
Аналогично терм аm Xh(am, as) нужно включить в выражение Yl, если Yl есть в столбце Y(am,as) h-й строки таблицы.
Таблица 6.2 – Прямая структурная таблица для автомата Мили
h |
|
|
|
|
|
|
D3 D2 D1 |
1 |
|
000 |
|
011 |
1 |
, |
011 |
2 3 |
|
011 |
|
001 001 |
|
– |
001 001 |
4 5 |
|
001 |
|
010 010 |
|
|
010 010 |
6 7 |
|
010 |
|
100 100 |
|
– |
100 100 |
8 9 |
|
100 |
|
000 000 |
|
– |
000 000 |
Функции выходов, исходя из таблицы 5.4, в базисах Буля и Шеффера будут иметь следующий вид:
Функции переходов, исходя из таблицы 5.4, в базисах Буля и Шеффера будут иметь следующий вид:
Далее можно строить функциональную, электрическую схему автомата.
Рассмотрим реализацию схемы с дешифратором. В данном случае будем для формирования одноразрядного сигнала состояния использовать дешифратор, который будет преобразовывать двоичный код состояния в двоичный унитарный код, т.е. код, в котором только один сигнал будет активным, он и будет указывать на состояние, в котором находится автомат в течении рассматриваемого такта.
Для построения функциональной электрической схемы необходимо написать еще одно уравнение для формирования синхросигнала. Для этого предусмотрим сигнал запуска z, активное значение которого будет инициировать подачу синхросигнала C на элементы памяти. Уравнение имеет вид:
где z – сигнал запуска,
C – сигнал синхронизации, подаваемый на схему,
C’ – сигнал синхронизации с генератора тактовых сигналов.
Кроме того, необходимо предусмотреть установку элементов памяти в начальное состояние по включению питания. Для этого понадобятся две простые схемы, представленные на рис. 6.2 а и б.
а) б)
Рисунок 6.2 – Схемы сигналов установки триггеров в начальное состояние
На рис. 6.3 представлены временные диаграммы сигнала напряжения на обкладках конденсатора С, и сигналов А и В с выходов схем установки триггеров.
Рисунок 6.3 – Временные диаграммы сигналов А, В и UC
Пока конденсатор заряжается, на выходе А держится значение 0, так называемый вынужденный 0. На выходе В – постоянное значение 1. В период t вынужденного нуля держится комбинация А = 0, В = 1. После зарядки конденсатора появляется комбинация А = 1, В = 1. Подключая сигналы А и В к установочным входам триггера. Можно обеспечить его установку в 0 (рис6.4 а) или его установку в 1 (рис. 6.4 б) по включению питания. В обоих случаях после зарядки конденсатора устанавливается комбинация А = 1, В = 1, которая позволяет триггеру нормально функционировать.
а) б)
Рисунок 6.4 – Подключение сигналов А, В к триггеру
Также для облегчения построения схемы оцениваются аппаратурные затраты табл. (6.3). Это необходимо для того, чтобы точно знать, сколько каких микросхем необходимо расположить на поле схемы.
Таблица 6.3 - Количество корпусов интегральных схем
Тип корпуса |
Число корпусов |
|||||||||||||||
y1 |
y2 |
y3 |
y4 |
y5 |
y6 |
C |
a1, a2, a3, a4, a5, |
А, В |
DC
|
D3 |
D2 |
D1 |
Триг-геры |
Точно |
Округленно |
|
1x8 и-не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2x4 и-не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3x3 и-не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4x2 и-не |
|
|
3/4 |
1/4 |
1/4 |
1/4 |
3/4 |
|
|
|
|
1/4 |
1/4 |
|
11/4 |
3 |
6x1 не |
|
|
|
1/6 |
1/6 |
1/6 |
|
5/6 |
3/6 |
|
|
|
|
|
11/6 |
2 |
Триггеры (2 в 1) D3, D2, D1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3/2 |
3/2 |
2 |
DC 38 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
Всего |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
Теперь можно изображать функциональную схему автомата (рис. 6.4). Порядок составления схемы следующий:
изображается шина с входами и выходами (линии в 2 раза толще всех остальных) – слева входы, справа выходы;
рисуются микросхемы, справа дешифратор и триггеры, слева все остальные;
нумеруются сначала входы (в нашем примере от 1 до 9), а затем выходы всех микросхем (в нашем случае от 10 до 42);
выходы триггеров подключаются ко входам дешифратора;
определяется, каким выходам дешифратора соответствуют все состояния;
реализуются уравнения для сигналов А, В, С и все инверсии состояний;
реализуются функции возбуждения триггеров и функции выходов;
нумеруются входы триггеров;
нумеруются выходные сигналы.
Рисунок 6.4 – Схема автомата Мили