DDS IP核的使用

DDS基本原理

直接频数字合成器由三部分组成:相位累加器、相位量化器和SINE/COSINE查找表

输出频率fout、频率控制字W、频率控制字位宽N和采样频率fs之间关系:

 在FPGA中,DDS IP核能产生的频率分辨率为:最高输出频率小于fs/2

相位累加器

相位累加器是一种模 N 计数器,具有 2N 个数字状态,这些状态会在每个系统时钟输入脉冲发生时逐渐递增。增量的大小取决于应用于累加器相加级的调谐字 M 的值。该调谐字确定了计数器增量的步长。这将决定输出波形的频率。

相位累加器的长度通常为 24 - 48 位;24 位累加器共有 224(即 16,777,216)个状态。这一数字表示 0 到 2p 弧度之间的相位值数量,或者说是可实现的相位增量。对于 24 位相位累加器,相位分辨率为 3.74 E-7 弧度。如果使用更大的相位累加器,相位增量会变得更加精细。

直观显示相位累加器运行情况的一种方法是,将累加器运行看作一个相位轮(图 2)。

累加器状态具有周期性,显示为一个圆圈上的点。这些点表示累加器的各个相位状态。在本例中,为简单起见,假设累加器有 16 个状态。如上方的图所示,如果调谐字等于 1,那么每个时钟的步长增量均为 1,而且在整个周期内选中了所有状态。

相位轮的右侧显示的是每个状态的模拟输出。由于这是一个量化器件,因此模拟输出将保持其当前状态,直到时钟将相位轮推进到下一个状态。输出波形由包含 16 个值的单个量化正弦波周期组成。

在下方的图中,调谐字的值设置为 2。这时的相位轮上每隔一个状态被选中。对应的模拟输出由两个周期组成,每个周期有 8 个幅值,因此总共有 16 个状态。由于调谐字设置为 2,因此输出频率现在是之前所获值的两倍。

DDS IP核的使用

1.DDS的配置模式--相位产生器、SIN/COS LUT或者相位累加器、DDS

2.参数配置

1.system requirements

1)system clock:统时钟(同时也是采样频率),直接影响DDS输出波形的频率

2)Number of channels 通道数,一般默认为1

3)Mode of operation 分为两种模式,详情可翻阅Xilinx的官方手册,一般选择标准operation模式,标准operation模式下,输出频率频率=已知时钟频率*频率控制字(相位增量)/2^相位累加器位宽。
rasterized模式下,把分母换成可直接调控的M,方便输出一些整数频率波形。

4)Parameter selection分为两种模式,Hardware Parameter 和 System Parameter

Hardware Parameter模式下需要选择是否需要整形噪声Noise Shaping以及输出的相位位宽核数据位宽

System Parameter模式包含Spurious Free Dynamic Range(SFDR)、Frequency Resolution(频率分辨率)、Noise Shaping三种需要配置的参数,SFDR与输出的数据位宽有关,Frequency Resolution与相位位宽有关

2.system Parameter

假设我要求输出数据宽度为8,则SFDR=48。

若 相位位宽为32bit则Frequency Resolution = 10M/2^32=0.002328

1.Phase increment programability

相位增量PINC(即频率控制字):固定、可编程和流式三种状态

fixed: PINC在生成时被固定,并且不能在运行时被更改。固定的,需要最少的资源。

programmable: PINC值可以在运行时使用配置通道进行更改。建议当DDS频率在不同的操作模式之间改变时使用。

streaming: PINC值直接从输入相位通道获取。当PINC值必须经常改变时,或者当需要调频时,建议这样做

Resync:当选中时,s_axis_phase通道有一个RESYNC字段。当断言时,这一位会减弱相关通道的累积阶段。该周期的累积阶段的值是伴随RESYNC断言的PINC值,加上POFF值。

2.Phase offset programability

相位偏移量POFF(即相位控制字):无、固定、可编程和流式四种状态

None:没有相位偏移功能,且未生成所需的硬件。这将节省FPGA资源。

Fixed:POFF在生成时是固定的,在运行时不能更改

Programmable:POFF值可以使用配置通道进行更改。当DDS阶段在不同的操作模式之间改变时,建议这样做

Streaming:POFF的值可以使用输入的相位通道来改变。当POFF值必须经常改变时,或者当需要相位调制时,建议这样做。

3.Output

Output Selection: 可以选择单独生成cos和sin,也可以选择生成{sin,cos}

Polarity:m_axis_data_tdata的sin场和余弦场可以被倒置。这允许使用共轭输出将作为发射混频器的DDS转换为接收混频器;因此,除了这里两个选择的值外,两个实例都是相同的

Amplitude Mode:有两种 Full Range 和 Unit Circle

Full Range:对通信应用,其中最大振幅在两者的补充表示,但由于对自动增益控制的期望,振幅值不那么重要。对于非泰勒模式,全范围模式的目标振幅为1-2^{​{_{-(Output Width-2))}}^{}},而对于泰勒模式,振幅在这个值和1之间变化。注意,这里的振幅首先归一化为输出二值点的宽度。一个8位输出的二进制振幅为100000000-10,值在0111111111111110之间,分别小于1和多于-1

Unit Circle:对于DDS输出振幅值重要的应用,例如FFT旋转因子生成。当单位圆时,DDS输出振幅为半全范围(即,值范围为01000..(+0.5)。到110000..(-0.5))。当振幅在全范围内降低了2倍时,SDFR减少了6 dB。增加SFDR或输出宽度,以满足此要求。

4.Implementation Options 

可以不变,保持默认

其他界面可以保持默认

参考文献
直接数字合成器DDS基础知识 - 文库 - DigiKey得捷电子

DDS的理解及IP核的使用_dds ip核-CSDN博客

征战FPGA之使用IP核dds_compiler获取任意频率时钟和正余弦波形_dds compiler-CSDN博客

数据手册:https://www.xilinx.com/support/documentation/ip_documentation/dds_compiler/v6_0/pg141-dds-compiler.pdf

Vivado是一款由Xilinx开发的集成电路设计工具,用于设计和实现FPGA和SoC。DDS IP核是Vivado中的一个IP核,用于生成数字频率合成器。根据引用\[2\]中的代码,可以看出DDS IP核的配置是通过控制字来实现的。控制字的值决定了输出信号的频率和相位。在引用\[3\]中的tb文件中,可以看到控制字的值被设置为66和6666,这将影响DDS IP核生成的输出信号的频率。通过修改控制字的值,可以实现不同的频率输出。在Vivado中使用DDS IP核,需要将IP核添加到设计中,并根据需求配置IP核的参数,如控制字的值、时钟频率等。然后,将设计综合、实现和生成比特流文件,最后下载到目标设备中进行验证和测试。 #### 引用[.reference_title] - *1* *2* [Vivado DDS IP核使用、仿真、多相处理和相关计算验证](https://blog.csdn.net/Popplio/article/details/126711613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [FPGA自学笔记--DDS ip核使用(vivado)](https://blog.csdn.net/lgk1996/article/details/123245246)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值