標題: 分頻器Verilog設計 [打印本頁]

作者: WeTiGY    時間: 2016-11-25 22:19
標題: 分頻器Verilog設計
本帖最后由 WeTiGY 于 2016-12-4 15:04 編輯

實驗三  分頻器
一、實驗目的
1、掌握分頻器的設計原理;
2、用HDL語言設計分頻器。
二、實驗原理
分頻器與計數(shù)器類似,也是要對時鐘脈沖進行計數(shù),但其輸出的不是對時鐘脈沖個數(shù)的計數(shù)值,而是其頻率與時鐘的頻率成固定比例關系的脈沖信號。整數(shù)分頻是所有分頻器中最簡單,最容易實現(xiàn)的。我們只需要通過計數(shù)器計數(shù)就完全可以實現(xiàn)。如整數(shù)N分頻,就可以通過待分頻的時鐘觸發(fā)計數(shù)器計數(shù)當計數(shù)從0計數(shù)到N/2-1時,輸出時鐘進行反轉,并使計數(shù)器在下一個時鐘從0開始重新計數(shù),如此循環(huán)就可以實現(xiàn)任意的等占空比或占空比近似為50%的整數(shù)分頻。
三、實驗內容
設計一個分頻輸出信號的占空比近似為50%的分頻器,將50MHz輸入時鐘分頻為1Hz時鐘,在試驗箱EXT_B_A1_1端口輸出,并用示波器觀察輸出波形。
  1. module divider_module
  2. (
  3.        CLK,f_Out
  4. );

  5.        input CLK;
  6.        output f_Out;
  7.    

  8.        parameter T1s=26'd50_000_000;
  9.        reg [25:0]Count1;
  10.    
  11.       always @ ( posedge CLK )
  12.                  if( Count1 == T1s)
  13.                       Count1 <= 26'd0;
  14.                 else
  15.                       Count1 <= Count1 + 1'b1;
  16.         
  17.        reg rf_Out;        
  18.        always @ ( posedge CLK )
  19.                    if( Count1 >= 26'd0 && Count1 <= 26'd25_000_000)
  20.                         rf_Out <= 1'b0;
  21.                   else
  22.                         rf_Out <= 1'b1;     
  23.       assign f_Out = rf_Out;

  24. endmodule
復制代碼



注:使用20分頻仿真

仿真圖:








歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1