Анализ и синтез на логически схеми


Кодиране на вътрешните състояния на автомата



страница31/44
Дата30.05.2024
Размер1.14 Mb.
#121324
1   ...   27   28   29   30   31   32   33   34   ...   44
ASLS uchebnik
Свързани:
an-architectural-reassessment-of-a-villa-rustica-near-serdica, New Microsoft PowerPoint Presentation, кр цсх
2. Кодиране на вътрешните състояния на автомата.
Целите, които се преследват при кодиране на състоянията на автомата, са основно две:
- осигуряване на устойчива работа на автомата съгласно заложения алгоритъм;
- реализация на автомата с минимални апаратни разходи.
2.1. Към първата група цели се отнасят кодирането на началното състояние a1 и съседното кодиране на състоянията при синтез на асинхронен автомат.
След първоначалното включване на захранващото напрежение автоматът трябва да бъде установен в начално състояние a1. То се кодира обикновено с код 00...0, така че сигналът “първоначално установяване”, изработван от захранващия блок, да може чрез нулиращите входове на тригерите да ги установи в “0”. Ако избраните тригери нямат специален нулиращ вход, то сигналът “първоначално установяване” трябва да се подаде към входната комбинационна схема, за да може чрез функциите на възбуждане да се нулират тригерите.
Съседното кодиране е задължително при синтез на асинхронни автомати. Съществуват алгоритми, водещи към съседно кодиране [11,12], които тук няма да бъдат разглеждани. Когато броят на състоянията на автомата не е голям, кодирането може да се извърши по метода на пробите. Като помощно средство може да се използва картата на Карно. Определя се броят на тригерите k≥log2p и се построява карта на Карно за k променливи. Определя се кодът на началното състояние a1 (обикновено 00...0), нанася се в картата и спрямо него се нанасят останалите състояния. Целта е съседните в графа състояния да се получат съседни и в картата на Карно. Това не винаги е възможно, защото не всеки граф допуска съседно кодиране. Съществуват признаци, по които може да се провери дали един граф допуска съседно кодиране:
- В графа на автомата не трябва да има контур с нечетен брой състояния. Под контур се разбира затвореният контур, образуван от свързващите дъги, без да се отчита тяхната посока.
- Броят съседни на дадено състояние не трябва да надвишава броя на тригерите, от които се изгражда паметта. Ако например броят на тригерите е три, всяко състояние от графа може да има максимум три съседни състояния.
Ако горните условия не са изпълнени, е необходимо графът да бъде преработен, без да се нарушава алгоритъмът на работа на автомата. Това става чрез:
- добавяне на т. нар. “излишно” състояние в контур, за да се получат четен брой състояния. В “излишното” състояние се влиза по условието, присвоено на дъгата, която е разкъсана, а се излиза безусловно;
- разкъсване и обединяване на условия за преход;
- пренасочване на дъги;
- увеличаване броя на тригерите, от които се изгражда паметта.
Изброените препоръки за преработка на графа могат да се прилагат самостоятелно или в комбинация, но това не трябва да води до промяна на алгоритъма на работа на автомата. Особено внимание трябва да се отдели на процеса на присвояване на изходните сигнали към разкъсани дъги, а също и на добавените състояния. Тук правила няма и всичко зависи от конкретния алгоритъм. Не трябва да се накъсва изходен сигнал, изработван в две съседни състояния или пък да се променя неговата продължителност, променяйки условията за изход от състояние.
Съществуват и алгоритми, водещи до съседно кодиране [12].
Пример: Да се кодират съседно състоянията на автомата на Мур, зададен с графа от фиг.10.3.

1). Определя се минималният брой тригери и се кодира състояние a1:
k=3;
a1→000.
2). Проверява се дали графът отговаря на условията за съседно кодиране.
- контурите a1,a2,a5; a2,a3,a5 и т.н. имат нечетен брой състояния;
- състояние a5 има четири съседни състояния, (a1,a2,a3,a4), а броят на тригерите е три.
Следователно графът не отговаря на условията и трябва да бъде преработен по следния начин (фиг.10.4.):
- добавя се състояние a6, като се разкъсват и обединяват две дъги ( ), излизащи от a2 по част от условието за преход ;
- добавя се състояние a8, като се разкъсва дъга (x4), свързваща a4 с a5;
- добавя се състояние a7, като се разкъсва и пренасочва към състояние a8 дъгата ( ), излизаща от състояние a3.

Изходът от “излишните” състояния става безусловно (a7,a8) или по условие (a6). Намирайки се в тези състояния, автоматът не изработва изходен сигнал. Продължителността на y1 и y2 се гарантира от сигналите , а на y4 - от .
Така полученият граф отговаря на условията за съседно кодиране.
- Кодират се състоянията с използване на картата на Карно за три променливи - Q1, Q2 и Q3. Това са изходите на трите тригера. Възможни са два варианта за кодиране. От картите се извлича и присвоява кода на всяко едно състояние. Например кодът на a2 ще е 001 и 010 съoтветно по първи и втори вариант.

2.2. Koдиране на състоянията с цел реализиране на автомата с минимални апаратни разходи.
При каноничния метод за структурен синтез беше отбелязано, че при различни варианти на кодиране на състоянията на автомата се получават различни по сложност функции на възбуждане и изходни функции. Сложността на комбинационната схема следователно съществено зависи от избраните кодове.
Пример: По зададен автоматен граф на базата на синхронни - D тригери да се синтезира краен автомат.


Получените при двата варианта на кодиране функции съществено се различават по своята сложност. Търсенето обаче на “по-добрия” начин на кодиране, водещ до по-малки разходи, е свързан със следните трудности:
- огромен брой варианти;
- зависимост от избрания тип тригери.
Не съществува проста процедура за решаване на тази задача.
Ще бъде разгледана една процедура за кодиране на състоянията при ограничения, че вече са кодирани входните въздействия и изходните реакции и избраните елементарни автомати за изграждане на паметта са D - тригери.
Процедурата се свежда до прилагането на следните правила:


Сподели с приятели:
1   ...   27   28   29   30   31   32   33   34   ...   44




©obuch.info 2024
отнасят до администрацията

    Начална страница