今天我們先來說說軟件仿真。軟件仿真是數字電路設計的關鍵環節,旨在使用硬件描述語言(例如VHDL或Verilog)對數字電路設計進行功能和特性的仿真和驗證。其核心思想是在計算機環境中模擬硬件的行為,以確保設計意圖得到正確實現。一個簡化的仿真驗證系統就像這樣:測試向量(TestVector)運行在測試平臺(Testbench)上,DUT 和Testbench一起通過仿真系統(基于軟件)運行,最終運行出來的結果通常會和預期結果做比較。
隨著芯片設計規模的增大,傳統用Verilog/SystemVerilog編寫的測試平臺無法高效滿足測試需求,因此出現了UVM。UVM提供了健壯的測試平臺,優勢在于其高度的可重用性和行業標準化,可以提高設計效率并便于團隊之間的協作與組件共享。
功能仿真即RTL仿真,這是仿真驗證的第一步,也叫前仿真,目標是在理想的情況下,確認設計的功能是否符合預期。在這個階段,我們通過模擬設計在特定輸入下的輸出來驗證其行為。這就像對待測試設計(DUT)進行“預演”,在沒有物理硬件的情況下就可以發現設計中的邏輯錯誤。在綜合后仿真階段,目標是確認綜合后的電路結構是否符合設計的意圖。在這個階段,我們使用綜合工具將硬件描述語言(HDL)代碼轉化為邏輯網表。然后,我們使用這個邏輯網表進行仿真,以確認綜合后的電路行為是否和設計的意圖一致。
最后,在時序仿真或后仿真階段,我們將考慮設計在實際硬件和工藝中可能遇到的時序問題。這包括元件的延時、布線延時、電源和熱問題等。在這個階段,我們會使用更復雜的仿真模型,比如考慮了延時信息的模型,以更準確地模擬硬件的行為。
以思爾芯的PegaSim芯神馳軟件仿真工具為例,可支持包括System Verilog、Verilog、VHDL和UVM等在內的多種語言和方法學。其創新的架構算法和支持多種處理器架構(如x86-64、RISC-V、ARM等)使得仿真性能高效,同時提供諸如功能覆蓋率、代碼覆蓋率分析等功能。除傳統的license模式外,還提供即算即用的在線仿真云模式,滿足多樣化需求,解決許可證使用和算力問題,從而提升驗證團隊效率。