- •Прикладна теорія цифрових автоматів
- •Загальні методичні вказівки
- •Тема: Проектування спеціалізованих арифметико-логічних пристроїв
- •Методичні вказівки до виконання курсової роботи
- •Загальні відомості
- •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)
Проектування спеціалізованих арифметико-логічних пристроїв
1. Реалізація операції додавання і віднімання
1.1. Алгоритм додавання і віднімання двійкових чисел
Алгоритм додавання та віднімання двійкових чисел можна виконувати в обернених або доповняльних кодах. У сучасних комп'ютерах часто операнди зберігаються у пам'яті і оброблюються в доповняльних кодах, перевагу яких описано в розділі 1.
Алгоритм додавання (код команди К[Ц] або віднімання (код команди К[2] виконується у такій послідовності:
у регістри RGA 1 RGB із вхідної шини один за одним паралельним кодом записуються відповідні їм операнди А і В;
під час операції віднімання (код команди К[2] = 1) операнд В безумовно інвертується;
мікрооперації додавання або віднімання виконуються в доповняльних кодах протягом одного машинного такту;
аналізується результат операції. За відсутності переповнення розрядної сітки (знаки операндів А і В та результату збігаються) результат записується у регістр RGD і потім пересилається в оперативну пам'ять, за наявності переповнення (знаки операндів А і В та результату на виході суматора не збігаються) результат не фіксується і в ЦПК подається сигнал переповнення ІШ.
1.2. Функціональна схема алп для виконання операцій додавання і віднімання
Функціональну схему восьмирозрядного АЛП для виконання мікропрограми додавання та віднімання подано композицією модуля операційного блока МОБ і моду-щ керуючого блока МКБ (рис. 3).
Схема містить:
регістри RGA і RGB для приймання із вхідної шини ІШ операндів А і В та їх зберігання протягом часу виконання мікропрограми;
схему інвертування BIN змісту регістра RGB;
схему XOR для порозрядного логічного "виключне АБО" кодів операндів А і В;
схеми електронних ключів SWI і SW2 для комутації операндів;
комбінаційний суматор SM. На вхід перенесення суматора подається лог. 1 при операції віднімання;
регістр результату RGD;
схему ознаки переповнення ОР;
модуль керуючого блока МКБ на основі автомата Mini з пам'яттю на D-тригерах.
Продовження додатку
Рис.1. Функціональна схема АЛП для додавання і віднімання чисел
1.3. Мікропрограма додавання та віднімання двійкових чисел
Суміщена мікропрограма додавання та віднімання двійкових чисел має вигляд:
Початок. Якщо К[1] або К[2], то М1, інакше - чекати
М1 <приймання першого операнда>
<приймання другого операнда>
Якщо К[1], то
, інакше
<пересилання з інвертуванням другого операнда>
Якщо К[1], то
, інакше
Якщо то перейти до М2, інакше
<присвоєння результату>
<пересилання результату в оперативну пам’ять>
Перейти до М3
М2 <фіксація переповнення>
М3 Кінець.
Продовження додатку
2. Реалізація операції множення
2.1. Алгоритм множення двійкових чисел із зсувом суми часткових добутків вправо
Множення двійкових чисел А і В зводиться до обчислення добутку їх модулів та присвоєння йому знака. Добуток двох n-розрядних операндів містить 2n-1 цифрових розрядів і один знаковий. Якщо перемножуються цілі числа, кома розміщується після молодшого розряду, а якщо дроби — перед старшим розрядом.
1. Множене і множник у прямих кодах послідовно записуються відповідно в регістри А і В. Регістри С і D обнуляються, У лічильник СТ записується кількість циклів.
2. Для розрядів множника 1, 2, ..., n - виконуються такі дії:
якщо молодша цифра множника В[1]=1, то до суми часткових добутків додається модуль множеного, інакше — не додається;
далі для обох випадків зміст регістрів С і В зсувається вправо на один розряд, причому молодший розряд регістра С передається в старший розряд регістра В. Після кожного зсуву в молодший розряд регістра В поступає наступний розряд множеного, за яким визначається черговий частковий добуток (нуль або множене);
після n-1 циклів виконується додатковий зсув вправо для передачі в тригер Т знака множника і визначається знак добутку додаванням за модулем два знаків множеного і множника.\
3. Результат подається конкатенацією чисел С і В; при цьому в регістрі С розміщуються старші розряди добутку, а в регістрі В — молодші розряди.