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