Багаторозрядний суматор утворюється шляхом послідовного ввімкнення n суматорів, де n - кількість розрядів доданків (рис. 5.1, ж). Вихід старшого перенесення можна використати як старший розряд зчитуваної суми, для індикації переповнення розрядної сітки, а також для каскадування багаторозрядних суматорів з метою збільшення розрядності доданків (рис. 5.1, и). З метою підвищення швидкодії групи розрядів можна з’єднувати за допомогою спеціальних схем пришвидшеного перенесення.
Суматори використовуються як для додавання, так і для віднімання, якщо двійкові числа (операнди) зображати в оберненому або доповняльному коді. Серед стандартних ІС суматорів найпоширенішими є однорозрядні повні суматори (по кілька в корпусі ІС) та дво- і чотирирозрядні (рис. 5.2, а), б), в). Бібліотека САПР містить також спеціальну макрофункцію восьмирозрядного суматора (рис. 5.2, г) і мегафункцію суматора-віднімача (рис. 5.2, д), яку легко настроїти на додавання або віднімання, а також на репрезентацію даних зі знаком або без знаку. Вхідний і вихідний переноси можуть позначатися на символах або з номером розряду, або зручніше назвою відповідно cin (carry input) та cout (carry output).
Таблиця 5.1 |
||
i |
a1a0b1b0 |
y3y2y1y0 |
0 |
0 0 0 0 |
0 0 0 0 |
1 |
0 0 0 1 |
0 0 0 0 |
2 |
0 0 1 0 |
0 0 0 0 |
3 |
0 0 1 1 |
0 0 0 0 |
4 |
0 1 0 0 |
0 0 0 0 |
5 |
0 1 0 1 |
0 0 0 1 |
6 |
0 1 1 0 |
0 0 1 0 |
7 |
0 1 1 1 |
0 0 1 1 |
8 |
1 0 0 0 |
0 0 0 0 |
9 |
1 0 0 1 |
0 0 1 0 |
10 |
1 0 1 0 |
0 1 0 0 |
11 |
1 0 1 1 |
0 1 1 0 |
12 |
1 1 0 0 |
0 0 0 0 |
13 |
1 1 0 1 |
0 0 1 1 |
14 |
1 1 1 0 |
0 1 1 0 |
15 |
1 1 1 1 |
1 0 0 1 |
Каскадування суматорів із застосування схем пришвидшеного перенесення тут не розглядається, бо за наявності сучасних програмованих ІС це питання практично втрачає сенс.
5.1.2 Комбінаційні помножувачі
Програмно в мікропроцесорах та мікроЕОМ множення двійкових чисел здійснюють шляхом зсуву за допомогою ЦПП та додавання часткових добутків у суматорах згідно з відомими алгоритмами. Процедура множення виконується протягом багатьох тактів, що може спричинити зниження швидкодії в неприйнятних межах, зокрема, радіотехнічних пристроїв та систем з обробкою інформації в реальному масштабі часу.
а) б) |
Рисунок 5.3 |
Підвищення швидкодії було досягнуто апаратно в ІС матрицевих помножувачів з ланцюжком суматорів часткових добутків. При цьому усталення всього добутку розтягується в часі перемиканням кількості суматорів у найдовшій діагоналі матриці суматорів.
Найвища швидкодія досягається в комбінаційних помножувачах з безпосереднім формуванням розрядів остаточного добутку. Розглянемо для прикладу множення дворозрядних чисел A=a1a0 та B=b1b0 (табл. 5.1). Розрядність добутку Y= y3y2y1y0 вибирається як сума розрядів співмножників. Функцію для старшого розряду записуємо безпосередньо з таблиці, а інших розрядів мінімізуємо за допомогою діаграм термів (рис. 5.3, а) із застосуванням редукції:
Мінімізована схема (рис. 5.3, б) практично не поступається за швидкодією реалізованій за первісними термами.
а) |
б) |
в) |
г) |
||
Рисунок 5.4 |
Для чисел зі старшим знаковим розрядом A=aza1a0, B=bzb1b0 знак добутку Y=yzy3y2y1y0 формується окремо, за допомогою елемента Виключне АБО:
Серед стандартних ІС комбінаційних помножувачів (макрофункцій) поширеними є з розрядністю співмножників 2×2, 2×4 та 4×4 (рис. 5.4, а), б), в). Старші розряди співмножників a[], b[] та добутку у[] репрезентують знак числа, а вхід G є стробовим. Бібліотека САПР містить також мегафункцію помножувача lpm_mult (рис. 5.4, г), основними параметрами якої є LPM_WIDTHA, LPM_WIDTHB, LPM_WIDTHP – розрядність відповідно співмножників a[], b[] та добутку у[].
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.