module CNT10 (CLK, RST, EN, CQ, COUT); input CLK,RST,EN; output[3:0] CQ; output COUT; reg[3:0] CQ,CQI; reg COUT; always @(posedge CLK)//檢測時鐘上升沿 begin : u1 if (RST == 1"b1)//計數器復位 begin CQI={4{1"b0}}; end begin if(EN==1"b1)//檢測是否允許計數 begin if (CQI<9) begin CQI=CQI+1; //允許計數 end else begin CQI={4{1"b0}}; //大於9,計數值清零 end end end if (CQI==9) begin COUT<=1"b1 ; //計數大於9,輸出進位訊號 end else begin COUT<=1"b0 ; end CQ<=CQI ; //將計數值向埠輸出 end endmodule
module CNT10 (CLK, RST, EN, CQ, COUT); input CLK,RST,EN; output[3:0] CQ; output COUT; reg[3:0] CQ,CQI; reg COUT; always @(posedge CLK)//檢測時鐘上升沿 begin : u1 if (RST == 1"b1)//計數器復位 begin CQI={4{1"b0}}; end begin if(EN==1"b1)//檢測是否允許計數 begin if (CQI<9) begin CQI=CQI+1; //允許計數 end else begin CQI={4{1"b0}}; //大於9,計數值清零 end end end if (CQI==9) begin COUT<=1"b1 ; //計數大於9,輸出進位訊號 end else begin COUT<=1"b0 ; end CQ<=CQI ; //將計數值向埠輸出 end endmodule