Главная страница
Навигация по странице:

  • Входы Выходы Q(t − 1) S R Q(t) Q(t)

  • Входы Выход Данные Запомнить этот бит Q

  • Входы Выходы D Clk Q Q

  • Входы Выходы Выборка A B Q

  • кр гаряев. Чарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе. Книга принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании


    Скачать 6.11 Mb.
    НазваниеКнига принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании
    Анкоркр гаряев
    Дата19.10.2022
    Размер6.11 Mb.
    Формат файлаpdf
    Имя файлаЧарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе.pdf
    ТипКнига
    #743064
    страница11 из 28
    1   ...   7   8   9   10   11   12   13   14   ...   28
    Входы
    Выходы
    S
    R
    Q
    Q
    1 0
    1 0
    0 1
    0 1
    0 0
    Q
    Q
    1 1
    Запрещено

    182
    Код
    Эта схема называется функциональной таблицей, или таблицей логики, или таблицей истинности. В ней показаны значения выходов, которые явля- ются результатом определенных комбинаций входов. Поскольку у RS-тригге- ра есть только два входа, существует всего четыре комбинации входов. Они соответствуют четырем строкам таблицы.
    Обратите внимание на вторую строку снизу, когда значения входов S и R равны 0: выходы обозначены символами Q и Q, следовательно, значения вы- ходов Q и Q остаются такими, какими они были до того, как значения обоих входов S и R стали равны 0. Последняя строка таблицы говорит о том, что си- туация, при которой значения входов S и R равны 1, запрещена. Это не озна- чает, что вас могут за это арестовать, однако если в этой схеме оба входа бу- дут 1, то оба выхода — 0, что нарушает условие, согласно которому выход Q противоположен выходу Q. Так что при создании схемы, в которой использу- ется RS-триггер, избегайте ситуаций, когда входы S и R равны 1.
    От себя добавлю: обычно таблицы истинности триггеров изображают с учетом предыдущего состояния Q(t − 1), соответственно, актуальное состоя- ние на выходе триггера — Q(t). Таким образом, для RS-триггера можно соста- вить следующую таблицу.
    Входы
    Выходы
    Q(t − 1)
    S
    R
    Q(t)
    Q(t)
    0 1
    0 1
    0 1
    1 0
    1 0
    0 0
    1 0
    1 1
    0 1
    0 1
    0 0
    0 0
    1 1
    0 0
    1 0
    0 1
    1
    Запрещено
    1 1
    1
    Запрещено
    RS-триггер часто изображается в виде небольшого прямоугольника с дву- мя входами и двумя выходами, обозначенными, как показано ниже.
    Q
    R
    S
    Q
    RS-триггер, безусловно, интересный пример схемы, которая, по всей ви- димости, «помнит», какой из двух входов последним был под напряжением.

    Глава 14. Обратная связь и триггеры
    183
    Тем не менее намного более полезным является то, что эта схема запоминает, был ли определенный сигнал равен 0 или 1 в конкретный момент времени.
    Давайте подумаем, как должна работать такая схема, прежде чем присту- пить к ее конструированию. Она будет иметь два входа. Назовем один из них
    «Данные». Как и все цифровые сигналы, вход «Данные» может иметь значение
    0 или 1. Второй вход назовем «Запомнить этот бит», что является цифровым эквивалентом призыва «Запомните эту мысль». Обычно значение сигнала «За- помнить этот бит» равно 0, в случае чего сигнал «Данные» не влияет на схему.
    Когда значение сигнала «Запомнить этот бит» равно 1, выход схемы совпада- ет со значением сигнала «Данные». Затем сигнал «Запомнить этот бит» может вернуться к значению 0, и в это время схема запоминает последнее значение сигнала «Данные». Любые дальнейшие изменения в сигнале «Данные» не влия- ют на схему.
    Другими словами, нам нужна схема со следующей функциональной таб- лицей.
    Входы
    Выход
    Данные
    Запомнить этот бит
    Q
    0 1
    0 1
    1 1
    0 0
    Q
    1 0
    Q
    В первых двух случаях, когда сигнал «Запомнить этот бит» равен 1, вы- ход Q имеет то же значение, что и вход «Данные». В остальных двух случаях, когда сигнал «Запомнить этот бит» равен 0, значение выхода Q остается преж- ним. Обратите внимание: в этих двух случаях, когда сигнал «Запомнить этот бит» равен 0, выход Q является тем же самым, независимо от значения входа
    «Данные». Эту функциональную таблицу можно упростить.
    Входы
    Выход
    Данные
    Запомнить этот бит
    Q
    0 1
    0 1
    1 1
    Х
    0
    Q
    X означает «неважно». Значение входа «Данные» неважно, поскольку в случае, когда значение входа «Запомнить этот бит» равно 0, выход Q остается прежним.
    Реализация сигнала «Запомнить этот бит» на основе существующего RS-триг- гера требует добавления на вход двух вентилей И.

    184
    Код
    Q
    R
    S
    Запомнить этот бит
    Q
    Напомним, что выход вентиля И равен 1, только если оба входа равны 1.
    На этой диаграмме выход Q — 0, а выход Q — 1.
    Пока сигнал «Запомнить этот бит» равен 0, сигнал S не влияет на значе- ния выходов.
    Q
    R
    S
    Q
    Запомнить этот бит
    Не влияет и сигнал R.
    Q
    R
    S
    Q
    Запомнить этот бит
    Только в случае, когда сигнал «Запомнить этот бит» равен 1, эта схема бу- дет работать так же, как показанный ранее обычный RS-триггер.
    Q
    R
    S
    Q
    Запомнить этот бит

    Глава 14. Обратная связь и триггеры
    185
    Схема ведет себя как обычный RS-триггер, поскольку теперь выход верхнего вентиля И совпадает с сигналом R, а выход нижнего вентиля И — с сигналом S.
    Однако мы еще не достигли своей цели. Нам нужны только два входа, а не три. Как их уменьшить? Согласно исходной функциональной таблице
    RS-триггера, случай, когда сигналы S и R равны 1, запрещен, поэтому нужно его избежать. Кроме того, не имеет смысла и равенство этих сигналов 0, по- скольку это просто говорит о неизменности выходного сигнала. В случае с этой схемой мы можем добиться того же результата, установив значение сигнала
    «Запомнить этот бит» равным 0.
    Имеет смысл, чтобы при значении сигнала S, равном 1, сигнал R становил- ся равным 0, а при значении сигнала S, равном 0, сигнал R был равен 1. Сиг- нал под названием «Данные» может быть эквивалентен сигналу S, а инверти- рованный сигнал «Данные» — соответствовать сигналу R.
    Q
    Данные
    Запомнить этот бит
    Q
    В данном случае оба входа равны 0, и выход Q равен 0 (выход Q — 1).
    Пока сигнал «Запомнить этот бит» равен 0, вход «Данные» не влияет на схему.
    Q
    Q
    Данные
    Запомнить этот бит
    Когда сигнал «Запомнить этот бит» — 1, выход схемы равен значению входа «Данные».

    186
    Код
    Q
    Q
    Данные
    Запомнить этот бит
    Сейчас значение выхода Q равно значению входа «Данные», а значение выхода Q противоположно ему. Теперь сигнал «Запомнить этот бит» может вернуться к значению 0.
    Q
    Q
    Данные
    Запомнить этот бит
    Схема запомнила значение сигнала «Данные» в момент, когда значение сигнала «Запомнить этот бит» последний раз было равно 1, независимо от из- менения сигнала «Данные». Например, сигнал «Данные» мог бы вернуться к значению 0, не повлияв на выход.
    Q
    Q
    Данные
    Запомнить этот бит
    Такая схема называется D-триггером со срабатыванием по уровню. Бук- ва D означает «данные» (Data). Срабатывание по уровню указывает на то, что триггер сохраняет значение входа «Данные» в тот момент, когда сигнал на вхо- де «Запомнить этот бит» достигает определенного уровня, в данном случае 1.
    (Далее мы рассмотрим альтернативу триггерам со срабатыванием по уровню.)
    Обычно, когда такая схема фигурирует в специальной литературе, для входа используется обозначение не «Запомнить этот бит», а «Синхронизация»

    Глава 14. Обратная связь и триггеры
    187
    (Clock). Иногда этот сигнал может обладать свойствами метронома, который с определенной регулярностью колеблется между значениями 0 и 1. Однако в нашем случае вход «Синхронизация» просто определяет момент, когда не- обходимо сохранить входной сигнал «Данные».
    Q
    Данные
    Синхронизация
    Q
    Как правило, в функциональной таблице вход «Данные» (Data) обознача- ется буквой D, а вход «Синхронизация» (Clock) — буквами Clk.
    Входы
    Выходы
    D
    Clk
    Q
    Q
    0 1
    0 1
    1 1
    1 0
    X
    0
    Q
    Q
    Эта схема также называется защелкой D-типа со срабатыванием по уров- ню; термин означает, что схема «запирает» один бит данных и удерживает его для дальнейшего использования. Эту схему также можно рассматривать в ка- честве ячейки памяти емкостью один бит. В главе 16 я продемонстрирую спо- соб соединения большого количества таких триггеров для обеспечения памя- ти большего объема.
    Часто в защелках полезно сохранять многобитное значение. Предполо- жим, вы хотите использовать сумматор из главы 12 для сложения трех 8-бит- ных чисел. Как обычно, вы вводите первое число с помощью первого набора переключателей, а второе — с помощью второго набора, затем потребуется записать результат на бумаге. После этого нужно будет ввести этот результат с помощью одного набора переключателей, а с помощью второго — ввести третье число. На самом деле вводить промежуточный результат нет необходи- мости. Вы можете использовать его, взяв непосредственно из первого расчета.
    Давайте решим эту задачу, применяя защелки. Объединим восемь заще- лок, каждая из которых использует два вентиля ИЛИ-НЕ, два вентиля И и один инвертор, как было показано ранее. Все входы «Синхронизация» соединены между собой. Вот что у нас получилось.

    188
    Код
    Clk
    8-битная защелка
    D
    7
    D
    6
    D
    5
    D
    4
    D
    3
    D
    2
    D
    1
    D
    0
    Q
    7
    Q
    6
    Q
    5
    Q
    4
    Q
    3
    Q
    2
    Q
    1
    Q
    0
    Эта защелка способна одновременно хранить восемь бит информации.
    Восемь входов сверху обозначены от D
    0
    до D
    7
    , а восемь выходов внизу — от Q
    0
    до Q
    7
    . Слева расположен вход «Синхронизация» (Clk). Сигнал Clk обычно равен 0. Когда сигнал Clk — 1, то 8-битное значение на входах D передается на выходы Q. Когда сигнал Clk возвращается к 0, тогда 8-битное значение со- храняется там, пока сигнал Clk снова не станет равен 1.
    Восьмибитную защелку также можно изобразить с восемью входами «Дан- ные» и восемью выходами Q, сгруппированными вместе.
    D
    7 ...
    D
    0 8
    Clk
    8-битная защелка
    Q
    7 ...
    Q
    0 8
    Вот схема 8-битного сумматора.
    S
    7 ...
    S
    0 8
    A
    7 ...
    A
    0 8
    B
    7 ...
    B
    0 8
    CO
    CI
    8-битная защелка
    Обычно (если проигнорировать то, что мы делали с вычитанием в пре- дыдущей главе), восемь входов A и восемь входов B подключены к пере- ключателям, вход для переноса CI — к земле, а восемь выходов S и CO — к лампочкам.
    В этой пересмотренной версии восемь выходов S 8-разрядного сумматора могут быть подключены как к лампочкам, так и ко входам D 8-битной защелки.

    Глава 14. Обратная связь и триггеры
    189
    Для сохранения результата работы сумматора можно подключить переключа- тель «Сохранить» ко входу Clk защелки.
    8 8
    8
    V
    V
    8
    CO
    CI
    8-битный сумматор
    S
    8
    Селектор «2 на 1»
    8-битная защелка
    Переключатели
    A
    8
    Q
    Переключатели
    Лампочка
    Лампочки
    От защелки
    Сохранить
    Clk
    D
    B
    B
    Выход
    Sel
    A
    Селектор двух линий на одну позволяет выбрать с помощью переклю- чателя, откуда должны поступать данные на входы B: из второго ряда пере- ключателей или из выходов Q защелки. Замыкание переключателя означает выбор выходов 8-битной защелки. В селекторе «2 на 1» используется восемь следующих схем.
    Выход
    A
    Выборка
    B
    Если вход «Выборка» (или Sel — сокращение от английского Select) ра- вен 1, то значение сигнала на выходе вентиля ИЛИ равно значению сигнала на входе B. Это связано с тем, что выход верхнего вентиля И равен входу B, а выход нижнего вентиля И — 0. Если вход «Выборка» равен 0, выход будет совпадать со входом A. Эти правила представлены в следующей функцио- нальной таблице.

    190
    Код
    Входы
    Выходы
    Выборка
    A
    B
    Q
    0 0
    Х
    0 0
    1
    Х
    1 1
    Х
    0 0
    1
    Х
    1 1
    Селектор, являющийся частью модифицированного сумматора, включает восемь таких однобитных селекторов. Все входы «Выборка» соединены меж- ду собой.
    Этот модифицированный сумматор не вполне корректно обрабатыва- ет сигнал CO (выход для переноса). Если при сложении двух чисел этот сиг- нал CO становится равным 1, то этот сигнал игнорируется при добавлении к сумме следующего числа. Одно из возможных решений заключается в том, чтобы создать сумматор, защелку и селектор, разрядность которых составля- ет 16 бит или, по крайней мере, превышает разрядность наибольшей суммы, которая может получиться. Мы не будем приступать к решению этой задачи вплоть до главы 17. Более интересный подход к созданию сумматора позволяет обойтись без ряда из восьми переключателей. Однако сначала нужно немно- го изменить триггер типа D, добавив вентиль ИЛИ и входной сигнал «Очист- ка» (Clear, или Clr). Вход Clr обычно равен 0. Когда он равен 1, выход Q — 0.
    Q
    Данные
    Clk
    Q
    Clr
    Сигнал Q становится равным 0 вне зависимости от других входных сиг- налов, что приводит к стиранию информации, сохраненной в триггере.
    Вы можете спросить: зачем это нужно? Почему мы не можем очистить триггер, подав на вход «Данные» 0, а на вход Clk — 1? Может быть, мы не мо- жем точно контролировать то, что подается на вход «Данные»? Возможно, у нас есть набор из восьми таких защелок, подключенных к выходам 8-битного сум- матора, как показано ниже.

    Глава 14. Обратная связь и триггеры
    191 8
    V
    8
    V
    Clr
    Clk
    8-битная защелка
    8
    Лампочки
    Сложить
    CI
    8-битный сумматор
    Переключатели
    8
    Очистка
    D
    Q
    S
    A
    B
    Обратите внимание: переключатель с меткой «Сложить» теперь управля- ет входом защелки Clk.
    Может показаться, что этот сумматор использовать проще, чем предыду- щий, особенно если требуется сложить множество чисел. Сначала вы нажи- маете кнопку «Очистка». В результате выходы защелок становятся равными 0, все лампочки отключаются, а на второй набор входов 8-битного сумматора по- даются значения 0. Вы вводите первое число и нажимаете кнопку «Сложить».
    Это число отображается в виде комбинации горящих лампочек. Затем вводи- те второе число и снова нажимаете кнопку «Сложить». Число, введенное с по- мощью переключателей, добавляется к предыдущей сумме, и результат снова отображается с помощью лампочек. Вы можете продолжать вводить новые числа и нажимать кнопку «Сложить». Я уже говорил, что сконструированный нами D-триггер срабатывает по уровню, то есть уровень сигнала на входе Clk должен измениться с 0 на 1, чтобы в защелке сохранилось значение на входе
    «Данные». Пока сигнал на входе Clk равен 1, значение входа «Данные» может меняться; любые изменения входа «Данные», пока сигнал Clk равен 1, будут отражаться в значениях выходов Q и Q.
    Для решения некоторых задач бывает достаточно входа Clk со срабаты- ванием по уровню. Для решения других более предпочтительным является вход Clk со срабатыванием по фронту. В этом случае выходы изменяются только во время перехода значения сигнала Clk от 0 к 1. Как и при исполь- зовании триггера со срабатыванием по уровню, когда вход Clk равен 0, лю- бые изменения входного сигнала «Данные» не влияют на выходы. Отличие

    192
    Код триггера со срабатыванием по фронту заключаются в том, что изменения входного сигнала «Данные» не воздействуют на выходы даже тогда, когда вход Clk равен 1. Входной сигнал «Данные» влияет на выходы только в тот момент, когда значение входного сигнала Clk меняется с 0 на 1. D-триггер со срабатыванием по фронту состоит из двух блоков RS-триггера, соединен- ных следующим образом.
    Q
    Q
    Данные
    Clk
    В данном случае идея в том, что вход Clk управляет как первым, так и вторым блоком. Однако в первом блоке сигнал Clk инвертируется, или первый блок работает так же, как D-триггер, за исключением того, что вход- ной сигнал «Данные» сохраняется, когда сигнал Clk равен 0. Выходы второго блока — входы первого, и их сигналы сохраняются, когда вход Clk равен 1.
    В итоге входной сигнал «Данные» сохраняется в момент изменения сигнала
    Clk с 0 на 1.
    Давайте рассмотрим эту схему подробно. На следующем изображении показан триггер в состоянии покоя, когда входы «Данные» и Clk, а также вы- ход Q равны 0.
    Q
    Q
    Данные
    Clk

    Глава 14. Обратная связь и триггеры
    193
    Теперь измените значение входного сигнала «Данные» на 1.
    Q
    Q
    Данные
    Clk
    Это изменит состояние первого триггера, поскольку инвертированный входной сигнал Clk равен 1. Однако второй блок остается неизменным, так как неинвертированный входной сигнал Clk равен 0. Теперь измените вход- ной сигнал Clk на 1.
    Q
    Q
    Данные
    Clk
    Это приведет к изменению второго блока, при этом значение выхода Q поменяется на 1. Разница заключается в том, что входной сигнал «Данные» те- перь может меняться (например, обратно на 0), не влияя на значение выхода Q.
    Q
    Q
    Данные
    Clk

    194
    Код
    Выходы Q и Q могут меняться только в тот момент, когда входной сигнал
    Clk изменяется с 0 на 1.
    В функциональную таблицу D-триггера со срабатыванием по фронту тре- буется добавить новый символ — стрелку вверх (↑), которая обозначает изме- нение значения сигнала с 0 на 1.
    Входы
    Выходы
    D
    Clk
    Q
    Q
    0

    0 1
    1

    1 0
    X
    0
    Q
    Q
    Стрелка указывает на то, что значение выходного сигнала Q становится равным входному сигналу «Данные» в момент изменения значения сигнала Clk с 0 на 1. Этот процесс называется положительным переходом сигнала Clk (от-
    рицательный переход с 1 к 0). Схема триггера выглядит следующим образом.
    Q
    D
    Clk
    Q
    Маленькая угловая скобка указывает на то, что триггер срабатывает по фронту.
    Теперь хочу показать вам схему, использующую D-триггер, срабатывающий по фронту, которую нельзя продублировать с помощью триггера, срабатываю- щего по уровню. Вспомните осциллятор, который мы создали в начале этой главы. Значение выходного сигнала этого осциллятора чередуется между 0 и 1.
    Выход
    Давайте подключим выход осциллятора ко входу Clk D-триггера, сраба- тывающего по фронту, а выход Q — ко входу D.
    Q
    D
    Clk
    Q
    Выход триггера одновременно является его же входом. Это обратная связь с обратной связью! На практике это может привести к проблеме. Осциллятор

    Глава 14. Обратная связь и триггеры
    195
    сконструирован из реле, которое вибрирует с максимально возможной скорос- тью. Выход осциллятора подключен к реле, из которых сконструирован триг- гер. Эти другие реле могут не поспевать за скоростью осциллятора. Чтобы из- бежать этого, предположим, что реле, используемое в осцилляторе, работает медленнее, чем реле, применяемые в других местах этой схемы.
    Чтобы понять, что происходит в этой схеме, давайте посмотрим на функ- циональную таблицу, иллюстрирующую различные изменения. Допустим, что вход Clk и выход Q равны 0. Значит, выход Q, подключенный к входу D, равен 1.
    1   ...   7   8   9   10   11   12   13   14   ...   28


    написать администратору сайта