歡迎各位朋友關(guān)注“郝旭帥電子設(shè)計團隊”公眾號,本公眾號會定時更新相關(guān)技術(shù)類資料、軟件等等,感興趣的朋友可以瀏覽一下本公眾號的其他“模塊”,希望各位朋友都能在本公眾號獲得一些自己想要的“東西”。
高速串行通信的“高速”一般比較高,基本至少都會上G。如果利用FPGA內(nèi)部的LUT、觸發(fā)器和普通IO是無法滿足這樣高的輸入輸出速率的。
例:假設(shè)線速度需要跑到1G,那么我們FPGA內(nèi)部邏輯就需要跑到1GHz,才可以對外發(fā)出1G的bit流(即使采用DDR的方式發(fā)出,也需要內(nèi)部500MHz)。這么高的頻率,F(xiàn)PGA內(nèi)部一般是無法達到的。
那么FPGA是如何實現(xiàn)這種高速輸出和輸入的呢?
FPGA內(nèi)部除了LUT、觸發(fā)器和IOB以外,廠商還在FPGA內(nèi)部加入了很多可配置的硬核電路,高速收發(fā)器就是其中之一(并不是所有的FPGA都有)。
那么這個高速收發(fā)器的電路怎么理解呢?
可以先這么認為,對于輸出來說它就是一個升頻降位寬的電路。
注:輸出不一定有時鐘輸出
例:輸入時鐘125MHz,數(shù)據(jù)并行10bit;經(jīng)過高速發(fā)送器后,可以變?yōu)檩敵鏊俾蕿?.25GHz,數(shù)據(jù)為串行1bit;
此時FPGA內(nèi)部只需要運行再一個相對較低的頻率,進行并行處理數(shù)據(jù)即可。
對于輸入來說它就是一個降頻增位寬的電路。
注:輸入不一定有時鐘輸入
例:輸入時鐘1.25GHz,數(shù)據(jù)串行1bit;經(jīng)過高速接收器后,可以變?yōu)檩斎胨俾蕿?25MHz,數(shù)據(jù)為并行10bit;
此時FPGA內(nèi)部只需要運行再一個相對較低的頻率,進行并行處理數(shù)據(jù)即可。
下面簡單介紹一下FPGA內(nèi)部的高速收發(fā)器(主要以Xilinx的A7 FPGA為例,其他的“大概”大同小異)。
FPGA內(nèi)部的高速收發(fā)器一般稱為GT(GT的意思是Gigabyte Transceiver),速度根據(jù)器件的不同能夠支持的速率也不相同。在Xilinx 7系列的FPGA中,按支持的最高線速率排序,GTP是最低的,GTZ是最高的。GTP被用于A7系列,GTZ被用于少數(shù)V7系列。從K7到V7,最常見的是GTX和GTH。GTH的最高線速率比GTX稍微高一點點。
下圖是Xilinx A7 FPGA內(nèi)部的高速收發(fā)器(GTP)。
GTP對外的管腳也不是普通的IO,必須得是專門的IO(單獨的bank)。
下圖為A7 FPGA 的支持GTP的bank(一般稱為MGT:Multi-Gigabit Transceiver bank)。
上述的電路圖中有四路收發(fā)器(一發(fā)一收稱為1路收發(fā)器,收發(fā)都是差分信號)。四路收發(fā)器被稱為一個 Quad GT。
每一路的收發(fā)器的內(nèi)部如下:
發(fā)送器:
接收器:
在分析發(fā)送器和接收器之前,我們先了解幾個名詞。
PMA:
PMA是物理介質(zhì)子層(Physical Medium Attachment),它負責(zé)管理電氣、時鐘和定時等物理層面的信號特性。PMA還處理高速數(shù)據(jù)傳輸所需的時序控制和信號重建,并確保信號能夠正確地傳輸?shù)竭h端接收器。
PCS:
PCS是物理編碼子層(Physical Coding Sublayer),它處理數(shù)據(jù)信號的編碼和解碼,以及錯誤檢測和校正。PCS負責(zé)將邏輯上的數(shù)據(jù)流轉(zhuǎn)換為物理層面上的數(shù)字信號,并通過使用8b/10b編碼或128b/130b編碼等技術(shù)來確保數(shù)據(jù)傳輸?shù)目煽啃院驼_性。
發(fā)送器和接收器都是由PCS和PMA組成。相對簡化理解:PMA就是發(fā)送端并轉(zhuǎn)串,就是接收端串轉(zhuǎn)并。
那么此時我們就可以利用PMA來完成高速串行輸入輸出。那么PCS有什么作用呢?
在高速串行通信中,為了能夠使信號完整的發(fā)送到發(fā)送方、能夠使接收方可以進行CDR,需要對發(fā)送的數(shù)據(jù)進行編碼(如果不明白可以查看本公眾號文章“高速遠距離通信之bit同步和字節(jié)同步”)。除了基本的編碼外,我們還需要一些通信協(xié)議(PCIE、SATA等等)、多通道對齊等一些功能。此時PCS將可以為我們完成一部分。
在使用GT資源時,我們只需要將原碼(可能附帶一些協(xié)議規(guī)則)發(fā)送給PCS,PCS經(jīng)過調(diào)整后,發(fā)送給PMA,PMA就會將數(shù)據(jù)發(fā)送到FPGA外部;外部高速信號進入PMA,PMA將數(shù)據(jù)交付給PCS,PCS經(jīng)過調(diào)整交付為FPGA內(nèi)部。此時就完成了高速數(shù)據(jù)的輸入和輸出的過程。
當(dāng)然是用起來還是有一定的難度,后續(xù)慢慢的介紹相關(guān)內(nèi)容。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61131 -
串行信號
+關(guān)注
關(guān)注
0文章
26瀏覽量
8500
原文標題:FPGA如何發(fā)出高速串行信號
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論