調試復雜的串行協議是驗證工程師面臨的最大挑戰。這是影響每個項目進度的最耗費時間和精力的活動之一。傳統的調試方法使用松散連接的波形、日志文件、消息和文檔的組合,這不足以進行高效的調試。使用日志文件調試 SoC 和塊級問題既繁瑣又耗時。在開發周期的后期階段出現的設計問題可能極難跟蹤和調試,從而使項目進度面臨風險。
有沒有辦法簡化調試過程和性能?如果可以查看數據包和交易而不是信號,不是更容易嗎?在這篇博客中,我們將討論用戶在調試復雜協議時面臨的一些挑戰;并重點介紹基于 GUI 的事務調試解決方案,該解決方案既簡單又快速。.我們將以USB為例,討論復雜的功能,調試挑戰和相應的解決方案。
讓我們看一下USB 3.0協議的復雜性及其相應的調試挑戰。USB 3.0 協議指定主機通過交換以下類型的信令和數據包來控制與設備的通信:
鏈接命令數據包
鏈路命令用于鏈路級數據完整性、流量控制和鏈路電源管理。這些數據包具有八個符號的固定長度,重復以增加容錯能力。僅使用波形中的串行信號很難識別這些符號的模式。
協議命令數據包
首先,主機啟動多個傳輸,如批量、中斷、常時等量和中斷。每次轉賬都有多個事務 - 設置、狀態、傳入和傳出。根據類型,每個事務都有 TP(事務數據包)和 DP(數據包)的必要數據包組合。使用許多類型的TP,如ACK,NRDY,ERDY,STALL,PING等。然后,主機為多個設備地址和端點號啟動這些數據包。對于調試,檢查這些數據包的適當順序在波形中是一項艱巨的任務。
低頻周期信令 (LFPS)
LFPS 用于在“低功耗鏈路狀態”下通過鏈路的兩個端口之間進行邊帶通信。當鏈路正在訓練中,或者當下游端口發出“熱重置”以重置鏈路時,也會使用它。LFPS 功能涉及鏈路速度協商、退出低功耗狀態和鏈路復位。識別波形中傳輸信號的時序具有挑戰性。
還有其他挑戰,例如:
USB 還定義了由單個事務組成的軟件級傳輸。
USB 允許數據包突發,并且確認是流水線的,這使得查找與任何事務對應的響應數據包變得更加困難。
總線上不同端點的流量啟動和交錯數據包使得很難找到與端點對應的流量。
波形能否為這些驗證挑戰提供快速解決方案?我們需要知道總線上發生了什么來調試問題。波形將僅顯示總線上的序列化數據包,手動解碼所有串行數據以獲取所需的數據包/事務/傳輸詳細信息非常復雜。幸運的是,Verdi 協議分析器已被證明是一種簡單有效的調試方法,可將生產力提高數倍。
Verdi 協議分析器按總線上發生的順序顯示分層事務活動,如下面的快照所示。選擇相應的父傳輸時,所有鏈接的事務和數據包都會突出顯示。
Verdi 協議分析器為用戶提供了傳輸、事務、數據包和協議握手的圖形視圖。它突出顯示了整個層次結構之間的關系,直觀地揭示了高度交錯流量的復雜行為。對錯誤、警告和消息進行注釋,以快速識別模擬中的問題。它使用戶能夠快速了解協議活動、識別瓶頸并調試意外行為。
我們已經描述了一些調試挑戰,以及Verdi協議分析器如何幫助快速輕松地解決這些問題。有關更多詳細信息,請閱讀我們最近的白皮書 - “調試基于 IIP 的設計和 SoC 的簡單方法:使用 Verdi 事務調試平臺”。本白皮書介紹了使用 Verdi 事務調試平臺(包括協議分析儀、波形查看器、源代碼瀏覽器)使用“實時仿真數據”進行調試的概念,并通過常見 USB 驗證挑戰的示例演示了易用性和省時功能。
審核編輯:郭婷
-
usb
+關注
關注
60文章
7938瀏覽量
264485 -
分析器
+關注
關注
0文章
92瀏覽量
12492 -
GUI
+關注
關注
3文章
659瀏覽量
39657
發布評論請先 登錄
相關推薦
評論