ip core 中dds 怎么用?

你用的是Xilinx的DDS么?
DDS首先是一个相位累加器,输出的相位去寻址Sine/Cosine查找表!
Xilinx的DDS与相位相关的输入有两个:PINC与POFF,而输入的模式有三种:fixed,programmabe,streaming,并且还可以多通道输出。
你上面说的a,应该是指ADDR吧,ADDR在多通道输出且输入模式为programmabe时才使用!用于指示PINC与POFF是写的哪个通道的!
而DATA也是在输入模式为programmabe时才使用,DATA的值是PINC或POFF的值,具体是PINC还是POFF由REG_SELECT决定!
另外,Xilinx每个IP都有详细的datasheet,在使用IP之前最好阅读一下,你要的东西都可以在datasheet中找到!

可能是你没明白我意思,要不就是我太笨了
,比如这个程序。
在使用时,直接调用mydds模块即可,如
module dds1(DATA, WE, A, CLK, SINE, COSINE);
input [27 : 0] DATA; //经过计算,DATA= 10737418.
input WE;
input [4 : 0] A;
input CLK;
output [9 : 0] SINE;
output [9 : 0] COSINE;
mydds mydds1(
.DATA(DATA),
.WE(WE),
.A(A),
.CLK(CLK),
.SINE(SINE),
.COSINE(COSINE)
);
endmodule
为什么就写了,经计算data=10737418,直接调用就可以了,而不给data传数呢?是不是在生成IP核时就定义好data了?还是还要在写个其他的程序给data和we这些传数呢?我瞟了一眼时序图,但还是不理解······

在使用时,直接调用mydds模块即可,如
module dds1(DATA, WE, A, CLK, SINE, COSINE);
input [27 : 0] DATA; //经过计算,DATA= 10737418.
input WE;
input [4 : 0] A;
input CLK;
output [9 : 0] SINE;
output [9 : 0] COSINE;
mydds mydds1(
.DATA(DATA),
.WE(WE),
.A(A),
.CLK(CLK),
.SINE(SINE),
.COSINE(COSINE)
);
endmodule
为什么就写了,经计算data=10737418,直接调用就可以了,而不给data传数呢?是不是在生成IP核时就定义好data了?还是还要在写个其他的程序给data和we这些传数呢?我瞟了一眼时序图,但还是不理解······

你使用的ISE是哪个版本?
我用的ISE12.1,使用的DDS Compiler4.0,没有A这个端口,只有ADDR这个端口。ADDR是用于DDS多通道的输出。且最多16个通道,所以位宽最大只有4位,而你的A位宽有5位,所以可能我们用的ISE版本不同!你的DDS中的A端口是用来做什么的?
另外,生成DDS IP时有很多选项,要根据自己的设计要求选择合适的模式!
你使用DDS是输出一个固定不变的频率还是频率需要改变?是否有调制?
如果输出频率固定且不需要可编程,在DDS Compiler4.0生成DDS时,不需要DATA这个端口!
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏50分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 | |
【分享评测,赢取加热台】教你五分钟本地部署蒸馏版本的DeepSeekR1-7B被打赏12分 | |
【换取手持示波器】蓝牙音箱更换电池被打赏8分 | |
【换取手持示波器】鼠标更换微动开关被打赏10分 | |
【我要开发板】4.传感器移植被打赏50分 | |
【换取手持数字示波器】RISC-VGCC使用-fno-omit-frame-pointer编译选项实现栈回溯被打赏29分 | |
【分享评测,赢取加热台】+开关电源简述被打赏7分 |