
2.4.2. Полусумматор и сумматор
Важной функцией любого компьютера является осуществление вычислений, для осуществления операции сложения целых чисел используются сумматоры. На рисунке 11 изображен полусумматор, складывающий два одноразрядных целых числа и таблица истинности для сложения этих чисел. Складываемые числа подаются на входные линии A, B, на выход «Сумма» поступает результат, а на выход «Перенос» перенос на следующий (левый) разряд.
A |
B |
Сумма |
Перенос |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
Полусумматор подходит для сложения битов нижних разрядов двух многобитовых слов. Но он не годится для сложения битов в середине слова, потому что не может осуществлять перенос в эту позицию. Для этих целей используется полный сумматор (рис. 12), который состоит из двух полусумматоров. В отличие от полусумматора полный сумматор содержит входную линию «Вход переноса», на которую может поступать, бит переноса из предыдущего разряда. Результирующий же бит складывается из битов, поступающих на входы A и B, и бита с входа переноса. При суммировании этих трех битов образуется непосредственно бит суммы, идущий на выход «Сумма» и бит переноса в следующий разряд, поступающий на линию «Выход переноса». Таким образом, два полусумматора порождают и биты суммы, и биты переноса.
Чтобы построить сумматор, например, для двух 8-битных слов, нужно продублировать схему, изображенную на рисунке 12 восемь раз. В такой схеме, называемой сумматором со сквозным переносом, вход переноса текущего сумматора соединен с выходом переноса предыдущего сумматора, а перенос в самый правый бит, соединен с нулем. Данный вид сумматора работает довольно медленно и на практике отдают предпочтение более быстрым сумматорам, о которых подробнее можно узнать в [10].
2.5. Тактовый генератор
Во многих цифровых схемах все зависит от порядка, в котором выполняются действия. Иногда одно действие должно предшествовать другому, иногда два действия должны происходить одновременно. Для контроля временных отношений в цифровые схемы встраиваются тактовые генераторы, чтобы обеспечить синхронизацию. Тактовый генератор — это схема, которая вызывает серию импульсов одинаковых по длительности. Интервалы между последовательными импульсами также одинаковы. Временем такта называется временной интервал между началом одного импульса и началом следующего.
В компьютере за время одного такта может произойти много событий. Если они должны осуществляться в определенном порядке, то такт следует разделить на подтакты. Чтобы достичь лучшего разрешения, чем у основного тактового генератора, нужно сделать ответвление от задающей линии тактового генератора и вставить схему с определенным временем задержки. Таким образом, порождается вторичный сигнал тактового генератора, который сдвинут по фазе относительно первичного (рис.14 (а)). Временная диаграмма (рис.14 (б)) обеспечивает четыре начала отсчета времени для дискретных событий:
Нарастающий фронт С1
Задний фронт С1
Нарастающий фронт С2
Задний фронт С2
Связав различные события с различными фронтами, можно достичь требуемой последовательности выполнения действий. Если в пределах одного такта требуется более четырех начал отсчета, можно сделать еще несколько ответвлений от задающей линии с различным временем задержки.
Тактовые генераторы могут быть синхронными и асинхронными. В случае синхронного тактового генератора время состояния с высоким уровнем импульса равно времени состояния с низким уровнем импульса (рис. 14 (б)). Чтобы получить асинхронную серию импульсов, нужно сдвинуть сигнал задающего генератора, используя цепь задержки. Затем нужно соединить полученный сигнал с изначальным сигналом с помощью логической функции «И» (рис.14 (в)).
Лекция 3: Память. Триггеры и защелки