//-----------------------------------------------------
// Имя модуля : lfsr
// Имя файла : lfsr.v
// Функц. назначение : Линейный регистр сдвига с обратной связью
// Программист : portal-ed.ru
//-----------------------------------------------------
module lfsr (
out , // Выход счётчика
enable , // Разрешение счёта
clk , // Тактовый вход
reset // Вход сброса
);
//----------Выходные порты--------------
output [7:0] out;
//------------Входные порты--------------
input [7:0] data;
input enable, clk, reset;
//------------Внутренние переменные--------
reg [7:0] out;
wire linear_feedback;
//-------------Начало кода-------
assign linear_feedback = !(out[7] ^ out[3]);
always @(posedge clk)
if (reset) begin // активный reset лог. "1"
out <= 8'b0 ;
end else if (enable) begin
out <= {out[6],out[5],
out[4],out[3],
out[2],out[1],
out[0], linear_feedback};
end
endmodule // Конец модуля counter