
- •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. Делитель частоты
42. Канонический метод структурного синтеза сложного цифрового автомат
Автомат с числом внутренних состояний ≥3 является сложным автоматом. Реализуется на основе композиций некоторого числа более простых автоматов. Канонический метод синтеза разработан Глушковым В.М. Он предложил канонический прием. Суть этого метода состоит в сведении задачи синтеза автоматов к синтезу булевых функций.
Суть канонического синтеза цифрового автомата состоит в сведении задачи синтеза сложного цифрового автомата к задаче синтеза комбинационных схем КС1 и КС2 (рис. 5.3). Канонический метод синтеза автомата состоит из 6 этапов:
-
Кодирование входных сигналов цифрового автомата (букв входного алфавита) двоичными кодами на входных структурных шинах X={x1, x2, …, xL}.
-
Кодирование букв выходного алфавита двоичными кодами на выходных структурных шинах автоматов Y={y1, y2, …, yM}.
-
Кодирование внутренних состояний автомата двоичными кодами состояний триггеров A={a1, a2, …, aK}.
-
Составление структурных таблиц автомата и запись систем функций выхода и функций возбуждения 1, 2, …, R входов триггеров.
-
Минимизация систем функций выхода и функций возбуждения и перевод их к заданному базису.
-
Построение схемы автомата.
Для
формирования последовательности
управляющих сигналов Y,
соответствующей последовательности
осведомительных сигналов X,
можно использовать микропрограммный
автомат (последовательную схему). При
этом множество входных сигналов
автомата определяется множеством
логических условий (осведомительных
сигналов), множество выходных сигналов
определяется множеством управляющих
сигналов, используемых для возбуждения
микроопераций
и законов функционирования автомата,
задающем порядок преобразования входной
последовательности X(0),
X(1) ,…, X(t)
в выходную последовательность Y(0),
Y(1), …,Y(t),
определяемую микропрограммой.
При
синтезе микропрограммных автоматов
вначале путём анализа содержательного
смысла условных и операторных вершин
Ф-микропрограммы определяют список
(множество) Х и множество Y.
Затем переходят от Ф-микропрограммы к
закодированной ГСА, на которой вместо
содержательного смысла проставлены
имена
и
.
Затем производят определение закона
функционирования микропрограммного
автомата (Мили или Мура) путём выполнения
отметки внутренних состояний автомата
на ГСА и построения структурных таблиц
автоматов (прямых или обратных). На
последнем этапе кодируют внутренние
состояния автомата, записывают систему
функций выхода и возбуждения входов
триггеров, упрощают эти системы, переводят
их в заданный схемотехнический базис
и строят схему автомата.
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 |