- •1 Цифрові автомати
- •Основні поняття теорії автоматів
- •Етапи синтезу цифрових автоматів
- •2. Розробка арифметико-логічного пристрою, що виконує оперції додавання та віднімання в додатковому двійковому коді
- •2.2 Розробка алгоритму пристрою
- •2.3 Побудова абстрактного автомата Мілі (граф, таблиця переходів- виходів)
- •2.4 Побудова функціональної схеми
- •3 Проектування комбінаційних схем
- •3.2 Етапи синтезу лічильників
Етапи синтезу цифрових автоматів
Вихідними даними для початку роботи служить абстрактний автомат ЦА з пам'яттю. Канонічний метод можна умовно розділити на наступні етапи:
1) кодування
2) вибір елементів пам'яті автомата;
3) вибір структурно-повної системи елементів;
4) побудова рівнянь булевих функцій виходів і збудження ЦА;
5) побудова функціональної схеми ЦА.
При переході на структурний рівень представлення кожна буква хi вхідного алфавіту X автомата, представляється як двійковий набір (вектор), число компонентів якого дорівнює числу фізично реалізованих елементарних вхідних каналів структурного автомата, тобто кожна буква хi X кодується двійковим вектором. Процес заміни букв алфавіту X, В, Z, абстрактного автомата двійковими векторами називається кодуванням і може бути описаний таблицями кодування.
При канонічному методі структурного синтезу автоматів як елементи пам'яті використовуються елементарні автомати Мура з двома станами, що володіють повною системою переходів і виходів. Повнота системи переходів-виходів для будь-якої пари станів ЦА існує вхідний сигнал, що призводить до переходу ЦА з одного стану в інший. Повнота системи виходів - різним станам автомата відповідають різні вихідні сигнали; зазвичай нульовому стану "0" елементарного автомата відповідає нульовий вихідний сигнал "0", а одиничному стану - одиничний вихідний сигнал "1".
Число елементів пам'яті структурного автомата дорівнює числу компонент вектора його станів. Як елементи пам'яті структурного автомата зазвичай використовуються D -, Т -, RS - і JK - тригери.
Кодування і вибір системи елементів однозначно визначають комбінаційну частину автомата. Спочатку будується таблиця істинності функцій збудження елементів пам'яті автомата (таблиці функцій збудження). По таблицях записуються рівняння функцій збудження в СДНФ, які можуть бути мінімізовані. Здобуття канонічних рівнянь булевих функцій виходів структурного автомата може бути зроблене по структурній таблиці виходів автомата, яка є таблицею істинності булевих функцій виходів автомата.
На підставі отриманих виразів для булевих функцій збуджень елементів пам'яті автомата і булевих функцій виходів автомата будуються КС функцій збудження і КС формування вихідних сигналів. Елементи пам'яті підключаються до побудованих КС
1.7 Виконання операцій додавання та віднімання у додатковому коді
Операція віднімання приводиться до операції додавання шляхом перетворення чисел в зворотний або додатковий код. Нехай числа A => O і В => О, тоді операція алгебраїчного складання виконується: А+В=А+В; A-B=A+(-B); -A+B=(-A)+B; -A-B=(-A)+(-B). Дужки в представлених виразах вказують на заміну операції віднімання операцією складання із зворотним або додатковим кодом відповідного числа. Додавання двійкових чисел здійснюється послідовно, поразрядно. При виконанні складання цифр необхідно дотримуватися таких правил .
1 . Доданки повинні мати однакове число розрядів. Для вирівнювання розрядної сітки доданків можна дописувати незначущі нулі зліва до цілої частини числа і незначущі нулі праворуч до дробової частини числа.
2 . Знакові розряди чисел беруть участь у додаванні так само, як і значущі .
3 . Необхідні перетворення кодів виробляються зі зміною знаків чисел. Приписані незначущі нулі змінюють своє значення при перетвореннях за загальним правилом .
4 . При утворенні одиниці переносу зі старшого знакового розряду , у разі використання ОК , ця одиниця складається з молодшим числовим розрядом . При використанні ДК одиниця переносу втрачається. Знак результату формується автоматично , результат представляється в тому коді , в якому представлені вихідні доданки .
Заміна операції віднімання операцією складання заснована на застосуванні деяких допоміжних позитивних чисел, однозначно пов'язаних з вихідними негативними числами, у зв'язку з чим ці допоміжні числа можна вважати вихідними, але деяким чином закодованими. Допоміжні числа можуть бути знайдені, якщо знаковому розряду приписати вагу - р n +1 Величина числа А буде визначатися в цьому випадку наступним чином:
(1.1)
Рисунок 1.3 – Геометрична інтерпретація додаткового коду правильного дробу
за умови, що азн приймає значення 0 для додатних чисел і 1 для негативних.
Якщо
азн
= 0, то є безліч позитивних чисел і нуль.
Якщо ж азн
= 1, то всі числа негативні й їх абсолютна
величина є
,
тобто вона є доповненням кількісного
еквівалента, що задається основними
розрядами числа а
п,
..., a
k
до величини
.
З цієї причини такий код називають
додатковим. При цьому найбільша абсолютна
величина числа А
є
,
що відповідає випадку а
п
= ... = A
k
= 0.
З вищевикладеного випливає, що з урахуванням знаків функція кодування правильних дробів в додатковому коді записується таким чином:
При цьому завжди має місце
(1.2)
Діапазон зміни машинних зображень двійкових чисел для форми подання з комою, фіксованою перед старшим розрядом, становить
(1.3)
Функція кодування цілих k-розрядних чисел в додатковому коді запишеться таким чином:
Тоді діапазон зміни машинних зображень двійкових чисел для форми подання з комою, фіксованою після молодшого розряду, становить
(1.4)
А співвідношення (1.2) прийме вигляд
(1.5)
де k - кількість числових розрядів.
Геометрична інтерпретація додаткового коду правильного дробу при р = 2 представлена на рис.1.3.
Як видно з рис. 1.3 із зростанням абсолютної величини додатковий код позитивного числа зростає, а негативного - убуває.
З огляду на те, що область чисел і область зображень рівні по довжині модуля р = 2, між числами і їх зображеннями має місце однозначна відповідність. При цьому область позитивних чисел збігається з областю зображень. Тому зображення позитивних двійкових дробів не відрізняються від їх звичайного двійкового запису, а для зображення правильного негативного дробу до неї треба додати модуль 2, по якому порівнюється число з його зображенням, тобто отримати доповнення до двох.
Приклади. Записати числа А = 0,101101 і В = 0,011010 в додатковому двійковому коді.
У разі негативних дробів немає необхідності підсумовувати А з основою системи числення, так як між негативними цифрами основних розрядів прямого коду аi і цифрами додаткового коду аi, є прості співвідношення. Прирівняємо абсолютні величини однакових чисел, представлених прямим і додатковим кодами. Тоді
(1.6)
Представимо у вигляді
(1.7)
Підставляючи (1.6) в (1.7), отримаємо
Прирівнюємо коефіцієнти при однакових степенях pt, маємо
(1.8)
Звідси випливає, що перетворення цифр прямого коду в додатковий може бути вироблено як порозрядна операція шляхом отримання в кожному розряді доповнення до р - 1 і додавання до перетвореного числа одиниці молодшого розряду. Зокрема, для отримання додаткового коду негативного двійкового дробу необхідно в її знаковому розряді записати 1, всі цифри вихідного числа замінити на інверсні (1 на 0 і 0 на 1) і додати одиницю молодшого розряду до перетвореного числа або, що те ж саме, молодшу одиницю і всі нулі праворуч від неї залишити без зміни, а розряди ліворуч від цієї одиниці замінити на інверсні.
