晶片中整合的電晶體數(shù)量不斷增加,造成電路設(shè)計(jì)與驗(yàn)證挑戰(zhàn)遽增,。面對(duì)日益縮短的上市時(shí)程壓力,,晶片設(shè)計(jì)人員已開始改用運(yùn)行速度更快且總體擁有成本(Total Cost of Ownership)更低的硬體模擬設(shè)備,取代傳統(tǒng)電路試驗(yàn)板或軟體模擬器,,以加速晶片驗(yàn)證與除錯(cuò)速度,。
雖然摩爾定律現(xiàn)在規(guī)定約兩年內(nèi)使積體電路中的電晶體數(shù)目增加一倍,但趨勢(shì)是設(shè)計(jì)/器件會(huì)繼續(xù)變得越來(lái)越大,。
如今,,平均設(shè)計(jì)尺寸達(dá)到或超過(guò)五千萬(wàn)專用積體電路(ASIC)門,并且有些單個(gè)模組已超過(guò)一千萬(wàn)門,。大部分的半導(dǎo)體公司的高端設(shè)計(jì)通常超過(guò)一億門,。處理器/圖形公司的最大設(shè)計(jì)已達(dá)到十億門,或許在不久的將來(lái)會(huì)超越這一數(shù)量級(jí),。
驅(qū)動(dòng)設(shè)計(jì)復(fù)雜性急劇上升的因素是在現(xiàn)有產(chǎn)品中,,或在全新設(shè)計(jì)中添加新特性和新功能的旺盛需求,如果說(shuō)晶片硬體復(fù)雜性驟升得還不夠,,實(shí)現(xiàn)產(chǎn)品差異化的嵌入式軟體暴漲又使驗(yàn)證更為復(fù)雜,。工程團(tuán)隊(duì)難以承受讓產(chǎn)品更快推向市場(chǎng)的壓力,迫使工程人員必須不斷創(chuàng)新,。
晶片復(fù)雜性高 電路試驗(yàn)板無(wú)法驗(yàn)證
雖然工程師擁有豐富的驗(yàn)證選項(xiàng),,但其中大多數(shù)存在著固有缺點(diǎn),在數(shù)位電路設(shè)計(jì)初期,,晶片復(fù)雜性的范圍介于幾百門到幾千門,,設(shè)計(jì)可透過(guò)電路試驗(yàn)板進(jìn)行原型驗(yàn)證。使用嵌有電晶體-電晶體邏輯電路(TTL)邏輯器件(例如SSI/MSI晶片)的電路試驗(yàn)板,,可在晶片量產(chǎn)(Tape Out)前在目標(biāo)系統(tǒng)環(huán)境中驗(yàn)證和調(diào)試(Debug)設(shè)計(jì),。由于是在實(shí)際運(yùn)行條件下測(cè)試設(shè)計(jì),因此可確保功能正確性,。
如果晶片復(fù)雜性達(dá)到一萬(wàn)門,,則電路試驗(yàn)板將會(huì)無(wú)用武之地,,并最終被基于事件驅(qū)動(dòng)演算法的邏輯模擬器取代。這一變化催生了電子設(shè)計(jì)自動(dòng)化(EDA)行業(yè),,EDA是電腦輔助工程(CAE)早期縮影,。事件驅(qū)動(dòng)模擬器支援精確的功能和時(shí)序驗(yàn)證,目前仍在寄存器傳輸級(jí)(RTL)使用,,不過(guò)鮮少在邏輯閘(Gate Level)級(jí)使用,。
RTL軟體模擬器易于使用且經(jīng)濟(jì)高效,具有先進(jìn)的調(diào)試功能,。不過(guò),,當(dāng)設(shè)計(jì)尺寸達(dá)到一億門時(shí),由于緩存未命中和記憶體交換,,執(zhí)行速度會(huì)迅速下降,。雖然通過(guò)PC伺服器群與平行化軟體模擬器可以緩解執(zhí)行時(shí)間驟降,但無(wú)法使用其來(lái)測(cè)試本質(zhì)上屬于串列流程的嵌入式軟體,。
在設(shè)計(jì)為在200MHz下運(yùn)行的一億門電路中,,即時(shí)執(zhí)行1秒將需要執(zhí)行兩億次回圈,。即使對(duì)于最快的CPU(具有可觀緩存大小和巨量RAM),,樂觀的假設(shè)是,如果每秒可執(zhí)行一百次回圈,,RTL軟體模擬器也需要三個(gè)多星期才能運(yùn)行完整個(gè)設(shè)計(jì),。
模擬器執(zhí)行效能低落會(huì)阻止事件驅(qū)動(dòng)軟體模擬器有效率的測(cè)試設(shè)計(jì)正確性。事件驅(qū)動(dòng)軟體模擬器最適合用于模擬實(shí)際電路行為的一小部分,,這意味著有些功能性故障會(huì)檢測(cè)不到,,工程團(tuán)隊(duì)要承擔(dān)代價(jià)高昂的設(shè)計(jì)返工(Respin)。
針對(duì)形式(Formal)或靜態(tài)驗(yàn)證方法的優(yōu)點(diǎn),,可產(chǎn)生完全列舉的測(cè)試向量,,卻無(wú)法針對(duì)電路設(shè)計(jì)的功能面進(jìn)行驗(yàn)證。采用動(dòng)態(tài)測(cè)試是唯一的可用選項(xiàng),,特別是在必須測(cè)試嵌入式軟體(軟體驅(qū)動(dòng)程式,、即時(shí)操作系統(tǒng)或自訂應(yīng)用程式)的情況下。 硬體驗(yàn)證語(yǔ)言(HVL),,例如e語(yǔ)言,、Vera以及C/C++類測(cè)試功能庫(kù),透過(guò)批量生成無(wú)法手動(dòng)創(chuàng)建的測(cè)試來(lái)提高生產(chǎn)效率,。功能驗(yàn)證范圍工具可以提升工程師對(duì)用HVL創(chuàng)建的測(cè)試平臺(tái)的可信度,,但不會(huì)減少應(yīng)用這些測(cè)試所需的時(shí)間量,也無(wú)法用于開發(fā)嵌入式軟體,。
硬體輔助驗(yàn)證工具可以縮小工程師目標(biāo)與傳統(tǒng)邏輯驗(yàn)證結(jié)果間的差距,。以下幾種驗(yàn)證工具可協(xié)助減少目標(biāo)與結(jié)果的差距:
現(xiàn)場(chǎng)可編程閘陣列(FPGA)原型
基于FPGA的原型可用于處理嵌入式軟體驗(yàn)證,。原型基本上都是電路試驗(yàn)板,其中用FPGA取代SSI/MSI部件,。
由于可程式設(shè)計(jì)器件問(wèn)世,,內(nèi)部開發(fā)的FPGA原型也已出現(xiàn)。遺憾的是,,隨著設(shè)計(jì)尺寸不斷加大,,F(xiàn)PGA原型開發(fā)也呈指數(shù)增長(zhǎng)。當(dāng)所需的FPGA數(shù)超過(guò)十個(gè)左右的FPGA晶片時(shí),,F(xiàn)PGA原型將變得不可用,。調(diào)試基于FPGA的原型比較棘手,這迫使工程師處理復(fù)雜的FPGA問(wèn)題想辦法讓FPGA可容納晶片設(shè)計(jì),,而不是花時(shí)間調(diào)試晶片設(shè)計(jì)功能,。經(jīng)常聽說(shuō),當(dāng)設(shè)計(jì)已進(jìn)入投片階段時(shí),,自制的FPGA原型才可使用,。
為解決這些缺點(diǎn),幾年前一種家庭作坊式產(chǎn)業(yè)應(yīng)用而生,,其目標(biāo)是提供可擴(kuò)展的現(xiàn)成FPGA原型,,而且這個(gè)趨勢(shì)正獲得青睞。此類產(chǎn)業(yè)除去繁瑣的內(nèi)部開發(fā)流程,,這正是其成功的主要原因,。但對(duì)于最大配置,他們也只能處理具有約一億門的設(shè)計(jì),。
具有除晶片外的最快運(yùn)行速度是FPGA原型驗(yàn)證板的主要賣點(diǎn),。相反,用于將設(shè)計(jì)映射到原型驗(yàn)證板的漫長(zhǎng)布線/合成時(shí)間及相當(dāng)有限的設(shè)計(jì)可視性是其兩個(gè)主要缺點(diǎn),。
硬體模擬
硬體模擬正成為一種流行的運(yùn)行時(shí)問(wèn)題解決方案,,基于事件的軟體模擬器對(duì)此類問(wèn)題卻無(wú)能為力。與通過(guò)RTL軟體模擬器實(shí)現(xiàn)的執(zhí)行速度相比,,該解決方案要快五至六個(gè)數(shù)量級(jí),。
硬體模擬器并不是一直受到青睞。以前,,高昂的擁有成本限制工程團(tuán)隊(duì)采用硬體模擬器來(lái)測(cè)試最大的設(shè)計(jì),,例如微處理器和圖形晶片。現(xiàn)在,,隨著新一代硬體模擬器能夠處理高達(dá)幾十億或以上的ASIC閘并提供較低的總體擁有成本,,這種情況已得到改進(jìn)。這樣,,工程團(tuán)隊(duì)就可為廣泛的設(shè)計(jì)做出最佳選擇,,而不用考慮復(fù)雜性和拓?fù)浣Y(jié)構(gòu),。
作為終極錯(cuò)誤清除利器,硬體模擬可良好運(yùn)行,。就在晶片量產(chǎn)(Tape Out)前驗(yàn)證SoC中硬體功能和測(cè)試硬體/軟體整合功能正確來(lái)說(shuō),,硬體模擬具有極大價(jià)值。 如果硬體設(shè)計(jì)人員和軟體發(fā)展人員都使用硬體模擬,,則可共用相同系統(tǒng)和電路設(shè)計(jì)表示方法,。由于組合設(shè)計(jì)的軟體和硬體的對(duì)晶片功能的解讀,因此他們可一起調(diào)試硬體和軟體間的互動(dòng)行為正確性,,還可以跨越嵌入式軟體與底層硬體間的邊界跟蹤設(shè)計(jì)問(wèn)題,,以確定是軟體還是硬體出問(wèn)題。
基于多個(gè)抽象層次的調(diào)試方法從最高層次的嵌入式軟體開始,,然后逐步下移至低層次的抽象,,以跟蹤各個(gè)硬體元素的行為。從數(shù)十億個(gè)時(shí)鐘周期的資料庫(kù)開始,,軟體調(diào)試器可以將問(wèn)題局限在數(shù)百萬(wàn)個(gè)時(shí)鐘周期內(nèi),。在這個(gè)層次上,軟體團(tuán)隊(duì)可識(shí)別每個(gè)問(wèn)題根源在軟體代碼的哪個(gè)部分,?;蛘撸麄円部赏ㄖ搀w團(tuán)隊(duì)使用軟體感知硬體調(diào)試方法放大到較低層次的抽象來(lái)追蹤分析問(wèn)題,。
這種多層次調(diào)試方法對(duì)RTL軟體模擬器并不適用,,因?yàn)槠渌俣忍灾劣诓荒苡行У貓?zhí)行嵌入式軟體,。同樣,,該方法對(duì)基于FPGA原型也不適用,因?yàn)槠淙狈?duì)內(nèi)部電路設(shè)計(jì)的可視性和訪問(wèn)性,,無(wú)法跟蹤硬體錯(cuò)誤,。
當(dāng)今設(shè)計(jì)環(huán)境中的硬體模擬系統(tǒng)運(yùn)行速度更快、更容易使用,,并且初期擁有成本更低(圖1),。這些高度可擴(kuò)展、經(jīng)濟(jì)高效的工具可以處理多達(dá)幾十億ASIC門,。具有較短的設(shè)置時(shí)間和編譯時(shí)間,,可為多工平行使用者提供強(qiáng)大的調(diào)試環(huán)境和支援。機(jī)器本身都封裝在環(huán)保型(較不占空間,,耗電低)空間中,。
圖1 上述RTL軟體類比、FPGA原型和硬體模擬的對(duì)比是基于性能,、設(shè)置/編譯時(shí)間,、設(shè)計(jì)容量和設(shè)計(jì)調(diào)試,。
更重要的是,硬體模擬器不僅可以連接真實(shí)周邊I/O子版(ICE)驅(qū)動(dòng)的模擬系統(tǒng),,也可使用基于軟體(由模擬器送出Test Vector)的TestBench驅(qū)動(dòng)的加速系統(tǒng),;硬體模擬針對(duì)TestBench可支援多種語(yǔ)言:Verilog、VHDL,、SystemVerilog,、C++及SystemC語(yǔ)言編寫,也包括可合成的測(cè)試Testnech或測(cè)試Vector直接將其包含在硬體模擬器內(nèi),。
一千萬(wàn)門設(shè)計(jì)的典型性能約為2MHz,,一億門設(shè)計(jì)的最高速度可達(dá)1MHz。當(dāng)設(shè)計(jì)尺寸增加時(shí),,相比于事件驅(qū)動(dòng)電路模擬器,,硬體模擬器的性能下降得更少。
隨著Time-To-Market壓力越來(lái)越大,,以及強(qiáng)加給工程團(tuán)隊(duì)的不斷升級(jí)的硬體/軟體整合和品質(zhì)問(wèn)題,,使得驗(yàn)證流程成為晶片設(shè)計(jì)中具有戰(zhàn)略意義的重要一步。新一代高性價(jià)比硬體模擬器為晶片設(shè)計(jì)提供理想選擇,,這就是為什么硬體模擬已成為批量驗(yàn)證神器的原因,。