
图1. MAX5881与Xilinx Virtex-5 FPGA的接口(CLKDIV = 0,DDR数据接口架构)
表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) + |
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. 容限平衡
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。