DDS学习记录

刚上手DDS

dds原理:

DDS 原理_相位控制字-CSDN博客


仿真结果


使用四个DDS产生了四路信号,其中一个是每隔1000clk就增加一个二分之派的相位(红色圈),其他三路是相位依次增加了二分之派(粉色圈),并且每个一段时间就切换了频率,算是把频率和相位都尝试了


IP核设置


第一路信号使用的IP核:


1. Configuration Options

没研究,保持默认

2. 系统时钟

输入的100MHz的时钟

3. 通道数量

一个DDS产生的一个信号
4. 操作模式

没研究,默认

5. 参数选择:Hardware Parameters、System Parameters

选择Hardware Parameter时,可以在IP核中或者程序中输入频率控制字PINC来确定,我使用的是Hardware Parameter的格式,后边会说到如何设置

选择System Parameters时,输出频率可以在IP核中直接输入。(这个模式还没用过)


6. Noise Shaping

默认
7.Hardware Parameters

默认,后续会用到Phase Width这个参数

选择Hardware Parameters后出现的选项,后边会用到Phase Width计算


1. Phase Increment Programmability
这是关键的参数,涉及到输出信号的频率的计算,输出频率是通过这个值得到的,如下计算公式:

f_{out}=\frac{f_{clk} \Delta \theta }{2^{B_{\theta (n))}}}
f_out是输出频率,f_clk是时钟频率,△θ就是Phase Increment ,这是频率控制字PINC,B_θ(n)是Phase Width,在上一页显示是16位,比如:

设置PINC为66,f_clk是100M,Phase Width为16,那f_out则为0.1M

这里的设置方式有三种,Fixed是固定的(没试过),Programmable是可以在程序中输入或者IP里写死,这个写死的数据也是默认的数据,即使valid没有拉高跑出来的就是这个数的波形;最后一个是Streaming,这个和Programmable的区别是输入数据的通路不一样,使用Programmable是config通道,Streaming是phase通道,这个我也没搞清楚是啥意思?????听大哥说,Programmable比Streaming采样慢(我看一下IP核的手册再来补充!!!!!)
2. Phase Offset Programmability
相位偏移值,这个和信号的相位有关,相位的计算公式如下:
POFF=\frac{phase\ast phase\_modulus }{360}

POFF:相位,单位就是角度,范围是0-360

phase:相位控制字的值,和PINC相同,programmable格式下可设置默认的数值

phase_modulus:相位系数,phase\_modulus=2^{phase_width}-1

3. 输出的数据

我这里是选择的sin和cos都输出,输出的位长是32位,低16位是cos,高16位是sin

4. Polarity

默认值

5. Implementation Options

默认值

1-4. AXI Channel Options

还没用到这些,保持默认值

5. Latency Configuration

保持默认

6. Control Signals

选中了 ARESETn,因为使用了 4个DDS,使用同一个复位信号,可以使四路信号同步 

其他三个IP核设置都一样的

工程代码

【免费】使用四个DDS生成四路信号,每个信号相位增加二分之派,其中一路信号每个1000clk频率会发生改变资源-CSDN文库

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值