/* -*-Verilog-*-
*******************************************************************************
*
* File:         divide_by_365.v
* RCS:          $Header: $
* Description:  
* Author:       Costas Calamvokis
* Language:     Verilog
* Package:      N/A
* Status:       Experimental (Do Not Distribute)
*
* Copyright (c) 1998 Costas Calamvokis, all rights reserved.
*
*******************************************************************************
*/
![[Up: pulse_per_year d5]](v2html-up.gif) module divide_by_365
module divide_by_365 ( clk, reset, enable, out);
`include "defs.v"
input clk;
input reset;
input enable;
output out;
reg [8:0] count;
wire  [8:0] new_count = count + 1;
assign out = last_count(count);
always @(posedge clk)
    begin
    if (reset)
        begin
        count = 0;
        end
    else if (enable)
        begin
        if ( out )
            count = 0;
        else
            count = new_count;
        end
    end
function last_count;
    input [8:0] count;
    begin
    last_count = (count == (`DAYS_IN_YEAR - 1))
    end
endfunction
endmodule
/*
 *  Click on this link to go back to v2html home page: 
 *    http:../../../v2html.html
 */
 ( clk, reset, enable, out);
`include "defs.v"
input clk;
input reset;
input enable;
output out;
reg [8:0] count;
wire  [8:0] new_count = count + 1;
assign out = last_count(count);
always @(posedge clk)
    begin
    if (reset)
        begin
        count = 0;
        end
    else if (enable)
        begin
        if ( out )
            count = 0;
        else
            count = new_count;
        end
    end
function last_count;
    input [8:0] count;
    begin
    last_count = (count == (`DAYS_IN_YEAR - 1))
    end
endfunction
endmodule
/*
 *  Click on this link to go back to v2html home page: 
 *    http:../../../v2html.html
 */