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