Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Организация на компютрите |
![]() |
![]() |
![]() |
Задание: Да се проектира схемен множител по метода на Бут на два разряда едновременно за числа с фиксирана запетая в допълнителен код. За по-голямо бързодействие да се проектира като дърво на Уолес. Различните операции имат различна продължителност. Продължителността на операцията “умножение” е значително по-голяма от операцията “събиране”, което поражда необходимостта от създаването на метод на умножение с по-голямо бързодействие. Тези методи се основават на създаването на конкретни връзки. Важно е да се отбележи, че те не гарантират определен коефициент на ускорение! Метода на Бут представлява ускорен метод за умножение на две числа и се основава на възможността в множителя да се срещнат компактни групи от еднакви цифри. Извършва се наблюдение на комбинациите от цифри. За метода с умножение с изместване на два разряда едновременно се използва следната таблица за извършване на съответните операции
Трябва да се отбележи, че метода на Бут не винаги се оказва ефикасен и по бърз. При определени комбинации от цифри като например последователното редуване на “0” и “1” забавят значително извършването на умножението спрямо процеса на умножение на същите числа, но по друг метод. В блоксхемата съм използвал суматор, който е предназначен да събира и изважда. Изваждането е реализирано чрез инвертиране на рег.Z от допулнителен в прав код като инвертираната стойност се събира с “1”. В практическата схема съм реализирал този суматор с два допълнителни мултиплексора – единия е разширения MUX от блоксхемата, който е превърнат в тривходов като на единия вход се подава “1”, която използвам за преобразуването на числото от рег. Z от допълнителен в прав код за да извърша изваждането. Другия подава правата или инвертираната стойност на рег. Z УС0 – Рег. (Z)(X)(Y) : = 0 УС1 – Бр : = 0 УС2 – Рег. X[5,1] : = X[4,0] ; Рег. X[6] : = X[5]; Рег. X[0] : = 0 УС3 – Рег. Y[4,0] : = Y[4,0] ; Рег. Y[9] : = Y[5]; Рег. Y[8,5] : = 0 УС4 – Рег. X[2,0] = [001; 010; 101; 110] => MUX : = Рег. X УС5 – Рег. X[2,0] = [011; 100] => MUX[0] : = 0; MUX[11,1] : = Рег.Y[10,0]; MUX[12] : = Рег.Y[12] УС6 – Рег. X[2,0] = [001; 010; 011] => СМ : = Рег.Z + MUX УС7 – Рег.Z : = СМ УС8 – Рег. X[2,0] = [100; 101; 110] => СМ : = Рег.Z – MUX УС9 – Рег. X[9,0] : = Рег. X[11,2]
УС10 – Рег. Y[11,2] : = Рег. Y[9,0]УС11 – Бр. : = Бр + 1 УС 12 – MUX(X) : = РегZ УС 13 – MUX(X) : = РегZ УС 14 – MUX(Y) : = 1
|