《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 如何簡(jiǎn)化FPGA測(cè)試和調(diào)試,?

如何簡(jiǎn)化FPGA測(cè)試和調(diào)試,?

2015-10-15
關(guān)鍵詞: FPGA 測(cè)試和調(diào)試

  FPGA的設(shè)計(jì)速度,、尺寸和復(fù)雜度明顯增加,,使得整個(gè)設(shè)計(jì)流程中的驗(yàn)證和調(diào)試成為當(dāng)前FPGA系統(tǒng)的關(guān)鍵部分,。獲得FPGA內(nèi)部信號(hào)有限,、FPGA封裝和印刷電路板電氣噪聲,,這一切使得設(shè)計(jì)調(diào)試和檢驗(yàn)變成設(shè)計(jì)周期中最困難的流程,。此外,,幾乎當(dāng)前所有的像CPU、DSP、ASIC等高速芯片的總線(xiàn),,除了提供高速并行總線(xiàn)接口外,,正迅速向高速串行接口的方向發(fā)展。FPGA也不例外,,每一條物理鏈路的速度從600Mbps到高達(dá)10Gbps,,高速I(mǎi)O的測(cè)試和驗(yàn)證更成為傳統(tǒng)專(zhuān)注于FPGA內(nèi)部邏輯設(shè)計(jì)的設(shè)計(jì)人員面臨的巨大挑戰(zhàn)。這些挑戰(zhàn)使設(shè)計(jì)人員會(huì)把絕大部分設(shè)計(jì)周期時(shí)間放在調(diào)試和檢驗(yàn)設(shè)計(jì)上,。

36.png

  設(shè)計(jì)階段即應(yīng)考慮測(cè)試問(wèn)題
  在FPGA系統(tǒng)設(shè)計(jì)完成前,,有兩個(gè)不同的階段:設(shè)計(jì)階段、調(diào)試和檢驗(yàn)階段,。設(shè)計(jì)階段的主要任務(wù)是輸入,、仿真和實(shí)現(xiàn);調(diào)試和檢驗(yàn)階段的主要任務(wù)是檢驗(yàn)設(shè)計(jì),校正發(fā)現(xiàn)的任何錯(cuò)誤,。
  在設(shè)計(jì)階段不僅要設(shè)計(jì),,而且要使用仿真工具開(kāi)始調(diào)試。實(shí)踐證明,,正確使用仿真技術(shù)為找到和校正設(shè)計(jì)錯(cuò)誤提供了一條有效的途徑,。但是,不應(yīng)依賴(lài)仿真作為調(diào)試FPGA設(shè)計(jì)的唯一工具,,有許多問(wèn)題僅僅通過(guò)仿真是無(wú)能為力的,。
  此外,還需要提前考慮調(diào)試和檢驗(yàn)階段,,規(guī)劃怎樣在線(xiàn)快速調(diào)試FPGA,,這可以定義整體調(diào)試方法,幫助識(shí)別要求的任何測(cè)試測(cè)量工具,,確定選擇的調(diào)試方法對(duì)電路板設(shè)計(jì)帶來(lái)的影響,。針對(duì)可能選用的FPGA存在的高速總線(xiàn),除了考慮邏輯時(shí)序的測(cè)試和驗(yàn)證外,,應(yīng)該充分考慮后面可能面臨的信號(hào)完整性測(cè)試和分析難題,。
  在調(diào)試階段,必需找到仿真沒(méi)有找到的棘手問(wèn)題,。怎樣以省時(shí)省力的方式完成這一工作是一個(gè)挑戰(zhàn),。
  嵌入式邏輯分析儀只能進(jìn)行狀態(tài)分析
  在設(shè)計(jì)階段需要作出的關(guān)鍵選擇是使用哪種FPGA調(diào)試方法。在理想情況下,,希望有一種方法可以移植到所有FPGA設(shè)計(jì)中,,能夠洞察FPGA內(nèi)部運(yùn)行和系統(tǒng)運(yùn)行過(guò)程,為確定和分析棘手的問(wèn)題提供相應(yīng)的處理能力,?;驹诰€(xiàn)FPGA調(diào)試方法有兩種:使用嵌入式邏輯分析儀以及使用外部邏輯分析儀。選擇使用哪種方法取決于項(xiàng)目的調(diào)試需求。
  主要FPGA廠商針對(duì)器件的在線(xiàn)調(diào)試都提供了嵌入式邏輯分析儀內(nèi)核,。這些知識(shí)產(chǎn)權(quán)模塊插入FPGA設(shè)計(jì)中,,同時(shí)提供觸發(fā)功能和存儲(chǔ)功能。它們使用FPGA邏輯資源實(shí)現(xiàn)觸發(fā)電路,,使用FPGA存儲(chǔ)模塊實(shí)現(xiàn)存儲(chǔ)功能,。它們使用JTAG配置內(nèi)核操作,并用來(lái)把捕獲的數(shù)據(jù)傳送到PC上進(jìn)行查看,。由于嵌入式邏輯分析儀使用內(nèi)部FPGA資源,,因此其通常用于大型FPGA,這些大型FPGA可以更好地消化插入內(nèi)核帶來(lái)的開(kāi)銷(xiāo),。一般來(lái)說(shuō),,用戶(hù)希望內(nèi)核占用的FPGA邏輯資源不超過(guò)可用資源的5%。與任何調(diào)試方法一樣,,還要知道這種方法存在的部分矛盾,。
  在針腳與內(nèi)部資源上,嵌入邏輯分析儀內(nèi)核不使用額外的測(cè)試針腳,,因?yàn)樗ㄟ^(guò)現(xiàn)有的JTAG針腳訪(fǎng)問(wèn)內(nèi)核,。這意昧著即使設(shè)計(jì)受到FPGA針腳限制,您也可以使用這種方法,。矛盾在于,,它使用的內(nèi)部FPGA邏輯資源和存儲(chǔ)模塊可以用來(lái)實(shí)現(xiàn)設(shè)計(jì)。此外,,由于使用片內(nèi)內(nèi)存存儲(chǔ)捕獲的數(shù)據(jù),,因此內(nèi)存深度一般相對(duì)較淺。
  嵌入式邏輯分析儀核心的探測(cè)非常簡(jiǎn)單,。它使用現(xiàn)有的JTAG針腳,因此不必?fù)?dān)心怎樣把外部邏輯分析儀連接到系統(tǒng)上,。矛盾在于,,盡管嵌入式邏輯分析儀可以查看FPGA操作,但沒(méi)有一種方式把這些信息與電路板級(jí)或系統(tǒng)級(jí)信息時(shí)間關(guān)聯(lián)起來(lái),。而把FPGA內(nèi)部的信號(hào)與FPGA外部的信號(hào)關(guān)聯(lián)起來(lái)對(duì)解決最棘手的調(diào)試挑戰(zhàn)至關(guān)重要,。在分析方法上,嵌入式邏輯分析儀只能進(jìn)行狀態(tài)分析,。
  從成本與靈活性上分析,,大多數(shù)FPGA廠商提供了嵌入式邏輯分析儀內(nèi)核,而其價(jià)格要低于全功能外部邏輯分析儀,。雖然用戶(hù)希望更多的功能,,但嵌入式邏輯分析儀內(nèi)核的功能無(wú)論通用性、分析方式、觸發(fā)能力,,還是存儲(chǔ)和分析能力都弱于全功能外部邏輯分析儀,,而用戶(hù)通常需要這些功能,來(lái)捕獲和分析棘手的調(diào)試挑戰(zhàn),。例如,,嵌入式邏輯分析儀只能在狀態(tài)模式下操作,它們捕獲與FPGA設(shè)計(jì)中已有的指定時(shí)鐘同步的數(shù)據(jù),,因此不能提供精確的信號(hào)定時(shí)關(guān)系,。

  外部邏輯分析儀可解決更加廣泛的問(wèn)題
  由于嵌入式邏輯分析儀方法存在的部分限制,許多FPGA設(shè)計(jì)人員已經(jīng)采用外部邏輯分析儀方法,,來(lái)利用FPGA的靈活性和外部邏輯分析儀的處理能力,,如泰克TLA系列邏輯分析儀。
  在這種方法中,,感興趣的內(nèi)部信號(hào)路由到FPGA沒(méi)有使用的針腳上,,然后連接到邏輯分析儀上,這種方法提供了非常深的內(nèi)存,,適合調(diào)試那種出現(xiàn)故障和實(shí)際導(dǎo)致該故障的原因在時(shí)間上相距很遠(yuǎn)的問(wèn)題;對(duì)于需要采集大量數(shù)據(jù)進(jìn)行后期分析的設(shè)計(jì)人員也非常必要,。另外它還可以把內(nèi)部FPGA信號(hào)與電路系統(tǒng)中的其他活動(dòng)時(shí)間關(guān)聯(lián)起來(lái)。
  與嵌入式邏輯分析儀方法一樣,,也需要平衡許多矛盾,。在針腳與內(nèi)部資源上,外部邏輯分析儀方法采用非常少的邏輯資源,,不使用FPGA內(nèi)存資源,。它釋放了這些資源,來(lái)實(shí)現(xiàn)所需功能?,F(xiàn)在的矛盾在于,,必需增加專(zhuān)用于調(diào)試的部分針腳數(shù)量,而很明顯,,設(shè)計(jì)要使用這些針腳,。
  在探測(cè)與工作模式問(wèn)題上,外部邏輯分析儀探測(cè)要比嵌入式邏輯分析儀方法要求的探測(cè)復(fù)雜一些,。必需確定怎樣使用邏輯分析儀探頭探測(cè)FPGA內(nèi)部信號(hào),,而不能使用電路板上已有的JTAG連接器。最簡(jiǎn)便的方式是在電路板中增加一個(gè)測(cè)試連接器,,這可以簡(jiǎn)便地把FPGA信號(hào)與系統(tǒng)中的其他信號(hào)關(guān)聯(lián)起來(lái),。
  在成本與靈活性問(wèn)題上,盡管外部邏輯分析儀的購(gòu)買(mǎi)價(jià)格確實(shí)要高于嵌入式邏輯分析儀,,但使用外部邏輯分析儀可以解決更加廣泛的問(wèn)題,。邏輯分析儀不僅可以用于FPGA調(diào)試,,還可以用來(lái)解決其他數(shù)字設(shè)計(jì)挑戰(zhàn),它被公認(rèn)為進(jìn)行通用數(shù)字系統(tǒng)硬件調(diào)試的最佳工具,。外部邏輯分析儀能夠?qū)崿F(xiàn)更加靈活的采集模式和觸發(fā)功能,。通過(guò)外部邏輯分析儀,可以設(shè)置最多16個(gè)不同的觸發(fā)狀態(tài)(每一個(gè)狀態(tài)含高達(dá)16個(gè)條件判斷分支),,每一個(gè)通道提供256M的內(nèi)存,,并且可以在定時(shí)分析模式下以高達(dá)125ps的分辨率(8GHz采樣)捕獲數(shù)據(jù)。
  選擇合適的FPGA調(diào)試方法
  這兩種方法都可以使用,,采用哪種方法要視具體情況而定,。挑戰(zhàn)在于確定哪種方法更適合您的設(shè)計(jì)。
  用戶(hù)可以問(wèn)自己預(yù)計(jì)有哪些問(wèn)題需要解決?如果您認(rèn)為問(wèn)題僅限于FPGA內(nèi)部的功能性,,那么使用嵌入式邏輯分析儀可以提供要求的所有調(diào)試功能,。但是,如果預(yù)計(jì)有更多的調(diào)試問(wèn)題,,要求檢驗(yàn)定時(shí)余量,、把內(nèi)部FPGA活動(dòng)與電路板上的其他活動(dòng)關(guān)聯(lián)起來(lái),或要求更強(qiáng)大的觸發(fā)功能,,那么使用外部邏輯分析儀更適合滿(mǎn)足調(diào)試需求,。
  當(dāng)FPGA芯片針腳存在超過(guò)200M的高速總線(xiàn),例如集成內(nèi)存控制器的DDRI,、DDRII內(nèi)存總線(xiàn),,以及集成高SerDes的高速串行IO總線(xiàn),信號(hào)完整性測(cè)試是保證設(shè)計(jì)成功的基礎(chǔ),。
  用戶(hù)可能問(wèn)除狀態(tài)數(shù)據(jù)外,,是否需要考察快速定時(shí)信息?外部邏輯分析儀允許以高達(dá)125ps的分辨率(8GS/s采樣)查看FPGA信號(hào)詳細(xì)的定時(shí)關(guān)系,這有助于檢驗(yàn)設(shè)計(jì)中實(shí)際發(fā)生的事件,,檢驗(yàn)設(shè)計(jì)的定時(shí)余量,。嵌入式邏輯分析儀只能捕獲與FPGA中已有的指定時(shí)鐘同步的數(shù)據(jù)。
  需要捕獲多深的數(shù)據(jù)?外部邏輯分析儀提供的采集內(nèi)存更深,。一般在嵌入式邏輯分析儀中,,最大取樣深度設(shè)為128Kb,這一數(shù)字受到器件限制,。而在外部邏輯分析儀中,可以捕獲最多256Mb樣點(diǎn),。這有助于查看和分析更多的問(wèn)題及潛在原因,,從而縮短調(diào)試時(shí)間。
  設(shè)計(jì)中更多地受限于針腳還是受限于資源?使用嵌入式邏輯分析儀不要求任何額外的輸出針腳,,但必須使用內(nèi)部FPGA資源,,實(shí)現(xiàn)邏輯分析儀功能,。使用外部邏輯分析儀要求使用額外的輸出針腳,但使用內(nèi)部FPGA資源的需求達(dá)到最小(或消除了這種需求),。

本站內(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ò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected]