FPGA測(cè)試解決方案“軟硬兼施”
FPGA已經(jīng)成為當(dāng)今數(shù)字化系統(tǒng)硬件設(shè)計(jì)的核心,全球90%以上的嵌入式系統(tǒng)設(shè)計(jì)工程師正在使用FPGA進(jìn)行著各種各樣的設(shè)計(jì)。FPGA的快速發(fā)展,為測(cè)試廠商帶來了新的機(jī)遇和挑戰(zhàn),針對(duì)FPGA的各種創(chuàng)新測(cè)試技術(shù)和解決方案不斷問世。 基于內(nèi)核FPGA調(diào)試方案應(yīng)運(yùn)而生
安捷倫公司數(shù)字測(cè)試資深技術(shù)/市場(chǎng)工程師 冀衛(wèi)東 為滿足日益復(fù)雜的數(shù)字化系統(tǒng)的設(shè)計(jì)要求,F(xiàn)PGA的密度及復(fù)雜性也在急速增長(zhǎng),越來越多的系統(tǒng)或子系統(tǒng)功能在FPGA內(nèi)部實(shí)現(xiàn),其先進(jìn)的功能和高集成度使FPGA成為極具吸引力的解決方案,進(jìn)而也使得基于內(nèi)核的FPGA測(cè)試方案浮出水面。 仿真不能發(fā)現(xiàn)所有問題 雖然FPGA的功能在不斷增加,但芯片的面積卻是有限的,提供的針腳數(shù)量卻沒有以相同比例提高。由于關(guān)鍵的硬件和軟件的交互工作通常發(fā)生在FPGA的內(nèi)部,使得查看FPGA內(nèi)部信號(hào)的需求不斷提高,而專門為提供這種查看能力可以使用的針腳數(shù)量卻十分有限,這就使得調(diào)試很成問題。
FPGA廠商都提供了仿真工具,仿真對(duì)于ASIC設(shè)計(jì)團(tuán)隊(duì)至關(guān)重要。但隨著設(shè)計(jì)的復(fù)雜程度不斷加深,系統(tǒng)的復(fù)雜性使得系統(tǒng)驗(yàn)證和調(diào)試的時(shí)間在增長(zhǎng),針對(duì)SoC類型的FPGA設(shè)計(jì),這個(gè)步驟占整個(gè)設(shè)計(jì)周期的50%,為了保證測(cè)量的置信度,在線幾秒鐘的運(yùn)行操作,可能會(huì)需要設(shè)計(jì)者幾天甚至幾周的仿真。
仿真能發(fā)現(xiàn)和排除較為明顯的錯(cuò)誤,但不能發(fā)現(xiàn)所有的問題,尤其是:難以預(yù)料的邊緣的情況;難以仿真FPGA與系統(tǒng)中的其他部分的相互配合情況;難以仿真布線所造成的對(duì)信號(hào)完整性的影響所導(dǎo)致的錯(cuò)誤;不能仿真異步的事件;難以達(dá)到100%的代碼覆蓋等等,使得FPGA的設(shè)計(jì)者在仿真和系統(tǒng)原型之間徘徊不前,導(dǎo)致研發(fā)進(jìn)度的推遲。 基于內(nèi)核的FPGA調(diào)試方案 傳統(tǒng)的FPGA測(cè)試方法是將內(nèi)部被測(cè)節(jié)點(diǎn)連到外部管腳,再通過邏輯分析探頭連接到外部的邏輯分析儀的對(duì)應(yīng)通道,根據(jù)被測(cè)信號(hào)的管腳位置和名稱對(duì)邏輯分析通道進(jìn)行命名。這種方法可充分利用邏輯分析儀的強(qiáng)大功能。但也存在著局限性,如1對(duì)1的連接和測(cè)量:每個(gè)FPGA調(diào)試管腳對(duì)應(yīng)一個(gè)內(nèi)部信號(hào)節(jié)點(diǎn);固定的內(nèi)部信號(hào)節(jié)點(diǎn),要改變新的測(cè)量節(jié)點(diǎn),必須重新設(shè)計(jì),不但費(fèi)時(shí)費(fèi)力而且會(huì)由此改變信號(hào)的原有時(shí)序;每次改變被測(cè)信號(hào)都要停下來重新連接儀器,重新定義信號(hào)的管腳位置和名稱,這是非常繁瑣的工作。
FPGA的管腳是寶貴的資源,專用于調(diào)試的管腳通常非常少,一般是幾個(gè)到32個(gè)左右,這個(gè)端口成為路由輸出內(nèi)部信號(hào)進(jìn)行測(cè)量的重要管道。專用于調(diào)試的每個(gè)管腳,只對(duì)應(yīng)內(nèi)部單一的被測(cè)信號(hào)。若要增加或改變被測(cè)的信號(hào),需要改變?cè)O(shè)計(jì),重新合成,重新安排管腳的位置,重新布線,不僅會(huì)消耗大量的時(shí)間,還可能會(huì)改變電路的原有時(shí)序。內(nèi)核輔助調(diào)試為實(shí)現(xiàn)迅速而且深入的測(cè)試提供了一種極具吸引力的方法。
內(nèi)核輔助調(diào)試通過為FPGA內(nèi)置用于測(cè)量的電路,以便更好、更迅速地實(shí)現(xiàn)測(cè)量。已經(jīng)有大量的工程師使用了這種方法,他們?cè)谄瑑?nèi)增加自己設(shè)計(jì)的多路復(fù)用器,以便通過固定數(shù)量的管腳訪問更多的FPGA內(nèi)部信號(hào)。相當(dāng)多的設(shè)計(jì)團(tuán)隊(duì)目前仍在繼續(xù)使用這種方法。盡管這種方法在固定數(shù)量的管腳上提高了信號(hào)的訪問能力,但它在協(xié)助設(shè)置外部?jī)x器方面(如示波器或邏輯分析儀)沒有任何措施。此外,每個(gè)團(tuán)隊(duì)必須設(shè)計(jì)一種方法來控制這個(gè)多路復(fù)用器,這種額外的設(shè)計(jì)工作不但增加了工作量,而且占用了很多內(nèi)部資源,而這些資源本來可以更好地用來設(shè)計(jì)FPGA,而不是用于調(diào)試電路的設(shè)計(jì)。
現(xiàn)在,許多FPGA廠商都提供了商用版的用于芯片上調(diào)試的內(nèi)核,從而大大降低了在FPGA內(nèi)生成這些內(nèi)核的工作量,這些內(nèi)核甚至可以在開發(fā)流程的后期再增加進(jìn)去。FPGA廠商提供的芯片上調(diào)試內(nèi)核采用JTAG作為通信接口,這種內(nèi)核使用FPGA的內(nèi)部資源,構(gòu)建成內(nèi)置的邏輯分析儀(ILA),它進(jìn)行FPGA內(nèi)部信號(hào)的測(cè)量,并把數(shù)據(jù)存儲(chǔ)在FPGA的內(nèi)部存儲(chǔ)器里,通過JTAG通信接口將數(shù)據(jù)送出到調(diào)試軟件如ChipScopePro或Quartus II等進(jìn)行分析,而不占用任何芯片管腳。
使用這種調(diào)試內(nèi)核,在設(shè)計(jì)環(huán)境中選擇要測(cè)量的信號(hào),一般通過netlist來實(shí)現(xiàn)。它是在沒有剩余管腳進(jìn)行調(diào)試的唯一查看方法,測(cè)量數(shù)據(jù)被存儲(chǔ)在寶貴的芯片內(nèi)的存儲(chǔ)器里,且容量受限,為調(diào)試提供的存儲(chǔ)容量限制著測(cè)量的深度。這種內(nèi)核僅提供狀態(tài)分析,不能提供定時(shí)分析。由于設(shè)計(jì)本身在很大程度上占用了芯片內(nèi)部資源和內(nèi)部的存儲(chǔ)器,會(huì)影響FPGA的原有設(shè)計(jì),若調(diào)試之后去掉這個(gè)內(nèi)核,同樣會(huì)改變內(nèi)部電路的時(shí)序,所以盡管占用內(nèi)部資源,很多工程師完成調(diào)試后,寧愿將其留在FPGA內(nèi)部。 軟件仿真和測(cè)試并行不悖
NI中國(guó)市場(chǎng)經(jīng)理 朱君 基于FPGA測(cè)試工具的必要性來自于整個(gè)行業(yè)的趨勢(shì):產(chǎn)品自定義的要求越來越高、上市時(shí)間要越來越短,同時(shí)還需要不斷在產(chǎn)品中增加新的功能。為了達(dá)到這些要求,工程師身上的壓力也越來越大,他們需要更快地開發(fā)產(chǎn)品、增加新功能,并要確保產(chǎn)品質(zhì)量。因此我們看到,以軟件為中心的產(chǎn)品正在成為市場(chǎng)主流,比如最新的iPhone。以軟件為中心的產(chǎn)品讓工程師們可以在不需要重新設(shè)計(jì)硬件的情況下增加新的功能,并且提高自定義的可能性。
基于FPGA的產(chǎn)品就非常順應(yīng)這一大趨勢(shì),工程師們不需要重新設(shè)計(jì)硬件,僅在軟件層面上重新編程并再次發(fā)布到目標(biāo)硬件,即可改變硬件特性。為了實(shí)現(xiàn)這樣的目標(biāo),NI采用的途徑是提供全系列的工具和平臺(tái)來降低用戶學(xué)習(xí)和使用的復(fù)雜性,也就是說用戶只要在NI的平臺(tái)上操作即可充分采用這些商業(yè)技術(shù),并享受它們帶來的優(yōu)勢(shì)?,F(xiàn)在NI的產(chǎn)品應(yīng)用于從系統(tǒng)設(shè)計(jì)、原型到發(fā)布的研發(fā)全過程。
基于FPGA的CompactRIO平臺(tái)是一種為高性能和高可靠性應(yīng)用所專門設(shè)計(jì)的、可重配置的控制和采集系統(tǒng),該平臺(tái)集成了一個(gè)嵌入式實(shí)時(shí)處理器、高性能的FPGA,并具有多種可熱插拔的工業(yè)I/O模塊及內(nèi)置的信號(hào)調(diào)理功能。每一個(gè)I/O模塊都直接連接到FPGA,提供對(duì)于定時(shí)和I/O信號(hào)處理的底層自定義功能。
這一平臺(tái)最大的挑戰(zhàn)在于用戶在使用之前需要掌握專業(yè)的FPGA編程知識(shí)。NI相信隨著FPGA平臺(tái)日益成為行業(yè)的必需,關(guān)鍵問題在于要為工程師簡(jiǎn)化學(xué)習(xí)和使用的復(fù)雜性。NI一直在這方面進(jìn)行大量的工作,用戶通過NI的軟硬件平臺(tái),無須直接掌握FPGA專業(yè)編程技能便可充分利用到FPGA的優(yōu)勢(shì)。
EDA工具的軟件仿真和測(cè)試兩者之間并無沖突。通常在開發(fā)周期的前期階段,設(shè)計(jì)和仿真是產(chǎn)品設(shè)計(jì)過程中的重要環(huán)節(jié)。然后這個(gè)周期進(jìn)入原型階段,工程師們需要從設(shè)計(jì)轉(zhuǎn)到I/O。通常工程師們面對(duì)的挑戰(zhàn)不同,他們?cè)诓煌A段采用的工具也不同。NI的目標(biāo)一直是通過提供同一個(gè)平臺(tái)來彌補(bǔ)以上提到的不同工具間的鴻溝。圖形化編程平臺(tái)LabVIEW本身包括FPGA模塊,可發(fā)布到CompactRIO等原型平臺(tái)上;同時(shí)也可以連接到NI Mulitsim等EDA軟件。 獨(dú)立邏輯分析儀
方案應(yīng)是首選
泰克亞太區(qū)D&M市場(chǎng)開發(fā)經(jīng)理 孫志強(qiáng) 當(dāng)前FPGA的調(diào)試手段主要有:軟件仿真、板級(jí)在線調(diào)試。其中后者又分嵌入式邏輯分析儀方案和外部標(biāo)準(zhǔn)邏輯分析儀方案。
仿真能夠縮短調(diào)試時(shí)間,發(fā)現(xiàn)和排除顯而易見的錯(cuò)誤,但是仿真并不能發(fā)現(xiàn)所有的問題。
嵌入式邏輯分析儀方案又受到以下資源的限制:內(nèi)核尺寸限制;不得不使用片內(nèi)存儲(chǔ)單元存儲(chǔ)采集的數(shù)據(jù);存儲(chǔ)深度極度受限;僅僅支持狀態(tài)分析方式(同步),只能同步采樣:采樣率取決于FPGA的特定時(shí)鐘,不能使用更高的定時(shí)采樣頻率,最終得到的時(shí)序精度不高。
因此,在以下情況,我們推薦使用獨(dú)立的邏輯分析儀方案:1.大量的定時(shí)問題,內(nèi)部節(jié)點(diǎn)信號(hào)和外部板級(jí)信號(hào)關(guān)聯(lián),更強(qiáng)大的觸發(fā)能力。2.需要高分辨率的定時(shí)信息。3.需要捕獲較深的信息儲(chǔ)存。4.引腳考慮。
針對(duì)以高速高性能FPGA應(yīng)用為代表的現(xiàn)代高速串行系統(tǒng)、現(xiàn)代高速數(shù)字系統(tǒng),泰克公司擁有十分完整的測(cè)試測(cè)量方案,從測(cè)試考慮角度不同,Tektronix的FPGA測(cè)試測(cè)量方案可分三類:
第一類,基于邏輯分析儀的實(shí)時(shí)板級(jí)在線調(diào)試方案。相比較嵌入式的調(diào)試方案,該方案不受FPGA調(diào)試內(nèi)核尺寸、內(nèi)存資源限制;同時(shí)支持同步和異步兩種分析方式;可同時(shí)關(guān)聯(lián)FPGA內(nèi)外信號(hào),加快分析調(diào)試速度。
第二類,基于高性能示波器的實(shí)時(shí)信號(hào)完整性測(cè)試方案。
實(shí)時(shí)示波器方案:高達(dá)20GHz帶寬、4通道同時(shí)50GS/s采樣率和高達(dá)200M存儲(chǔ)深度的實(shí)時(shí)示波器。
取樣示波器方案:擁有業(yè)界最低噪聲、高達(dá)70GHz以上帶寬電取樣模塊和50GHzTDR模塊。
第三類,基于混合示波器的混合信號(hào)環(huán)境測(cè)試調(diào)試方案。