數字信號處理(一):Xilinx Vivado DDS IP核設計實例

前言

在數字信號處理時我們經常會用到數字變頻,包數字下變頻(DDC)和數字上變頻(DUC),這其中會用到Xilinx公司的DDS IP核或者Altera公司的NCO IP核來產生本振頻率,以現數字域信號頻譜搬移。本文我們通過例化Xilinx公司的DDS IP核來產生混頻器本振輸入頻率,並給出Modelsim仿真測試結果。

1、Xilinx DDS IP簡介

Xilinx公司的DDS IP核使用AXI4接口實現高性能、優化的相位產生和正弦波電路。

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖1、DDS IP核架構

在圖1中我們看到DDS IP核主要包括5部分組成,其中DDS核心為相位累加器(標記1所示)和LUT查找表(標記2所示)。相位累加器實現查找表地址的產生,LUT查找表用來存儲輸出波形。圖1標記3部分為抖動產生器和泰勒級數矯正產生模塊,主要用來改善SFDR,兩者改善的效果、使用的邏輯資源存在差異。標記4部分則為AXI4接口,實現相位累加字配置,多通道配置,相位累加器輸出和波形數據輸出。標記5部分則在多通道DDS輸出時使用。 DDS IP核可以配置為三種模式:相位產生器、SIN/COS LUT或者相位累加器和SIN/COS LUT(即DDS)。

2、DDS IP核工程例程及仿真測試

本例程例化兩個IP,一個實現單通道DDS輸出,一個實現4通道DDS輸出,用於對比測試單通道和多通道DDS IP差異以及瞭解如何進行參數配置。參數配置表如下所示。

|IP核模式 | 系統時鐘 | SFDR | 頻率分辨率 | 輸出頻率 | 相位累加器 |

| 單通道 | 100MHz | 110dB | 0.4Hz | 1MHz | Fixed |

| 四通道 | 100MHz | 110dB | 0.4Hz | 1MHz | Programable |

2.1 單通道DDS IP核參數配置

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖2


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖3


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖4


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖5


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖6

2.2 四通道DDS IP核參數配置

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖7


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖8


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖9


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖10


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖11

2.3 Vivado 工程建立及FPGA代碼編寫

DDS測試FPGA工程結構及部分代碼如圖11、12所示。

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖12、DDS工程結構


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖13

2.4 Vivado仿真測試文件編寫

仿真文件代碼編寫

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖14、仿真測試文件代碼

2.5 Modelsim仿真測試

利用Modelsim軟件聯合Vivado軟件仿真,測試結果如圖所示。

數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖15、 單通DDS輸出


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖16、多通道DDS配置字時序


數字信號處理(一):Xilinx Vivado DDS IP核設計實例

圖17、四通道DDS波形輸出

3、總結

Xilinx DDS核經常在數字變頻及軟件無線電調製解調中應用,我們可以利用IP核來實現,也完全可以自己編寫HDL語言來實現複雜波形的產生。對於DDS的實現原理,網絡有非常豐富的資料可以查找學習,本文不再詳細闡述。



分享到:


相關文章: