Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Алгоритм виконання операції множення чисел в прямому коді

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Розробка алгоритму множення чисел у прямому коді з молодших розрядів із пропусканням тактів сумування для двійкових чисел. Синтез операційного та керуючого автоматів з жорсткою логікою. Описання технології числового контролю операції додавання по модулю.
Краткое сожержание материала:

Размещено на

1

Размещено на

Міністерство освіти України

Вінницький державний технічний університет

Кафедра обчислювальної техніки

Курсова робота

з дисципліни

«Прикладна теорія цифрових автоматів»

м. Вінниця - 1998р.

Зміст

  • Технічне завдання
  • Вступ
  • 1. Розробка операційного автомату
    • 1.1 Методи виконання операції множення
    • 1.2 Методи прискорення операції множення
    • 1.3 Визначення знаку добутка
    • 1.4 Описання операційного автомату
    • 1.5 Алгоритм множення
    • 1.6 Приклад множення
    • 1.7 Синтез операційного автомату
  • 2. Синтез керуючого автомату
    • 2.1 Теоретичні відомості
    • 2.2 Керуючий автомат
  • 3. Організація контролю виконання операції додавання
  • Висновки
  • Література

Технічне завдання

1. Розробити алгоритм виконання операції множення чисел в прямому коді, починаючи з молодших розрядів із пропусканням тактів сумування.

а). Система числення - двійкова.

б). Форма представлення чисел - з фіксованою комою.

в). Розрядність операндів - 16 розрядів.

Розробити операційний автомат по отриманому алгоритму.

3. Розробити схему керуючого автомату Мілі на основі побудованого операційного автомату.

4. Описати технологію числового контролю операції додавання по модулю 9. Проілюструвати на числах 0,3437 та - 0,5431.

Вступ

Найважливішою функцією більшості обчислювальних приладів є виконання арифметичних операцій. В зв'язку з цим в ЕОМ виділяють спеціальний функціональний блок арифметичний пристрій (АП), призначений для виконання операцій над числовими кодами. Числа, які беруть участь в арифметичних операціях, що виконуються цифровим автоматом, називаються операндами. [1]

Основною операцією в ЕОМ є операція додавання по способу її виконання виділяють паралельні, послідовні та паралельно-послідовні АП. Для виконання операцій над числами використовують прямий, обернений та доповняльний коди.[2 - 3]

В данній курсовій роботі необхідно розробити алгоритм множення чисел у прямому коді, починаючи з молодших розрядів, пропускаючи такти додавання та побудувати відповідний цьому алгоритму операційний автомат.

Друге завдання цієї курсової роботи побудувати керуючий автомат з жорсткою логікою (автомат Мілі) та описати технологію числового контролю операції додавання по модулю 9.

Розділ 1. Розробка машинного алгоритму операції множення та операційного автомату

1.1 Методи виконання операції множення

Існує чотири основних методи виконання операції множення у двійковій системі числення:

Метод 1. Множник В = 0,в1в2...вn перетворюється по схемі Горнера:

Тоді

Тут множення починається з молодших розрядів та зсувається вправо сума часткових добутків.

Час множення: Тмн1 = n (tдод + tзс)

Метод 2. Множник записується таким чином:

В цьому випадку

що означає: множення починається з молодших розрядів і множене зсувається вліво на один розряд в кожному такті.Час множення: Тмн2 = n tдод

Метод 3. Якщо множник записати по схемі Горнера:

то

У цьому випадку множення починається зі старшого розряду і в кожному такті зсувається вліво сума часткових добутків.

Метод 4. Припустимо В - множене (В>0), А - множник (А>0), С - добуток. Тоді у випадку зображення чисел у формі з фіксованою комою, отримуємо:

А = 0,а1а2...аn;

В = 0,в1в2...вn =

Звідси:

Множник 2-n означає зсув на n розрядів вправо числа, яке заключене в дужки, тобто в даному випадку зсувається вправо множене і множення починається зі старших розрядів. [2]

1.2 Методи прискорення операції множення

Методи прискорення множення діляться на апаратні та логічні. Як ті, так і інші потребують додаткових витрат апаратури. При використанні апаратних методів додаткові витрати апаратури прямо пропорційні числу розрядів в операндах. [1]

До логічних методів прискорення множення відносяться: пропускання тактів сумування, комбінація групування розрядів множника з додатковими логічними елементами для зсуву кодів; розподілення множника на частини; множення з запам'ятовуванням перенесення та інші. [2]

У нашому випадку будемо використовувати перший способ множення.

1.3 Визначення знаку добутка

Оскільки операнди мають знакові розряди, то треба визначитись зі знаком добутка. Існують такі підходи:

При використанні прямих кодів знаковий розряд визначають за допомогою операції додавання за модулем 2.

У оберненому коді знак добутку визначається автоматично за рахунок внесення поправок у звичайний добуток операндів.

У доповняльному коді вносяться поправки у випадку від'ємного множника. [2]

В нашому випадку використаємо перший підхід, тому

1.4 Описання операційного автомату

Для реалізації множення чисел з фіксованою комою у прямому коді потрібні такі функціональні вузли: шина вхідних даних Швх, через яку в пристрій надходять множене та множник; шина вихідних даних Швих, через яку з пристрою видається добуток; регістри РгА і РгВ, які потрібні для зберігання операндів; нагромаджувальний суматор, який необхідно використовувати для накопичування часткових добутків і який складається з комбінаційного суматора та з регістру РгС. Оскільки ми маємо прямий код, то для формування знака результату необхідно мати суматор за модулем 2 m2 та трігер ТЗНС, де буде зберігатись знак добутку. Також нам необхідний лічильник ЛІЧ. Структурна схема операційного автомату, що реалізує операцію множення на рис.1. Алгоритм, який реалізує прискорене множення наведено на рис.2.

1.5 Алгоритм множення

Згідно всього вищесказаного можна скласти алгоритм для множення чисел з фіксованою комою в прямих кодах. Розглянемо алгоритм, накреслений в додатку.

Із вхідної шини в регістри РгА і РгВ поступають прямі коди відповідно множеного і множника. Накопичувальний суматор, в якому буде відбуватися операція додавання та зберігатися часткові добутки, а також регістр РгС, в якому будемо зберігати знак результату, обнуляються (тобто початкове значення регістра С відповідає додатньому результату).

Далі перевіряємо операнди на рівність нулю. Якщо множене (РгА) дорівнює нулю, то на шину вихода подаємо вміст накопичувального суматора та знак (вміст регістра С) тобто 0. Якщо РгА не дорівнює нулю, то перевіряємо на рівність нулю вміст РгВ і якщо він дорівнює нулю, то виконуємо ті ж дії, які були описані для випадку нульового значення РгА. Якщо РгВ не дорівнює нулю, то переходимо до пункту 3.

Аналізуємо молодший розряд множника. Якщо він дорівнює одиниці, то додаємо на суматорі вміст РгА і РгС, результат накопичується в цьому ж суматорі. Якщо молодший розряд множника дорівнює нулю, то переходимо до пункту 4.

Здвигаємо на один розряд вправо регістр РгВ та суматор.

Перевіряємо лічильник на рівність нулю. Якщо він не дорівнює нулю, то переходимо до пункту 3, а якщо дорівнює нулю, то переходимо до слідуючого пункту.

Аналізуємо знакові розряди множеного та множника. Результат вибирається згідно таблиці:

Таблиця 1. Таблиця істинності операції сума по модулю 2.

Рг А

Рг В

Результат

0

0

0

0

1

1

1

0

1

1

1

0

Тобто ця таблиця відповідає таблиці істинності операції “сума по модулю 2”. У разі неістинного значення (тобто різні знаки операндів) регістру С присвоюємо значення одиниці (від'ємний результат). У разі однакових знакових розрядів (результат додатній) переходимо до слідуючого пункту.

Вихідній шині присвоюємо значення регістру С (знак результату) та вміст накопичувального суматора (результат). [2]

1.6 Пр...

Другие файлы:

Виконання операції множення
Синтез цифрового автомата для виконання операції множення в оберненому коді двох двійкових чисел з фіксованою комою. Будування керуючого автомату з жо...

Алгоритм операції множення
Розробка машинного алгоритму операції множення в доповняльному коді з пропуском тактів додавання в двійковій системі числення з старших розрядів чисел...

Проектування процесора для виконання операції ділення у двійково-десятковому коді
Розробка машинного алгоритму та операційного автомату для виконання операції ділення в двійково-десятковій системі числення з відновленням остачі у об...

Виконання операцій множення і ділення у двійковій системі числення
Методам виконання множення, способам його прискорення і раціональній побудові пристроїв для множення завжди приділялася значна увага в розробках і в т...

Системне програмування та операційні системи
Метою курсової роботи є розробка системних програм мовою асемблера або мовою високого рівня з вставками мовою асемблера. Конкретне завдання визначаєть...