Последовательные регистры
В последовательных регистрах слова принимаются и выдаются разряд за разрядом. Их называют сдвигающими, т. к. тактирующие сигналы при вводе и выводе слов перемещают их в разрядной сетке.
Сдвигающий регистр может быть: · нереверсивным (с однонаправленным сдвигом); · реверсивным (с возможностью сдвига в обоих направлениях).
В программе EWB соберем схему простейшего сдвигового регистра. Соединим четыре D-триггера последовательно друг за другом так, что сигнал с выхода Q1 первого будет подаваться на вход D1 второго триггера и т. д. (рис. 1). Данные (1 или 0 в соответствующем разряде) будем вводить клавишей [D]. На выводы синхронизации всех триггеров С1 одновременно будем подавать тактовые импульсы от клавиши [Space]. Следя за состояниями поразрядных индикаторов Y0–Y3, будем судить о работе регистра.
Пусть требуется ввести в регистр число 510 = 01012. Начнем с нулевого состояния (Y0=Y1=Y2=Y3=0). Подадим на вход первого триггера D=1 и [Space] =1 и включим моделирование: получим Y0=1. Если дважды три раза нажать на [Space], то все разряды постепенно заполнятся единицами, но это будет 11112 = 1510, а не то, что требовалось.
Очистим регистр. Это можно выполнить разными способами, из которых мы выберем наиболее экзотический. Не выключая моделирование, сделаем D=0 и [Space] =0 и, нажимая многократно [Space], продвинем 0 по всем разрядам так же, как до этого двигали 1.
По наблюдаемой картине и дали название этого устройства – сдвиговый регистр. На каждом новом тактовом импульсе он принимает одну новую цифру, сдвигая ранее запомненные (в том числе нули) на один разряд, чтобы поместить новую. Движение в регистре цифр напоминает движение людей через турникет (такты) на эскалатор метро по одному (1) друг за другом с интервалами (0). Не случайно подобные схемы называют на английском FIFO (First-ln-First-Out – первым вошел – первым вышел).
Полученные результаты обусловлены работой D-триггера, выход Q которого повторяет входной сигнал D, пока С=1, и запоминает логический уровень входного сигнала при С=0 («прозрачная защелка»). Отсюда понятно, что для решения поставленной задачи надо, манипулируя клавишами D и [Space], аналогично описанному, продвигать в регистр ту последовательность, которая задана: 0101.
Если использовать в подобном регистре D-триггеры с предустановками по S и R, то пользуясь ими можно установить единицы во все разряды сразу или очистить весь регистр. Соответствующая схема показана на рис. 141,в Для удобства наблюдения далее вместо логических индикаторов включим семисегментный индикатор с дешифратором HL1 (рис 141,в) При согласованном включении входных разрядов индикатора и выходных разрядов регистра, занесение в регистр числа 01010^ даст на дисплее цифру 5 (см рис. 141,в)
Рис. 142 (окончание). Четырехразрядный сдвиговый регистр (МС)
В рассмотренном регистре данные вводятся последовательно через единственный вход, а выводятся в параллельном виде на выходах разрядов регистра Такая процедура широко используется, например, для преобразования битов программы, считанных с диска компьютера, в параллельный код для ввода в основную память. При необходимости с регистра можно вывести информацию и в инверсной форме, если воспользоваться инверсными выходами триггеров. Введя в схему регистра дополнительную комбинационную логику, можно создать реверсивный регистр с управляемым направлением сдвига Для этого в разрядные схемы вводятся элементы 2x2 И-ИЛИ-НЕ, которые выполняя роль мультиплексора, изменяют направление передачи сигнала. Соответствующий субблок показан в развернутом виде на рис. 143,а и в виде схемного компонента MUX на рис 143, б На основе этих компонентов и D-триггеров собран четырехразрядный реверсивный сдвигающий регистр (см рис 143, в) При S=1 выполняется сдвиг информации вправо (от регистров младших разрядов к старшим), а при S=0 - влево (от старших - к младшим). Надо иметь в виду, что понятия «лево» и «право» относятся здесь не к общепринятой системе упорядоченной записи чисел, а к схеме где, как правило, слева вход, а справа - выход Поэтому, разряды регистра расположены инверсно по отношению к записи чисел. Итак, если задавать из указанного на рис 143,в состояния тактовые импульсы (клавишей Space), то единицы будут двигаться назад к входу, пока не заполнят все разряды. Если же в этом состоянии включить S=1, то нули будут двигаться от входа, пока не очистят весь регистр Для удобства отсчетов двоичных чисел можно инвертировать геометрическое расположение индикаторов, не изменяя существа схемы их соединения. При инверсном расположении индикаторов (см. рис. 143,г) наблюдаемая картина как бы входит в противоречие с понятиями «лево» и «право». Однако при маркировке микросхем принята именно такая нумерация, хотя в литературе, особенно отечественной, встречаются и иные варианты. Параллельные регистры хранения В параллельных (статических) регистрах схемы разрядов не обмениваются данными между собой. Общими для разрядов обычно являются цели тактирования, сброса/установки, разрешения выхода или приема, т е цепи управления В этих регистрах прием и выдача слов производятся по всем разрядам одновременно. В них хранятся слова, которые могут быть подвергнуты поразрядным логическим преобразованиям Для того чтобы запомнить в регистре п-разрядное двоичное слово, потребуется п D-триггеров, поскольку каждый из них может запомнить один бит на фронте тактового сигнала. Если ограничиться четырехразрядным словом, то схема регистра в программе EWB примет такой вид (см рис. 144). Задав некоторое число ключами 1-4 и включив моделирование, после перевода клавиши Space в верхнее положение (переход от низкого уровня к высокому- фронт тактового импульса) получим это число в регистре. Если теперь еще раз нажать на клавишу Space, переведя ее в положение низкого уровня (спад тактового импульса), то ничего не изменится: занесенное число сохранится в регистре Оно останется там, если далее перевести клавиши 1 и 3 на низкий уровень. Занесенное число может храниться в этом регистре сколь угодно долго (при наличии питания). Поэтому подобные регистры относят к регистрам хранения. Изменение состояния регистра можно выполнить, изменив входные сигналы и подав новый тактовый импульс. В программе МС соберем логическую структуру регистра хранения на D-триггерах с предустановками (см. рис. 145,а). Используем специальные генераторы цифровых сигналов (Stim) G1, G2 и G3, задав их в формате: .DEFINE G1 + +0NS0 + label=begin + +5NS1 + +5NS О + +5NS goto begin -1 times .DEFINE G2 + labeNbegin + +0NS 00 + +5NS01 + +5NS10 + +5NS11 + +5NS goto begin -1 times .DEFINE G3 + labeNbegin + +ONS00 + +5NS 01 + +5NS10 + +5NS11 + +5NS goto begin -1 times В результате моделирования получатся графики, показанные на рис 145,6 Совет Форматы заданий на моделирование генераторов циф-(МС) ровых сигналов типа Stim можно получить, скопировав подходящий генератор из файлов типовых примеров, прилагаемых к программе, и отредактировав их параметры. Для рассматриваемых схем их можно набрать из книги в окно редактирования свойств генератора или в текстовую область создаваемой схемы. При этом надо четко идентифицировать позиционные обозначения и атрибуты команды описания сигнала.
|