и провод четверок с входом Е3. Что произойдет теперь, если «параллельное» число подать в виде импульсов или отсутствия импульсов на различные входы нашего сдвигающего регистра?
Н. — Все это для меня настолько туманно, что я могу сказать тебе лишь, что триггеры, получившие импульс, переключатся с 0 на 1, а больше мне сказать нечего.
Л. — Да большего, Незнайкин, я и не спрашиваю. Как ты видишь, триггеры, соответствующие разрядам числа, где стоит единица, опрокидываются. Выходные напряжения этих триггеров служат своего рода памятью, в которой параллельным кодом записано наше число.
Н. — Для запоминания одного числа это, на мои взгляд, слишком сложно. Твое «параллельное» число поступает в виде комбинации импульсов и отсутствия импульсов. Если бы оно поступало в виде постоянных напряжений и отсутствия напряжений, вся твоя схема оказалась бы ненужной?
Л. — Я полностью с тобой согласен. Но необходимо сказать, что схема обладает еще такими возможностями, о которых ты и не подозреваешь. Представь себе, что теперь я подаю на провод Z отрицательный импульс сброса на нуль. Что произойдет?
Н. — О, для того чтобы это узнать, совсем не нужно быть волшебником. Все триггеры вернутся на нуль, и содержимое твоей памяти окажется стертым.
Л. — Действительно, все так бы и случилось, не будь в нашем устройстве элементов задержки. При подаче импульса сброса на нуль все стоявшие в положении 1 (единицы) триггеры возвращаются на нуль. Но в момент опрокидывания они дадут импульс на включенные после них элементы задержки. Эти элементы получат импульс и через некоторое время отправят его на следующие триггеры.
Н. — Но раз твои триггеры возвращены на нуль…
Л. — Я возвратил их на нуль подачей короткого импульса на вход Z. Но к тому моменту, когда получившие импульс элементы задержки передают его на следующие триггеры, поданный на вход Z импульс уже полностью закончился. Поэтому все получающие задержанный импульс триггеры независимо от их предыдущего состояния переключаются в положение 1.
Н. — Охотно соглашусь, что все именно так и произойдет. Но чего ты добился таким любопытным маневром?
Л. — Очень просто, показания каждого триггера до возврата на нуль теперь переместились на соседний с ним триггер (в направлении справа налево). Если, например, я послал импульс на Е1 и Е2, но не дал его на Е3, то первоначально я получу выходное напряжение на S1и S2, но его не будет на S3. Пошлем теперь импульс сброса на нуль. Опрокинувшись в положение нуль, триггеры В1 и В2 возбудят элементы задержки D1 и D2. Триггер же В3 все время находился в положении нуль и на него сигнал сброса на нуль не окажет никакого воздействия. Следовательно, он не возбудит элемента задержки D3. Немного позднее, когда элементы задержки D1 и D2 выдадут свои импульсы, возвращенный на нуль триггер В2 опрокинется в положение 1 и оставшийся все время в положении нуль триггер В3 также опрокинется в положение 1. Следовательно, теперь мы получим напряжение на входах S3 и S2, а выход S1 останется без напряжения. Если раньше наш регистр показывал число 011, то теперь он показывает 110. Мы переместили его показания на один знак влево, а на освободившееся справа место вписали нуль.
Н. — Если подобную операцию проделать с десятичным числом, т. е. сместить все цифры на один знак влево и справа приписать нуль, то исходное число увеличится в 10 раз. Но сейчас мы имеем дело с двоичным числом, и я не представляю, какой результат дает эта операция.
Л. — Но это очень просто — число умножается на 2. В этом заключается первая возможность нашей системы. Каждый посылаемый на провода Z импульс удваивает первоначально записанное число. Но наш сдвигающий регистр обладает еще более интересными возможностями. Посмотри, какие импульсы выдаст триггер В3после трех последовательных сбросов на нуль с помощью подачи импульсов на вход Z.
Н. — Чтобы мне было легче ориентироваться, я попробую разобраться на уже рассматривавшемся нами случае с первоначально записанным числом 011. Первый поданный на вход Z сигнал изменяет нашу запись на 110, но, как я полагаю, при этом мы должны учитывать и то обстоятельство, что триггер В3 не даст импульса, ибо он переключается из положения 0 в положение 1.
Л. — В самом деле он дает только положительный импульс, который мы задерживаем с помощью диода. Следовательно, на выходе триггера В3 ничего нет. А что произойдет при следующем сбросе на нуль?
Н. — О, теперь это ужасно сложно! Как я вижу, триггер В2, находящийся в положении 1, под воздействием импульса Z опрокинется в положение нуль. По-моему, он должен дать на выход импульс, потому что нас интересуют только импульсы, соответствующие переходу на нуль. Импульс с триггера В2 поступает на элемент задержки D2, откуда он через некоторое время поступает на триггер В3 и переключает его на 1. Но я не очень хорошо представляю, что в итоге получилось.
Л. — В итоге мы получили импульс с триггера В3 и записанное на регистре число превратилось в 100. При третьем переключении регистра на нуль мы вновь получим импульс с триггера В3, потому что он переходит на нуль из положения 1. Теперь уже ни один триггер не может переключиться в положение 1, так как запись постепенно перемешалась и в результате полностью вышла за пределы регистра.
Н. — Но это более чем странно! Трехкратным переключением на нуль ты выталкивал цифру за цифрой записанное в регистре число. Только вытолкнул его не в том направлении, которое нам нужно; сначала мы получили отсутствие импульсов (цифра четверок), затем получили один импульс (цифра двоек) и, наконец, еще один импульс (цифра единиц).
Л. — Совершенно верно, мы цифру за цифрой вытолкнули наше число с того места, где оно было записано. Иначе говоря, на выходе S3 мы получили наше число в последовательной форме. Ты правильно заметил, что выходящее из регистра число заканчивается единицами. При желании получить его единицами вперед, следует записать число на трех триггерах в обратном порядке: единицы подать на вход Е3, двойки — на вход Е2 и четверки — на вход Е1.
Н. — Таким образом, мы можем сказать, что твой сдвигающий регистр способен преобразовывать параллельное представление числа в последовательное.
Л. — О, ты знаешь, транзисторы этой схемы способны (да позволят мне так сказать) не только на один фокус. Схема может выполнить и обратное преобразование. Представь себе, что мы подаем на вход А последовательное число и после передачи очередной цифры посылаем импульс сброса на нуль. Первая цифра записывается триггером B1, а затем импульс сброса на нуль продвигает ее на триггер В2. В этот момент следующая цифра записывается предварительно выставленным на нуль триггером B1.
Второй поступающий на вход Z импульс сброса на нуль продвигает первую цифру с триггера В2 на триггер В3 и вторую цифру с В1 на В2. В это время триггер B1 выставлен на нуль и готов получить третью цифру передаваемого на вход А числа в последовательной форме.
Н. — Действительно, очень умная схема, на этот раз она преобразовала последовательное представление числа в параллельное.
Л. — Но этим мы еще не исчерпали всех возможностей сдвигающего регистра. Представь себе, что на входы E1,Е2 и Е3 нашей схемы мы подали параллельное число. А через некоторое время подаем еще одно такое же число на эти же входы: единицы на E1, двойки на Е2 и четверки на Е3. Что мы получим в результате?
Н. — Ужасную смесь!
Л. — Совсем нет. Рассмотрим, что произойдет на одном из триггеров. Предположим, что после записи первого числа он стоит на нуле. Если в соответствующем этому триггеру месте второго числа стоит нуль, то триггер не получит никакого импульса и останется на нуле. Но при записи второго числа наш триггер может получить импульс (на соответствующем ему месте находится единица) и тогда он переключится на 1. Возможно также, что при записи первого числа триггер получит импульс, а при записи второго импульса не получит. В этом случае, как и в предыдущем после передачи второго числа, триггер будет стоять на 1. Как ты видишь, во всех этих трех случаях на каждом триггере мы получим цифру, равную сумме соответствующих цифр из двух чисел.
Н. — Очень занятно, но признайся, что все рассказанное тобой справедливо лишь для некоторых случаев.
Л. — Сейчас я докажу тебе, что справедливо для всех случаев. Предположим, например, что триггер В1при записи первого числа получил один импульс (что означает, что в первом числе на месте единиц стоит цифра 1). Теперь предположим, что при записи второго числа на вход