НОУ ІНТУІТ, Лекція, Комбінаційні мікросхеми

Мікросхеми суматорів (англійське Adder ), як випливає з їхньої назви, призначені для підсумовування двох вхідних двійкових кодів, тобто вихідний код дорівнюватиме арифметичній сумі двох вхідних кодів. Наприклад, якщо один вхідний код – 7 (0111), а другий – 5 (0101), то сумарний код на виході буде 12 (1100). Сума двох двійкових чисел із числом розрядів N може мати число розрядів (N + 1). Наприклад, при підсумовуванні чисел 13 (1101) та 6 (0110) виходить число 19 (10011). Тому кількість виходів суматора на одиницю більша за кількість розрядів вхідних кодів. Цей додатковий (старший) розряд називається виходом перенесення.

На схемах суматори позначаються літерами SM. У вітчизняних серіях код, що позначає мікросхему суматора - ІМ.

Суматори бувають однорозрядні (для підсумовування двох однорозрядних чисел), 2-х розрядні (підсумовують 2-х розрядні числа) та 4-х розрядні (підсумовують 4-х розрядні числа). Найчастіше застосовують саме 4-розрядні суматори. На рис. 6.1 показані для прикладу 2-розрядний та 4-розрядний суматори . Мікросхема ІМ6 відрізняється від ІМ3 тільки підвищеною швидкодією та номерами використовуваних висновків мікросхеми, функція ж виконується та сама.

інтуіт

Крім вихідних розрядів суми і виходу перенесення, суматори мають вхід розширення (інша назва - вхід перенесення) для об'єднання декількох суматорів з метою збільшення розрядності. Якщо цей вхід приходить одиниця , то вихідна сума збільшується на одиницю, якщо ж приходить нуль, то вихідна сума не збільшується. Якщо використовується одна мікросхема суматора, то на її вхід розширення необхідно подати нуль.

Наприклад у табл. 6.1 наведено повну таблицю істинності 2-розрядного суматора ІМ2. Яквидно з таблиці, вихідний 3-розрядний код (Р, S1, S0) дорівнює сумі вхідних 2-розрядних кодів (А1, А0) та (В1, В0), а також сигналу С. Нульові розряди – молодші, перші розряди – старші. Повна таблиця істинності 4-розрядного суматора буде надмірно великою, тому вона не наводиться. Але суть роботи залишається такою самою, як і у випадку 2-розрядного суматора.

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

Таблиця 6.1. Таблиця істинності мікросхеми 2-розрядного суматора ІМ2ВиходиC=0 C=1A1 A0 B1 B0 P S1 S0 P S1 S0
0000000001
0001001010
0010010011
0011011100
0100001010
0101010011
0110011100
0111100101
1000010011
1001011100
1010100101
1011101110
1100011100
1101100101
1110101110
1111110111

Розглянемо приклад. Нехай нам треба скласти два числа 5 та 7 у негативній логіці. Число 5 у позитивній логіці відповідає двійковий код 0101, а в негативній - код 1010. Число 7 у позитивній логіці відповідає двійковий код 0111, а в негативній - код 1000. При подачі на вхід суматора кодів 1010 (десяткове число 10 в 1000 (десяткове число 8 у позитивній логіці) отримуємо суму 10 + 8 = 18, тобто код 10010 у позитивній логіці. З урахуванням вхідного сигналу переносу С=1 (відсутність вхідного переносу в негативній логіці) вихідний код суматора вийде на одиницю більше: 18 + 1 = 19, тобто 10011.логіці це буде відповідати числу 01100, тобто 12 за відсутності вихідного перенесення. У результаті одержали 5+7=12.

Суматор може обчислювати як суму, а й різницю вхідних кодів, тобто працювати вычитателем. Для цього число, що віднімається, треба просто порозрядно проінвертувати, а на вхід перенесення С подати одиничний сигнал (рис. 6.2).

інтуіт

Наприклад, нехай нам треба обчислити різницю між числом 11 (1011) та числом 5 (0101). Інвертуємо порозрядно число 5 і отримуємо 1010, тобто десяткове 10. Суматор при підсумовуванні 11 і 10 дасть 21, тобто двійкове число 10101. Якщо сигнал дорівнює 1, то результат буде 10110. Відкидаємо старший розряд (вихідний сигнал Р) і отримуємо 0110, тобто 6.

Ще приклад. Нехай треба обчислити різницю між числом 12 (1100) та числом 9 (1001). Інвертуємо порозрядно 9, отримуємо 0110, тобто десяткове 6. Знаходимо суму 12 і 6, отримуємо 18, а з урахуванням С = 1 отримуємо 19, тобто двійкове 10011. У чотирьох молодших розрядах маємо 0011, тобто десяткове 3.

Каскадувати суматори збільшення розрядності дуже просто. Потрібно сигнал з виходу перенесення суматора, що обробляє молодші розряди, подати на вхід перенесення суматора, що обробляє старші розряди (рис. 6.3). При об'єднанні трьох 4-розрядних суматорів виходить 12-розрядний суматор, що має додатковий 13-й розряд (вихід перенесення Р).

комбінаційні

Невизначені стани на виходах суматора можуть виникати за будь-якої зміни будь-якого з вхідних кодів (рис. 6.4). Вихідний код суми може приймати протягом короткого часу значення, що ніяк не пов'язані з вхідними кодами, а на виході перенесення можуть з'являтися короткі паразитні імпульси. Це пов'язано насамперед із неодночасною зміною розрядів вхіднихкодів. Щоб уникнути впливу цих невизначених станів на подальшу схему необхідно передбачати синхронізацію або стробування вихідних сигналів. Але для цього треба мати інформацію про моменти зміни вхідних кодів, яка є далеко не завжди.

лекція

Затримки суматора ІМ6 від входів до виходів суми приблизно вдвічі перевищує затримку логічного елемента, а від входів до виходу перенесення приблизно в півтора рази. Затримки суматора ІМ3 більше затримок ІМ6 майже вдвічі. Тому в схемах, де важлива швидкодія, краще використовувати ІМ6. Особливо це суттєво при каскадуванні збільшення розрядності, оскільки там затримки окремих мікросхем сумуються. Точні величини затримок треба дивитися у довідниках.