Учебный курс. Вентили, триггеры и задержки.

Основу цифровых схем составляют логические элементы, называемые вентилями (logic gates). Они реализуют базовые логические функции. Подавая на входы вентиля ту или иную двоичную комбинацию, получаем на его выходе уровень, соответствующий выполняемой им логической функции. Таблица истинности показывает какой логический уровень появится на выходе при заданной комбинации на входе. Элемент «И» выполняет функцию логического умножения, на его выходе будет лог. 0, если хотя бы на одном из входов присутствует лог. 0. Элемент «ИЛИ» играет роль логического сложения, лог. 0 на его выходе будет только если на всех входах будет присутствовать 0. Кружок на выводе обозначает инверсию (лог. НЕ), то есть значение сигнала на нем меняется на противоположное.

pic1_logo

Вентили могут иметь два и более входов (исключая инвертор — логическое НЕ). Соединяя эти элементарные логические вентили между собой можно получать сколь угодно сложные функциональные блоки. При изменении состояния входа, на выходе такого блока сразу устанавливается новое значение, согласно выполняемой им логической функции (спустя некоторое время задержки, об этом мы поговорим позже). Такие схемы называются комбинационными или комбинационной логикой.

Одним из наиболее распространенных комбинационных блоков является мультиплексор. Это своего рода ключ, коммутатор. Он передает данные с одного из входов на выход (соединяет вход и выход между собой). Выбор входа данных осуществляется управляющими входами (адресными входами). На рисунке ниже показан мультиплексор 2-в-1, имеющий 2 входа (a и b) и управляющий вывод для выбора входа (sel).

pic2_logo

Мультиплексор можно реализовать используя как вентили, так и при помощи КМОП-ключей (transmission gate, pass gate). Как правило, логика на ключах компактнее, поскольку реализуется меньшим количеством транзисторов. Упрощенно говоря, n-МОП транзистор пропускает сигнал (открыт) при подаче на его затвор высокого уровня (лог. 1), а p-МОП открывается низким уровнем на затворе (лог. 0). При подаче логической единицы на вход ctrl (см. рисунок ниже) ключ замыкается (открываются оба транзистора, n-МОП и p-МОП, входы x и y соединяются между собой). Если на входе ctrl лог. 0, то ключ разомкнут (оба транзистора закрыты).

pic3v2_logo

Существует и другой класс элементов — это триггеры. Они бывают одноступенчатыми (latch или защелки) и двухступенчатыми (flip-flop). Сигнал на выходе триггера зависит не только от состояния входов, но также и от последнего состояния выхода. Триггеры могут быть асинхронными, если их состояние изменяется при изменении информационного входного сигнала, или синхронными — если триггер реагирует на информационный сигнал только при наличии определенного уровня на входе синхронизации.

Рассмотрим RS-защелку (RS-latch или асинхронный одноступенчатый RS-триггер). Этот элемент имеет вход сброса (R), вход установки (S) и два выхода — прямой (Q) и инверсный (Q с чертой). За счет обратных связей, соединяющих входы вентилей с выходами защелки, ее состояние будет зависеть также от последнего состояния выходов.

pic4_logo

Подавая на входы R или S лог. 1 мы можем устанавливать или сбрасывать триггер. Оба нуля на входах поддерживают предыдущее состояние на выходах (режим хранения). Обе единицы приводят к неопределенному состоянию  и на обоих выходах будет лог. 0.

pic5_logo

Состояние такого RS-триггера, когда R=1 и S=1, является запрещенным и следует избегать его появления. Оно опасно тем, что при смене состояний входов с 11 в 00 на выходе триггера могут возникнуть колебания. Когда на входах триггера оба нуля, то новое состояние выхода определяется только предыдущим состоянием выходов. В этом случае состояния 4…8 (см. рисунок ниже) будут циклически повторяться и будет чередоваться логический уровень на обоих выходах.

pic6_logo

Другой тип защелок это D-latch или transparent latch. D-latch пропускает сигнал со входа D на выход или сохраняет последнее состояние, в зависимости от уровня на входе E. Этот тип триггера — синхронный, поскольку его состояние изменяется только при наличии сигнала E.

pic7_logo

Из двух D-latch (одноступенчатых триггера) можно построить двухступенчатый D-триггер (flip-flop) или, по-другому, одноразрядный регистр, который меняет свое состояние не по уровню сигнала E, а по фронту (состояние на выходе меняется в момент переключение тактового сигнала Clock):

pic8_logo

В двухтактном триггере одна защелка всегда закрыта, другая в режиме пропускания. Сначала открыта первая защелка, вторая закрыта. По переключении тактового сигнала первая переходит в режим хранения, защелкивая данные со входа, а вторая начинает пропускать эти защелкнутые данные с выхода первой. D-триггер является основным элементом синхронных схем (синхронные схемы рассмотрим в следующей статье цикла). Существуют и другие типы триггеров, но мы не будем их рассматривать в рамках данного курса.

В реальной схеме сигнал распространяется не мгновенно, а с некоторой задержкой, как со входа вентиля на выход, так и между вентилями по межсоединениям. Это связано с неизбежными паразитными сопротивлениями (R) и емкостями (C), возникающими в схеме. RC-задержки в конечном счете и определяют быстродействие схемы.

Межсоединения (проводники) между отдельными вентилями, а также соединения между транзисторами внутри вентилей имеют некоторое ненулевое сопротивление R. Чем длиннее проводник, тем больше будет это сопротивление, а следовательно, и задержка. Между двумя проводниками также может образоваться паразитная емкость (конденсатор), и чем больше площадь перекрытия и меньше расстояние между проводниками, тем больше эта емкость С. Затворы МОП-транзисторов также представляют собой конденсатор, следовательно, и сами вентили обладают некоторой входной емкостью.

pic9_logo

Задержка распространения сигнала определяется временем перезарядки паразитных конденсаторов схеме. При ступенчатом (мгновенно-изменяющимся) сигнале на входе RC-цепочки, на ее выходе напряжение будет нарастать согласно закону 1-exp(-t/RC):

pic10_logo

Расчет и анализ задержек является одним из важнейших этапов проектирования цифровых схем.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *