ZHCSYD5 June 2025 DAC39RF20
ADVANCE INFORMATION
任何 DSP 通道都可以在 DDS 矢量模式下运行(请参阅 DSP_MODEn)。在该模式下,内插滤波器被禁用,NCO/混频器逻辑被重新用于生成用户定义的波形(由 DDS_VEC 定义)。DSP 无需从 JESD 接口获取任何输入样本。
| 术语 | 定义 |
|---|---|
| 矢量字段 | 每个 DDS 矢量由多个字段组成,这些字段定义用于生成波形段的信号属性。示例字段包括 PHASE_START 和 FREQ_START。 |
| Vector | 矢量是矢量表中的一个条目,包含定义波形段的字段(请参阅 DDS_VEC) |
| 矢量表 | DDS 使用的矢量表(请参阅 DDS_VEC)。 |
| 矢量块 | 分配给 DDS 通道的矢量表的一部分(DDS_VEC 的子集) |
| 波形段 | DDS 根据矢量表中的单个矢量所生成的信号。 |
| 波形 | 通过播放一系列波形段生成的信号 |
| 停滞状态 | 矢量处理器等待触发事件时进入停滞状态。基本上在启动阶段发生这种情况。若加载的矢量设置了 VTRIG_MODE 字段且触发队列中无有效触发或未排队,也会进入停滞。通常,DDS 输出在矢量处理器处于停滞状态时静音;但保持模式会对此设定一个例外情况。 |
DDS 矢量模式合成器如图 7-41 所示。主要特性包括:
矢量表(由 DDS_VEC 定义)被划分为多个区块,分别分配给不同的 DSP 通道。DSP 通道被划分为若干通道集(通道 0 和通道 2 为一组,通道 1 和通道 3 为另一组)。当一个组中的两个 DSP 通道都处于 DDS 矢量模式时,这两个通道将共享存储器。如表 7-10 所示。每个 DDS 通道按升序执行其分配的矢量块中的矢量,从最低索引开始。当 DDS 通道完成一个矢量的播放时,会检查该矢量的 LAST_VEC 字段。如果 LAST_VEC=1,则通道将从其分配的矢量块起始处重新开始执行。
| 矢量范围 | 如果通道 2 未处于 DDS 矢量模式 | 如果通道 0 未处于 DDS 矢量模式 | 如果通道 0 和 2 都处于 DDS 矢量模式 |
|---|---|---|---|
| DDS_VEC[0:63] | 通道 0 | 通道 2 | 通道 0 |
| DDS_VEC[64:127] | 通道 2 |
| 矢量范围 | 如果通道 3 未处于 DDS 矢量模式 | 如果通道 1 未处于 DDS 矢量模式 | 如果通道 1 和 3 都处于 DDS 矢量模式 |
|---|---|---|---|
| DDS_VEC[128:191] | 通道 1 | 通道 3 | 通道 1 |
| DDS_VEC[192:255] | |||
| DDS_VEC[256:319] | 通道 3 | ||
| DDS_VEC[320:383] |
上表中的映射允许通道 0 和 2 共享资源。同样,通道 1 和 3 共享资源。
系统为通道 1 和 3 分配了更多内存。这种分配策略在 DDS 矢量模式与 DUC 或 DDS 流模式混合应用时,能够最大化可用内存资源。在这些混合配置中,DDS 矢量模式适用于通道 1、2 和/或 3,并不适用于通道 0。
矢量处理器负责读取每个矢量,对参数进行格式化和缩放处理,并在适当的持续时间内将这些参数应用于 DDS 累加器。
表 7-12 定义了矢量处理器生成的参数的方式。所有对 DDS 矢量字段的引用均针对当前正在播放的具体矢量的对应字段。
| 信号 | 格式 | 说明 |
|---|---|---|
| step_exp | 整数 |
步进指数。范围是 -4 至 -32。该值的作用是为幅度和频率的步进应用一个与矢量持续时间相匹配的缩放因子。较长的矢量使用较小的缩放因子(较大的 STEP_EXP 值)。 step_exp = -STEP_EXP - 1 每个矢量的 STEP_EXP 字段的建议值为: STEP_EXP = floor(log2(NUM_SAMP_M32+32)) - 1 |
| amp_start | 49 位,有符号 |
振幅累加器的初始值。在矢量开始时应用。 amp_start = AMP_START * 233 可将 amp_start 设置为零,以在等待触发信号时使 DDS 输出静音。 |
| amp_step | 49 位,有符号 |
振幅步进累加器的初始值。 amp_step =AMP_STEP * 233 * 2step_exp + amp_step/2 注意:“amp_step2/2”项确保振幅值的序列遵循更简单的二次方程。 |
| amp_step2 | 49 位,有符号 |
振幅步进累加器(二阶项)的步进。在整个矢量期间生效。该参数仅在启用二阶振幅时适用(请参阅 DDS_AMP2) amp_step2 = AMP_STEP2 * 233 * 4step_exp |
| freq_start | 65 位 |
频率累加器的初始值。在矢量开始时应用。 freq_start =FREQ_START * 217 + freq_step/2 注意:“freq_step/2”项确保相位值的序列遵循更简单的二次方程。 注意:启用二阶振幅时(请参阅 DDS_AMP2),FREQ_START 的低 16 位用于振幅控制,并且上面针对 freq_start 的公式假定这些 16 位为零。 |
| freq_step | 65 位 |
频率累加器的步进值。在整个矢量期间生效。 freq_step = FREQ_STEP * 233 * 2step_exp |
| phase_start | 65 位 |
相位累加器的初始值。在矢量开始时应用。 phase_start = PHASE_START * 249 |
| vec_start | 1 位 |
控制信号,指示矢量开始。促使累加器初始化。置位持续一个采样周期。 如果矢量处理器遇到需要触发的矢量(队列中没有触发信号),则 vec_start 信号将置为有效,但 amp_start 和 amp_step 将设置为零以使 DDS 输出静音。触发发生后,VEC_START 再次被置为有效,但这次是正常配置 AMP_START 和 AMP_STEP 以启动矢量的情况。 如果保持模式处于活动状态,则不会生成静音。amp_start 和 amp_step 信号不会被设为零,且响应触发事件时,vec_start 不会再次脉冲触发(因为矢量已在播放)。 |
| load_phase | 1 位 | 当保持模式禁用时,oad_phase 信号与 vec_start 信号匹配(相位累加器加载 phase_start)。当保持模式启用时,load_phase 保持低电平,以实现相位连续运行。 |