- •1.Регистры
- •2. Счетчики
- •2.1 Классификация счетчиков
- •Двоичные счетчики
- •Последовательные (асинхронные счетчики)
- •2.3. Параллельные счетчики
- •2.4.Синтез двоичного реверсивного счетчика
- •2.5. Счетчик с асинхронной загрузкой параллельного кода
- •Описание счетчика на Verilog
- •Описание 8-битного реверсивного счетчика на Verilog
- •Построение счетчика с заданным модулем счета
- •Описание счетчика с модулем счета 5 на Verilog
- •3. Сдвигающие регистры
- •3.4.Сдвигающие регистры, реализованные в виде ис средней степени интеграции
- •Режимы работы сдвигающего регистра определяются комбинацией значений на управляющих входах микросхемы s1, s0. (Таб. 11 )
- •3.5.Устройство быстрого сдвига
- •4. Счетчики на сдвигающих регистраx
- •4.1 Кольцевые счетчики (Ring Counters)
- •4.2. Счетчик Джонсона
- •Полиномиальные счетчики
- •4.3.1. Некоторые определения и понятия из высшей алгебры
- •4.4. Генератор элементов поля Галуа (Galois lfsr)
- •4.8. Сравнение lfsr
- •1.Описание lfsr Галуа на Verilog
- •2. Описание lfsr Fibonacci на Verilog
- •4.9. Загрузка начального состояния в lfsr
3. Сдвигающие регистры
Сдвигающий регистр (shift register) это n-разрядный регистр, содержимое которого можно сдвигать на каждом такте на несколько разрядов.
Сдвиг может осуществляться вправо (в сторону младших разрядов) и влево (в сторону старших разрядов).
Сдвигающий регистр может быть использован следующим образом:
для преобразования входного последовательного кода в выходной параллельный код
для преобразования входного параллельного кода в выходной последовательный код
для выполнения микрооперации сдвига
Микрооперации сдвига используются при выполнении таких операций, как умножение, деление, возведение в степень, операции сдвига.
3.1.Схема 4-битного регистра сдвига вправо на один разряд приведена на рис.28.
Выход предыдущего разряда подается на информационный вход следующего разряда.
Рис.28
RIN – вход последовательного ввода информации в регистр.
Таблица функционирования регистра (Таб.9).
Таб.9
-
Такт
RIN
q1 q2 q3 q4
t 0
1
0 1 1 0
t 1
0
1 0 1 1
t 0
1
0 1 0 1
t 0
1
1 0 1 0
t 0
0
0 1 1 0
t 0
0
0 0 1 1
t 0
1
0 0 0 1
3.2. Схема 4-разрядного сдвигаающего влево регистра представлена на рис. 29. Выход следующего разряда подается на информационный вход предыдущего .
Рис. 29
LIN – вход последовательного ввода информации в регистр.
Таблица функционирования регистра (Таб.10).
Таб.10
-
Такт
q1 q2 q3 q4
LIN
t 0
0 1 1 0
1
t 1
1 1 0 1
0
t 0
1 0 1 0
1
t 0
0 1 0 1
1
t 0
1 0 1 1
0
t 0
0 1 1 0
0
t 0
1 1 0 0
1
У регистра с последовательным вводом и параллельным выводом имеются выходы со всех разрядов хранимых в нем битов.
Описание n-разрядного сдвигающего регистра со входом параллельной синхронной загрузки на Verilog.
module shift_reg(data, load, rin,clk,q);
parameter n=16;
input [n-1:0] data;
input clk, load, rin;
output [n-1:0] q;
integer i;
always @(posedge clk )
if (load) q<=data;
else begin
for(i=0; i<n-1; i=i+1)
q[i] =q[i+1];
q[n-1]<=rin;
end
endmodule
В данном примере операция сдвига описана с помощью оператора цикла for.
3
.3.
Схема реверсивного 3-разрядного регистра
сдвига приведена на рис.30.
Рис. 30
В данной схеме имеются связи триггеров с обоими соседними разрядами. Одновременная подача разрешения сдвига вправо и влево запрещена. При одновременной подаче нулей на входы разрешения сдвига вправо и влево, а также нулей на входы последовательного ввода информации содержимоe регистра устанавливается в нуль.
RIN – вход для последовательного ввода информации при сдвиге вправо. Out_R – выход для последовательного вывода информации при сдвиге вправо.
LIN– вход для последовательного ввода информации при сдвиге влево. Out_L – выход для последовательного вывода информации при сдвиге влево.
