軟件仿真(Simulation),原型驗證(Prototyping),以及硬件仿真 (Emulation),是當(dāng)前主要的三種有效的驗證方法,在芯片前端設(shè)計的功能性驗證階段起到了關(guān)鍵的作用。
近年來,由于大數(shù)據(jù)處理和AI芯片設(shè)計規(guī)模的擴大,以及市場競爭激烈導(dǎo)致的快速迭代需求,越來越多的芯片設(shè)計公司開始選擇硬件仿真,以提高芯片驗證效率,縮短芯片開發(fā)周期。
相較于軟件仿真和原型驗證,硬件仿真具有可支持設(shè)計容量大、擴展性好、工程構(gòu)建時間短、仿真速度快、調(diào)試能力強、驗證場景豐富等特點,適合大型設(shè)計從模塊級、芯片級到系統(tǒng)級的仿真驗證。
硬件仿真驗證模式
硬件仿真支持的豐富的驗證模式,可以滿足芯片設(shè)計不同階段的驗證需求,常用于架構(gòu)設(shè)計、前期開發(fā)、模塊開發(fā)、IP開發(fā)、系統(tǒng)深度調(diào)試等芯片開發(fā)階段。
常見的仿真驗證模式,主要包括:電路內(nèi)仿真(In-Circuit Emulation,ICE仿真),事務(wù)級的仿真加速(Transaction Based Acceleration,TBA仿真),以及混合仿真(QEMU)等。在不同的芯片設(shè)計階段,可以選擇合適的仿真加速方法,來提升驗證效率。
電路內(nèi)仿真(In-Circuit Emulation,ICE仿真)
電路內(nèi)仿真是使用在線仿真器(In-Circuit Emulator)進(jìn)行具有特定調(diào)試技術(shù)的硬件仿真加速,其中在線仿真器代替實際硬件以便在實際系統(tǒng)環(huán)境中運行和測試。此方法允許工程師在實際的系統(tǒng)環(huán)境中進(jìn)行測試和調(diào)試,而無需等待硬件原型的生產(chǎn)。這可以大大加速開發(fā)過程,并提高最終產(chǎn)品的質(zhì)量。
事務(wù)級的仿真加速(Transaction Based Acceleration,TBA仿真)
事務(wù)級的仿真加速是通過使用總線功能模型Bus Functional Model (BFM),將運行在軟件上的Testbench和運行在硬件仿真系統(tǒng)中的DUT進(jìn)行事務(wù)級層面的軟硬聯(lián)合驗證。即在主機上運行的Testbench和在硬件仿真上運行的DUT是通過無時序的事物進(jìn)行交互。通過這種方法,仿真速度可以大大提高,因為仿真的焦點從每個時鐘周期的具體操作轉(zhuǎn)移到了更高級別的事務(wù)。這種方法常用于大規(guī)模系統(tǒng)的設(shè)計驗證,可以提高仿真的效率。
混合仿真(Hybrid Emulation)
混合仿真是將硬件仿真與軟件仿真相結(jié)合,允許工程師同時觀察和調(diào)試系統(tǒng)的硬件和軟件部分?;旌戏抡婵梢蕴峁φ麄€系統(tǒng)的全面視圖,并可以在更高的抽象級別進(jìn)行仿真,可以進(jìn)一步提高仿真速度和效率。是IC設(shè)計團隊在早期架構(gòu)優(yōu)化、軟硬件協(xié)同開發(fā)、RTL級仿真驗證中的重要驗證方法。
這些驗證模式都是硬件仿真的一部分或者擴展,它們提供了不同層次和粒度的仿真和驗證能力,以適應(yīng)不同的設(shè)計需求和驗證目標(biāo)。在實際的設(shè)計和驗證過程中,工程師可能會根據(jù)需要選擇適合的仿真方法。
混合仿真(QEMU)
QEMUQEMU是純軟件實現(xiàn)的一個開源、跨平臺的虛擬化模擬器,幾乎可以模擬任何硬件設(shè)備。通常是模擬一臺能夠獨立運行操作系統(tǒng)的虛擬機,混合仿真時虛擬機會以為自己和真實硬件進(jìn)行數(shù)據(jù)交互,而該“硬件”實際上卻是QEMU模擬,QEMU 將這些指令轉(zhuǎn)譯給真正的硬件。本質(zhì)上,虛擬出的每個虛擬機對應(yīng)宿主系統(tǒng)(Host)上的一個QEMU進(jìn)程,而虛擬機的執(zhí)行線程(如 CPU 線程、I/O 線程等)對應(yīng)QEMU進(jìn)程的一個線程。圖1 QEMU架構(gòu)圖SystemCSystemC是一個支持系統(tǒng)建模的開源的C++ library?;旌戏抡骝炞C前,通常優(yōu)先開發(fā)抽象SystemC模型(如TLM模型),然后將此模型轉(zhuǎn)化為RTL并基于此模型上開發(fā)軟件。在此過程中,軟硬件的諸多錯誤能盡早被發(fā)現(xiàn),從而節(jié)省開發(fā)時間。使用QEMU和SystemC可以共同組成虛擬驗證平臺,實現(xiàn)SoC系統(tǒng)級建模。
圖2 SystemC Simulation
基于QEMU的混合仿真驗證
混合驗證是一種方法,它在使用硬件仿真進(jìn)行DUT仿真的同時,利用虛擬原型建立目標(biāo)SoC環(huán)境,并進(jìn)行相應(yīng)軟硬件的協(xié)同開發(fā)調(diào)試?;旌戏抡媸荌C設(shè)計團隊在早期架構(gòu)優(yōu)化、軟硬件協(xié)同開發(fā)、RTL級仿真驗證中的重要工具。
基于QEMU和硬件仿真系統(tǒng)的混合仿真,是在硬件仿真系統(tǒng)和QEMU上同時運行SoC的不同設(shè)計模塊,在SoC整體架構(gòu)硬件實現(xiàn)之前提供嵌入式軟件和硬件的協(xié)同仿真,為系統(tǒng)架構(gòu)的優(yōu)化、RTL的早期開發(fā)、以及嵌入式軟件開發(fā),提供準(zhǔn)確,即時的仿真驗證環(huán)境,有力推動產(chǎn)品開發(fā)周期左移,從而加速SoC的研發(fā)進(jìn)程。
QEMU運行在Runtime Server上,一般通過SystemC實現(xiàn)TLM(Transaction Level Model)模型,提供虛擬CPU、Linux內(nèi)核以及用戶態(tài)程序。QEMU通過標(biāo)準(zhǔn)SCEMI協(xié)議和硬件仿真器通信,硬件仿真器上可運行SOC外設(shè)等IP,從而實現(xiàn)完整的混合仿真環(huán)境。
圖3QEMU混合仿真
混合仿真帶來的好處
混合仿真帶來了諸多好處,主要表現(xiàn)在軟件開發(fā)和集成測試的工作可以大幅度提前,顯著地縮短了項目周期。在應(yīng)用混合驗證之前,軟硬件開發(fā)和集成測試往往要等待硬件設(shè)計完成后才能開始,這將會導(dǎo)致項目周期延長。而在使用混合驗證之后,軟硬件開發(fā)和集成測試可以在硬件設(shè)計階段同時進(jìn)行,這樣將會顯著地縮短整個項目周期。
圖4使用混合驗證前
圖5使用混合驗證后
基于OmniArk
和QEMU的混合仿真
思爾芯自主研發(fā)的OmniArk芯神鼎硬件仿真系統(tǒng),采用超大規(guī)模可擴展陣列架構(gòu)設(shè)計,設(shè)計容量最大10億門。支持TBA、ICE 、混合仿真等多種仿真驗證模式,可以滿足不同驗證場景需求。
思爾芯提供的混合驗證解決方案,通過連接開源虛擬機QEMU工具和OmniArk芯神鼎硬件仿真系統(tǒng),實現(xiàn)了虛擬原型硬件和嵌入式軟件協(xié)同混合驗證,為早期的設(shè)計架構(gòu)的驗證優(yōu)化、嵌入式軟件的協(xié)同開發(fā)、RTL級的仿真加速提供更準(zhǔn)確、更及時的仿真驗證環(huán)境。以混合仿真一個SoC芯片設(shè)計為例。SoC整體系統(tǒng)架構(gòu)如下圖所示,主要由ARMv8 CPU、AMBA BUS、NVDLA和DRAM等模塊組成。為了實現(xiàn)QEMU虛擬平臺與OmniArk芯神鼎硬件仿真系統(tǒng)的混合仿真,我們將NVDLA和DRAM移植到OmniArk芯神鼎硬件仿真系統(tǒng)中進(jìn)行仿真,同時使用QEMU實現(xiàn)ARMv8的軟件模型。
圖7SoC系統(tǒng)框圖
在設(shè)計移植到OmniArk芯神鼎硬件仿真系統(tǒng)后,Runtime Server端采用QEMU模擬運行ARMv8,并通過TLM Wrapper將其掛載到AMBA總線上。OmniArk芯神鼎硬件仿真系統(tǒng)仿真運行NVDLA,通過AXI Transactor(簡稱Xtor)、GPIO Transactor掛載到AMBA總線上。Runtime Server和OmniArk芯神鼎硬件仿真系統(tǒng)之間通過SCE-MI協(xié)議進(jìn)行軟硬件協(xié)同仿真。
圖8QEMU混合仿真系統(tǒng)框圖
- TLM Wrapper,建立一套基于TLM模型的通信機制,將QEMU包裝成TLM模型,使QEMU模擬的設(shè)備能夠與SystemC開發(fā)的模塊進(jìn)行通信。
- AMBA Router,以軟件形式模擬AMBA總線,實現(xiàn)了標(biāo)準(zhǔn)的AMBA路由機制和仲裁機制,可將多個TLM模型連接并進(jìn)行數(shù)據(jù)通信。
- AXI TLM,是一個基于AXI總線的TLM模型,負(fù)責(zé)將AXI接口設(shè)備適配到AMBA Router總線上。
- IRQ TLM,則是中斷TLM模型,負(fù)責(zé)將設(shè)備的中斷信號經(jīng)TLM2C發(fā)送給QEMU模擬的CPU,由CPU作出響應(yīng)處理。
總結(jié)
當(dāng)前,許多全流程驗證工作都依賴于硬件仿真來完成。在早期,硬件仿真主要被用于代碼設(shè)計的后端階段,主要用于確認(rèn)代碼功能的正確性。然而,隨著設(shè)計流程時間需求的加劇,更多的步驟開始被集成到硬件仿真中,包括早期的功耗分析、系統(tǒng)環(huán)境構(gòu)建和邏輯調(diào)試等。
同時,硬件仿真系統(tǒng)的專用化趨勢日益顯著。對于那些需要處理大量數(shù)據(jù),但算法相對單一的應(yīng)用領(lǐng)域,例如加密算法和WIFI應(yīng)用等,他們對仿真的需求正在逐步增大。在芯片設(shè)計過程中,根據(jù)設(shè)計的復(fù)雜性和特性,可能需要采用不同的仿真驗證模式。在芯片設(shè)計中,我們可能需要不同的仿真驗證模式以適應(yīng)不同的設(shè)計復(fù)雜性和特性。因此,專用的硬件仿真技術(shù)提供了強大的支持,使硬件仿真具有更高的靈活性和適應(yīng)性,滿足各種不同場景和需求的驗證任務(wù)。思爾芯自主研發(fā)的OmniArk芯神鼎硬件仿真系統(tǒng),正是這種具有更高靈活性和適應(yīng)性的硬件仿真系統(tǒng),目前已在多個芯片設(shè)計企業(yè)成功使用。產(chǎn)品除了支持TBA、ICE 、混合仿真等多種仿真驗證模式外,還支持用戶設(shè)計的快速導(dǎo)入和全自動快速編譯、可以支持高速的仿真運行速度,同時具備強大的調(diào)試能力和對海量的數(shù)據(jù)處理能力,可以快速尋找和修復(fù)源代碼中潛在的深度錯誤和性能瓶頸。利用這個平臺,用戶可以更高效地進(jìn)行芯片設(shè)計和優(yōu)化,極大地提高了芯片設(shè)計的質(zhì)量和效率。
-
仿真
+關(guān)注
關(guān)注
52文章
4356瀏覽量
137224 -
驗證平臺
+關(guān)注
關(guān)注
0文章
11瀏覽量
3038 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5789
發(fā)布評論請先 登錄
【喜報】芯神瞳原型驗證解決方案榮膺工博會“集成電路創(chuàng)新成果獎”

NVMe高速傳輸之?dāng)[脫XDMA設(shè)計23:UVM驗證平臺
九鼎投資擬收購六維力傳感器企業(yè)南京神源生
如何在AMD Vitis Unified 2024.2中連接到QEMU

在AMD Versal自適應(yīng)SoC上使用QEMU+協(xié)同仿真示例

NVMe高速傳輸之?dāng)[脫XDMA設(shè)計18:UVM驗證平臺
綠氫系統(tǒng) PEM 電解槽直流接入仿真驗證深度解析
新思科技推出全新HAPS-200原型驗證系統(tǒng)和ZeBu仿真系統(tǒng)

大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)

芯來科技攜手芯芒科技發(fā)布RISC-V CPU系統(tǒng)仿真平臺
西門子Veloce硬件輔助驗證平臺升級
芯華章推出新一代高性能FPGA原型驗證系統(tǒng)

國產(chǎn)EDA公司芯華章科技推出新一代高性能FPGA原型驗證系統(tǒng)

評論