USB 2.0主控器軟硬件協同仿真系統設計
2.2 本文設計的軟硬協同仿真系統介紹
相對使用傳統驗證方法,本文設計的軟硬件協同仿真系統使用抽象度較高的C語言編寫測試激勵,通過調用系統中CPU模型對外提供的API完成激勵生成與響應檢查。基于本引擎編寫的測試激勵可以方便的移植,所以在硬件仿真階段就能調試SoC系統軟件,不必等到FPGA平臺設計完成或芯片設計完成后,從而大大節省了項目開發時間。圖2是本文驗證USB主控器功能的軟硬件協同仿真的系統架構圖。本驗證環境由3大部分組成:聯合仿真引擎,即CPU模型;總線架構及系統內存模塊,包括一個DDR模型和DDR控制器;USB協議實現、檢查模塊,包括待驗證的USB主控器、支持UTMI+接口的PHY、外設模型。在該平臺下,聯合仿真引擎(CPU模型)替換掉SoC中原有的CPU,是整個驗證系統的核心也是整個系統設計的核心。通過使能信號觸發聯合仿真引擎工作來執行C程序,將軟件對USB主控器的控制轉化成總線時序,將軟件和硬件交互的行為模擬到RTL側。下文將對仿真平臺中各個模塊,重點對聯合仿真引擎進行詳細介紹。本文引用地址:http://www.104case.com/article/155203.htm
2.2.1 基于TLM建模的聯合仿真引擎及設計
使用軟硬件協同仿真的方法驗證USB主控器,只需要用C語言編寫USB主控器驅動并將其集到成系統中進行仿真測試,因此要求CPU模型能夠簡單、高效地執行驅動程序,CPU在SoC中都是直接通過AHBMaster接口連接到總線(BUS)上,對SoC中要驗證的IP來講,CPU就是一個總線Mas ter,IP并不關心CPU是什么指令集,采用何種方式實現。基于此,本聯合仿真引擎設計的CPU模型并沒有采用基于特定指令集設計的復雜方法,而是采用基于SystemC事物級建模(TLM)技術構造了一個基于AHB協議的總線功能模型(BFM),實現了對CPU對SoC中其他模塊所呈現的AHB Master接口的時序封裝。這個BFM能和要驗證的RTL模塊進行連接和通信,它能夠編譯并解釋基于C語言編寫的驅動程序,并把這個驅動程序要執行的操作翻譯成對應的AHB總線信號。通過層次化的封裝,本聯合仿真引擎把基于時鐘時序精度的RTL的抽象層提升到沒有任何時鐘和時間概念的軟件抽象層。同時,本引擎能取代任何CPU。不管SoC中真正使用的CPU是MIPS指令集、ARM指令集還是其他CPU,都能被本聯合仿真引擎替代。
本引擎的CPU模型使用系統仿真用的工作站或者服務器的宿主CPU來運行驗證工程師編寫的基于C語言的測試激勵程序,將需要的具體硬件行為通過Channel向下傳送到RTL端。相對于直接使用SoC中CPU IP核的RTL的仿真,該引擎省去了CPU IP核取指令和運行指令的復雜的仿真、運算過程,大大節省了仿真運行的時間。本聯合仿真引擎為軟件人員和硬件驗證人員分別提供了一些總線訪問和中斷處理的API,為了滿足硬件驗證的需要,另外設計了一些API可以實現讓系統等待一定時鐘周期或者時間、停止或重新開始仿真、不通過總線而可以快速訪問系統存儲器等功能。在系統中CPU模型對USB主控器和DDR控制器的配置均通過這2個模塊對外提供的AHB Slave接口。
2.2.2 仿真系統的其他模塊介紹
DDR2/3為系統內存,存儲USB主控器正常工作需要的描述符和收發的數據。由于本系統中DDR2/3控制器只提供AXI Slave的數據接口,系統中CPU和USB主控器需要通過AHB橋將AHB從機的接口時序轉換成AXI Master的接口時序,保證2個模塊之間正常的數據通信。系統工作過程中AxI,AHB總線監控器監控2個總線活動,打印出報告信息,方便仿真結果檢查。
USB主控器是待驗證的主控器(DUT)。PHY模型提供UTMI+接口,有USB 2.0和USB 1.1兩種接口分別支持EHCI接口和OHCI接口實現。外設模型包括一個PHY驗證IP(VIP)和一個USB外設驗證IP,模擬USB外設的行為。USB外設VIP中包含一個USB監控器模型,負責協議檢查,記錄事物傳輸進程,監控高速、全速和低速的USB傳輸,提供數據包級和事物級傳輸的監控,同時可以監控掛起、恢復和復位信號。
評論