verilog學習(11)實戰之計數器


一:紋波計數器

1:紋波計數器的面積最小,易於結構化實現。這種計數器的觸發器是前一級輸出數據的邊沿作為時鍾來驅動。前一級的輸出連在后一級的時鍾端,每當時鍾的輸入端口的數據產生了上升沿,輸出就會翻轉。這個計數器必須從一個確定的狀態開始工作,這要求我們要對它復位,否則,計數器的翻轉則沒有意義。3比特的紋波計數器如下圖所示,輸出位Q[0],Q[1],Q[2](圖中未標出)

  

2:代碼(4bit紋波計數器)

   

   vcs dump的波形

  

  可見,毛刺很大;這是因為紋波計數器中高階觸發器沒有時鍾,只有等到低階觸發器的輸出變化后才能變化,所以當計數器的位寬增大時,這是個線性漸慢器件。在每個時鍾上升沿之后,觸發器的輸出端會出現很多毛刺。然而,各階的進位不會立刻由時鍾傳輸下去,因此和同步計數器相比,功耗和噪聲都減小了。

  改進:慢一拍輸出,使用鎖存器將輸出鎖存一拍,再輸出

  

   vcs dump的波形

  

 

  可見,減少了毛刺,計數正常。

二:同步(超前進位)計數器

1:這類計數器增加了超前進位邏輯,在每個時鍾有效沿對所有寄存器比特進行更新。

  同步計數器偶爾會產生極大的瞬時功率,而這種尖峰功率會生成噪聲。

  如下圖,每個寄存單元的輸入端口都是由1比特加法器(異或門)驅動;做設計的時候也應該遵循這個原則,組合邏輯后應該跟上寄存器以保證電路的時序。

  時鍾連在每個觸發器的時鍾端上,前面寄存器輸出Q'端進行或操作,然后用異或門進行隔離,直到進位溢出該比特。

  

2:代碼(4bit同步計數器)

 

  vcs dump波形

 

三:行為級計數器

1:4bit行為級計數器代碼

  

  vcs dump波形

  

四:使用pll時鍾,將以上三個計數器放在一起,看計數快慢

  

   頂層文件代碼

  

  dump 波形

  

可見,同步計數器計數最慢

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM