1 DDS概念
DDS(Direct Digital Frequency Synthesizer) 直接數(shù)字頻率合成器,本文主要介紹如何調(diào)用Xilinx的DDS IP核生成某一頻率的Sin和Cos信號。
2 DDS IP使用
打開Vivado創(chuàng)建Block Design。
添加 DDS IP。
1、我們選擇波形與相位同時存在的情況。
2、選擇DDS IP輸入的系統(tǒng)時鐘頻率,這里我們選擇100MHz。
3、DDS通道的數(shù)目,我們這里選擇一個。
4、整個IP配置的模式,我們這里選擇標準模式即可。
5、參數(shù)選擇的模式,我們這里選擇系統(tǒng)參數(shù),這個選擇主要影響IP的定制界面所涉及到的參數(shù)。
6、頻率的動態(tài)范圍,主要和DDS內(nèi)部RAM的數(shù)據(jù)位寬有關(guān),計算方法是20log2n,其中n為RAM的位寬。
7、選擇DDS的最小的頻率分辨率。
1、相位增量我們選擇固定。
2、相位偏執(zhí)我們也選擇成固定,這兩個參數(shù)可以動態(tài)控制輸出的頻率。
3、我們這里產(chǎn)生正弦波和余弦波。
4、因為我們只考慮正弦波的頻率,所以這里不再輸出相位信息。
輸入我們需要DDS輸出的頻率,這里我們輸入5MHz,其余選項,我們選擇默認即可。點擊確定。
生成頂層文件。
添加仿真文件。
3 Testbench編寫
`timescale 1ns / 1ps
//
// Company:
// Engineer: 一個早起的程序員
//
// Create Date: 2020/12/01 23:08:37
// Design Name:
// Module Name: sim
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module sim(
);
wire [7:0] m_axis_data_tdata_0 ;
wire [31:0] m_axis_phase_tdata_0 ;
reg aclk ;
initial begin
aclk = 1'b0;
end
always #5 aclk = ~aclk;
design_1_wrapper design_1_wrapper_u0(
.aclk_0 (aclk ),
.m_axis_data_tdata_0 (m_axis_data_tdata_0 ),
.m_axis_phase_tdata_0 (m_axis_phase_tdata_0 )
);
endmodule
4 波形分析
1.核心的核心:5M的波形周期則為200ns,因為時鐘只有100M,所以一個周期只能輸出20個點。
2.核心的核心:設置界面Summary顯示Phase Increment值為0xCCCCCC,從波形上也可以看出,兩個點角度差0xCCCCCC。
-
Xilinx
+關(guān)注
關(guān)注
70文章
2137瀏覽量
120386 -
時鐘
+關(guān)注
關(guān)注
10文章
1673瀏覽量
130955 -
DDS
+關(guān)注
關(guān)注
21文章
625瀏覽量
152288 -
Vivado
+關(guān)注
關(guān)注
19文章
797瀏覽量
65854
發(fā)布評論請先 登錄
相關(guān)推薦
評論