摘要:本应用笔记讨论了4.3Gsps下行
电缆直接
RF合成DAC MAX5881与现场可编程门阵列(
FPGA)的
接口技术。讨论的重点是MAX5881高速数字输入与Xilinx® Virtex™-5 FPGA的接口时序。这里讨论的技术同样适用于其它多种FPGA和定制
ASIC。
介绍由于MAX5881 4.3Gsps下行电缆直接RF合成
DAC具有宽带特性,相比窄带DAC,它的数据接口需要更高的工作频率。通常,设计宽带数据接口时,需要注意确保其工作可靠、无误。
接口架构FPGA功能可以有多种不同组合,有几种接口架构可供选择,其中之一如图1所示。这种架构可以支持较宽的工作频率范围,并且对处理过程、电压和温度(PVT)变化有较好的容限。本应用笔记重点讨论这种架构的特征。通过数据接口的具体时序分析,突出了该架构相比其它架构的优点。
图1. MAX5881与Xilinx Virtex-5 FPGA的接口(CLKDIV = 0,DDR数据接口架构)
时钟MAX5881具有独立的模拟和数字时钟。MAX5881为数字数据接口提供时钟输出。由于作为数据源的FPGA并不是数据时钟源,所以,需要使用一个“系统同步”的数据接口¹。需要注意的是,MAX5881的数据时钟输出DATACLKP/DATACLKN抖动非常小,原因是它直接来自于高质量的模拟时钟CLKP/CLKN输入。
对FPGA DCM²使用外部时钟反馈,以自动补偿FPGA固有的随温度变化的输出数据时钟。设计外部时钟反馈路径,使其严格匹配MAX5881的DATACLKP/DATACLKN输出到FPGA内部数据路径的延时。这确保了由数字时钟管理器(DCM)提供的时钟补偿与FPGA时钟、数据路径的温度漂移相一致。使时钟反馈信号的
PCB路径与数据路径加上DATACLK路径长度相等,以确保FPGA的数据输出变化与DATACLK边沿一致。给时钟反馈路径加上额外的延时,可以使数据与时钟保持一致。设计或调整延时以确保MAX5881从数据建立到保持时间段内的数据稳定性。可以采用延长时钟反馈信号路径长度、或者在反馈路径上增加一个FPGA ODELAY器件的方法,以实现这种额外的延时。
数据速率把MAX5881的CLKDIV引脚设置为低电平,FPGA配置为双倍率(DDR)输出数据格式。在这种情况下,DATACLKP/DATACLKN信号的频率是MAX5581 CLKP/CLKN引脚输入时钟频率的四分之一。对于MAX5581的更新速率,CLKP/CLKN的频率是2.0GHz。使得DATACLKP/DATACLKN的频率为500MHz。这个500MHz的时钟信号用来驱动FPGA的串行器(OSERDES),串行器配置为在时钟的上升和下降沿都会输出数据。因此FPGA输出数据的周期是1ns (或者1.0GHz)。由于Xilinx不允许DCM (或者此种情况下的PLL)配置成外部时钟反馈和多重输出时钟,配置CLKDIV = 0,可以避免生成一个双倍频率时钟驱动串行器。位于FPGA最后端的数据输出级的OSERDES器件减小了上行时钟或OSERDES侧数据输入的频率。这使得FPGA的布局和
布线变得容易。对于MAX5581的更新速率,上行时钟的频率是250MHz。
接口时序表1以数据表的方式提供了数据接口的时序分析。通过两个部分进行分析,第一部分,对接口工作频率进行分析,称为“数据周期分析”。这部分内容不考虑在数据周期内稳定数据的确切位置。然而,它可以确定:是否可能调整时钟反馈延时,以确保MAX5881从数据建立到数据保持时间窗口内的数据稳定性。数据表中分析了一个工作频率,并重复分析了其它几个工作频率(没有示意),图2所示为分析结果。同时,图3给出了时序参考波形。
表1. Virtex-5与MAX5881接口的数据周期分析
Value
Unit
SpecificaTIon
DescripTIon
Source
Notes
4.300
GHz
fDAC
MAX5881 output update rate
MAX5881 data sheet
0.5375
GHz
fDATACLK = fDAC/8
DDR interface mode
MAX5881 data sheet
930
ps
tDATAPERIOD = 1/(2 × fDATACLK)
Data period
MAX5881 data sheet
50
ps
TINFBOFFSET
FPGA DCM feedback phase error (peak ±)
Xilinx ds202.pdf
120
ps
tPERJITT
FPGA DCM jitter (peak ±)
Xilinx ds202.pdf
121
ps
dtOUTWC
Worst PVT FPGA output-to-output skew (peak-to-peak)
".twr" post-layout staTIc timing report from Xilinx static timing analyzer (worst-case PVT)
1.4
ps
dtPCB
Board output-to-output skew
Estimate
All PCB data and data clock trace lengths matched
462
ps
dtTOTAL = (2 × tINFBOFFSET) + (2 × tPERJITT) + dtOUTWC + dtPCB
Total FPGA data output timing variance
1100
ps
tSETUP
MAX5881 setup time
MAX5881 data sheet
-760
ps
tHOLD
MAX5881 hold time
MAX5881 data sheet
590
ps
tDW = tDATAPERIOD - (tSETUP + tHOLD)
MAX5881 data change window
Time in clock period when data does not have to be valid and stable
128
ps
tPSL = tDW - dtTOTAL
Period timing slack
Extra time between FPGA changing data; data must be stable at DAC
图2. 周期容限
图3. 时序参考波形
时序分析的第二部分计算了所需要的时钟反馈延时(表2),同时计算了与反馈延时相对应的建立和保持时间容限,或者叫做时序余量。
表2. 数据时序分析(MAX5881的引脚DELAY = 0)
Value
Unit
Specification
Description
Source
Notes
0
ps
tDOUTNOM
FPGA clock-to-data output delay
FPGA external clock-feedback configuration
Feedback-path length equal to data-path length plus clock-path length; this centers data transitions at the clock edge
-170
ps
tSUNOM = tDATAPERIOD - tSETUP - tDOUTNOM
Nominal setup margin (without dtTOTAL factor)
Calculate margin without jitter, skew, and phase-error effects first; they are accounted for later
760
ps
tHLDNOM = tDOUTNOM - tHOLD
Nominal hold margin
Calculate margin without jitter, skew, and phase-error effects first; they are accounted for later
-401
ps
tSUABS = tSUNOM - dtTOTAL/2
Absolute setup margin (including dtTOTAL factor)
Include jitter, skew, and phase-error effects
529
ps
tHLDABS = tHLDNOM - dtTOTAL/2
Absolute hold margin (including dtTOTAL factor)
Include jitter, skew, and phase-error effects
-529
ps
tDADVANCE = -tHLDABS
Delay-adjusted FPGA clock-to-data output
External clock feedback with feedback-path length equal to data-path length plus clock-path length plus tHLDABS
Place data transition immediately after tHOLD
128
ps
tSUFINAL = tSUABS - tDADVANCE
Delay-adjusted setup margin
0
ps
tHLDFINAL = tHLDABS + tDADVANCE
Delay-adjusted hold margin
同样地,这部分分析在各种工作频率下重复进行。由于数据生成量太大,表格中没有给出这些数据,而是用图4建立容限和图5保持容限给出了曲线示意图。
图4. 建立容限
图5. 保持容限
需要注意的是,在图4和图5中,时钟反馈延时基于宽工作频率范围(变化的fDAC)进行计算。实现方法是设置无效数据窗口的前沿,也就是在这个位置,数据开始变化为MAX5881保持时间后的下一个值。换句话说,一旦满足了保持时间规定,FPGA就开始转换到下一个数据值。
对于某一个特定频率,可以使用增加保持时间容限并且减少建立时间容限的方法来平衡建立时间和保持时间容限。这是通过在时钟反馈路径上插入可变延时的途径实现的。对于低频,建立和保持时间容限足够大,容限平衡将失去意义。
图6. 容限平衡
其它处理过程由于FPGA器件的灵活性,可以考虑多种设计方法。研究这些方法的具体细节超出了本篇应用笔记的范围,这里只简单描述其中几种:
- 使用DCM相位偏移控制输出数据变化,而不是靠增加DCM时钟反馈路径的长度来增加额外延时。这种方法在软件延时调整方面具有优势,但同时引入了由FPGA相位偏移电路带来的更多的时序不确定性。
- 在DCM反馈路径中使用ODELAY器件。同样,在软件延时调整灵活性方面具有优势,但也会引入更多的时序不确定性。
- 使用方法1或者方法2,但对器件进行逐个校准。MAX5881特性数据表明,在所有器件整个温度范围内,每个器件的数据采样窗变化量是151ps相比于340ps。每个器件的微小时序变化可以补偿FPGA时序不确定性。使用这种方法,可以减小FPGA器件间的某些时序差异。
结论通过仔细选择系统架构、
PCB设计和利用特定的设计,FPGA可以成功地与MAX5881接口,并且具有正的数据时序容限。
评论列表(0条)