работы (лабы 9 вариант, курсачи 1.6 и 2.4, практики варианты 9, 10) / книжки по ЭБЦС FPGA Verilog / Регистр лекция из мудл
.docxРегистр – последовательный узел, осуществляющий прием, хранение и выдачу информации.
Основные микрооперации, реализуемые регистрами:
1) Начальный сброс: RG:=0
2) Прием
Прямой код: RG:=x
Обратный код: RG:= ~x
3) Хранение: RG:=RG
4) Выдача
Прямой код: Y:=RG
Обратный код: Y:= ~RG
5) Сдвиг содержимого регистра
Вправо на один разряд: RG:=R1(RG)
Влево на один разряд: RG:=L1(RG)
6) Поразрядные логические операции.
Классификация регистров:
1. По способу записи:
Параллельные, статические (запись осуществляется во все разряды одновременно)
Последовательные, сдвигающие (запись осуществляется последовательно по 1 разряду, при каждой записи содержимое регистра сдвигается на 1 разряд)
Последовательно-параллельные (имеют оба способа записи)
2. По способу выдачи информации:
Однофазные (выдается только прямое значение разряда - Q)
Парафазные (каждый разряд выдается двумя битами – Q и ~Q)
3. По способу начальной установки (сбросу):
С асинхронной установкой
Со сбросом по синхросигналу
4. По отношению к операции сдвига:
Не имеющие данной операции
Сдвигающие только вправо
Сдвигающие только влево
Реверсивные (сдвигающие и вправо и влево)
Условное графическое обозначение регистра
D0-D3 – разряды входного параллельного кода.
Q0-Q3 – разряды выхода (разряды с тремя состояниями).
C1 – синхросигнал приема параллельного кода.
CS – переход выхода в третье состояние: при CS= 0 выходы Q переводятся в z состояние.
R – асинхронный вход сброса регистра.
S0, S1 – входы задания микроопераций:
S0 |
S1 |
Микрооперация |
0 |
0 |
Хранение |
0 |
1 |
Сдвиг вправо |
1 |
0 |
Сдвиг влево |
1 |
1 |
Прием параллельного кода |
C – синхросигнал выполнения микроопераций, заданных S0 и S1.
DR, DL – последовательные входы при сдвиге вправо и влево соответственно.
Направление сдвига показывается стрелками, двунаправленная стрелка означает, что регистр реверсивный.
Регистр защелка
В регистрах защелках прием и выдача слов производятся по всем разрядам одновременно. В них хранятся слова, которые могут быть подвергнуты поразрядным логическим преобразованиям.
Схема регистра-защелки, построенного на D триггерах:
Условное графическое обозначение:
Данный регистр имеет максимальное быстродействие из всех известных регистров. Регистр не имеет внутренней задержки, а, следовательно, в схемах с обратной связью (автоматах) его использовать нельзя.
В схемах с обратными связями следует использовать регистр, построенный на непрозрачных триггерах (двухступенчатых или синхронных с динамическим управлением):
Сдвигающие регистры
Сдвигающие (последовательные) регистры представляют собою цепочку разрядных схем, связанных цепями переноса.
В сдвигающем регистре триггеры должны быть с разделением процесса записи и считывания, в противном случае сигнал на входе DR при появлении синхроимпульса запишется во все разряды одновременно.
В однотактных регистрах со сдвигом слово сдвигается при поступлении синхросигнала "Сдвиг". Вход и выход последовательные (DSR — Data Serial Right, DSL — Data Serial Left).
Схема регистра, сдвигающего вправо
В этом регистре имеются связи триггеров с обоими соседними разрядами, но соответствующими сигналами разрешается работа только одних из этих связей. Команды "влево" и "вправо" одновременно не подаются.
Альтернативный вариант реализации реверсивного регистра предполагает единственный сигнал управления сдвигом.
Если Направление=1, то 0 с выхода инвертора блокирует верхние элементы “И” из элементов “И-ИЛИ-НЕ”. 1 на нижних элементах “И” пропускает на вход D триггера значение от триггера, изображенного на схеме слева (или с внешнего входа, если это самый левый триггер цепочки). Получаем схему регистра сдвигающего вправо.
Если же Направление=0 – блокируются нижние элементы “И”, и на входы D регистров цепочки поступает значение с выхода триггера, находящегося справа. Получаем регистр сдвигающий влево.
Универсальные регистры
В реальных сериях интегральных схем и библиотеках БИС/СБИС имеется много вариантов регистров, в том числе универсальные (многорежимные, многофункциональные), способные выполнять набор операций.
Многорежимность достигается композицией в одной и той же схеме частей, необходимых для выполнения различных операций. Управляющие сигналы, задающие вид выполняемой в данное время операции, активизируют необходимые для этого части схемы.
Вариант схемы многофункционального регистра
Каждый элемент “И” из группы “И-ИЛИ-НЕ” обеспечивает выполнение одной микрооперации, при этом один элемент “И” функционирует, а остальные блокируются. Код, задающий функцию, содержит одну 1. Если 1 в старшем разряде, то функционирует верхний элемент “И”, сигнал с входа Di поступает на вход D триггера i и по синхроимпульсу его значение заносится в триггер. У каждого разряда свой вход D, таким образом, осуществляется прием параллельного входа.
Второй и третий элементы “И” осуществляют сдвиг влево и вправо аналогично схеме реверсивного регистра. Режим хранения обеспечивает четвертый элемент “И”, здесь он реализован путем записи в i-й триггер собственного значения Qi.
Применение регистров. Преобразователь параллельного кода в последовательный.
Регистры, имеющие разнотипные вход и выход, служат основными блоками преобразователей параллельных кодов в последовательные и обратно.
Схема преобразователя параллельного кода в последовательный на основе восьмиразрядного регистра типа SI (Serial Input) / PI (Parallel Input) / SO (Serial Output).
В этой схеме отрицательный стартовый импульс St, задающий уровень логического нуля на верхнем входе элемента 1, создает единичный сигнал параллельного приема данных на вход L (Load — загрузка), по которому в разряды 1...7 регистра загружается преобразуемое слово D1-7, а в нулевой разряд — константа 0. На последовательный вход DSR подана константа 1.
Таким образом, после загрузки в регистре формируется слово 0D1D2...D7. Тактовые импульсы, поступающие на вход С, вызывают сдвиги слова вправо (для условного обозначения это соответствует сдвигу вниз). Сдвиги выводят слово в последовательной форме через выход Q7. Вслед за информационными разрядами идет ноль (константа "0"), после которого цепочка единиц. Пока ноль не выведен из регистра, на выходе элемента 2 действует единичный сигнал. После вывода нуля все входы элемента 2 становятся единичными, его выход приобретает нулевое значение и через элемент 1 формирует сигнал автоматической загрузки следующего слова, после чего цикл преобразования повторяется.
Этот процесс описывается следующей временной диаграммой:
Применение регистров. Преобразователь последовательного кода в параллельный
Схема подключения регистра для преобразования последовательного кода в параллельный
Прием последовательного кода начинается, когда сигнал готовности равен 1 (Ready=1). Появление сигнала пуск St=1 переводит регистр в режим приема параллельного кода, и по синхроимпульсу Shift в регистр записывается 100…0. Ready становится равным 0. И регистр переводится в режим сдвига.
Каждый последующий синхроимпульс вдвигает в регистр последовательный код Ns. Так происходит до тех пор пока 1 записанная в Q0 с входа D0 не окажется в Q7, при этом формируется готовность Ready=1, а на выходах Q0-Q6 сформирован параллельный код Np.
Если после включения питания в регистре не оказалось ни одной 1, то никогда не появится сигнала Ready=1. Чтобы избежать такой ситуации необходимо с входа Ns после включения питания подать 1 длительностью более одного периода сигнала Shift.
