本文將會(huì)對(duì)FPGA原型驗(yàn)證系統(tǒng)和Emulator硬件仿真器進(jìn)行全面的分析和比較。
先簡(jiǎn)要的回顧一下FPGA原型驗(yàn)證系統(tǒng)的應(yīng)用場(chǎng)景,并與Emulator硬件仿真器應(yīng)用場(chǎng)景作對(duì)比:
FPGA原型驗(yàn)證系統(tǒng)
FPGA原型驗(yàn)證系統(tǒng)的主要應(yīng)用場(chǎng)景是“芯片設(shè)計(jì)過程中搭建軟硬件一體的系統(tǒng)驗(yàn)證環(huán)境”:一是芯片流片回來前為軟件團(tuán)隊(duì)提供調(diào)試驅(qū)動(dòng)軟件的平臺(tái),加速芯片上市時(shí)間;二是作為芯片仿真驗(yàn)證的一個(gè)補(bǔ)充,因?yàn)樵贔PGA內(nèi)部可以生成真實(shí)電路,并且可以對(duì)接真實(shí)的硬件子卡,相較仿真使用的軟件模型有一定差別,因此可以發(fā)現(xiàn)更多隱蔽的bug ;此外FPGA相對(duì)軟件仿真以及Emulator而言,速度更快,比較適合一些耗時(shí)較多的場(chǎng)景case。故在芯片設(shè)計(jì)規(guī)模越來越大的情況下,使用多顆FPGA芯片互聯(lián)能夠快速實(shí)現(xiàn)高性能的全系統(tǒng)驗(yàn)證原型,并滿足該場(chǎng)景下的調(diào)試需求。
Emulator 硬件仿真器
Emulator的主要應(yīng)用場(chǎng)景是 “芯片設(shè)計(jì)過程中對(duì)完整封閉的設(shè)計(jì)進(jìn)行加速仿真并調(diào)試”,它與FPGA原型驗(yàn)證系統(tǒng)的主要定位差異在于:能對(duì)全芯片進(jìn)行和芯片時(shí)序行為一致的硬件仿真,包括全芯片信號(hào)的提取,對(duì)全芯片的功能、性能、功耗進(jìn)行系統(tǒng)級(jí)的驗(yàn)證與調(diào)試。這一點(diǎn)差別導(dǎo)致了兩者系統(tǒng)設(shè)計(jì)上的巨大差異。用戶無需花費(fèi)大量的時(shí)間去考慮如何設(shè)計(jì)、如何分割、如何布局布線等問題,從而在易用性方面大大增強(qiáng)。
基于FPGA原型驗(yàn)證系統(tǒng)平臺(tái)和 Emulator硬件仿真平臺(tái)二者的設(shè)計(jì)目標(biāo)和應(yīng)用場(chǎng)景差異,下面我們分別來介紹一下這兩種產(chǎn)品的關(guān)鍵點(diǎn)。
FPGA原型驗(yàn)證系統(tǒng)
隨著目前集成電路的不斷發(fā)展,設(shè)計(jì)規(guī)模的大型化,單顆FPGA板在容量上就顯得捉襟見肘,已經(jīng)無法滿足設(shè)計(jì)需求。以目前國(guó)內(nèi)頭部的CPU、GPU設(shè)計(jì)公司的設(shè)計(jì)規(guī)模,單顆IC芯片的設(shè)計(jì)體量,需要占用到幾十顆Xilinx VU440級(jí)別FPGA的情況,已屢見不鮮。在這種背景之下,F(xiàn)PGA系統(tǒng)供應(yīng)廠商開始著手研究多顆FPGA的系統(tǒng)互聯(lián)解決方案。其中就包括在單塊的PCB板上裝配多顆FPGA及多個(gè)FPGA系統(tǒng)之間的互聯(lián)。
經(jīng)過不斷探索,F(xiàn)PGA原型驗(yàn)證平臺(tái)產(chǎn)品應(yīng)運(yùn)而生。之所以稱之為“平臺(tái)”或“系統(tǒng)”,就一定會(huì)包含對(duì)應(yīng)的軟件和硬件。首先在硬件結(jié)構(gòu)上多顆FPGA互聯(lián)結(jié)構(gòu)的引入就要求結(jié)構(gòu)上比單板形式的FPGA開發(fā)板要復(fù)雜的多,其次FPGA芯片廠商提供的軟件工具無法支持多片的FPGA分割,需要配套專業(yè)的FPGA原型分割相關(guān)軟件工具。
一套優(yōu)秀的FPGA原型驗(yàn)證系統(tǒng),應(yīng)該具有以下產(chǎn)品特性:
- 基于模塊化的設(shè)計(jì),可靈活擴(kuò)充與裁剪的驗(yàn)證平臺(tái)規(guī)模
- 在保證一定的高速仿真性能的前提下,提供設(shè)計(jì)完整性
- 提供從軟件早期開發(fā)到系統(tǒng)級(jí)驗(yàn)證的解決方案
- 提供從綜合、自動(dòng)模塊分割、布局布線、FPGA bit產(chǎn)生、下載、在線/離線Debug的整套流程
- 提供豐富的調(diào)測(cè)手段,幫助用戶快速定位問題,易于設(shè)計(jì)的快速Bring Up
- 提供豐富的接口子板和外部真實(shí)設(shè)備相連
- 提供軟件接口與外部工具構(gòu)成復(fù)雜的調(diào)試解決方案
- 提供豐富的IO接口,以及高速Serdes接口用于partition互連以及外設(shè)子卡的互連
FPGA原型驗(yàn)證系統(tǒng)速度快,但它的缺點(diǎn)也是顯而易見的,主要體現(xiàn)在調(diào)試的便利性上繼承了FPGA自身的一些缺點(diǎn),比如需借助FPGA內(nèi)嵌邏輯分析儀來抓取信號(hào)排查問題,布局布線耗時(shí)冗長(zhǎng),效率不是太高。
硬件仿真器Emulator
在目前SoC規(guī)模越來越大型化的情況下,有的設(shè)計(jì)甚至達(dá)到數(shù)百億ASIC等效門規(guī)模,巨大的設(shè)計(jì)規(guī)模導(dǎo)致軟件仿真時(shí)間上的消耗變得越來越無法忍受。FPGA原型平臺(tái)在驗(yàn)證規(guī)模到達(dá)一定級(jí)別,F(xiàn)PGA數(shù)量太多的情況下,也會(huì)帶來新的分割問題并且會(huì)失去原有的性能優(yōu)勢(shì)。硬件仿真器的優(yōu)勢(shì)主要在于它獨(dú)有的、超大規(guī)模的硬件結(jié)構(gòu),盡可能地保證了RTL設(shè)計(jì)的完整性。從硬件實(shí)現(xiàn)上看,一般有基于FPGA和CPU兩種架構(gòu),對(duì)于基于FPGA架構(gòu)的類型來說(如Synopsys的Zebu系列),可以理解為有很多塊FPGA單板,大量的單板與電源、控制等再互相連接起來,形成一個(gè)“龐然大物”,優(yōu)點(diǎn)是仿真性能高,使用商用FPGA可以降低開發(fā)成本;對(duì)于基于CPU架構(gòu)的類型來說(如Cadence的Palladium系列),通常會(huì)將集成了數(shù)以萬計(jì)的高速CPU核的ASIC芯片焊接在一塊巨大的單板上,配以控制、冷卻等模塊構(gòu)成一個(gè)完整系統(tǒng)。優(yōu)點(diǎn)在于編譯時(shí)間短,調(diào)試能力強(qiáng);缺點(diǎn)就是功耗高,需要特別冷卻系統(tǒng)和運(yùn)營(yíng)成本高,穩(wěn)定性比較難控制,性能一般也比基于FPGA的硬件仿真系統(tǒng)低些。一般一套Emulator的體積大約從一個(gè)冰柜到一臺(tái)大雙開門冰箱的大小,而大型Emulator的重量也可以用“噸”來計(jì)算了。本文主要介紹基于FPGA的硬件仿真器。
基于FPGA的原型平臺(tái)和硬件仿真器,兩者的架構(gòu)和軟件上雖有一定的相似之處,但定位不同,Emulator的定位和設(shè)計(jì)都是指向大容量和全系統(tǒng)仿真級(jí)調(diào)試,因此軟硬件設(shè)計(jì)上有不同的取舍。綜合來看,硬件仿真器的特點(diǎn)是支持超大規(guī)模(10億門級(jí)以上)的設(shè)計(jì)容量,全自動(dòng)化的軟件設(shè)置實(shí)現(xiàn)流程,基本無需修改硬件連接配置,以及靈活多樣的全系統(tǒng)仿真調(diào)試能力,包括:
- 信號(hào)的追蹤深度更深(達(dá)數(shù)十億仿真周期)
- 信號(hào)的條件觸發(fā)、動(dòng)態(tài)探針插入、離線調(diào)試
- 擁有不限量的時(shí)鐘域,它們可以從核心時(shí)鐘資源中無限衍生
- 全系統(tǒng)范圍的調(diào)試追蹤
- 帶有UVM驗(yàn)證方法學(xué)的協(xié)同加速仿真
- 軟硬件的協(xié)同驗(yàn)證、測(cè)試接口的虛擬化支持
- 系統(tǒng)功耗與性能預(yù)估、分析
目前,主流的Emulator工作特點(diǎn),基本上包括以下幾種:
- 基于Cycle級(jí)的軟硬件聯(lián)合仿真
- 基于ICE ( In-Circuit Emulator )模式: 一種最為傳統(tǒng)的,理論上運(yùn)行速度最快的模式。這種模式下需要在硬件中集成被測(cè)試邏輯單元及測(cè)試邏輯,或者通過外設(shè)硬件輸入激勵(lì);且往往需要用到Speed Adapter以實(shí)現(xiàn)外圍高速硬件和硬件仿真器在工作頻率上的橋接。由于Emulator本身的運(yùn)行頻率不高,那么和外部的設(shè)備,如PCIE/SATA/USB等連接時(shí)需要通過速度匹配設(shè)備,通過緩存來匹配快速端的速度進(jìn)行適配
- 基于事務(wù)級(jí)(Transaction)的軟硬件聯(lián)合仿真;這種情況下,被測(cè)試的邏輯部分運(yùn)行在Emulator的硬件里面;硬件通過一套完整的軟件及驅(qū)動(dòng)、物理通道和Host Server實(shí)現(xiàn)連接。這種方式下可以使用多樣的SW model Library,常見的有PCIE/AMBA bus等。雖然說它的運(yùn)行速度沒有ICE模式快,但是在軟件上的功能和方法支持非常豐富。這種方式也被認(rèn)為是軟件Simulator的硬件化
- 提供豐富多樣的虛擬解決方案:包括Virtual Host(Qemu/VDK),Virtual Device(例如基于Chiplet的Die to Die 模型),Virtual memory models(各類協(xié)議的存儲(chǔ)器模型SDRAM/Flash/SRAM/EEPROM),Transactors(AMBA/PCIe),Hybrid Mode(CPU Models+ DUT in Hardware)
- 多種模式的探針工作方式:靜態(tài)探針、動(dòng)態(tài)探針、全景探針和定制探針組等
其次,在多用戶的支持方面,Emulator系統(tǒng)可以支持較多的用戶同時(shí)在線使用,實(shí)現(xiàn)資源的靈活調(diào)度;而FPGA原型系統(tǒng)目前也有可以支持多用戶的場(chǎng)景,但因?yàn)楫a(chǎn)品在時(shí)鐘資源分配等方面存在著局限性,所以實(shí)際很少采用。
總??結(jié)
最后,我們?cè)賮砜匆幌翭PGA原型驗(yàn)證系統(tǒng)和硬件仿真器Emulator之間的對(duì)比表格:
圖1:FPGA原型驗(yàn)證系統(tǒng)和硬件仿真器Emulator之間的對(duì)比
下面的圖例便于讀者更容易的理解它們二者之間的關(guān)系:
圖2:FPGA原型驗(yàn)證系統(tǒng)和硬件仿真器Emulator之間的關(guān)系
從系統(tǒng)的特性上看,F(xiàn)PGA原型系統(tǒng)支持多FPGA、自動(dòng)分割;性能較高的情況下運(yùn)行系統(tǒng)軟件;仿真加速器的超大容量可以放全芯片的設(shè)計(jì),進(jìn)行全芯片的系統(tǒng)功能/性能/功耗驗(yàn)證。從應(yīng)用場(chǎng)景上看,我們看到原型系統(tǒng)和仿真加速器在軟硬件協(xié)同設(shè)計(jì)方面,有一定的交集。?
以上就是關(guān)于FPGA原型驗(yàn)證系統(tǒng)和硬件仿真器這兩種不同的數(shù)字設(shè)計(jì)驗(yàn)證平臺(tái)的對(duì)比介紹,謝謝!
作者:楊一峰? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
芯華章科技技術(shù)市場(chǎng)經(jīng)理