【導(dǎo)讀】設(shè)計人員選擇具有優(yōu)秀調(diào)試能力的FPGA器件,可以縮短開發(fā)周期并降低成本,同時顯著加快上市速度。FPGA和SoC設(shè)計人員要克服許多挑戰(zhàn),才可以把產(chǎn)品投入生產(chǎn)。
一般說來,他們首先要為自己的設(shè)計評估合適器件;然后,使用硬件描述語言(HDL)設(shè)計,布局布線器件,最后,在投入生產(chǎn)之前,還要對整個FPGA進(jìn)行調(diào)試。
對于許多設(shè)計,特別是工業(yè)和嵌入式市場的設(shè)計來說,可以選擇的FPGA實在多不勝數(shù)。在大多數(shù)情況下,決定選擇哪家FPGA供應(yīng)商取決于其相關(guān)的軟件開發(fā)經(jīng)驗。雖然軟件開發(fā)經(jīng)驗也應(yīng)該是考慮因素,但是,更重要的因素應(yīng)該是調(diào)試能力及為加速生產(chǎn)提供的支持。目前,阿爾特拉(Altera)、萊迪思(Lattice)、美高森美(Microsemi)和賽靈思(Xilinx)等供應(yīng)商都提供許多FPGA調(diào)試工具,但是,設(shè)計人員對未來的FPGA設(shè)計策略進(jìn)行評估時,應(yīng)該考慮采用一種更智能的調(diào)試工具。
基礎(chǔ)調(diào)試 – 邏輯分析儀
每個主要的FPGA供應(yīng)商都提供邏輯分析儀作為調(diào)試工具。這是一種利用內(nèi)部FPGA邏輯單元和嵌入式塊存儲器來實施功能的技術(shù)。設(shè)計人員可以規(guī)定監(jiān)測哪種信號,并設(shè)置觸發(fā)器來告訴邏輯分析儀何時開始采集數(shù)據(jù)。邏輯分析儀設(shè)置好后,設(shè)計人員必須重新按順序運行綜合和布局布線,將功能納入到設(shè)計中。設(shè)計重新編譯和重新編程后,設(shè)計人員便可以開始觀察邏輯分析儀采集的邏輯信號。
需要注意的是,由于這些信號需要采樣,它們采集的并非數(shù)據(jù)的實時性能。邏輯分析儀只能以允許其采集數(shù)據(jù)的速度運行,并將數(shù)據(jù)保存在內(nèi)部存儲器內(nèi)。由于設(shè)計必須重新編譯以插入邏輯分析儀,因此,這一過程實際上可能消除正在尋找的漏洞。雖然這看起來似乎不錯,但是,不了解原問題是什么,意味著后面再執(zhí)行合成和布局布線操作時,問題可能會再次產(chǎn)生和重新出現(xiàn)。
盡管如此,設(shè)計人員能夠根據(jù)觸發(fā)條件來查看信號狀態(tài),這樣做確實可以幫助調(diào)試設(shè)計問題。采用邏輯分析儀是一個不斷迭代的過程。設(shè)計人員查找發(fā)生的問題,進(jìn)行更新,然后對設(shè)計進(jìn)行重新編譯,再審查新的結(jié)果,然后重復(fù)這個過程,直到發(fā)現(xiàn)漏洞。每個迭代和處理每個具體漏洞所需的時間都不同,由于邏輯分析儀的采樣速度,因此不一定可以找到所有問題。
下一代調(diào)試工具
由于邏輯分析儀在調(diào)試方面的限制,業(yè)界設(shè)計了新一代調(diào)試工具,以加快FPGA和板的驗證。有些EDA供應(yīng)商在綜合工具內(nèi)集成了邏輯分析儀功能,縮短了漏洞查找迭代的時間,能夠查看設(shè)計和使觸發(fā)設(shè)置更簡單。設(shè)計人員還可以更改設(shè)計,使其自動映射回到寄存器傳送級(RTL)代碼。為了節(jié)約內(nèi)部FPGA資源,有些EDA工具可以采集多組信號,并將它們多路復(fù)用。在調(diào)試過程初期,我們不知道問題的實際源頭時,這樣做很有幫助。新思科技(Synopsys)在其identify邏輯分析儀和Synplify綜合工具中已經(jīng)實施了這些特點。盡管他們?yōu)檎{(diào)試過程提供了這些改進(jìn),但是,這些方法因需要重新編譯,因而影響原始設(shè)計和減慢信號采集,所以受到限制。
實際上,對工程師有幫助的,除了邏輯分析儀,還有示波器。這種功能允許實時顯示器件內(nèi)部信號。用探頭實時探測FPGA內(nèi)的節(jié)點,強(qiáng)制賦予內(nèi)部信號不同值,觀察對設(shè)計的即時影響,也是十分理想的。此外,探測內(nèi)部存儲器的能力以及SERDES收發(fā)器探測點也是非常有用的。如果能夠提供所有這些能力而不影響FPGA設(shè)計,將顯著簡化調(diào)試過程。
這種方法的一個實例是美高森美Libero SoC軟件中的SmartDebug工具箱,該工具箱與公司的SmartFusion2、IGLOO2和RTG4 FPGA一起使用。這個工具箱使設(shè)計人員能夠調(diào)試FPGA結(jié)構(gòu)、存儲塊和SERDES,就好象它們正在使用示波器一樣。采用這種智能調(diào)試,可以利用內(nèi)置在FPGA結(jié)構(gòu)中的專用探測點,顯著加快和簡化調(diào)試過程。不需要對設(shè)計進(jìn)行重新編譯就可以選擇不同的探測點。增強(qiáng)的調(diào)試特點可訪問任何邏輯元件,使設(shè)計人員能夠?qū)崟r檢查輸入和輸出狀態(tài),不影響用戶的FPGA設(shè)計。這些特點包括:
-現(xiàn)場探頭:允許采用兩個專用探頭,經(jīng)配置用于觀察邏輯元件中任何輸入或輸出的探測點(圖1)。然后,探頭數(shù)據(jù)可發(fā)送到示波器或甚至重新引導(dǎo)回到FPGA結(jié)構(gòu),驅(qū)動內(nèi)部邏輯分析儀。這些探測點是實時動態(tài)的。探測點可以通過軟件在運行中更改,不需要把FPGA重新編譯或重新編程。
-有源探頭:這種特點允許動態(tài)異步讀取或?qū)懭胗|發(fā)器或探測點。這種能力使用戶能夠快速從內(nèi)部觀察邏輯輸出或通過寫入探測點,快速實驗邏輯將受到怎樣的影響??蓪⑷魏螖?shù)量的信號強(qiáng)制賦予到規(guī)定值,正如現(xiàn)場探頭一樣,不需要把FPGA重新編譯或重新編程。
-探頭插入:這用于在設(shè)計中插入其它探頭,將信號輸出到FPGA封裝引腳,以對設(shè)計進(jìn)行評估和調(diào)試。這種特點確實需要增加布局布線,從而在I/O增加信號,但并不一定需要完整的重新編譯。
圖1 現(xiàn)場探頭使用實例(來源:美高森美)
FPGA設(shè)計人員把30%或更多的時間通?;ㄔ谡{(diào)試上。根據(jù)項目的規(guī)模和狀態(tài),甚至需要更多的調(diào)試時間。由于調(diào)試涉及許多迭代周期,可觀察性和可控性有限,經(jīng)常要重新運行布局布線,時序收斂和重新編程,因此調(diào)試是非常痛苦的工作。與僅使用傳統(tǒng)插入邏輯分析儀相比,智能調(diào)試工具使得工程師能夠更快地對他們的FPGA設(shè)計進(jìn)行驗證。這些工具使得設(shè)計人員在整個設(shè)計中可以實時觀察信號和控制信號狀態(tài),顯著提高了調(diào)試速度。
最近,據(jù)一名客戶報告,他們采用內(nèi)部邏輯分析儀花了一周時間來試圖調(diào)試一個問題。但在采用智能調(diào)試工具代替后,工程師僅僅在兩個小時內(nèi)就找出了問題。最終追蹤到,這個問題來自與工程師采用邏輯分析儀時觀察的一個完全不同的設(shè)計模塊。然后工程師利用有源探頭特點強(qiáng)制賦予不同的數(shù)值,確保電路適當(dāng)響應(yīng)的方式,進(jìn)一步改善了設(shè)計。
對FPGA設(shè)計人員來說,增強(qiáng)調(diào)試能力是影響重大。最新的解決方案能夠顯著縮短調(diào)試驗證時間,為FPGA提供無與倫比的可觀察性和可控性。結(jié)果使得,在選擇器件時更重視FPGA調(diào)試能力的設(shè)計人員,可以縮短開發(fā)周期,降低成本,同時顯著加快上市速度。