當今設計的SoC日益復雜,驗證復雜性呈指數級增長,這不僅是由于設計的復雜性,也是由于協議的復雜性。由于陡峭的學習曲線,新興的新協議使其更加困難。編寫測試用例以涵蓋整個協議成為 3-4 人年的工作,適用于 USB、PCIe 和以太網等復雜協議。Synopsys 提供 System Verilog/UVM 源代碼測試套件來驗證復雜的協議。提供源代碼,測試可以擴展,并輕松定制。通過使用 Synopsys 測試套件快速啟動驗證并加速覆蓋收斂,您可以節省工作量和時間。在這篇博客中,我們將概述USB測試套件,重點是易于集成和使用。
USB VIP 測試套件為一種類型的 USB DUT 提供了一個通用的測試平臺。例如,有一個用于設備 DUT 的通用測試平臺tb_dut_usb_device和一個用于主機 DUT 的通用測試平臺tb_dut_usb_host。還提供了針對其他可能類型的USB DUT的不同測試平臺。連接到設備 VIP 的主機 DUT 的測試平臺提供主機驅動程序,用于將數據對象轉換為特定于 DUT 的 API 序列。還有一個用于通用 xHCI 寄存器模型和內存操作的 xHCI 驅動程序,例如創建命令 TRB 并將其寫入命令環、按命令門鈴并觀察命令完成事件 TRB。連接到主機 VIP 的設備 DUT 的測試平臺提供了一個設備驅動程序,用于將數據對象轉換為特定于 DUT 的 API 序列。
與 DUT 的預期連接是使用頂部模塊中的特定“連接參數”實現的。可以在測試平臺中運行預期的“連接類型”的測試。特定測試通過配置對象配置測試平臺環境。測試平臺級環境(TB_Env)基本上由兩個子環境組成:Host_Env和Device_Env,也是TB_Env級虛擬序列器和TB_Env級序列集合。主機/設備環境由主機/Device_Env級虛擬序列器和主機/Device_Env級序列集合組成。因此,在TB_Env級別編寫的序列可以面向主機/Device_Env級別的虛擬序列器。此主機/Device_Env級別的虛擬排序器由usb_transfer_sequencer、usb_service_sequencer和virtual_usb_sequencer組成。在主機/設備驅動程序中,接收的傳輸/服務要么使用 xHCI 模型(主機 DUT 作為 USB 控制器)進行處理,要么可以重定向到連接到 VIP 代理的排序器的主機/Device_Env中的virtual_usb_sequencer,傳輸/服務的處理由 VIP 完成。
要將 Synopsys USB VIP 測試套件集成到 DUT 中,使用以下 SystemVerilog 接口:
應用程序接口 – 此接口使用 AXI/AHB 接口對控制器執行 CSR(讀/寫),并對內存進行 DMA 訪問 (_mem)。
設備/主機接口 – 這是將 USB VIP 連接到 DUT 的 USB 接口。
設備特定接口 – 驅動程序使用此接口輪詢 DUT 的中斷、事件和狀態,從而控制 USB 測試套件驅動程序。
下圖是具有以下設置的USB控制器DUT測試平臺示例:
被測器類型:USB 設備
DUT 包括 PHY:否
應用界面:安巴AXI
USB 2.0 接口:{UTMI|ULPI} 和 USB 3.0 接口:{PIPE3}
USB 測試套件 VIP 與 DUT 集成
除 USB 測試套件外,Synopsys 還提供適用于各種總線、接口和內存協議的測試套件。所有測試套件都易于集成和使用,并作為擴展和自定義的源代碼提供。
審核編輯:郭婷
-
以太網
+關注
關注
40文章
5436瀏覽量
171934 -
usb
+關注
關注
60文章
7955瀏覽量
264990 -
soc
+關注
關注
38文章
4175瀏覽量
218447 -
PCIe
+關注
關注
15文章
1241瀏覽量
82747
發布評論請先 登錄
相關推薦
評論