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在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 |