- •Прикладна теорія цифрових автоматів
- •Загальні методичні вказівки
- •Тема: Проектування спеціалізованих арифметико-логічних пристроїв
- •Методичні вказівки до виконання курсової роботи
- •Загальні відомості
- •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.2. Функціональна схема алп для операції множення
Функціональна схема АЛП для множення цілих двійкових чисел із зсувом вправо часткових добутків містить (рис. 4):
регістри А і В для приймання з вхідної шини ШІ відповідно множеного та множника;
паралельний комбінаційний суматор SM;
регістр С для приймання часткової суми із SM при одиничному значенні синхросигналу;
регістр D для приймання і тимчасового зберігання часткової суми з регістра С при спаданні синхросигналу;
лічильник циклів СТ;
тригер Т1 для керування ключами SW1, SW2;
тригер Т2 для записування знака множника.
Продовження додатку
Рис. 2. Функціональна схема АЛП для множення
2.3. Мікропрограма множення цілих чисел
Початок. Якщо К[3], то М1, інакше – чекати
М1 <приймання множеного та обнулення тригерів Т1, Т2>
<приймання множника та дублювання його знака в тригері Т2>
<обнулення регістрів>
<запис кількості циклів>
М2 Якщо [1], то М3
<додавання>
<пересилання часткової суми>
М3 <однорозрядний зсув вправо>
<декремент лічильника>
Якщо , то М2, інакше
<однорозрядний зсув вліво>
<запис знака результату в регістр RGC>
Кінець.
2.4. Перший алгоритм множення у прямому коді.
Використовує добуток Z=X*Y у вигляді
Z=X*Y=хn∙2-n∙Y+ хn-1∙2-n∙Y+…+ х2∙2-n∙Y+ х1∙2-n∙Y=
((…((0+ хn∙Y)∙2-1+ хn-1∙Y)∙2-1+…+x2∙Y)∙2-1+x1∙Y)∙2-1
Звідси слід, що добуток Z за допомогою рекурентної формули можна записати
Продовження додатку
де Z0 = 0; Zn = Z, Zi – сума часткових добутків.
Множення тут починається з молодших розрядів множника, на кожному кроці множення сума часткових добутків зсувається вправо, кількість кроків множення дорівнює n, останній крок закінчується зсувом. ГСА такого множення має вигляд зображений на рис.3.
Рис.3. Перший алгоритм множення у прямому коді
xn* – цифра в молодшому розряді регістру множника РХ на даному кроці множення (“поточна” цифра множника)
СТК – лічильник числа кроків множення.
Довжина регістрів операндів складає n – розрядів, регістрів результату – 2n розрядів.
Приведемо цифрову діаграму станів регістрів,табл.1., при множенні чисел Х = 11/16 та Y = 9/16, n = 4 відповідно схемі алгоритму.
Продовження додатку
Таблиця 1. Цифрова діаграма при множенні за І алгоритмом множення у ПК
PX xn* |
PY |
|
PZ |
СТК |
Пояснення |
1011
0101
0010 0001
0000 |
1001 |
+ |
00000000 1001 |
000
001
010 011
100 END |
Початковий стан +Y Результат сумування Зсув +Y Результат сумування Зсув Зсув +Y Результат сумування Зсув |
|
10010000 01001000 1001 |
||||
+ |
|||||
|
11011000 01101100 00110110 1001 |
||||
+ |
|||||
+ |
11000110 01100011
|
Час множення по даному алгоритму визначається за формулою
Т=n(tз+ t+) |
tз – t зсуву t+ - t сумування |
Побудова функціональної схеми та мікропрограма розробляються аналогічно до Додатку пункти 2.2. та 2.3..