Build a 4-bit binary counter that counts from 0 through 15, inclusive, with a period of 16. The reset input is synchronous, and should reset the counter to 0.
題目網站
1 module top_module (
2 input clk,
3 input reset, // Synchronous active-high reset
4 output [3:0] q);
5 always @(posedge clk)begin
6 if(reset)begin
7 q<=4'b0;
8 end
9 else begin
10 q<=q+1'b1;
11 end
12 end
13
14 endmodule
使用了一個if-else語句,但是隻是符合這一種情況,可能是我多想了,總覺得如果只是這麼書寫的話,如果出現毛刺干擾,豈不是直接就變了。
因為重置延遲一拍,所以採用時序邏輯電路實現。
要求比較簡單,通常作為大型工程裡面的一個總計數器,當做節拍器來使用。