﻿/*
  1ビット・カウンタ・ユニット(非同期リセット)

  nビットカウンタは、以下のモジュールを
  n個呼び出しても構成できる。
*/

module cnt_unit( CK, RES, EN, D, Q, CA );
input   CK, RES, EN, D;
output  Q, CA;
reg     Q;

always @( posedge CK or posedge RES ) begin
    if ( RES )
        Q <= 1'b0;
    else if ( D & EN )
        Q <= ~Q;
end

assign CA = D & Q;

endmodule
