本文介紹常見的電路——計數器,然后我們由計數器電路講解到分頻電路。
一、計數器
(1)計數器代碼
計數器,顧名思義就是在時鐘的節(jié)拍下進行計數,一個簡單的N位計數器的代碼如下所示,這個計數器從0計數到2^N - 1(共計數了2^N個數,也就是N位計數器):
1 module count#(parameter N=8)( 2 input clk, 3 input clear, 4 output[N-1:0] cnt_Q 5 ); 6 reg[N-1:0] cnt; 7 assign cnt_Q = cnt; 8 9 always@(posedge clk)10 if(clear)11 cnt <= 'h0; //同步清 0,高電平有效12 else13 cnt <= cnt+1'b1; //加法計數14 15 endmodule
上述描述的計數器通過 clear 信號清除計數值,然后下一周期開始加 1 計數;當計數器計到能夠存儲的最大數值時, 例如本例為 8 個 1,即 8'hff 就會自動回到 0,然后開始下一輪計數。
綜合得帶的電路如下所示: