3. Регистры
Основная выполняемая регистром функция заключается в хранении одного многоразрядного числа. При этом число должно быть представлено в двоичной системе счисления или в любой другой системе, но с двоичным представлением цифр разрядов (т. е. в любой двоично-кодированной системе счисления.)
Регистр строится в виде набора триггеров, каждый из которых предназначается для хранения цифр определенного разряда двоичного числа. Таким образом, регистр для хранения n-разрядного двоичного числа должен содержать n триггеров.
Регистры могут использоваться для выполнения и некоторых других функций: сдвиг хранимого в регистре числа на определенное число разрядов влево или вправо, преобразование числа из последовательной формы (при которой оно передается последовательно разряд за разрядом) в параллельную (с передачей всех разрядов одновременно) либо, наоборот, преобразование из параллельной формы представления числа в последовательную и др.
В зависимости от формы представления числа (параллельной или последовательной), используемой при его вводе в регистр, различают два типа регистров: параллельные и последовательные. В параллельный регистр предназначенное для хранения число подается одновременно всеми разрядами, т. е. в параллельной форме. В последовательный регистр ввод числа производится путем последовательной во времени подачи цифр отдельных разрядов (обычно начиная с цифры младшего разряда), т. е. в последовательной форме.
|
|
рис. 3.13 |
рис 3.14 |
3.1. Параллельный регистр
Пусть на вход регистра поступает парафазный код числа. При этом для каждого разряда числа предусматривается два входа, на один из которых поступает прямой код, на другой - инверсный. Прием такого числа может производиться в регистр, построенный с использованием простейших синхронных RS-триггеров, как показано на рис. 7.36,а.
Если
цифра i-го разряда ai
= 1, то поступает 1 на вход S соответствующего
триггера и при подаче уровня лог. 1 на
вход С триггер устанавливается в
состояние 1. Если ai
= 0 (
i
= l), то поступает 1 на вход R и этот триггер
устанавливается в состояние 0. Таким
образом, триггеры устанавливаются в
состояния, определенные поступающими
на их входы цифрами разрядов числа.
Когда на вход регистра поступает однофазный код числа (без подачи инверсных значений цифр разрядов), регистр может быть построен с использованием простейших синхронных D-триггеров (рис. 3.13,а). В таком регистре при подаче уровня 1 на вход С триггеры устанавливаются в состояния, определяемые действующими на входах D цифрами разрядов. На рис. 7.36,б и 2.1,б показаны условные обозначения рассмотренных типов регистров.
3.2. Сдвиговый регистр
Покажем пример сдвига числа на один разряд вправо.
Суть сдвига состоит в том, что цифра, имевшаяся до сдвига в i-м разряде регистра, передается в соседний справа (i-1)-й разряд (т. е. значение четвертого разряда передается в третий разряд, значение третьего разряда - во второй разряд и т. д.). В крайний левый разряд заносится значение, подаваемое извне, а цифра крайнего правого разряда числа выдвигается из регистра во внешнюю цепь. Такого рода сдвиги числа вправо (либо влево) выполняются так называемым сдвиговым регистром.
Для построения сдвигового регистра чаще всего используются D-триггеры, управляемые одним фронтом синхронизирующего сигнала, но могут использоваться и другие типы триггеров, управляемые одним фронтом синхронизирующего сигнала, либо триггеры, построенные по принципу двухступенчатого запоминания информации.
Рассмотрим работу показанного на рис. 3.14 а сдвигового регистра, построенного на D-триггерах. Выход Q триггера каждого из разрядов подключен к входу D триггера соседнего более младшего разряда. Таким образом, при низком уровне синхронизирующего сигнала хранящееся в триггере значение разряда числа передается на вход триггера соседнего справа разряда и производит в нем подготовку управляющих цепей. В момент положительного фронта синхронизирующего сигнала каждый из триггеров устанавливается в состояние, соответствующее действовавшему на входе D сигналу, и число в регистре оказывается сдвинутым вправо на один разряд; в старший разряд заносится значение, подаваемое извне на вход D триггера этого разряда. На рис. 3.14,б показано содержимое регистра в процессе выполнения последовательных сдвигов вправо.
Для осуществления сдвига влево необходимо в сдвиговом регистре изменить связи между триггерами, подключая выход триггера ко входу D триггера соседнего слева (более старшего) разряда.
Сдвиговые регистры имеют разнообразные применения. Рассмотрим некоторые из них.
