Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
13.02.2015
Размер:
657.41 Кб
Скачать
    1. Конечные автоматы

Конечные автоматы  последовательностные узлы, основная функция которых формирование на выходах сигналов, управляющих работой других устройств, к которым относятся как последовательностные, так и комбинационные.

Конечные автоматы используются для управления конкретным устройством, поэтому входят в состав интегральных микросхем микропроцессорных серий.

Синтез конечного автомата выполняется на основании технического задания, в котором указываются требования к функционированию и основные электрические параметры.

Требования к функционированию указывают в виде словесного описания, таблицы истинности или гра́фа переключений, где приводят взаимное соответствие входящих и исходящих сигналов.

Основные электрические параметры определяют требования к логике функционирования, быстродействию, потребляемой мощности, помехоустойчивости и др., а также к способу реализации: элементному  на базе существующих элементов или компонентному  путём разработки принципиальной схемы оригинального базового элемента, на основании которого реализуются типовые логические, а затем и цифровые элементы.

Процесс элементного синтеза разделяется на этапы:

  1. Построение гра́фа переходов;

  2. Оптимизация управляющих воздействий на триггеры;

  3. Вычисление требуемого количества триггеров;

  4. Формирование таблицы истинности;

  5. Формирование управляющих воздействий;

  6. Построение принципиальной схемы;

  7. Анализ работы синтезированного узла.

Рассмотрим методику синтеза на примере решения задачи.

Задача 4.2. Синтезировать принципиальную схему конечного автомата для выполнения ассемблерной команды «переход, если равно» используя приведённые ниже словесные характеристики микрокоманд:

  1. Извлечение кода команды из памяти программ по физическому адресу, расположенному в регистре счётчика команд (РСчК),  позволяет приступить к исполнению новой ассемблерной команды;

  2. Декодирование кода команды (основного и дополнительного)  выполняет переход на уникальный алгоритм исполнения ассемблерной команды;

  3. Инкрементирование РСчК  формирует физический адрес для памяти программ, где расположен следующий по порядку код ассемблерной команды;

  4. Анализ состояния флага Z  из регистра флагов выполняется чтение флага Z:

  • если состояние флага Z = 0, то передачи управления нет, готовится к исполнению следующая команда и выполняется переход на исполнение микрокоманды № 8;

  • если состояние флага Z = 1, то выполняется передача управления и исполняется микрокоманда № 5;

  1. Извлечение следующего слова из памяти программ  позволяет получить константу перехода;

  2. Алгебраическое суммирование текущего состояния РСчК и константы перехода  позволяет получить физический адрес перехода;

  3. Параллельная загрузка нового числа (суммы) в РСчК – переход к исполнению первой команды программы по ветвлению, т.е. переход к исполнению микрокоманды № 1 для следующей ассемблерной команды;

  4. Инкрементирование РСчК  переход к исполнению следующей команды в программе, т.е. переход к исполнению микрокоманды № 1 для следующей ассемблерной команды.

Синтез принципиальной схемы выполнить на базе существующих универсальных jk-триггеров и логических элементов.

Построение графа переходов. Граф переходов представляется геометрической фигурой на плоскости, состоящей из дуг и вершин.

Вершина гра́фа представляет собой окружность с расположенной внутри цифрой, характеризующей её порядковый номер. Порядковый номер вершины отображает текущее состояние конечного автомата (Qi). Полное число вершин гра́фа соответствует количеству устойчивых состояний конечного автомата (Q0, Q1, Q2, …, Qi). Переход из одного устойчивого состояния в другое осуществляется под совместным воздействием множества всех алфавитов, которое формирует систему переключений конечного автомата Si = F{ХiZiQi, ai, C}. В каждом устойчивом состоянии конечный автомат может находиться в течение интервала времени произвольной длительности, кратного периоду синхронизации.

Дуга  линия со стрелкой на конце, соединяющая две вершины гра́фа, на которой указываются условия перехода между вершинами Si = F{ХiZiQi, ai} и функции выхода автомата Yi = F{ХiZiQi, ai, C}. Дуга, представляющая ветвления при переключении конечного автомата, соединяет либо две произвольные вершины гра́фа, либо одну и ту же вершину замыкаясь на ней.

На основании вышеприведённых правил построен грáф переходов (рис. 4.4).

Вершина графа Q0 отображает режим исходного состояния конечного автомата, следовательно, в данной вершине конечный автомат может находиться произвольный интервал времени. Вывести конечный автомат из режима исходного состояния и перевести его на исполнение ассемблерной команды может сигнал внешнего управления Х1 = 1. При Х1 = 1 выполняется переход на вершину Q1.

В вершине графа Q1 формируется исходящий сигнал Y1 = 1, предназначенный одновременно для подтверждения истинности физического адреса и разрешения чтения данных из памяти программ.

Вершина графа Q2 позволяет выбрать указанный в коде команды алгоритм исполнения из множества существующих алгоритмов посредством перехода на вершину Q3.

Вершины Q0, Q1 и Q2 являются общими при исполнении многих ассемблерных команд.

По формату ассемблерная команда «переход, если равно» состоит из двух слов, поэтому вершина Q3 формирует исходящий сигнал Y2 = 1, предназначенный для инкрементирования РСчК. Одновременно формируется вторично сигнал Y1 = 1.

В вершине графа Q4 анализируется состояние флага Z в регистре флагов, на основании которого выполняется ветвление. Если Z = 0, ветвление программы отсутствует, выполняется выход, при котором формируется исходящий сигнал Y2 = 1, предназначенный для инкрементирования РСчК. Если Z = 1, то выполняется переход на вершину Q5.

За время анализа состояния флага Z произошло чтение данных из второго адреса кода ассемблерной команды, следовательно, вершина Q5 формирует исходящий сигнал Y3 = 1, предназначенный для разрешения суммирования текущего состояния РСчК и кода смещения адреса перехода. Команды ветвлений в программе занимают более 10 % кодов, поэтому, для ускорения вычислений целесообразно реализовать отдельный сумматор.

Вершина графа Q6 формирует исходящий сигнал Y4 = 1, предназначенный для разрешения загрузки полученной суммы в РСчК.

Оптимизация управляющих воздействий на триггеры. Количество устойчивых состояний конечного автомата однозначно определено числом вершин, следовательно, количество дуг определяет число возможных переключений триггеров при произвольном переходе между вершинами. Для переключения триггера на его входах необходимо сформировать управляющее воздействие, следовательно, для оптимального переключения одна дуга должна формировать одно управляющее воздействие. Каждое управляющее воздействие на триггер можно отобразить инверсией числа, отображающего вершину гра́фа переключений (табл. 4.4).

Таблица 4.4

Таблица переключений триггеров

Количество управляющих воздействий

Цепочки переключений

15 = 12 + 1 +2

01234560; 40; 60

В соответствии с рис. 4.4

0 0 0 01 1 10; 10; 10

0 01 10 010; 0 0; 10

0101010 0; 0 0; 0 0

10 = 8 + 1 + 1

03754620; 40; 20

Оптимальная

0 01 1 1 10 0; 10; 0 0

01 10 01 10; 0 0; 10

01 1 10 0 0 0; 0 0; 0 0

В соответствии с оптимальной цепочкой переключений триггеров (табл. 4.4) целесообразно переименовать вершины гра́фа переключений синтезируемого конечного автомата.

Вычисление количества триггеров. Для определения количества триггеров необходимо наибольшее из чисел, отображающих вершины гра́фа переходов, перевести в двоичную систему счисления, при этом количество разрядов числа в двоичной системе счисления должно быть равным количеству триггеров. Реализация данного конечного автомата выполняется на трех триггерах, так как 610=1102.

Формирование таблицы истинности. Используя граф переключений управляющего автомата (рис. 4.4), сформируем таблицу истинности его работы (табл. 4.5), где отобразим все вершины (с учётом переименований в табл. 4.4), все переходы, а также все сигналы, поступающие на его входы, формируемые на его выходах и возникающие при переходах из вершины в вершину. В таблице истинности вершины графа задаются десятичными числами, а соответствующие им состояния триггеров  двоичными числами. В столбцы функций внутренних переходов Qi вносятся требуемые для данного переключения воздействия на входы j и k каждого триггера. При наличии условия по входящему воздействию Хi в соответствующий столбец вносится данное воздействие. В столбцы исходящих сигналов Yi вносятся соответствующие им значения, если в данной вершине существует формирование исходящего сигнала.

Таблица 4.5

Таблица истинности работы конечного автомата

Выход дуги из вершины

Текущее

состояние

триггеров

Вход дуги в вершину

Последующее

состояние

триггеров

Воздействие внешнего сигнала

Функции

внутренних

переходов

Характеристики

сигналов на

выходе

Q3

Q2

Q1

Q3

Q2

Q1

Т3

T2

T1

0

0

0

0

3

0

1

1

X1 = 1

j2

j1

3

0

1

1

7

1

1

1

j3

Y1 = 1

7

1

1

1

5

1

0

1

k2

5

1

0

1

4

1

0

0

k1

Y1 = 1; Y2 = 1

4

1

0

0

6

1

1

0

Z = 1

j2

Y1 = 1

4

1

0

0

0

0

0

0

Z = 0

k3

Y1 = 1; Y2 = 1

6

1

1

0

2

0

1

0

k3

Y3 = 1

2

0

1

0

0

0

0

0

k2

Y4 = 1

Формирование управляющих воздействий. Реализация уравнений, управляющих переключениями триггеров, осуществляется на основании приведённых в табл. 4.5 функций внутренних переходов для каждого из трёх триггеров:

j3 = a3; k3 = Z a4 a6;

j2 = X1 a0 Z a4; k2 = a7 a2;

j1 = X1 a0; k1 = a5;

где ai  десятичное число, отображающее вершину графа, из которой выходит дуга, характеризующая текущее переключение управляющего автомата.

Исходящие сигналы конечного автомата (Yi) управляют работой других узлов и на основании табл. 4.5

Y1 = a3 a5 a4; Y2 = a5 Z a4; Y3 = a6; Y4 = a2. (4.6)

При необходимости управляющие и исходящие уравнения можно подвергать преобразованию по законам булевой алгебры.

Построение принципиальной схемы. Используя управляющие уравнения для каждого триггера и для исходящих сигналов, построим принципиальную схему конечного автомата, при этом для десятичного представления вершин гра́фа добавим стандартный дешифратор «из 3 в 8». Для вывода конечного автомата в исходное состояние создадим дополнительный вход Е, который подключается к входам R либо S jk-триггеров таким способом, чтобы на их выходах формировался двоичный код первой вершины графа переключений. Сигналом внешней синхронизации С конечный автомат переводится в новое состояние, в соответствии с управляющими сигналами, в фиксированные промежутки времени. Принципиальная схема конечного автомата показана на рис. 4.5.

Анализ работы конечного автомата. Ввиду достаточной сложности принципиальной схемы конечного автомата анализ его работы можно выполнить при помощи подстановки логических уровней. На рис. 4.5 показано переключение конечного автомата из вершины Q4 в вершину Q6, при условии Z = 1. Переход конечного автомата в вершину Q6 произойдёт во время прихода фронта импульса синхронизации.

Соседние файлы в папке Учебное_пособие_по_Схемотехнике