實驗要求:使用50M的系統(tǒng)時鐘分別產(chǎn)生一路12位的10KHZ的正弦波和余弦波
第一步:打開DDS ip核
Configuration Options: 選擇有Sin和Cos模式
System Clk:選擇50MHz
Mode Of Operation:這里可以有兩種選擇Standard模式和Rasterized模式
在Standard模式下:填寫Phase width(相位位寬): 默認(rèn)16位不變,填寫Output width為實驗要求的12位;
利用公式計算:10K=50M*ΔΦ(頻率控制字又名相位增量)/2^16(Phase width)即10K=50M*ΔΦ/2^16? 計算得到ΔΦ。
Phase Increament Programmability 這里選擇fix(固定值)。
填入四舍五入后的ΔΦ的值(轉(zhuǎn)化為二進制)。
后續(xù)通過仿真查看波形。
存在的問題:因為是四舍五入后的ΔΦ,所以產(chǎn)生的波形只是大致10K但是不準(zhǔn)確,采取第二種模式。
選擇Rasterized模式,這里發(fā)現(xiàn)Phase Width已經(jīng)固定了,需要我們填入Modulus? 的值
利用公式:
這里發(fā)現(xiàn)這個公式利用M的值代替了前面2^16(Phase width)的值,所以這里我們只需要自己定義ΔΦ/M的值就可以輸出fout。 這里定義了10K=50M*ΔΦ/M。令M=10000,那么ΔΦ=2。
在這里填入10。
沒有提到的地方都用默認(rèn)。
測試代碼:
module dds(
input sys_clk,
input sys_rst_n,
output ?[11:0]sin_data,
output ?[11:0]cos_data
? ? );
wire [31:0]data;
wire ?[15:0]phase_data;
wire ?phase_valid;
wire ?data_valid; ? ??
assign cos_data={~data[11],data[10:0]};
assign sin_data={~data[27],data[26:16]}; ? ?
dds_compiler_0 your_instance_name (
? .aclk(sys_clk), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// input wire aclk
? .m_axis_data_tvalid(data_valid), ? ?// output wire m_axis_data_tvalid
? .m_axis_data_tdata(data), ? ? ?// output wire [31 : 0] m_axis_data_tdata
? .m_axis_phase_tvalid(phase_valid), ?// output wire m_axis_phase_tvalid
? .m_axis_phase_tdata(phase_data), ? ?// output wire [15 : 0] m_axis_phase_tdata
? .event_pinc_invalid( ) ? ?// output wire event_pinc_invalid
);
endmodule
Note:最高位要取反才能得到連續(xù)的正余弦波。
仿真代碼:
`timescale 1ns/1ns
module tb_dds(
? ? );
reg sys_clk;
reg sys_rst_n;
initial begin
sys_clk<=1'b0;
sys_rst_n<=1'b0;
#20
sys_rst_n<=1'b1;
end
always #10 sys_clk=~sys_clk;
wire [11:0]sin_data;
wire [11:0]cos_data;
?dds u_dds(
.sys_clk ? ? ? (sys_clk) ,
.sys_rst_n ? ? (sys_rst_n ),
.sin_data ? ? ?(sin_data),
.cos_data ? ? ?(cos_data)
? ? );
endmodule
使用第二種模式能夠得到周期更精確的正余弦波。文章來源:http://www.zghlxwxcb.cn/news/detail-847220.html
歡迎評論指正,交流學(xué)習(xí)!文章來源地址http://www.zghlxwxcb.cn/news/detail-847220.html
到了這里,關(guān)于如何使用Vivado DDS ip核產(chǎn)生正余弦波的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!