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