/* 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