- •1.Регистры
- •2. Счетчики
- •2.1 Классификация счетчиков
- •Двоичные счетчики
- •Последовательные (асинхронные счетчики)
- •2.3. Параллельные счетчики
- •2.4.Синтез двоичного реверсивного счетчика
- •2.5. Счетчик с асинхронной загрузкой параллельного кода
- •Описание 8-битного реверсивного счетчика на Verilog
- •Построение счетчика с заданным модулем счета
- •Описание счетчика на 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
4.8. Сравнение lfsr
При построении схем большой разрядности, число членов в полиномах обратной связи возрастает.
Как видно из схем, количество двухвходовых XOR одинаковo. Но в LFSR Фибоначчи сигнал должен пройти через три схемы XOR , a в LFSR Галуа – через одну. Поэтому LFSR Галуя является более быстродействующей.
Преимущество LFSR Фионаччи – возможность использования микросхем серийно выпускаемых регистров сдвига.
4.8. LFSR in Verilog
1.Описание lfsr Галуа на Verilog
module Galois_LFSR(clk, preset, en, q, seed);
input clk, preset, en;
input [0:7] seed;
output reg [0:7] q;
always @(posedge clk or posedge preset)
begin
if (preset) q<=seed; //can be anything except zero
else if (en)
q<={q[7],q[0:2], q[7]^q[3],q[7]^q[4],q[7]^q[5],q[6]};
end
endmodule
2. Описание lfsr Fibonacci на Verilog
module Fibonacci_LFSR(clk, preset, en, q, seed);
input clk, preset, en;
input [7:0] seed;
output reg [7:0] q;
always @(posedge clk or posedge preset)
begin
if (preset) q<=seed; //can be anything except zero
else if (en)
q<={q[4]^q[3]^q[2]^q[0], q[7:1]};
end
endmodule
4.9. Загрузка начального состояния в lfsr
Н
Seed
Load
CLK
D
CLK
D
CLK
D
CLK
q1
q3
LIN
D
CLK
q2
q4
