應對百萬(wàn)門(mén)級系統級芯片驗證挑戰的可擴展解決方案
軟件模擬是模塊級驗證的理想選擇,因為其周轉速度非常迅速,糾錯能力較強。硬件/軟件協(xié)同驗證能夠將嵌入式軟件帶入驗證流程之中,為加速處理器、記憶體以及總線(xiàn)運算提供途徑。它也可以作為測試平臺開(kāi)展硬件驗證。
基于處理程序的協(xié)同建模提供了大量多樣化解決方案,使系統驗證成為可能。協(xié)同建模適用于在高級、抽象測試平臺與載入仿真器的 整個(gè)芯片的RTL實(shí)施之間建立鏈接。在線(xiàn)仿真在真實(shí)系統中提供高能力和高性能驗證。仿真為設計人員帶來(lái)自信,確保他們的芯片將在實(shí)際系統中正確發(fā)揮功能。
形式驗證(等效性檢查)的能力和速度能夠確保在設計流后續階段作出的修改不會(huì )改變其意圖行為。有必要指出的是,高性能、硬件協(xié)助或軟件導向解決方案對在系統級環(huán)境中實(shí)現驗證完整性具有關(guān)鍵性作用。
各抽象層次之間的可擴展性
我們非常有必要推動(dòng)某些方面的功能驗證工作向前發(fā)展,使其成為設計流程初步階段的一部分。為了實(shí)現這一點(diǎn),我們必須利用更高層次模型和處理程序(圖3)使驗證工作變得更為抽象。
在設計流中前移驗證的好處在于:處于這個(gè)階段的模型的編寫(xiě)速度較快,具有較大生產(chǎn)能力,因此可以通過(guò)建設性方式影響設計決策。抽象工作可以加速驗證進(jìn)行,它能夠剔除無(wú)關(guān)信息,縮短開(kāi)發(fā)時(shí)間,加快糾錯進(jìn)程,并使得測試平臺更易重復使用。
就復雜的系統級芯片而言,如果所有事情都在RTL或門(mén)層次上完成則太過(guò)費時(shí)和困難,我們在這兒絕對有必要在設計中使用更為抽象的表示方法。這并不僅僅是針對設計的,也同樣有益于測試平臺。
這種多層次抽象戰略要想行之有效,不僅需要必要的工具支持,知識產(chǎn)權(IP)因素也同等重要。如果設計人員無(wú)法通過(guò)模型在各 個(gè)抽象層次之間切換并建立聯(lián)系的話(huà),那么多抽象模擬就無(wú)用武之地。多抽象解決方案將技術(shù)與知識產(chǎn)權組合在一起。針對設計的主要接口使用一系列處理程序時(shí), 分層次驗證才變得可能。它允許在各種抽象層次上混合各種設計說(shuō)明。處理程序可以組合為一個(gè)測試平臺或環(huán)境,用于檢查某項實(shí)施是否符合高層次模型。
本策略的優(yōu)勢是它無(wú)需在一個(gè)抽象層次上包含所有模型。這種靈活性允許設計團隊混合并匹配在規定時(shí)間內所能獲得的一切,提供相對于執行時(shí)間的必要層次解析。
基于處理程序的接口可以將所有抽象系統模型鏈接至設計,提供一個(gè)理想的系統層次測試平臺。例如,運用基于處理程序的模擬,某 團隊可以在高抽象層次上作出系統定義。然后,它們將在高層次系統定義中提取某個(gè)層次或某個(gè)模塊,運用處理程序投入工作所必需的知識產(chǎn)權,替代它們進(jìn)入更為 詳細的實(shí)施模型中。
他們可以在系統原位置處將模型作為即時(shí)測試平臺運行。該團隊就可以立即將現有測試平臺投入實(shí)際使用,從而向該模塊提供自然的刺激。其結果是,驗證生產(chǎn)力提高,設計信心提高。
抽象層次
系統級驗證所必需的可擴展解決方案應在整個(gè)電子系統中支持抽象:模塊、子系統、完整芯片以及系統層次。
模塊層次:在模塊層次上,設計人員的關(guān)注重點(diǎn)是功能和時(shí)序的細節情況,這樣他們就能夠保證這些模塊符合技術(shù)規范,不存在明顯 問(wèn)題。其目標是盡可能多地查找錯誤,因為這在設計流程中是查找這些錯誤的最廉價(jià)和最快速階段。模擬和數字交互作用在模塊層次上進(jìn)行驗證。功能和代碼得到全 面演練,驗證移交應考慮在這一階段進(jìn)行。由于HDL仿真技術(shù)易于使用且具糾錯能力,因而成為理想的工具。
模擬/混合信號模 塊:系統級芯片設計的能力在不斷提升,模擬和混合信號元器件不斷加入其中,因此要求模擬環(huán)境能夠具備與數字邏輯相同的、必需的驗證功能。與模擬HDL行為 模擬以及模擬原始模塊的Spice模擬順利實(shí)現接口,允許數字和模擬元器件的模擬工作實(shí)現同步,并能夠在相同的糾錯環(huán)境中查看。
子系統層次:所有模塊均已驗證后,隨后進(jìn)行模塊集成,涉及對各模塊組或整個(gè)芯片進(jìn)行集成。在子系統階段,模塊間通信、控 制、時(shí)序和協(xié)議對功能而言具有重要意義;因此,檢查協(xié)議或應用斷言以驗證總線(xiàn)處理程序的工具就能發(fā)揮作用。硬件斷言或仿真可以運用HDL、C或 SystemC 以及Verisity等其它高層次測試平臺語(yǔ)言布署在這一階段。
系統級芯片層次:系統級芯片層次驗證涉及各模塊與后端流程的其余部分進(jìn)一步集成,其中包括設計的物理實(shí)現。在設計人員將較小模塊集成進(jìn)入越來(lái)越大模塊的過(guò)程中,需要模擬的內容日益增多,測試時(shí)間日益延長(cháng),并且需要開(kāi)展更多模擬來(lái)驗證設計。
這對多種驗證方法提出了要求,比如芯片和系統功能測試。它還要求驗證布圖、時(shí)鐘樹(shù)或DFT插入會(huì )否引入意外更改。等效性檢查工具可以驗證整個(gè)大規模設計,并在每次修改設計后迅速糾錯,無(wú)需再運行眾多漫長(cháng)的模擬。
除了等效性檢查之外,我們還可能在這一流程中使用硬件加速仿真器和多CPU并行仿真,以確保更改設計期間沒(méi)有造成任何破壞。 多CPU并行仿真將會(huì )縮短測試時(shí)間,獲得非常高的吞吐能力。就較長(cháng)時(shí)間測試而言,出于驗證大規模芯片設計的能力考慮,硬件仿真是我們的首選方法。硬件加速 仿真器和多CPU并行仿真是互為補充的解決方案,可以在不同的環(huán)境中得到有效使用。
絕大多數系統級芯片器件都包含必須驗證的嵌入式軟件,其中包括應用代碼、實(shí)時(shí)操作系統(RTOS)、器件驅動(dòng)程序、硬件診斷以及啟動(dòng)ROM代碼。功能仍然重要,但吞吐能力以及其它系統級事宜可能也需要獲得驗證。運行大量軟件通常意味著(zhù)長(cháng)時(shí)間模擬作業(yè)。
硬件/軟件協(xié)同仿真解決方案提供降低總體負擔的途徑,同時(shí)也提供高效能糾錯和分析環(huán)境。即便就較長(cháng)運行時(shí)間而言,該設計可能也需要部分或全部移入硬件解決方案之中,但應該保留相同或相當的糾錯環(huán)境,這樣就可以最大限度減少上述執行環(huán)境中的遷移。
改進(jìn)的糾錯解決方案
為支持可擴展驗證解決方案,糾錯工具必須實(shí)現集成,在各個(gè)抽象層次上保持前后一致,在各個(gè)可擴展性工具之間保持一致。其目標 是加快速度發(fā)現錯誤、跟蹤捕獲故障原因、修復故障,并最大限度縮短反饋時(shí)間,將反復回路減少到最低限度。目前,無(wú)論是設計團隊還是驗證團隊,都將超過(guò) 50%的時(shí)間用在糾錯上,因此這一領(lǐng)域的改進(jìn)可能對縮短產(chǎn)品上市時(shí)間產(chǎn)生重大影響。
評論