vivado提供了DDS IP核可以輸出正余弦波形,配置方法如下
打開VIVADO,選擇IP Catalog

輸入DDS,找到DDS IP核,雙擊打開

打開IP核配置,parameter Selection選擇System Parameters
設(shè)置System Parameters參數(shù):
Spurious Free Dynamic Range的設(shè)置,這個(gè)參數(shù)與輸出數(shù)據(jù)的寬度相關(guān)。

我需要位寬為10位的輸出,因此Spurious Free Dynamic Range設(shè)置為10*6=60
Frequency Resolution的設(shè)置,這個(gè)參數(shù)與輸出相位數(shù)據(jù)的寬度相關(guān),如果想要得到16bit的寬度,channels為1,系統(tǒng)輸入時(shí)鐘為100MHz
Frequency Resolution = 100000000/2^16 = 1525.8789025
設(shè)置如圖:

設(shè)置Phase Increment Programmability和Phase offset programmability為固定模式,輸出為正弦波

設(shè)置輸出頻率10M

查看配置好的DDS參數(shù)

頂層程序
`timescale 1ns / 1ps module top( input clk_100m, input rst_n, ///DAC0/ output [9:0]DAC0_D, output DAC0_CLK, output DAC0_PD ); wire [15:0]dac_data; wire phase_tvalid; wire [15:0]phase_data; wire dds_valid; dac dac_ini( .clk_100m(clk_100m), .dac_data(dac_data), .DAC0_D(DAC0_D), .DAC0_CLK(DAC0_CLK), .DAC0_PD(DAC0_PD) ); dds_compiler_0 dds_compiler_0_ini( .aclk(clk_100m), .m_axis_data_tvalid(dds_valid), .m_axis_phase_tvalid(phase_tvalid), .m_axis_phase_tdata(phase_tdata), .m_axis_data_tdata(dac_data) ); endmodule
testbench
`timescale 1ns / 1ps module top_tb( ); reg clk_100m; reg rst_n; wire [9:0]DAC0_D; wire DAC0_CLK; wire DAC0_PD; initial begin clk_100m = 1‘b0; rst_n = 1’b1; #10 rst_n = 1‘b0; #500 rst_n = 1’b1; end always #5 clk_100m = ~clk_100m; top top_ini( .clk_100m(clk_100m), .rst_n(rst_n), .DAC0_D(DAC0_D), .DAC0_CLK(DAC0_CLK), .DAC0_PD(DAC0_PD) ); endmodule
testbench
`timescale 1ns / 1ps module top_tb( ); reg clk_100m; reg rst_n; wire [9:0]DAC0_D; wire DAC0_CLK; wire DAC0_PD; initial begin clk_100m = 1‘b0; rst_n = 1’b1; #10 rst_n = 1‘b0; #500 rst_n = 1’b1; end always #5 clk_100m = ~clk_100m; top top_ini( .clk_100m(clk_100m), .rst_n(rst_n), .DAC0_D(DAC0_D), .DAC0_CLK(DAC0_CLK), .DAC0_PD(DAC0_PD) ); endmodule
仿真時(shí)注意DDSIP核輸出的是有符號(hào)數(shù),因此需要將DDS輸出的數(shù)據(jù)設(shè)置成有符號(hào)數(shù),即將仿真數(shù)據(jù)radix為signed decimal

注意:因?yàn)镈DSIP核輸出的是有符號(hào)數(shù),因此雖然我們?cè)O(shè)置的是10位的位寬,但輸出數(shù)據(jù)共有16位,因?yàn)樾枰呶粊?lái)作補(bǔ)碼。在使用時(shí)只用低10位即可。
編輯:lyn
-
DDS
+關(guān)注
關(guān)注
22文章
688瀏覽量
156935 -
IP核
+關(guān)注
關(guān)注
4文章
345瀏覽量
52117 -
Vivado
+關(guān)注
關(guān)注
19文章
860瀏覽量
71428
發(fā)布評(píng)論請(qǐng)先 登錄
驅(qū)動(dòng)板PCB布線的注意事項(xiàng)
Vivado浮點(diǎn)數(shù)IP核的握手信號(hào)
Vivado浮點(diǎn)數(shù)IP核的一些設(shè)置注意點(diǎn)
別讓這些細(xì)節(jié)毀了PCBA!焊接注意事項(xiàng)清單
美國(guó)Odyssey奧德賽電池充電注意事項(xiàng)全解析
IGBT器件的防靜電注意事項(xiàng)
手機(jī)喇叭氣密性檢測(cè)儀的注意事項(xiàng)
淺析Vivado的IP核DDS使用方式及注意事項(xiàng)
評(píng)論