摘要:該篇應用筆記給出了多個具有多路輸入或集成內插濾波器的高速復用數模轉換器(DAC)的同步方法。這樣的DAC用于I/Q上變頻器或數字波束成形發射器中。這些DAC可提供數據時鐘輸出用于與數據源的同步。
圖1. 使用多路復用DAC的I/Q發射器中的DAC和第一上變頻級
使用具有多路輸入的DAC (MUX-DAC)如MAX19692,或具有數據時鐘輸出的內插DAC時,輸入數據速率為DAC刷新速率的1/N,DAC在一個或兩個數據時鐘跳變沿鎖存數據。MAX19692中N = 4,輸入數據速率為DAC刷新速率的1/4。DAC輸出一個由輸入時鐘經數字分頻得到的數據時鐘(DATACLK)。DAC上電時,數字時鐘分頻器可在N個狀態的任意一個啟動。如果使用多個DAC,不同DAC的時鐘分頻器會在不同的狀態啟動,所以DAC會在不同的時間鎖存數據。除非這種情況被發現并校正,否則不同的DAC輸出數據時相互之間可能會有一個或更多個時鐘周期的延遲。如果每個DAC的時鐘分頻器可以復位,那么這種情況可以避免,但是仍然會存在一些問題。如果其中一個時鐘分頻器發生錯誤,DAC會變得永久異相,除非執行一些錯誤狀態檢測方法。為了保證系統的可靠性,必須檢測相位錯誤狀態并改正。如果DAC工作于非常高速的狀態下,那么復位信號與輸入時鐘的同步也可能是個難題。
圖2所示是MAX19692的時鐘(CLKP,CLKN)和數據時鐘(DATACLKP,DATACLKN)接口的簡化框圖。初始時鐘由一個兩位計數器四分頻后用于鎖存數字DAC輸入。該計數器可能在四個狀態中的任意一個啟動(圖3)。如果使用兩個多路復用DAC,這兩個DAC可能會在不同的狀態啟動。這可能導致DAC1的鎖存與DAC2的鎖存之間存在-1、0、1或2個時鐘周期的延遲。
MAX19692的數據時鐘輸出再由數據輸入鎖存時鐘進行2分頻或4分頻。然后數據在雙倍數據率(DDR)模式下在時鐘的兩個跳變沿進行鎖存,或者在四倍數據率(QDR)模式下在時鐘的每90°相位處進行鎖存。如果多個DAC的數據時鐘延遲相匹配,或數據時鐘相互之間反相,那么鎖存時鐘相匹配。
圖2. MAX19692內部時鐘接口框圖
圖3. MAX19692鎖存時鐘(四種可能的狀態)
DAC的同步問題有兩個方面:
可以通過操作一個或更多個DAC的時鐘來實現兩個DAC之間的相位調整,直到DAC數據時鐘輸出的相對相位為零。另外一種方法可以測量數據時鐘之間的DAC延遲周期數和相應的延遲數據。下面的段落講述了I/Q配置中的這兩種方法。
圖4. 實現DAC同步的簡單的高速邏輯電路
MUX-DAC1時鐘路徑上與門(G1)的插入允許對MUX-DAC1的時鐘進行操作。MUX-DAC2的時鐘路徑上插入與門(G2)用于延遲匹配。異或門(G3)起相位檢測的作用。當DATACLK1和DATACLK2的輸出不同時G3輸出“1”。如果G3out = “1”,應該“吞掉” MUX-DAC1的時鐘脈沖,將DATACLK1的邊沿移位一個CLK時鐘周期。G3輸出的上升沿(G3out)由FF1和G4組成的上升沿檢測器(PED)來檢測。如果檢測到上升沿,PED輸出“0”,持續一個時鐘周期。在SPB應用于G1之前,FF2將這個信號重新定時,從而使MUX-DAC1的一個時鐘脈沖被抑制。這就使DATACLK1延遲一個CLK時鐘周期。經過若干個時鐘周期后,DATACLK1的延遲與DATACLK2一致,如圖5所示。使用這種方法時,觸發器要在時鐘的下降沿進行狀態更新,以消除DAC時鐘信號的毛刺,兩個MUX-DAC的輸入時序要相同。布線時要考慮延遲以確保滿足兩個觸發器的建立和保持時間的要求,且在時鐘為低時將SPB信號的脈沖應用于G1。否則,時鐘信號可能會產生毛刺。同時建議使用無噪聲電源為時鐘同步電路供電,將抖動的引入減到最小。
圖5. 所示邏輯電路操作的時序圖
MAX19692有四個并行數據端口A、B、C和D。輸入DAC的數據序列是An、Bn、 Cn、Dn、An+1、Bn+1、Cn+1、Dn+1、An+2等。12位4 x 4柱形移位器(圖6)允許輸入MUX-DAC1的數據延遲-1、0、1或2個CLK周期。因此可以進行數據等待時間的調整直到兩個DAC的輸出數據同相。這樣的話,兩個DAC的數據時鐘可能相距幾個整數時鐘(CLK)周期且不再改變。由于DAC的建立和保持時間以數據時鐘為基準,所以兩個DAC的數據時序必須不同。可以通過驅動DAC的FPGA中的多個DCM來實現。
圖6. 利用FPGA中桶形移位器的實現完成MUX-DAC的同步
圖7. 每個DAC使用一個PLL實現MUX-DAC同步
這種方法中,兩個DAC的建立和保持時間相匹配。但是這種方法有兩個缺點,兩個PLL會帶來額外的成本且PLL的相位噪聲極限可能會造成性能極限。
概述
在很多發射應用中必須產生多路相對相位準確已知的模擬輸出。在正交調制器中(圖1),I和Q通道必須具有明確的相位關系來實現鏡頻抑制。圖1中,DAC1和DAC2的延遲必須匹配。使用數字波束成形技術的發射器需要準確地控制大量DAC之間的相對相位。圖1. 使用多路復用DAC的I/Q發射器中的DAC和第一上變頻級
使用具有多路輸入的DAC (MUX-DAC)如MAX19692,或具有數據時鐘輸出的內插DAC時,輸入數據速率為DAC刷新速率的1/N,DAC在一個或兩個數據時鐘跳變沿鎖存數據。MAX19692中N = 4,輸入數據速率為DAC刷新速率的1/4。DAC輸出一個由輸入時鐘經數字分頻得到的數據時鐘(DATACLK)。DAC上電時,數字時鐘分頻器可在N個狀態的任意一個啟動。如果使用多個DAC,不同DAC的時鐘分頻器會在不同的狀態啟動,所以DAC會在不同的時間鎖存數據。除非這種情況被發現并校正,否則不同的DAC輸出數據時相互之間可能會有一個或更多個時鐘周期的延遲。如果每個DAC的時鐘分頻器可以復位,那么這種情況可以避免,但是仍然會存在一些問題。如果其中一個時鐘分頻器發生錯誤,DAC會變得永久異相,除非執行一些錯誤狀態檢測方法。為了保證系統的可靠性,必須檢測相位錯誤狀態并改正。如果DAC工作于非常高速的狀態下,那么復位信號與輸入時鐘的同步也可能是個難題。
圖2所示是MAX19692的時鐘(CLKP,CLKN)和數據時鐘(DATACLKP,DATACLKN)接口的簡化框圖。初始時鐘由一個兩位計數器四分頻后用于鎖存數字DAC輸入。該計數器可能在四個狀態中的任意一個啟動(圖3)。如果使用兩個多路復用DAC,這兩個DAC可能會在不同的狀態啟動。這可能導致DAC1的鎖存與DAC2的鎖存之間存在-1、0、1或2個時鐘周期的延遲。
MAX19692的數據時鐘輸出再由數據輸入鎖存時鐘進行2分頻或4分頻。然后數據在雙倍數據率(DDR)模式下在時鐘的兩個跳變沿進行鎖存,或者在四倍數據率(QDR)模式下在時鐘的每90°相位處進行鎖存。如果多個DAC的數據時鐘延遲相匹配,或數據時鐘相互之間反相,那么鎖存時鐘相匹配。
圖2. MAX19692內部時鐘接口框圖
圖3. MAX19692鎖存時鐘(四種可能的狀態)
DAC的同步問題有兩個方面:
- DAC的鎖存時鐘之間的相對相位必須被檢測。
- DAC之間的相對相位必須被調整直到DAC被合適地定相。
可以通過操作一個或更多個DAC的時鐘來實現兩個DAC之間的相位調整,直到DAC數據時鐘輸出的相對相位為零。另外一種方法可以測量數據時鐘之間的DAC延遲周期數和相應的延遲數據。下面的段落講述了I/Q配置中的這兩種方法。
通過“吞”脈沖實現DAC相位調整
如果DAC使用方波(比如ECL)時鐘,兩個DAC之間的同步可以用圖4所示的簡單的高速邏輯電路來實現。為了簡單明了,該原理圖中的邏輯配置只能實現單端功能。但是實際應用中會使用差分邏輯如ECL來實現高速和低噪聲性能。圖4. 實現DAC同步的簡單的高速邏輯電路
MUX-DAC1時鐘路徑上與門(G1)的插入允許對MUX-DAC1的時鐘進行操作。MUX-DAC2的時鐘路徑上插入與門(G2)用于延遲匹配。異或門(G3)起相位檢測的作用。當DATACLK1和DATACLK2的輸出不同時G3輸出“1”。如果G3out = “1”,應該“吞掉” MUX-DAC1的時鐘脈沖,將DATACLK1的邊沿移位一個CLK時鐘周期。G3輸出的上升沿(G3out)由FF1和G4組成的上升沿檢測器(PED)來檢測。如果檢測到上升沿,PED輸出“0”,持續一個時鐘周期。在SPB應用于G1之前,FF2將這個信號重新定時,從而使MUX-DAC1的一個時鐘脈沖被抑制。這就使DATACLK1延遲一個CLK時鐘周期。經過若干個時鐘周期后,DATACLK1的延遲與DATACLK2一致,如圖5所示。使用這種方法時,觸發器要在時鐘的下降沿進行狀態更新,以消除DAC時鐘信號的毛刺,兩個MUX-DAC的輸入時序要相同。布線時要考慮延遲以確保滿足兩個觸發器的建立和保持時間的要求,且在時鐘為低時將SPB信號的脈沖應用于G1。否則,時鐘信號可能會產生毛刺。同時建議使用無噪聲電源為時鐘同步電路供電,將抖動的引入減到最小。
圖5. 所示邏輯電路操作的時序圖
通過輸入數據移位實現DAC相位調整
可以利用Xilinx? FPGA中先進的數字時鐘管理程序(DCM)來檢測兩個MUX-DAC的數據時鐘之間的相位差異(圖6)。DCM1生成一個與DATACLK1和DATACLK2相同頻率的時鐘。以時鐘周期的1/256為間距對DCLK1的延遲進行動態調整。觸發器DFF1和DFF2在每個時鐘周期對DATACLK1和DATACLK2進行一次采樣。如果DFF1在DATACLK1為低時采樣DATACLK1,DFF1會輸出固定的“0”。如果DFF1在DATACLK1為高時采樣DATACLK1,DFF1會輸出固定的“1”。所以DFF3和DFF4可在任意時鐘相位定時,與DCLK1的延遲設置無關。通過將DCLK1的延遲進行分級,使用DCM1的動態延遲調整功能以及讀取DFF3和DFF4的輸出,我們可以得到基于DATACLK1和DATACLK2上升沿的延遲設置。根據延遲設置,我們可以計算出為了保持MUX-DAC1和MUX-DAC2輸入數據的同相,MUX-DAC1的輸入數據需要延遲的DAC時鐘周期數。FPGA中4 x 4桶形移位器的實現可使數據等待時間以一個DAC時鐘周期為增量進行改變(參見圖6)。MAX19692有四個并行數據端口A、B、C和D。輸入DAC的數據序列是An、Bn、 Cn、Dn、An+1、Bn+1、Cn+1、Dn+1、An+2等。12位4 x 4柱形移位器(圖6)允許輸入MUX-DAC1的數據延遲-1、0、1或2個CLK周期。因此可以進行數據等待時間的調整直到兩個DAC的輸出數據同相。這樣的話,兩個DAC的數據時鐘可能相距幾個整數時鐘(CLK)周期且不再改變。由于DAC的建立和保持時間以數據時鐘為基準,所以兩個DAC的數據時序必須不同。可以通過驅動DAC的FPGA中的多個DCM來實現。
圖6. 利用FPGA中桶形移位器的實現完成MUX-DAC的同步
每個DAC使用一個PLL實現DAC同步
如果DAC使用鎖相環(PLL)合成器來定時,那么同步兩個DAC的方法就是每個DAC使用單獨的PLL (圖7)。DAC1和DAC2的LVDS數據時鐘輸出相位與參考時鐘相比較。這樣的話,DAC的內部時鐘分頻器在時鐘生成PLL中作為反饋分頻器使用。圖7. 每個DAC使用一個PLL實現MUX-DAC同步
這種方法中,兩個DAC的建立和保持時間相匹配。但是這種方法有兩個缺點,兩個PLL會帶來額外的成本且PLL的相位噪聲極限可能會造成性能極限。
評論
查看更多