Регистры – это последовательностное логическое устройство, используемое для хранения n-разрядных двоичных чисел и выполнения преобразований над ними. Регистр представляет собой упорядоченную последовательность триггеров, число которых соответствует числу разрядов в слове. С каждым регистром связано комбинационное устройство с помощью которого обеспечивается выполнение следующих операций над словами: прием слова в регистр; передача слова из регистра; поразрядовые логические операции; сдвиг слова влево или вправо на заданное число разрядов; преобразование последовательного кода слова в параллельный и обратно; установка регистра в начальное состояние (сброс).
Регистры классифицируются по следующим видам: регистры хранения (регистры памяти); регистры сдвигающие. В свою очередь сдвигающие регистры по способу ввода-вывода информации делятся на параллельные, последовательные, комбинированные, а по направлению передачи информации на однонаправленные и реверсивные.
Важнейшие характеристики регистров разрядность и быстродействие. Разрядность определяется количеством триггеров для хранения числа. Быстродействие характеризуется максимальной тактовой частотой, с которой может производиться запись, чтение и сдвиг информации.
2.3.2 Регистры хранения
Основу регистра хранения составляют одноступенчатые асинхронные RS-триггеры. Каждый триггер служит для хранения одного разряда числа A = {aN ... a2a1}, так что количество триггеров в регистре равно N (рас. 2.38).
б
Рис. 2.38. Регистр хранения: а – функциональная схема; б – условное обозначение
Перед записью информации положительным импульсом по шине «Уст. 0» все триггеры устанавливаются в нулевое состояние. Число А подводится к триггерам через схемы совпадения, управляемые сигналом С3«Запись». При сигнале С3 = 1 информация попадает на входы триггеров и записывается в регистр. При сигнале Сз = 0 обеспечивается режим хранения записанной информации.
Информация из регистра может выводиться в прямом и обратном коде через схемы совпадения, управляемые сигналами Ссч1 и Ссч2. Для считывания информации в требуемом коде на соответствующую шину необходимо подать единичный сигнал. Таким образом, для записи, хранения и считывания одного разряда слова необходим элемент памяти и логические элементы на входе и выходе. Эту элементарную часть схемы регистра будем называть разрядом регистра.
Регистр с такими же свойствами, но с однофазной записью информации, получается при использовании в качестве элемента памяти одноступенчатого D-триггера или D-триггера, с динамическим управлением. Достоинство регистров на D-триггерах состоит в существенном уменьшении числа соединений в узле. При использовании D-триггеров с динамическим управлением повышается устойчивость регистра к помехам, поскольку воздействие помех возможно в течение меньшего интервала времени, чем у регистров на триггерах со статическим управлением.
2.3.3. Регистры сдвига
Регистры сдвига предназначены для преобразования информации путем ее сдвига под воздействием тактовых импульсов. Такие регистры представляют совокупность последовательно соединенных триггеров, как правило, двухступенчатой структуры. Число триггеров определяется разрядностью записываемого слова. По направлению сдвига информации различают регистры прямого сдвига (вправо, т. е. в сторону младшего разряда), обратного сдвига (влево, т. е. в сторону старшего разряда) и реверсивные, допускающие сдвиг в обоих направлениях.
Наиболее широко распространены регистры сдвига на D-триггерах со статическим (рис. 2.39) или с динамическим управлением. Такие регистры имеют один информационный вход, вход для тактовых импульсов (импульсов сдвига) и установочный вход. Выходы в регистре могут быть с каждого разряда для считывания информации одновременно со всех разрядов, т. е. параллельным кодом.
а
б
Рис. 2.39. Регистр сдвига: а – функциональная схема; б – условное обозначение
Также может быть один выход с последнего относительно входа разряда для считывания информации последовательно во времени, т. е. последовательным кодом.
Вход регистра для импульсов сдвига получается объединением С-входов вcex триггеров, а установочный вход – R-входов.
Перед записью информации регистр устанавливается в нулевое состояние подачей положительного импульса по шине «Уст 0». Записываемая информация должна быть представлена последовательным кодом. Запись осуществляется поразрядно со стороны старшего (рис. 2.39) или младшего разряда (направление сдвига указывается стрелкой на условном обозначении регистра) путем продвижения кодовой комбинации с каждым тактовым импульсом от разряда к разряду. Следовательно, для записи N-разрядного слова необходимы N-импульсов сдвига.
Считывание информации последовательным кодом осуществляется, как и запись, поразрядным сдвигом записанной кодовой комбинации к выходу с каждым тактовым импульсом. Следовательно, для считывания N-разрядного слова необходимы N-импульсов сдвига. Считывание информации параллельным кодом происходит в паузе между последним импульсом сдвига одного цикла записи и первым импульсом сдвига другого цикла записи, т. е. в интервале времени, когда на С-входах триггеров нулевой уровень и они находятся в режиме хранения.
Таким образом, с помощью регистра сдвига можно осуществлять преобразование информации из последовательной формы представления в параллельную. Очевидно, если предусмотрена запись информации параллельным кодом, то можно преобразовать информацию из параллельной формы представления в последовательную.
Регистры сдвига могут быть построены и на триггерах одноступенчатой структуры. В этом случае в каждом разряде регистра нужно использовать два RS-триггера, которые управляются двумя сдвинутыми во времени тактовыми импульсами. Наличие двух триггеров в одном разряде позволяет поразрядно продвигать информацию в регистре от входа к выходу. Если бы в регистре были применены одноступенчатые триггеры по одному на разряд, то правило работы регистра сдвига было бы нарушено; при первом же импульсе сдвига информация, записавшись в первый разряд, перешла бы во второй, затем в третий и т. д.
Реверсивные регистры сдвига объединяют в себе свойства регистров прямого и обратного сдвига. Строятся они по тем же схемотехническим принципам, что и рассмотренные регистры, но с использованием дополнительных логических элементов в межразрядных связях. Указанная особенность реверсивного регистра показана на примере i-гo разряда (рис. 2.40) состоящего из D-триггера с динамическим управлением и логической схемы, на входы которой поданы: Qi-1 – сигнал с выхода младшего разряда, Qi+1 – сигнал с выхода старшего разряда, V – сигнал, управляющий направлением сдвига: V = 1 – вправо, V = 0 – влево.
Регистры сдвига как готовые изделия производятся в нескольких сериях ТТЛ и КМОП. В качестве примеров рассмотрим наиболее распространенные типы: К1533ИР1, К1533ИР13 и 564ИР2.
Микросхема Кl55ИР1 представляет собой четырехразрядный регистр сдвига с последовательным или параллельным вводом информации и параллельным выводом ее. Микросхема может быть использована в качестве буферной памяти, элемента задержки на несколько тактов, преобразователя последовательных кодов в параллельные и, наоборот, делителя частоты, кольцевого распределителя импульсов, элемента арифметических устройств и т. п.
Регистр может выполнять следующие операции: ввод информации параллельным кодом; сдвиг информации вправо; ввод информации последовательным кодом; ввод последовательным кодом со сдвигом влево; хранение. Условное изображение регистра К1533ИР1 показано на рис. 2.41. Регистр имеет: два тактовых входа С1 и С2, управляющий вход выбора режима V2; пять информационных входов (V1 для ввода информации в последовательном коде и четыре входа D1–D4 для записи информации в параллельном коде), а также четыре выхода Q1–Q4 с каждого разряда регистра.
Рис. 2.40. Разряд реверсивного регистра
Рис. 2.41. Условное изображение микросхемы К1533ИР1
Наличие двух тактирующих входов допускает синхронизацию от различных генераторов при работе в режиме «сдвиг вправо» и «параллельный ввод». Если в обоих режимах синхронизация осуществляется от общего источника, тактовые импульсы можно подавать на оба тактовых входа С1 и С2 одновременно. На информационных входах триггеров сигналы должны обновляться до прихода фронта тактового импульса.
Триггеры, образующие регистр, двухступенчатые, срабатывание их происходит по перепаду 1,0 входных импульсов, поступающих на один из тактовых входов С1 или С2. Рабочий режим регистра определяется уровнем сигнала на входе V2.
Ввод информации последовательным кодом, а также сдвиг ее вправо производится при V2 = 0. Входная информация подается на вход V1, а тактовые импульсы на вход С1. Сдвиг вправо на один разряд происходит при каждом перепаде 1,0 тактовых импульсов. Информация в последовательном коде преобразуется в параллельный и после четырех тактовых импульсов может быть считана с выходов Q1–Q4.
Ввод информации параллельным кодом осуществляется при V2 = 1. Разрешающим входом служит С2. Запись в триггеры регистра информации со входов D1–D4 происходит по перепаду 1,0 разрешающего импульса. Входы V1 и С1 при этом блокированы и их состояние не играет роли.
В этом же режиме на входах V2 и С2 производится преобразование последовательного кода в параллельный со сдвигом влево. В этом случае поток информации имеет обратное направление: от четвертого триггера к третьему, от третьего ко второму и т. д., для чего необходимо произвести внешние соединения выходов Q4, Q3, Q2 со входами D3, D2, D1 соответственно. Информация в последовательном коде вводится в регистр через вход D4. Сдвиг влево на один разряд происходит при каждом перепаде 1,0 тактовых импульсов, подаваемых на вход С2.
Состояния входов и выходов регистра К155ИР1 при работе в разных режимах приведены в табл. 2.13.