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