Ниже показан одноэтапный сдвиговый регистр, принимающий данные, которые не синхронизированы с тактовым входом регистра.
«Входные данных» на терминале типа «D» (D-триггере) не меняет уровни, когда тактовый сигнал меняется с «низкого» на «высокий».
Мы можем захотеть синхронизировать данные с общесистемными часами на печатной плате, чтобы повысить надёжность цифровой логической схемы.
Очевидный момент (по сравнению с рисунком 2 ниже), показанный на рисунке 1 выше, заключается в том, что любые «входные данные», присутствующие на терминале типа «D», передаются с D на выход Q за тактовое время.
Поскольку в нашем примере сдвиговый регистр использует элементы памяти, чувствительные к положительному фронту, выход Q следует за входом D, когда тактовый сигнал переходит от «низкого» уровня к «высокому», как показано стрелками вверх на рисунке 1 выше.
Несомненно, такой логический уровень присутствует во время тактового сигнала, потому что данные стабильны задолго до и после фронта тактового сигнала.
Это редко можно увидеть в многоэтапных сдвиговых регистрах. Но это простой пример для начала. Нас интересует только положительный фронт тактового сигнала, от «низкого» к «высокому».
Отрицательным фронтом можно пренебречь. Очень легко увидеть, что Q следует за D по тактам выше.
Сравните это с рисунком 2 ниже, где «входные данные» меняются с положительным фронтом тактового сигнала.
Поскольку «входные данные» изменяются за время t1 выше, что «видит» D-триггер за время такта?
Если кратенько, то он воспринимает данные, которые присутствовали в точке D до тактового сигнала.
Это то, что передаётся в Q в момент времени t1. Правильная волна на рисунке 2 – это QC. В момент t1 Q обращается в нуль, если он уже не равен нулю.
Регистр D не «видит» единицу до момента t2, когда Q становится «высоким».
Поскольку данные, указанные выше, присутствующие в D, синхронизируются с Q за тактовое время, а Q не может измениться до следующего такта, D-триггер задерживает данные на один тактовый период при условии, что данные уже синхронизированы с таковым входом. Волна QA такая же, как и для «входных данных» с задержкой в один тактовый период.
Далее следует более подробный взгляд на то, что «видит» вход триггера типа D за тактовое время.
См. рисунок 4 ниже. Поскольку «входные данные» меняются во времени (как на рисунке 3 выше), нам нужна дополнительная информация, чтобы определить, что именно «видит» D-триггер.
Если «входные данные» поступают из другого этапа сдвигового регистра, другого типа D-триггера, мы можем сделать некоторые выводы на основе информации из таблицы данных.
Производители цифровой логики предоставляют информацию о своих деталях в виде таблиц, которые ранее были доступны только в сборнике, называемом справочником данных.
Такие книжные справочники всё ещё в ходу; хотя в наше время более лучшим источником является веб-сайт производителя.
Следующие данные были взяты из технического описания 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 примерно по тактовой частоте, если триггеры каскадированы в многоэтапный сдвиговый регистр.
Три триггера типа «D» соединены каскадом от Q к D, а тактовые импульсы соединены параллельно, образуя трёхкаскадный сдвиговый регистр.
JK-регистры формируют каскады Q в J, Q' в K с параллельными тактовыми импульсами, в результате чего получается альтернативная форма сдвигового регистра, описанная выше.
Три пары стрелок показывают, что трёхступенчатый сдвиговый регистр временно хранит 3 бита данных и задерживает их на три такта от ввода до вывода.
В тактовое время 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-битный сдвиговый регистр с последовательным входом/выходом.
Таким образом, они будут принимать VDD, положительный источник питания от 3 до 15 вольт. Вывод VSS заземлён.
Максимальная частота тактов сдвига, которая зависит от VDD, составляет несколько мегагерц.
18-битный CD4006b состоит из двух каскадов по 4 бита и ещё двух каскадов по 5 бит с выходным отводом на 4 бита.
Таким образом, 5-битные ступени можно использовать как 4-битные сдвиговые регистры.
Чтобы получить полный 18-битный сдвиговый регистр, выход одного сдвигового регистра должен быть каскадирован на вход другого и так далее, пока все каскады не создадут один сдвиговый регистр, как показано на рисунке 9 ниже.
18-битный CD4006b состоит из двух каскадов по 4 бита и ещё двух каскадов по 5 бит с выходным отводом на 4 бита.
Ряд контактов не подключены (отмечено как «н/п», т.е. нет подключения). И Q, и Q' доступны с 64-го этапа, на самом деле это Q64 и Q'64.
Существует также Q64, «отстоящий» на пол-этапа, который задерживается на половину тактового цикла. Основной особенностью является селекторный переключатель данных, который находится на входе данных в сдвиговый регистр.
«Управление режимом» выбирает между двумя входами: «Данные 1» или «Данные 2». Если «управление режимом» имеет «высокий» уровень, данные будут выбраны из «Данные 2» для входа в сдвиговый регистр.
В случае, когда «управление режимом» имеет «низкий» логический уровень, выбирается «Данные 1». Примеры этого показаны на двух рисунках ниже.
«Данные 2» на рисунке 11 выше подключены к выходу Q64сдвигового регистра. При «высоком» уровне «управления режимом» выход Q64 направляется обратно на вход данных D-переключателя.
Данные будут циркулировать от вывода к вводу. Они будут повторяться каждые 64 тактовых импульса, как показано на рисунке 11 выше.
Возникает вопрос: как этот шаблон данных вообще попал в сдвиговый регистр?
Выходной сигнал Q64 не рециркулируется, поскольку «нижний» вентиль селектора данных отключён.
Под отключением мы подразумеваем, что «низкий» логический уровень «управления режимом», дважды инвертированный в «низкий» уровень на нижнем вентиле И-НЕ, предотвращает передачу любого сигнала на нижний контакт (Данные 2) на выход вентиля.
Таким образом, он отключён.
Двойной 64-битный сдвиговый регистр CD4517b показан на рисунке 13 выше. Обратите внимание на отводы на 16-й, 32-й и 48-й этапах.
Сие значит, что сдвиговые регистры такой длины можно сконфигурировать из одного из 64-битных сдвиговых регистров.
Само собой, 64-битные сдвиговые регистры могут быть каскадированы для получения 80-битного, 96-битного, 112-битного или 128-битного сдвигового регистра.
Тактовые входы CLA и CLB должны быть параллельны при каскадном включении двух переключателей. WEB и WEA, заземлённых для нормального переключения передач.
Входные данные в сдвиговые регистры A и B – это DA и DB соответственно.
Предположим, что нам требуется 16-битный регистр сдвига.
Можно ли это настроить с помощью CD4517b? Как насчёт 64-сдвигового регистра из той же части?
На рисунке 14 выше мы показываем A для CD4517b, подключённый как 16-битный регистр сдвига для секции B.
Тактовый вход этапа B – это CLB. Здесь данные синхронизируются. А данные, задержанные на 16 тактов, снимаются Q16B. WEB, разрешающая запись, заземлено.
Выше мы также показываем тот же CD4517b, подключённый в качестве 64-битного сдвигового регистра для независимой секции A.
Тактовый вход для секции A – это CLA. Данные поступают в CLA. Данные, задержанные на 64-тактовые импульсы, берутся из Q64A. WEA, разрешение записи для раздела A, заземлено.