// Имя модуля : divide_by_3
        // Имя файла : divide_by_3.v
        // Функц. назначение : Делитель на 3
        // Программист : portal-ed.ru
        module divide_by_3 (
        clk_in , //Входные такты
        reset , // Вход сброса
        clk_out // Выходные такты
        );
        //-----------Входные порты---------------
        input clk_in;
        input reset;
        //-----------Выходные порты---------------
        output clk_out;
        //---------Внутренние переменные--------
        reg [1:0] pos_cnt;
        reg [1:0] neg_cnt;
        //-------------Начало кода-----------------
        // Счёт по положительному(нарастающему) фронту
        always @ (posedge clk_in)
        if (reset) begin
                     pos_cnt <= 0;
                    end else begin
                                  pos_cnt <= (pos_cnt == 2) ? 0 : pos_cnt + 1;
                                  end
        // Счёт по отрицательному(спадающему) фронту
        always @ (negedge clk_in)
        if (reset) begin
                      neg_cnt <= 0;
                      end else begin
                                    neg_cnt <= (neg_cnt == 2) ? 0 : neg_cnt + 1;
                                    end
        assign clk_out = ((pos_cnt != 2) && (neg_cnt != 2));
        endmodule