為了充分利用系統(tǒng)級芯片(SoC)設(shè)計帶來的優(yōu)點(diǎn),業(yè)界需要一種可以擴(kuò)展的驗(yàn)證解決方案,解決設(shè)計周期中各個階段的問題,縮短驗(yàn)證鴻溝。本文將探討可擴(kuò)展驗(yàn)證解決方案為何能夠以及如何解決SoC設(shè)計目前面臨的功能方面的嚴(yán)峻挑戰(zhàn),以達(dá)到提高設(shè)計生產(chǎn)力、保證設(shè)計質(zhì)量、縮短產(chǎn)品上市時間以及提高投資回報率的目的。
功能驗(yàn)證是電子設(shè)計人員目前面臨的主要挑戰(zhàn)之一,為了使自己的產(chǎn)品在競爭中脫穎而出,人們正在將越來越多的功能集成進(jìn)自己的產(chǎn)品,其中包括模擬/混合信號內(nèi)容、嵌入式處理器及其各自的軟件,總體系統(tǒng)變得日益復(fù)雜。隨著設(shè)計實(shí)現(xiàn)尺寸縮小、集成度提高,驗(yàn)證的復(fù)雜性也在大幅上升,測試向量的長度和數(shù)量也在增加。如果設(shè)計中存在錯誤,人們將越來越難以發(fā)現(xiàn)造成錯誤的原因,而且日后更改以及重新生產(chǎn)的成本也是非常高昂的。
功能驗(yàn)證危機(jī)
功能錯誤是造成設(shè)計重新流片的首要原因,這對投資回報率和產(chǎn)品上市時間造成了不利和負(fù)面的影響。在所有芯片設(shè)計中,有60%需要至少兩次重新流片。而就所有重新流片的設(shè)計而言,其中62%是由功能錯誤造成的。不幸的是,功能驗(yàn)證方法多年以來并未出現(xiàn)任何重大變化,驗(yàn)證技術(shù)已經(jīng)落后于設(shè)計和制造能力,形成了一個驗(yàn)證鴻溝,而且這個鴻溝還在不斷擴(kuò)大,使得設(shè)計潛能的發(fā)揮變得紙上談兵,虛無縹緲。出于同樣的原因,模擬和驗(yàn)證成為整個設(shè)計流程的瓶頸,給提高設(shè)計生產(chǎn)率造成了障礙(圖1)。
為了解決驗(yàn)證鴻溝問題,提高系統(tǒng)級芯片的驗(yàn)證水平,產(chǎn)品經(jīng)理需要通過積極的態(tài)度,將功能驗(yàn)證作為總體設(shè)計方法的一個有機(jī)組成部分加以解決。實(shí)現(xiàn)這一目標(biāo)的最有效途徑就是采用一種能夠在不同工具和不同抽象級別之間實(shí)現(xiàn)可擴(kuò)展的驗(yàn)證方法。功能驗(yàn)證策略必須以整個系統(tǒng)為目標(biāo),其中包括數(shù)字硬件、嵌入式軟件和混合信號內(nèi)容,必須考慮到每個設(shè)計層次以及設(shè)計流程的每個階段。
尺寸和復(fù)雜性方面的挑戰(zhàn)
隨著設(shè)計在尺寸和復(fù)雜性方面穩(wěn)步發(fā)展,功能驗(yàn)證的重要性不斷提升。設(shè)計的復(fù)雜性主要體現(xiàn)在嵌入式軟件和模擬電路所占比例正在不斷提高。
設(shè)計組件不僅越來越多樣化,單個芯片上集成的功能組件也越來越多。多樣化組件包括高性能RISC CPU、數(shù)千兆位高速I/O、RAM、系統(tǒng)時鐘管理、模擬/混合信號、嵌入式軟件和專用數(shù)字信號處理器,因而這些組件之間的互連狀況對總體功能性能的影響變得日益重要。它們之間的交互作用已經(jīng)成為驗(yàn)證工作的關(guān)鍵點(diǎn)。芯片上軟件和模擬組件采用量的增加也使得系統(tǒng)復(fù)雜性問題日益突出,并對傳統(tǒng)的作業(yè)方式構(gòu)成了挑戰(zhàn),數(shù)字工程師必須面臨和解決其不甚熟悉的模擬問題。眾多硬件設(shè)計要求采用固件或低層次軟件并使其正常工作,以便對RTL功能進(jìn)行驗(yàn)證處理,這就要固件設(shè)計人員在硬件設(shè)計中發(fā)揮重要作用,并通過細(xì)致到位的方式解決硬件和軟件之間的相互影響問題。
設(shè)計規(guī)模意味著龐大的晶體管數(shù)目,也就是系統(tǒng)級芯片中的門數(shù)概念。2001年,國際半導(dǎo)體組織預(yù)測系統(tǒng)級芯片在2006年之前將會包含幾十億個晶體管,而現(xiàn)在一款系統(tǒng)級芯片就已達(dá)到了數(shù)千萬門的規(guī)模。設(shè)計規(guī)模增大意味著出錯的可能性也在增加,驗(yàn)證任務(wù)的復(fù)雜性正以指數(shù)函數(shù)的速度飆升。
一個單獨(dú)的工具或者一項(xiàng)單獨(dú)的技術(shù)都無法通過適當(dāng)?shù)姆绞浇鉀Q目前所面臨的驗(yàn)證問題,因?yàn)檫@些工具都是針對設(shè)計流程中的某個特定對象進(jìn)行優(yōu)化的,即使是硬件描述語言(HDL)仿真引擎也需要采用多種解決方案。有些方案在模塊級上發(fā)揮較好作用,有些則在芯片或系統(tǒng)級上表現(xiàn)較好。因此,設(shè)計團(tuán)隊(duì)需要通過一套能夠相互協(xié)同工作的工具,形成一條從RTL仿真到在線仿真乃至形式驗(yàn)證的完整解決方案,這就要求各種驗(yàn)證技術(shù)能夠在廣度和深度上解決日益突出的由設(shè)計尺寸、復(fù)雜性和性能問題所帶來的驗(yàn)證挑戰(zhàn)。
可擴(kuò)展驗(yàn)證解決方案必須支持所有各主要語言,其中包括Verilog、VHDL、C++以及SystemC語言,這樣它就可以在所有各個抽象層次上開展工作。它必須是一種采用開放標(biāo)準(zhǔn)的解決方案,以便沿襲和利用原有的和第三方有知識產(chǎn)權(quán)的驗(yàn)證IP。驗(yàn)證工具也可以憑借各自的特性而被選用,而不是因?yàn)樗鼈冞m合特定EDA供應(yīng)商的工具環(huán)境。一個理想的工作環(huán)境必須能夠處理各種不同的設(shè)計語言,并支持該行業(yè)各個主要標(biāo)準(zhǔn),從而確保原有設(shè)計和測試臺可以重復(fù)使用。
應(yīng)對方案
為了解決日益突出的設(shè)計尺寸縮小、復(fù)雜性和性能日益膨脹的問題,驗(yàn)證方法必須能夠在不同的工具和設(shè)計層次之間實(shí)現(xiàn)擴(kuò)展。它還需要在各個驗(yàn)證域之間實(shí)現(xiàn)擴(kuò)展,并能在模擬、協(xié)同驗(yàn)證、仿真和模數(shù)混合模擬之間進(jìn)行通信。此外,它能夠動態(tài)適應(yīng),并可以自由擴(kuò)展。例如引入形式等價檢查工具就是超大規(guī)模設(shè)計提出的一項(xiàng)需求,尤其是對于在門級網(wǎng)表上進(jìn)行眾多修改設(shè)計。
工具本身具有可擴(kuò)展性也是必要的,因?yàn)椴煌愋偷尿?yàn)證手段覆蓋不同的性能范圍,提供不同的解決方案。每項(xiàng)解決方案都必須在驗(yàn)證完整性和工作效能之間做出折衷。例如設(shè)計人員需要為驗(yàn)證系統(tǒng)級DSP算法采用高級驗(yàn)證工具,針對此類任務(wù)運(yùn)用HDL模擬器就無法發(fā)揮作用。反過來講,對于HDL仿真器可以迅速解決的芯片設(shè)計中相當(dāng)細(xì)小的子模塊驗(yàn)證問題,用現(xiàn)場仿效驗(yàn)證就不是很適當(dāng)。認(rèn)識到哪些工具是執(zhí)行當(dāng)前驗(yàn)證任務(wù)的最佳選擇并獲得這些工具,將使設(shè)計人員達(dá)到最佳效能。下面是設(shè)計人員在開展數(shù)字設(shè)計驗(yàn)證過程中可以采用的備選方案:
·軟件模擬:模塊級驗(yàn)證的理想選擇,因?yàn)樗哂蟹浅?焖俚霓D(zhuǎn)換和糾錯能力。
·軟硬件協(xié)同模擬:能夠?qū)⑶度胧杰浖腧?yàn)證環(huán)境,為加快處理器、存儲器和總線操作驗(yàn)證提供一種途徑,它也可以用作在測試臺對硬件驗(yàn)證時提供激勵。
·協(xié)同建模(基于任務(wù)的加速仿真):它具有軟件測試臺的靈活性和仿真的高性能,為系統(tǒng)驗(yàn)證提供了豐富的解決方案。協(xié)同建模仿真是連接高級抽象測試平臺與整個芯片RTL實(shí)現(xiàn)的理想橋梁。
·在線仿真:它在真實(shí)的系統(tǒng)內(nèi)提供大容量和高性能驗(yàn)證,仿真可賦予設(shè)計人員充分的信息,使他們自信其芯片將在實(shí)際的系統(tǒng)中發(fā)揮正確功能。
·形式驗(yàn)證/等效檢查:它擁有必要的容量和速度,可以確保在設(shè)計流程后期進(jìn)行的網(wǎng)表修改不會改變其功能特性和行為特征。
有必要指出的是,通過硬件輔助或面向硬件的高性能驗(yàn)證解決方案對我們在系統(tǒng)級實(shí)現(xiàn)驗(yàn)證完備性具有關(guān)鍵性意義,現(xiàn)場仿效驗(yàn)證可以徹底避免昂貴的設(shè)計重復(fù)。
各個抽象層次之間的可擴(kuò)展性也同樣重要。隨著驗(yàn)證作業(yè)變得越來越抽象,仿真模型和任務(wù)處理器的抽象級別日益提高,工程設(shè)計團(tuán)隊(duì)及早開展驗(yàn)證可對設(shè)計決策產(chǎn)生建設(shè)性影響。抽象工作通過排除所有不相關(guān)信息可加速驗(yàn)證進(jìn)度,縮短開發(fā)時間,加速糾錯進(jìn)程,并使得測試平臺更具復(fù)用性。
開展抽象工作的重要理由是,就復(fù)雜的系統(tǒng)級芯片而言,在RTL或門級上完成所有這一切要耗費(fèi)太多時間,困難也太大,以至于根本無法實(shí)現(xiàn)。人們認(rèn)識到,在設(shè)計中采用更高層次的抽象表示方法變得絕對必要,這項(xiàng)工作不僅針對設(shè)計流程,也適用于測試平臺的建設(shè)。
為了使這項(xiàng)多層次抽象化戰(zhàn)略行之有效,僅僅擁有必要的工具還是不夠的。IP的積累也同樣重要。如果不讓設(shè)計人員建立在各抽象概念級別之間進(jìn)行切換并將各抽象級別聯(lián)系在一起的模型,那么允許開展多抽象層次的仿真技術(shù)也就沒有用武之地。多抽象層次驗(yàn)證解決方案可將技術(shù)和知識產(chǎn)權(quán)融為一體。
在將一套任務(wù)處理器作為設(shè)計的基礎(chǔ)界面時,分層驗(yàn)證將成為可能。這樣就允許對不同的設(shè)計抽象層次進(jìn)行融合,組裝為測試平臺或驗(yàn)證環(huán)境以便檢查某項(xiàng)實(shí)現(xiàn)是否能夠與更高級別抽象模型功能一致。這種驗(yàn)證策略的優(yōu)勢在于它不要求所有模型都必須以單個級別抽象概念存在,其靈活性允許團(tuán)隊(duì)在規(guī)定時間范圍內(nèi)獲得由不同抽象層次融合起來的一個驗(yàn)證平臺。
然后在該系統(tǒng)內(nèi)部提取單個級別或單個模塊(或利用開展任務(wù)處理所必需的IP)將它們替代成為更為具體的實(shí)現(xiàn)層次。它們可以在系統(tǒng)中作為即時測試平臺運(yùn)行,設(shè)計團(tuán)隊(duì)立刻就可以實(shí)實(shí)在在地把它引入到現(xiàn)有的測試平臺中,向該子模塊提供真實(shí)的驗(yàn)證激勵。其結(jié)果是設(shè)計的驗(yàn)證效率和驗(yàn)證質(zhì)量都得到了保證。
基于任務(wù)處理的界面可以在所有抽象系統(tǒng)模型與該設(shè)計之間建立鏈接,提供理想的系統(tǒng)級測試平臺。采用協(xié)同建模仿真技術(shù)和在線仿真驗(yàn)證技術(shù),還可以高速運(yùn)行基于任務(wù)處理的系統(tǒng)級驗(yàn)證環(huán)境,其驗(yàn)證速度能夠滿足在無線數(shù)據(jù)傳輸設(shè)計中找出誤碼率,可直接觀察MPEG設(shè)計的視頻處理效果,以及在驗(yàn)證環(huán)境中直接運(yùn)行應(yīng)用程序代碼。
我們認(rèn)為,驗(yàn)證工作需要采用可擴(kuò)展的驗(yàn)證解決方案,它必須解決數(shù)字、模擬和軟件內(nèi)容的復(fù)雜性問題,必須在整個電子系統(tǒng)中支持不同的抽象層次。
·模塊級:在模塊級上,設(shè)計人員的關(guān)注重點(diǎn)是功能和時序的細(xì)節(jié)驗(yàn)證,保證這些模塊達(dá)到技術(shù)規(guī)格的要求,沒有明顯問題存在。其目標(biāo)是盡可能多地發(fā)現(xiàn)設(shè)計錯誤,因?yàn)槟K級驗(yàn)證是發(fā)現(xiàn)并糾正這些錯誤成本最低和最有效的階段。模擬和數(shù)字電路之間的交互也應(yīng)該在模塊級別上開展驗(yàn)證。在這一階段中,各種功能和代碼將得到全面執(zhí)行,并完成驗(yàn)證簽收工作。HDL仿真器是這一階段理想的工具,因?yàn)樗子谑褂枚壹m錯能力強(qiáng)。
·模擬/混合信號模塊:采用模擬和混合信號組件的系統(tǒng)級芯片設(shè)計產(chǎn)品數(shù)量在不斷增加,它要求模擬驗(yàn)證環(huán)境能夠像數(shù)字電路的功能驗(yàn)證一樣執(zhí)行相同的驗(yàn)證功能。通過Mentor公司ADVance MS驗(yàn)證套件工具,ModelSim為模擬HDL行為仿真以及模擬模塊的SPICE仿真提供了平滑的接口界面。該界面允許在同一個糾錯環(huán)境中對數(shù)字和模擬事件的仿真進(jìn)程進(jìn)行同步處理和查看。ADVance MS模擬器針對復(fù)雜模擬/混合信號設(shè)計的驗(yàn)證工作提供了單一內(nèi)核的驗(yàn)證環(huán)境。
·子系統(tǒng)級:對所有模塊完成充分驗(yàn)證之后,將進(jìn)入模塊集成階段,多個模塊組成更高層次的模塊,乃至整個芯片集成。在子系統(tǒng)驗(yàn)證階段,模塊間通信、控制、時序和協(xié)議實(shí)現(xiàn)對確保子系統(tǒng)的功能正確性都是非常重要的;因此,通過執(zhí)行協(xié)議檢查或采用斷言來驗(yàn)證總線數(shù)據(jù)交換的工具是非常有用的。硬件加速仿真工具或仿效驗(yàn)證工具可以在這一階段配置使用,其驗(yàn)證測試平臺可以采用HDL、C、System C和Verisity等其它高級驗(yàn)證語言來實(shí)現(xiàn)。
·系統(tǒng)級芯片級:芯片級驗(yàn)證涉及各個模塊的進(jìn)一步集成以及設(shè)計流程的其余部分,例如設(shè)計的嵌入式軟件和物理實(shí)現(xiàn)的過程。在設(shè)計人員將較小模塊集成進(jìn)越來越大的模塊過程中,需要仿真的內(nèi)容越來越多,運(yùn)行時間越來越長,設(shè)計驗(yàn)證要求開展更多仿真工作,提出了多項(xiàng)驗(yàn)證任務(wù)的需求,比如芯片和系統(tǒng)的功能測試,設(shè)計綜合后與布線后結(jié)果的驗(yàn)證,驗(yàn)證綜合或布線工具的處理并沒有改變設(shè)計的任何行為特征。
在這一驗(yàn)證層次,也可以使用等效檢查、硬件仿真器陣列或仿效驗(yàn)證工具,確保整個設(shè)計在后端處理過程中沒有改變設(shè)計的任何特性——這通常稱作回歸測試。采用硬件仿真器陣列可以為用戶提供比較高的數(shù)據(jù)吞吐能力,對規(guī)模較小的測試向量測試提供完備的解決方案。對于規(guī)模較大的測試向量測試則建議采用仿效驗(yàn)證工具(如Vstation),因?yàn)樗鼡碛序?yàn)證大規(guī)模芯片設(shè)計的能力和容量。硬件仿真器陣列和仿真驗(yàn)證工具是互為補(bǔ)充的解決方案,可以在不同的應(yīng)用環(huán)境中加以有效使用。
絕大多數(shù)系統(tǒng)級芯片都采用了嵌入式軟件,這也是必須加以驗(yàn)證的,嵌入式軟件包括應(yīng)用程序代碼、實(shí)時操作系統(tǒng)、器件驅(qū)動程序、硬件診斷程序和自啟動ROM程序等。在這一階段,功能性固然是重要因素,但數(shù)據(jù)吞吐能力以及其它系統(tǒng)級性能問題也同樣必須獲得重視。我們應(yīng)用硬件和軟件糾錯工具以及硬件加速和仿真手段,確保芯片實(shí)現(xiàn)正常的功能和性能特性。
評論