Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА_лб6_2011.doc
Скачиваний:
13
Добавлен:
31.08.2019
Размер:
515.07 Кб
Скачать

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(аms); к ,

(аms)  h;

Yl = V аm·Хh(аms); 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

38

1

1

Всего

8

Теперь можно изображать функциональную схему автомата (рис. 6.4). Порядок составления схемы следующий:

  1. изображается шина с входами и выходами (линии в 2 раза толще всех остальных) – слева входы, справа выходы;

  2. рисуются микросхемы, справа дешифратор и триггеры, слева все остальные;

  3. нумеруются сначала входы (в нашем примере от 1 до 9), а затем выходы всех микросхем (в нашем случае от 10 до 42);

  4. выходы триггеров подключаются ко входам дешифратора;

  5. определяется, каким выходам дешифратора соответствуют все состояния;

  6. реализуются уравнения для сигналов А, В, С и все инверсии состояний;

  7. реализуются функции возбуждения триггеров и функции выходов;

  8. нумеруются входы триггеров;

  9. нумеруются выходные сигналы.

Рисунок 6.4 – Схема автомата Мили