1、PCIe debug環(huán)境說明
本文將以PCIe EP用戶邏輯舉例,描述PCIe可以添加哪些定位手段。
如圖所示,PCIe IP作為endpoint與RC對(duì)接,用戶實(shí)現(xiàn)了應(yīng)用邏輯,與PCIe IP進(jìn)行交互,交互信號(hào)中data格式為TLP報(bào)文格式,且交互信號(hào)包含相應(yīng)的控制信號(hào),例如PCIe配置空間和IP相干的配置信號(hào)。
常見的Debug設(shè)計(jì)可以通常有:中斷、鎖存狀態(tài)、統(tǒng)計(jì)計(jì)數(shù)和實(shí)時(shí)狀態(tài)。
添加Debug設(shè)計(jì)的目的通常是定位功能故障和性能故障。
功能故障通常有鏈路不通,出現(xiàn)錯(cuò)包,PCIe部分 function無法訪問等等。
性能故障通常速率協(xié)商未到最高速率、傳輸速率不及預(yù)期等等。
添加debug手段可以在芯片調(diào)試時(shí)有效提高定位效率,快速發(fā)現(xiàn)并解決問題。
2.用戶需要添加的debug手段
2.1.最常見的統(tǒng)計(jì)計(jì)數(shù)
常見的統(tǒng)計(jì)技術(shù)有,發(fā)起的請(qǐng)求數(shù)量和收到的請(qǐng)求響應(yīng)數(shù)量、正確的數(shù)量和錯(cuò)誤的數(shù)量、單個(gè)function的統(tǒng)計(jì)以及所有function的統(tǒng)計(jì)。
已發(fā)起的dma read請(qǐng)求、已返回的dma read 響應(yīng)。
已發(fā)起的dma write請(qǐng)求、已返回的dma write 響應(yīng)。
已收到的memory space 訪問以及返回的memory space 響應(yīng)。
2.2.ltssm 狀態(tài)機(jī)
記錄ltssm 協(xié)商過程,鎖存ltssm最近的若干次數(shù)值,便于分析ltssm協(xié)商過程。
ltssm 實(shí)時(shí)狀態(tài)可讀 統(tǒng)計(jì)ltssm進(jìn)入L0狀態(tài)的次數(shù)和退出L0狀態(tài)的次數(shù)
2.3.PCIe 關(guān)鍵使能信號(hào)
PCIe IP關(guān)鍵信號(hào)包含vf/pf_bus_master_en、vf/pf_function_level_reset、hot reset、金手指復(fù)位perst,如下表格才采用英文簡(jiǎn)寫描述。
如上的關(guān)鍵信號(hào)只有0和1兩種狀態(tài),都需要記錄實(shí)時(shí)狀態(tài)、統(tǒng)計(jì)0-->1跳變次數(shù)、統(tǒng)計(jì)1-->0跳變次數(shù)
2.4.異常完成報(bào)文鎖存若干cpld/cpld 報(bào)文頭信息
采用ram或者寄存器鎖存收到的cpl/cpld報(bào)文頭信息,可以根據(jù)需要選擇鎖存的字段,如下所示,強(qiáng)烈推薦鎖存Completion Status 、EP、Completer ID、Requester ID等信息方便問題定位。
2.5.異常請(qǐng)求debug
發(fā)現(xiàn)異常請(qǐng)求時(shí)記錄異常信息。 場(chǎng)景1:無效function的請(qǐng)求,例如當(dāng)前PCIe只有128個(gè)VF,即VF0~VF127,結(jié)果收到了VF128的請(qǐng)求。此時(shí)需要鎖存請(qǐng)求類型、VF number以及產(chǎn)生錯(cuò)誤中斷,方便問題定位。
2.6.記錄cpld時(shí)延信息
為了便于計(jì)算性能,EP發(fā)起的memory 讀請(qǐng)求(俗稱dma read),需要統(tǒng)計(jì)時(shí)延,即從發(fā)起dma read請(qǐng)求開始到收到最后一個(gè)CPLD/CPL時(shí)消耗的時(shí)間,并且期望debug設(shè)計(jì)能夠記錄不同時(shí)延段位的dma read請(qǐng)求數(shù)量。debug設(shè)計(jì)可配置延時(shí)上限,一旦超時(shí)延時(shí)上限,則鎖存dma read請(qǐng)求信息,方便調(diào)試者定位。
2.7.統(tǒng)計(jì)流控信號(hào)
當(dāng)應(yīng)用邏輯寫數(shù)據(jù)速率過大或者RC端數(shù)據(jù)處理能力較弱時(shí),RC反饋給EP的credit更新跟不上應(yīng)用邏輯寫數(shù)據(jù)的速率,會(huì)導(dǎo)致EP對(duì)應(yīng)用邏輯產(chǎn)生反壓,即credit_fc置1。此時(shí)將影響應(yīng)用邏輯dma write的速率,通過觀察credit_fc的統(tǒng)計(jì)計(jì)數(shù)可以初步判斷影響性能的因素。
3.結(jié)束語
出現(xiàn)問題的原因可能是代碼bug,可能是配置的寄存器數(shù)值錯(cuò)誤,也可能是配置順序流程不正確,添加debug設(shè)計(jì)就是為了能夠高效定位問題。本文僅僅簡(jiǎn)單描述了部分需要添加的debug手段,歡迎大家留言補(bǔ)充。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5250瀏覽量
119193 -
鎖存器
+關(guān)注
關(guān)注
8文章
903瀏覽量
41311 -
PCIe
+關(guān)注
關(guān)注
15文章
1165瀏覽量
81965 -
TLP
+關(guān)注
關(guān)注
0文章
30瀏覽量
15565 -
CPLD芯片
+關(guān)注
關(guān)注
0文章
18瀏覽量
11599
原文標(biāo)題:PCIE定位:PCIe需要的debug設(shè)計(jì)
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論