Deterministic ICE 中也許已完美地將電路內(nèi)仿真 (ICE) 與基于軟件測(cè)試的虛擬環(huán)境相結(jié)合。
筆者承認(rèn)自己有所偏愛。舉個(gè)例子,筆者特別喜歡吃意大利美食,也會(huì)偶爾品嘗下日本生魚片。同樣,針對(duì)硬件加速仿真的部署模式,筆者也有所偏好。筆者不青睞電路內(nèi)仿真 (ICE) 模式,這個(gè)觀點(diǎn)已在筆者眾多文章中表達(dá)過(guò)。
需要指出的是,ICE 模式曾經(jīng)是硬件加速器的第一種部署方式。在這種模式中,硬件加速器需要插入物理目標(biāo)系統(tǒng)上的插孔,以此代替待開發(fā)的芯片,從而利用實(shí)時(shí)數(shù)據(jù)支持運(yùn)行和調(diào)試硬件加速器內(nèi)部映射的被測(cè)設(shè)計(jì) (DUT)。
與 ICE 模式相比,筆者更喜歡虛擬環(huán)境模式中的部署,且該模式擁有基于軟件的測(cè)試環(huán)境。與寄存器傳輸級(jí) (RTL) 相比,它是在更高抽象層次上進(jìn)行編寫的,以此代替物理目標(biāo)系統(tǒng)。(參見下表)。
正如意大利的一句流行說(shuō)法:“讓凱撒得到他應(yīng)得的”。或者如美國(guó)的一句流行語(yǔ),“即使對(duì)不喜歡的事物也要公平對(duì)待”。顯然,ICE 最大的好處就是可以通過(guò)真實(shí)流量來(lái)運(yùn)行 DUT,進(jìn)而減少耗時(shí)并且避免測(cè)試平臺(tái)創(chuàng)建過(guò)程中可能出現(xiàn)的錯(cuò)誤。趕緊在實(shí)際應(yīng)用中全面施行這一流程吧。想必,要在模糊的設(shè)計(jì)區(qū)域里尋找令人厭煩的隱匿錯(cuò)誤,實(shí)際應(yīng)用會(huì)比任何基于軟件的測(cè)試平臺(tái)都更為有效。
ICE 的另一個(gè)獨(dú)特性在于它能支持與目標(biāo)系統(tǒng)連接的自定義和專有接口,而該目標(biāo)系統(tǒng)基于的高度機(jī)密 IP 內(nèi)容是硬件加速仿真的終端用戶絕無(wú)法向外界披露的。將這種方法與創(chuàng)建和調(diào)試測(cè)試平臺(tái)比較。如果出現(xiàn)錯(cuò)誤,設(shè)計(jì)人員最后總是會(huì)問(wèn):“這是測(cè)試平臺(tái)錯(cuò)誤還是設(shè)計(jì)錯(cuò)誤?”很顯然,調(diào)試測(cè)試臺(tái)會(huì)延長(zhǎng)驗(yàn)證任務(wù)的總分配時(shí)間,而用于驗(yàn)證的時(shí)間從來(lái)都是不夠的。
ICE 驗(yàn)證方法伴隨著眾多問(wèn)題,其中大部分問(wèn)題源于該方式的硬件本質(zhì)。這些問(wèn)題包括缺乏靈活性、有限的復(fù)用性、存在潛在不可靠性以及各種影響部署的不便性。更別提,ICE 還會(huì)產(chǎn)生額外成本以及功耗,這些可通過(guò)虛擬方式降低或快速消除。
其中最突出的一個(gè)問(wèn)題就是:當(dāng)調(diào)試 DUT 時(shí),它缺少確定性或者可重復(fù)性。
設(shè)計(jì)調(diào)試
設(shè)計(jì)調(diào)試是無(wú)法提前規(guī)劃的一種探尋過(guò)程。這是因?yàn)椋e(cuò)誤往往因?yàn)槲粗脑颍谖粗牡胤胶蜁r(shí)間,出其不意的出現(xiàn)。
如果將其應(yīng)用于包含大量嵌入式軟件的幾億門片上系統(tǒng) (SoC) 設(shè)計(jì)時(shí),調(diào)試過(guò)程需要較長(zhǎng)序列。為了在硬件或者軟件設(shè)計(jì)中找到隱藏于未知角落的錯(cuò)誤,這些序列需要運(yùn)行,即使不是幾十億次,也得是幾百萬(wàn)次的驗(yàn)證周期。
在以上示例中,存在三個(gè)關(guān)鍵未知因素:地點(diǎn)、時(shí)間和事由。這三個(gè)因素足以延誤整個(gè)測(cè)試計(jì)劃的進(jìn)度,即便該計(jì)劃已經(jīng)過(guò)深思熟慮。請(qǐng)謹(jǐn)記,在競(jìng)爭(zhēng)如此激烈的市場(chǎng)中,若一項(xiàng)生命周期為 24 個(gè)月的新產(chǎn)品延期一個(gè)月上市,那么它將造成 相當(dāng)于潛在總收益12%的損失。若產(chǎn)品生命周期為 12 個(gè)月,如現(xiàn)代智能手機(jī),其潛在損失將大幅增加,約占總收益的 25% 或四分之一。
潛在的損失足以說(shuō)明驗(yàn)證解決方案的價(jià)值所在。
硬件加速仿真就是此項(xiàng)任務(wù)的最佳選擇。硬件加速器的性能極為快速,與硬件描述語(yǔ)言 (HDL) 軟件仿真器相比,其執(zhí)行和調(diào)試速度高出了幾個(gè)數(shù)量級(jí)。事實(shí)上,它們的快速執(zhí)行速度便是它們的設(shè)計(jì)初衷。對(duì)于疑似隱藏設(shè)計(jì)問(wèn)題的區(qū)域,它們即便在運(yùn)行了幾十億次周期之后,仍能快速縮放。
雖然相較于基于軟件的驗(yàn)證解決方案,硬件仿真價(jià)格更高昂,但在從每個(gè)驗(yàn)證周期來(lái)看,它們卻是最便宜的驗(yàn)證引擎。
ICE 調(diào)試問(wèn)題
然而,在 ICE 模式中調(diào)試芯片設(shè)計(jì)會(huì)顯得過(guò)于繁瑣而又令人沮喪。這是由于物理目標(biāo)系統(tǒng)缺少確認(rèn)性以及可預(yù)測(cè)的行為,從而妨礙了錯(cuò)誤的發(fā)現(xiàn)并延長(zhǎng)了發(fā)現(xiàn)時(shí)間。
使用硬件加速器追蹤 DUT 的錯(cuò)誤,就需要基于特定時(shí)間觸發(fā),全速地把每個(gè)設(shè)計(jì)寄存器的活動(dòng)捕獲到追蹤存儲(chǔ)器中。追蹤存儲(chǔ)器容量很有限,僅能容納幾百萬(wàn)次周期的波形深度,這相較于幾十億次全速運(yùn)行的周期是非常少的。
連續(xù)運(yùn)行時(shí),會(huì)在不同的時(shí)間/區(qū)域內(nèi)顯示相同的設(shè)計(jì)錯(cuò)誤或者根本不顯示任何設(shè)計(jì)錯(cuò)誤。
因此,用戶為了找到自己感興趣的調(diào)試窗口和轉(zhuǎn)儲(chǔ)正確的波形最終需要進(jìn)行多次——很可能是數(shù)百次的運(yùn)行。由于 ICE 模式行為具有隨機(jī)性,每次運(yùn)行都可能會(huì)在不同的時(shí)間點(diǎn)內(nèi)檢測(cè)出相同的錯(cuò)誤,甚至更糟糕的是,根本檢測(cè)不出任何錯(cuò)誤(參見上圖)。它具有隨機(jī)性。很顯然,在 ICE 模式中復(fù)現(xiàn)錯(cuò)誤是一項(xiàng)挑戰(zhàn),其對(duì)于快速找到錯(cuò)誤根源至關(guān)重要。
來(lái)看下SoC大量使用第三方 IP 的例子。經(jīng)常,一個(gè)能單獨(dú)工作的IP核在內(nèi)嵌于SoC時(shí)卻無(wú)法工作。利用 ICE 模式對(duì)深埋于 DUT 的 IP 進(jìn)行調(diào)試可能會(huì)導(dǎo)致驗(yàn)證團(tuán)隊(duì)沒(méi)日沒(méi)夜地加班。
Deterministic ICE
于是,問(wèn)題變成了:是否可讓 ICE 的調(diào)試環(huán)境具有確定性?很高興,答案是肯定的。
如果設(shè)計(jì)人員在精確序列中的首次運(yùn)行中,捕捉到激勵(lì)和響應(yīng),然后移除物理目標(biāo)系統(tǒng)(內(nèi)在非確定性)并不斷回放激勵(lì),那么調(diào)試環(huán)境將具有可重復(fù)性和確定性。這就稱為 Deterministic ICE。
基本上,這種方法是將物理 ICE 環(huán)境轉(zhuǎn)變?yōu)榈刃У奶摂M環(huán)境,從而讓設(shè)計(jì)人員獲得虛擬環(huán)境的所有特征和功能優(yōu)勢(shì)。它們可以檢查斷言與覆蓋率收斂、執(zhí)行低功耗分析和功耗估計(jì),并進(jìn)行嵌入式軟件調(diào)試。
結(jié)語(yǔ)
盡管筆者對(duì)虛擬模式有所偏愛,但必須意識(shí)到 ICE 模式確實(shí)有存在的價(jià)值。當(dāng)需要專有接口時(shí),ICE 模式是硬件加速仿真用戶的唯一可行方案。值得慶幸的是,Deterministic ICE 能幫助設(shè)計(jì)人員避免眾多問(wèn)題,改善 ICE 模式不那么吸引人的形象。
-
芯片
+關(guān)注
關(guān)注
453文章
50254瀏覽量
421121
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論