MAX5881直接RF合成DAC與FPGA的接口
介紹
由于MAX5881 4.3Gsps下行電纜直接RF合成DAC具有寬帶特性,相比窄帶DAC,它的數(shù)據(jù)接口需要更高的工作頻率。通常,設(shè)計(jì)寬帶數(shù)據(jù)接口時,需要注意確保其工作可靠、無誤。接口架構(gòu)
FPGA功能可以有多種不同組合,有幾種接口架構(gòu)可供選擇,其中之一如圖1所示。這種架構(gòu)可以支持較寬的工作頻率范圍,并且對處理過程、電壓和溫度(PVT)變化有較好的容限。本應(yīng)用筆記重點(diǎn)討論這種架構(gòu)的特征。通過數(shù)據(jù)接口的具體時序分析,突出了該架構(gòu)相比其它架構(gòu)的優(yōu)點(diǎn)。圖1. MAX5881與Xilinx Virtex-5 FPGA的接口(CLKDIV = 0,DDR數(shù)據(jù)接口架構(gòu))
時鐘
MAX5881具有獨(dú)立的模擬和數(shù)字時鐘。MAX5881為數(shù)字?jǐn)?shù)據(jù)接口提供時鐘輸出。由于作為數(shù)據(jù)源的FPGA并不是數(shù)據(jù)時鐘源,所以,需要使用一個“系統(tǒng)同步”的數(shù)據(jù)接口1。需要注意的是,MAX5881的數(shù)據(jù)時鐘輸出DATACLKP/DATACLKN抖動非常小,原因是它直接來自于高質(zhì)量的模擬時鐘CLKP/CLKN輸入。對FPGA DCM2使用外部時鐘反饋,以自動補(bǔ)償FPGA固有的隨溫度變化的輸出數(shù)據(jù)時鐘。設(shè)計(jì)外部時鐘反饋路徑,使其嚴(yán)格匹配MAX5881的DATACLKP/DATACLKN輸出到FPGA內(nèi)部數(shù)據(jù)路徑的延時。這確保了由數(shù)字時鐘管理器(DCM)提供的時鐘補(bǔ)償與FPGA時鐘、數(shù)據(jù)路徑的溫度漂移相一致。使時鐘反饋信號的PCB路徑與數(shù)據(jù)路徑加上DATACLK路徑長度相等,以確保FPGA的數(shù)據(jù)輸出變化與DATACLK邊沿一致。給時鐘反饋路徑加上額外的延時,可以使數(shù)據(jù)與時鐘保持一致。設(shè)計(jì)或調(diào)整延時以確保MAX5881從數(shù)據(jù)建立到保持時間段內(nèi)的數(shù)據(jù)穩(wěn)定性。可以采用延長時鐘反饋信號路徑長度、或者在反饋路徑上增加一個FPGA ODELAY器件的方法,以實(shí)現(xiàn)這種額外的延時。
數(shù)據(jù)速率
把MAX5881的CLKDIV引腳設(shè)置為低電平,F(xiàn)PGA配置為雙倍率(DDR)輸出數(shù)據(jù)格式。在這種情況下,DATACLKP/DATACLKN信號的頻率是MAX5581 CLKP/CLKN引腳輸入時鐘頻率的四分之一。對于MAX5581的更新速率,CLKP/CLKN的頻率是2.0GHz。使得DATACLKP/DATACLKN的頻率為500MHz。這個500MHz的時鐘信號用來驅(qū)動FPGA的串行器(OSERDES),串行器配置為在時鐘的上升和下降沿都會輸出數(shù)據(jù)。因此FPGA輸出數(shù)據(jù)的周期是1ns (或者1.0GHz)。由于Xilinx不允許DCM (或者此種情況下的PLL)配置成外部時鐘反饋和多重輸出時鐘,配置CLKDIV = 0,可以避免生成一個雙倍頻率時鐘驅(qū)動串行器。位于FPGA最后端的數(shù)據(jù)輸出級的OSERDES器件減小了上行時鐘或OSERDES側(cè)數(shù)據(jù)輸入的頻率。這使得FPGA的布局和布線變得容易。對于MAX5581的更新速率,上行時鐘的頻率是250MHz。接口時序
表1以數(shù)據(jù)表的方式提供了數(shù)據(jù)接口的時序分析。通過兩個部分進(jìn)行分析,第一部分,對接口工作頻率進(jìn)行分析,稱為“數(shù)據(jù)周期分析”。這部分內(nèi)容不考慮在數(shù)據(jù)周期內(nèi)穩(wěn)定數(shù)據(jù)的確切位置。然而,它可以確定:是否可能調(diào)整時鐘反饋延時,以確保MAX5881從數(shù)據(jù)建立到數(shù)據(jù)保持時間窗口內(nèi)的數(shù)據(jù)穩(wěn)定性。數(shù)據(jù)表中分析了一個工作頻率,并重復(fù)分析了其它幾個工作頻率(沒有示意),圖2所示為分析結(jié)果。同時,圖3給出了時序參考波形。表1. Virtex-5與MAX5881接口的數(shù)據(jù)周期分析
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. 時序參考波形
時序分析的第二部分計(jì)算了所需要的時鐘反饋延時(表2),同時計(jì)算了與反饋延時相對應(yīng)的建立和保持時間容限,或者叫做時序余量。
表2. 數(shù)據(jù)時序分析(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 |
同樣地,這部分分析在各種工作頻率下重復(fù)進(jìn)行。由于數(shù)據(jù)生成量太大,表格中沒有給出這些數(shù)據(jù),而是用圖4建立容限和圖5保持容限給出了曲線示意圖。
圖4. 建立容限
圖5. 保持容限
需要注意的是,在圖4和圖5中,時鐘反饋延時基于寬工作頻率范圍(變化的fDAC)進(jìn)行計(jì)算。實(shí)現(xiàn)方法是設(shè)置無效數(shù)據(jù)窗口的前沿,也就是在這個位置,數(shù)據(jù)開始變化為MAX5881保持時間后的下一個值。換句話說,一旦滿足了保持時間規(guī)定,F(xiàn)PGA就開始轉(zhuǎn)換到下一個數(shù)據(jù)值。
對于某一個特定頻率,可以使用增加保持時間容限并且減少建立時間容限的方法來平衡建立時間和保持時間容限。這是通過在時鐘反饋路徑上插入可變延時的途徑實(shí)現(xiàn)的。對于低頻,建立和保持時間容限足夠大,容限平衡將失去意義。
圖6. 容限平衡
其它處理過程
由于FPGA器件的靈活性,可以考慮多種設(shè)計(jì)方法。研究這些方法的具體細(xì)節(jié)超出了本篇應(yīng)用筆記的范圍,這里只簡單描述其中幾種:- 使用DCM相位偏移控制輸出數(shù)據(jù)變化,而不是靠增加DCM時鐘反饋路徑的長度來增加額外延時。這種方法在軟件延時調(diào)整方面具有優(yōu)勢,但同時引入了由FPGA相位偏移電路帶來的更多的時序不確定性。
- 在DCM反饋路徑中使用ODELAY器件。同樣,在軟件延時調(diào)整靈活性方面具有優(yōu)勢,但也會引入更多的時序不確定性。
- 使用方法1或者方法2,但對器件進(jìn)行逐個校準(zhǔn)。MAX5881特性數(shù)據(jù)表明,在所有器件整個溫度范圍內(nèi),每個器件的數(shù)據(jù)采樣窗變化量是151ps相比于340ps。每個器件的微小時序變化可以補(bǔ)償FPGA時序不確定性。使用這種方法,可以減小FPGA器件間的某些時序差異。
評論