《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > FPGA調(diào)試技術(shù)加快硅前驗(yàn)證

FPGA調(diào)試技術(shù)加快硅前驗(yàn)證

2013-12-16
關(guān)鍵詞: FPGA 硅前驗(yàn)證

隨著基于FPGA進(jìn)行原型設(shè)計(jì)的復(fù)雜性不斷增加,,市場(chǎng)對(duì)更好調(diào)試技術(shù)的需求也日益增加。FPGA原型設(shè)計(jì)可用于驗(yàn)證,、早期軟件開(kāi)發(fā),、概念證明等,因此變得非常重要。它的主要職責(zé)仍然是執(zhí)行這些任務(wù),,而不是試圖找出因原型構(gòu)建錯(cuò)誤而造成的問(wèn)題,。

根據(jù)可用的設(shè)計(jì)或現(xiàn)有任務(wù)類(lèi)型,可能需要不同的調(diào)試技術(shù),。采用合適的調(diào)試技術(shù)還可以縮短FPGA設(shè)計(jì)的驗(yàn)證周期,。

本文描述了有關(guān)FPGA的一些調(diào)試技術(shù),采用這些技術(shù)可以加快驗(yàn)證過(guò)程,,文章同時(shí)也指出了它們的局限性,。這些調(diào)試技術(shù)可以用于硅前驗(yàn)證過(guò)程中所面臨的各種挑戰(zhàn)或問(wèn)題,后面我們將會(huì)討論,。

RTL仿真

在RTL還沒(méi)有完全穩(wěn)定時(shí),,原型設(shè)計(jì)的一個(gè)主要需求是訪問(wèn)和監(jiān)控內(nèi)部信號(hào)的活動(dòng),這有助于找到造成問(wèn)題的根源,,無(wú)論問(wèn)題是由于原型錯(cuò)誤還是RTL本身的一些異常造成的,。

測(cè)試時(shí),RTL仿真需要在模塊周?chē)⒁粋€(gè)完整的原型驗(yàn)證仿真環(huán)境,,能夠給予激勵(lì),,滿足內(nèi)存要求(如果有的話),監(jiān)控設(shè)計(jì)錯(cuò)誤等,。

圖1顯示了此類(lèi)RTL仿真設(shè)計(jì)模型。


圖1:RTL仿真模型
圖字:要求 驗(yàn)證計(jì)劃 原型RTL仿真 原型RTL模型 執(zhí)行板上工作 找到Bug,? 去除bug執(zhí)行所有工作,?

假設(shè)/優(yōu)勢(shì)

● 此調(diào)試方法非常適用,而且在處理設(shè)計(jì)規(guī)模問(wèn)題時(shí),,可以進(jìn)行調(diào)整,,目前驗(yàn)證工具可以輕松地處理設(shè)計(jì)規(guī)模問(wèn)題,但要求仿真時(shí)間不能很長(zhǎng),,否則會(huì)使這種工作幾乎沒(méi)有ROI(投資回報(bào)率),,而要配備復(fù)雜的測(cè)試臺(tái)。

● 如果是一個(gè)已經(jīng)獲得驗(yàn)證的設(shè)計(jì),,它能重新使用現(xiàn)有的驗(yàn)證測(cè)試平臺(tái),,這樣就不需要從頭開(kāi)始構(gòu)建,可以節(jié)省時(shí)間和精力,。

● 工作重點(diǎn)應(yīng)該側(cè)重于調(diào)整現(xiàn)有測(cè)試平臺(tái),,以便使其不需要任何大的更改,就能夠運(yùn)行驗(yàn)證測(cè)試套件,。

● 可以縮小問(wèn)題,,選擇只運(yùn)行失敗仿真,減少對(duì)仿真的依賴,檢查可能引起問(wèn)題的信號(hào)的仿真波形,。

局限性

● 如果是大規(guī)模設(shè)計(jì),,幾乎不可能查看設(shè)計(jì)中的每個(gè)信號(hào)、監(jiān)控其行為,。

● 采用這種方法的一個(gè)前提條件是,,驗(yàn)證工程師或軟件工程師應(yīng)該對(duì)設(shè)計(jì)和內(nèi)部信號(hào)具有良好的洞察。

● 此方法比較費(fèi)時(shí),,而且需要軟件開(kāi)發(fā)人員付出額外的努力,。

● 在設(shè)計(jì)被分區(qū)的情況下,RTL仿真可能沒(méi)有幫助,。假設(shè)我們主要試圖“再利用”頂層驗(yàn)證環(huán)境,,并使其輕松為“受測(cè)設(shè)備原型”工作,要?jiǎng)?chuàng)建更多的層次和設(shè)計(jì)分區(qū),,則會(huì)需要進(jìn)行額外的工作,,以修改安裝在獨(dú)立驗(yàn)證環(huán)境中的內(nèi)部信號(hào)探針。

● 調(diào)試涉及復(fù)雜處理的大規(guī)??焖倭鬏敵鰯?shù)據(jù)設(shè)計(jì)可能具有挑戰(zhàn)性,,因?yàn)檫@個(gè)問(wèn)題可能在設(shè)計(jì)層次的各個(gè)層級(jí)存在。

在復(fù)雜的設(shè)計(jì)中,,必須考慮一些更好,、更快的調(diào)試方式,我們將在后面的章節(jié)中討論,。

使用邏輯分析儀的硬件調(diào)試

當(dāng)調(diào)試總線位于FPGA的外部引腳上,,并通過(guò)邏輯分析儀觀察它們時(shí),硬件調(diào)試涉及內(nèi)部信號(hào)的呈現(xiàn),。這種調(diào)試技術(shù)對(duì)小型邏輯設(shè)計(jì)真的非常有幫助,,因?yàn)轵?yàn)證工程師也可以使用邏輯分析儀觀察到內(nèi)部設(shè)計(jì)信號(hào),從而使調(diào)試更加方便快捷,。

圖2顯示了此調(diào)試模型,。


圖2:使用邏輯分析儀的硬件調(diào)試
圖字:邏輯分析儀 邏輯設(shè)計(jì)

在這里,可編程的邏輯設(shè)計(jì)在目標(biāo)系統(tǒng)中高速運(yùn)行,,可以在真實(shí)環(huán)境下查看邏輯行為,。

假設(shè)/優(yōu)勢(shì)

● 如無(wú)法利用驗(yàn)證測(cè)試平臺(tái)仿真環(huán)境,可以采用這種方法進(jìn)行調(diào)試,,因?yàn)閺念^開(kāi)始建立驗(yàn)證測(cè)試平臺(tái)的仿真環(huán)境可能既繁瑣又費(fèi)時(shí),。

● 此方法可以加快調(diào)試過(guò)程,因?yàn)樗跪?yàn)證工程師能查看內(nèi)部設(shè)計(jì)信號(hào)的活動(dòng),。

● 此方法提供了一個(gè)進(jìn)入運(yùn)行設(shè)備的窗口,,不需要執(zhí)行任何額外的軟件任務(wù)。

● 由于所有驗(yàn)證情況都在FPGA板上執(zhí)行,因此這種方法可以用于設(shè)計(jì),,否則一般需要相當(dāng)長(zhǎng)的仿真時(shí)間,。

局限性

● 設(shè)計(jì)人員需要手工調(diào)試設(shè)計(jì),每次都需要手工編輯進(jìn)行重復(fù)調(diào)試,。調(diào)試需要內(nèi)部節(jié)點(diǎn),,沒(méi)有在設(shè)計(jì)頂層就必須將它們路由到頂層。

● 電路板上的可用引腳數(shù)量制約著探針數(shù)量,。

● 此方法需要在邏輯分析儀查看器中輸入信號(hào)名稱,,以便跟蹤所顯示的設(shè)計(jì)信號(hào),因而變得很繁瑣,。

● 設(shè)計(jì)中的路由探針可能會(huì)導(dǎo)致設(shè)備運(yùn)行或定時(shí)問(wèn)題,。

因此,用邏輯分析儀進(jìn)行調(diào)試會(huì)非常耗時(shí),,喪失活力,,不能用于調(diào)試復(fù)雜的設(shè)計(jì)。

插入板上調(diào)試邏輯

具有復(fù)雜邏輯實(shí)施的設(shè)計(jì)通常需要實(shí)時(shí)調(diào)試功能,。這些都是更深入地洞察設(shè)計(jì)所必需的,,無(wú)需建立復(fù)雜的測(cè)試平臺(tái)架構(gòu)或?qū)嵤┩獠坑布?/p>

a) 插入調(diào)試邏輯以及基于FPGA的設(shè)計(jì)只需在初始時(shí)付出一些一次性的努力,因而可以節(jié)省調(diào)試時(shí)間和原本很大的精力,。這將涉及編寫(xiě)驅(qū)動(dòng)的綜合邏輯,,監(jiān)控可以與設(shè)計(jì)本身集成、并可以移植到FPGA的IP,。圖3顯示了使用板上調(diào)試邏輯的調(diào)試模型,。


圖3:使用板上邏輯的調(diào)試模型
圖字:AHB,IPS通用界面 驅(qū)動(dòng)IP 測(cè)試中的模塊 監(jiān)控IP

另外,,此板上邏輯可以使存儲(chǔ)器映射,以便通過(guò)調(diào)試器提取結(jié)果或在運(yùn)行中驅(qū)動(dòng)輸入,。

b) 可以采用另一種方法讀取調(diào)試信號(hào)--使它們的存儲(chǔ)器映射,。然后,可以使用調(diào)試器讀出這些值或通過(guò)CPU將這些值與這些信號(hào)的預(yù)測(cè)值進(jìn)行比較,。如果從設(shè)計(jì)輸 出數(shù)據(jù)出現(xiàn)的速度比讀出的速度更快,,則可以實(shí)施FIFO。輸入數(shù)據(jù)能以更快的速率存儲(chǔ),,以更低的調(diào)試器時(shí)鐘頻率讀出,。考慮到這兩個(gè)時(shí)鐘的頻率,,可以確定 FIFO的深度,。

假設(shè)/優(yōu)勢(shì)

● 墊或GPIO消除可能因外部連接所引起的問(wèn)題,因而不需要從外部驅(qū)動(dòng)激勵(lì)。

● 頻率沒(méi)有被外部驅(qū)動(dòng)頻率限制,。

● 驅(qū)動(dòng)激勵(lì)和監(jiān)控結(jié)果是實(shí)時(shí)的,,使調(diào)試速度更快。

● 顯示器完全不需要獲得外部引腳上的節(jié)點(diǎn),,因?yàn)榭梢詮膬?nèi)部檢查它們,,使用那些存儲(chǔ)器被映射的寄存器標(biāo)記錯(cuò)誤。

● 不需要位文件生成任何額外的循環(huán)來(lái)增加調(diào)試總線信號(hào),。

局限性

● 驅(qū)動(dòng)器和顯示器需要是可綜合的,,因此可能無(wú)法在驗(yàn)證測(cè)試平臺(tái)重新使用它們。

● 驅(qū)動(dòng)器和顯示器所使用的邏輯可能會(huì)導(dǎo)致過(guò)度利用FPGA資源,。

● 采用此方法可能出現(xiàn)以下情況:如果其中任何一個(gè)有內(nèi)存要求,,而且超過(guò)了可用的FPGA資源,就不能實(shí)施驅(qū)動(dòng)器和監(jiān)視器,。

● 添加額外的邏輯(如驅(qū)動(dòng)器或監(jiān)視器)可能導(dǎo)致難以滿足設(shè)計(jì)所需的時(shí)序要求,。

實(shí)時(shí)調(diào)試工具

這些調(diào)試工具不需要在板的頂層提取內(nèi)部設(shè)計(jì)信號(hào),并提供信號(hào)探測(cè)功能,,以及實(shí)時(shí)調(diào)試,。

在此類(lèi)別中有多種工具,可用于實(shí)時(shí)調(diào)試設(shè)備,。選擇合適工具的最佳方式將取決于設(shè)計(jì)的復(fù)雜性和功能以及所使用的FPGA技 術(shù),。這些工具在設(shè)計(jì)中用于插入探針,以便轉(zhuǎn)儲(chǔ)數(shù)據(jù),,并可控制啟動(dòng)數(shù)據(jù)存儲(chǔ)的特定觸發(fā)器,。設(shè)計(jì)得到檢測(cè)后,通過(guò)綜合,、布局,、布線在某個(gè)設(shè)備上實(shí)施,這樣,,工 具提供的GUI界面可以用來(lái)檢查結(jié)果,。使用這些工具可觀察到設(shè)計(jì)層次中的任何層級(jí),因而不需要為了在設(shè)計(jì)頂層獲得它們而執(zhí)行額外任務(wù),。

這樣的工具很少利用FPGA自身資源,,像板上存儲(chǔ)器,用于儲(chǔ)存數(shù)據(jù),,而且它們不需要任何外部硬件,。圖4顯示了此調(diào)試方法。


圖4:使用板上資源的調(diào)試工具
圖字:將波形從電路板中倒出,,進(jìn)行調(diào)試 信號(hào)探測(cè) 板上存儲(chǔ)器 邏輯設(shè)計(jì)

但這類(lèi)工具所面臨的問(wèn)題是:插裝探針后,,設(shè)計(jì)在工作頻率和路由擁塞方面會(huì)有不可測(cè)的操作,。

當(dāng)然還有一些其他工具,也具有實(shí)時(shí)功能,,可靈活配置運(yùn)行觸發(fā)器,。這些工具都配有相關(guān)硬件,因而提供必要的數(shù)據(jù)儲(chǔ)存,,不使用任何FPGA資源,。圖5顯示了這種調(diào)試方法。


圖5:使用外部硬件的調(diào)試工具
圖字:信號(hào)探測(cè) 將波形從電路板中倒出,,進(jìn)行調(diào)試 外部硬件(特定工具) 邏輯設(shè)計(jì)

假設(shè)/優(yōu)勢(shì)

● 對(duì)于I/O數(shù)量相對(duì)較大的設(shè)計(jì)可以采用此調(diào)試方法,,因?yàn)樗恍枰陔娐钒宓捻攲犹崛?nèi)部信號(hào)。

● 此方法可以用于設(shè)計(jì)仿真良好,、但一旦集成到FPGA中,、就不顯示預(yù)期行為的情況。同樣,,調(diào)試這些問(wèn)題需要不僅提供實(shí)時(shí)調(diào)試,,而且還有信號(hào)探測(cè)功能的工具。

● 這些工具使調(diào)試過(guò)程變得相對(duì)容易,,因?yàn)樗鼈兺ǔ⒉ㄐ?數(shù)據(jù)轉(zhuǎn)儲(chǔ)為使用最常用的仿真工具可以打開(kāi)的格式,。

● 這樣的調(diào)試工具還能儲(chǔ)存在自己的相關(guān)存儲(chǔ)器中捕獲的波形,它消耗FPGA板的資源,,因而通常不用限制設(shè)計(jì),。

局限性

● 必需安裝外部硬件和軟件。

● 調(diào)試節(jié)點(diǎn)有數(shù)量限制,。

● 設(shè)計(jì)層次的可見(jiàn)性取決于用于儲(chǔ)存轉(zhuǎn)儲(chǔ)數(shù)據(jù)的存儲(chǔ)器,。

● 可獲得的頻率降低。

解決方法之一是:采用來(lái)自一個(gè)特定分層體或模塊的插裝信號(hào)創(chuàng)建同步build,,這樣,,可以采用調(diào)試模塊或塊的信號(hào)在比特流上運(yùn)行一組測(cè)試。在執(zhí)行階段遇到問(wèn)題后,,這肯定會(huì)節(jié)省創(chuàng)建build的時(shí)間,。

本文小結(jié)

很顯然,現(xiàn)在還沒(méi)有出現(xiàn)公認(rèn)的通用調(diào)試技術(shù),,而且沒(méi)有適合所有設(shè)計(jì)驗(yàn)證的調(diào)試技術(shù)。不同的調(diào)試技術(shù)有不同的局限性和限制,,但是,,如果選擇得當(dāng),這些調(diào)試工具/技術(shù)真的可以有助于減少調(diào)試工作,,縮短調(diào)試周期,。

縮短調(diào)試時(shí)間可能成為加快硅前驗(yàn)證的一個(gè)偉大的里程碑,。加快硅前驗(yàn)證是首要要求,這樣才能滿足上市時(shí)間需求,,能夠推出第一個(gè)全功能硅,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。