DDS 静态参数 - 2021.2 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

DDS 的静态参数定义了如何配置 DDS,例如时钟速率、相位间隔和模式。hls_dds.h 头文件可定义 hls::ip_dds::params_t 结构体,用于设置静态参数的默认值。要使用默认值,可以将参数化结构体直接与 DDS 函数一起使用。

static hls::DDS< hls::ip_dds::params_t > dds1;
dds1.run(data_channel, phase_channel);

下表描述了 hls::ip_dds::params_t 参数化结构体的参数。

表 1. DDS 结构体参数
参数 描述
DDS_Clock_Rate 指定 DDS 输出的时钟速率。
Channels 指定通道数。DDS 和相位发生器最多可支持 16 个通道。这些通道属时分复用通道,可降低每个通道的有效时钟频率。
Mode_of_Operation 指定以下操作模式之一:

标准模式,当累加的相位用于访问 SIN/COS LUT 之前可被截断的情况下使用。

栅格化模式,当所需频率和系统时钟通过有理分式关联时使用。

Modulus 描述系统时钟频率和所需频率之间的关系。

仅在栅格化模式下使用此参数。

Spurious_Free_Dynamic_Range 指定 DDS 所产生音调的目标纯度。
Frequency_Resolution 以 Hz 为单位指定最小频率分辨率,并确定相位累加器使用的相位宽度,包括相关的相位增量 (PINC) 和相位偏移 (POFF) 值。
Noise_Shaping 用于控制是使用相位截断、抖动还是泰勒级数校正。
Phase_Width 设置以下各项的宽度:
  • m_axis_phase_tdata 中的PHASE_OUT字段
  • s_axis_phase_tdata 中的Phase字段(当 DDS 配置为仅 SIN/COS LUT 时)
  • 相位累加器
  • 相关的相位增量和偏移寄存器
  • s_axis_config_tdata中的Phase字段

对于栅格化模式,相位宽度固定为描述有效输入范围 [0, Modulus-1] 所需的位数,即 log2 (Modulus-1) 取整。

Output_Width 设置 m_axis_data_tdata 中的SINECOSINE字段的宽度。此参数提供的 SFDR 取决于所选的Noise Shaping选项。
Phase_Increment 选择相位增量值。
Phase_Offset 选择相位偏移值。
Output_Selection m_axis_data_tdata 中将输出选项设置为SINE和/或COSINE
Negative_Sine 在运行时对 SINE 字段取反。
Negative_Cosine 在运行时对 COSINE 字段取反。
Amplitude_Mode 将振幅设置为全幅或单位圆。
Memory_Type 用于控制 SIN/COS LUT 的实现。
Optimization_Goal 用于控制实现决策的目标是最高速度还是最低资源。
DSP48_Use 用于控制相位偏移和/或抖动噪声加法的相位累加器和解决方案阶段的实现。
Latency_Configuration 根据最优化目标设置核达到最佳值的时延。
Latency 指定手动时延值。
Output_Form 将输出形式设置为 2 的补码或符号和量级。通常,SINE 和 COSINE 的输出为 2 的补码形式。但是,使用象限对称时,可以将输出形式更改为符号和量级。
PINC[XIP_DDS_CHANNELS_MAX] 设置每个输出通道的相位增量值。
POFF[XIP_DDS_CHANNELS_MAX] 设置每个输出通道的相位偏移值。