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