本文介紹常見的電路——計數(shù)器,然后我們由計數(shù)器電路講解到分頻電路。
一、計數(shù)器
(1)計數(shù)器代碼
計數(shù)器,顧名思義就是在時鐘的節(jié)拍下進行計數(shù),一個簡單的N位計數(shù)器的代碼如下所示,這個計數(shù)器從0計數(shù)到2^N - 1(共計數(shù)了2^N個數(shù),也就是N位計數(shù)器):
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; //加法計數(shù)14 15 endmodule
上述描述的計數(shù)器通過 clear 信號清除計數(shù)值,然后下一周期開始加 1 計數(shù);當計數(shù)器計到能夠存儲的最大數(shù)值時, 例如本例為 8 個 1,即 8'hff 就會自動回到 0,然后開始下一輪計數(shù)。
綜合得帶的電路如下所示: