1. RFSOC的电源设计
引脚 | 符号 | 典型值(V) | 说明 |
1 | ADC_AVCC | 0.925V | ADC和PLL电源 |
2 | DAC_AVCC | 输入缓冲区和PLL电源 | |
3 | ADC_AVCCAUX | 1.8V | 核心DAC和PLL电源 |
4 | DAC_AVCCAUX | DAC和PLL电源 | |
5 | DAC_AVTT | 2.5V/3.3V | 片上50 欧姆端接电阻器的端接电压 |
1.1. DAC_AVTT的电压配置
RF-DAC输出电流可配置,支持20 mA或32 mA两种工作模式。在20 mA模式下,将DAC_AVTT设置为2.5V;在32 mA模式下,将其设置为3.0V,以保持线性性能(来自PG269)。
注意!3.0V DAC_AVTT不得在20 mA模式下使用。此举可能导致设备超过其最大额定值,并影响设备可靠性。输出电流可在IP核心配置界面的“高级”选项卡中设置(参见下图)。

当启用“可变输出电流(VOP:Variable Output Current )”模式时,输出电流应符合 Zynq UltraScale+ RFSoC 数据手册《直流与交流开关特性》(DS926)中的规定。DAC_AVTT 必须设置为 3.0V。
1.2. 电源供电序列控制(第3代/ DFE)
根据PG269手册的“Power-up Sequence”章节描述,为确保安全运行,手册PS269推荐电源采用特定的通电与断电顺序。下图展示了该推荐顺序:ADC_AVCC电源应在ADC_AVCCAUX电源通电后通电,且应在ADC_AVCCAUX电源断电前先断电。
只要遵循/遵守特定顺序,各电源斜坡之间无需设置特定延迟时间。

若所采用的电源管理方案配备了大多数稳压器共有的“Power Good”(电源正常)和“Enable”(启用)引脚,则可启用此功能。ADC_AVCCAUX的“Power Good”指示灯可作为ADC_AVCC稳压器的启用控制信号。
可参考AMD ZCU216客户板上的电源分配网络作为参考,或联系当地的FAE(现场应用工程师)。对于大多数应用场景而言,AMD推荐采用全开关模式电源解决方案作为数据转换器的模拟电源,因为其能比基于低压差(LDO)技术的方案实现更高的能效。
2. RFSOC的时钟架构
RFSOC的射频子系统需要提供高质量,低噪声,低抖动的时钟,用于ADC,DAC的参考时钟或采样时钟。
ZU47DR芯片的射频子系统需要提供的时钟信号如下:
ADC_CLK : ADC 模块的参考时钟或采样时钟。
DAC_CLK : DAC 模块的参考时钟或采样时钟。
AMS_SYSREF: 连接到专用引脚的同步信号。
PL_SYSREF : 连接到PL端的同步信号。
PL_REF_CLK : 连接到PL端的同源时钟,用于PL端的数据路径。
2.1. 时钟输入
在大多数情况下,每个RF-ADC或RF-DAC模块都拥有独立的时钟输入端。设计中无需额外配置时钟输入缓冲器,因为电流模式逻辑(CML)的时钟输入缓冲器已集成在模块架构中。该时钟输入缓冲器既可作为模块的采样时钟,也可作为模块 PLL 的参考时钟。CML时钟输入端有一个100Ω阻抗的片上差分输入终端 。
时钟输入缓冲器配备有检测电路,用于监测外部时钟输入端的活动状态。当存在时钟信号时,输入缓冲器会被激活;若无时钟信号,缓冲器的输出端会自动进入稳定状态。一旦时钟信号中断,核心会立即关闭该模块,但在时钟信号恢复后,系统将自动重启该模块(无需用户干预)。每当核心关闭模块时,复位计数寄存器都会相应递增。
当 PLL 未被使用时,时钟缓冲器的输出会通过多路复用器传输至 RFADC 或RF-DAC时钟网络。当 PLL 被使用时,时钟缓冲器的输出会被传输至 PLL ,用作参考时钟信号。
在每个AMDZynq™UltraScale+™RFSoC中,每个封装均配备一对专用输入 SYSREF 引脚。该 SYSREF 负责多tlie及多设备间的同步控制。对于多tile设计, SYSREF 连接至主tile,信号需从该tile内部传输至设计中使用的所有其他tile。
可通过使用 RFdc 软件 API 检查输入引脚是否存在时钟信号。若未检测到时钟信号,受影响的 RF-ADC 和 RF-DAC 模块将无法启动,并持续保持在“时钟检测”状态。
2.2. Tile时钟架构
以下图示展示了tile的高级时钟结构。该时钟结构由单一时钟源构成,该时钟源可来自tile PLL ,或直接来自时钟输入引脚。
为使芯片保持低抖动和高速时钟结构,每个射频模数转换器(RF-ADC)或射频数模转换器(RF-DAC)均接收一条单一输入时钟信号,并对该信号进行分频,以便在芯片内部执行专用的信号调理功能。


从主tile分频器输出的时钟信号可用于驱动PL模块。当使用该输出时钟时,IP核心会自动实例化一个 BUFG_GT 缓冲器。
下图展示了典型Zynq™UltraScale+™RFSoC射频数据转换器IP核心的时钟连接结构。该IP核心会根据AMDVivado™IDE中的配置选择,自动实例化并连接各组成模块(RFADC 和RF-DAC模块)。

在大多数应用场景中,AXI4-Stream时钟为多个转换器所共用,并由外部时钟提供(如前图所示)。该时钟必须源自与射频模数转换器(RF-ADC)和射频数模转换器(RF-DAC) tile的采样时钟及/或参考时钟相同的主时钟源。另一种方案是利用其中一个RF-DAC或RF-ADC tile的输出时钟信号来生成AXI4-Stream时钟,具体实现方式如下图所示。

3. RFSOC的时钟转发特性
Zynq UltraScale+ RFSoC集成了多个RF-ADC和RF-DAC tile。每个 tile均独立运行,采用各自的 tile时钟(T1)。该T1时钟可来自外部时钟、片上 PLL 或分布式采样时钟。
片上时钟分配网络允许某个tile单元将其时钟信号转发给转换器tile组内的相邻tile单元。tile组是指一组相邻的tile单元;根据应用需求,可构建多个tile组,直至这些tile组完全由器件tile序列中的连续tile单元构成。一个tile组可包含射频数模转换器(RF-DAC)tile单元、射频模数转换器(RF-ADC)tile单元,或两者兼有。tile组对设计施加了以下约束条件:
• 每个tile组只能包含一个源tile。
• tile组中除源tile外的所有tile均必须使用转发时钟;禁止跳过使用不同时钟的tile。
• 当tile组同时包含 RF-DAC tile和 RF-ADC tile时,源tile必须为 RF-DAC tile;禁止从 RF-ADC tile向 RF-DAC tile转发时钟信号。
来自源tile的转发时钟信号可以是:
1,外部采样时钟
2,使用内部PLL的外部参考时钟
3,使用片内PLL生成的采样时钟
每个Tile都可以独立配置,工作在不同的采样时钟频率上,采样时钟可以来自于外部高频时钟输入,可以来自于每个Tile内部PLL倍频后的时钟,也可以来自于其他Tile分发的参考时钟。
时钟转发的方式共分为两种,一种是参考时钟转发,一种是采样时钟转发。
3.1. 参考时钟转发
参考时钟转发,是指外部时钟芯片提供低噪声低频时钟到一个ADC/DAC Tile的专用时钟管脚,该时钟将在Tile间转发,通过每个Tile内的PLL倍频出所需的采样时钟;

外部输入参考时钟的参考时钟转发
3.2. 采样时钟转发
3.2.1. 外部输入采样时钟
从外部时钟芯片直接提供低噪声高频的采样时钟到一个ADC/DAC Tile的专用时钟管脚,采样时钟将在Tile间分发,无需通过内部PLL倍频,直接提供给ADC/DAC Channel作为采样时钟;

外部输入采样时钟的采样时钟转发
3.2.2. 外部输入参考时钟
时钟芯片提供低噪声低频时钟到一个ADC/DAC Tile的专用时钟管脚,该时钟在此Tile内通过PLL倍频到采样频率,随后将此采样时钟在Tile间分发。

外部输入参考时钟的采样时钟转发
3.3. 多片同步时钟方案
用于多片同步方案时,最优的时钟方案为外部输入采样时钟的采样时钟转发,保证到达各个芯片的时钟均为同步时钟。

外部输入采样时钟的采样时钟转发模式
手册XAPP1349中有描述,- 直接使用良好对齐的外部采样时钟,而不是多个片上射频pll,将获得更好的对齐性能 。

4,RFSOC的同步机制
在任何具有多个独立转换器和时钟结构的系统中,都有几个潜在的延迟不确定性来源,如时钟分频器相位、 NCO 相位、FIFO延迟、时钟倾斜和数据倾斜。离散的转换器已经使用标准化了的JESD204B SYSREF方案进行同步,AMD Zynq™ UltraScale+™RFSoCs同样使用SYSREF实现了一个互补的、简化的方案。
在AMD Zynq™ UltraScale+™RFSoCs中,转换器的集成导致消除了用于数据通信的串行收发器链路。然而,为了为PL设计提供一个灵活的时钟和数据字数,每个RF-ADC和RF-DAC都包含了独立的 gearbox FIFOs。这些FIFOs允许数据在PL时钟域之间传输到转换器样本时钟域,但这导致了一个不确定性的延迟,也必须通过使用SYSREF进行测量和校正 。

多片同步的时钟架构
不确定延迟产生的原因:
lData Path:包括在PL 和 RF Convert 之间的整个数字信号处理流程,比如混频、抽取等。RFSoC 的每一个 tile 由多个通道组成,多通道中使用 NCO 时为了保证通道是同步的,因此需要每一次重启后重置 NCO。
lDual Clock FIFO:位于RF Convert 以及 PL 之间,用于解决跨时钟域问题。对于大部分跨时钟域的 FIFO 来说,重启后通过 FIFO 的传播延迟是不确定的,这会导致不同tile 之间不确定的时延。使用多片同步 (Multi-Tile Synchronization, MTS) 可以用来测量并补偿这个延迟。
4.1. 同步步骤
在高层次上,执行的同步步骤如下:
1.启用所有时钟和 SYSREF 发生器:模拟和数字时钟都必须在同步开始之前运行并锁定。对时钟的任何更改都需要重新同步。
2.SYSREF 模拟捕捉:通过自动调整用于建立/保持的内部 SYSREF 可编程延迟,确保安全地捕获 SYSREF。 这是针对每个 blocks 完成的,并且需要多个周期性 SYSREF 脉冲,以便可以确定最佳延迟值。 因此,MTS 进程需要一个周期性的 SYSREF 时钟。
3.时钟分频器复位:当所有块都安全地捕获 SYSREF 时,随后的 SYSREF 边沿用于同步所有分频器相位。
4.FIFO 延迟测量和调整:模拟 SYSREF 和 PL_Sysref 信号用于测量通过每个 FIFO 的延迟。使用所有 blocks 的测量值来调整延迟,使其匹配。
5.将数字特征同步:当启用会影响 tiles 对齐的数字特征时,必须使用 SYSREF 动态更新事件初始化/更新相关的数字功能块。 这些数字特性包括精细混频器/NCO、QMC 和粗延迟。
步骤 2、3 和 4 由 IP 内核和 RFdc 驱动程序 API 自动处理。
当 API 用于修改影响 FIFO 时钟速率或宽度的数字设置时,必须重新启动同步过程。 在 MTS 过程中涉及的任何 tiles 断电或重新启动后,同步过程也必须重新启动。
MTS机制中对RFSoC或转换器块的数量没有限制,类似的架构可以扩展到在系统中包含更多的RFSoC芯片。
4.2. FIFO延迟测量
RFSoC 为 PL 端设计了可以灵活调整的时钟和数据字数配置,每个 RF-ADC 和 RF-DAC 数字信号处理 tile 都包含独立的跨时钟域的 FIFO,用来将数据在 PL 时钟域和 RF Convert 采样时钟域对应的模块之间传输,这可能导致跨时钟域 FIFO 的不确定性延迟,从而导致不同 tile 之间延迟的不确定性。使用多片同步 (Multi-Tile Synchronization, MTS) 可以用来测量并补偿这个延迟。

对于任何RFSoC,MTS将将 analog_sysref的上升沿通过FIFO从ADC tiles 发送到PL,DAC的方向则相反。一旦在PL中检测到这个上升的边缘,计数器就会停止。这个计数器由PL中 PL_sysref 的每个上升沿重置,并由FIFO中的每个字增加。计数器停止后,计数器值表示此FIFO的相对传播延迟。对设备中选择的所有块运行相同的测量,MTS得到所有块的FIFO不匹配,然后通过添加额外的延迟对它们进行对齐,以确保通过每个FIFO的延迟与最大的测量延迟相匹配。当系统包含多个 rfsoc 时,系统只需要为每个设备调用MTS函数。
用户应该注意,测量的FIFO延迟是一个相对值,并不代表在FIFO之间的物理传播延迟,因为测量的延迟取决于计数器参照 analog_sysref 的上升边重置的时间。
4.3. 确定性多块同步 API 使用
多片API 使用保证了每组中 blocks 之间的对齐。 但是,通过 Tile 的总延迟可能会因与 FIFO 读取时钟周期相关的字数除以读取字数而变化。对于总延迟必须恒定的应用程序,可以启用 API 中的 Target_Latency 设置。此设置将所有小于目标的延迟调整为目标值;任何大于目标的测量值都会导致错误消息,而 MTS 仍然通过忽略 Target_Latency 来对齐所有 tiles 。
为防止出现此错误,必须首先通过运行XRFdc_MultiConverter_Sync 并将目标设置为 -1 来确定用户 FIFO 和 tile 配置的 Target_Latency 值。 返回的延迟值(加上一些余量)必须设置为未来运行的目标值。
要应用的余量值是根据采样时钟指定的。对于 RF-ADC 块,该值必须是 FIFO 读取字数乘以抽取因子的倍数,对于 RF-DAC 块,该值可以是常数 16。
4.4. SYSREF 信号要求
SYSREF 信号是系统的时序参考,因此必须正确处理以确保它不会降低同步性能。 该信号具有以下要求。
1.SYSREF 信号必须是高质量、自由运行、低抖动的方波,以使其能够被模拟采样时钟一致地捕获。
2.SYSREF 频率必须满足以下要求:
a.如果同步具有不同采样频率的 RF-ADC 和 RF-DAC 块,则频率必须是以下的整数约数:GCD(DAC_Sample_Rate/16, ADC_Sample_Rate/16)
b.SYSREF 还必须是对其进行采样的所有 PL 时钟的整数约数。 这是为了确保始终同步采样周期性 SYSREF。
c.小于 10MHz
3.SYSREF 在传递给内核之前必须被 PL 安全捕获: PL_SysRef 到 PL_clock 的建立/保持必须作为用户设计的一部分进行处理。可以使用 PCB 上的时钟生成来促进这一点。
4.模拟 SYSREF 和 PL SYSREF 必须是相同的频率并且具有恒定的相位关系。如果需要确定性延迟,模拟 SYSREF 和 PL SYSREF 必须在复位到复位周期内保持相同的相位差。
5.对于 MTS 同步,包括分频器相位同步和FIFO 延迟同步,模拟 SYSREF 和 PL SYSREF 在 MTS 过程期间必须是连续时钟。 它可以是交流耦合或直流耦合。SYSREF 信号可以在 MTS 程序完成后关闭。 请注意,它们应该在 MTS 函数调用之前打开并稳定下来。
6.如果模拟 SYSREF 用于跨多个RFSoC 同步 DUC/DDC 混频器 NCO 的相位,则它必须进行直流耦合,并具有生成单个或多个脉冲波形的能力。
SYSREF 频率计算示例

这些等式生成满足 RFADC/RFDAC 要求的 SYSREF 频率 RF-DAC 内部时钟。 SYSREF 信号也被 PL 同步捕获; 因此,SYSREF 频率也必须是驱动 IP 接口的 PL 时钟或与 PL SYSREF 交互的任何其他时钟的约数。
4.5. 数字特征同步(NCO同步)
同步完成后,时钟的公共状态在所有 tiles 之间共享。 使用动态更新事件的数字数据路径功能也可以使用相同的同步基础设施。这方面的一个例子是构成 DDC 和 DUC 链中精细混频器功能的 NCO。NCO 配置可以使用 SYSREF 在多个tile和多个RFSoC 上同时更新 。每个 NCO 都支持频率和相位的动态设置,并将在 SYSREF事件 或其他更新事件下进行更新。
同样,有一个选项可以在 SYSREF事件或其他更新事件上重置 NCO 的相位。对于单块同步,块事件可用于同步块内的 NCO。对于多块同步,应使用 SYSREF 事件。
多个器件的NCO同步的流程如下:
需要直流耦合和脉冲 SYSREF 时钟。
1,将时钟发生器设备编程为使用脉冲 SYSREF 模式; 置于空闲状态(不产生脉冲)。
2,等待模拟时钟稳定。
3,为所有涉及的设备启用模拟 SYSREF 接收器(此时应该没有检测到脉冲)。
4,在所有设备上执行命令以启动混频器设置、NCO 相位重置、QMC 和/或粗略延迟。
5,等待 API 调用成功返回,以确保所有寄存器写入都已完成。
6,从模拟 SYSREF 向所有相关设备发出一个同步脉冲,用于同步触发。
7,等待足够长的时间以确保检测到上升沿; 此时更新开始。
8,使用 API 命令禁用模拟 SYSREF 接收器。

- -THE END- -
往期精选


FPGA技术江湖广发江湖帖
无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。
FPGA技术江湖微信交流群

加群主微信,备注姓名+学校/公司+专业/岗位进群
FPGA技术江湖QQ交流群

备注姓名+学校/公司+专业/岗位进群
