ICE時(shí)代正在悄然離去
硬件仿真是唯一一個(gè)可以部署在多個(gè)操作模式中的驗(yàn)證工具。事實(shí)上,它可應(yīng)用于四個(gè)主要模式中,而且模式間的結(jié)合使用可以增加靈活性?;谝韵聝蓚€(gè)特征對(duì)硬件仿真的應(yīng)用模式進(jìn)行分類:對(duì)映射到硬件仿真器中被測設(shè)計(jì)(DUT)的激勵(lì)類型,以及DUT的響應(yīng)過程。具體包括:
本文引用地址:http://m.butianyuan.cn/article/273802.htm1.內(nèi)電路硬件仿真(ICE)模式: 使用物理目標(biāo)設(shè)備,通過頻率適配器來驅(qū)動(dòng)硬件仿真器中的DUT。
2. 基于事務(wù)的硬件仿真或加速模式: 使用虛擬目標(biāo)設(shè)備,通過驗(yàn)證IP來驅(qū)動(dòng)硬件仿真器中的DUT。
3. 軟件仿真測試平臺(tái)加速模式:通過程序語言界面(PLI)驅(qū)動(dòng)硬件仿真器中DUT的寄存器傳輸級(jí)(RTL)測試平臺(tái)。
4. 嵌入式軟件加速模式:在硬件仿真器中的DUT處理器上執(zhí)行軟件代碼。
將幾種模式組合起來似乎是很有道理的,例如同時(shí)處理嵌入式軟件及通過驗(yàn)證IP驅(qū)動(dòng)DUT的虛擬測試平臺(tái)。
縱觀以往,ICE模式是最早提出的一種架構(gòu),這也是三十年前開始設(shè)計(jì)硬件仿真的原因。在ICE模式中,DUT映射到硬件仿真器內(nèi)部,而硬件仿真器連接到由真實(shí)芯片組成的目標(biāo)系統(tǒng)。
ICE具有兩大關(guān)鍵優(yōu)勢(shì)。第一,目標(biāo)系統(tǒng)可在DUT內(nèi)外生成真實(shí)流量,從而在本質(zhì)上取代了基于軟件的傳統(tǒng)測試平臺(tái)。因此,無需創(chuàng)建測試平臺(tái),即可消除耗時(shí)又容易出錯(cuò)的工作,減輕驗(yàn)證工程團(tuán)隊(duì)因超負(fù)荷測試龐大設(shè)計(jì)所帶來的負(fù)擔(dān)。
第二,能夠以硬件仿真器的最大速度運(yùn)行,較傳統(tǒng)的硬件描述語言(HDL)軟件仿真器而言,其速度提升了5~6個(gè)數(shù)量級(jí)。也就是兆赫與幾十赫茲之間的差別。而現(xiàn)如今,其可能不再那么精確了。
ICE模式存在諸多問題,有些已清楚明了,有些卻還尚未明確。首先,無法直連目標(biāo)系統(tǒng),因?yàn)橄噍^于硬件仿真器內(nèi)部DUT的時(shí)鐘,目標(biāo)系統(tǒng)時(shí)鐘的運(yùn)行速度提高幾個(gè)數(shù)量級(jí),從而必須被限制到一或幾兆赫。
為解決該問題,必須在目標(biāo)系統(tǒng)與映射至硬件仿真器內(nèi)部的DUT之間插入速度適配器——基本上就是一種基于先進(jìn)先出(FIFO)寄存器的協(xié)議相關(guān)接口。它能夠讓目標(biāo)系統(tǒng)的快速時(shí)鐘適配硬件仿真器相對(duì)較慢的時(shí)鐘速度。這種方法存在一些缺點(diǎn),因?yàn)檫m配器通常會(huì)通過犧牲部分功能和準(zhǔn)確性來換取性能。同時(shí),PCI Express(PCIe) 或以太網(wǎng)等高速協(xié)議也將會(huì)減速,以應(yīng)對(duì)適配器中FIFO內(nèi)在容量的不足。
圖1:帶有多個(gè)物理接口的SoC通過速度適配器和實(shí)際外圍設(shè)備進(jìn)行建模。(由Mentor Graphics提供)
此外,適配器的周期精確行為由于同樣的原因也將與實(shí)際協(xié)議有所不同。配置僅局限于每個(gè)協(xié)議一個(gè)測試用例,且不涉及邊緣測試用例或任何“假設(shè)”分析。更不用說作為硬件的加速適配器針對(duì)電效應(yīng)和磁效應(yīng)所受到的影響。它們必須重置電路,需要磁屏蔽以及布設(shè)電纜和連接器,因?yàn)樗羞@些因素均可能影響其靈活性和可靠性。除此之外,相比軟件解決方案,它們所能獲得的利潤率較低。
另一個(gè)明顯的缺點(diǎn)就是在驅(qū)動(dòng)DUT時(shí),物理目標(biāo)系統(tǒng)相對(duì)缺乏確定性行為或非重復(fù)性行為。多次運(yùn)行同一測試時(shí),其周期和時(shí)序可能會(huì)有所不同。也就是說,設(shè)計(jì)錯(cuò)誤可能不會(huì)總在同一時(shí)刻出現(xiàn)。更糟糕的是,錯(cuò)誤可能會(huì)完全不出現(xiàn),影響問題的定位。此外,ICE模式無法實(shí)現(xiàn)物理目標(biāo)執(zhí)行保存和恢復(fù)的能力。硬件仿真只能保存 DUT 的狀態(tài),而非目標(biāo)系統(tǒng)的狀態(tài)。
然而,其最大的缺點(diǎn)就是它的極度不便性。如果沒有人在現(xiàn)場提供幫助,對(duì)每個(gè)用戶和設(shè)計(jì)相對(duì)應(yīng)的速率適配器進(jìn)行插拔,可能無法遠(yuǎn)程訪問ICE模式的配置。
這一切均給ICE模式的使用帶來麻煩,因而需要尋找其他替代方法。一種方法就是將物理測試環(huán)境變更為通過事務(wù)接口連接DUT的虛擬測試環(huán)境。這種部署模式通常稱為基于事務(wù)的驗(yàn)證或TBX,由Mentor Graphics推廣,適用于測試平臺(tái)加速。
基于事務(wù)的驗(yàn)證
基于事務(wù)的驗(yàn)證并不是一個(gè)新概念,它在軟件仿真領(lǐng)域已實(shí)踐多年,主要受到生成復(fù)雜測試場景需求的驅(qū)動(dòng),旨在應(yīng)對(duì)片上系統(tǒng)(SoC)不斷攀升的復(fù)雜度。
從概念上講,這一構(gòu)想十分簡單。測試通過一種高級(jí)語言(例如SystemVerilog、SystemC或C++)從高抽象層次編寫,并且從高級(jí)命令到位級(jí)信號(hào)的轉(zhuǎn)換任務(wù)由一個(gè)叫做驗(yàn)證IP的專用實(shí)體執(zhí)行(以下簡稱“驗(yàn)證IP”)。
一般來說驗(yàn)證IP包括可綜合的用于實(shí)現(xiàn)接口協(xié)議的狀態(tài)機(jī)功能模塊。它可以使設(shè)計(jì)人員專注于創(chuàng)建復(fù)雜的測試平臺(tái),而無需理會(huì)討厭的細(xì)節(jié)問題。通過將物理接口的抽象層次從周期/位級(jí)提升至事務(wù)層,驗(yàn)證IP可簡化SoC 與其外圍設(shè)備之間數(shù)據(jù)交換的描述。完成創(chuàng)建后,驗(yàn)證IP可重復(fù)使用。驗(yàn)證IP的示例包括一些通信協(xié)議,例如以太網(wǎng)、USB、PCIe、內(nèi)存訪問、JTAG端口,甚至是數(shù)碼相機(jī)和LCD。
這一切聽起來都不錯(cuò),但卻存在一個(gè)問題。此方法會(huì)產(chǎn)生大量測試周期,導(dǎo)致軟件仿真器運(yùn)行受阻。而軟件仿真器仍然會(huì)通過驗(yàn)證IP執(zhí)行從高級(jí)命令到位級(jí)信號(hào)的轉(zhuǎn)換。運(yùn)行分析器,然后發(fā)現(xiàn)測試平臺(tái)所消耗的執(zhí)行時(shí)間超過50%,甚至可能高達(dá)95%(其余時(shí)間由DUT消耗),這種情況并不少見。
硬件仿真平臺(tái)必須得伸出援手,幫助提升頻率性能,確保其速度不低于ICE。這是通過將驗(yàn)證IP的后端部分映射至硬件平臺(tái)上實(shí)現(xiàn)的,而驗(yàn)證IP主要執(zhí)行從高級(jí)命令到位級(jí)信號(hào)的轉(zhuǎn)換。
以SystemVerilog、SystemC或C++等語言編寫的測試平臺(tái)會(huì)驅(qū)動(dòng)驗(yàn)證IP的前端部分,進(jìn)而提供比基于事務(wù)軟件仿真快出5或6個(gè)數(shù)量級(jí)的執(zhí)行速度。現(xiàn)在完全可以通過將一套速度適配器(以太網(wǎng)、PCI或USB)更換為對(duì)等的驗(yàn)證IP來構(gòu)建一個(gè)虛擬的測試環(huán)境,從而取代ICE測試平臺(tái)。
通過軟件控制
與ICE不同,驗(yàn)證IP可從軟件控制中受益。它可幫助智能驗(yàn)證環(huán)境實(shí)現(xiàn)高度靈活性并確保實(shí)現(xiàn)復(fù)用。例如,設(shè)計(jì)人員可以從動(dòng)態(tài)主機(jī)中捕獲和回放流量;通過轉(zhuǎn)發(fā)設(shè)備與芯片之間的事務(wù)模擬內(nèi)電路連接;或?qū)⑥D(zhuǎn)換應(yīng)用于事務(wù)的數(shù)據(jù)流以實(shí)現(xiàn)難以獲取的邊緣測試用例。
相關(guān)實(shí)例:通過PCI驗(yàn)證IP,可將PCI軟件驅(qū)動(dòng)程序插入含有PCI接口的硬件仿真設(shè)計(jì)中,這與在ICE中通過硬件速度適配器的執(zhí)行操作類似。但是現(xiàn)在,軟件調(diào)試程序可以通過JTAG驗(yàn)證IP與硬件仿真器相連,并以單步模式運(yùn)行,而通過JTAG物理連接卻無法實(shí)現(xiàn)這一操作。
同樣重要的是,當(dāng)設(shè)計(jì)人員完全控制并非由硬件測試平臺(tái)提供的設(shè)計(jì)時(shí)鐘時(shí),調(diào)試就變得更加輕松,也更加有效了。通過控制時(shí)鐘頻率,可以停止建模,讀取內(nèi)存內(nèi)容,強(qiáng)制賦值寄存器或轉(zhuǎn)儲(chǔ)波形。
在ICE模式中調(diào)試需要硬件邏輯分析儀。如果使用ICE方法,設(shè)計(jì)人員就必須忍受真實(shí)硬件行為的突發(fā)狀況,并且以犧牲可重復(fù)性為代價(jià)。相反,基于驗(yàn)證IP的虛擬測試環(huán)境可以幫助設(shè)計(jì)人員快速重現(xiàn)問題。此外,無需連結(jié)DUT與硬件測試平臺(tái),讓設(shè)計(jì)人員在遠(yuǎn)程位置執(zhí)行DUT,開啟了通過遠(yuǎn)程訪問創(chuàng)建仿真數(shù)據(jù)中心的大門。
由此看來,對(duì)于虛擬測試平臺(tái)這一方法來說,創(chuàng)建測試平臺(tái)似乎是唯一的一個(gè)缺點(diǎn)。而Mentor Graphics及其物理實(shí)驗(yàn)室VirtuaLAB(包括在工作站控制的軟件中執(zhí)行的所有外圍設(shè)備)已成功解決這一問題。
虛擬設(shè)備
虛擬設(shè)備的功能與物理外圍設(shè)備的功能相當(dāng),但虛擬設(shè)備不依賴于復(fù)位電路、電纜、連接器、磁屏蔽等硬件設(shè)備,也不會(huì)受到諸多麻煩的干擾。它們?nèi)Q于全面的測試軟件IP,該IP與嵌入到映射至仿真器上的DUT中的特定協(xié)議RTL設(shè)計(jì)IP進(jìn)行通信。
圖2:虛擬設(shè)備將在控制工作站(協(xié)同建模主機(jī))上運(yùn)行的軟件堆棧與通過TBX數(shù)據(jù)線在硬件仿真器上運(yùn)行的通信協(xié)議IP組合起來。(由Mentor Graphics提供)
虛擬設(shè)備包括在工作站上運(yùn)行的軟件堆棧,該工作站通過TBX數(shù)據(jù)線與仿真器相連。整個(gè)封裝可用于在設(shè)備級(jí)別上測試IP以及通過真實(shí)軟件或設(shè)備驅(qū)動(dòng)程序本身執(zhí)行DUT驗(yàn)證。
與硬件ICE目標(biāo)相比,虛擬設(shè)備的優(yōu)勢(shì)更為豐富:
輕松實(shí)現(xiàn)遠(yuǎn)程訪問,無需安裝連接到硬件仿真器的任何硬件設(shè)備。
自由靈活地在多個(gè)設(shè)計(jì)團(tuán)隊(duì)中共享單個(gè)硬件仿真器,無需配置用于連接的速度適配器和電纜。
在控制工作站上運(yùn)行的目標(biāo)協(xié)議軟件堆棧清晰可見。
表1 總結(jié)了ICE的優(yōu)點(diǎn)和缺點(diǎn)(相較于基于事務(wù)加速模式)。
然而,可能是出于習(xí)慣或者尚不知曉更好的替代方法,許多設(shè)計(jì)人員仍然沿用ICE模式。事實(shí)上,硬件仿真平臺(tái)的所有供應(yīng)商均聲明支持ICE,雖然有些實(shí)現(xiàn)方案明顯優(yōu)于其他。然而,一旦設(shè)計(jì)人員通過硬件仿真體驗(yàn)了基于事務(wù)的驗(yàn)證方法,他們的驗(yàn)證觀點(diǎn)就會(huì)有所轉(zhuǎn)變。能夠快速創(chuàng)建強(qiáng)大的測試環(huán)境而不受繁瑣的ICE硬件的干擾,那么我們就可以更加輕松且更為有效地進(jìn)行調(diào)試。這就是我認(rèn)為ICE時(shí)代正在悄然離去的原因。
c++相關(guān)文章:c++教程
評(píng)論