Розробити обчислювальний пристрій, що виконує наступні операції: зміна знака числа розподіл чисел Числа представлені в форматі з плаваючою точкою з розрядністю 18 +6. Опис структурної схеми пристрою з її обгрунтуванням Структурна схема пристрою представлена на малюнку 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. На початку роботи гаситься вихідна готовність (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 ПЗУ А | Адреси пам'яті | Умови переходів | Код ПФ | Адреси переходів | 0 | 0 | 0 | 1 | 1 | 0 | P1 | 1 | 1 | P1 | 2 | 2 | 0 | P2 | 4 | 1 | P2 | 3 | 3 | 0 | 0 | 10 | 4 | 0 | P3 | 8 | 1 | P3 | 12 | 5 | 0 | P4 | 6 | 1 | P4 | 10 | 6 | 0 | P5 | 7 | 1 | P5 | 8 | 7 | 0 | 0 | 9 | 8 | 0 | 0 | 9 | 9 | 0 | 0 | 5 | 10 | 0 | P6 | 11 | 1 | P6 | 12 | 11 | 0 | 0 | 10 | 12 | 0 | 0 | * |
Таблиця 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 Числові тестові приклади виконання операцій з поясненнями Нехай X = 11010111 * 23, Y = тисяча сто одна * 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 Опис функціональної схеми пристрою. Функціональна схема пристрою представлена на рисунку 5. Функціональна схема реалізує схему роботи з мантиса. Використовуваний мультиплексор 2-1 на вхід якого подається число в прямому і додатковому коді і в залежності від ситуації вибирається одне з двох чисел. У процесі роботи здійснюється контроль дільника на рівність нулю, тому використовується мультиплексор повинен мати стробований вхід. Суматор складає числа, які прийшли з виходу мультиплексора і регістру Am, результат переписується в регістр Am, який запам'ятовує це число, зрушує його вліво у бік старших розрядів і знову передає його на суматор. Так само старший розряд регістра подається на результуючий послідовно паралельний регістр Z, в якому відбувається накопичення результату. Після визначення результату, отримане число треба нормалізувати і тому результуючий регістр крім послідовного входу і паралельного виведення повинен здійснювати зрушення числа вліво у бік старших розрядів. Малюнок 5 Короткий опис принципової схеми Принципова схема пристрою представлена на рисунку 6. Два числа надходять на суматор, який їх підсумовує і передає результат на регістр. Як суматора використовується мікросхема К555ІМ6, а як регістр К155ІР13 і К555ІР11 які відрізняються тільки розрядністю. Старший розряд регістра надходить на вхід результуючого послідовно - паралельного регістра, в якому накопичується результат. У даній схемі в якості результуючого регістра використовується мікросхема К531ІР24. Малюнок 6 Висновок У цій роботі було розроблено обчислювальний пристрій, що виконує наступні операції: Знаходження абсолютного значення числа. Розподіл чисел у форматі з плаваючою комою. Побудований алгоритм обробки чисел. Розписані керуючі сигнали і префіксний функції. За наявному даними побудована функціональна схема пристрою. Також була побудована принципова схема зазначеній частині пристрою, в якій були використані конкретні мікросхеми. Наведено тестовий приклад виконання операцій.
|