на головну | список тем | перегляд презинтацій | самотестування | історія створення

 

 

 

Тема19. Суматори

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

Малюнок 19.1 Приклади мікросхем суматорів.

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

Суматори можуть використовуватися також для підсумовування чисел в негативній логіці (коли логічній одиниці відповідає електричний нуль, і навпаки логічному нулю відповідає електрична одиниця). Але в цьому випадку вхідний сигнал перенесення С також стає інверсним, тому при використовуванні однієї мікросхеми суматора на вхід С треба подати електричну одиницю (високий рівень напруги). Інверсним стає і вихідний сигнал перенесення Р, низький рівень напруги на ньому (електричний нуль) відповідає наявності перенесення. Тобто виходить, що суматор абсолютно однаково працює як з позитивною, так і з негативною логікою.
Розглянемо приклад. Хай нам треба додати два числа 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.
Суматор може обчислювати не тільки суму, але і різницю вхідних кодів, тобто працювати віднімачем. Число, що для цього віднімається, треба просто порозрядно проінвертувати, а на вхід перенесення С подати одиничний сигнал (малюнок 19.2).
Наприклад, хай нам треба обчислити різницю між числом 11 (1011) і числом 5 (0101). Інвертуємо порозрядно число 5 і одержуємо 1010, тобто десяткове 10. Суматор при підсумовуванні 11 і 10 дасть 21, тобто двійкове число 10101. Якщо сигнал С рівний 1, то результат буде 10110. Відкидаємо старший розряд (вихідний сигнал Р) і одержуємо різницю 0110, тобто 6.

Малюнок 19.2 Чотирьохрозрядний віднімач на суматорі ИМ6 і інверторах ЛН1

Ще приклад. Хай треба обчислити різницю між числом 12 (1100) і числом 9 (1001). Інвертуємо порозрядно 9, одержуємо 0110, тобто десяткове 6. Знаходимо суму 12 і 6, одержуємо 18, а з врахуванням С = 1 одержуємо 19, тобто двійкове 10011. В чотирьох молодших розрядах маємо 0011, тобто десяткове 3.
Каскадувати суматори для збільшення розрядності дуже просто. Сигнал з виходу перенесення суматора, оброблювального молодші розряди, потрібно подати на вхід перенесення суматора, оброблювального старші розряди (малюнок 19.3). При об'єднанні трьох 4-розрядних суматорів виходить 12-розрядний суматор, що має додатковий 13 розряд (вихід перенесення Р).

Малюнок 19.3. Каскадування суматорів ИМ6 для збільшення розрядності.

Невизначені стани на виходах суматора можуть виникати при будь-якій зміні будь-якого з вхідних кодів. Вихідний код суми може приймати протягом короткого часу значення, ніяк не пов'язані з вхідними кодами, а на виході перенесення можуть з'являтися короткі паразитні імпульси. Це пов'язано перш за все з неодночасною зміною розрядів вхідних кодів. Щоб уникнути впливу цих непевних станів на подальшу схему, необхідно передбачати синхронізацію або строб вихідних сигналів. Але для цього треба мати інформацію про моменти зміни вхідних кодів, яка є далеко не завжди.
Затримки суматора ИМ6 від входів до виходів суми приблизно удвічі перевищують затримку логічного елемента, а від входів до виходу перенесення - приблизно в півтора рази. Затримки суматора ІМЗ більше затримок ИМ6 майже удвічі. Тому в схемах, де важлива швидкодія, краще використовувати ИМ6. Особливо це важливо при каскадуванні для збільшення розрядності, оскільки там затримки окремих мікросхем підсумовуються. Точні величини затримок можна знайти в довідниках.

презинтація

попередня тема наступна тема