一、前言
接下來我們將隨著接收部分的信號(hào)流,來看看接收通道中依次進(jìn)行了一些什么處理。筆者從用戶手冊摘錄出了一些主要的處理模塊,包括FPGA接收接口模塊(FPGA RXInterface)、8B10B解碼模塊(8B10B Decoder)、接收變速箱模塊(RX Gearbox)、碼型檢測器模塊(PRBS Generator)、接收彈性緩沖器模塊(Rx Elastic Buffer)、逗點(diǎn)檢測及對齊模塊(Comma Detect And Align)、極性模塊(Polarity)等,如下圖所示,這些模塊是接收鏈路中最常用的模塊,如果讀者對其他模塊感興趣可以查閱用戶手冊。
二、極性反轉(zhuǎn)功能
同發(fā)送鏈路一樣,接收鏈路也包含一個(gè)極性反轉(zhuǎn)功能,如果PCB上的RXP和RXN差分走線不小心弄反,GTX/GTH收發(fā)器RX接收到的差分?jǐn)?shù)據(jù)就會(huì)顛倒。 GTX/GTH 收發(fā)器 RX 允許在 SIPO 之后對 PCS 中的并行字節(jié)進(jìn)行反轉(zhuǎn),以抵消差分對上的反向極性。
與極性反轉(zhuǎn)相關(guān)的端口如下表所示。
三、PRBS檢查器
與發(fā)送通道碼型發(fā)生器相反,GTX/GTH 接收器包括一個(gè)內(nèi)置 PRBS 檢查器,可以檢查發(fā)送端發(fā)送過來的四種PRBS碼型,用于測試通道的信號(hào)完整性,包含一個(gè)錯(cuò)誤計(jì)數(shù)器,用于誤碼統(tǒng)計(jì)。功能框圖如下圖所示。
與PRBS檢查器相關(guān)的端口如下表所示。
注意,無法通過端口來獲取PRBS錯(cuò)誤計(jì)數(shù)器RX_PRBS_ERR_CNT,只能通過DRP接口來獲取。
四、字節(jié)和字對齊
1、字節(jié)對齊
如果接收串行數(shù)據(jù)進(jìn)行了8B10B編碼,串行數(shù)據(jù)必須與符號(hào)邊界對齊才能用作并行數(shù)據(jù)。為了使對齊成為可能,發(fā)射器發(fā)送可識(shí)別的序列,通常稱為逗點(diǎn)(comma)。接收器在傳入數(shù)據(jù)中搜索逗點(diǎn)。當(dāng)它找到逗點(diǎn)時(shí),它將逗點(diǎn)移動(dòng)到字節(jié)邊界,以便接收到的并行字與發(fā)送的并行字匹配。
例如很多協(xié)議都是使用K28.5作為逗點(diǎn)字節(jié),由于8B10B編碼的特性,在滑動(dòng)的串行數(shù)據(jù)中不會(huì)存在其他數(shù)據(jù)被誤認(rèn)為是K28.5的情況。K28.5的編碼前的字節(jié)是8’hbc,編碼后負(fù)極性(K28.5-)時(shí)為0011111010,正極性(K28.5+)時(shí)為1100000101。因此只需要在串行序列中滑動(dòng)過程中找到了K28.5-或者K28.5+序列時(shí),即可認(rèn)為是找到了字邊界。如下圖所示,當(dāng)找到了逗點(diǎn)符號(hào)K28.5之后,也就確認(rèn)了數(shù)據(jù)邊界,則接下來的數(shù)據(jù)也就能正常的識(shí)別出來了。
2、字邊界對齊
盡管解決了字節(jié)對齊的問題,但用戶數(shù)據(jù)輸出端口并不是單字節(jié)的,只可能是2字節(jié)、4字節(jié)或者8字節(jié)的。字邊界對齊功能可以將逗點(diǎn)符號(hào)放置于用戶數(shù)據(jù)的首位以及中間可預(yù)見性的位置上,簡化用戶設(shè)計(jì)。
ALIGN_COMMA_WORD屬性用于定義字對齊邊界,同時(shí)也與RX_DATA_WIDTH屬性和RX_INT_DATAWIDTH屬性有關(guān),具體配置以及對應(yīng)的字邊界對齊情況如下表所示。
3、對齊控制
在進(jìn)行字節(jié)對齊和字對齊操作之前,需要設(shè)置好相關(guān)的屬性,主要相關(guān)屬性如下表所示
設(shè)定好字節(jié)對齊和字對齊屬性后,通過相關(guān)端口來進(jìn)行控制,主要端口如下表所示。
我們假設(shè)某個(gè)協(xié)議需要檢測一個(gè)單字節(jié)逗點(diǎn),且無論是檢測到了該逗點(diǎn)正負(fù)極性都認(rèn)為是對齊。則對齊操作流程如下:
(1)、啟用逗點(diǎn)對齊模塊,例化GTXE2_CHANNEL原語時(shí),RXCOMMADETEN端口可以恒定為1。
(2)、將RXPCOMMAALIGNEN和RXMCOMMAALIGNEN端口同時(shí)置為1,激活對PCOMMA和MCOMMA的檢測,任何匹配的comma模式與最近的邊界重新對齊,comma對齊后,RXBYTEISALIGNED信號(hào)置為高。
(3)、此時(shí)可以將RXENMCOMMAALIGN和RXENPCOMMAALIGN置為0,關(guān)閉comma對齊功能,使comma對齊模塊保持當(dāng)前對齊位置。
(4)、后續(xù)始終保持字節(jié)位置不變,直到重新將RXPCOMMAALIGNEN和RXMCOMMAALIGNEN端口置為1,才會(huì)再次開啟逗點(diǎn)檢測。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21575瀏覽量
600758 -
模塊
+關(guān)注
關(guān)注
7文章
2631瀏覽量
47234 -
收發(fā)器
+關(guān)注
關(guān)注
10文章
3355瀏覽量
105748 -
接口模塊
+關(guān)注
關(guān)注
0文章
29瀏覽量
10916
原文標(biāo)題:Xilinx 7系列FPGA收發(fā)器——11、接收鏈路的碼型發(fā)生器、極性反轉(zhuǎn)、字節(jié)和字對齊等
文章出處:【微信號(hào):FPGA十年老鳥,微信公眾號(hào):FPGA十年老鳥】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論