如今,越來(lái)越多的設計在系統層面進(jìn)行,這是前所未有的。而讓這一切得以實(shí)現的,是硬件仿真技術(shù)。硬件仿真允許將寄存器傳輸級(RTL)源代碼作為模型,但同時(shí)又能提供足夠的處理能力支持系統級工作,特別是涉及到軟件開(kāi)發(fā)或運行軟件工作負荷的情況。 因此,硬件仿真已取代了興盛30余年的RTL模擬器,成為萬(wàn)眾矚目的焦點(diǎn)。需要注意的是,我并非在此提倡大家摒棄RTL模擬器。在早期設計階段的硬件驗證過(guò)程,RTL模擬器當然是首選,而且是無(wú)與倫比的。它能快速編譯一個(gè)設計頁(yè)面,還具有某種程度的互動(dòng)“假設”分析,在設計尺寸有限的情況下,其他任何工具都望塵莫及。 對于知識產(chǎn)權(IP)模塊來(lái)說(shuō),的確如此。然而對于系統集成和系統驗證測試而言,在需要對軟硬件同時(shí)進(jìn)行測試的情況下,軟件仿真則太過(guò)緩慢,而且不切實(shí)際。需要一個(gè)數據點(diǎn)嗎?我們假設,一個(gè)1億等效門(mén)的ASIC以100 MHz的頻率運行,一個(gè)設計團隊嘗試仿真它一秒鐘的真實(shí)數據。我們不妨大方地假設仿真器以100Hz的頻率運行,那么將耗時(shí)100萬(wàn)秒——即277小時(shí),或11天。相比之下,一個(gè)以1MHz的頻率運行的硬件仿真器則只需要100秒。我的假設到此為止。 但是這種解決方案成本不菲,因此仿真數據中心便應運而生且廣受驗證工程師的青睞。為創(chuàng )建可服務(wù)于世界各地的諸多驗證工程師及軟件開(kāi)發(fā)人員的仿真設計數據中心,需要滿(mǎn)足以下三個(gè)條件。系統必須支持: ● 非常強大的設計容量和多個(gè)并發(fā)用戶(hù) ● 遠程訪(fǎng)問(wèn) ● 資源管理 我們來(lái)逐一進(jìn)行詳細討論。 滿(mǎn)足設計容量與多用戶(hù)的需求 設計尺寸將分布曲線(xiàn)往上推至幾億ASIC等效門(mén)。極端情況下,有些設計已經(jīng)超過(guò)10億門(mén)。通常情況下,IP組塊達到數以千萬(wàn)計門(mén)。與此同時(shí),設計團隊在擴招軟件開(kāi)發(fā)人員,其數量大大超過(guò)硬件設計師的人數。在擁有如此多樣化的設計社區的公司,需要一個(gè)容量為數百億門(mén)、7*24小時(shí)不間斷運行的硬件仿真平臺。 目前,最大的硬件仿真平臺可提供的容量上限為數十億門(mén),足以創(chuàng )建有史以來(lái)最大的設計,卻仍然無(wú)法滿(mǎn)足一家大公司的需求。處理嵌入式軟件需要依次運行數十億周期。倘若速度為1MHz,則運行10億周期需要1,000秒的時(shí)間。若單個(gè)設計需消耗所有的仿真資源,那么該設計任務(wù)將在運行期間獨占整個(gè)硬件仿真器,其他所有用戶(hù)在此期間將無(wú)法使用。這種情況可能需要數小時(shí)的時(shí)間。 這一問(wèn)題可通過(guò)兩種方法得到解決。第一種方法是,硬件仿真平臺的架構需支持多個(gè)并發(fā)用戶(hù)共享仿真資源,但要注意的是,任何進(jìn)程都無(wú)法獨占整個(gè)平臺容量。第二種方法即建立一個(gè)由數個(gè)硬件仿真平臺構成的仿真工廠(chǎng)。這種方法將得到仿真器供應商的青睞。 例如,Mentor Graphics的Veloce2可在其雙Maximus平臺中支持大約20億門(mén)設計,可供多達128個(gè)用戶(hù)同時(shí)使用。具體的用戶(hù)數還和設計大小有關(guān),Veloce2 Maximus可支持以上任意組合(圖表1)。 圖1.通常情況下,多個(gè)并發(fā)用戶(hù)有不同的設計容量需求。 Veloce2的硬件架構已從頭開(kāi)始重新設計,以避免將多個(gè)單獨的機箱拼湊在一起。與計算機服務(wù)器類(lèi)似,它包含多個(gè)機架,配備了邏輯板、電源和連接背板。還包括高級驗證板(AVBs)、電源架、以及采用活動(dòng)開(kāi)關(guān)連接各AVBs的矩陣板?偠灾,該系統是穩定可靠的。一個(gè)雙Maximus平臺即可滿(mǎn)足任何公司的容量需求,無(wú)論是大的單個(gè)設計還是需要多種設計尺寸的批量用戶(hù)。 遠程訪(fǎng)問(wèn) 遠程訪(fǎng)問(wèn)帶來(lái)了一種主導驗證領(lǐng)域30余年且廣受歡迎的仿真資源配置模式的終結。在線(xiàn)仿真器(ICE)模式下,硬件仿真器內映射的待測設計(DUT)連接到實(shí)際芯片待命的目標系統。 目標系統可能包括大量的物理設備。不幸的是,由于快速目標系統與實(shí)際設備在處理速度上的巨大差距,且硬件模擬器內的相對緩慢的設計可能僅為兩個(gè)或三個(gè)數量級,因此直接連接是不可能的。 基本上都需要采用一個(gè)速度適配器進(jìn)行連接,以讓高時(shí)鐘頻率的芯片適應低時(shí)鐘頻率的硬件仿真器。速度適配器的選擇應基于不同的設計及目標系統的接口類(lèi)型,如PCI Express、USB和以太網(wǎng)。ICE對于實(shí)際通信流量情景測試來(lái)說(shuō)是非常好的,例如檢驗設計中帶有的SATA磁盤(pán)驅動(dòng)器是否能有效工作。 另外,在涉及物理目標的ICE模式下,保存和還原也極具挑戰性。假設用戶(hù)有一個(gè)磁盤(pán)驅動(dòng)器連接到映射在硬件仿真器內的DUT上,并試圖保存DUT狀態(tài)。由于磁盤(pán)驅動(dòng)器持續轉動(dòng),且其狀態(tài)無(wú)法保存,因而用戶(hù)無(wú)法使用硬件仿真器的內置功能執行該任務(wù)。 遠程訪(fǎng)問(wèn)使硬件仿真器成為一種共享資源,可供一個(gè)極其廣闊的地域范圍內諸多用戶(hù)及團體使用,其中不少用戶(hù)甚至可能位于地球的另一端,與我們有十幾個(gè)時(shí)區之隔。為了完成這一任務(wù),ICE模式需要一組技術(shù)人員7*24小時(shí)持續不斷地為每個(gè)用戶(hù)及每個(gè)設計插拔速度適配器,這完全不現實(shí)。 假如ICE無(wú)法實(shí)現,那么是否有其他方法支持遠程訪(fǎng)問(wèn)呢?答案是肯定的。這種方法時(shí)常被稱(chēng)為“無(wú)目標仿真”,它采用軟件測試環(huán)境來(lái)替代物理測試臺。最簡(jiǎn)單的實(shí)現情況下,。它可能基于可綜合的測試平臺,消除了和外部世界的關(guān)聯(lián)從而達到全速仿真。 然而,可綜合測試平臺會(huì )限制設計師的創(chuàng )造力與靈活性。另一方面,非可綜合性測試平臺,特別是采用硬件驗證語(yǔ)言(HVL)編寫(xiě)的測試平臺需要采用軟件仿真器執行,而且還需要一個(gè)編程接口語(yǔ)言(PLI)接口和運行DUT的硬件仿真器連接。這些因素都會(huì )對平臺性能造成影響, 但我們仍能設法解決此問(wèn)題。 20世紀90年代末期,IKOS(于2002年被Mentor Graphic收購)首創(chuàng )了把測試平臺中驅動(dòng)DUT的比特信號級接口,移至可重復利用的獨立單元。任何接口都是一個(gè)可綜合的基于協(xié)議的狀態(tài)機或總線(xiàn)功能模型。 這種方法有兩個(gè)重大的益處。首先,可在更高層次的抽象界面使用數行代碼編寫(xiě)測試程序。這樣編寫(xiě)起來(lái)更容易,執行起來(lái)速度也更快,映射到硬件仿真器內的總線(xiàn)功能模塊的速度也會(huì )顯著(zhù)提高。IKOS將該總線(xiàn)功能模塊稱(chēng)作執行器(transactors),將新的仿真模式稱(chēng)為協(xié)同建模(co-modeling)。 用于測試平臺加速的TBX是一種基于交易的驗證模式,是一種新興的行業(yè)趨勢。用戶(hù)在不同的設計間切換時(shí),或新用戶(hù)登錄時(shí),都無(wú)需專(zhuān)人監督插拔速度適配器。這種模式為遠程訪(fǎng)問(wèn)奠定了基礎。 三家仿真器供應商——Cadence Design Systems、Mentor Graphics、Synopsys——均支持通過(guò)基于交易的方法進(jìn)行遠程訪(fǎng)問(wèn)。某個(gè)供應商創(chuàng )造了一種虛擬驗證環(huán)境,相當于一個(gè)虛擬實(shí)驗室,即類(lèi)似于物理實(shí)驗室,但采用虛擬設備建造而成。該虛擬實(shí)驗室合并采用了三種技術(shù):硬件仿真、基于交易的驗證、ICE目標。 一套虛擬設備包括一個(gè)在主工作站上運行的軟件堆棧,主工作站采用交易執行器接口與硬件仿真器上運行的協(xié)議IP進(jìn)行通信。這種捆綁帶來(lái)了一種協(xié)議解決方案,用戶(hù)可在設備驅動(dòng)器層面驗證IP并采用實(shí)際軟件和設備驅動(dòng)器自身來(lái)驗證DUT。(圖表2)。 圖2.USB3.0大容量存儲可在仿真環(huán)境中作為虛擬外圍設備建模。 虛擬實(shí)驗室與ICE目標解決方案功能相當,但去除了電纜和硬件適配器,因為虛擬設備采用現有的驗證軟件IP與硬件仿真器上的特定協(xié)議RTL設計IP和DUT進(jìn)行通信。相比于硬件ICE目標,虛擬設備具備以下優(yōu)勢: ● 便于遠程使用。因為只要安裝了協(xié)同模塊主機,無(wú)需將額外的硬件連接到硬件仿真器便可安裝虛擬設備。 ● 靈活性更高。單個(gè)硬件加速器資源可供多個(gè)設計團隊分享,因為硬件仿真器上運行的DUT無(wú)需電纜連接,且分區限制較少。 ● 無(wú)需對專(zhuān)門(mén)的硬件進(jìn)行特定訪(fǎng)問(wèn),便可定義功能控制器上運行的目標協(xié)議軟件棧的可見(jiàn)性。 ● 目標協(xié)議函數控制器核的可見(jiàn)性/可追溯性可通過(guò)對提交的RTL源代碼的簡(jiǎn)單IP保護進(jìn)行定義,且監視器和檢查器運行時(shí),方便訪(fǎng)問(wèn)標準總線(xiàn)。 虛擬環(huán)境允許用戶(hù)通過(guò)虛擬調試接口(JTAG)探針對嵌入式軟件進(jìn)行調試,而無(wú)需采用實(shí)體JTAG探針。探針采用JTAG協(xié)議的優(yōu)點(diǎn)在于,通常不會(huì )受到硬件仿真器慢速時(shí)鐘頻率的影響。當將物理設備連接到硬件仿真器中運行的虛擬設計時(shí),需要減少時(shí)鐘頻率和數據頻率以匹配硬件仿真器中設計的速度。采用了虛擬JTAG,硬件仿真器便能隨時(shí)停止,時(shí)鐘頻率變化時(shí)也無(wú)需擔心干擾與軟件調試器的連接。 但缺點(diǎn)是,JTAG連接會(huì )對被調試的設計的狀態(tài)產(chǎn)生影響。JTAG探針技術(shù)的替代選擇是使用基于跟蹤的系統來(lái)啟用硬件仿真器上運行的程序調試;镜奶幚砥鞲櫰骺商峁┨幚砥髦邪l(fā)生所有事件的列表。 一家供應商提供了一種離線(xiàn)軟件調試工具用于仿真。這種離線(xiàn)軟件調試工具基于跟蹤器,包括對處理器狀態(tài)的傳統調試器視圖,并執行所有的符號表和處理器狀態(tài)解碼。由于采用了跟蹤技術(shù),它不會(huì )對正在運行的系統操作產(chǎn)生影響或干擾。仿真過(guò)程完成后,可以脫離回放數據庫運行,且運行速度可達100 MIPS。 復雜的資源管理 越來(lái)越多開(kāi)發(fā)嵌入式系統的公司擁有較大的硬件設計師和嵌入式軟件開(kāi)發(fā)人員團隊,他們通常分布于世界各地,或位于不同的洲。要服務(wù)于這樣的企業(yè),硬件仿真器平臺需要充足的設計能力和遠程控制,但僅滿(mǎn)足這兩個(gè)要求仍然不夠。還有一個(gè)極其微妙的需求,即先進(jìn)的資源管理。 任何現代仿真系統都由主板構成,主板又由機箱中的背板互相連接而成。多個(gè)機箱連接在一起,設計能力便得以擴大,可超過(guò)十億門(mén)。為吸引開(kāi)發(fā)團隊,須對這些資源進(jìn)行自動(dòng)化管理。 從開(kāi)發(fā)周期的早期到最終的系統集成及交付階段,設計團隊需要不分晝夜地處理大量仿真工作。包括IP、子系統以及整個(gè)系統層面的硬件驗證任務(wù),以及任何形式的嵌入式軟件驗證工作,從軟件驗證例程到驅動(dòng)程序、操作系統、應用程序和診斷。有些步驟需要有限的容量,而其他步驟則需要全部的設計能力。而且,這僅僅是針對單個(gè)設計項目而言。通常情況下,大公司長(cháng)期都同時(shí)進(jìn)行幾十個(gè)設計項目,盡管只有少數幾個(gè)項目能最終投產(chǎn)。因此情況更為復雜。 我們再次以Mentor Graphics的Veloce2為例。其完全擴展的雙Maximus配置包含8個(gè)Quattro機箱,每個(gè)機箱中又包含16個(gè)主板。這樣一個(gè)平臺可以支持多達128個(gè)并發(fā)用戶(hù)。工作過(guò)程中可能隨時(shí)需要對各種資源(AVBs)進(jìn)行實(shí)時(shí)重新分配。倘若要手工執行這些任務(wù),那必將是一個(gè)噩夢(mèng)(圖表3)。 圖3.Mentor Graphics的Veloce2 Maximus平臺可支持多達128個(gè)并發(fā)用戶(hù)。 此外,為提高效率,資源管理器必須采用作業(yè)調度優(yōu)先級機制,因為有些工作可能具有更高的優(yōu)先級。Platform Computing用于作業(yè)調度的載荷分享設施(LSF)或許能對工作優(yōu)先級進(jìn)行安排調度,但功能仍然有待完善。 而且工作優(yōu)先級可能會(huì )隨時(shí)發(fā)生變化,這讓情況變得更為復雜。當有更高優(yōu)先級的工作要求馬上執行時(shí),必須有支持“暫停/恢復”功能的設計,以便隨時(shí)停止當前的進(jìn)程(圖表4)。 圖4.“暫停/恢復”功能可對工作進(jìn)行列隊和優(yōu)先級處理。 相比于十年前,硬件仿真器的可靠性已大大提高,但仍然無(wú)法稱(chēng)之為完美。因為硬件經(jīng)常會(huì )出現故障,當這種情況發(fā)生時(shí),避免硬件仿真器發(fā)生任何停機的情況,是至關(guān)重要的,否則會(huì )影響最終的交付時(shí)間。資源管理器必須在不強迫主板上運行的設計重新編譯的情況下,對故障主板進(jìn)行隔離。同樣重要的是,還要追蹤硬件仿真器的使用情況,包括日常維護調度、運行診斷和提交報告結果。 結論 基于仿真的現代驗證方法需具備供數十名軟硬件工程師同時(shí)使用的遠程服務(wù)器工廠(chǎng),以驗證日益復雜的設計。 為提高效率,硬件仿真服務(wù)器須采用無(wú)需大量使用電纜便能進(jìn)行容量擴張的模塊方法從頭開(kāi)始設計?傮w容量必須足以支持包含數十億門(mén)和數十個(gè)并發(fā)用戶(hù)透明管理的最大設計項目。 同時(shí)提交多個(gè)仿真工作時(shí),應使用排隊程序,在不干擾服務(wù)器的情況下按照工作優(yōu)先級的高低進(jìn)行處理。用戶(hù)應避免工作的細節處理和由硬件依賴(lài)性導致的編譯設計調整。 仿真供應商的當務(wù)之急是通過(guò)故障保護機制來(lái)提高硬件仿真的可靠性。理論上說(shuō),仿真服務(wù)器還應該節能環(huán)保,并可進(jìn)行相應調整以適應實(shí)驗室環(huán)境。 |