45. Противогоночное кодирование состояний автоматов. Кодирование состояний автоматов, реализуемых на плис
Противогоночное кодирование состояний автоматов
При функционировании автомата могут появиться так называемые состязания. Явление состязаний возникает вследствие того, что элементы памяти имеют различные, хотя и достаточно близкие, времена срабатывания. Кроме того, различны также задержки сигналов возбуждения, поступающих по логическим цепям неодинаковой длины td2> td1 (рис. 5.16).
Рисунок 5.16 – Фрагмент схемы автомата
Если при переходе автомата из одного состояния в другое должны изменить свои состояния сразу несколько запоминающих элементов, то между ними начинаются состязания. Тот элемент, который выиграет эти состязания, т.е. изменит свое состояние раньше, чем другие элементы, может через цепь обратной связи изменить сигналы на входах некоторых триггеров до того, как другие триггеры изменят свои состояния. Критические состязания называют гонками.
Существуют несколько способов устранения гонок. Когда использовались асинхронные автоматы и синхронные автоматы со статической синхронизацией, был распространен метод противогоночного кодирования, заключающийся в том, что состояния кодировались по возможности соседними кодами, т.е. использовалось соседнее кодирование (чтобы переключался только один триггер), рис. 5.17а. Это не всегда возможно. Или развязывались пары кодов. Т.е. между двумя состояниями, закодированными не соседними кодами, добавлялось состояние с кодом, который был соседним по отношению к этим обоим кодам (рис. 5.17б).
Рисунок 5.17 – Развязывание пар кодов
Это тоже не всегда хорошо, поскольку может привести к появлению нежелательного числа дополнительных состояний.
Наилучшим выходом из такого рода проблемы является использование динамически управляемых триггеров. Но и при этом необходимо правильно рассчитать частоту (период) синхросигнала T. Период синхросигнала должен быть больше, чем задержка самой длинной цепи в схеме (сюда входят и задержки элементов, и задержки распространения сигналов по линиям связи), T>td2 рис. 5.18.
Рисунок 5.18 – Выбор периода синхросигнала T
Современные САПР позволяют производить такие расчеты в автоматизированном режиме.
Кодирование состояний автоматов, реализуемых на ПЛИС
Если реализацию КЧ выполнять на ПЛИС, то в этом случае систему булевых функций следует представить в виде кратчайшей дизъюнктивной нормальной форме (КДНФ), так как площадь кристалла для реализации матрицы в этом случае будет минимальна. Следует отметить, что особенности применяемых матриц иногда требуют использования единичного позиционного кодирования для кодирования ВС (одна единица в n возможных позициях).
Например, для автомата на рис. 5.15 коды состояний могут иметь вид:
К(а5) = 10000;
К(а4) = 01000;
К(а3) = 00100;
К(а2) = 00010;
К(а1) = 00001.
При создании проектов для FPGA следует помнить, что каждая логическая ячейка содержит два триггера. Это значит, что минимизация количества используемых триггеров не имеет значения. Вместо этого нужно попытаться сократить общее число используемых ячеек и соединений между ними. Для того чтобы проектировать более быстрые схемы, следует уменьшать число ячеек, необходимых для реализации каждого уравнения. Применение унарного кодирования часто помогает этому. Это будет проиллюстрировано в разделе 5.7. Следует напомнить, что в отличие от заказных схем, программируемые схемы имеют гораздо меньшее быстродействие. Поэтому при проектировании схем на базе программируемых кристаллов борьба за большее быстродействие является более актуальной, чем борьба за минимальные аппаратурные затраты.
Для реализации уравнения с меньшим числом переменных обычно используется небольшое число логических ячеек. Если, например, функция возбуждения триггеров содержит 4 переменных, для ее реализации понадобится ровно 1 LUT. Если содержит, например 6 переменных, необходимо будет 2 LUT, соединенных каскадно. Чем больше LUT в каскаде, тем больше задержка распространения сигнала и тем меньше быстродействие устройства.
- 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. Делитель частоты