Электроника:Цифровая электроника/Функции комбинационной логики/Полный сумматор: различия между версиями
Valemak (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 5: | Строка 5: | ||
=Полный сумматор<ref>[https://www.allaboutcircuits.com/textbook/digital/chpt-9/full-adder/ www.allaboutcircuits.com - Full-Adder]</ref>= | =Полный сумматор<ref>[https://www.allaboutcircuits.com/textbook/digital/chpt-9/full-adder/ www.allaboutcircuits.com - Full-Adder]</ref>= | ||
Полусумматор (он же неполный сумматор) – чрезвычайно полезная штука, если складывать просто по две цифры. Медленный способ разработки | [[Полусумматор]] (он же [[неполный сумматор]]) – чрезвычайно полезная штука, если складывать просто по две цифры. Медленный способ разработки [[сумматор]]ов не с одном, а уже с двумя двоичными разрядами – составить таблицу истинности и затем упростить её. Аналогично можно действовать, чтобы создать [[сумматор]] с тремя двоичными разрядами. Если делать [[четырёхразрядный сумматор]], то снова можно пойти этим путём. Ну, и так далее… Получившиеся схемы будут быстродействующими, но времени на их разработку уйдёт немало. | ||
Глядя на суммирование двух двоичных цифр, напрашивается мысль, что неплохо бы расширить сложение до нескольких двоичных цифр. | Глядя на суммирование двух двоичных цифр, напрашивается мысль, что неплохо бы расширить сложение до нескольких двоичных цифр. | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
| [[File:IV-9_3_1.png|400px|center|thumb|alt=Рис. 1. Для сумматора, складывающего многоразрядные (в данном случае – двухразрядные) числа, нужно разработать способ переноса накапливающихся младших разрядов в старшие.]] || '''Рис. 1.''' Для | | [[File:IV-9_3_1.png|400px|center|thumb|alt=Рис. 1. Для сумматора, складывающего многоразрядные (в данном случае – двухразрядные) числа, нужно разработать способ переноса накапливающихся младших разрядов в старшие.]] || '''Рис. 1.''' Для [[сумматор]]а, складывающего многоразрядные (в данном случае – двухразрядные) числа, нужно разработать способ переноса накапливающихся младших разрядов в старшие. | ||
|} | |} | ||
Давайте прикинем, сколько входных данных использует средний столбец на рисунке 1 выше. Нашему | Давайте прикинем, сколько входных данных использует средний столбец на рисунке 1 выше. Нашему [[сумматор]]у нужны три входа: '''a''', '''b''' и '''C<sub>Мл.</sub>''' – перенос младшего разряда в старший из предыдущей суммы (когда мы сначала сложили единицы в крайнем правом столбце). При этом мы можем использовать наш [[сумматор]] с двумя входами для построения [[сумматор]]а с тремя входами. | ||
Найти '''Σ''' достаточно легко. Стандартная арифметика гласит, что если '''Σ''' = '''a''' + '''b''' + '''C<sub>Мл.</sub>''' и '''Σ<sub>1</sub>''' = '''a''' + '''b''', то '''Σ''' = '''Σ<sub>1</sub>''' + '''C<sub>Мл.</sub>'''. | Найти '''Σ''' достаточно легко. Стандартная арифметика гласит, что если '''Σ''' = '''a''' + '''b''' + '''C<sub>Мл.</sub>''' и '''Σ<sub>1</sub>''' = '''a''' + '''b''', то '''Σ''' = '''Σ<sub>1</sub>''' + '''C<sub>Мл.</sub>'''. | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
| [[File:IV-9_3_2.png|400px|center|thumb|'''Рис. 2.''' Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – принципиальная вентильная схема.|alt=Рис. 2. Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – принципиальная вентильная схема.]] || [[File:IV-9_3_3.png|400px|center|thumb|'''Рис. 3.''' Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – релейная схема.|alt=Рис. 3. Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – релейная схема.]] | | [[File:IV-9_3_2.png|400px|center|thumb|'''Рис. 2.''' [[Полный сумматор]] с тремя входами как комбинация двух [[неполных сумматоров]] с двумя входами – принципиальная вентильная схема.|alt=Рис. 2. Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – принципиальная вентильная схема.]] || [[File:IV-9_3_3.png|400px|center|thumb|'''Рис. 3.''' [[Полный сумматор]] с тремя входами как комбинация двух [[неполных сумматоров]] с двумя входами – релейная схема.|alt=Рис. 3. Полный сумматор с тремя входами как комбинация двух неполных сумматоров с двумя входами – релейная схема.]] | ||
|} | |} | ||
Что мы на схеме (см. рисунок 3 выше) делаем с C<sub>1</sub> и C<sub>2</sub>? Давайте посмотрим на три входные суммы и быстро посчитаем: | Что мы на схеме (см. рисунок 3 выше) делаем с C<sub>1</sub> и C<sub>2</sub>? Давайте посмотрим на три входные суммы и быстро посчитаем: | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
! C<sub>Мл.</sub> + а + б = ? | ! colspan="4" | C<sub>Мл.</sub> + а + б = ? | ||
|- | |- | ||
| 0 + 0 + 0 = 0 || 0 + 0 + 1 = 1 || 0 + 1 + 0 = 1 || 0 + 1 + 1 = 10<sub>2</sub> | | 0 + 0 + 0 = 0 || 0 + 0 + 1 = 1 || 0 + 1 + 0 = 1 || 0 + 1 + 1 = 10<sub>2</sub> | ||
Строка 36: | Строка 36: | ||
Если у вас есть какие-либо опасения по поводу бита младшего разряда, убедитесь, что схема и релейная диаграмма вычисляют его правильно. | Если у вас есть какие-либо опасения по поводу бита младшего разряда, убедитесь, что схема и релейная диаграмма вычисляют его правильно. | ||
Чтобы вычислить бит старшего разряда, обратите внимание, что он равен 1 в обоих случаях, когда '''a''' + '''b''' даёт '''C<sub>1</sub>'''. Кроме того, бит старшего разряда равен 1, когда '''a''' + '''b''' даёт '''Σ<sub>1</sub>''', а '''C<sub>Мл.</sub>''' равно 1. Таким образом, у нас появляется перенос, когда «'''C<sub>1</sub>''' ИЛИ ('''Σ<sub>1</sub''' | Чтобы вычислить бит старшего разряда, обратите внимание, что он равен 1 в обоих случаях, когда '''a''' + '''b''' даёт '''C<sub>1</sub>'''. Кроме того, бит старшего разряда равен 1, когда '''a''' + '''b''' даёт '''Σ<sub>1</sub>''', а '''C<sub>Мл.</sub>''' равно 1. Таким образом, у нас появляется перенос, когда «'''C<sub>1</sub>''' ИЛИ ('''Σ<sub>1</sub>''' И '''C<sub>Мл.</sub>''')». Наш полный сумматор с тремя входами: | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
| [[File:IV-9_3_4.png|400px|center|thumb|'''Рис. 4.''' Полный сумматор (как комбинация двух неполных) с тремя входами – принципиальная вентильная схема.|alt=Рис. 4. Полный сумматор (как комбинация двух неполных) с тремя входами – принципиальная вентильная схема.]] || [[File:IV-9_3_5.png|400px|center|thumb|'''Рис. 5.''' Полный сумматор (как комбинация двух неполных) с тремя входами – релейная схема.|alt=Рис. 5. Полный сумматор (как комбинация двух неполных) с тремя входами – релейная схема.]] | | [[File:IV-9_3_4.png|400px|center|thumb|'''Рис. 4.''' [[Полный сумматор]] (как комбинация двух неполных) с тремя входами – принципиальная вентильная схема.|alt=Рис. 4. Полный сумматор (как комбинация двух неполных) с тремя входами – принципиальная вентильная схема.]] || [[File:IV-9_3_5.png|400px|center|thumb|'''Рис. 5.''' [[Полный сумматор]] (как комбинация двух неполных) с тремя входами – релейная схема.|alt=Рис. 5. Полный сумматор (как комбинация двух неполных) с тремя входами – релейная схема.]] | ||
|} | |} | ||
В некоторых проектах важна возможность исключения одного или нескольких типов вентилей. В подобных случаях можно заменить конечный вентиль ИЛИ вентилем «Исключающее ИЛИ» с тем же результатом на выходе. | В некоторых проектах важна возможность исключения одного или нескольких типов вентилей. В подобных случаях можно заменить конечный вентиль ИЛИ вентилем «Исключающее ИЛИ» с тем же результатом на выходе. | ||
Теперь мы можем подключить два | Теперь мы можем подключить два [[сумматор]]а, чтобы складывать 2-битные величины: | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
| [[File:IV-9_3_6.png|400px|center|thumb|'''Рис. 6.''' Принципиальная вентильная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.|alt=Рис. 6. Принципиальная вентильная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.]] || [[File:IV-9_3_7.png|400px|center|thumb|'''Рис. 7.''' Релейная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.|alt=Рис. 7. Релейная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.]] | | [[File:IV-9_3_6.png|400px|center|thumb|'''Рис. 6.''' Принципиальная вентильная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.|alt=Рис. 6. Принципиальная вентильная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.]] || [[File:IV-9_3_7.png|400px|center|thumb|'''Рис. 7.''' Релейная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.|alt=Рис. 7. Релейная схема – комбинация неполного и полного сумматоров для складывания 2-битных чисел.]] | ||
Строка 54: | Строка 54: | ||
'''A<sub>0</sub>''' — младший бит '''A''', '''A<sub>1</sub>''' — старший бит '''A''', '''B<sub>0</sub>''' — младший бит '''B''', '''B<sub>1</sub>''' — старший бит '''B''', '''Σ<sub>0</sub>''' — младший бит суммы, '''Σ<sub>1</sub>''' — старший бит суммы, а '''C<sub>Ст.</sub>''' — перенос бита из младшего разряда в старший. | '''A<sub>0</sub>''' — младший бит '''A''', '''A<sub>1</sub>''' — старший бит '''A''', '''B<sub>0</sub>''' — младший бит '''B''', '''B<sub>1</sub>''' — старший бит '''B''', '''Σ<sub>0</sub>''' — младший бит суммы, '''Σ<sub>1</sub>''' — старший бит суммы, а '''C<sub>Ст.</sub>''' — перенос бита из младшего разряда в старший. | ||
Это сугубо гипотетическая схема, на практике двухразрядный сумматор конструируется немного по-другому. Младшие биты также проходят через полный сумматор: | Это сугубо гипотетическая схема, на практике [[двухразрядный сумматор]] конструируется немного по-другому. Младшие биты также проходят через [[полный сумматор]]: | ||
{| class="wikitable" | {| class="wikitable" style="margin:0 auto" | ||
|- | |- | ||
| [[File:IV-9_3_8.png|400px|center|thumb|'''Рис. 8.''' Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – принципиальная вентильная схема.|alt=Рис. 8. Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – принципиальная вентильная схема.]] || [[File:IV-9_3_9.png|400px|center|thumb|'''Рис. 9.''' Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – релейная схема.|alt=Рис. 9. Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – релейная схема.]] | | [[File:IV-9_3_8.png|400px|center|thumb|'''Рис. 8.''' [[Полный сумматор]] двух двухбитных чисел как комбинация двух полных сумматоров – принципиальная вентильная схема.|alt=Рис. 8. Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – принципиальная вентильная схема.]] || [[File:IV-9_3_9.png|400px|center|thumb|'''Рис. 9.''' [[Полный сумматор]] двух двухбитных чисел как комбинация двух полных сумматоров – релейная схема.|alt=Рис. 9. Полный сумматор двух двухбитных чисел как комбинация двух полных сумматоров – релейная схема.]] | ||
|} | |} | ||
Строка 65: | Строка 65: | ||
[[File:IV-9_3_10.png|400px|center|thumb|'''Рис. 10.''' Слева – стандартное сложение 2-х четырёхбитных чисел целиком. Справа – складываем по два бита и объединяем результаты.|alt=Рис. 10. Слева – стандартное сложение 2-х четырёхбитных чисел целиком. Справа – складываем по два бита и объединяем результаты.]] | [[File:IV-9_3_10.png|400px|center|thumb|'''Рис. 10.''' Слева – стандартное сложение 2-х четырёхбитных чисел целиком. Справа – складываем по два бита и объединяем результаты.|alt=Рис. 10. Слева – стандартное сложение 2-х четырёхбитных чисел целиком. Справа – складываем по два бита и объединяем результаты.]] | ||
Если программа складывает двухбитные числа и запоминает переносимый старший разряд для использования в следующем сложении, то такой подход позволяет суммировать любое количество битов, даже если в наличии только двухбитный сумматор. Небольшие ПЛК (программируемые логические контролёры), рассчитанные на складывание двух битов, могут быть объединены в цепочки для увеличения количества обрабатываемых битов. | Если [[программа]] складывает двухбитные числа и запоминает переносимый старший разряд для использования в следующем сложении, то такой подход позволяет суммировать любое количество битов, даже если в наличии только [[двухбитный сумматор]]. Небольшие [[ПЛК]] ([[программируемые логические контролёры]]), рассчитанные на складывание двух битов, могут быть объединены в цепочки для увеличения количества обрабатываемых битов. | ||
Подобные полные сумматоры могут быть расширены до любого количества битов, насколько позволяет объём памяти. В качестве примера, вот как сделать 8-битный сумматор: | Подобные [[полные сумматоры]] могут быть расширены до любого количества битов, насколько позволяет объём памяти. В качестве примера, вот как сделать [[8-битный сумматор]]: | ||
[[File:IV-9_3_11.png|400px|center|thumb|'''Рис. 11.''' Полный 8-битный сумматор – числа складываются стандартно, последовательно обрабатывая от младших разрядов к старшим.|alt=Рис. 11. Полный 8-битный сумматор – числа складываются стандартно, последовательно обрабатывая от младших разрядов к старшим.]] | [[File:IV-9_3_11.png|400px|center|thumb|'''Рис. 11.''' [[Полный 8-битный сумматор]] – числа складываются стандартно, последовательно обрабатывая от младших разрядов к старшим.|alt=Рис. 11. Полный 8-битный сумматор – числа складываются стандартно, последовательно обрабатывая от младших разрядов к старшим.]] | ||
Мы получим аналогичный результат, если используем два 2-разрядных сумматора для создания 4-разрядного сумматора, а затем используя два 4-разрядных сумматора для создания 8-разрядного сумматора или повторного дублирования релейной логики и обновления чисел: | Мы получим аналогичный результат, если используем два [[2-разрядных сумматора]] для создания [[4-разрядного сумматора]], а затем используя два [[4-разрядных сумматора]] для создания [[8-разрядного сумматора]] или повторного дублирования релейной логики и обновления чисел: | ||
[[File:IV-9_3_12.png|400px|center|thumb|'''Рис. 12.''' На основе 2-битных сумматоров создаём 4-битные сумматоры, на основе которых создаём 8-битный сумматор.|alt=Рис. 12. На основе 2-битных сумматоров создаём 4-битные сумматоры, на основе которых создаём 8-битный сумматор.]] | [[File:IV-9_3_12.png|400px|center|thumb|'''Рис. 12.''' На основе [[2-битных сумматоров]] создаём [[4-битные сумматоры]], на основе которых создаём [[8-битный сумматор]].|alt=Рис. 12. На основе 2-битных сумматоров создаём 4-битные сумматоры, на основе которых создаём 8-битный сумматор.]] | ||
Каждое «2+» на рисунке 12 выше – это 2-битный сумматор, состоящий из из двух полных сумматоров. Каждое «4+» на рисунке 12 выше – это 4-битный сумматор, состоящий из двух 2-битных сумматоров. И результатом двух 4-битных сумматоров является искомый 8-битный сумматор, для построения которого мы использовали простейшие полные сумматоры. | Каждое «2+» на рисунке 12 выше – это [[2-битный сумматор]], состоящий из из двух [[полных сумматоров]]. Каждое «4+» на рисунке 12 выше – это [[4-битный сумматор]], состоящий из двух [[2-битных сумматоров]]. И результатом двух [[4-битных сумматоров]] является искомый [[8-битный сумматор]], для построения которого мы использовали простейшие [[полные сумматоры]]. | ||
Для любой большой комбинационной схемы обычно есть два подхода к проектированию: можно взять более простые схемы и воспроизвести их; или же можно спроектировать сложную схему как завершённое (т.е. единое, а не состоящее из наращиваемых 1/2/4/8/… блоков) устройство. Использование более простых схем для создания сложных позволяет тратить меньше времени на проектирование, но при этом потребуется больше времени для прохождения сигналов через | Для любой большой комбинационной схемы обычно есть два подхода к проектированию: можно взять более простые схемы и воспроизвести их; или же можно спроектировать сложную схему как завершённое (т.е. единое, а не состоящее из наращиваемых 1/2/4/8/… блоков) устройство. Использование более простых схем для создания сложных позволяет тратить меньше времени на проектирование, но при этом потребуется больше времени для прохождения сигналов через [[транзистор]]ы. | ||
В схемах 8-битного сумматора, приведённых на рисунках 11 и 12 выше, ожидается, пока все выходные сигналы '''C<sub>xСт.</sub>''' переместятся от '''A<sub>0</sub>''' + '''B<sub>0</sub>''' до входов '''Σ<sub>7</sub>'''. Если разработчик строит 8-битный сумматор как завершённое устройство, упрощённое до суммы произведений, то сигнал на каждом этапе просто проходит через один вентиль НЕ, один вентиль И и один вентиль ИЛИ. | В схемах [[8-битного сумматора]], приведённых на рисунках 11 и 12 выше, ожидается, пока все выходные сигналы '''C<sub>xСт.</sub>''' переместятся от '''A<sub>0</sub>''' + '''B<sub>0</sub>''' до входов '''Σ<sub>7</sub>'''. Если разработчик строит [[8-битный сумматор]] как завершённое устройство, упрощённое до суммы произведений, то сигнал на каждом этапе просто проходит через один [[вентиль НЕ]], один [[вентиль И]] и один [[вентиль ИЛИ]]. | ||
Семнадцать устройств ввода имеют таблицу истинности со 131072-ю элементами, и преобразование 131072 элементов в сумму произведений займёт некоторое время. При проектировании систем с максимально допустимым временем отклика для получения конечного результата можно начать с использования более простых схем, а затем попытаться заменить слишком медленные части схемы. | Семнадцать устройств ввода имеют таблицу истинности со 131072-ю элементами, и преобразование 131072 элементов в сумму произведений займёт некоторое время. При проектировании систем с максимально допустимым временем отклика для получения конечного результата можно начать с использования более простых схем, а затем попытаться заменить слишком медленные части схемы. | ||
Строка 87: | Строка 87: | ||
=См.также= | =См.также= | ||
=Внешние ссылки= | =Внешние ссылки= | ||
Строка 93: | Строка 93: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Электроника}} | {{Навигационная таблица/Портал/Электроника}} | ||
[[Категория:Полный сумматор]] | |||
[[Категория:Теория]] | |||
[[Категория:Теория по электронике]] |
Текущая версия от 21:53, 22 мая 2023
Полный сумматор[1]
Полусумматор (он же неполный сумматор) – чрезвычайно полезная штука, если складывать просто по две цифры. Медленный способ разработки сумматоров не с одном, а уже с двумя двоичными разрядами – составить таблицу истинности и затем упростить её. Аналогично можно действовать, чтобы создать сумматор с тремя двоичными разрядами. Если делать четырёхразрядный сумматор, то снова можно пойти этим путём. Ну, и так далее… Получившиеся схемы будут быстродействующими, но времени на их разработку уйдёт немало.
Глядя на суммирование двух двоичных цифр, напрашивается мысль, что неплохо бы расширить сложение до нескольких двоичных цифр.
![]() |
Рис. 1. Для сумматора, складывающего многоразрядные (в данном случае – двухразрядные) числа, нужно разработать способ переноса накапливающихся младших разрядов в старшие. |
Давайте прикинем, сколько входных данных использует средний столбец на рисунке 1 выше. Нашему сумматору нужны три входа: a, b и CМл. – перенос младшего разряда в старший из предыдущей суммы (когда мы сначала сложили единицы в крайнем правом столбце). При этом мы можем использовать наш сумматор с двумя входами для построения сумматора с тремя входами.
Найти Σ достаточно легко. Стандартная арифметика гласит, что если Σ = a + b + CМл. и Σ1 = a + b, то Σ = Σ1 + CМл..
![]() |
![]() |
Что мы на схеме (см. рисунок 3 выше) делаем с C1 и C2? Давайте посмотрим на три входные суммы и быстро посчитаем:
CМл. + а + б = ? | |||
---|---|---|---|
0 + 0 + 0 = 0 | 0 + 0 + 1 = 1 | 0 + 1 + 0 = 1 | 0 + 1 + 1 = 102 |
1 + 0 + 0 = 1 | 1 + 0 + 1 = 102 | 1 + 1 + 0 = 102 | 1 + 1 + 1 = 112 |
Если у вас есть какие-либо опасения по поводу бита младшего разряда, убедитесь, что схема и релейная диаграмма вычисляют его правильно.
Чтобы вычислить бит старшего разряда, обратите внимание, что он равен 1 в обоих случаях, когда a + b даёт C1. Кроме того, бит старшего разряда равен 1, когда a + b даёт Σ1, а CМл. равно 1. Таким образом, у нас появляется перенос, когда «C1 ИЛИ (Σ1 И CМл.)». Наш полный сумматор с тремя входами:
![]() |
![]() |
В некоторых проектах важна возможность исключения одного или нескольких типов вентилей. В подобных случаях можно заменить конечный вентиль ИЛИ вентилем «Исключающее ИЛИ» с тем же результатом на выходе.
Теперь мы можем подключить два сумматора, чтобы складывать 2-битные величины:
A0 — младший бит A, A1 — старший бит A, B0 — младший бит B, B1 — старший бит B, Σ0 — младший бит суммы, Σ1 — старший бит суммы, а CСт. — перенос бита из младшего разряда в старший.
Это сугубо гипотетическая схема, на практике двухразрядный сумматор конструируется немного по-другому. Младшие биты также проходят через полный сумматор:
![]() |
![]() |
На то есть весомые причины, одна из которых заключается в том, что мы позволяем схеме определять, следует ли включать перенос самого низкого порядка в сумму. Это позволяет объединять даже большие суммы. Рассмотрим два разных подхода к суммированию 2-х четырёхбитных чисел:
![Рис. 10. Слева – стандартное сложение 2-х четырёхбитных чисел целиком. Справа – складываем по два бита и объединяем результаты.](/ruwiki/images/a/a4/IV-9_3_10.png)
Если программа складывает двухбитные числа и запоминает переносимый старший разряд для использования в следующем сложении, то такой подход позволяет суммировать любое количество битов, даже если в наличии только двухбитный сумматор. Небольшие ПЛК (программируемые логические контролёры), рассчитанные на складывание двух битов, могут быть объединены в цепочки для увеличения количества обрабатываемых битов.
Подобные полные сумматоры могут быть расширены до любого количества битов, насколько позволяет объём памяти. В качестве примера, вот как сделать 8-битный сумматор:
![Рис. 11. Полный 8-битный сумматор – числа складываются стандартно, последовательно обрабатывая от младших разрядов к старшим.](/ruwiki/images/thumb/d/d7/IV-9_3_11.png/400px-IV-9_3_11.png)
Мы получим аналогичный результат, если используем два 2-разрядных сумматора для создания 4-разрядного сумматора, а затем используя два 4-разрядных сумматора для создания 8-разрядного сумматора или повторного дублирования релейной логики и обновления чисел:
![Рис. 12. На основе 2-битных сумматоров создаём 4-битные сумматоры, на основе которых создаём 8-битный сумматор.](/ruwiki/images/thumb/5/5e/IV-9_3_12.png/400px-IV-9_3_12.png)
Каждое «2+» на рисунке 12 выше – это 2-битный сумматор, состоящий из из двух полных сумматоров. Каждое «4+» на рисунке 12 выше – это 4-битный сумматор, состоящий из двух 2-битных сумматоров. И результатом двух 4-битных сумматоров является искомый 8-битный сумматор, для построения которого мы использовали простейшие полные сумматоры.
Для любой большой комбинационной схемы обычно есть два подхода к проектированию: можно взять более простые схемы и воспроизвести их; или же можно спроектировать сложную схему как завершённое (т.е. единое, а не состоящее из наращиваемых 1/2/4/8/… блоков) устройство. Использование более простых схем для создания сложных позволяет тратить меньше времени на проектирование, но при этом потребуется больше времени для прохождения сигналов через транзисторы.
В схемах 8-битного сумматора, приведённых на рисунках 11 и 12 выше, ожидается, пока все выходные сигналы CxСт. переместятся от A0 + B0 до входов Σ7. Если разработчик строит 8-битный сумматор как завершённое устройство, упрощённое до суммы произведений, то сигнал на каждом этапе просто проходит через один вентиль НЕ, один вентиль И и один вентиль ИЛИ.
Семнадцать устройств ввода имеют таблицу истинности со 131072-ю элементами, и преобразование 131072 элементов в сумму произведений займёт некоторое время. При проектировании систем с максимально допустимым временем отклика для получения конечного результата можно начать с использования более простых схем, а затем попытаться заменить слишком медленные части схемы.
Таким образом, вы тратите большую часть своего времени на разработку именно критичных частей схемы.
См.также
Внешние ссылки