Счётчик Грэя

//-----------------------------------------------------
// Имя модуля : gray_counter
// Имя файла : gray_counter.v
// Функц. назначение : 8-ми разрядный счётчик Грэя
// Программист : www.portal-ed.ru
//-----------------------------------------------------
module gray_counter (
out , // Выход счётчика
enable , // Разрешение счёта
clk , // Такты
rst // Вход сброса лог. «1» - активный сигнал
);
//------------Входные порты--------------
input clk, rst, enable;
//----------Выходные порты----------------
output [ 7:0] out;
//------------Внутренние переменные--------
wire [7:0] out;
reg [7:0] count;
//-------------Начало кода---------
always @ (posedge clk)
if (rst)
count <= 0;
else if (enable)
count <= count + 1;
assign out = { count[7], (count[7] ^ count[6]),(count[6] ^
                    count[5]),(count[5] ^ count[4]), (count[4] ^
                    count[3]),(count[3] ^ count[2]), (count[2] ^
                    count[1]),(count[1] ^ count[0]) };
endmodule