新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 雙向飛碟射擊與設(shè)計(jì)調(diào)試

雙向飛碟射擊與設(shè)計(jì)調(diào)試

作者: 時(shí)間:2015-12-17 來源:網(wǎng)絡(luò) 收藏

  縱觀歷史,電路內(nèi)仿真 (ICE) 模式是使用硬件仿真器的第一種方式,也是迄今為止最為流行的方法。在這種模式中,需將硬件仿真器插入物理目標(biāo)系統(tǒng)上的插孔,以此代替待開發(fā)的芯片,從而利用實(shí)時(shí)數(shù)據(jù)支持運(yùn)用和調(diào)試硬件仿真器內(nèi)部映射的待測設(shè)計(jì)(DUT)。

本文引用地址:http://m.butianyuan.cn/article/284500.htm

  然而,這種公認(rèn)的能夠引人注目的驗(yàn)證方法卻存在一系列問題,其中最嚴(yán)重的問題便是它的隨機(jī)性。也就是說,當(dāng)調(diào)試DUT時(shí),它缺少確定性或者可重復(fù)性。為了更好地理解這一點(diǎn),我們可以做個(gè)形象類比。

  讓我們來看看雙向飛碟射擊。這是一種射擊運(yùn)動,在這項(xiàng)運(yùn)動中,會將碟靶從靶場上扔出以模擬鳥類的飛行狀態(tài)。我們可以增加碟靶的扭轉(zhuǎn)方向,增加它的難度。讓射手戴副眼鏡,以限制他的視野范圍,這樣射手必須“猜測”碟靶的軌跡,因?yàn)榈械拿恳淮诬壽E都不一樣。而驗(yàn)證工程師在 ICE 模式中調(diào)試芯片設(shè)計(jì)時(shí),恰恰也會遇到這樣的難題。要在 ICE 模式中找出一個(gè)錯誤就像在狹窄的視野中試圖擊中碟靶一樣困難。


  圖 1 要在視野受限的情況下進(jìn)行雙向飛碟射擊對射手來說是一項(xiàng)巨大的挑戰(zhàn)。

  我們不斷總結(jié)過去的經(jīng)驗(yàn),持續(xù)改進(jìn)。這二十多年來,不斷有調(diào)查發(fā)現(xiàn)設(shè)計(jì)驗(yàn)證消耗的時(shí)間大約占了設(shè)計(jì)周期的 70% 左右。往好的方面看,設(shè)計(jì)驗(yàn)證是一項(xiàng)活動,它或多或少地可以根據(jù)預(yù)測事先進(jìn)行安排。但是設(shè)計(jì)調(diào)試則是一項(xiàng)追擊,您無法事先對其進(jìn)行規(guī)劃。理由很簡單,錯誤往往會因?yàn)槲粗脑虺銎洳灰獾爻霈F(xiàn),而且您也無法預(yù)測它出現(xiàn)的時(shí)間和位置。

  可以想象,在利用大量嵌入式軟件和硬件進(jìn)行片上系統(tǒng) () 設(shè)計(jì)時(shí),總有些錯誤會隱藏在設(shè)計(jì)的某個(gè)未知角落里,無論是在硬件中還是在軟件中,而且這些錯誤可能只有在長期執(zhí)行后方能被發(fā)現(xiàn)。在一個(gè)錯誤被發(fā)現(xiàn)之前,很有可能已歷經(jīng)了數(shù)十億的時(shí)鐘周期。

  更讓人沮喪的是,調(diào)試具有隨機(jī)性,這就要求在發(fā)現(xiàn)錯誤之前要不斷地重復(fù)運(yùn)行。如果錯誤不具備確定性,也就是說,其可能不會在后續(xù)運(yùn)行中重復(fù)出現(xiàn),那么尋找錯誤的過程將會是一場噩夢。

  關(guān)鍵未知因素

  如果將其應(yīng)用于數(shù)億門級的設(shè)計(jì),而這些設(shè)計(jì)需要經(jīng)過數(shù)十億個(gè)長序列驗(yàn)證周期的調(diào)試,那么可能存在三個(gè)關(guān)鍵未知因素:地點(diǎn)、時(shí)間和事由。這三個(gè)因素足以延誤整個(gè)測試計(jì)劃的進(jìn)度,即便該計(jì)劃已經(jīng)過深思熟慮。在一個(gè)競爭激烈的市場中,若一項(xiàng)新產(chǎn)品延期三個(gè)月上市,那么它將造成 33% 的潛在總收益損失。這就足以說明驗(yàn)證解決方案的價(jià)值所在了。這時(shí)我想到了硬件加速仿真。硬件仿真器憑借其極速性能加快執(zhí)行和調(diào)試的速度。事實(shí)上,它們的快速執(zhí)行速度便是它們的設(shè)計(jì)初衷。

  這個(gè)概念很簡單,即對照需要插入待開發(fā)芯片的實(shí)際物理目標(biāo)系統(tǒng)來檢查 DUT。無需再編寫測試矢量或者測試激勵。趕緊在實(shí)際應(yīng)用中全面施行這一流程吧。想必,要在模糊的設(shè)計(jì)區(qū)域里尋找令人厭煩的隱匿錯誤,實(shí)際應(yīng)用比任何軟件測試平臺都更為有效,對吧?

  在線調(diào)試問題

  結(jié)果證明,閃閃發(fā)光的并非都是金子。盡管它的功能非常誘人,但要在 ICE 模式中調(diào)試芯片設(shè)計(jì)會顯得過于繁瑣而又令人沮喪,究其原因,主要有兩點(diǎn)。第一點(diǎn),硬件仿真器必須要與目標(biāo)系統(tǒng)相連。就此而言,由于硬件仿真器的速度可能比物理目標(biāo)系統(tǒng)慢上三個(gè)數(shù)量級,因此就需要有一個(gè)速度適配器,可以調(diào)解物理目標(biāo)系統(tǒng)較快的時(shí)鐘速度,使之與硬件仿真器的相對較慢的速度相匹配?;旧?,該適配器是一個(gè)先進(jìn)先出 (FIFO) 的寄存器,它通常會通過犧牲部分功能和準(zhǔn)確性來換取性能。同時(shí),PCIe 或以太網(wǎng)等高速協(xié)議也將會減少,以應(yīng)對 FIFO 內(nèi)在能力的局限性。

  適配器和連接電纜增加了設(shè)置的物理關(guān)聯(lián)性和弱點(diǎn),同時(shí)也對系統(tǒng)的可靠性產(chǎn)生了不利影響。此外,設(shè)置僅局限于每個(gè)協(xié)議一個(gè)測試實(shí)例,且不允許存在特殊用例測試或任何“假設(shè)”分析。最后,如果沒有人在現(xiàn)場提供幫助,將仿真器插入和拔出目標(biāo)系統(tǒng),則無法遠(yuǎn)程訪問ICE 模式。

  第二點(diǎn),也是最容易被人低估的一個(gè)缺點(diǎn),便是它缺少確定性行為。這一特性會使目標(biāo)系統(tǒng)用以驗(yàn)證設(shè)計(jì)的方法變得折中,還會延長在ICE模式下發(fā)現(xiàn)錯誤的時(shí)間。在 ICE 模式中,使用硬件仿真器追蹤 DUT 的錯誤,需要在特定事件被觸發(fā)后,以最高速捕捉設(shè)計(jì)中每個(gè)寄存器的行為。在基于定制硅的硬件仿真器中,無需編譯連接程序,就可將每個(gè)設(shè)計(jì)寄存器連接到追蹤存儲器中。在運(yùn)行時(shí)間方面,驗(yàn)證工程師可進(jìn)行權(quán)衡折衷,即使用追蹤時(shí)鐘周期的數(shù)量來交換需要追蹤的設(shè)計(jì)寄存器的數(shù)量。

  在商用的、基于的硬件仿真器中,只有少量的設(shè)計(jì)寄存器可以通過編譯程序連接到追蹤存儲器上。增設(shè)或者更換追蹤寄存器就要求重新編譯設(shè)計(jì),同時(shí)大幅減少設(shè)計(jì)/迭代時(shí)間。利用這兩種硬件仿真器,用戶可以通過減少被追蹤的寄存器的數(shù)量來增加追蹤深度,反之則亦然。


  圖 2 追蹤窗口(周期 X 信號)受邏輯分析儀中內(nèi)存容量的限制。

  因此,用戶可以不再為了找到自己感興趣的調(diào)試窗口和轉(zhuǎn)儲正確的波形而進(jìn)行多輪——很可能是數(shù)百次的運(yùn)行。但是真正的問題是,每次運(yùn)行都可能會在不同的時(shí)間點(diǎn)發(fā)現(xiàn)錯誤——相同的錯誤;甚至更糟糕的是,還可能因?yàn)椴豢深A(yù)測的行為而發(fā)現(xiàn)不了任何錯誤。還記得雙向飛碟射擊的例子嗎?

  來看下使用第三方 IP 填充 的例子。屢次測試表明,當(dāng) IP 核單獨(dú)工作時(shí),其能起到作用;但當(dāng)它內(nèi)嵌于 時(shí),卻變得完全無效。利用 ICE 模式對深埋于 DUT 的 IP 進(jìn)行調(diào)試可能會導(dǎo)致驗(yàn)證團(tuán)隊(duì)沒日沒夜地加班。


  圖 3 連續(xù)運(yùn)行時(shí),會在不同的時(shí)間/區(qū)域內(nèi)顯示相同的設(shè)計(jì)錯誤或者根本不顯示任何設(shè)計(jì)錯誤。

  值得高興的是,隨著基于事務(wù)處理的協(xié)同建模技術(shù)的出現(xiàn),硬件仿真領(lǐng)域也發(fā)生了翻天覆地的變化。通過移除物理目標(biāo)系統(tǒng),并使用虛擬測試環(huán)境進(jìn)行代替,所有問題都消失不見了。這種虛擬測試環(huán)境是通過 C++/SystemVerilog 從高抽象層次進(jìn)行描述,并通過事務(wù)處理器與 DUT 相連。

  測試平臺可用性

  可以在很短的時(shí)間內(nèi)通過 SystemVerilog 創(chuàng)建高層次測試平臺,這樣不僅符合傳統(tǒng)的 Verilog 的要求而且錯誤也較少。事務(wù)處理器都有現(xiàn)貨可買,無需定制。還有,整個(gè)測試環(huán)境將目標(biāo)鎖定在多媒體、網(wǎng)絡(luò)和存儲等特定的市場應(yīng)用程序上,涵蓋了虛擬測試程序和事務(wù)處理器,而這些都可在 Mentor Graphics 旗下支持其 Veloce2 硬件仿真平臺的 VirtuaLAB 品牌中找到。

  更重要的是,如今的設(shè)計(jì)激勵是具確定性的,因此可以更快完成調(diào)試。事務(wù)處理器可以實(shí)現(xiàn)從HDL軟件仿真到硬件仿真的平穩(wěn)過渡。時(shí)鐘可以停止,也可以進(jìn)行單步調(diào)試;可以進(jìn)行情境“假設(shè)”分析;還可以對特殊用例進(jìn)行建模。如今,工程師可以通過編寫寄存器傳輸級 (RTL) 代碼來設(shè)計(jì)芯片,而不需要利用實(shí)驗(yàn)室設(shè)備來測試他們的設(shè)計(jì)。目前,遠(yuǎn)程訪問已經(jīng)實(shí)現(xiàn)了而且會越來越普及。

  將 SystemVerilog 斷言與事務(wù)處理器結(jié)合,驗(yàn)證工程師們可以利用無限的調(diào)試功能監(jiān)控他們的設(shè)計(jì),并且不會降低速度。如此,工程師們就可以盡情設(shè)計(jì),不再會受到內(nèi)存空間或者時(shí)間的限制,然后盡快消除錯誤。自此以后,工程師與視野受到限制的雙向飛碟射擊比賽的選手將無任何共通之處。



關(guān)鍵詞: SoC FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉