設計使得思路是,首先設計乙個計數器,在技術的過程中判斷輸出的值與想要的最大計數值之間的關係,由此來控制計數器的歸零和重設最大值。
軟體生成的rtl電路圖有很多的內部細節,比如將前面的計數器單元和比較單元的具體構成顯現了出來。
reg [3:0] max_cou = 4'b0110;//最大計數值
always @ (posedge clk )
begin
if(rst == 0) //同步清零
begin
max_cou = 4'b0110;
out = 4'b0000;
endelse
if(out < max_cou)
begin
out = out + 1'b1;
endelse
if(max_cou == 4'b1001)//最大計數值到9,從6開始
begin
max_cou = 4'b0110;
out = 4'b0000;
endelse
begin //最大計數沒有到9,最大計數值增加
reg [1:0] m; //計數器選擇
always @ (posedge clk)
begin
case(m)
2'b00:begin //6進製計數器
if(out != max_cou)
out = out + 1
'b1;
else
begin
out = 0; //計滿,改變m,選擇下一計數器
m = 2
'b01;
max_cou = 4
'b0111;
endend2
'b01:begin //7進製計數器
if(out != max_cou)
out = out + 1
'b1;
else
begin
out = 0;
m = 2
'b10;
max_cou = 4
'b1000;
endend2
'b10:begin //8進製計數
if(out != max_cou)
out = out + 1
'b1;
else
begin
out = 0;
m = 2
'b11;
max_cou = 4
'b1001;
endend2
'b11:begin //9進製計數器
if(out != max_cou)
out = out + 1
'b1;
else
begin
out = 0;
m = 2
'b00;
max_cou = 4
'b0110;
endend endcase
endendmodule
計數器 智慧型計數器簡介
計數器主要是應用於電子科技領域,計數器是一種運用得比較多的時序邏輯電路。計數器可以對數字進行運算,它是一種沒有辦法顯示計算結果的顯示器。隨著電子科技的不斷發展,現在的計數器也實現了智慧型功能。智慧型計數器的出現幫助我們實現了很多高強度生產問題 複雜的技術問題,並且節約了生產成本和人力成本。智慧型計數...
計數器設計
最近看到一篇文章說要實現乙個計數器的功能,於是通過思索,設計了乙個靈活可用性高的物件計數器。裡面閃爍著 很多的火花。template class object counter object counter private static int m count template int object ...
行波計數器
行波計數器是指每個暫存器的輸出引腳連線到下一級暫存器的時鐘引腳上,如下圖所示 用觸發器來驅動其他觸發器的時鐘輸入端,一般都會存在問題。由於每個暫存器都存在傳播延遲,且每一級觸發器時鐘的延遲會使下一級觸發器的輸入時鐘產生偏移,會造成累積延遲,如下圖所示。行波計數器對於靜態時序分析是乙個巨大的挑戰,因為...