
- •Вопрос 1. Предмет та.
- •Вопрос 2. Классификация автоматов
- •Вопрос 3. Приложения та
- •Вопрос 4. Двоичное умножение
- •Вопрос 5. Умножение в инверсных кодах
- •Вопрос 6. Деление
- •Вопрос 7. Деление в инверсных кодах. Особенности.
- •Вопрос 8. Особенности выполнения операций в формате с плавающей запятой.
- •Вопрос 9
- •Вопрос 10. Модель дискретного преобразователя Глушкова
- •Вопрос 11. Микропрограммирование
- •Вопрос 12. Структуры операционных автоматов
- •Вопрос 13. Синтез оа процедурного типа
- •Вопрос 14. Синтез оа структурного типа
- •Вопрос 15. Автоматные языки. Формальное задание Автомата.
- •Вопрос 16. Модели автоматов Мили и Мура
- •Вопрос 17. Эквивалентность ка. Теорема Мура.
- •Вопрос 18. Минимизация конечных автоматов.
- •Вопрос 19. Эквивалентность автомата Мили и Мура.
- •Вопрос 20. Виды уа
- •Вопрос 21. Структурные схемы уа. Мили и Мура.
- •Вопрос 22. Этапы синтеза уажл.
- •Вопрос 23. Примеры синтеза уажл.
- •Вопрос 24. Гонки и способы борьбы с ними
- •Вопрос 25. Уа с программируемой логикой (уапл)
- •Вопрос 26. Алгебраическая и структурная теория ка.
- •Вопрос 26 [part2]
- •Вопрос 27. Объединение нескольких уа в один
- •Вопрос 28. Программная реализация ка. Варианты реализации. Шаблон Состояние.
- •Вопрос 29. Назначение и краткая характеристика vhdl.
- •Вопрос 30. Реализация уа на vhdl.
- •Вопрос 31. Понятие о языке моделирования uml.
- •Вопрос 32. Понятие о языках и формальных грамматиках
- •Вопрос 33. Классификация языков
- •Регулярные языки и Конечные Автоматы
- •Вопрос 34. Лемма о накачке
- •Вопрос 35. Понятие о нка. Получение дка по нка.
- •Вопрос 36. Регулярные выражения. Синтаксические диаграммы. Теорема Клини.
- •Вопрос 37. Применение рв. Различные нотации рв.
- •Вопрос 38. Кс-грамматики и магазинные автоматы.
- •Вопрос 39. Машины Тьюринга
- •Вопрос 40. Использование мт для анализа алгоритмов.
Вопрос 25. Уа с программируемой логикой (уапл)
Строится на базе памяти микропрограмм, в в качестве которых обычно выступает однократно программир. или перепрограммир. ПЗУ.
Обладает большей универсальностью и меньшим быстродействием по срав. с автоматами с ЖЛ. В отличии от ЖЛ, ПЛ может выполнять разнообразные алгоритмы, ограниченные опр. кол-вом операндов и проверяемых логических условий (опр. кол-во упр. сигналов.)
Различают УАПЛ :
с естественной адресацией
с принудительной адресацией
В автоматах с естественной адресацией используется одно поле адреса перехода. Если переход не выполняется автоматически извлекается по адресу микрокоманда (в порядке еств. адресации). В автоматах принудит. адрес – 2 поля адреса перехода. Одно задает адресные переход в случае выполнения, а второе – не выполнения условия. Если микроком. не является командой перехода в кач-ве сл. адреса используется адрес в одном из полей.
В общем случае в составе микрокоманды выделяют поле микроопераций (ПМО), поле признаков или – кодов признаков перехода (ПП), код типа микрооперации (например, это может быть один бит П – признак микрооперации переноса), поле адреса перехода в памяти микропрограмм (ПА). Схема УАПЛ с естественной адресацией приведена на следующем рис. :
Особое внимание (по сравнению с тем, что излагается в пособии !) следует обратить на поле признаков (ПП). Дело в том, что при анализе поступающих извне (например, из операционного автомата ОА) признаков (информационных сигналов Xi) каждый конкретный признак (флаг, условие) xi можно обрабатывать по-разному : 1) проверять на установку (xi = = 1); 2) проверять, что не установлен (xi = = 0); 3) игнорировать. При этом на каждый признак в поле признаков можно выделять по 1 биту, по 2 бита или – вообще использовать общие коды для кодирования всех необходимых комбинаций условий (например : 000 – безусловный переход, 001 – x1 = = 1, x2 = = 0, x3 – игнорировать и т.д.) . При выделении 1 бита на каждый признак (как в пособии) нужно учесть, что мы должны выделить 1 вариант бита (0 или 1) для кодирования "игнорирования" этого флага, а противоположное значение использовать для указания на то, что мы проверяем установку (или сброс) этого флага. То есть, если нам нужно закодировать для 3 флагов, что "x3 = = 1, x2 и x1 – не исп.", то мы должны указать, например, такую комбинацию в поле признаков : 100, но при этом мы никак не сможем закодировать условие "x3 = = 0, x2 и x1 – не исп." , так как комбинация 000 будет означать безусловный переход, а комбинация 011 – "x3 – не исп., x2 = = 1, x3 = = 1" (по логике схемы сравнения, с учетом выбранного варианта кодирования условия "x3 = = 1, x2 и x1 – не исп."). В этом случае необходимо проверять флаги всегшда только на сброс, или только на установку, а обратные логические значения проверять искуственно добавляя безусловные переходы в микропрограмме.
Вопрос 26. Алгебраическая и структурная теория ка.
Конгруэнция КА:
Разбиение
на множестве состояний КА А является
конгруэнцией, если под воздействием
любого входного сигнала автомат из
любых двух состояний ε одному и тому же
блоку разбиения π, переходит в состояния,
так же принадлежащие одному и тому же
(произвольному) блоку этого разбиения
: (xεX)(∀s,rεS)
[s]π=[r]π=>[δx(s)]π=
[δx(r)π]
Минимальное разбиение 0,I} – тривиальные конгруэнции. Если имеется автомат А=(x,s,s0,δ), то конгруэнция π задает фактор-автомат A/π=( π, x, [s0]π, δπ), состояниями которого являются блоки разбиения π, а функция переходов переходов δπ для каждого входного сигнала из Х и каждого блока π индуцирована конгруэнцией π : (∀xεX)(∀sεS) δ π ([s] π , x) = [δ(s, x)] π .
Последовательная декомпозиция автомата
По нетривиальной конгруэнции можно построить последовательную декомпозицию автомата.
Для этого необходимо выбрать любое разбиение ρ, ортогональное конгруэнции π, т.е. такое, что (π*ρ) = 0, затем провести двоичное кодирование блоков разбиения π и ρ как для двух последовательно включенных автоматов.
Рассмотрим пример для того же автомата А1:
π1={<0,7>;<1,2>;<3,4>;<5,6>}
ρ={<0,1,3,6>;<2,4,5,7>}
π1 * ρ= {<0>;<1>;<2>;<3>;<4>;<6>;<5>} = 0
Проведем двоичное кодирование состояний автомата таким образом, чтобы Q0≠f(Q2), Q1≠f(Q2). Для этого закодируем состояния автомата π1 двумя битами Q1 и Q0, а затем – два состояния для разбиения ρ с помощью бита Q2. В результате для исходного автомата все состояния, входящие в один блок разбиения автомата π1, будут закодированы одинаковым кодом Q0 Q1 , а все состояния, входящие в один блок разбиения автомата ρ – одинаковым кодом Q2 и итоговые функции для этих разрядов кодов состояний будут иметь более простой вид.
-
A/π
A/ρ
Состояния
Q0
Q1
Q2
0
0
0
0
1
1
0
0
2
1
0
1
3
0
1
0
4
0
1
1
5
1
1
1
6
1
1
0
7
0
0
1
Параллельная декомпозиция автомата
Если
на множестве состояний А существует
две ортогональные конгруэнции π и ρ,
т.е. π*ρ=0, то пара независимо работающих
фактор-автоматов А/π и А/ρ реализуют
исходный автомат. Получаем параллельную
декомпозицию.
Рассмотрим пример для того же автомата А1:
π1={<0,4>;<1,2>;<3,4>;<5,6>} и π2={<0,2,4,5>;<1,3,6,7>} – ортогональные конгруэнции автомата А1. В результате двоичного кодирования состояний исходного автомата таким образом, чтобы все состояния, входящие в один блок разбиения автомата π1, были бы закодированы одинаковым кодом Q0 Q1 , а все состояния, входящие в один блок разбиения автомата π2 – одинаковым кодом Q2 , мы получим совсем простой вид ф-ций для этих разрядов, так как согласно теории мы построили параллельную декомпозицию автомата.
Алгоритм поиска конгруэнции КА: Замыкание [[π]]A на разбиения π на множестве состояний автомата А. А=(s,x, δ) это такая конгруэнция что π≤[[ π]]A [[ π]]A – наименьшее из разбиений, обладающее свойством 1.
Алгоритм поиска замыканий. π0= π Для i≥0: πi+1= π1+∑[r] πi=[s] πi ∑xεXρ(δ(v,x)δ(s,x))