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