專利名稱:多仿真驗證平臺下的處理器參考模型的通信接口方法
技術領域:
本發明涉及處理器驗證技術領域,特別涉及一種適用于多仿真平臺下SystemC描述的處理器參考模型和Testbench的接口通信方法。
背景技術:
隨著新型集成電路驗證語言的不斷出現,高級驗證語言和驗證方法學的使用能很大地提高芯片驗證效率。System C是一種軟/硬件協同設計語言,一種新的系統級建模語言。SystemC是在C++的基礎上擴展了硬件類和仿真核形成的,由于結合了面向對象編程和硬件建模機制原理兩方面的優點,這可以使SystemC在抽象層次的不同級進行系統設計。系統硬件部分可以用SystemC類來描述,其基本單元是模塊模塊內可包含子模塊、端口和過程,模塊之間通過端口和信號進行連接和通訊。隨著通訊系統復雜性的不斷增加,工程師將更多的面對使用單一的語言來描述復雜的IP和系統,而SystemC,語言良好的軟硬件協同設計能力這一最大特點,將會使其應用更加廣泛。搭建驗證環境是仿真驗證中最重要的一項工作內容,它直接影響著驗證工作的質量和效率。目前,大多數的驗證工程師在搭建驗證環境時使用的語言是VHDL或Verilog,這兩種語言在FPGA設計方面有諸多優點,然而利用它們搭建驗證環境卻并不是十分理想,主要有以下一些缺點
(1)測試向量設計不夠靈活,工作量大,輸入邏輯一般只能基于時間流;
(2)測試激勵文件龐大,驗證環境中的各個功能模塊不便于劃分和管理,復用性差;
(3)仿真結果數據的比對和覆蓋率的統計過程自動化程度低。搭建高效的驗證環境對于提高仿真驗證效率有著重要意義。同SystemC —樣,SystemVerilog是一種高級驗證設計語言,它建立在Verilog語言的基礎上,是IEEE 1364 Verilog-2001標準的擴展增強,兼容Verilog 2001,并新近成為下一代硬件設計和驗證的語言。SystemVerilog結合了來自Verilog、VHDL、C++的概念, 還有驗證平臺語言和斷言語言,也就是說,它將硬件描述語言(HDL)與現代的高層級驗證語言(HVL)結合了起來,使其對于進行當今高度復雜的設計驗證的驗證工程師具有相當大的吸引力。這些都使得SystemVerilog在一個更高的抽象層次上提高了設計建模的能力。 它主要定位在芯片的實現和驗證流程上,并為系統級的設計流程提供了強大的連接能力。 Cadence和Mentor兩家公司曾推出過AVM和URM仿真驗證方法學。如今這兩大公司在此基礎上又聯合推出了 OVM (Open Verification Methodology)仿真驗證方法學,OVM是業界第一個開源的SystemVerilog仿真驗證資源庫,它為驗證工程師提供了開源的基類設計代碼,可以用于構建可復用的驗證環境,并且支持事務級傳輸模型的接口通信。采用面向對象的設計思想,利用OVM搭建了基于Class的仿真驗證環境,其結構如圖1所示。與一般的硬件描述語言不同,SystemVerilog語言具有強大的Class功能,利用 OVM提供的各種基類能夠設計實現并有效管理各種驗證功能模塊。該驗證環境主要由發生器Generator、驅動器Driver、監控器Monitor、記分板 ScoreBoard和環境Environment五個部分組成,他們都是通過繼承和擴展OVM的基類實現的。其中,Generator的主要功能是定義并產生測試向量中所需的各種數據內容;Driver的主要功能是將Generator產生的測試向量發送給收集被測設計DUT的輸入端口 ;Monitor 的主要功能是DUT的輸出端口信息;ScoreBoard的主要功能是對DUT的輸入和輸出信息進行分析和判斷,并產生驗證結果;Environment的主要功能是對整個驗證環境進行設置和管理。與傳統的仿真驗證環境相比,該環境具有以下優點
(1)以Class為單位實現的功能模塊獨立性強,耦合性小,具有可配置、可復用的特占.
(2)ovm_sequence中的偽隨機機制簡化了測試向量的設計過程,提高了驗證覆蓋率;
(3)Interface保證了 DUT設計的獨立性和完整性;
(4)該驗證環境能夠有效地監視并管理驗證周期;
(5)該驗證環境有較強的覆蓋率統計能力;
(6)OVM提供的基類有效減少了仿真驗證環境開發的工作量。本發明利用OVM和SystemC設計實現的仿真驗證環境在一定程度上緩解了這種困境,實現了多仿真平臺下SystemC和OVM/SystemVerilog之間無縫地集成,充分發揮 SystemC/SystemVerilog驗證語言在構建驗證環境的優勢,滿足了高質量和高效率的驗證需求。
發明內容
本發明在于克服傳統驗證環境缺點,構建高效的覆蓋率驅動約束隨機驗證環境, 驗證處理器的特性是否與參考模型的特性一致,因此需要解決處理器參考模型與驗證平臺間的通信。處理器參考模型是整個驗證平臺的一部分,用于產生被視為是正確的或參考的指令執行結果,因此在將指令激勵法給處理器時,還需將對應的激勵發給處理器參考模型。執行完一條指令后,參考模型還需將其指令執行結果反饋給驗證平臺以提供被測處理器指令執行是否正確的依據。完成對處理器參考模型的指令發送和狀態反饋過程需要在處理器參考模型和驗證平臺間實現可阻塞的通信接口。驗證平臺是基于OVM驗證方法學, 采用SystemVerilog編寫。因此要解決處理器參考模型與驗證平臺間的通信,就必須解決 SystemC和SystemVerilog這2種驗證語言間的有阻塞地通信。SystemVerilog直接編程接口(DPI)可以在SystemC和SystemVerilog之間提供必要的高性能、易用性鏈接。有了 SystemVerilog DPI后,系統架構師和軟件工程師就可以用SystemC做設計,然后直接移動到SystemVerilog域進行驗證,并允許他們充分利用受限隨機技術、測試平臺自動化、聲明和功能覆蓋等功能。在Questa/Ncsim仿真平臺下,通過宏能將SystemC模塊成員函數以 DPI的形式導出到SystemVerilog中,并且實現有阻塞地通信;在VCS (Verilog Compiler Simulator)仿真平臺下,為了能進行有阻塞地通信,使用事務級接口 TLI (Transaction Level Interface)來完成SystemC和SystemVerilog之間無縫地集成。下面介紹這2種仿真平臺下實現SystemC和SystemVerilog間無縫集成的方法。根據本發明的一種適用于VCS仿真驗證平臺下的SystemC描述的處理器參考模型事務級通信接口,其實現步驟如下
(1)定義事務級通信接口,包括寫指令接口,讀回寫數據接口以及讀指令執行狀態接
Π ;(2)實現(1)中定義的接口函數功能,完成與處理器參考模型的交互;
(3)編寫接口定義文件,利用VCS工具命令自動生成與處理器參考模型接口相連的適配器;
(4)使用DPI將(3)中適配器的接口功能函數導出到verilog中。根據本發明的另一種適用于Questa/Ncsim仿真平臺的SystemC描述的處理器參考模型通信接口,其方法步驟如下
(1)構造一個SystemC模塊,定義3個成員函數,包括寫指令接口函數、讀回寫數據接口函數以及讀指令執行狀態接口函數;
(2)使用仿真工具內嵌的宏將步驟(1)中的接口函數導出到verilog中;
(3)在verilog中使用import將接口函數導入。本發明具有下列優點
1.本發明將SystemC描述的處理器參考模型集成到基于OVM驗證方法學的驗證環境中,發揮了 SystemC在描述系統級模型的優勢,提高了驗證平臺的效率和質量。2.本發明解決了通過傳統的DPI接口不能實現SystemC和SystemVerilog之間有阻塞地通信的缺點,分別給出了在Questa、Ncsim和VCS仿真平臺下實現SystemC和 SystemVerilog之間有阻塞地通信。
圖1是適用于VCS仿真驗證平臺的SystemC描述的處理器參考模型事務級通信接口示意圖。圖2是適用于Questa/Ncsim仿真平臺的SystemC描述的處理器參考模型通信接口示意圖。
具體實施例方式下面結合附圖和具體實施方式
對本發明作進一步詳細描述
圖1是適用于VCS仿真驗證平臺的處理器參考模型的事務級通信接口方法示意圖。比如在驗證處理器時,按照如下方法步驟在處理器參考模型和驗證平臺之間實現可阻塞的事務級通信接口
(1)定義事務級通信接口 Ch文件),包括寫指令接口、讀回寫數據接口以及讀指令執行狀態接口,比如定義以下3個TLI接口函數聲明,也即寫、讀回寫、以及讀指令接口的函數聲明,在圖1中指的是左側的TLI接口。為了用.h文件定義事務級通信接口,譬如可以定義一個虛基類,繼承于類SC_ interface (該類是SystemC中的接口基類)而描述實現通信接口所需的3個接口函數形式
權利要求
1.一種適用于VCS仿真驗證平臺的由SystemC描述的處理器參考模型的事務級通信接口方法,用于在所述處理器參考模型和一種驗證平臺之間實現通信接口,包括步驟如下(1)根據處理器參考模型接口要求定義事務級通信接口,包括寫指令接口、讀回寫數據接口以及讀指令執行狀態接口 ;(2)實現(1)中定義的接口的函數功能,完成與處理器參考模型的交互;(3)編寫接口定義文件,以及利用VCS工具命令自動生成相應的SystemC適配器和 SystemVerilog適配器;以及(4)使用DPI將步驟(3)中的SystemVerilog適配器的接口功能函數導出到 SystemVerilog 中。
2.根據權利要求1所述的事務級通信接口方法,其特征在于,所述驗證平臺是OVM驗證平臺,其與所述處理器參考模型之間通過所述事務級通信接口、所述SystemC適配器和所述SystemVerilog適配器進行通信。
3.根據權利要求2所述的事務級通信接口方法,其特征在于,所述通信通過采用sc_ fifo讀寫阻塞機制而完成可阻塞通信。
4.根據權利要求2所述的事務級通信接口方法,其特征在于,在VCS平臺下將SystemC 描述的處理器參考模型集成到基于OVM的所述驗證平臺中。
5.根據權利要求1所述的事務級通信接口方法,其特征在于,在步驟(4)中,使用DPI 來封裝(3)中的接口功能函數。
6.一種適用于Questa/Ncsim仿真平臺的由SystemC描述的處理器參考模型的通信接口方法,用于在所述處理器參考模型和一種驗證平臺之間實現通信接口,其步驟如下(1)構造SystemC模塊,定義成員函數,包括寫指令接口函數、讀回寫數據接口函數以及讀指令執行狀態接口函數;(2)使用仿真工具內嵌的宏將步驟(1)中的接口函數導出到verilog中;以及(3)在verilog中使用import語句將接口函數導入。
7.根據權利要求6所述的通信接口方法,其特征在于,通過具有特定功能的宏將 SystemC模塊的非線程成員函數以DPI接口形式導出到SystemVerilog。
8.根據權利要求6所述的通信接口方法,其特征在于,所述處理器參考模型被集成到基于OVM驗證方法學的驗證環境中。
9.根據權利要求8所述的通信接口方法,其特征在于,通過具有特定功能的宏將所述處理器參考模型以類似Verilog模塊的形式導出到SystemVerilog中,并進行模塊例化。
全文摘要
本發明涉及多仿真驗證平臺下的處理器參考模型的通信接口方法,用于在處理器參考模型和驗證平臺之間實現可阻塞通信接口。在VCS仿真驗證平臺下,根據處理器參考模型接口要求定義事務級通信接口;實現所定義的接口函數功能,完成與處理器參考模型的交互;編寫接口定義文件,用VCS工具命令生成相應的SystemC/SystemVerilog適配器;用DPI將后一適配器的接口功能函數導出到SystemVerilog。在Questa/Ncsim仿真平臺下,構造SystemC模塊,定義成員函數;使用仿真工具內嵌的宏將接口函數導出到verilog中;在后者中使用import語句將接口函數導入。從而提高驗證平臺效率和質量。
文檔編號G06F9/54GK102567122SQ201010607239
公開日2012年7月11日 申請日期2010年12月27日 優先權日2010年12月27日
發明者王勝 申請人:北京國睿中數科技股份有限公司