Рис. 3.20. Тактовый генератор (а); временная диаграмма тактового генератора (б); порождение асинхронных тактовых импульсов (в)
В некоторых схемах важны временные интервалы, а не дискретные моменты времени. Например, некоторое событие может происходить не на фронте импульса, а в любое время, когда уровень импульса С\ высокий. Другое событие может происходить только в том случае, когда уровень импульса С2 высокий. Если необходимо более двух интервалов, нужно предоставить больше линий передачи синхронизирующих импульсов или сделать так, чтобы состояния с высоким уровнем импульса у двух тактовых генераторов частично пересекались во
времени. В последнем случае можно выделить 4 отдельных интервала: Сх И С2, ^ И С2, Сх И С2 и ^ И С2.
Тактовые генераторы могут быть синхронными. В этом случае время существования импульса с высоким уровнем равно времени существования импульса с низким уровнем (см. рис. 3.20, б). Чтобы получить асинхронную серию импульсов (см. сигнал С на рис. 3.20, в), нужно сдвинуть сигнал задающего генератора, использовав цепь задержки. Затем нужно соединить полученный сигнал с изначальным сигналом с помощью логической функции И.
Память
Память является необходимым компонентом любого компьютера. Без памяти не было бы компьютеров, по крайней мере таких, какие есть сейчас. Память используется для хранения как команд, так и данных. В следующих подразделах мы рассмотрим основные компоненты памяти, начиная с уровня вентилей. Мы увидим, как они работают, как из них можно построить память большой емкости.
Защелки
Чтобы создать один бит памяти, нужна схема, которая каким-то образом «запоминает» предыдущие входные значения. Такую схему можно сконструировать из двух вентилей НЕ-ИЛИ, как показано на рис. 3.21, а. Аналогичные схемы можно построить из вентилей НЕ-И. Мы не будем упоминать эти схемы в дальнейшем, поскольку они, по существу, идентичны схемам с вентилями НЕ-ИЛИ.
Рис. 3.21. Защелка НЕ-ИЛИ в состоянии 0 (а); защелка НЕ-ИЛИ в состоянии 1 (б); таблица
истинности для функции НЕ-ИЛИ (в)
Схема, изображенная на рис. 3.21, я, называется SR-защелкой. У нее есть два входа: S (Setting — установками R (Resetting — сброс). У нее также есть два комплиментарных выхода: Q и Q. В отличие от комбинаторной схемы, выходные сигналы защелки не определяются текущими входными сигналами.
Чтобы понять, как работает защелка, предположим, что S = 0 и R = 0 (вообще сигнал на этих входах равен 0 большую часть времени). Предположим также, что Q = 0. Так как Q возвращается в верхний вентиль НЕ-ИЛИ и оба входа этого
вентиля равны 0, то его выход, 0> равен 1. Единица возвращается в нижний вентиль, у которого в итоге один вход равен 0, другой — 1, а на выходе получается 2=0. Такое положение вещей, по крайней мере, состоятельно (см. рис. 3.21, а).
А теперь давайте представим, что () = 1, а і? и 5 все еще равны 0. Верхний вентиль имеет входы 0 и 1 и выход (X (то есть 0), который возвращается в нижний вентиль. Такое положение вещей, изображенное на рис. 3.21, б, также состоятельно. Положение, когда оба выхода равны 0, не состоятельно, поскольку в этом случае оба вентиля имели бы на входе два нуля, что привело бы к единице на выходе, а не к нулю. Точно так же невозможно иметь оба выхода равные 1, поскольку это привело бы к входным сигналам 0 и 1, что вызывает на выходе 0, а не 1. Наш вывод прост: при К = 5 = 0 защелка имеет два устойчивых состояния, которые мы будем называть 0 и 1 в зависимости от ().