預(yù)制與定制FPGA式原型板加入?yún)f(xié)同仿真(co-emulation and co-simulation)功能,能夠提供高速、高能見度平臺,實(shí)現(xiàn)SoC的快速、早期驗證。
系統(tǒng)芯片(SoC)設(shè)計的規(guī)模與復(fù)雜度不斷地攀升。同時,產(chǎn)品在市場上的存活時間不斷地緊縮,當(dāng)今的電子市場也對于上市所需的前置時間非常敏感。這些全都加深了SoC設(shè)計與驗證團(tuán)隊的壓力。事實(shí)上,現(xiàn)在廣為接受的說法就是,驗證占了整體SoC開發(fā)時間的70%。所以,能夠降低驗證成本、加速驗證執(zhí)行以及在開發(fā)初期盡早進(jìn)行驗證的作法,都是眾人注目的焦點(diǎn)。
這篇文章首先介紹構(gòu)成典型SoC設(shè)計與驗證環(huán)境的主要因素;也會說明傳統(tǒng)驗證解決方案的優(yōu)缺點(diǎn),包括軟件仿真、硬件輔助加速與仿真,還有FPGA式原型板的使用。接著會說明創(chuàng)新而且價格合理的做法,讓標(biāo)準(zhǔn)FPGA式原型板能夠轉(zhuǎn)變成為完善的桌上型硬件仿真器。我們推薦的這種做法是一種典范轉(zhuǎn)移(paradigm shift),能使既有的硬件仿真 (in-circuit emulation) 功能自動化,并且增添全新協(xié)同仿真功能,大幅提高預(yù)制與定制設(shè)計FPGA式原型板的驗證效率。
典型的SoC設(shè)計與驗證環(huán)境
首先,讓我們來看看典型SoC設(shè)計與驗證環(huán)境的前端部分。至少,這包含某些形式的設(shè)計輸入、軟件仿真方式的功能驗證,還有邏輯綜合,如圖1所示。甚至,這種設(shè)計環(huán)境現(xiàn)在大多也包括SpringSoft的Verdi?自動化偵錯系統(tǒng)。Verdi系統(tǒng)讓用戶能夠分析自己軟件仿真器1的結(jié)果并執(zhí)行偵錯,還可以自動使任何門級結(jié)果與對應(yīng)的RTL源代碼發(fā)生關(guān)連。
圖1. 簡化的SoC前端設(shè)計與驗證環(huán)境。
各式各樣功能驗證的問題之一,就是要收集與儲存的數(shù)據(jù)量。以軟件仿真器為例,監(jiān)視大量信號會大幅拖慢仿真速度,而且冗長的仿真進(jìn)度又會導(dǎo)致更大量的數(shù)據(jù);所以,許多設(shè)計與驗證環(huán)境都使用了SpringSoft的Siloti?能見度自動增強(qiáng)系統(tǒng),來減少記錄設(shè)計中許多信號數(shù)據(jù)的負(fù)擔(dān)。Siloti系統(tǒng)用來找出仿真進(jìn)行中最低限度必須記錄的信號;然后Siloti系統(tǒng)會運(yùn)用這些信號,自動且迅速的產(chǎn)生所有需要但未記錄的信號數(shù)據(jù)。
軟件仿真的主要優(yōu)勢就是對設(shè)計有完全的能見度;而主要的缺點(diǎn)就是慢,即使在威力強(qiáng)大、高階工作站上執(zhí)行,并采用Siloti能見度自動增強(qiáng)技術(shù) - 當(dāng)今大型SoC設(shè)計的軟件仿真只能勉強(qiáng)達(dá)到幾Hz的仿真速度 (也就是說,每秒鐘只能有幾次設(shè)計的實(shí)時主系統(tǒng)頻率周期)。這表示,軟件仿真通常僅適用于設(shè)計的一小部分,或者適用于全芯片設(shè)計的數(shù)十個頻率周期而已。但是,完全驗證現(xiàn)代化SoC需要成千上萬甚至數(shù)百萬頻率周期,這時就需要某種形式的硬件輔助驗證,如圖2所示。
圖 2. 簡化的SoC前端設(shè)計與驗證環(huán)境,增添某種形式的硬件輔助驗證。
傳統(tǒng)的硬件輔助驗證解決方案
各種硬件輔助驗證解決方案具備不同的功能、優(yōu)點(diǎn)與缺點(diǎn)。也有許多方法可以運(yùn)用不同的系統(tǒng),來解決不同類型的問題;包括硬件仿真(in-circuit emulation) 、交易級協(xié)同仿真以及HDL協(xié)同仿真。
一般而言,傳統(tǒng)的硬件輔助驗證解決方案僅包括硬件加速器與/或仿真器。FPGA式原型板通常不被視為可行的替代方案,因為缺乏與工作站連結(jié)的能力,而且無法提供足夠的設(shè)計能見度以供偵錯使用。
傳統(tǒng)的硬件加速與/或仿真系統(tǒng)都是專屬系統(tǒng),利用定制設(shè)計的芯片、或標(biāo)準(zhǔn)FPGA,來建構(gòu)特殊目的系統(tǒng)。這些系統(tǒng)的目的是要盡可能如同軟件仿真器一般運(yùn)作,包括能見度與偵錯功能等因素。這些系統(tǒng)運(yùn)用能夠駕馭其定制芯片或架構(gòu)的特殊軟件,提供大型容量與相當(dāng)快速的編譯時間,讓設(shè)計能夠映像到硬件上;他們也提供相當(dāng)優(yōu)良的設(shè)計能見度 (可見度與可控制度)。但是,這些系統(tǒng)非常昂貴,難以讓許多使用者、項目與團(tuán)隊廣泛的運(yùn)用。再者,一旦采用這種系統(tǒng)之后,就很難升級到新一代的系統(tǒng);除了新版定制設(shè)計芯片與系統(tǒng)需要耗費(fèi)時間來開發(fā)之外,還必須考慮高昂的過渡成本等其他因素。
轉(zhuǎn)移到FPGA式原型板
作為硬件加速器與仿真器的替代方案,許多設(shè)計業(yè)者運(yùn)用可以現(xiàn)成購買的,或者由SoC驗證團(tuán)隊定制設(shè)計FPGA式原型板。如圖3的例子,設(shè)計在工作站上編譯 (綜合) 后;映射、布局與繞線;然后將結(jié)果的FPGA配置文件 (或者是系統(tǒng)包含許多FPGA時的文件) 下載到原型板上。典型的運(yùn)用模型適合于SoC設(shè)計 (或部分設(shè)計模塊)驗證時使用硬件仿真(in-circuit emulation)的方式;也就是說,如圖3所示,運(yùn)用實(shí)際輸入/輸出 (I/O) 信號來驅(qū)動。除了由外部系統(tǒng)所驅(qū)動 - 和帶動之外,也可以掌握實(shí)際的I/O信號以供邏輯分析器等來進(jìn)行后續(xù)分析。
圖 3. 以硬件仿真(in-circuit emulation)方式運(yùn)作的傳統(tǒng)FPGA式原型板環(huán)境的高階呈現(xiàn)。
傳統(tǒng)FPGA式原型板的主要優(yōu)勢就是高效能,而且相對而言比較便宜,所以能夠讓許多使用者、項目與團(tuán)隊廣泛的運(yùn)用。此外,這些原型板能夠運(yùn)用最新一代的FPGA技術(shù),讓使用者能夠快速而輕松地轉(zhuǎn)移到新一代原型板。而其主要缺點(diǎn)就是難以設(shè)定,而且無法與工作站連結(jié)以支持協(xié)同仿真 (co-emulation and/or co-simulation)。再加上只能提供極有限的設(shè)計能見度,所以缺乏精密的偵錯功能。
強(qiáng)化傳統(tǒng)FPGA式原型板
傳統(tǒng)FPGA式原型板通常都配備J-Connector,希望讓原型板能夠連接到外埠裝置。本文提出的作法就是利用這個J-Connector,建立能與其連接的特殊適配卡,以扮演主機(jī)工作站與FPGA式原型板之間的橋梁,如圖4所示。
圖4. 新增適配卡與某些軟IP (soft IP)。
FPGA式原型板與工作站之間的所有通訊都可以運(yùn)用某些專屬總線而建置起來,提供仿真與協(xié)同仿真所需的高性能。由于這種互連技術(shù),使用者擁有可架構(gòu)和運(yùn)用不同原型板以搭配同一J-Connector的絕佳彈性。這種能力也表示,使用者能夠快速而且輕易地轉(zhuǎn)移到更快速和更龐大的FPGA式原型板,可以完全免除傳統(tǒng)硬件輔助驗證解決方案相關(guān)的限制。
接下來看看圖4所示的軟IP模塊 (soft IP)。這些IP模塊可下載至原型板上的各FPGA,然后可用來控制和監(jiān)視FPGA式原型板與工作站之間的數(shù)據(jù)流動。因操作模式 (硬件仿真、協(xié)同仿真) 的不同,可以自動插入適當(dāng)且必要的「特色」IP模塊。這些IP模塊可以編譯到設(shè)計中,用來監(jiān)控用戶指定的任意信號。如此一來,就可以掌握和分析來自數(shù)千信號仿真數(shù)百萬頻率周期的數(shù)據(jù)。
除了互連技術(shù)之外,本文的作法也需要如圖5所示在工作站上執(zhí)行的特殊軟件來執(zhí)行許多功能,例如自動建立包含多顆FPGA的原型板。這個建立流程涵蓋讀取設(shè)計的RTL源代碼 (以VHDL、Verilog、SystemVerilog或混合式語言)、分析FPGA內(nèi)部與外部的內(nèi)存、轉(zhuǎn)換SoC頻率已產(chǎn)生無hold-time問題的設(shè)計在FPGA中使用、分割完整SoC設(shè)計的RTL以便放入多顆FPGA,以及調(diào)整RTL來搭配軟IP模塊與要監(jiān)控的信號。
圖5. 增添在工作站上執(zhí)行的特殊軟件。
在驗證途中,軟件可以依據(jù)建立時指定的操作模式 (硬件仿真、協(xié)同仿真),控制和管理FPGA式原型板與工作站之間的通訊與數(shù)據(jù)流動。另外,能快速修改所監(jiān)控信號的能力也很重要,這樣才能夠快速且輕易地新增監(jiān)控的信號,不必重復(fù)編譯整個設(shè)計。最后,就是原型板上FPGA內(nèi)部狀態(tài)的能見度,這包括在特定時間或以逐一頻率周期為基準(zhǔn)所提供的寄存器 (registers) 與內(nèi)存輸出,在進(jìn)階偵錯時非常實(shí)用。
設(shè)計原型的「桌上型」驗證
為了更完全了解因本文所討論互連與軟件自動化技術(shù)而實(shí)現(xiàn)的各種功能與使用模式,讓我們來看一些范例情境。最簡單的例子就是圖6所示的純粹硬件仿真應(yīng)用。在桌上型工作站上執(zhí)行的軟件會自動分割設(shè)計,并準(zhǔn)備原型板。在建立過程中,會在設(shè)計中置入所有必要的探測點(diǎn),以便在執(zhí)行時掌握特定信號數(shù)據(jù)。
圖6. 硬件仿真情境的范例。
此外,使用者也可以選擇性的運(yùn)用Siloti能見度自動增強(qiáng)系統(tǒng),來幫助判斷需要觀察的最少信號量。以及運(yùn)用Verdi自動化偵錯系統(tǒng)來分析FPGA式硬件原型板的結(jié)果,并執(zhí)行偵錯。由于設(shè)立軟件會自動將任何門級信號關(guān)連至對應(yīng)的RTL信號,Verdi系統(tǒng)搭配RTL源代碼可以加速偵錯的進(jìn)度。
交易級協(xié)同仿真是可以大幅加速驗證流程,其速度比僅使用軟件仿真要快上數(shù)百或數(shù)千倍,常見的狀況是testbench (或許是設(shè)計的一部份) 常駐在工作站上,而大量 (或全部) 設(shè)計被加載到原型板。工作站上執(zhí)行的軟件會自動分割設(shè)計,自動建立原型板,然后插入適當(dāng)?shù)膮f(xié)同仿真基礎(chǔ)架構(gòu) (例如SCEMI式處理裝置)。在前述情境中,建立時,所有必要的探測點(diǎn)都會置入設(shè)計中,以便在執(zhí)行時能夠掌握特定的信號數(shù)據(jù)?;蛘撸瑓f(xié)同仿真可以暫停,也可以設(shè)置軟件在特定時間或按照逐一頻率周期,將FPGA內(nèi)部狀態(tài)的完全能見度輸出,如圖7所示。
圖7. 交易級協(xié)同仿真情境的范例。
最后,讓我們看看HDL協(xié)同仿真,這種加速驗證流程,其速度比單僅使用軟件仿真要快上數(shù)十倍。同樣地,testbench (或許是設(shè)計的一部份) 常駐在工作站上,而大量 (或全部) 設(shè)計被加載到原型板。在這個情境中,工作站上執(zhí)行的軟件會自動分割設(shè)計,建立原型板,和產(chǎn)生可供軟件仿真器連接的包裝器(wrapper)。執(zhí)行時,軟件會控制原型板與ModelSim、NC或VCS等業(yè)界標(biāo)準(zhǔn)軟件仿真器之間的協(xié)同仿真互動。如同前面幾個情境中的討論一般,透過軟件與FPGA內(nèi)部技術(shù)的組合,可在特定時間或按照逐一頻率周期,將原型板上FPGA內(nèi)部狀態(tài)的能見度,包括寄存器與內(nèi)存輸出,如圖8所示。
圖8. HDL協(xié)同仿真情境的范例。
新一代原型驗證平臺的優(yōu)點(diǎn)
產(chǎn)品在市場上的存活時間及上市前置時間不斷縮短造成了當(dāng)今SoC設(shè)計與驗證團(tuán)隊的莫大壓力。軟件仿真提供對設(shè)計內(nèi)部的100%能見度,但是只適合于設(shè)計的一小部分,或者整個設(shè)計的數(shù)十個頻率周期而已。然而,完全驗證現(xiàn)代SoC需要耗費(fèi)成千上萬甚至百萬頻率周期,所以需要某種形式的硬件輔助驗證。各式各樣的硬件輔助驗證解決方案具備不同的功能、優(yōu)點(diǎn)與弱點(diǎn)。表1提供了各種硬件輔助驗證技術(shù)的大略比較。
傳統(tǒng)硬件加速器與仿真器提供大容量、相對快速的編譯時間,以及相當(dāng)良好的設(shè)計能見度。然而,這些系統(tǒng)太昂貴而難以廣泛運(yùn)用,而且因為轉(zhuǎn)移成本高昂,也難以與時俱進(jìn)地升級至新一代解決方案。比較上,傳統(tǒng)FPGA式原型板提供高效能,而且比較便宜;但是,缺乏設(shè)計能見度與精密的偵錯功能,無法克服當(dāng)代SoC的復(fù)雜度,而且通常僅以硬件仿真模式來運(yùn)用。
表1. 硬件輔助驗證技術(shù)的比較。
為了解決這些問題,我們建議一種SoC驗證的新方法,將傳統(tǒng)FPGA式原型板轉(zhuǎn)變成桌上型加速器/仿真器。這需要創(chuàng)新的互連技術(shù),能夠提供對預(yù)制與定制設(shè)計板的通用連結(jié);還有特殊化的軟件自動化,在工作站上以硬件仿真、協(xié)同仿真模式執(zhí)行,并具備極高的設(shè)計能見度。
運(yùn)用強(qiáng)化上述功能的FPGA式原型板,SoC開發(fā)人員可快速驗證個別模塊 (包括內(nèi)部與第三方IP模塊) 和設(shè)計模塊是否正常運(yùn)作,甚至于整個SoC設(shè)計的驗證。這個新一代原型驗證平臺可提高FPGA式原型版的投資報酬率及生產(chǎn)力,提供更高驗證效率與彈性,并能快速轉(zhuǎn)移到配備最新FPGA技術(shù)的原型板。
來源:啃白兔的紅蘿卜0次