基于FPGA的高速DMUX設計
關鍵詞:數據分路器;信號完整性;模數轉換器;現場可編程門陣列
l 引言
隨著信號速率和帶寬的提高,信號采集的速率也相應地不斷提高。如今模數轉換器的速率已經達到1 GS/s。甚至2 GS/s。高速模數轉換器輸出數據流速率為赫茲千兆比特,會增加后端存儲器和數據處理器件的設計難度,因此降速分流成為解決這一問題的必要方法。
2 降速分流的方法
降速分流通常有兩種實現方案:一是使用DMUX專用集成器件,另一種是在FPGA上實現DMUX。
一般地說,這兩種方式都能很好地實現降速分流,在性能上并無優劣之分。但是從整個系統考慮,第二種方式相對優于第一種方式,原因如下:
(1)由于工藝方面的限制,DMUX專用集成器件工作模式比較單一,且不能改變。通常DMUX專用集成器件如TS81102(Atmel公司)可以實現1:8模式(將數據速率降為原先的1/8,并給出8路輸出)或者1:4模式(將速率降為原先的1/4,并給出4路輸出)。
(2)DMUX專用集成器件輸出的數據速率越低,其輸出占用的數據線就越多,而要減少數據線,其數據速率又會相應提高,因此無論其采用何種工作模式,PCB設計難度都很大。
(3)DMUX專用集成器件功耗大(平均要高于5W),要使其正常工作,電源供電和散熱問題會增加設計成本和設計難度。
(4)DMUX專用集成器件屬于特殊芯片,不容易購買。
因此選用另一種方式來代替DMUX專用集成器件顯得很必要。
基于Altera公司FPGA就可以實現DMUX的功能。其最大的優勢在于存儲模塊和數據處理模塊可以同時在FPGA中實現,相比較DMUX專用集成器件+FPGA這樣的設計系統來說,結構上簡化很多,而信號完整性卻在很大程度上得到提高。
下面就以1:8工作模式為例,對兩種方式的設計方案進行比較。
圖l所示是采用DMUX專用集成器件的設計方案。模擬信號經過高速ADC轉換后,輸出高速率的8位數據和l位時鐘Clkl,這些信號經過DMUX分流后再形成8路64位的數據和l位時鐘Clk2(此時鐘降為原先的1/8)。隨后FPGA用Clk2來采樣這些64位數據,再在控制信號的控制下處理這些數據。
利用FPGA實現DMUX后,就可以將DMUX和FPGA整合到一起,如圖2所示。
與圖1相比,圖2在PCB設計上省略了DMUX和FPGA之間的64位數據線和1位時鐘線,而這些數據線和時鐘線通常會高于100 MHz,所以對PCB布線任何考慮不周都會造成信號完整性的嚴重下降。在圖2中,DMUX在FPGA內直接實現,這可以在很大程度上提高設計的成功率,關鍵就是看FP-GA能不能接收ADC的8位高速數據和1位高速時鐘。而實際上FPGA確實可以做到,下面就對其實現的各個方面分別加以介紹。
3 基于FPGA的DMUX實現的關鍵
3.1 器件的選擇
要在FPGA中實現DMUX,FPGA必須具備兩個條件:一是多個高速差分接收端口;二是FastDPLL(快速數字鎖相環)。許多FPGA都能滿足此要求,如Xilinx的Virtex4、Virtex Pro系列,Altera的Stratix系列(Stratix GX、StratixⅡ和Stratix)。它們在應用上各有特色,下面僅以Altera的Stratix系列為例來說明實現方式。
3.2 引腳的配置
要接收ADC的高速數據和時鐘輸出,必須將這些信號引腳配置到高速差分接收引腳上。但并不是所有的差分引腳都能作為高速差分接收引腳。數據接收引腳一般定義為DIFFIO_RX_P、DIF-FIO_RX_N,時鐘接收引腳一般定義為CLK_DIF-FIO_RX__P、CLK_DIFFIO_RX_N。
在引腳的設置位置上也有一定的要求,如Stratix GX器件只可以在BANKl、2的差分引腳上實現;Stratix Ⅱ器件只可以在BANK3、4、7、8的差分引腳上實現;而Stratix器件可以在BANKl、2、5、6的差分引腳上實現。如果接收ADC信號的引腳不是配置在這些引腳上,那么就不能在FPGA內實現DMUX來接收這些高速信號。
對于時鐘引腳,也要配置在這些BANK的專用時鐘引腳上。如果有多個這樣的時鐘引腳可供選擇,則應當選擇那些Cload(負載電容)更小的引腳,這對于提高數據的接收速率很有幫助。
3.3 軟件設置
3.3.1 FPGA片上阻抗的實現
接收模數轉換器輸出的高速差分線一般都需要終端阻抗匹配,如果這些終端匹配電阻都依靠片外電阻實現,就會增加PCB布局布線的難度和降低接收的信號完整性。FPGA的差分接收端口一般都帶有差分片上阻抗匹配,如圖3所示。
阻抗(RD)在100 Ω~170 Ω之間,其典型值為135 Ω,接近于差分線的差分阻抗。依靠這些片上匹配電阻,則不需要再外接電阻,并且會達到比外接電阻更好的效果。
軟件方面只需設置終端阻抗為Differential。
3.3.2 FPGA高速差分接收模塊的實現
在FPGA上主要是通過調用altlvds模塊來接收ADC輸出的高速差分數字信號,如圖4所示。
altlvds模塊內集成有Fast DPLL,通過它可以以45為一級精確地調整輸入時鐘沿與數據之間的關系,從而保證建立和保持時間能夠滿足要求。
altlvds模塊還利用輸入時鐘對輸入數據進行雙沿采集,將其轉換為并行的多路數據。
其輸入數據的通道數和分路比也可以通過軟件靈活設置。設置的接收數據通道數最多為44通道(受限于FPGA的高速差分接收引腳數),最多可設置的分路比為1:10模式。
此外,此模塊上可以設置接收的最高數據速率為840 Mb/s,最高接收時鐘為420 MHz。
3.4 軟件仿真
在Quartus Ⅱ中進行DMUX后的仿真結果如圖5所示,輸入數據(idata)為800 MHz,輸入時鐘(in-clk)為400 MHz。從仿真波形上可以看到,雖然輸出的數據不是對得很準,但是輸出的時鐘(kaniclkp)可以保證能夠完整地接收數據。
將輸入數據(idata)改為l 000 MHz,輸入時鐘(inclk)改為500 MHz,其仿真結果仍然不錯。
3.5 PCB設計
要使FPGA能夠很好地接收模數轉換器的輸出信號,首先應該保證它們之間布線的差分阻抗滿足要求。另外每對差分線要緊鄰并且近似等長。
此外要盡量將FPGA的高速差分接收引腳配置在FPGA的外圍,以保證模數轉換器和FPGA的連線上盡量沒有過孔。
PCB板材的選擇也很重要,要盡量保證它們之間的布線都布置在最外層,并且布線板層要盡量選介質常數小的材料。
為了模塊中的內部鎖相環能夠正常工作,還應該將內部鎖相環的供電電源與外部數字電源隔開。圖6中示出了一種電路連接方式,通過大電感將兩種電源隔開,再通過多個電容并聯濾波,以保證供給內部鎖相環電源的穩定性。
4 結束語
經過實際測試,利用FPGA替代DMUX專用集成器件來接收模數轉換器輸出的信號,其接收的數據速率已經超過1 Gb/s,高于器件資料上給定的840 Mb/s的最高速率,完全達到設計要求。
評論