資源描述:
《《數(shù)字系統(tǒng)設(shè)計實例》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第7章數(shù)字系統(tǒng)設(shè)計實例7.1半整數(shù)分頻器的設(shè)計7.2音樂發(fā)生器7.32FSK/2PSK信號產(chǎn)生器7.4實用多功能電子表7.5交通燈控制器7.6數(shù)字頻率計習(xí)題7.1半整數(shù)分頻器的設(shè)計在數(shù)字系統(tǒng)設(shè)計中,分頻器是一種基本電路。分頻器的實現(xiàn)非常簡單,可采用標(biāo)準(zhǔn)的計數(shù)器,也可采用可編程邏輯器件來實現(xiàn)一個整數(shù)分頻器。分頻器通常用來對某個給定頻率進(jìn)行分頻,得到所需的頻率。在某些場合下,用戶所需要的頻率與頻率時鐘源不是整數(shù)倍關(guān)系,此時可采用小數(shù)分頻器進(jìn)行分頻。7.1.1小數(shù)分頻的基本原理設(shè)有一個5MHz的時鐘源,但電路中需要產(chǎn)生一個2MHz的時鐘信號,由于分頻比為2.5,因此整數(shù)分頻器將不能
2、勝任。采用可編程邏輯器件實現(xiàn)分頻系數(shù)為2.5的分頻器,可采用以下方法:設(shè)計一個模3的計數(shù)器,再設(shè)計一個扣除脈沖電路,加在模3計數(shù)器輸出之后,每來兩個脈沖就扣除一個脈沖(實際上是使被扣除的脈沖變成很窄的脈沖,可由異或門實現(xiàn)),就可以得到分頻系數(shù)為2.5的小數(shù)分頻器。采用類似方法,可以設(shè)計分頻系數(shù)為任意半整數(shù)的分頻器。小數(shù)分頻的基本原理為脈沖吞吐計數(shù)法:設(shè)計兩個不同分頻比的整數(shù)分頻器,通過控制單位時間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù),從而獲得所需的小數(shù)分頻值。例如設(shè)計一個分頻系數(shù)為10.1的分頻器,可以將分頻器設(shè)計成9次10分頻,1次11分頻,這樣總的分頻值為(9×10+1×11)/(
3、9+1)=10.1從這種實現(xiàn)方法的特點可以看出,由于分頻器的分頻值在不斷改變,因此分頻后得到的信號抖動較大。當(dāng)分頻系數(shù)為N-0.5(N為整數(shù))時,可控制扣除脈沖的時間,使輸出為一個穩(wěn)定的脈沖頻率,而不是一次N分頻,一次N-1分頻。7.1.2電路組成設(shè)需要設(shè)計一個分頻系數(shù)為N-0.5的分頻器,其電路可由一個模N計數(shù)器、一個二分頻器和一個異或門組成,如圖7-1所示。在實現(xiàn)時,模N計數(shù)器可設(shè)計成帶預(yù)置的計數(shù)器,這樣就可以實現(xiàn)任意分頻系數(shù)為N-0.5的分頻器。圖7-1通用半整數(shù)分頻器7.1.3VHDL程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;U
4、SEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdeccountISPORT(inclk:INSTD_LOGIC;--時鐘源preset:INSTD_LOGIC_VECTOR(3DOWNTO0);--預(yù)置分頻值Noutclk1:OUTSTD_LOGIC;outclk2:BUFFERSTD_LOGIC--輸出時鐘);ENDdeccount;ARCHITECTUREdeccount_archOFdeccountISSIGNALclk,divide2:STD_LOGIC;SIGNALcount:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN
5、clk<=inclkXORdivide2;--inclk與divide2異或后作為模N計數(shù)器的時鐘outclk1<=inclk;PROCESS(clk)BEGINIF(clk'eventANDclk='1')THENIF(count="0000")THENcount<=preset-1;--置整數(shù)分頻值Noutclk2<='1';ELSEcount<=count-1;--模N計數(shù)器減法計數(shù)outclk2<='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(outclk2)BEGINIF(outclk2'eventANDoutclk2='1')THENdiv
6、ide2<=NOTdivide2;--輸出時鐘二分頻ENDIF;ENDPROCESS;ENDdeccount_arch;圖7-2半整數(shù)分頻器外部接口以上程序?qū)崿F(xiàn)對時鐘源inclk進(jìn)行分頻系數(shù)為N-0.5的分頻,得到輸出頻率outclk2。preset輸入端口是預(yù)置分頻值N,本例中preset設(shè)為4位寬的位矢量,也即分頻系數(shù)為16以內(nèi)的半整數(shù)值。若分頻系數(shù)大于16,需同時增大preset和count的位寬,兩者的位寬則要求始終一致。本設(shè)計的外部接口如圖7-2所示,程序中設(shè)置outclk1是為了方便觀察輸入信號的波形,以與輸出信號outclk2比較。7.1.4仿真結(jié)果上述半整數(shù)分
7、頻器的仿真波形如圖7-3所示。圖7-3半整數(shù)分頻器仿真波形圖7.1.5下載驗證鎖定引腳時將inclk連至CLK1,preset連至K0~K3,outclk1連至TESTOUT1(測試1腳),outclk2連至TESTOUT2(測試2腳),綜合適配后將配置數(shù)據(jù)下載入EDA實驗平臺(技術(shù)資料詳見附錄)的FPGA中(有關(guān)CLK1等引腳在FPGA芯片引腳中的序號,請參見附錄的附圖1),通過改變K0~K3狀態(tài)觀察測試1腳和測試2腳上的波形,測試結(jié)果與仿真結(jié)果一致。7.2音樂發(fā)生器本設(shè)計利用可編程邏輯器件配以一個小