文/閻芳 李翔 徐雙平 劉正清
(1.中國民航大學 天津市民用航空器適航與維修重點實驗室 天津市 300300)
(2.中國民航大學 民航航空器適航審定技術重點實驗室 天津市 300300 3.中國民航大學 適航學院 天津市 300300)
當前,面對SoC 芯片,硬件仿真及加速器的使用愈發廣泛,其在大型復雜設計的驗證工作中扮演著極為重要的角色。隨著機載SoC 設計的復雜度越來越高,因此對機載SoC 的驗證帶來了巨大的挑戰[1]。傳統的機載SoC 功能驗證是通過軟件仿真工具(Simulator,如Questasim 或VCS 等)在計算機操作系統平臺上來實現對以硬件描述語言(HDL)形式描述的機載SoC 設計的功能驗證[2],借助純軟件仿真器的方法,其驗證周期非常長。硬件仿真加速器是將以HDL形式描述的SoC設計轉換成真實的硬件電路來進行功能驗證,通過以真正的硬件電路運行來替代用仿真工具軟件運行的方式實現測試向量仿真加速的需求。
近年來,SoC 設計采用硬件加速或仿真器方法已經成為解決SoC 驗證難度的重要技術手段[3]。功能驗證是SoC 設計中最為重要的部分, SoC 設計人員越來越重視功能驗證的完善性,并不斷探索新的驗證方法和采用先進的功能驗證手段[4]。伴隨集成電路制造工藝技術的飛速發展,SoC 設計的規模和復雜度也急劇提升。因而要對SoC 設計在軟件平臺上進行完善的功能測試也變得越來越困難。通過人工編寫的測試向量難以保證驗證的完整性,并且通過運行仿真工具軟件來對大量的測試向量進行功能驗證的周期非常長。采用FPGA 原型驗證方法來說[5],測試管腳數量有限,測試需求的增加導致測試管腳被不斷添加,綜合及布局布線過程反復迭代,驗證周期不斷變長。使用新的驗證工具來更好的進行錯誤定位和修正后驗證成為了保證機載SoC 按時完成驗證任務的關鍵。
航空電子全雙工交換式以太網(AFDX)以其高實時、高可靠和低延時的特點成為目前較先進的機載航空總線網絡[6],目前已成功應用在國產大飛機C919 上。本文所要驗證的設計是AFDX 端系統,AFDX 網絡的組成部件包括航空專用物理層鏈路,端系統和交換機。其中端系統負責向網絡中的其他組件發送或接收上層應用產生的數據包,包括了用戶數據包和網絡自身的管理數據包。AFDX端系統集成了PCIe2.0 接口、發送控制和接收模塊、介質訪問控制層(MAC)模塊、rgmii 接口等模塊。AFDX 端系統整體的架構如圖1 所示,上層數據通過PCIe 總線與端系統的PCIe 接口模塊進行數據傳輸,發送控制模塊對數據幀進行排隊,調度發送至MAC 模塊中,經由RGMII 接口模塊傳輸至物理層,同時物理層過來的數據幀經由MAC 模塊處理后發送到接收控制模塊,對數據幀進行順序性檢查后通過PCIe 接口模塊發送至上層應用。

圖1:AFDX 端系統整體框圖
SoC 設計具有規模大、管腳多、內部信號多、邏輯關系復雜等特點,因此對SoC 的驗證需要花費大量的時間。當今SoC 設計中近70%的時間是用來進行驗證,而驗證中最為重要的就是功能驗證。特別是對于SoC,一般都內嵌有處理器,除了硬件驗證帶來的挑戰外,軟件驗證也成為SoC 設計最為重要的一環。因而,SoC 設計者一方面希望能采取更好的方式來有效的加速大量用戶測試向量的仿真過程;另一方面則期待能在昂貴的芯片流片過程之前,就能在芯片真實的工作環境中去運行芯片設計,進行最真實的功能模擬。硬件仿真器則正是在用戶的這些需求之下所發展出來的一種芯片設計的功能驗證手段。
Mentor Graphics 公司的veloce2 硬件仿真加速器是一款業界最快的硬件仿真器。其工作模式主要分為三種:在線仿真(In-Circuit Emulation,ICE)模式、虛擬實驗室(VirtualLAB)模式和基于事務加速(Transaction Based Acceleration,TBX)模式。在ICE 模式下,以硬件電路形式存在的SoC 設計能夠與真實的工作環境相連,從而實現了在真實的工作環境中運行SoC 設計,進行最真實的功能模擬。在VirtualLAB 模式下,可以使用Mentor Graphics 公司提供的VirtuaLAB 的虛擬設備,這些是外設的事務級模型,可以以更高的靈活性和與物理外設相同的準確性來驗證設計。在TBX 模式下,將驗證代碼中可綜合的部分與待測設計加載到硬件仿真加速器上運行,將不可綜合的驗證代碼在服務器上運行,通過以真正的硬件電路運行來替代用仿真工具軟件運行用戶設計的方式,可以大大縮短測試向量仿真的時間。

圖2:Veloce2 操作流程

圖3:基于TBX 模式的測試平臺
采用圖2 的操作流程,將源代碼或設計網表輸入后,在分析(ANALYZE)和RTL 設計編譯(RTLC)階段,可同時對Verilog和SystemVerilog語言進行語法檢查;在Veloce綜合(VELSYN)階段,按照設計的時鐘等約束將輸入設計轉換為Veloce 原語庫,執行芯片劃分與全系統布局布線;生成邏輯板上單塊芯片的網表;在Veloce芯片編譯(VELCC)階段,在每塊芯片內進行布局布線;在Veloce全局調度(VELGS)階段,對設計進行時序分析,產生硬件仿真器所需的時序信息文件;在軟件狀態重現模型生成(SSRMODELGEN)階段,為每一塊芯片生成狀態可重現的數據;在可視化數據庫生成(RIIGEN)階段,結合前一階段,為生成仿真波形產生相關數據。
在TBX 模式中,采用SystemVerilog 搭建的層次化測試平臺中,將待測設計和測試平臺分為HDL 側頂層和HVL 側頂層,HDL 側頂層是將待測設計與低層次的監視器,響應器和可綜合的驅動器加載到硬件仿真器中運行,HVL 側是將高層次的生成器和檢查器在主機PC 上運行。如圖3 所示,根據不同的測試案例,生成器產生相應的測試激勵,并發送至驅動器中,與傳統的生成器不同的地方在于,跟時序相關的如時鐘信號和復位信號等需要在驅動器中生成,生成器只負責數據生成。驅動器負責將數據包傳輸至待測設計和監視器中,監視器收集到的數據與待測數據輸出的數據在檢查器中的參考模型中進行對比,來完成功能驗證。在待測設計的接口處插入SVA 斷言,結合主機上回傳的波形,有助于在測試中出錯時能夠快速的定位出錯誤位置,并且縮短了回歸測試的時間。
通過在測試平臺和DUT 之間建立事務級的通信來加速仿真環境,將HDL 側和HVL 側代碼完成編譯和綜合后下載到硬件仿真器和主機上進行運行,成功提高了測試的速度。在TBX 模式下,使用純軟件仿真的測試案例用時5h,而使用硬件仿真加速器只需要運行1min 便可完成測試,相比傳統的純軟件仿真提高了300 倍的測試效率。并在主機上可以任意添加需要查看的信號,增強了設計的可觀測性,提高了功能驗證的效率。
隨著機載SoC 復雜度的不斷增加,集成了大量IP 核和微處理器的SoC 設計給驗證工作帶來了挑戰,如果借助傳統的純軟件仿真器的方法,其驗證周期會非常漫長。本文通過將AFDX 端系統SoC設計加載到硬件仿真加速器上運行,在HDL 側以真正的硬件電路運行來替代用仿真工具軟件運行SoC 設計的方式,可以大大提高測試向量的仿真速度,并且可以將主要模塊信號波形上傳到在HVL側主機上,增強了測試的可觀測性,可以快速的定位出錯誤的信號,提高了驗證效率,對機載SoC 設計的功能驗證提供了參考。