Рандомный счётчик (LFSR)

//-----------------------------------------------------
// Имя модуля : lfsr
// Имя файла : lfsr.v
// Функц. назначение : Линейный регистр сдвига с обратной связью
// Программист : www.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