接下來對FPGA的DDS的ip核進行學習。
首先對DDS需要有些了解
DDS信號發生器采用直接數字頻率合成(Direct Digital Synthesis,簡稱DDS)技術,簡單來說就是 需要一個系統頻率和一個輸入的數字數據 ,用這個系統頻率計算出輸出波形的頻率,而這個波形就是通過dac將數字數據進行來變換模擬的。
1.DDS的原理
? ?頻率控制字B?和相位控制字N分別控制DDS 所輸出的正弦波的頻率和相 位。DDS 系統的核心是相位累加器,它由一個N 位累加器與N 位相位寄存器構成。時鐘脈沖每觸發一次, 累加器便將頻率控制數據與相位寄存器輸出的累加相位數據相加, 然后把相加后的結果送至相位寄存器的數據輸入端。 相位寄存器將累加器在上一個時鐘作用后所產生的新相位數據反饋到累加器的輸入端, 以使加法器在下一個時鐘的作用下繼續與頻率控制數據相加。 這樣, 相位累加器在參考時鐘的作用下將進行線性相位累加, 當相位累加器累加滿時, 就會產生一次溢出, 以完成一個周期性的動作, 這個周期就是DDS 合成信號的一個頻率周期,相位累加器的溢出頻率就是DDS 輸出的信號頻率。 相位寄存器的輸出與相位控制字相加, 結果作為正弦查找表的地址。 查找表由ROM 構成, 其內部存有一個完整周期正弦波的數字幅度信息, 每個查找表的地址對應正弦波中的一個相位點。 查找表把輸入地址信息映射成正弦波幅度信號, 同時輸出到D/A 轉換器的輸入端, 通過D/A 可將數字量形式的波形幅值轉換成所要求的合成頻率模擬量形式信號。 低通濾波器用于衰減和濾除不需要的取樣分量, 以便輸出頻譜純凈的正弦波信號。
? ?DDS信號發生器原理是建立在采樣定理基礎上,首先對需要產生的波形進行采樣,將采樣值數字化后存入存儲器作為查找表,然后通過查表讀取數據,再經D/A轉換器轉換為模擬量,將保存的波形重新合成出來。每一個參考時鐘脈沖輸入時,累加一次頻率,其輸出相應增加一個步長的相位增量。
2 DDS ip
? 其內部主要有一個相位累加器,一個ROM存儲這正弦波的查找表。相位累加器在時鐘的作用下對相位進行累加,每次的累加值是通過phase increment 來指定的。累加得到的結果,通過量化器,取其高位,低位舍去,再將這個量化后的相位值,輸出到查找表,從查找表中得到最終的波形。
?DDS的最終輸出的信號的頻率和系統時鐘,相位寬度和相位自增量之間滿足如下關系:
? ? ? ?其中ΔΘ 是相位自增量,BΘ(n)是相位的位寬,也就對應這查找表的深度為2^BΘ(n)
?手冊給的例子? ? 其中系統時鐘120MHz,相位寬度為10bit,相位增量為12,輸出的頻率通過上面的式子就可以計算出來。
?這里的相位自增量Δθ也就是頻率控制字(FTW)。
頻率控制字(FTW)決定了相位累加器每次遞增的量,也就是相位自增量。
2.1 dds的ip配置
?上述的phase width 是相位累加器的位數
?上述的參數模式是將動態范圍以及頻率分辨率固定好的,硬件模式可以隨著輸入動態調整。
? ?生成的信號需要滿足奈奎斯特抽樣定理,也就是抽樣時鐘必須是被采樣信號頻率的兩倍。以這個例子來說,系統時鐘為40M,那么,最多可以生成頻率為20MHz的正余弦信號
相位的自增量前面提到的
?最終的輸出頻率如下