──────────────────────────────────────── "Железная" логика. ──────────────────────────────────────── (c) VTS'99 Так, в прошлый раз мы остановились на триггерах. Я немного вернусь назад и пояс- ню схемотехнику RS-, D- и T-триггеров. RS-триггер. _ ┌──┐ ┌──┐ S ───┤ &│ R ────┼ 1│ ┌─┤ о─┬── Q ┌─┤ o─┬─── Q │ └──┘ │ │ └──┘ │ └──/──┘ └──/──┘ ┌──/──┐ ┌──/──┐ │ ┌──┐ │ │ ┌──┐ │ _ └─┤ &│ │ _ └─┤ 1│ │ _ R ───┤ о─┴── Q S ────┤ o─┴─── Q └──┘ └──┘ Принцип работы прост: пока управляющие сигналы неактивны (т.е. 0 для прямых и 1 для инверсных), на них никто не обращает внимания, и получается кольцо из двух ин- верторов, имеющее два устойчивых состоя- ния. Воздействие управляющего сигнала пе- рекидывает первое или второе плечо соот- ветственно, а следом (по кольцу)и противо- положное. Если же триггер находится в не- обходимом состоянии, ничего не меняется. Следует также обратить внимание, что одновременное воздействие обоих управляю- щих сигналов является запрещенным, т.к. состояние триггера после этого неопределе- но (этого недостатка лишен JK-триггер). Тактируемый RS-триггер. ┌──┐ ┌─┬──┐ R ───┤ &│ ┌─┬──┐ ─┤S│ T├── Q ┌─┤ ├──┤S│ T├─ Q │ │ │ C ─┤ ├──┤ │ │ │ ─┤C│ │ └─┤ &│ │ │ │ _ │ │ │ _ S ───┤ ├──┼R│ o─ Q ─┤R│ o── Q └──┘ └─┴──┘ └─┴──┘ В этот триггер можно записать информа- цию только при активном сигнале C, в дан- ном случае - 1. (для инверсного входа C достаточно добавить инвертор). Для тригге- ра с инверсными входами можно использовать в качестве вентилей элементы ИЛИ (тогда вход C - тоже инверсный). (тактируемый) D-триггер. ┌─┬──┐ D ───┬───────┤S│ T├── Q ┌─┬──┐ │ │ │ │ ─┤D│ T├── Q C ───)───────┼C│ │ │ │ │ _ │ ┌──┐ │ │ │ _ ─┤C│ o── Q └─┤1 o──┤R│ o── Q └─┴──┘ └──┘ └─┴──┘ Этот триггер является элементарной ячейкой памяти емкостью 1 бит. Входные данные подаются на вход D, а записываются по сигналу C и хранятся до следующего цик- ла записи. При этом состояние входа D иг- норируется. Счетный T-триггер. ┌─┬──┐ ┌─┬──┐ ┌─┤D│ ├───── Q │ │ T├── Q │ │ │ │ _ ──/T│ │ _ T ──)─/C│ o─┬─── Q │ │ o── Q │ └─┴──┘ │ └─┴──┘ └────────┘ Этот триггер может быть построен на ос- нове D-триггера с динамическим управлени- ем, т.е. срабатывающим по фронту (значок / в обозначении) либо спаду () тактирующего сигнала. Как видно из схемы, с каждым фронтом в него будет записываться противо- положное состояние. Универсальный JK-триггер. ┌─┬──┐ ──┤S│ T│ ├─┤ ├── Q ──┤J│ │ ──┤C│ │ ──┤K│ │ _ ├─┤ O── Q ──┤R│ │ └─┴──┘ На основе JK-триггера можно построить любой из перечисленных. Асинхронные входы R и S могут отсутс- твовать. Вход тактирования C разрешает прохожде- ние сигналов J и K. Вход J аналогичен по назначению S, вход K - R. Однако при од- новременно активных J и K нет неопределен- ности - триггер перебрасывается в противо- положное состояние (аналогично T-тригге- ру). Двухступенчатый триггер. Таковым может быть любой из тактируемых триггеров, рассмотрим двухступенчатый D-триггер. Двухступенчатые триггеры называют также триггерами master-slave, или мастер-помощ- ник. ┌─┬──┐ ┌─┬──┐ D ───┤D│ T├────┤D│ T├── Q │ │ │ │ │ │ _ C ─┬─/C│ │ ┌─/C│ o── Q │ └─┴──┘ │ └─┴──┘ │ ┌──┐ │ └───┤1 o──┘ └──┘ Как видно из рисунка, первый триггер срабатывает по фронту, а второй - по спаду тактирующего импульса. Т.е. информация принимается в триггер-мастер по фронту, а выдается на выход (в триггер-помощник) по спаду импульса C. Этот тип триггеров применяется, напри- мер, в многоразрядных счетчиках и регист- рах сдвига. продолжение следует... В следующий раз я остановлюсь на более сложных элементах и узлах.