
МУ до ПЗ КЛ 2012 укр вер 2 семестр (2)
.pdf
49
Рис. 6.1
Однак, найбільш просто схема RS-тригера виглядає в базисі «АБО-НІ». Перетворимо рівняння (5.1) до виду, зручного для реалізації в базисі
«АБО-НІ». Скористаємося правилом Де-Моргана:
t+1 |
= |
|
|
|
|
= |
|
|
|
|
|
(6.1) |
Q |
|
|
∙ |
˅ |
|
|
|
˅ |
|
˅ |
|
|
У підсумку отримуємо наступну функціональну схему RS-тригера в базисі «АБО-НІ» з інверсним виходом. (індекси t та t+1 на схемі не проставляють) (Рис. 6.2.).
Рис. 6.2.
Виконавши перетворення, аналогічні попереднім, але для інверсного виходу Qt+1 із табл. 5.10, можно показати, що:
Qt+1 = |
|
|
|
|
|
|
|
|
(6.2) |
|||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||
Що відповідає |
функціональній схемі RS-тригера з прямим виходом (Рис. 6.3.). |
|||||||||||||||||||||||||||
|
˅ |
|
˅ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 6.3.

50
Порівнюючи схеми з рис. 6.2 і рис. 6.3, неважко помітити, що це одна і та ж схема, тому зазвичай схема RS-тригера зображується, як одна, яка має парафазні виходи (прямий і інверсний) (рис. 6.4.)
Рис. 6.4.
а у вигляді умовного графічного зображення це буде виглядати так: (див.
рис. 6.5.)
Рис. 6.5
Приклад побудови часових діаграм роботи RS-тригера:
Рис. 6.6.
Коментар до часових діаграм по рис. 6.6. |
1). |
На інтервалі 0 ... t1, RS = 00 і тригер зберігає стан (Q = 0, |

51
У момент часу t1, RS = 01, що відповідає режиму встановлення тригера в
«1» (Q = 1, |
|
|
). |
|
- t |
. |
|
|
|
||||
Режим |
установки в «1» діє на інтервалі t |
1 |
||||
0 |
|
2 |
|
Умомент часу t2, RS = 0, що відповідає режиму переходу тригера в режим зберігання «1», діє на інтервалі t2 t3.
Умомент часу t3, RS = 10, що відповідає режиму встановлення тригера в
«0» (Q=0, |
|
|
|
). |
|
|
|
|
|
- t |
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Режим |
установки в «0» діє на інтервалі t |
3 |
|
|
|
|
||||||||||
1 |
|
|
|
|
|
4 |
|
|
|
|
||||||
У момент часу t4, RS = 00, що відповідає переходу тригера в режим |
||||||||||||||||
зберігання «0» (Q=0, |
|
|
|
). |
|
-t |
. |
|
|
|
|
|||||
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
«1» діє на інтервалі t |
|
|
|
|
|
||||
Режим установки в |
1 |
|
4 |
5 |
|
|
|
|
|
|||||||
У момент часу t , RS = 01, тригер встановлюється в «1» (Q=1, |
|
|
). |
|||||||||||||
0 |
||||||||||||||||
На інтервалі t5 - 5t6 діє режим установки в «1». |
|
Умомент часу t6, RS = 00, і тригер переходить в режим зберігання «1», який триває до моменту t7.
Умомент часу t7, RS = 10, що відповідає режиму встановлення тригера в
«0» (Q=0, |
|
|
|
). |
|
- t |
. |
|
|
|
|||||
Режим |
установки в «0» діє на інтервалі t |
7 |
|||||
1 |
|
8 |
|
У момент часу t8, RS = 00, і тригер переходить в режим зберігання «0».
6.3 Індивідуальні завдання
Записати характеристичне рівняння тригера та синтезувати по ньому функціональну схему асинхронного тригера в базисі «І-АБО-НІ», «АБО-НІ».
Таблиця 5.13.
Входи |
|
|
|
|
|
Номер варіанта |
|
|
|
|
|
||||
Х У 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 11 12 13 14 |
||||||
0 |
0 |
Q(t) |
1 |
0 |
0 |
1 |
Q(t) |
0 |
0 |
Q(t) |
Q(t) |
1 |
1 |
0 |
Q(t) |
0 |
1 |
0 |
0 |
1 |
1 |
Q(t) |
1 |
Q(t) |
Q(t) |
1 |
1 |
0 |
1 |
Q(t) |
1 |
1 |
0 |
Q(t) |
Q(t) |
0 |
Q(t) |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
Q(t) |
0 |
0 |
1 |
1 |
1 |
Q(t) |
Q(t) |
1 |
0 |
1 |
Q(t) |
1 |
0 |
Q(t) |
Q(t) |
0 |
1 |
0 |
Входи |
Номер варіанта |

52
Х |
У |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
Q(t) |
Q(t) |
Q(t) |
1 |
0 |
0 |
Q(t) |
0 |
0 |
1 |
Q(t) |
Q(t) |
1 |
1 |
0 |
Q(t) |
1 |
0 |
Q(t) |
Q(t) |
Q(t) |
0 |
0 |
0 |
1 |
0 |
Q(t) |
0 |
Q(t) |
0 |
Q(t) |
1 |
Q(t) |
1 |
1 |
Q(t) |
1 |
Q(t) |
Q(t) |
0 |
1 |
1 |
0 |
Q(t) |
Q(t) |
Q(t) |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
6.4Контрольні запитання
1.Які елементи пам'яті прийнято називати тригерами?
2.Які тригери називаються бістабільними?
3.Як виглядає узагальнена схема тригерного пристрою?
4.Як виглядає схема RS-тригера в базисі «І-АБО-НІ»?
5.Як виглядає схема RS-тригера, який має парафазні виходи ?
7 ЗАБЕЗПЕЧЕННЯ СТІЙКОСТІ ФУНКЦІОНУВАННЯ ЦИФРОВИХ АВТОМАТІВ
7.1 Мета заняття
Провести аналіз причин появи гонок в автоматах, засвоєння апаратних та алгоритмічних способів боротьби з явищем гонок в автоматах, рішення задач протигоночного кодування станів автомата.
7.2 Короткі основні відомості з теорії та вирішення типових завдань
7.2.1.Гонки в автоматі
Завдання кодування станів є однією з основних задач канонічного методу структурного синтезу автоматів. Кодування полягає у встановленні взаємнооднозначної відповідності між множиною А = {а1,. . . , ам} станів автомата і множиною R-компонентних векторів {К1,. . . , КМ}, Кm = (еm1, ..., emR), де еmr - стан r-го елементу пам'яті, r = 1,. . . , R. Якщо еmr {0, 1}, тобто алфавіт станів елементів пам'яті двійковий, R ] log2M [. Далі заради простоти обмежимося використанням в якості елементів пам'яті RS-тригерів, які будемо позначати
T1,. . . , ТR.
Перехід автомата з одного стану в інший здійснюється за рахунок зміни станів елементів пам'яті. Так, якщо автомат переходить зі стану аm з кодом 0101

53
в стан аs з кодом 1001, то це означає, що тригер Т1 переходить зі стану 0 в стан 1, тригер Т2 - зі стану 1 у стан 0, а стану тригерів Т3 і Т4 НЕ змінюються.
При функціонуванні автомата можуть з'явитися так звані змагання. Явище змагань виникає внаслідок того, що елементи пам'яті мають різні, хоча і досить близькі, часи спрацьовування. Крім того, різні також затримки сигналів збудження, що надходять на вхідні канали елементарних автоматів по логічним ланцюгах неоднакової довжини. Якщо при переході автомата з одного стану в інший повинні змінити свої стани відразу декілька запам'ятовуючих елементів, то між ними починаються змагання. Той елемент, який виграє ці змагання, тобто змінює свій стан раніше, ніж інші елементи, може через ланцюг зворотного зв'язку змінити сигнали на входах деяких запам'ятовуючих елементів до того, як інші елементи, які приймають участь у змаганнях, змінять свої стани. Це може призвести до переходу автомата в стан, не передбачений його графом. Тому в процесі переходу зі стану аm в стан аs під дією вхідного сигналу zf (рис. 7.1, а) автомат може опинитися в деякому проміжному стані аk або аl в залежності від того, який елемент пам'яті виграє змагання. Якщо потім при тому ж вхідному сигналі автомат з ak і al перейде в стан аs, то такі змагання є допустимими, або некритичними. Якщо ж в цьому автоматі є перехід, наприклад, з аk в aj as під дією того ж сигналу zf (рис. 7.1, б), то автомат може перейти в aj, а не в as і правильність його роботи тим самим буде порушена. Такі змагання називаються критичними змаганнями або гонками. При кодуванні станів гонки повинні бути усунені. Кодування з усуненням гонок називається протигоночним.
Рис. 7.1. Змагання між елементами пам'яті а) некритичні, б) критичні.
Один із способів ліквідації гонок полягає в тактуванні вхідних сигналів автомата імпульсами певної тривалості. Передбачається, що крім вхідних

54
каналів x1,. . . , хL є ще один канал С від генератора синхроімпульсів (ГСІ), по якому надходить сигнал С = 1 в момент приходу імпульсу і С = 0 при його відсутності. У зв'язку з цим вхідним сигналом на переході (am, as) буде не zf, a Сzf. Тоді, якщо тривалість імпульсу tС менше самого короткого шляху проходження тактованого сигналу зворотного зв'язку по комбінаційній схемі, то до моменту переходу в проміжний стан ak (рис. 7.1, б) сигнал С дорівнює нулю і, отже, Сzf = 0, що виключає гонки.
Інший спосіб ліквідації гонок полягає у введенні подвійної пам'яті (рис. 7.2). У цьому випадку кожен елемент пам'яті дублюється, причому перепис з нижнього елемента пам'яті в верхній відбувається в момент відсутності тактуючого імпульсу (С=0). Сигнали зворотного зв'язку для одержання функції збудження і функцій виходів автомата знімаються з верхнього ряду тригерів. Таким чином, змагання можуть виникнути тільки між нижніми тригерами, сигнали зворотного зв'язку не зможуть змінитися до тих пір, поки С не стане рівним нулю. Але тоді вхідний сигнал Сzf, також дорівнює нулю, а тому гонок бути не може.
Рис. 7.2. Подвійна пам'ять
7.2.2 Протигоночне кодування.
Суть і алгоритм розв'язування станів
Нехай (,
) і (
,
) - дві пари двійкових кодів довжини R. Ці пари будуть називатися розв'язаними, якщо при деякому I (1
i
I) i-розряд коду приймає значення 1 на парі (
,
) і протилежне значення на парі (
,
). Якщо це не дотримується, пари називаються зв'язаними.

55
Теорема. В автоматі, стан якого закодовано двійковими кодами кінцевої довжини, гонки відсутні тоді і тільки тоді, коли для будь-яких двох переходів (am, as) і (ak, al) при as al, що відбуваються під дією одного і того ж вхідного сигналу відповідні пари розв'язані.
Алгоритм протигоночного кодування заснований на цій теоремі, ідея полягає в наступному: послідовно переглядаючи всі пари переходів, що мають хоча б 1 загальний вхідний сигнал, який здійснює ці переходи, слід присвоювати розрядам кодів такі значення, щоб ці пари кодів станів були розв'язані.
Нехай (am, as) і (ak, al) пари переходів автомата, а ,
,
,
- відповідно четвірка кодів станів am, as, ak, al довжини i.
Примітка. Четвірка кодів,
,
,
складається із 0, 1 і Х.
Алгоритм розв'язування пар:
1.Якщо при деякому r (1 r
R) значення r-розряду четвірки
,
,
,
, утворюють набір 0011, пара переходів вважається розв'язаною і переходить до наступної пари.
2.Якщо при деякому r (1 r
R) значення r-розряду четвірки
,
,
,
, утворює один з наборів
слід довизначити невизначені значення r-розряду четвірки так, щоб його значення утворили набір 0011. Перехід до наступної пари.
3.Якщо при деякому r (1 r
R)) значення r-розряду четвірки
,
,
,
, утворює набір 1100, пара вважається розв'язаною. Перехід до наступної пари.
4.Якщо при деякому r (1 r
R) значення r-розряду четвірки
,
,
,
утворює один з наборів

56
слід довизначити невизначені значення r-розряду четвірки так, щоб його значення утворили набір 1100. Перехід до наступної пари.
В результаті розв'язування пар переходів довжина коду виявляється не мінімальною, тому при введенні нового розряду можуть бути розв'язані пари, які були розв'язані раніше. Отже алгоритм протигоночного кодування передбачає мінімізацію довжини одержуваних кодів станів. Суть полягає в наступному: виключається 1 з розрядів кодів, в результаті чого деякі пари можуть виявитися зв'язаними. Застосовують алгоритм розв'язування. Виключають ще 1 розряд. Знову застосовують алгоритм розв'язування. І так до тих пір поки довжина коду не перестане зменшуватися. Якщо в результаті роботи алгоритму деякі значення розрядів буду невизначені, то їх визначають довільно.
7.2.3.Приклад протигоночного кодування
1.Розв'язання пар переходів
Розглянемо алгоритм протигоночного кодування на прикладі автомата, функція переходів якого задана таблицею (Табл. 7.1).
Таблиця. 7.1
Пари переходів, які відбуваються під дією сигналів z1, z2, z3 утворюють масиви М1, М2, М3.
М1 = ((а1, а2), (а2, а2), (а3, а4), (а4, а4), (а5, а6), (а6, а6)). М2 = ((а1, а1), (а2, а3), (а3, а3), (а4, а1), (а5, а3)).
М3 = ((а2, а5), (а3, а7), (а5, а5), (а7, а7)).
Починаємо розв'язувати пари з М1. Перехід (а1, а2) з (а2, а2) розв'язувати не треба, тому що стани а2 і а2 співпадають. Пару переходів (а1, а2) і (а3, а4) будемо розв'язувати введенням змінної 1, як в (Табл. 7.2).
Таблиця. 7.2

57
Пара (а1, а2) і (а4, а4) виявляються розв'язаними, так як цій парі відповідає четвірка 0011. Пара (а1, а2) і (а5, а6) утворюють четвірку 00ХХ, яку розв'язуємо до 0011 по 2 пункту алгоритму - отримуємо таблицю 7.3.
Таблиця. 7.3
Тепер розв'язаними виявляються пари (а1, а2) і (а6, а6), (а2, а2) і (а3, а4), (а2, а2) і (а4, а4), (а2, а2) і (а5, а6 ), (а2, а2) і (а6, а6). Звернемося до пари (а3, а4) (а5, а6) - ця пара має четвірку 1111. Пара не розв'язана. Введемо додаткову змінну 2 - отримуємо таблицю 7.4.
Таблиця. 7.4
Решта переходів в масиві М1 виявляються розв'язаними. Аналогічно для М2 і М3 отримаємо таблиці 7.5 та 7.6. Таблиця. 7.5 Таблиця. 7.6

58
2. Мінімізація кодів станів
У таблиці 7.6 виключаємо перший стовпчик і отримуємо таблицю 7.7. Таблица. 7.7
Починаємо повторно процес розв'язування. Виявляється, що по 2 не розв'язана пара (а1, а2) (а5, а6). Додаємо ще одну змінну
5. (Табл. 7.8).
Таблица. 7.8
Всі інші пари по 2 є розв'язаними. Далі виключаємо
2. (Табл. 7.9). Таблиця. 7.9