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这个端口!
回复
打赏帖 | |
---|---|
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 |