Обчислювальний пристрій, що виконує операції зміни знаку числа і поділ
чисел.
Числа представлені у форматі з плаваючою точкою з розрядністю 18 +6.
1. Опис структурної схеми пристрою з її обгрунтуванням
Структурна схема пристрою представлена на малюнку 1. Вона складається з двох
частин. Перша частина схеми, до складу якої входять регістри Ao і Bo і суматор,
призначена для роботи з порядками чисел. Друга частина схеми, що складається з
регістрів Am, Bm і Z, мультиплексора, суматора і компаратора призначена для
роботи з мантиси чисел.
При виконанні операції ділення використовується два числа - A (ділене) і B
(дільник). Число A зберігається в регістрах Ao і Am відповідно порядок і
мантиса. Число B зберігається в регістрах Bo і Bm відповідно порядок і
мантиса.
На початку роботи ділене A заноситься в регістри: мантиса в регістр Am за допомогою
сигналу Y3, порядок в регістр Ao - Y4, а дільник B: мантиса в регістр Bm (Y5),
порядок в регістр Bo (Y6). Мантиса ділене A зсувається вліво шляхом косою
передачі з регістра Am в суматор. Дільник B надходить у суматор SM з
регістра Bm в прямому або зворотному коди (Y9). Додатковий код ділене
утворюється в SM за рахунок подсуммірованія зворотного коду ділене B сигналом
"1 SM" (Y10).
Цифри приватного Zi, що визначаються по знаку часткових залишків у регістрі Am,
фіксуються в реєстрі Z шляхом послідовного занесення їх в молодший розряд
регістра Z (Y7) і зсуву вмісту регістра Z (Y8).
Порядок приватного визначається вирахуванням порядків на SM шляхом подачі зворотного
значення близько дільника з регістра Bo і фіксації результату в регістрі Bo.
При виконанні операції зміни знаку використовується одне число. Число
записується в регістр Bm (Y5) і подається на суматор SM в зворотному коді (Y9) і
записується в регістр Am (Y3) з попереднім подсумірованіем одиниці в
суматорі (Y10).
Малюнок 1
2.Опісаніе блок-схеми алгоритму виконання операцій і її мікропрограмного
реалізації.
Блок-схема виконання операцій представлена на малюнку 2.
На початку роботи гаситься вихідна готовність (Y14) і перевіряється вхідна
готовність (P1). Після отримання сигналу вхідний готовності обнуляються регістри
A o і Am (Y0), Bo і Bm (Y1) і Z (Y2). Далі перевіряється код операції (P2) для
визначення подальших дій.
Операція зміни знаку числа - одна гілка.
Записуємо вихідне число в регістр Bm (Y5). Передаємо на SM його зворотний код з
подсуммірованіем одиниці молодшого розряду (Y10). Дані з SM записуємо в
регістр Am (Y3). Після цього встановлюємо вихідну готовність (Y13) і
закінчуємо роботу.
Операція поділу чисел - гілка два.
Проводимо запис: мантиси ділемо в регістр Am (Y3), порядку ділемо в
регістр Ao (Y4) і мантиси і порядку дільника в регістр Bm (Y5) і Bo (Y6)
відповідно. Обчислюємо різниця порядків чисел шляхом складання першого порядку
з зворотнім кодом друга (Y11) і зберігаємо результат в регістрі Bo (Y6).
Перевіряємо рівність дільника нулю (P3). Якщо дільник дорівнює нулю, то
сигналізуючи про помилку аргументів і встановлюємо вихідну готовність (Y13).
Якщо дільник не дорівнює нулю, тоді поділ можливо і починається цикл
порозрядного отримання мантиси приватного. На SM передається зрушені косою
передачею у бік старших розрядів ділене і зворотній код дільника (Y9) з
подсуммірованіем одиниці молодшого розряду (Y10). З виходу SM частковий залишок
заноситься в регістр Am (Y3). Цифра модуля приватного обчислюється як сума за
модулі два знакових розрядів часткового залишку і дільника і заноситься в
попередньо зсунуті на один розряд вліво (Y8) регістр Z (Y7). Перевіряємо
лічильник чисел (P4). Якщо він не дорівнює нулю, продовжуємо цикл за визначенням
розрядів приватного. Якщо лічильник дорівнює нулю, то ми визначили всі розряди
приватного, і переходимо до нормалізації результату. Якщо число не нормалізовано
(P6), то робимо зрушення Z в сторону старших розрядів (Y8) і зменшення порядку
(Y12). Після нормалізації числа встановлюємо вихідну готовність і закінчуємо
роботу.
Для реалізації пристрою використовується керуючий автомат з виділеною адресної
пам'яттю, його схема зображена на малюнку 3, у таблиці 1 представлені стану
його переходів, у таблиці 2 керуючі сигнали і в таблиці 4 описані префіксние
функції.
Малюнок 2
ПЗУ А
Адреса памятіУсловія переходовКод ПФАдреса переходів
0001
10P11
1P12
20P24
1P23
30010
40P38
1P312
50P46
1P410
60P57
1P58
7009
8009
9005
100P611
1P612
110010
1200 *
Таблиця 1
Y0Обнуленіе регістрів Ao і Am
Y1Обнуленіе регістрів Bo і Bm
Y2Обнуленіе регістра Z
Y3Запісь в регістр Am
Y4Запісь в регістр Ao
Y5Запісь в регістр Bm
Y6Запісь в регістр Ao
Y7Запісь розряду приватного в регістр Z
Y8Сдвіг регістра Z в сторону старших розрядів
Y9Вибор операції в суматорі
Y10Подсуммірованіе 1 в суматорі
Y11Разность порядків
Y12Уменьшеніе порядку приватного в регістрі Bo
Y13Установка вихідний готовності
Y14Гашеніе вихідний готовності
Таблиця 2
Малюнок 3
ФункціяЗначеніе
P1Входная готовність
P2Код операції
P3Прізнак рівності 0 дільника
P4Конец поділу
P5Знак числа у регістрі Am
P6Прізнак нормалізації
P7Знак числа у регістрі Bm
Таблиця 3
На малюнку 4 представлена зв'язок керуючого автомата з операційним автоматом.
Малюнок 4
3. Числові тестові приклади виконання операцій з поясненнями
Нехай X = 11010111 * 23, Y = 1101 * 22. Знайти частка від ділення X/Y.
Всі дії виконуються у влаштуванні у наступній послідовності:
0.1101111Прямой код делімогоЧастное X/Y
+1.0011 Додатковий код дільника
0.0000Остаток положітельний1
0.0000Остаток зміщений ліворуч на один розряд
+1.0011 Додатковий код дільника
1.0011Остаток отріцательний10
0.0111Остаток зміщений ліворуч на один розряд
+0.1101 Прямий код дільника
1.0100Остаток отріцательний100
0.1001Остаток зміщений ліворуч на один розряд
+0.1101 Прямий код дільника
1.0110Остаток отріцательний1000
0.1101Остаток зміщений ліворуч на один розряд
+0.1101 Прямий код дільника
1.1010Остаток отріцательний10000
Одночасно обчислюється порядок приватного наступним чином:
pc = px - py = 0.011 - 0.010 = 0.001
4. Опис функціональної схеми пристрою.
Функціональна схема пристрою представлена на малюнку 5.
Функціональна схема реалізує схему роботи з мантиси.
Використовуваний мультиплексор 2ґ1 на вхід якого подається число в прямому і
додатковому коді і в залежності від ситуації вибирається одне з двох чисел. В
процесі роботи здійснюється контроль дільника на рівність нулю, тому
використовуваний мультиплексор повинен мати стробіруемий вхід.
Суматор складає числа, які прийшли з виходу мультиплексора і регістра Am,
результат переписується в регістр Am, який запам'ятовує це число, зрушує
його ліворуч в сторону старших розрядів і знову передає його на суматор.
Так само старший розряд регістра подається на результуючий послідовно
паралельний регістр Z, в якому відбувається накопичення результату. Після
визначення результату, отримане число треба нормалізувати і тому
результуючий регістр крім послідовного входу і паралельного виведення
повинен здійснювати зсув числа ліворуч в сторону старших розрядів.
Малюнок 5
5. Короткий опис принципової схеми
Принципова схема пристрою представлена на малюнку 6.
Два числа надходять на суматор, який їх підсумовує і передає результат на
регістр. Як суматора використовується мікросхема К555ІМ6, а в якості
регістра К155ІР13 і К555ІР11 які відрізняються тільки розрядністю. Старший
розряд регістра надходить на вхід результуючого послідовно -
паралельного регістра, в якому накопичується результат. У даній схемі в
як результуючого регістру використовується мікросхема К531ІР24.
Малюнок 6