<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的DDS+DPLL跳頻信號源設(shè)計

          基于FPGA的DDS+DPLL跳頻信號源設(shè)計

          作者: 時間:2011-08-19 來源:網(wǎng)絡(luò) 收藏

          失鎖狀態(tài)如圖9所示。當輸入的基準頻偏離PLL系統(tǒng)的中心頻率合適時,系統(tǒng)將實現(xiàn)相位的鎖定,如圖10所示,且鎖定之后可形成固定的相位差。

          c.JPG

          利用ALTERA自帶的SignalTapⅡ進行在線調(diào)試如圖11所示,調(diào)試后照片如圖12所示。其中參數(shù)為:PLL系統(tǒng)的環(huán)路中心頻率為24 414 Hz;單片機產(chǎn)生輸入鑒相頻率為24 348 Hz;分頻器N值為1 024;可變模計數(shù)器K值為600;系統(tǒng)輸出頻率為:24 408~24 418Hz(數(shù)碼管顯示)。
          在PLL的基礎(chǔ)上加入頻率檢測模塊,如圖13所示。圖中:Clk_ref_in為輸入鑒相頻率;Clk_sys為系統(tǒng)工作頻率;Reset為系統(tǒng)復(fù)位信號(低電平有效);Seg[7:0]為數(shù)碼管段選輸出;Dig[7:0]為數(shù)碼管位選輸出;Clock_out為系統(tǒng)輸出信號(此系統(tǒng)中沒有實現(xiàn)倍頻)。

          從圖中可以看出:鑒相器輸出了一個占空比固定的周期信號,并且實現(xiàn)了較為精確的相位鎖定。

          設(shè)計中反饋分頻器和環(huán)路濾波器是系統(tǒng)能否成功鎖相的關(guān)鍵。輸入的鑒相頻率應(yīng)該盡可能的滿足:

          clk_in=clk_sys/(2N)

          式中:N為系統(tǒng)反饋環(huán)路的分頻值。環(huán)路濾波器和可變模計數(shù)器應(yīng)該滿足關(guān)系式:

          K>N/4

          即濾波寬度至少大于相位鎖定之后異或門輸出近似50%方波的高電平寬度,如圖14所示。

          3 結(jié)論

          本文主要研究了一種基于FPAG、自頂向下、模塊化、用于頻率綜合器的全數(shù)字鎖相環(huán)設(shè)計方法。應(yīng)用Verilog硬件描述語言使設(shè)計更加靈活,不僅縮短了設(shè)計周期,而且可實現(xiàn)復(fù)雜的數(shù)字電路系統(tǒng)。該設(shè)計中的一階使用Quartus-Ⅱ_10.1軟件進行設(shè)計綜合,采用Quartus的Cyclone-Ⅱ系列的EP2C8Q208C8 器件實現(xiàn),并使用ModelSim 6.6C軟件進行仿真。經(jīng)仿真測試,該PLL具有鎖定相位時間短,鎖定后相位穩(wěn)定的特點,最大偏差不超過10%,已給出測試圖片,從而驗證了設(shè)計的正確性。

          鑒相器相關(guān)文章:鑒相器原理

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: FPGA DPLL DDS 跳頻信號源

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();