SoC軟硬件協(xié)同驗證方法及平臺設(shè)計_第1頁
SoC軟硬件協(xié)同驗證方法及平臺設(shè)計_第2頁
SoC軟硬件協(xié)同驗證方法及平臺設(shè)計_第3頁
SoC軟硬件協(xié)同驗證方法及平臺設(shè)計_第4頁
SoC軟硬件協(xié)同驗證方法及平臺設(shè)計_第5頁
免費預覽已結(jié)束,剩余5頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SoC 軟硬件協(xié)同驗證方法及平臺設(shè)計韓正飛(南京大學微電子設(shè)計所 MG0922083)【摘要】軟硬件協(xié)同驗證是 SoC 設(shè)計的核心技術(shù)。本文先介紹了基于 SoC 設(shè)計的軟硬件協(xié)同驗證方法學原理及其驗證流程。然后分析了 SoC 開發(fā)中采用的 3 種軟硬件協(xié)同驗證方案,對其各方面性能做出比較并提出應用建議。接著基于指令集仿真器(InstructionSetSimulation,ISS)仿真方法的基礎(chǔ)上,設(shè)計了一種基于 SystemC 和 ISS 的軟硬件協(xié)同驗證平臺。并對該平臺的架構(gòu)和功能做了簡單的介紹?!娟P(guān)鍵字】SoC 軟硬件協(xié)同驗證驗證方法驗證平臺一、引言隨著以 IP(Intellectual

2、Property)核復用為核心的設(shè)計技術(shù)的出現(xiàn),集成電路(IntegratedCircuit,IC)應用設(shè)計已經(jīng)進入 SoC(SystemonaChip)時代,SoC 是一種高度集成的嵌入式片上系統(tǒng)。芯片設(shè)計中的任何缺陷都會導致整個芯片的設(shè)計失敗,因此,在流片之前,必須對芯片的系統(tǒng)功能實行驗證。軟硬件協(xié)同驗證技術(shù)的概念很早就被提出來,但直到集成電路工業(yè)進入超大規(guī)模(ULSI)時代,以 IP 設(shè)計重用為核心的系統(tǒng)集成芯片(SoC)技術(shù)成為研究熱點,軟硬件協(xié)同驗證技術(shù)才得到更多的關(guān)注和重視。所謂軟硬件協(xié)同驗證(hardware/softwareco-verification)是指在硬件的物理原型(

3、電路板或芯片)生產(chǎn)出來之前,通過一個系統(tǒng)模型來運行軟件,以此來檢查硬件設(shè)計中的 bug、軟件中的缺陷及軟/硬件接口中的錯誤。軟硬件協(xié)同驗證的主要目的是驗證系統(tǒng)級芯片軟硬件接口的功能和時序,驗證系統(tǒng)級芯片軟硬件設(shè)計的正確性,以及在芯片流片回來前開發(fā)應用軟件。其優(yōu)點是使軟件/硬件并行開發(fā)成為可能,縮短了設(shè)計周期,減少設(shè)計投入。對于軟件工程師來說,可以較早地在硬件模型上調(diào)試軟件;對于硬件工程師來說,軟件也可看作是對硬件驗證的一個額外的激勵。二、軟硬件協(xié)同驗證2.1 傳統(tǒng)的協(xié)同驗證系統(tǒng)軟件代碼調(diào)試器 V一ACPU模型硬件調(diào)試工具硬件執(zhí)行引擎圖 1軟硬件協(xié)同驗證的基本架構(gòu)傳統(tǒng)的協(xié)同驗證系統(tǒng)由一個硬件執(zhí)行

4、環(huán)境和一個軟件驗證環(huán)境組成,通過事件和命令在2 個環(huán)境中進行控制和信息交互,如圖 1 所示。硬件仿真通過運行在工作站上的軟件程序模擬,通過設(shè)定的通信接口與軟件執(zhí)行模塊交互。軟件執(zhí)行模塊用于產(chǎn)生總線周期的序列,序列被轉(zhuǎn)換成信號事件或命令集后用于驅(qū)動對應的硬件執(zhí)行命令;同時,對硬件的總線周期響應進行采樣。軟/硬件仿真使用的是獨立的進程,一般采用進程間通信(InterProcessCommunication,IPC)技術(shù)和總線封裝器來實現(xiàn)軟硬件仿真器之間的通信、同步和信息交互。2.2 傳統(tǒng)的協(xié)同驗證步驟在軟件方面,軟件驗證主要建立系統(tǒng)中處理器的虛擬原型(virtualprototype),通過編譯器

5、、調(diào)試器和仿真器來實現(xiàn)。在硬件方面,將軟件調(diào)試驗證正確的應用程序作為測試向量加入到硬件測試平臺(testbench)中,進行硬件仿真,仿真正確說明硬件的 RTL 描述功能正確,然后依次進行綜合,布局布線,檢查布局布線后時序和邏輯是否正確,最終采用硬件加速器來完成整個驗證過程。協(xié)同驗證過程的基本框架如圖 2 所示。圖2軟硬件協(xié)同驗證示意圖如圖 2 所示,軟硬件協(xié)同驗證流程主要分為 3 個步驟:(1)算法級設(shè)計和硬件系統(tǒng)結(jié)構(gòu)的系統(tǒng)仿真驗證:主要利用軟件算法,驗證在硬件結(jié)構(gòu)上實現(xiàn)的可行性。利用高層次語言,如 C,C+或 SystemC,進行算法級的仿真。同時進行軟件和硬件部分的劃分,明確軟件和硬件完

6、成的工作。(2)代碼和硬件 HDL 語言的協(xié)同仿真驗證:主要是對 SoC 當中 CPU 的軟件虛擬原型(virtualprototype)和利用 HDL 語言或網(wǎng)表模擬出來的硬件系統(tǒng)進行協(xié)同仿真驗證。這個階段主要應用 C語言和 HDL 語言進行交互,進行仿真。(3)軟件代碼和實時硬件模擬系統(tǒng)的協(xié)同仿真驗證:在系統(tǒng)設(shè)計原型的 FPGA 硬件模擬系統(tǒng)進行驗證,這主要是對芯片的功能、硬件實時性和系統(tǒng)的可測試性設(shè)計(DesignforTest)進行仿真驗證。三、軟硬件協(xié)同驗證技術(shù)的實際應用方案在實際應用中,常用的有 3 種軟硬件協(xié)同驗證方案:ISS、CVE、FPGA/EMULATOR。ISS 方案圖

7、3 是 ISS 方案的系統(tǒng)結(jié)構(gòu)圖。ISS 方案采用 ISS(例如 ARMulator)代替 CPU 執(zhí)行軟件,并通過接口與外設(shè)及內(nèi)存通信。該方案中的外設(shè)模型一般用 C 語言建立,其中 ISS 可以是指令級精確的,也可以是指令周期級精確的,還可以是具有硬件系統(tǒng)的時鐘級精確,又稱為總線功能模型(BFM)o 但是,如果所有的外設(shè)模塊都是 C 模塊,則整個系統(tǒng)不能達到時鐘級精確度。通常 ISS 都帶有調(diào)試程序,用于控制 ISS 執(zhí)行指令。圖3ISS方案結(jié)構(gòu)圖CVE 方案圖 4 是 CVE 方案的系統(tǒng)結(jié)構(gòu)圖2。CVE 方案以 seamless 的 CVE 軟件為基礎(chǔ),是一種使用兩個仿真器進行仿真的方案。

8、CVE 通過自身的一個內(nèi)核將軟件仿真與硬件仿真結(jié)合。它支持多 CPU 的模型,具有高效的軟件調(diào)試能力,可以單步執(zhí)行 CPU 指令,隨時查看寄存器和內(nèi)存的情況,同時,它提供了強大的信號觀測能力,調(diào)試者可以通過設(shè)置斷點、觸發(fā)條件等進行有效調(diào)試。FPGA/EMULATOR圖 5 為 FPGA/EMULATOR 方案結(jié)構(gòu)圖, FPGA/EMUALTOR 方案是將外設(shè)、 內(nèi)存等部件綜合后用FPGA 實現(xiàn),而 CPU 則用真實的 CPU 或 FPGA 本身集成的 CPU 實現(xiàn)。這些系統(tǒng)一般可以加一個專門的硬件仿真器進行調(diào)試,控制 CPU 的執(zhí)行,并讀取系統(tǒng)狀態(tài)。FPGA是最典型的原型技術(shù)。EMULATOR

9、 與 FPGA 相比的最大特點是集成了多個 CPU 及多個FPGA,其功能更強,但造價更高。圖4CUE方案結(jié)構(gòu)圖圖5FPGA/EMULATCR方案結(jié)構(gòu)圖3.4 三種方案的比較以上 3 種方案各有優(yōu)缺點,本文從以下 6 個方面進行比較。(1)驗證速度在仿真速度方面,F(xiàn)PGA/EMUALTOR 采用硬件實現(xiàn),其速度最快,ISS 方案速度中等,CVE 方案則最慢。(2)時間精度在時間精度方面,F(xiàn)PGA/EMUALTOR、CVE 都可以達到時鐘級精確,而 ISS方案在一般情況下精確度不是很高,大部分為指令級精確。(3)調(diào)試性能:ISS 方案一般用來驗證系統(tǒng)在算法級上的正確性,對硬件的調(diào)試幫助不大,CV

10、E 方案具有最強大的調(diào)試性能,支持軟件的單步執(zhí)行,隨時查看寄存器、內(nèi)存狀態(tài),還可以用硬件仿真器生成波形來調(diào)試硬件。因此無論硬件還是軟件,CVE 的可調(diào)試性能都非常高,F(xiàn)PGA/EMULATO 的調(diào)試性能比較差,它一般是在經(jīng)過仿真器仿真后再做原型驗證,調(diào)試時需要通過增加 JTAG 之類的工具才能看到內(nèi)部狀態(tài);(4)準備工作:ISS 方案需要外設(shè)的 C 模型,一般通過工程師做大量前期積累或者其他途徑得到,CVE 方案只需做好軟硬件配置即可,相對工作量最少,F(xiàn)PGA/EMULATOR 需將硬件下載到 FPGA 中,只有少量的準備工作。(5)價格成本:ISS 方案成本不高,需要一個 ISS 和一些外設(shè)

11、模型,CVE 方案需要購買SeamlessCVE 軟件,比 ISS 成本高;成本最高的是 FPGA/EMULATOR,硬件購買費用很高;(6)適用范圍:ISS 方案比較適合算法驗證和具有一定程度的硬件系統(tǒng)調(diào)試,CVE 方案適合軟硬件的聯(lián)合調(diào)試,尤其在系統(tǒng)未經(jīng)過充分驗證時,需要較好的性能調(diào)試。FPGA/EMULATOR 適合在經(jīng)過仿真器驗證無誤之后,用于原型驗證。將上述比較結(jié)果整理如下表所示。方窠驗i正速度時間精度調(diào)試性能準備工作價格成本適用范圍ISS中等指令級中等大量低早期CVE慢時鐘級M少量中等中期FPGA/EMULATOR快時鐘級低中等高后期四、軟硬件協(xié)同驗證平臺組成結(jié)構(gòu)傳統(tǒng)驗證系統(tǒng)一個較

12、為顯著的局限是 IPC 通信會和主機系統(tǒng)的其他通信發(fā)生沖突,造成仿真性能的瓶頸。其次,總線封裝器和 ISS 之間的接口是私有的,當新的內(nèi)核被集成到協(xié)同驗證系統(tǒng)中時需要修改 ISS 以支持驗證系統(tǒng)的 IPC 原語,從而增加了復雜度。另外,驗證的抽象層次低,存在精度高但速度慢和效率低的問題。軟硬件協(xié)同驗證平臺組成這里提出的一種軟硬件協(xié)同驗證平臺架構(gòu)在傳統(tǒng)驗證系統(tǒng)的基礎(chǔ)上引入 SystemC 實現(xiàn)建模,并利用網(wǎng)絡(luò)傳輸軟件和硬件執(zhí)行環(huán)境之間的數(shù)據(jù),實現(xiàn)信息交互,如圖 6 所示。軟硬件協(xié)同驗證平臺按照功能可以分為 4 個部分:(1)基于硬件描述語言編寫的執(zhí)行程序,應用 VMM 方法產(chǎn)生軟件模型,即 IS

13、S 需要的測試匯編文件集(TestCase);(2)利用硬件描述語言編寫的RTL 級模型,在加載軟件模型部分發(fā)送過來的內(nèi)存映像文件后生成 RTL 級仿真結(jié)果;(3)利用 SystemC 語言編寫的仿真模型,在加載內(nèi)存映像文件后生成 SystemC 仿真結(jié)果;(4)ISS 仿真模型,加載測試匯編文件集(TestCase)后生成 ISS 仿真結(jié)果。軟硬件模型與匯編文件集生成程序分別在不同的機器上運行,軟/硬件之間通過網(wǎng)絡(luò)以Socket 接口方式實現(xiàn)數(shù)據(jù)傳輸和信息交互。按照網(wǎng)絡(luò)通信可將平臺分為客戶端和服務(wù)端,客戶端實現(xiàn)測試向量(TestCase 戌:件的產(chǎn)生,服務(wù)端對接收到的測試向量進行編譯,產(chǎn)生驗

14、證結(jié)果??蛻舳藢a(chǎn)生的測試向量發(fā)送到服務(wù)端,服務(wù)端編譯處理后將產(chǎn)生的結(jié)果反饋給客戶端,客戶端依據(jù)接收的反饋數(shù)據(jù),實行比較與分析。圖 6 軟硬件協(xié)同驗證平臺示意圖軟硬件建模方式硬件建模:平臺的硬件建模包括事務(wù)級建模和 RTL 級建模。事務(wù)是指在建模和仿真系統(tǒng)中,2 個部件之間的一次數(shù)據(jù)或事件的傳輸,RTL 級建模即寄存器傳輸級建模。事務(wù)級建模利用 SystemC 語言實現(xiàn),建立相應的通信機制和通信抽象。事務(wù)級建模在開發(fā)的較早階段進行驗證,可以提供非??焖俚姆抡嫠俣?;同時,可以檢驗系統(tǒng)架構(gòu)的合理性。RTL 級模型用 HDL 語言實現(xiàn),在驗證系統(tǒng)中與事務(wù)級模型并行在 VCS 環(huán)境下進行仿真。通過比較

15、RTL 級與事務(wù)級的仿真結(jié)果,可以檢驗和優(yōu)化硬件的系統(tǒng)架構(gòu)設(shè)計。軟件建模:軟件模型主要是利用 ISS 仿真器模擬微處理器的行為,接收測試向量后對其編譯處理后生成機器碼,并對機器碼進行解碼和加載。軟件模型通過網(wǎng)絡(luò)與硬件仿真器進行信息交互,實現(xiàn)軟硬件協(xié)同驗證。ISS 模型比較復雜,可以采用特定處理器廠商提供的模型,也可以用 C/C+等高級語言模擬實現(xiàn),協(xié)同仿真模型,如圖 7 所示。五、軟硬件協(xié)同驗證平臺的實現(xiàn)平臺間數(shù)據(jù)傳輸方式驗證平臺服務(wù)端和客戶端的通信采用基于 TCP/IP 協(xié)議的 Socket 接口技術(shù)進行通信。客戶端和服務(wù)端之間利用 UDP 方式收/發(fā)請求和確認信息,利用 TCP 方式傳輸報

16、文??蛻舳?服務(wù)端通過設(shè)定的 UDP 端口(Q_SEND/Q_ACK)偵聽/接收 UDP 傳輸?shù)恼埱?確認信息,利用設(shè)定的 TCP 端口(D_SEND/D_RECV)接收/發(fā)送報文,服務(wù)器和客戶端的通信以數(shù)據(jù)包的方式實現(xiàn)??蛻舳?服務(wù)端的端口使用如表 2 所示,C 表示 Client(客戶端),S 表示 Sever(服務(wù)客戶端/躡金端端口控制傳輸路徑收/發(fā)方式ClientQ_REQRequireCtoSUDPServerQ_ACKACKStoCUDPClientDSENDSendCtoSTCPServerD_RECVReceiveStoCTCP表 2 端口的使用驗證平臺的驗證流程測試流程由客戶

17、端發(fā)送請求開始信號 Q_REQ 開始,服務(wù)端接收到 Q_REQ 后激活本機上的執(zhí)行程序,并返回一個確認信號 Q_ACK 給客戶端。客戶端接收到確認的應答信號后激活硬件部分的執(zhí)行程序,產(chǎn)生測試需要的測試向量,硬件執(zhí)行程序可以使用 Verilog/VHDL等硬件描述語言實現(xiàn)。客戶端通過 Socket 接口方式將測試向量發(fā)送給服務(wù)端。服務(wù)端將測試向量的源文件編譯、鏈接后,經(jīng)過軟件模型生成結(jié)果,并提取機器碼傳輸給客戶端。客戶端通過 Socket 接口接收機器碼并置入 RTL 模型和 SystemC 模型,2 個模型分別產(chǎn)生各自的結(jié)果,并實現(xiàn)第 1 次比對。比對正確后將一致的結(jié)果傳輸?shù)椒?wù)端的軟件測試接

18、口與軟件模型生成的結(jié)果實現(xiàn)第 2 次比對,該次比對驗證的結(jié)果被記錄入 Log 文件用于核查。圖 8 給出驗證平臺的軟硬件模型生成結(jié)果的例子。Client圖 8 軟硬件驗證過程的具體實現(xiàn)運行與測試為對驗證平臺的性能做一個評估,采用 2 臺主頻為 1.8GHz 的計算機分別做客戶端與服務(wù)端,客戶端模型在 VCS 環(huán)境下運行,服務(wù)端的仿真模型用高級編程語言 C+編寫并在Linux 環(huán)境下運行。結(jié)果顯示,驗證平臺可以穩(wěn)定地進行數(shù)據(jù)測試,自動化程度較高,數(shù)據(jù)傳輸率可以達到8MB/s,能夠滿足大批量數(shù)據(jù)容量 SoC 軟硬件協(xié)同驗證的需求。六、總結(jié)軟硬件協(xié)同驗證可以使軟件工程師盡早的接觸到硬件設(shè)計,從而使軟

19、件的開發(fā)測試和硬件設(shè)計可以并發(fā)進行。與傳統(tǒng)的先設(shè)計硬件后開發(fā)軟件的串行開發(fā)模式相比,軟硬件協(xié)同驗證可以大大縮短整個項目的開發(fā)周期。同時,軟硬件協(xié)同仿真提供了在真實系統(tǒng)中出現(xiàn)的激勵信號,和人工加入的測試信號相比,具有更高的真實性,從而可以極大的改善硬件驗證的準確性。隨著 SoC 技術(shù)的發(fā)展,軟硬件協(xié)同驗證的效率和正確性對整個 SoC 設(shè)計的影響也越來越大。相比較過去常用的將軟硬件仿真環(huán)境放在一個系統(tǒng)中,實行單一的進程處理方法不同,本文將軟硬件的仿真過程分離開來,使用 Socket 來實現(xiàn)軟硬件的通信和信息交互,更加接近實際情況。在該軟硬件協(xié)同驗證平臺中軟硬件仿真分別處于不同的環(huán)境下,仿真過程可以并行執(zhí)行,仿真速度更快;同時,在不同的機器上實現(xiàn)軟硬件仿真,可以提高數(shù)據(jù)驗證的容量,效率更高。在該平臺中,軟件用編程語言實現(xiàn),硬件用硬件描述語言來建模,在系統(tǒng)級進行建模,可以同時驗證系統(tǒng)架構(gòu)的正確性,以優(yōu)化系統(tǒng)結(jié)構(gòu)。參考文獻:1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論