- •Прикладна теорія цифрових автоматів
- •Загальні методичні вказівки
- •Тема: Проектування спеціалізованих арифметико-логічних пристроїв
- •Методичні вказівки до виконання курсової роботи
- •Загальні відомості
- •1. Вибір схеми операційного автомату та опис його роботи.
- •2. Принципіальна схема модуля операційного блока (моб).
- •3. Приведення змістовного алгоритму виконання операції.
- •Граф-схеми мікропрограми ка.
- •5. Проектування модуля ка.
- •Структурний синтез автомата Мілі
- •Побудова схеми керуючого автомата
- •Структурний синтез автомата Мура
- •Зауваження
- •Література
- •Проектування спеціалізованих арифметико-логічних пристроїв
- •1. Реалізація операції додавання і віднімання
- •1.1. Алгоритм додавання і віднімання двійкових чисел
- •1.2. Функціональна схема алп для виконання операцій додавання і віднімання
- •1.3. Мікропрограма додавання та віднімання двійкових чисел
- •2. Реалізація операції множення
- •2.1. Алгоритм множення двійкових чисел із зсувом суми часткових добутків вправо
- •2.2. Функціональна схема алп для операції множення
- •2.3. Мікропрограма множення цілих чисел
- •2.4. Перший алгоритм множення у прямому коді.
- •2.5. Другий алгоритм множення у прямому коді.
- •2.6. Третій алгоритм множення у прямому коді.
- •2.7. Четвертий алгоритм множення у прямому коді.
- •2.8. Множення чисел в додатковому коді
- •3. Реалізація операції ділення
- •3.1. Алгоритм ділення цілих чисел(1)
- •3.2. Функціональна схема алп для мікропрограми ділення
- •3.3. Мікропрограма ділення цілих чисел без відновлення залишку
- •3.4. Алгоритм ділення у додатковому коді(11)
- •3.5. Алгоритми прискореного ділення (111)
2.5. Другий алгоритм множення у прямому коді.
Операція множення по другому алгоритму зводиться до обчислювання за рекурентною формулою
де
Регістр множника повинен мати довжину в n розрядів, регістри множеного та суми часткових добутків – по 2n розрядів.
Перед початком множення множене повинно бути записано в відповідний регістр зі зсувом вправо на n розрядів для того, щоб було сформовано значення Yn. ГСА такого множення показана на рис.4.
Початкове встановлення лічильника в одиницю зумовлене тим, що значення Yn вже сформовано при запису його в регистр множеного.
Приведемо приклад цифрової діаграми, табл.2., множення чисел Х = 13/16 та Y = 12/16, n = 4.
Продовження додатку
Рис.4. Другий алгоритм множення у прямому коді
Таблиця 2. Цифрова діаграма при множенні за ІІ алгоритмом множення у ПК
PX xn* |
PY |
|
PZ |
СТК |
Пояснення |
1101
0110 0011
0001 |
00001100
00011000 00110000
01100000 |
+ |
00000000 00001100 |
001
010 011
100
END |
Початковий стан +Y Результат сумування Зсув Зсув +Y Результат сумування Зсув +Y Результат сумування |
|
00001100 00001100 00001100 00110000 |
||||
+ |
|||||
|
00111100 00111100 01100000 |
||||
+ |
|||||
|
10011100
|
Час множення по даному алгоритму визначається за формулою
Т=(n-1)(tз+ t+)+ t+ |
tз – t зсуву t+ - t сумування |
Побудова функціональної схеми та мікропрограма розробляються аналогічно до Додатку пункти 2.2. та 2.3..
Продовження додатку
2.6. Третій алгоритм множення у прямому коді.
Третій основний алгоритм множення Z= X*Y можна отримати за рекурентною формулою добутку Zi = Zi-1 2 + xi 2 – n Y, i = де Z0 = 0, Zn = Z.
В відповідності з цією формулою множення починається зі старших розрядів множника, сума часткових добутків зсувається вліво, число кроків множення дорівнює n, закінчується виконання алгоритму додаванням. Довжину в 2n розрядів повинен мати тільки регістр PZ. ГСА алгоритму має вигляд, рис.5.:
Рис.5. Третій алгоритм множення у прямому коді.
Проте оскільки зсуви в РХ та PZ виконуються в одну й ту ж сторону, то в варіантах цього алгоритму старші розряди добутку можна заносити в регістр РХ.
Приклад цифрової діаграми, табл.3., множення чисел Х=11/16 та Y=10/16, n=4.
Таблиця 3. Цифрова діаграма при множенні за ІІІ алгоритмом множення у ПК
x1*PX |
PY |
PZ |
СТК |
Пояснення |
1011
0110 1100
1000 |
1010
1010 1010
1010 |
00000000 1010 |
001
010 011
100
END |
Початковий стан +Y Результат сумування Зсув Зсув +Y Результат сумування Зсув +Y Результат сумування |
00001010 00010100 00101000 1010 |
||||
00110010 01100100 1010 |
||||
01101110 |
Побудова функціональної схеми та мікропрограма розробляються аналогічно до Додатку пункти 2.2. та 2.3.
Продовження додатку