43. Канонический метод синтеза микропрограммных автоматов Мили
Отметки внутренних состояний автомата Мили по закодированной ГСА выполняются по следующим правилам:
1. символом отмечается вход первой вершины, следующей за начальной, а также вход конечной вершины;
2. входы вершин, следующих за операторными вершинами, отмечаются символами ;
3. входы двух различных вершин, за исключением конечной, не могут быть отмечены одинаковыми символами;
4. вход вершины может отмечаться только одним символом.
Внутренние состояния автомата Мили отмечены на дугах ГСА (рис. 5.7).
Прямой структурной таблицей микропрограммного автомата назовем таблицу, в которой последовательно перечисляются вначале все переходы из первого состояния в другие состояния, затем из второго состояния в другие и так далее.
Структурные таблицы по существу задают граф переходов автомата в виде списка, что является более компактной, но менее наглядной формой задания закона функционирования автомата.
Прямой структурной таблицей автомата Мили для ГСА на рис. 5.7 является таблица 5.1
Таблица 5.1 – Прямая структурная таблица для автомата Мили
h | |||||||
1 |
|
| 1 | , |
| ||
2 3 |
|
|
| – |
| ||
4 5 |
|
|
|
| |||
6 7 |
|
|
| – |
| ||
8 9 |
|
| – |
|
В таблице 5.1 h-указывает номер строки; – исходное состояние автомата для такта t; – двоичный код состояния ; – состояние перехода для момента времени t+1; – двоичный код состояния перехода; – условие перехода для строки h; – выходной сигнал на переходе из в для строки h; – сигналы возбуждения входов триггеров.
Следует отметить, что по сравнению с таблицами переходов и выходов цифрового автомата Мили структурная таблица является их расширением, так как содержит три дополнительных столбца и . Столбец h может отсутствовать в таблице, но его присутствие позволяет осуществить нумерацию переходов и облегчает анализ таблиц. Столбцы и окончательно оформляются после выполнения этапа кодирования внутренних состояний автомата.
Рисунок 5.7 – Разметка ГСА по Типу автомата Мили
Структурная таблица автомата по существу является списочной формой (списком) представления графа переходов автомата, но более компактна по сравнению с ним.
В ряде случаев, оказывается более удобным пользоваться обратной структурной таблицей автомата (таблица 5.2), в которой столбцы обозначены точно также, но сначала записываются все переходы в , затем в и так далее. Таким образом, в прямой структурной таблице автомата Мили ведущим является столбец , в обратной таблице ведущим является столбец .
Таблица 5.2– Обратная структурная таблица для автомата Мили
h | |||||||
1 2 |
|
|
| – |
| ||
3 |
|
| 1 | , |
| ||
4 5 |
|
|
| – |
| ||
6 7 |
|
|
|
| |||
8 9 |
|
|
| – |
|
Теперь построим граф переходов для автомата Мили по табл. 5.2 или 5.1. Каждая строка таблицы соответствует дуге графа (рис.5.8).
Рисунок 5.8 – Граф переходов автомата Мили
Каждое состояние автомата должно быть как-то представлено в схеме, где-то храниться. Состояние кодируется двоичной последовательностью, которая хранится в триггерах. Каждому новому состоянию соответствует своя уникальная двоичная последовательность, чтобы состояния были различимыми.
Минимальное число триггеров для хранения состояний, определяется выражением
,
где 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. Оставшиеся незакодированные внутренние состояния кодируют вначале комбинациями с двумя единицами, затем с тремя и т. д., пока все состояния не будут закодированы.
В результате получаем такое кодирование, при котором чем больше имеется переходов в некоторое состояние, тем меньше единиц содержится в его коде.
Подобные соображения могут быть использованы при кодировании выходных сигналов для минимизации функции выходов.
Кодирование состояний по выше рассмотренному алгоритму сведено в табл. 5.3
Таблица 5.3– Кодирование состояний автомата Мили на 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 |
Граф переходов с закодированными состояниями приведен на рис. 5.9. На дугах графа указаны разряды, на которые имеются единицы кодов состояний, куда входят дуги.
Рисунок 5.9 – Кодирование состояний автомата Мили
Коэффициент качества кодирования определяется как отношение числа букв D на графе к общему числу дуг.
Заполненная прямая структурная таблица для автомата Мили представлена в табл. 5.4.
Таблица 5.4 – Прямая структурная таблица для автомата Мили
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 |
Функции возбуждения 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-й строки таблицы.
Функции выходов, исходя из таблицы 5.4, в базисах Буля и Шеффера будут иметь следующий вид:
Функции переходов, исходя из таблицы 5.4, в базисах Буля и Шеффера будут иметь следующий вид:
Далее можно строить функциональную электрическую схему автомата.
Рассмотрим реализацию схемы с преддешифрацией. В данном случае будем для формирования одноразрядного сигнала состояния использовать дешифратор, который будет преобразовывать двоичный код состояния в двоичный унитарный код, т.е. код, в котором только один сигнал будет активным, он и будет указывать на состояние, в котором находится автомат в течении рассматриваемого такта.
Для построения функциональной электрической схемы необходимо написать еще одно уравнение для формирования синхросигнала. Для этого предусмотрим сигнал запуска z, активное значение которого будет инициировать подачу синхросигнала C на элементы памяти. Уравнение имеет вид:
где z – сигнал запуска,
C – сигнал синхронизации, подаваемый на схему,
C’ – сигнал синхронизации с генератора тактовых сигналов.
Кроме того, необходимо предусмотреть установку элементов памяти в начальное состояние по включению питания. Для этого понадобятся две простые схемы, представленные на рис. 5.10 а и б.
а) б)
Рисунок 5.10 – Схемы сигналов установки триггеров в начальное состояние
На рис. 5.11 представлены временные диаграммы сигнала напряжения на обкладках конденсатора С, и сигналов А и В с выходов схем установки триггеров.
Рисунок 5.11 – Временные диаграммы сигналов А, В и UC
Пока конденсатор заряжается, на выходе А держится значение 0, так называемый вынужденный 0. На выходе В – постоянное значение 1. В период t вынужденного нуля держится комбинация А = 0, В = 1. После зарядки конденсатора появляется комбинация А = 1, В = 1. Подключая сигналы А и В к установочным входам триггера. Можно обеспечить его установку в 0 (рис. 5.12 а) или его установку в 1 (рис. 5.12 б) по включению питания. В обоих случаях после зарядки конденсатора устанавливается комбинация А = 1, В = 1, которая позволяет триггеру нормально функционировать.
а) б)
Рисунок 5.12 – Подключение сигналов А, В к триггеру
Также для облегчения построения схемы оцениваются аппаратурные затраты табл. (5.5). Это необходимо для того, чтобы точно знать, сколько каких микросхем необходимо расположить на поле схемы.
Таблица 5.5 - Количество корпусов интегральных схем
Тип корпуса | Число корпусов | |||||||||||||||
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 |
Теперь можно изображать функциональную схему автомата (рис. 5.13). Порядок составления схемы следующий:
-
изображается шина (линии шины в 2 раза толще всех остальных линий) с входами и выходами – слева входы, справа выходы;
-
рисуются микросхемы, справа дешифратор и триггеры, слева все остальные;
-
нумеруются сначала входы (в нашем примере от 1 до 9), а затем выходы всех микросхем (в нашем случае от 10 до 42);
-
выходы триггеров подключаются ко входам дешифратора;
-
определяется, каким выходам дешифратора соответствуют все состояния;
-
реализуются уравнения для сигналов А, В, С и все инверсии состояний;
-
реализуются функции возбуждения триггеров и функции выходов;
-
нумеруются входы триггеров;
-
нумеруются выходные сигналы.
Рассмотрим реализацию схемы без дешифратора. В данном случае дешифратор использовать не будем. Состояние автомата будем представлять в виде конъюнкции выходных значений триггеров, взятых с отрицанием или без отрицания. Например, состояние имеет код 011, т.е. , где – выход соответствующего триггера. Тогда . Отрицание над Qi ставится тогда, когда оно принимает значение 0 в коде состояния. Отрицательные значения выходов триггеров в схеме берутся с инверсных выходов триггеров.
Функции выходов и переходов в базисах Буля и Шеффера будут использоваться в том же виде, а для формирования сигналов состояний вместо дешифратора будем использовать комбинационную схему, описываемую следующей системой уравнений:
Далее можно строить функциональную электрическую схему автомата.
Оценим аппаратурные затраты (табл. 5.6).
Таблица 5.6 - Количество корпусов интегральных схем
Тип корпуса | Число корпусов | ||||||||||||||
y1 | y2 | y3 | y4 | y5 | y6 | C | a1, a2, a3, a4, a5, | А, В | D3 | D2 | D1 | Триг-геры | Точно | Округ-ленно | |
1x8 и-не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2x4 и-не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3x3 и-не |
|
|
|
|
|
|
| 5/3 |
|
|
|
|
| 5/3 | 2 |
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 |
Всего |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
- 1. Двоичные сигналы в цифровой технике
- 2. Интегральные технологии
- 3. Переключательные схемы. Логические элементы и (and), или (or), не (not)
- 4. Переключательные схемы. Логические элементы и-не (nand) или-не (nor) исключающее или (xor), эквивалентность (xnor), буфер
- 5. Ассоциативность функций и (and), или (or), и-не (nand) или-не (nor), xor, xnor.
- 6. Степени интеграции микросхем. Позитивная и негативная логика
- 7. Операции кубического исчисления конъюнкция (and), дизъюнкция (or), исключающее или (xor)
- 8. Операции кубического исчисления пересечение, объединение и дополнение
- 9. Кубические покрытия элементов и (and), или (or), и-не (nand) или-не (nor), xor, xnor (доделать!!!)
- 10. Два подхода в минимизации систем булевых функций
- 11. Автоматизация проектирования
- 12. Сумматоры
- 13. Мультиплексоры
- 14. Демультиплексоры
- 15. Дешифраторы
- 16. Шифраторы
- 17. Программируемые логические матрицы (плм или pla)
- 18. Программируемая матричная логика (пмл или pal)
- 19. Универсальные логические модули на основе мультиплексоров (lut)
- 20. Асинхронные триггеры: rs-триггер, r*s*-триггер
- 21. Асинхронные триггеры: jk-триггер, j*k*-триггер
- 22. Асинхронные триггеры: d-триггер, vd-триггер, т-триггер
- 23. Синхронные триггеры
- 24. Одноступенчатые и двухступенчатые триггеры
- 25. Параллельные регистры. Последовательные регистры
- 26. Последовательно-параллельные регистры
- 27. Синтез триггеров на базе других триггеров (доделать!!!)
- 28. Определение абстрактного цифрового автомата
- 29. Автомат Мили
- 30. Автомат Мура
- 32. Задание автомата графом переходов
- 33. Табличный способ задания автоматов
- 34. Автоматная лента
- 35. Задание автомата деревом функционирования
- 36. Матричный способ представления автомата
- 37. Алгоритм трансформации автомата Мура в автомат Мили
- 38. Алгоритм перехода от автомата Мили к автомату Мура
- 39. Концепция операционного и управляющего автомата
- 40. Принцип микропрограммного управления
- 41. Содержательные и закодированные гса
- 42. Канонический метод структурного синтеза сложного цифрового автомат
- 43. Канонический метод синтеза микропрограммных автоматов Мили
- 44. Кодирование состояний автоматов с целью минимизации аппаратурных затрат
- 45. Противогоночное кодирование состояний автоматов. Кодирование состояний автоматов, реализуемых на плис
- 46. Канонический метод синтеза микропрограммных автоматов Мура
- 47. Vhdl-модель управляющего автомата Мили
- 48. Vhdl-модель управляющего автомата Мура
- 49. Vhdl-модель операционного автомата
- 50. Синтез канонической структуры операционного автомата
- 51. Характеристики операционного автомата. Явление гонок в операционных автоматах
- 52. Эквивалентные операции и обобщенный оператор
- 53. Операционный автомат типа I
- 54. Операционный автомат типа м
- 55. Оа типа im с параллельной комбинационной частью
- 56. Оа типа im с последовательной комбинационной частью
- 57. Операционный автомат типа s
- 58. Дребезг механических переключателей и метод его устранения
- 59. Делитель частоты