0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用FPGA對40G以太網(wǎng)接口芯片Serdes進(jìn)行測試的方法

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2025-01-09 16:10 ? 次閱讀

帶Serdes的高速以太網(wǎng)接口流片后如果功能不正常,可以采用帶有相同接口類型的FPGA進(jìn)行測試定位問題。本文簡單的介紹一種通過FPGA來對基于四通道serdes的40G/10G以太網(wǎng)接口PMA和PCS層進(jìn)行鏈路連接測試的方法,歡迎大家留言討論指導(dǎo)。

SERDES 是英文 SERializer(串行器)/DESerializer(解串器)的簡稱。它是一種時(shí)分多路復(fù)用(TDM)、點(diǎn)對點(diǎn)的通信技術(shù),即在發(fā)送端多路低速并行信號(hào)被轉(zhuǎn)換成高速串行信號(hào),經(jīng)過傳輸媒體(光纜或銅線),最后在接收端高速串行信號(hào)重新轉(zhuǎn)換成低速并行信號(hào)。這種點(diǎn)對點(diǎn)的串行通信技術(shù)充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數(shù)目,從而減少了傳輸線之間的干擾,增大了背板傳輸距離,并且大大降低通信成本。同時(shí)帶來了諸如減少布線沖突、降低開關(guān)噪聲、更低的功耗和封裝成本等許多好處。而 SERDES 技術(shù)的主要缺點(diǎn)是需要非常精確、超低抖動(dòng)的元件來提供用于控制高數(shù)據(jù)速率串行信號(hào)所需的參考時(shí)鐘。即使嚴(yán)格控制元件布局,使用長度短的信號(hào)并遵循信號(hào)走線限制,這些接口的抖動(dòng)余地仍然是非常小。 SERDES 主要由物理介質(zhì)相關(guān)( PMD)子層、物理媒介附加(PMA)子層和物理編碼子層( PCS )所組成。PMD 是負(fù)責(zé)串行信號(hào)傳輸?shù)?a href="http://www.wenjunhu.com/v/tag/2364/" target="_blank">電氣層,PMA 負(fù)責(zé)串化/解串化,PCS 負(fù)責(zé)數(shù)據(jù)流的編碼/解碼,在 PCS 的上面是上層數(shù)字 IP 功能。一般的高速接口均是由 2 個(gè) IP(時(shí)鐘域)組成,上層是數(shù)字 IP,一般執(zhí)行接口協(xié)議相關(guān)的處理,下層為 SERDES 層,主要執(zhí)行串并,并串轉(zhuǎn)換的處理。 如下圖所示,藍(lán)色背景子模塊為 PCS 層,是標(biāo)準(zhǔn)的可綜合 CMOS 數(shù)字邏輯,可以硬邏輯實(shí)現(xiàn)。褐色背景的子模塊是 PMA 層,是數(shù)?;旌?CML/CMOS 電路,是理解 SERDES 區(qū)別于并行接口的關(guān)鍵,也是本文要討論的內(nèi)容。

de58da6a-ce1e-11ef-9310-92fbcf53809c.png

發(fā)送方向(Tx)信號(hào)的流向: 處理器軟邏輯(fabric)送過來的并行信號(hào),通過接口FIFO(Interface FIFO),送給 8B/10B 編碼器(8B/10B encoder)或擾碼器(scrambler),以避免數(shù)據(jù)含有過長連零或者連一,之后送給串行器(Serializer)進(jìn)行 并->串 轉(zhuǎn)換,串行數(shù)據(jù)經(jīng)過均衡器(equalizer)調(diào)理,由驅(qū)動(dòng)器(driver)發(fā)送出去。 接收方向(Rx)信號(hào)的流向, 外部串行信號(hào)由線性均衡器(Linear Equalizer)或判決反饋均衡器(Decision Feedback Equalizer)調(diào)理,去除一部分確定性抖動(dòng)(Deterministic jitter)。CDR 從數(shù)據(jù)中恢復(fù)出采樣時(shí)鐘,經(jīng)解串器變?yōu)閷R的并行信號(hào)。8B/10B 解碼器(8B/10B decoder)或解擾器(descambler)完成解碼或者解擾。如果是異步時(shí)鐘系統(tǒng)(plesio-synchronous system),在用戶 FIFO 之前還應(yīng)該有彈性 FIFO 來補(bǔ)償頻差。 在測試前,可以先搭建仿真驗(yàn)證環(huán)境,對FPGA和芯片版本的40G/10G接口進(jìn)行仿真。

仿真目的:

確定FPGA在10GBASE-KR與10GBASE-R模式下與ASIC連接鏈路的穩(wěn)定,以及鏈路具體狀態(tài)。

連接關(guān)系與數(shù)據(jù)通路:

de7f23aa-ce1e-11ef-9310-92fbcf53809c.png

FPGA與ASIC兩側(cè)的PCS均顯示每個(gè)bus的四個(gè)lane進(jìn)入鎖定狀態(tài)(xl_block_lock為高),但四個(gè)lane對齊的標(biāo)志位xl_align_done為0。與實(shí)際測試表現(xiàn)一致。

通過仿真進(jìn)行異常定位:通過FPGA側(cè)的PCS RTL信號(hào)追查鏈路無法對齊、aligndone標(biāo)志無法產(chǎn)生的原因。

在FPGA的PCS的對齊邏輯中發(fā)現(xiàn)其檢查對齊標(biāo)志(alignmarker)之前,需要lane保持同步鎖定一定時(shí)間,該時(shí)間由代碼如下位置指定:

de90ee1e-ce1e-11ef-9310-92fbcf53809c.png

(1)當(dāng)仿真環(huán)境未添加SIM_SPEED_UP宏定義,仿真中PCS檢查align marker的時(shí)間間隔設(shè)置為3FFF(16383)個(gè)block,RTL仿真跑到這個(gè)時(shí)間間隔需要花費(fèi)極大的時(shí)間。另外觀察到,F(xiàn)PGA一側(cè)添加SIM_SPEED_UP宏定義后,上述參數(shù)為3F(原代碼中),該參數(shù)與ASIC中PCS的vl_intvl寄存器配置的7F值非常像,而且結(jié)合PCS手冊描述和網(wǎng)表反推,vl_intvl同樣是與對齊標(biāo)志間隔相關(guān)的寄存器,該寄存器在實(shí)際上板、仿真時(shí)應(yīng)當(dāng)設(shè)置不一樣的值:對于滿足802.3的40GBASE-R標(biāo)準(zhǔn)的情況,需要設(shè)置為16383,對于仿真,需要減小該數(shù)值以縮短仿真的鏈路對齊時(shí)間。

(2)在FPGA中打開SIM_SPEED_UP宏定義進(jìn)行仿真。FPGA側(cè)對齊標(biāo)志間隔參數(shù)(ctl_Xx_vl_length_minus1)設(shè)置為3F,ASIC的vl_intvl寄存器保持7F值。進(jìn)行仿真,追查對齊相關(guān)信號(hào),找到FPGA側(cè)PCS查找align marker的邏輯,PCS找到第一個(gè)marker后,在下一個(gè)應(yīng)當(dāng)檢測到marker的位置沒有繼續(xù)找到marker,因此PCS的連接狀態(tài)從ALIGNING(對齊中)和IDLE(失去對齊)中反復(fù)跳轉(zhuǎn),無法進(jìn)入ALIGNED(已對齊)狀態(tài)。該現(xiàn)象直接說明了對端(ASIC側(cè))的PCS在鏈路中插入align marker的間隔與FPGA側(cè)的不一致,因此兩設(shè)備無法建立對齊鏈路。

(3)將仿真中的FPGA的ctl_Xx_vl_length_minus1與ASIC的vl_intvl寄存器設(shè)置為同樣的值(7F),讓兩側(cè)的PCS在相同的7F個(gè)block間隔后插入或檢測align marker。仿真觀察到FPGA的PCS對齊狀態(tài)機(jī)成功進(jìn)入ALIGNED狀態(tài),表明4個(gè)lane的對齊基本條件能夠滿足。結(jié)合以上仿真結(jié)果,可以得知之前ASIC側(cè)的vl_intvl寄存器值配置為7F為快速仿真設(shè)置,與802.3要求的3FFFF(16384)不符,實(shí)際芯片測試中需要將vl_intvl寄存器配置為3FFF進(jìn)行測試。

40G線速仿真:通常在ASIC IP核中,PHY和MAC接口處寄存器用來配置是否工作在40G線速狀態(tài),如MAC沒有配置tx_ipg_comp_reg寄存器,該寄存器用于補(bǔ)償PCS插入對齊標(biāo)志造成的40G滿速時(shí)的線速損耗,那么MAC就無法運(yùn)行在40G線速模式。此時(shí),對齊標(biāo)志占比1/16384,導(dǎo)致?lián)p失速率的實(shí)際速率為0.999938*40Gbps,實(shí)際芯片測試中,最高速率能夠達(dá)到0.999928*40Gbps不丟幀,該比例與對齊標(biāo)志損耗接近。若配置相關(guān)寄存器后,則鏈路中對齊標(biāo)志就會(huì)刪除,此時(shí)芯片實(shí)際測試可以跑滿40G線速。如下視頻是A芯片實(shí)際測試40G打流99%不丟幀的視頻:

由于仿真無法百分百跟真實(shí)場景對應(yīng),尤其是PMAC側(cè)數(shù)?;旌喜糠?,在仿真環(huán)境中往往被簡化模型替代,仿真通過,但實(shí)際上板或流片則可能會(huì)有問題。以下介紹FPGA與ASIC實(shí)際上板測試情況。

1、硬件連接方式

debf803a-ce1e-11ef-9310-92fbcf53809c.png

使用銅纜或者光纖將FPGA和ASIC側(cè)的光口進(jìn)行連接。ASIC側(cè)的IP需要根據(jù)需求或者手冊配置成正常工作模式。FPGA側(cè)只用例化相關(guān)IP,并進(jìn)行管腳約束。FPGA側(cè)可使用IP參考第二部分。

使用上述方式進(jìn)行監(jiān)測時(shí)首先要保證FPGA側(cè)正常工作。可以通過連接網(wǎng)絡(luò)測試儀進(jìn)行打流回環(huán)來驗(yàn)證。如下圖所示。本文針對40G/10G高速以太網(wǎng)接口利用FPGA對同樣接口速率的40G/10G以太網(wǎng)接口serdes和PCS層進(jìn)行互連互通,進(jìn)而對流片后的serdes芯片進(jìn)行調(diào)試(也可能是芯片的serdes或PCS工作模式配置不正確)或故障定位。FPGA側(cè)40G/10G可以參考xilinx官方的兩個(gè)文檔pg211和ug578,其中pg211介紹40g/50g的MAC+PCS等相關(guān)的知識(shí)點(diǎn),ug578介紹GTY的知識(shí),具體可以到官網(wǎng)下載,學(xué)習(xí)查看。FPGA側(cè)40G/10G接口工作是否正??梢詤⒖嘉恼拢篣ltraScale+FPGA中Serdes的多l(xiāng)ane對齊異常解決方案。

deded9a8-ce1e-11ef-9310-92fbcf53809c.png

同時(shí)由于PCS的工作機(jī)制,其必須在鏈路正常穩(wěn)定的情況下才能對數(shù)據(jù)進(jìn)行正常傳輸。所以如果鏈路有問題,PCS部分會(huì)有相關(guān)寄存器反映當(dāng)前狀態(tài)。具體寄存器或者內(nèi)部信號(hào)參考第三部分。

2、FPGA使用IP

1)對端是40G以太網(wǎng)接口(4lane 40)

def7e2ea-ce1e-11ef-9310-92fbcf53809c.png

示例工程如下:(略)

2)對端是10G以太網(wǎng)接口(單lane 10)

df1fde30-ce1e-11ef-9310-92fbcf53809c.png

3)對端是10G以太網(wǎng)接口(4lane 10)

df4513c6-ce1e-11ef-9310-92fbcf53809c.png

3、信號(hào)抓取說明

1)如果使用40G/50G Ethernet Subsystem或者10G/25G Ethernet Subsystem,直接監(jiān)測相關(guān)狀態(tài)寄存器。

RX PCS通道對齊狀態(tài)
寄存器 含義 備注
stat_rx_synced[3:0] 字邊界已同步。這些信號(hào)用于指示 PCS 通道是否已完成字邊界同步。值為 1 表示對應(yīng) PCS 通道已實(shí)現(xiàn)字邊界同步,并且已接收到 PCS 通道標(biāo)記。對應(yīng)于第 82.3 條中所定義的管理數(shù)據(jù)輸入/輸出 (MDIO) 寄存器位 3.52.7:0 和 3.53.11:0。此輸出對電平敏感。
stat_rx_synced_err[3:0] 字邊界同步錯(cuò)誤。這些信號(hào)用于指示在相應(yīng)的 PCS 通道內(nèi)進(jìn)行字邊界同步期間,是否發(fā)生錯(cuò)誤。值為 1 表示由于同步報(bào)頭成幀位錯(cuò)誤或者從未收到 PCS 通道標(biāo)記,對應(yīng) PCS 通道已丟失字邊界同步。此輸出對電平敏感。
stat_rx_mf_len_err[3:0] PCS 通道標(biāo)記長度錯(cuò)誤。這些信號(hào)用于指示相應(yīng)通道內(nèi)是否發(fā)生了 PCS 通道標(biāo)記不匹配(即,接收到的 PCS 通道標(biāo)記間隔字?jǐn)?shù)并非 ctl_rx_vl_length_minus1)。值為 1 表示對應(yīng)通道接收 PCS 通道標(biāo)記的間隔錯(cuò)誤。它將保持高電平,直至消除錯(cuò)誤狀況為止。
stat_rx_mf_repeat_err[3:0] PCS 通道標(biāo)記字錯(cuò)誤。這些信號(hào)用于表示在相應(yīng)通道內(nèi)檢測到構(gòu)成的 PCS 通道標(biāo)記字錯(cuò)誤。值為 1 表示發(fā)生了錯(cuò)誤。此輸出將脈沖 1 個(gè)時(shí)鐘周期,以指示錯(cuò)誤狀況。脈沖可在不間斷的連續(xù)周期內(nèi)發(fā)生。
stat_rx_mf_err[3:0] 當(dāng) stat_rx_aligned 值為 1 時(shí),表示全部通道都已對齊/去歪斜,并且接收器已準(zhǔn)備好接收包數(shù)據(jù)。
stat_rx_aligned_err 當(dāng) stat_rx_aligned_err 值為 1 時(shí),將發(fā)生以下 2 種情況之一:
? 通道對齊經(jīng)多次嘗試后失敗。
? 通道對齊已丟失(stat_rx_aligned 斷言有效,隨后被取反)
stat_rx_misaligned 對齊錯(cuò)誤。此信號(hào)表示通道對齊器并未在所有通道上都接收到期望的 PCS 通道標(biāo)記。在所有通道上都至少接收到 1 個(gè) PCS 通道標(biāo)記并且至少接收到 1 個(gè)錯(cuò)誤的通道標(biāo)記后,此信號(hào)才會(huì)斷言有效。此狀況的發(fā)生比錯(cuò)誤晚 1 個(gè)元幀。如果從未正確接收到任何通道標(biāo)記,則此信號(hào)不會(huì)斷言有效。通道標(biāo)記錯(cuò)誤通過對應(yīng)的 stat_rx_mf_err 信號(hào)來指示。此輸出將脈沖 1 個(gè)時(shí)鐘周期,以指示錯(cuò)誤狀況。脈沖可在不間斷的連續(xù)周期內(nèi)發(fā)生。
stat_rx_framing_err_[3:0][3:0]
stat_rx_framing_err_valid_[3:0]
這組總線旨在用于保留同步報(bào)頭錯(cuò)誤記錄。每個(gè) PCS 通道都有一對輸出。 stat_rx_framing_err_[PCSL_LANES-3:0] 輸出總線用于指示已接收到的同步報(bào)頭錯(cuò)誤數(shù)量,當(dāng)對應(yīng) stat_rx_framing_err_valid_[PCSL_LANES-3:0] 采樣為 1 時(shí),此輸出總線合格(即,僅限在此情況下其值才有效)。
stat_rx_vl_number[3:0][1:0] 每個(gè)總線所指示的特定 PCS 通道的狀態(tài)反映在特定狀態(tài)管腳上。例如,stat_rx_vlane_number_0 所指示的 PCS 通道的狀態(tài)反映在其它狀態(tài)信號(hào)的管腳 0 上。這些總線可用于檢測是否尚未找到 PCS 通道或者是否某一 PCS 通道已映射到多個(gè)狀態(tài)管腳。
stat_rx_vl_demuxed[3:0] 在每個(gè)通道上都達(dá)成字邊界同步后,如果該總線的位為 1,則表示已正確查找到對應(yīng) PCS 通道,并且已對其正確完成逆多路復(fù)用。
stat_rx_block_lock[3:0] 每個(gè) PCS 通道的塊鎖定狀態(tài)。值為 1 表示對應(yīng)通道已達(dá)到第 82 條中定義的塊鎖定狀態(tài)。對應(yīng)于第 82.3 條中所定義的 MDIO 寄存器位 3.50.7:0 和 3.51.11:0。此輸出對電平敏感。
stat_rx_aligned 所有 PCS 通道均已對齊/去歪斜。此信號(hào)表示是否所有 PCS 通道均已對齊并去歪斜。值為 1 表示所有 PCS 通道均已對齊并去歪斜。當(dāng)此信號(hào)為 1 時(shí),表示 RX 路徑已對齊并且可接收包數(shù)據(jù)。當(dāng)此信號(hào)為 0 時(shí),表示存在本地故障狀況。這也對應(yīng)于第 82.3 條中所定義的 MDIO 寄存器位3.50.12。此輸出對電平敏感
stat_rx_hi_ber 誤碼率 (BER) 過高指示符。設(shè)置為 1 時(shí),BER 過高(根據(jù) IEEE 802.3-2015 標(biāo)準(zhǔn)的定義)。對應(yīng)于第 82.3 條中所定義的 MDIO 寄存器位 3.32.1。此輸出對電平敏感。
stat_rx_status PCS 狀態(tài)。值為 1 表示 PCS 已對齊且未處于 hi_ber 狀態(tài)。對應(yīng)于第 82.3 條中所定義的 MDIO 寄存器位 3.32.12。此輸出對電平敏感。當(dāng) stat_rx_aligned 為 1 且 stat_rx_hi_ber 為 0 時(shí),此輸出設(shè)置為 1。此設(shè)置由 IEEE 802.3-2015 標(biāo)準(zhǔn)定義。
stat_rx_local_fault 當(dāng)stat_rx_received_local_fault 或stat_rx_internal_local_fault 斷言有效時(shí),此輸出設(shè)置為 1。此輸出對電平敏感。
RX錯(cuò)誤狀態(tài)
stat_rx_bad_fcs 當(dāng)此信號(hào)值為 1 時(shí),表示錯(cuò)誤檢測邏輯已在接收到的包中發(fā)現(xiàn)接收的 CRC32 值與期望的值不匹配。當(dāng)檢測到 CRC32 錯(cuò)誤時(shí),接收到的包將被標(biāo)記為包含錯(cuò)誤,并隨在上一次傳輸(即 rx_eopout 斷言有效的周期)期間斷言有效的 rx_errout 一起發(fā)送,但 ctl_rx_ignore_fcs 斷言有效的情況下除外。每次檢測到 CRC32 錯(cuò)誤時(shí),都將斷言此信號(hào)有效并保持 1 個(gè)時(shí)鐘周期。
stat_rx_bad_code[1:0] 此信號(hào)用于指示RX PCS 接收狀態(tài)機(jī)處于IEEE 802.3-2015 標(biāo)準(zhǔn)所定義的 RX_E 狀態(tài)的周期數(shù)。

下圖為A芯片 40G接口的實(shí)測截圖。stat_rx_synced應(yīng)始終保持4’hF,不穩(wěn)定說明信號(hào)質(zhì)量太差。一定程度上反映ASIC側(cè)的時(shí)鐘質(zhì)量問題。

df6e15dc-ce1e-11ef-9310-92fbcf53809c.png

2)如果40G PCS部分使用相關(guān)代碼,可以基于以下信號(hào)展開監(jiān)測:

40G PCS和對端鏈路建立過程主要有ABC三個(gè)階段:

A、同步頭鎖定:

監(jiān)測信號(hào):

/i_RX_CORE/i_RX_LANE0/i_RX_WD_SYNC_0/align_status[1:0]

/i_RX_CORE/i_RX_LANE0/i_RX_WD_SYNC_1/align_status[1:0]

/i_RX_CORE/i_RX_LANE1/i_RX_WD_SYNC_0/align_status[1:0]

/i_RX_CORE/i_RX_LANE1/i_RX_WD_SYNC_1/align_status[1:0]

正常情況下恒為1。

0表示復(fù)位,2表示鎖定失敗

下圖為A芯片40G接口的實(shí)測截圖。alian_status應(yīng)始終保持2’b1,不穩(wěn)定說明信號(hào)質(zhì)量太差。

df8ecfac-ce1e-11ef-9310-92fbcf53809c.png

FPGA連接網(wǎng)絡(luò)測試儀,正常鏈路情況下的截圖。

dfa92e10-ce1e-11ef-9310-92fbcf53809c.png

B、四通道各自鎖定

監(jiān)測信號(hào)

/i_RX_TOP/i_RX_CORE/i_RX_LANE0/i_AFINDER_0/word_synced

/i_RX_TOP/i_RX_CORE/i_RX_LANE0/i_AFINDER_1/word_synced

/i_RX_TOP/i_RX_CORE/i_RX_LANE1/i_AFINDER_0/word_synced

/i_RX_TOP/i_RX_CORE/i_RX_LANE1/i_AFINDER_1/word_synced

正常情況下恒為1

0表示復(fù)位或鎖定失敗

C、四通道實(shí)現(xiàn)對齊

監(jiān)測信號(hào)

/i_RX_CORE/i_RX_DESTRIPER/i_RX_LANE_ALIGNER/aligned

正常情況下恒為1

0表示復(fù)位或?qū)R失敗

B芯片40G接口芯片測試時(shí),四通道的align_status和word_synced信號(hào)一直保持為1,說明同步頭鎖定和四通道各自鎖定沒有問題,但是aligned信號(hào)沒有拉高過,說明四個(gè)通道沒有實(shí)現(xiàn)過對齊。

繼續(xù)抓取四通道對齊的前一級(jí)模塊(四個(gè)緩存模塊)的相關(guān)信號(hào),發(fā)現(xiàn)四個(gè)通道彼此間的數(shù)據(jù)延時(shí)差異過大,通常一個(gè)通道的數(shù)據(jù)緩存FIFO溢出時(shí),其余通道仍然沒有數(shù)據(jù)進(jìn)入緩存模塊,導(dǎo)致下一步通道間對齊無法進(jìn)行。

后續(xù)發(fā)現(xiàn)PCS的模式配置寄存器有誤,默認(rèn)情況下為10GBASE-CX4,將PCS正確配置為40GBASE-CR4后對齊標(biāo)志可以成功拉高且保持穩(wěn)定。

前面的四通道數(shù)據(jù)延時(shí)差異過大也是因?yàn)檫@種配置模式下對端單lane 3.125Gbps的數(shù)據(jù)在FPGA側(cè)單lane 10.3125Gbps的數(shù)據(jù)通道上傳輸導(dǎo)致的。

另外,如果FPGA自身四通道就沒有對齊,那大概率也是由于復(fù)位沒有做好,或者是復(fù)位的順序和復(fù)位時(shí)間,以及代碼中看門狗方式復(fù)位代碼有問題。

dfbca738-ce1e-11ef-9310-92fbcf53809c.jpg

擴(kuò)展:FPGA版本10Gbps以上速率以太網(wǎng)光口熱插拔問題。

在較復(fù)雜的測試環(huán)境下,即交換機(jī)光口始終有分組進(jìn)入時(shí),對交換機(jī)進(jìn)行上下電或進(jìn)行光口拔插,會(huì)導(dǎo)致交換機(jī)的40G MAC IP核會(huì)出現(xiàn)卡死和輸出錯(cuò)幀的現(xiàn)象,若沒有錯(cuò)幀過濾模塊,錯(cuò)幀可能會(huì)導(dǎo)致交換機(jī)可編程解析器模塊不能正常工作,也可能會(huì)導(dǎo)致地址學(xué)習(xí)表短時(shí)間內(nèi)學(xué)習(xí)到大量的錯(cuò)誤的MAC地址和端口號(hào),因此,需要“看門狗系統(tǒng)”主動(dòng)復(fù)位交換機(jī)出錯(cuò)的40G IP的MAC和GT,以及過濾MAC給出的錯(cuò)幀(利用rx_user信號(hào))。

a、rx側(cè)的時(shí)鐘需要恢復(fù)訓(xùn)練,在連接上光纖后,tx數(shù)據(jù)中帶有時(shí)鐘信息,rx接收到tx的時(shí)鐘信息后,需要從高速串行流中恢復(fù)時(shí)鐘(鎖相環(huán)穩(wěn)定時(shí)鐘),待時(shí)鐘穩(wěn)定后才能正常傳輸數(shù)據(jù)。

基于10G源碼作者Alex(著名開源項(xiàng)目Corundum網(wǎng)卡的作者)的代碼,我們在rx側(cè)出來的axi data接異步時(shí)鐘fifo,輸入用rx時(shí)鐘,輸出用tx時(shí)鐘。因?yàn)閠x時(shí)鐘由本地晶振給出,保持穩(wěn)定,不需要訓(xùn)練,如下圖。

dfdc5cea-ce1e-11ef-9310-92fbcf53809c.png

b、環(huán)境比較差的時(shí)候,做光口拔插實(shí)驗(yàn),會(huì)有l(wèi)ink狀態(tài)的問題,link是單方向的rx link,查看手冊找到復(fù)位邏輯,做檢錯(cuò)復(fù)位,以及l(fā)ink狀態(tài)丟失的主動(dòng)復(fù)位,主動(dòng)復(fù)位時(shí)間比較長持續(xù)100ms,1s內(nèi)不會(huì)重復(fù)觸發(fā)。

e007916c-ce1e-11ef-9310-92fbcf53809c.png

復(fù)位模塊如下:

e0328516-ce1e-11ef-9310-92fbcf53809c.png

在拔插的時(shí)候?qū)τ陔娐穪碚f不是單純的拔插,不論是拔動(dòng)作還是插動(dòng)作link狀態(tài)都會(huì)有0-1 1-0的變化,而link狀態(tài)時(shí)斷時(shí)續(xù),在拉高時(shí)會(huì)有錯(cuò)幀進(jìn)入,需要加入錯(cuò)幀過濾邏輯(判斷rx_user信號(hào))。

c、打流過程中復(fù)位會(huì)產(chǎn)生進(jìn)入錯(cuò)幀的問題,也就是gt側(cè)在link狀態(tài)拉高的時(shí)候,同步并不是直接正常的,剛開始的時(shí)候會(huì)有一些內(nèi)容和長度有問題的幀,大概10幀,對于2層交換機(jī)來說會(huì)地址自學(xué)習(xí)產(chǎn)生錯(cuò)誤的mac地址,需要在link狀態(tài)穩(wěn)定時(shí)讓幀進(jìn)入邏輯,加入端口使能。加入端口使能,不往該端口發(fā)幀和不讓該端口的幀進(jìn)交換,同時(shí)交換機(jī)有狀態(tài)信息統(tǒng)計(jì)也同步停止更新或者打開,這樣可以保護(hù)交換機(jī)內(nèi)部邏輯不會(huì)受到影響。

3)如果使用XAUI

主要監(jiān)測align_status和sync_status[3:0]。

下圖為A芯片10G以太網(wǎng)接口實(shí)測截圖。

ILA顯示align_status不恒為1,sync_status不恒為F,說明10G的鏈路也不穩(wěn)定。

e0561a58-ce1e-11ef-9310-92fbcf53809c.png

若ASIC側(cè)Serdes測試有問題,則也可能是封裝和基板帶來的問題。封裝時(shí)要考慮多l(xiāng)ane之間共地,die外圍共享電阻的連接方式。同時(shí),還要注意serdes時(shí)鐘是片內(nèi)還是片外,在使用片內(nèi)時(shí)鐘(on-chip clock)時(shí),需要將片外時(shí)鐘接地或者懸空。在使用片外時(shí)鐘時(shí),也需要將片內(nèi)時(shí)鐘接地或者懸空。另外,基板也需要進(jìn)行SI、PI等仿真,如果眼圖仿真結(jié)果不好,則有可能阻抗不連續(xù),過孔要考慮;還有等長走線,雖然走了等長,有可能兩條線沒有一起繞蛇形等多種可能。以下是仿真較好的情況:

e07ebfe4-ce1e-11ef-9310-92fbcf53809c.png

e0a20224-ce1e-11ef-9310-92fbcf53809c.png

通過眼圖判斷serdes的情況也很重要,如下圖:

e0d30d4c-ce1e-11ef-9310-92fbcf53809c.png

正常情況下,圖中眼睛區(qū)域可被包住即可。除了用專用設(shè)備看眼圖外,一般IP供應(yīng)商會(huì)提供MATLAB或者Python的程序,可以通過讀取實(shí)際Serdes測試時(shí)對應(yīng)相關(guān)寄存器的狀態(tài),繪制出對應(yīng)的眼圖。

e0f4fdb2-ce1e-11ef-9310-92fbcf53809c.png

4、ASIC版serdes故障定位

若SERDES高速鏈路存在問題,可通過多種回環(huán)模式進(jìn)行第一輪篩查,以初步排查問題。

主要使用兩種模式:

(1) 近端回環(huán)LB_NES模式,即測試芯片PHY的tx2rx loopback,PRBS;

e11a8596-ce1e-11ef-9310-92fbcf53809c.png

(2)遠(yuǎn)端回環(huán)LB_FEP模式,即測試芯片PHY的rx2tx loopback;

e13a27d4-ce1e-11ef-9310-92fbcf53809c.png

e1559ae6-ce1e-11ef-9310-92fbcf53809c.png

若在近端回環(huán)模式下,BER值(誤碼率)較高,主要可以檢測SERDES 輸入時(shí)鐘相關(guān)設(shè)置,如果遠(yuǎn)端回環(huán)模式下 BER 值較高,則主要檢測發(fā)送端幅值,衰減設(shè)置,發(fā)送側(cè)濾波器參數(shù)設(shè)置,接收端DFE 設(shè)置,CDR 設(shè)置以及和時(shí)鐘相位偏移相關(guān)的設(shè)置。

e174c920-ce1e-11ef-9310-92fbcf53809c.png

PRBS:串行總線的物理層測試通常分為發(fā)射機(jī)測試和接收機(jī)測試,又稱為 TX 測試和 RX 測試。發(fā)射機(jī)測試通常包括眼圖、抖動(dòng)、信號(hào)波形、幅度、上升下降時(shí)間等測試項(xiàng)目,接收機(jī)測試通常包括誤碼率、抖動(dòng)容限、接收機(jī)靈敏度等測試項(xiàng)目。對于眼圖測試、誤碼率和抖動(dòng)容限測試,最常用的測試碼是 PRBS,主要有 PRBS7、PRBS15、PRBS23 和 PRBS31。

PRBS7 是目前 10Gbps 以下的串行總線中最常用的測試碼型,在 ITU-TV.29 規(guī)范中規(guī)定。PRBS7 屬于短偽隨機(jī)碼型,與 8b10b NRZ 編碼的數(shù)據(jù)流很相似,所以,在 PCIe、SATA、XAUI、1000BASE-LX、FC、SAS 等采用 8b10b 編碼的串行總線中,PRBS7 是最常用的測試碼型,支持這些總線的芯片通常都可以輸出 PRBS7 測試碼型,用于眼圖、抖動(dòng)或誤碼率測量。PRBS31是一種較長的偽隨機(jī)碼型,其多項(xiàng)式為X31+X28+1,碼長為2^31-1個(gè)比特。PRBS31的碼流中最長的連1為31個(gè),最長的連0為30個(gè),包含了相當(dāng)多的低頻成分,因此適用于像SONET/SDH信號(hào)那樣包含了很多低頻成分的物理層測量。PRBS31也是10 Gigabit Ethernet推薦的測試碼型之一。

e1a0bd64-ce1e-11ef-9310-92fbcf53809c.png

KR:背板傳輸;CR:銅線互聯(lián);SR:短距光纖傳輸。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21759

    瀏覽量

    604297
  • SerDes
    +關(guān)注

    關(guān)注

    6

    文章

    200

    瀏覽量

    34961
  • 以太網(wǎng)接口芯片

    關(guān)注

    0

    文章

    38

    瀏覽量

    6593

原文標(biāo)題:使用FPGA對40G以太網(wǎng)接口芯片Serdes進(jìn)行測試的方法

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA以太網(wǎng)ARP通信測試(二)

    本文繼續(xù)簡單介紹一下基于FPGA以太網(wǎng)ARP通信,該項(xiàng)目主要用于實(shí)現(xiàn)FPGA以太網(wǎng)接口和上位機(jī)進(jìn)行
    的頭像 發(fā)表于 11-06 18:26 ?1363次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>以太網(wǎng)</b>ARP通信<b class='flag-5'>測試</b>(二)

    基于FPGA的萬兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的萬兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)標(biāo)準(zhǔn)中萬兆以太網(wǎng)物理層及媒質(zhì)接入控制子層的相關(guān)協(xié)議以 應(yīng)用物理環(huán)境為例,闡述了萬兆以太網(wǎng)
    發(fā)表于 08-11 15:48

    40G QSFP+光模塊的完美鏈接-Cisco Nexus 6004交換機(jī)

    本帖最后由 飛速光纖 于 2016-8-27 11:53 編輯 Cisco Nexus 6000系列交換機(jī)可以在一個(gè)高效緊湊的系統(tǒng)中提供高密度的10G40G以太網(wǎng),他們具有高性能,節(jié)省空間
    發(fā)表于 08-24 11:46

    解密易飛揚(yáng)40G QSFP+ PSM4光模塊

    `一、背景和意義在1980年2月IEEE 802 標(biāo)準(zhǔn)委員會(huì)成立之后,以太網(wǎng)在各個(gè)層面中的輸送速度有了顯著提升,更新時(shí)間隨之大幅縮短。隨后,IEEE采納了802.3ba,為40G/100G以太
    發(fā)表于 06-05 16:32

    基于FPGA的10G以太網(wǎng)接口設(shè)計(jì)

    設(shè)計(jì)。如圖1所示,以太網(wǎng)接口包括4部分:10GE光接口、PHY收發(fā)器、時(shí)鐘模塊、FPGA。其中,10GE光接口和PHY收發(fā)器是實(shí)現(xiàn)該10
    發(fā)表于 05-31 05:00

    40G光模塊選購指南

    用在100G以太網(wǎng)中,但是也可以用在40G網(wǎng)絡(luò)。符合RoHS-6規(guī)范,且經(jīng)過CFIO MSA指定的MDIO接口提供數(shù)字診斷功能;  40G
    發(fā)表于 10-23 15:46

    超遠(yuǎn)程40G以太網(wǎng)子系統(tǒng)的遠(yuǎn)端回路問題如何解決

    我想在Ultrascale FPGA中用40G以太網(wǎng)系統(tǒng)(2.0)IP執(zhí)行遠(yuǎn)端PMA和PCS Loop。我已經(jīng)提到了文檔“40G / 50G
    發(fā)表于 05-22 14:50

    SerdesSerdes 10G以太網(wǎng)連接是T2080上的一個(gè)功能選項(xiàng),通過光纖或跨背板時(shí)會(huì)失敗的原因?

    、REM 和 LOC 中斷。使用通道 C 通過 memac0 進(jìn)行通信。相同的測試環(huán)境使用 1G-KX(光纖和背板)和 10G-KR 通過物理層。 我是否認(rèn)為 Sedres-toSe
    發(fā)表于 04-27 06:01

    基于FPGA的萬兆以太網(wǎng)接口設(shè)計(jì)

    介紹了IEEE802.3ae 標(biāo)準(zhǔn)中 萬兆以太網(wǎng) 物理層及媒質(zhì)接入控制子層的相關(guān)協(xié)議。以10GBASE-R 應(yīng)用物理環(huán)境為例,闡述了萬兆以太網(wǎng)接口各個(gè)單元模塊的功能和設(shè)計(jì)實(shí)現(xiàn)方法。
    發(fā)表于 07-20 16:21 ?334次下載
    基于<b class='flag-5'>FPGA</b>的萬兆<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>接口</b>設(shè)計(jì)

    基于FPGA的萬兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的萬兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)。
    發(fā)表于 05-11 09:46 ?39次下載

    分析25G以太網(wǎng)架構(gòu)能否取代40G

    我們知道40G、100G的傳輸標(biāo)準(zhǔn)早在2010年左右已經(jīng)產(chǎn)生,而25G標(biāo)準(zhǔn)在近幾年才成熟,這說明25GbE技術(shù)必然有其獨(dú)特的“魅力”。25G以太網(wǎng)
    發(fā)表于 06-27 16:36 ?5613次閱讀

    英特爾低延遲 40G 以太網(wǎng) MAC 和 PHY IP的延遲計(jì)算

    計(jì)算英特爾低延遲 40G 以太網(wǎng) MAC 和 PHY IP 的延遲
    的頭像 發(fā)表于 06-20 00:18 ?6208次閱讀
    英特爾低延遲 <b class='flag-5'>40G</b> <b class='flag-5'>以太網(wǎng)</b> MAC 和 PHY IP的延遲計(jì)算

    部署40G以太網(wǎng)時(shí)要考慮哪些因素?

    在10G網(wǎng)絡(luò)開始無法滿足人們?nèi)找嬖鲩L的網(wǎng)絡(luò)需求之時(shí),40G網(wǎng)絡(luò)不負(fù)眾望地登上了通信舞臺(tái),隨著不斷的發(fā)展,40G以太網(wǎng)部署被越來越多的用戶所接受。那么您知道部署
    的頭像 發(fā)表于 12-13 16:06 ?1446次閱讀

    詳解FPGA的10G以太網(wǎng)接口調(diào)試

    隨著FPGA在數(shù)據(jù)中心加速和Smart NIC在SDN和NFV領(lǐng)域的廣泛應(yīng)用,基于以太網(wǎng)接口FPGA開發(fā)板越來越受到關(guān)注。而更高速率的以太網(wǎng)
    發(fā)表于 03-03 10:52 ?1.8w次閱讀
    詳解<b class='flag-5'>FPGA</b>的10<b class='flag-5'>G</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>接口</b>調(diào)試

    40G以太網(wǎng)光模塊解決方案

    眾所周知,目前通信網(wǎng)絡(luò)對高速度、高帶寬的需求不斷增長,低速率升級(jí)至高速率是必然趨勢。在這種大趨勢背景下,40G成為了大多數(shù)企業(yè)網(wǎng)絡(luò)升級(jí)10G網(wǎng)絡(luò)的首選方案。本期文章,易天光通信(ETU-LINK)來跟大家說說40G
    的頭像 發(fā)表于 09-08 15:18 ?1438次閱讀
    <b class='flag-5'>40G</b><b class='flag-5'>以太網(wǎng)</b>光模塊解決方案