1. 使用場景
原型驗證系統是一種基于FPGA的芯片驗證平臺,它是通過將RTL移植到現場可編程門陣列來驗證芯片功能。它會幫助工程師在芯片設計過程中搭建軟硬件一體的系統驗證環境,多用于芯片設計后期的系統級功能和性能驗證。
也就是說,有了它,在流片前工程師們就可以在芯片的基本功能驗證通過后,立刻開始驅動開發。甚至可以在流片前就給有需求的客戶進行芯片演示,進行預售。這就大大縮短了整個驗證周期,加速了產品上市時間。
而硬件仿真器卻是對完整的芯片設計進行加速仿真并調試,包括芯片設計的系統級功能驗證、IP設計驗證,多應用于芯片設計前期的RTL功能驗證。根據架構可分為FPGA-Based硬件仿真器,以及CPU-Based硬件模擬器,本次主要講的是FPGA-Based硬件模擬器。
硬件仿真器中含有數量較多的探測儀器、信號記錄器等,以記錄系統電路運行的每一個時鐘周期的數據,以便查找設計錯誤,因此信號全可視是硬件仿真器的關鍵特性。通常來說,設計前期大部分都在調試,適合使用硬件仿真器驗證,而設計后期大部分都在進行回歸測試,此時便適合用高性能原型驗證系統驗證。
2. 設計容量及技術架構
原型驗證系統更適合一些中小規模的設計,容量從千萬門到十億門級別都有,可以滿足不同芯片設計規模和設計場景的多樣化需求。采用單片或多片FPGA架構,FPGA之間連線不固定,工程師們可針對自己的設計進行靈活配置。
對比原型驗證系統,硬件仿真器的設計容量就更大了,可以支持10億門級以上的超大規模設計容量,通過級聯甚至可以擴展到上百億門級別。采用的是FPGA陣列架構,FPGA之間連線固定,是不需要工程師們干預的。
3. 工程構建
硬件仿真器有著全自動化的軟件設置實現流程,基本無需修改硬件連接配置,以及靈活多樣的全系統仿真調試能力,包括:信號的追蹤深度更深(達數十億仿真周期)、信號的條件觸發、動態探針插入、離線調試等。通常跑完大型項目只需幾周。
而原型驗證系統由于系統自動化程度較低,對于一個設計驗證項目,完成工程構建及硬件環境搭建通常需要數周以上。
4. 調試能力
在調試能力方面,硬件仿真器支持TBA模式和ICE模式,具有很強的信號調試能力,支持靜態探針、動態探針、信號全可視等。
而原型驗證系統配備專用DDR內存,支持多FPGA的調試能力,實現與邏輯分析儀相當的高效調試。主要支持靜態探針,僅少數產品支持動態探針和全信號可見等功能。此外,原型驗證系統還配有通過專用協議接口,比如JTAG、Ethernet、PCle或者其他高速接口。
5. 運行速度
不過,原型驗證系統所具有的運行速度是硬件仿真器無法匹敵的。在驗證時,運行的測試程序越多,對設計可靠性越有保障。原型驗證系統可以在短時間內運行大量的測試向量,輕松可達10MHz-100MHz級別,而硬件仿真器運行速度稍低,500KHz~5MHz級別。
6. 軟件工具
雖然,中小規模的芯片設計,原型驗證系統的運行速度可以說比硬件仿真器快了整整一個數量級。但一碰到10億門級以上的超大規模設計,若原型驗證系統依然想要保持原有的速度,必然對其軟件工具和硬件設計提起了更高的要求。
而原型驗證系統配備專用DDR內存,支持多FPGA的調試能力,實現與邏輯分析儀相當的高效調試。主要支持靜態探針,僅少數產品支持動態探針和全信號可見等功能。此外,原型驗證系統還配有通過專用協議接口,比如JTAG、Ethernet、PCle或者其他高速接口。原型驗證系統想要不影響整個性能和速度的全系統驗證,會選擇使用多片FPGA芯片。但多片FPGA互聯產生的問題又隨之而來,比如低延遲并行I/O接口、高帶寬Serdes接口、自動化分割、多片FPGA的信號調試、各種軟硬件接口擴展方案,等等。這些都決定了原型驗證系統需要更專門的設計,特別需要配套相應的自動化工具。
因為對于兩三片FPGA以上的中大型設計,手工分割和優化的投入太大,還會存在潛在的人為錯誤。這就好比有自動擋的汽車不開,非得用手動擋的。對工程師來說既耗時又耗力,還需要相當的經驗,相當劃不來。目前市場上,像思爾芯的芯神瞳原型驗證解決方案,兼具網表級和RTL級自動分割能力,可以很好地幫到工程師解決此類問題。甚至配備完整原型工具鏈,可與其他點工具如邏輯綜合器結合做優化,實現更好的優化策略。
7. 物理接口
物理接口的可擴展性通常是工程師們較為關心的問題。原型驗證系統一般配有專用接口,可擴展各種功能子卡,構建一個更真實的環境,幫助找到軟件仿真/硬件仿真器無法探測到的BUG。而由于運行性能較高,它還能支持1Gbps-26Gbps左右的高速物理接口,部分支持降速橋。硬件仿真器則受限于運行的性能,無法直接支持高速的物理接口。大部分情況下會通過速度匹配橋設備或虛擬設備模型來實現。
8. 成本價格
相比于原型驗證系統,硬件仿真器的價格就相對沒有那么競爭力。因為它的結構非常復雜,容量也非常大,硬件成本較高,配套軟件也非常復雜,產品價格也因此相對高昂。
其實,這兩者從不是二選一的抉擇。原型驗證系統的本質是進行源代碼驗證和軟件開發的功能模擬器,而硬件仿真器的本質是系統級源代碼錯誤捕捉工具。更多時候,在芯片設計的不同節點,工程師所用的工具是不一樣的。大家可以根據自己的實際情況,在正確的時間,在正確的使用場景中使用正確的工具!