Багаторозрядний суматор утворюється шляхом послідовного ввімкнення 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).
Ссылка на скачивание - внизу страницы.