Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы / Tdu_5

.pdf
Скачиваний:
10
Добавлен:
10.12.2021
Размер:
774.11 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ»

Кафедра «Автоматика и телемеханика на железных дорогах»

МЕТОД КОДИРОВАНИЯ СОСТОЯНИЙ АСИНХРОННЫХ КОНЕЧНЫХ АВТОМАТОВ

Методические указания

к практическому занятию № 5

по дисциплине

«Теория дискретных устройств»

САНКТ-ПЕТЕРБУРГ

ПГУПС

2013

1

Цель работы

Изучение метода синтеза асинхронных автоматов с исключением критических состязаний.

1 Основные понятия

Асинхронные автоматы в отличие от синхронных [1] не требуют синхронизации внешних и внутренних воздействий, а исключение критических состязаний при их работе достигается с использованием избыточного кодирования.

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

Пусть дана таблица переходов (табл. 1). В каждой ее клетке записаны номера состояний асинхронного автомата, устойчивые состояния обозначены цифрами в скобках, а через запятую указано значение выхода асинхронного автомата при данном устойчивом состоянии.

Таблица 1

Совмещенная таблица переходов и выходов

S

 

x

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

1

(1), 0

 

7

 

 

 

 

2

3

 

(2), 0

 

 

 

 

3

(3), 1

 

5

 

 

 

 

4

(4), 1

 

7

 

 

 

 

5

4

 

(5), 1

 

 

 

 

6

(6), 0

 

2

 

 

 

 

7

6

 

(7), 0

 

 

 

 

Шаг 1. Формирование разделяющих переменных по каждому столбцу и определение -классов.

Переходы в таблице осуществляются по столбцам x = 0 и x = 1. Переход осуществляется в то состояние, номер которого указан в рассматриваемой клетке таблицы переходов, например, из клетки x, S 0,7 будет

реализован переход в клетку столбца x = 0 с номером состояния S = 6. Объединяя все возможные переходы по каждому столбцу рассматриваемой таблицы переходов, получаем систему λ-классов каждого столбца. Каждый такой класс будет содержать одно устойчивое и все неустойчивые состоя-

2

ния, из которых задан переход в данное устойчивое состояние. Другими словами, каждый λ-класс будет содержать номера тех состояний, которым соответствуют одинаковые цифры по каждому столбцу таблицы переходов. Рис. 1 поясняет методику выделения λ-классов.

λ-классы столбца х = 0

λ-классы столбца х = 1

λ1

(1)

 

 

1

1→7

 

 

 

 

 

2→3

λ5

4

 

 

2

 

 

 

2→4 Недопустимый

 

 

4→7

λ2

(3)

 

(7)

 

переход

 

 

 

 

 

 

 

 

λ3

(4)

 

λ6

(2)

 

5

5→4

6

6→2

 

 

 

(6)

 

 

3

 

λ4

7

7→6

λ7

(5)

3→5

 

 

Рис. 1 Определение λ-классов в заданной таблице переходов

В столбце x = 0 сформировано 1 = 4 λ-класса, а в столбце x = 1 – 2 = 3 λ-класса. Каждый обозначенный в табл. 1 переход осуществляется внутри одного из семи λ-классов (рис. 1). Если в результате состязаний реле в работе автомата возникает переход из одного λ-класса в другой (например, как это показано на рис. 1: ложный переход 2 → 4 вместо 2 → 3), то нарушается алгоритм работы автомата – возникает так называемое критическое состязание [1], поэтому необходимо исключить такие ложные переходы между λ-классами. С этой целью в каждом столбце x = 0 и x = 1 вводятся разделяющие внутренние переменные, кодирующие λ-классы. Разделяющие переменные обладают следующими свойствами.

Свойство 1. Для состояний, принадлежащих одному λ-классу, разделяющие переменные имеют одинаковые значения.

Свойство 2. Для состояний, принадлежащих разным λ-классам, разделяющие переменные имеют разные значения.

Свойство 3. При любом переходе внутри столбца x = 0 или x = 1 разделяющие переменные не меняют своих значений.

Свойство 4. Поведение асинхронного конечного автомата в столбце x = 0 или x = 1 зависит только от разделяющих переменных.

Таким образом, условием отсутствия критических состязаний является разделение любой пары λ-классов в каждом столбце таблицы переходов.

3

Осуществим кодирование каждого λ-класса.

Шаг 2. Кодирование -классов.

Для каждого столбца на основании числа λ-классов в нем определяется минимально необходимое число разделяющих переменных yi:

N log

2

 

 

,

(1)

 

 

j

 

 

где j – число λ-классов в столбце j;

N – число разделяющих переменных в столбце j;

a – ближайшее целое, превосходящее a (целое сверху от a). Пользуясь формулой (1), находим:

1 log2 4 2 2;

2 log2 3 1, 585 2.

Втабл. 2 приведен результат кодирования λ-классов. Видно, что каждый λ-класс по столбцам x = 0 и x = 1 разделен.

 

 

 

 

 

Таблица 2

 

Кодирование λ-классов

 

 

 

 

 

 

 

 

 

 

 

 

x = 0

 

 

x = 1

 

 

 

 

 

 

 

 

 

 

 

λ-класс

S

y1y2

λ-класс

S

 

y3y4

 

 

 

 

 

 

 

 

 

λ1

(1)

00

 

1

 

00

 

λ2

2

01

λ5

4

 

00

 

(3)

01

 

(7)

 

00

 

 

 

 

 

 

 

 

 

 

 

 

 

λ3

(4)

10

λ6

(2)

 

01

 

 

 

 

 

 

 

5

10

6

 

01

 

 

 

 

 

 

 

 

 

 

 

 

 

λ4

(6)

11

λ7

3

 

10

 

 

 

 

 

 

 

7

11

(5)

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 3. Кодирование исходной таблицы переходов.

Используя табл. 2, кодируем исходную таблицу переходов. Для осуществления кодирования в соответствующие клетки таблицы переходов проставляем код λ-класса, которому принадлежит рассматриваемое состояние (табл. 3).

Таблица 3

Кодирование строк таблицы переходов

S

x = 0

x = 1

 

 

 

 

 

 

4

 

y1y2

y3y4

 

 

 

1

00

00

 

 

 

2

01

01

 

 

 

3

01

10

 

 

 

4

10

00

 

 

 

5

10

10

 

 

 

6

11

01

 

 

 

7

11

00

 

 

 

Шаг 4. Составление кодированной таблицы переходов.

Таблицу условно можно разделить на две части – содержащую переходы внутри основных состояний (они соответствуют исходной таблице переходов) и содержащую неосновные состояния (см. рис. 1). Таким образом, первые семь строк кодированной таблицы переходов соответствуют строкам табл. 1, где десятичные номера состояний заменены на их коды из табл. 3.

Таблица 4

Кодированная таблица переходов

Разделяющие

y1y2

y3y4

переменные

 

 

S

y1y2y3y4

x = 0

x = 1

 

 

 

 

1

0000

(0000)

1100

2

0101

0110

(0101)

3

0110

(0110)

1010

 

 

 

 

4

1000

(1000)

1100

 

 

 

 

5

1010

1000

(1010)

 

 

 

 

6

1101

(1101)

0101

7

1100

1101

(1100)

 

 

 

 

8

0001

0000

0101

9

0010

0000

1010

10

0011

0000

0011

11

0100

0110

1100

 

 

 

 

12

0111

0110

0011

 

 

 

 

13

1001

1000

0101

14

1011

1000

0011

15

1110

1101

1010

16

1111

1101

0011

В табл. 4 состояния 1–7 – основные, а состояния 8–16 – неосновные. Для заполнения первых семи строк таблицы (основных состояний) применяется следующее правило.

Правило получения основных состояний. Если в клетке таблицы переходов (см. табл. 1) на пересечении строки, соответствующей основ-

5

ному состоянию Si, и столбца x проставлено некоторое состояние Sj, то в нее заносится код состояния Sj (i, j – индексы основных состояний) из табл. 3.

Например, в клетке (0, 0000) должен быть проставлен код состояния

1–0000; в клетке (1, 1101) – код состояния 2–0101, и т. д.

Неосновные состояния доопределяются с учетом обеспечения свойства 4. Решим данную задачу на примере. Пусть задан переход в столбце x = 1 из состояния 3 в состояние 5 (0110 1010). Он может произойти двумя путями (рис. 2). При этом разделяющие переменные не меняют своих значений (y3y4 = 10). В клетках неосновных состояний (1, 0010) и (1, 1110) проставляется код устойчивого состояния 5–1010, у которого значения разделяющих переменных совпадают с их значениями в кодах неосновных состояний.

 

 

 

S3 0 1 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S9 0 0 1 0

 

S15 1 1 1 0

 

 

 

 

 

 

 

 

 

S5 1 0 1 0

 

 

 

 

 

 

 

 

 

Рис. 2 Возможные переходы из состояния 1 в состояние 7

Процесс определения значения клетки (x, Si), соответствующей неосновному состоянию, зависит от значений разделяющих переменных в коде строки Si. В столбце x = 0 разделяющими являются переменные y1y2, а в столбце x = 1 – переменные y3y4.

Правило 1. Если в коде строки Si значения разделяющих переменных по столбцу x совпадают с их значениями в коде одного из устойчивых состояний этого столбца, то в клетке (x, Si) записывается код этого устойчивого состояния.

Правило 2. В оставшихся клетках (x, Si) проставляется произвольный код, т. к. в данные состояния асинхронный автомат никогда не попадает; будем записывать код, у которого разделяющие переменные имеют то же значение, что и в коде строки Si, а остальные переменные равны нулю.

К примеру, в клетке (1, 14) проставляется значение 0011. Выполнение правил 1 и 2 позволяет обеспечить свойство 4 и макси-

мально упростить схемы асинхронного автомата.

Шаг 5. Получение функций включения внутренних элементов памяти.

6

Следующим этапом синтеза асинхронного автомата является получение функций включения внутренних элементов. Для этого воспользуемся матричным представлением функций Y1, Y2, Y3, Y4 в виде карт Карно (рис. 3). Карты Карно составляются для каждого из столбцов x = 0 и x = 1: карты, записанные в левой части рис. 3, соответствуют первому, второму, третьему и четвертому столбцам переменных Y1, Y2, Y3, Y4 при x = 0; карты, записанные в правой части рис. 3, – первому, второму, третьему и четвертому столбцам переменных Y1, Y2, Y3, Y4 при x = 1.

Поясним принцип расстановки единиц в карты Карно на примере переменной Y1. В карте Карно проставляются единицы в клетках, соответствующих разрешенным наборам функции Y1 – наборам, на которых Y1 = 1. Для этого выбираются наборы <y1y2y3y4>, соответственно которым в первом столбце при x = 0 и при x = 1 проставлены единицы. Для Y1 при x = 0 – это наборы 1000, 1010, 1101, 1100, 1001, 1011, 1110, 1111; при x = 1 –

– 0000, 0110, 1000, 1010, 1100, 0010, 0100, 1110.

По аналогии поступают со всеми остальными внутренними переменными.

Проводя минимизацию [2] функций включения внутренних элементов, получаем следующие выражения:

Y1 xy1 x y4 ; Y2 xy2 x y3 ; Y3 x y1 y2 xy3 ; Y4 xy1 y2 xy4 .

Шаг 6. Получение и минимизация выходной функции.

Для определения выходной функции в исходной таблице переходов (табл. 1) выбираются все клетки, соответствующие устойчивым состояниям, значение выхода в которых z = 1. Выписывается дизъюнктивная нормальная форма [1] из значений разделяющих переменных, которыми закодировано данное устойчивое состояние. Проводя вычисления по столбцам таблицы переходов, получаем:

z x y1 y2 y1 y2 xy3 y4 .

7

x = 0

 

 

Y1

y1

 

Y1

 

1

1

xy1

 

 

 

1

1

 

 

 

 

y4

 

1

1

 

y3

 

 

y3

 

1

1

 

 

y2

 

 

Y2

y1

 

Y2

1

1

 

xy2

 

 

1

1

 

 

 

 

 

y4

1

1

 

 

y3

 

 

y3

1

1

 

 

 

y2

 

 

Y3

y1

 

Y3

 

 

 

x y1 y2

1

 

 

 

1

 

 

 

 

 

 

y4

1

 

 

 

y3

 

 

y3

1

 

 

 

 

y2

 

 

Y4

y1

 

Y4

 

1

 

xy1 y2

 

 

 

 

1

 

 

 

 

 

y4

 

1

 

 

y3

 

 

y3

 

1

 

 

 

y2

 

 

 

x = 1

 

 

 

 

 

 

y1

 

 

1

1

1

1

 

 

 

 

 

y4

x y

4

 

 

 

 

 

1

1

1

1

 

 

 

 

y2

 

 

 

 

 

 

y1

 

 

1

1

1

1

x y3

 

 

 

1

1

1

1

 

 

 

 

 

y4

 

 

 

 

y2

 

 

 

 

 

 

y1

 

 

 

 

 

y4

 

 

1

1

1

1

xy3

 

 

 

 

 

 

1

1

1

1

 

 

 

 

y2

 

 

 

 

 

 

y1

 

 

1

1

1

1

xy4

 

 

 

 

 

 

y4

 

 

1

1

1

1

 

 

 

 

y2

 

 

 

Рис. 3 Минимизация функций включения внутренних элементов памяти

8

Шаг 7. Синтез схемы асинхронного автомата на контактах.

По полученным на шаге 5 функциям включения внутренних элементов памяти Y1–Y4, а также по выходной функции z строится релейноконтактная схема асинхронного автомата (рис. 4).

x

XX

x y3

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y4

 

 

 

Y1

 

 

 

 

y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y3

Y3

y1

x

 

 

y1

 

 

y1

 

 

y2

 

 

 

 

y4

 

Y4

 

x

 

 

Y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y4

 

z

2

 

 

y2

y2

y1 y2

Рис. 4 Схема асинхронного автомата на контактах

2Методика выполнения работы

1.Ознакомиться с разделом 1 данных методических указаний.

2.Получить у преподавателя вариант в виде совмещенной таблицы переходов и выходов.

3.Выполнить разбиение состояний автомата на λ-классы по каждому столбцу.

4.Закодировать строки таблицы переходов.

5.Получить кодированную таблицу переходов.

6.Записать функции включения внутренних реле и выходную функцию в матричном виде (используя карту Карно).

9

7.Выполнить минимизацию по картам Карно.

8.По полученным в п. 7 функциям алгебры логики построить схему асинхронного автомата на контактах.

3 Варианты заданий

Вариантом задания является совмещенная таблица переходов и выходов.

 

Вариант 1

 

 

Вариант 4

 

 

Вариант 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

x

 

S

 

x

 

S

 

x

0

 

1

 

0

 

1

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

(1), 0

 

5

 

1

2

 

(1), 1

 

1

(1), 0

 

4

2

(2), 1

 

6

 

2

(2), 0

 

4

 

2

(2), 1

 

5

3

(3), 1

 

7

 

3

(3), 1

 

6

 

3

(3), 1

 

6

4

(4), 0

 

5

 

4

3

 

(4), 0

 

4

2

 

(4), 0

5

3

 

(5), 0

 

5

(5), 0

 

7

 

5

3

 

(5), 1

6

4

 

(6), 1

 

6

5

 

(6), 0

 

6

7

 

(6), 1

7

1

 

(7), 0

 

7

2

 

(7), 1

 

7

(7), 0

 

4

 

Вариант 2

 

 

Вариант 5

 

 

Вариант 8

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

x

 

S

 

x

 

S

 

x

0

 

1

 

0

 

1

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

(1), 0

 

1

2

 

(1), 0

 

1

3

 

(1), 0

2

(2), 1

 

5

 

2

(2), 1

 

6

 

2

5

 

(2), 1

3

(3), 0

 

6

 

3

(3), 0

 

7

 

3

(3), 0

 

2

4

(4), 1

 

7

 

4

(4), 0

 

1

 

4

6

 

(4), 0

5

3

 

(5), 0

 

5

(5), 1

 

6

 

5

(5), 1

 

4

6

4

 

(6), 1

 

6

3

 

(6), 1

 

6

(6), 1

 

7

7

2

 

(7), 0

 

7

4

 

(7), 0

 

7

3

 

(7), 1

 

Вариант 3

 

 

Вариант 6

 

 

Вариант 9

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

x

 

S

 

x

 

S

 

x

0

 

1

 

0

 

1

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

(1), 1

 

4

 

1

4

 

(1), 1

 

1

(1), 1

 

3

2

(2), 0

 

6

 

2

5

 

(2), 0

 

2

(2), 0

 

6

3

(3), 0

 

7

 

3

7

 

(3), 1

 

3

2

 

(3), 1

4

2

 

(4), 1

 

4

(4), 1

 

2

 

4

(4), 0

 

7

5

(5), 1

 

4

 

5

(5), 0

 

3

 

5

(5), 1

 

3

6

3

 

(6), 0

 

6

4

 

(6), 0

 

6

4

 

(6), 0

7

5

 

(7), 1

 

7

(7), 0

 

6

 

7

5

 

(7), 1

10

Соседние файлы в папке Методы