產(chǎn)品服務(wù)
什么是DUT?芯片驗證,尤其是數(shù)字芯片需要圍繞DUT做什么?面對復(fù)雜的設(shè)計代碼,工程師們通常使用軟件仿真、硬件仿真和原型驗證等驗證策略加速驗證收斂。上回我們解釋了軟件仿真是如何圍繞DUT進行工作的。不清楚的小伙伴可以回看上集。
上次說了軟件仿真,今天我們來說說硬件仿真。雖然軟件仿真易于使用,成本效益高,并且具有方便的調(diào)試能力,但一旦碰到大規(guī)模數(shù)字電路設(shè)計,結(jié)構(gòu)越是復(fù)雜,仿真所需要的時間就越長,軟件仿真的效益得到了限制。所以通過專門的設(shè)備在硬件上調(diào)試芯片設(shè)計,如硬件仿真和原型驗證,是其重要的解決方案。
硬件仿真的運行速度和調(diào)試效率比軟件仿真可要高很多,因為它可以對完整的芯片設(shè)計進行自動化的加速仿真并調(diào)試,同時提供信號全可視,多應(yīng)用于大規(guī)模SoC設(shè)計前期的RTL功能驗證。硬件仿真首先將硬件設(shè)計(通常以HDL,例如Verilog或VHDL編寫)編譯,然后加載編譯后的設(shè)計。在一些系統(tǒng)中,設(shè)計可能被加載到專門的硬件中(例如FPGA)。一旦設(shè)計被加載,硬件仿真就可以運行設(shè)計,并觀察其行為。硬件仿真通常會提供觀察和調(diào)試設(shè)計內(nèi)部狀態(tài)的工具。最后,工程師可以根據(jù)結(jié)果分析設(shè)計的正確性,查找并解決問題,以優(yōu)化設(shè)計。
硬件仿真可以提供比軟件仿真更快的仿真速度,同時還能模擬出硬件在實際運行中的實際行為。這使得它們在硬件設(shè)計和驗證過程中,尤其是在處理復(fù)雜和大規(guī)模硬件系統(tǒng)時,非常有用。硬件仿真系統(tǒng)主要由硬件和軟件兩部分構(gòu)成。以思爾芯的芯神鼎硬件仿真系統(tǒng)為例,其中硬件部分是由眾多的FPGA搭成。軟件部分由編譯(Compile)、運行(Runtime)、調(diào)試(Debug)組成。
編譯:編譯階段通過完全自動化軟件將待測設(shè)計(DUT)映射到硬件仿真系統(tǒng)上,便可以進行高速仿真。
運行:運行時Runtime軟件控制整個硬件仿真的運行過程,它可以控制硬件仿真以支持不同的用戶模式,它的核心組成部分是運行數(shù)據(jù)庫、運行庫、軟硬件接口以及用戶交互接口,例如ICE(In-circuit Emulation)、TBA(Transaction-based Acceleration)以及QEMU模式等。還可支持多用戶同時進行使用設(shè)備。
調(diào)試:硬件仿真有著接近軟件仿真的調(diào)試能力。可以通過靜態(tài)探針(static probe),動態(tài)探針(dynamic probe)及內(nèi)置邏輯分析儀(ILA)可以觀測信號的數(shù)據(jù),以及實現(xiàn)信號全可視(Full Visibility)。同時,通過ReadBack/WriteBack功能可以實現(xiàn)對信號進行賦值或恢復(fù)。
此外,硬件仿真還會配備專門的驗證核(VIP),以思爾芯的芯神鼎為例,就支持APB、AHB、AXI4、DDR、Ethernet等,基本覆蓋了常用的接口協(xié)議,可以滿足絕大部分驗證應(yīng)用需求。
總之,硬件仿真通常集成了專門的電路和邏輯,以加速仿真過程。其速度通常可以達到幾百kHz甚至MHz級別,軟件仿真中的功能仿真通常運行速度通常在幾十至幾百Hz,相比之下,硬件仿真比軟件仿真快幾千倍至幾十萬倍。因此,硬件仿真在驗證復(fù)雜設(shè)計時非常有用。它們能夠以更高的速度執(zhí)行仿真,更快地提供反饋和結(jié)果,這對于設(shè)計的驗證和調(diào)試,尤其是SoC至關(guān)重要。