Электроника:Цифровая электроника/Сдвиговые регистры/Сдвиговые регистры: последовательный вход, последовательный выход (SISO)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak)
Проверка/Оформление/Редактирование: Мякишев Е.А.


Сдвиговые регистры: последовательный вход, последовательный выход (SISO)[1]

Сдвиговые регистры с последовательным вводом и выводом задерживают данные на один такт для каждого этапа.

Они хранят бит данных в каждом регистре. Сдвиговый регистр с последовательными входом и выходом обычно имеют длину от одного до 64 бит (но можно и больше), если регистры или пакеты каскадируются.

Ниже показан одноэтапный сдвиговый регистр, принимающий данные, которые не синхронизированы с тактовым входом регистра.

«Входные данных» на терминале типа «D» (D-триггере) не меняет уровни, когда тактовый сигнал меняется с «низкого» на «высокий».

Мы можем захотеть синхронизировать данные с общесистемными часами на печатной плате, чтобы повысить надёжность цифровой логической схемы.

Рис. 1. «Входные данные» на терминале типа «D» (D-триггере) не изменяет уровни.
Рис. 1. «Входные данные» на терминале типа «D» (D-триггере) не изменяет уровни.

Очевидный момент (по сравнению с рисунком 2 ниже), показанный на рисунке 1 выше, заключается в том, что любые «входные данные», присутствующие на терминале типа «D», передаются с D на выход Q за тактовое время.

Поскольку в нашем примере сдвиговый регистр использует элементы памяти, чувствительные к положительному фронту, выход Q следует за входом D, когда тактовый сигнал переходит от «низкого» уровня к «высокому», как показано стрелками вверх на рисунке 1 выше.

Несомненно, такой логический уровень присутствует во время тактового сигнала, потому что данные стабильны задолго до и после фронта тактового сигнала.

Это редко можно увидеть в многоэтапных сдвиговых регистрах. Но это простой пример для начала. Нас интересует только положительный фронт тактового сигнала, от «низкого» к «высокому».

Отрицательным фронтом можно пренебречь. Очень легко увидеть, что Q следует за D по тактам выше.

Сравните это с рисунком 2 ниже, где «входные данные» меняются с положительным фронтом тактового сигнала.

Рис. 2. Кажется, что «входные данные» изменяются с положительным фронтом тактового сигнала.
Рис. 2. Кажется, что «входные данные» изменяются с положительным фронтом тактового сигнала.

Поскольку «входные данные» изменяются за время t1 выше, что «видит» D-триггер за время такта?

Если кратенько, то он воспринимает данные, которые присутствовали в точке D до тактового сигнала.

Это то, что передаётся в Q в момент времени t1. Правильная волна на рисунке 2 – это QC. В момент t1 Q обращается в нуль, если он уже не равен нулю.

Регистр D не «видит» единицу до момента t2, когда Q становится «высоким».

Рис. 3. Регистр D не «видит» единицу до момента t2, когда Q становится «высоким».
Рис. 3. Регистр D не «видит» единицу до момента t2, когда Q становится «высоким».

Поскольку данные, указанные выше, присутствующие в D, синхронизируются с Q за тактовое время, а Q не может измениться до следующего такта, D-триггер задерживает данные на один тактовый период при условии, что данные уже синхронизированы с таковым входом. Волна QA такая же, как и для «входных данных» с задержкой в один тактовый период.

Далее следует более подробный взгляд на то, что «видит» вход триггера типа D за тактовое время.

См. рисунок 4 ниже. Поскольку «входные данные» меняются во времени (как на рисунке 3 выше), нам нужна дополнительная информация, чтобы определить, что именно «видит» D-триггер.

Если «входные данные» поступают из другого этапа сдвигового регистра, другого типа D-триггера, мы можем сделать некоторые выводы на основе информации из таблицы данных.

Производители цифровой логики предоставляют информацию о своих деталях в виде таблиц, которые ранее были доступны только в сборнике, называемом справочником данных.

Такие книжные справочники всё ещё в ходу; хотя в наше время более лучшим источником является веб-сайт производителя.

Рис. 4. В наши дни информацию о деталях лучше всего брать с веб-сайта производителя.
Рис. 4. В наши дни информацию о деталях лучше всего брать с веб-сайта производителя.

Следующие данные были взяты из технического описания CD4006b для работы при напряжении 5 В постоянного тока и служат в качестве примера для иллюстрации синхронизации.

  • tS = 100 нс
  • tH = 60 нс
  • tP =200-400 нс тип./макс.

tS — время установки, данные о времени должны быть представлены в соответствии с часовым поясом. В этом случае данные должны быть представлены в D за 100 нс до тактового сигнала.

Кроме того, данные должны храниться в течение времени удержания tH = 60 нс после тактового импульса. Эти два условия должны быть выполнены для надёжной синхронизации данных от D до Q триггера.

С соблюдением времени установки 60 нс проблем не возникает, так как данные в D были там в течение всего предыдущего тактового периода, раз уж они поступают из другого этапа сдвигового регистра.

Например, при тактовой частоте 1 МГц тактовый период составляет 1000 мкс, это достаточно много времени.

Фактически данные будут присутствовать за 1000 мкс до тактового сигнала, что намного больше минимального требуемого tS в 60 нс.

Время удержания tH = 60 нс соблюдается, поскольку D, подключённый к Q другого каскада, не может изменяться быстрее, чем задержка распространения предыдущего каскада tP = 200 нс.

Время удержания сохраняется до тех пор, пока задержка распространения предыдущего D-триггера больше, чем это самое время удержания.

Данные в D, управляемые другим каскадом Q, не будут изменяться быстрее, чем за 200 нс для CD4006b.

Подводя итог, можно сказать, что выход Q следует за входом D примерно по тактовой частоте, если триггеры каскадированы в многоэтапный сдвиговый регистр.

Рис. 5. Выход Q следует за входом D почти по тактам, если триггеры каскадированы в многоэтапный сдвиговый регистр.
Рис. 5. Выход Q следует за входом D почти по тактам, если триггеры каскадированы в многоэтапный сдвиговый регистр.

Три триггера типа «D» соединены каскадом от Q к D, а тактовые импульсы соединены параллельно, образуя трёхкаскадный сдвиговый регистр.

Рис. 6. Три D-триггера типа «D» соединённые в трёхкаскадный сдвиговый регистр.
Рис. 6. Три D-триггера типа «D» соединённые в трёхкаскадный сдвиговый регистр.

JK-регистры формируют каскады Q в J, Q' в K с параллельными тактовыми импульсами, в результате чего получается альтернативная форма сдвигового регистра, описанная выше.

Сдвиговый регистр с последовательными входом и выходом имеет тактовый вход, ввод данных и вывод данных из последнего этапа.

Как правило, другие выходы каскада недоступны. В противном случае это был бы сдвиговый регистр с последовательным входом и параллельным выходом.

Приведённые на рисунке 7 ниже волны сигналов относятся к любой из двух предыдущих версий сдвигового регистра с последовательными входом и выходом.

Три пары стрелок показывают, что трёхступенчатый сдвиговый регистр временно хранит 3 бита данных и задерживает их на три такта от ввода до вывода.

Рис. 7. Одна из двух предыдущих версий сдвигового регистра с последовательным входом и выходом.
Рис. 7. Одна из двух предыдущих версий сдвигового регистра с последовательным входом и выходом.

В тактовое время t1 нули на «входных данных» синхронизируются от D до Q всех трёх этапов. В частности, D этапа A «видит» логический 0, который синхронизируется с QA, где он остаётся до момента времени t2.

В тактовое время t2 единицы на «входных данных» синхронизируется от D до QA. На стадиях B и C нули, поступающие с предыдущих стадий, синхронизируется с QB и QC.

В тактовое время t3 нули на «входных данных» синхронизируются от D до QA. QA становится «низким» и остаётся таковым для оставшихся тактов из-за того, что «входные данные» равны 0. QB становится «высоким» в момент t3 из-за 1 на предыдущем этапе. QC всё ещё остаётся «низким» после t3 из-за «низкого» уровня на предыдущем этапе.

QC, наконец, становится «высоким» на такте t4 из-за «высокого» уровня, подаваемого на D с предыдущего этапа QB. Всё более ранние этапы имеют смещенные в них 0. И после следующего тактового импульса в момент t5 все логические единицы будут смещены и заменены на нули.

Устройства с последовательным вводом/выводом

Мы более подробно рассмотрим следующие компоненты, доступные в виде интегральных схем, любезно предоставленные компанией Texas Instruments.

Для получения полных спецификаций на сайте компании нужно открыть страницы таких устройств.

  • CD4006b 18-битный сдвиговый регистр с последовательным входом/выходом.
  • CD4031b 64-битный сдвиговый регистр с последовательным входом/выходом.
  • CD4517b двойной 64-битный сдвиговый регистр с последовательным входом/выходом.

Следующие регистры сдвига с последовательным входом/выходом относятся к семейству КМОП (комплементарных металлооксидных полупроводников) серии 4000.

Таким образом, они будут принимать VDD, положительный источник питания от 3 до 15 вольт. Вывод VSS заземлён.

Максимальная частота тактов сдвига, которая зависит от VDD, составляет несколько мегагерц.

Рис. 8. Максимальная частота часов сдвига, которая зависит от VDD, составляет несколько мегагерц.
Рис. 8. Максимальная частота часов сдвига, которая зависит от VDD, составляет несколько мегагерц.

18-битный CD4006b состоит из двух каскадов по 4 бита и ещё двух каскадов по 5 бит с выходным отводом на 4 бита.

Таким образом, 5-битные ступени можно использовать как 4-битные сдвиговые регистры.

Чтобы получить полный 18-битный сдвиговый регистр, выход одного сдвигового регистра должен быть каскадирован на вход другого и так далее, пока все каскады не создадут один сдвиговый регистр, как показано на рисунке 9 ниже.

18-битный CD4006b состоит из двух каскадов по 4 бита и ещё двух каскадов по 5 бит с выходным отводом на 4 бита.

Рис. 9. 18-битный CD4006b.
Рис. 9. 18-битный CD4006b.

64-битный сдвиговый регистр последовательного ввода/вывода CD4031 показан ниже.

Ряд контактов не подключены (отмечено как «н/п», т.е. нет подключения). И Q, и Q' доступны с 64-го этапа, на самом деле это Q64 и Q'64.

Существует также Q64, «отстоящий» на пол-этапа, который задерживается на половину тактового цикла. Основной особенностью является селекторный переключатель данных, который находится на входе данных в сдвиговый регистр.

Рис. 10. Основной особенностью CD4031 является селекторный переключатель данных, который находится на входе данных в сдвиговый регистр.
Рис. 10. Основной особенностью CD4031 является селекторный переключатель данных, который находится на входе данных в сдвиговый регистр.

«Управление режимом» выбирает между двумя входами: «Данные 1» или «Данные 2». Если «управление режимом» имеет «высокий» уровень, данные будут выбраны из «Данные 2» для входа в сдвиговый регистр.

В случае, когда «управление режимом» имеет «низкий» логический уровень, выбирается «Данные 1». Примеры этого показаны на двух рисунках ниже.

Рис. 11. «Управление режимом» выбирает между двумя входами: «Данные 1» и «Данные 2».
Рис. 11. «Управление режимом» выбирает между двумя входами: «Данные 1» и «Данные 2».

«Данные 2» на рисунке 11 выше подключены к выходу Q64 сдвигового регистра. При «высоком» уровне «управления режимом» выход Q64 направляется обратно на вход данных D-переключателя.

Данные будут циркулировать от вывода к вводу. Они будут повторяться каждые 64 тактовых импульса, как показано на рисунке 11 выше.

Возникает вопрос: как этот шаблон данных вообще попал в сдвиговый регистр?

Рис. 12. При «низком» уровне «управления режимом» CD4031 «Данные 1» выбираются для ввода в переключатель.
Рис. 12. При «низком» уровне «управления режимом» CD4031 «Данные 1» выбираются для ввода в переключатель.

Выходной сигнал Q64 не рециркулируется, поскольку «нижний» вентиль селектора данных отключён.

Под отключением мы подразумеваем, что «низкий» логический уровень «управления режимом», дважды инвертированный в «низкий» уровень на нижнем вентиле И-НЕ, предотвращает передачу любого сигнала на нижний контакт (Данные 2) на выход вентиля.

Таким образом, он отключён.

Рис. 13. При низком уровне «управления режимом» CD4517b «Данные 1» выбираются для ввода в переключатель.
Рис. 13. При низком уровне «управления режимом» CD4517b «Данные 1» выбираются для ввода в переключатель.

Двойной 64-битный сдвиговый регистр CD4517b показан на рисунке 13 выше. Обратите внимание на отводы на 16-й, 32-й и 48-й этапах.

Сие значит, что сдвиговые регистры такой длины можно сконфигурировать из одного из 64-битных сдвиговых регистров.

Само собой, 64-битные сдвиговые регистры могут быть каскадированы для получения 80-битного, 96-битного, 112-битного или 128-битного сдвигового регистра.

Тактовые входы CLA и CLB должны быть параллельны при каскадном включении двух переключателей. WEB и WEA, заземлённых для нормального переключения передач.

Входные данные в сдвиговые регистры A и B – это DA и DB соответственно.

Предположим, что нам требуется 16-битный регистр сдвига.

Можно ли это настроить с помощью CD4517b? Как насчёт 64-сдвигового регистра из той же части?

Рис. 14. CD4517b подключается и как 16- так и 64-битный сдвиговый регистр.
Рис. 14. CD4517b подключается и как 16- так и 64-битный сдвиговый регистр.

На рисунке 14 выше мы показываем A для CD4517b, подключённый как 16-битный регистр сдвига для секции B.

Тактовый вход этапа B – это CLB. Здесь данные синхронизируются. А данные, задержанные на 16 тактов, снимаются Q16B. WEB, разрешающая запись, заземлено.

Выше мы также показываем тот же CD4517b, подключённый в качестве 64-битного сдвигового регистра для независимой секции A.

Тактовый вход для секции A – это CLA. Данные поступают в CLA. Данные, задержанные на 64-тактовые импульсы, берутся из Q64A. WEA, разрешение записи для раздела A, заземлено.

См.также

Внешние ссылки