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