《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 基于邏輯分析內(nèi)核的FPGA電路內(nèi)調(diào)試技術(shù)

基于邏輯分析內(nèi)核的FPGA電路內(nèi)調(diào)試技術(shù)

2012-10-12
作者:Joel Woodward
來源:Agilent
關(guān)鍵詞: FPGA 邏輯分析儀

  隨著FPGA融入越來越多的能力,,對(duì)有效調(diào)試工具的需求將變得至關(guān)重要。對(duì)內(nèi)部可視能力的事前周密計(jì)劃將能使研制組采用正確的調(diào)試戰(zhàn)略,,以更快完成他們的設(shè)計(jì)任務(wù),。

  “我知道我的設(shè)計(jì)中存在一個(gè)問題,但我沒有很快找到問題所需要的內(nèi)部可視能力。”由于缺乏足夠的內(nèi)部可視能力,,調(diào)試FPGA基系統(tǒng)可能會(huì)受挫,。使用通常包含整個(gè)系統(tǒng)的較大FPGA時(shí),調(diào)試的可視能力成為很大的問題,。為獲得內(nèi)部可視能力,,設(shè)計(jì)工程師必須把一些引腳專門用作調(diào)試引腳,而不是實(shí)際用于設(shè)計(jì),。哪些工具可用于進(jìn)行內(nèi)部FPGA跡線測(cè)量,?又有哪些技術(shù)可用固定的引腳數(shù)最大化內(nèi)部可視能力?

  FPGA設(shè)計(jì)工程師有兩種進(jìn)行內(nèi)部跡線測(cè)量的方法:

  1. 把結(jié)點(diǎn)路由至引腳,,使用傳統(tǒng)的外部邏輯分析儀測(cè)試,。
  2. 把一個(gè)邏輯分析儀內(nèi)核插入FPGA 設(shè)計(jì),通過JTAG把由內(nèi)部FPGA存儲(chǔ)器保存的跡線捕獲路由輸出,。

  邏輯分析

  FPGA開發(fā)者要在設(shè)計(jì)前期作出重要的判定,,他們有意識(shí)或無(wú)意識(shí)地確定如何能夠調(diào)試他們的設(shè)計(jì)。得到內(nèi)部FPGA可視能力的最常用方法是使用邏輯分析儀,,把感興趣的內(nèi)部結(jié)點(diǎn)路由至分析儀探測(cè)的引腳,。這種方法提供深存儲(chǔ)器跡線,在這里問題成因和其影響可能有很大的時(shí)間間隔,。邏輯分析儀能很好測(cè)量可能逃逸仿真的異步事件,。一個(gè)例子是具有非相關(guān)頻率的兩個(gè)或多個(gè)時(shí)鐘域交互影響。邏輯分析儀提供強(qiáng)大的觸發(fā),,所得到的測(cè)量結(jié)果能建立與其它系統(tǒng)事件的時(shí)間相關(guān),。

  傳統(tǒng)邏輯分析儀提供狀態(tài)和定時(shí)模式,因此可同步或異步地捕獲數(shù)據(jù),。在定時(shí)模式,,設(shè)計(jì)工程師能看到信號(hào)躍變間的關(guān)系,。在狀態(tài)模式,,設(shè)計(jì)工程師有能力觀察相對(duì)于狀態(tài)時(shí)鐘的總線。當(dāng)調(diào)試總線值至關(guān)重要的數(shù)據(jù)路徑時(shí),,狀態(tài)模式是特別有用的,。

  有效的真實(shí)世界測(cè)量需要事先周密的計(jì)劃。使用傳統(tǒng)邏輯分析儀要顧及的主要權(quán)衡是把結(jié)點(diǎn)路由輸出至可探測(cè)的引腳,。傳統(tǒng)邏輯分析儀只能觀察到路由至引腳的信號(hào),。由于還不知道潛在的電路內(nèi)調(diào)試問題,設(shè)計(jì)工程師只能把很少幾個(gè)引腳用于調(diào)試,。這樣少的引腳數(shù)可能不足以提供解決手頭問題的足夠可視能力,,從而延誤項(xiàng)目的完成。

  保持內(nèi)部可視能力,同時(shí)減少專用于調(diào)試引腳數(shù)的一種方法是在設(shè)計(jì)中插入開關(guān)多路轉(zhuǎn)換器(見圖1),。例如當(dāng) FPGA 設(shè)計(jì)進(jìn)入電路時(shí),,可能需要觀察128個(gè)內(nèi)部結(jié)點(diǎn),這就需要一次跟蹤32個(gè)通道,。在這種情況下,,可在FPGA設(shè)計(jì)中實(shí)現(xiàn)多路轉(zhuǎn)換器,在給定時(shí)間內(nèi)路由出32個(gè)結(jié)點(diǎn),。為編程多路轉(zhuǎn)換器,,設(shè)計(jì)工程師可下載新的配置文件,使用JTAG或通過多路轉(zhuǎn)換器上的控制線經(jīng)路由切換各信號(hào),。在設(shè)計(jì)階段,,必須仔細(xì)規(guī)劃測(cè)試多路轉(zhuǎn)換器插入。否則設(shè)計(jì)工程師可能止步于不能同時(shí)訪問需要調(diào)試的結(jié)點(diǎn),。

 

圖1: 測(cè)試多路轉(zhuǎn)換器的插
入使設(shè)計(jì)工程師有能力路由出內(nèi)
部信號(hào)的子集,,圖中為Agilent 16702B所捕獲的跡線。

 

  最小化調(diào)試專用引腳數(shù)的第二種方法是時(shí)分復(fù)用(TDM),。TDM復(fù)用常用于設(shè)計(jì)原型,,此時(shí)把多片F(xiàn)PGA 作為單片ASIC的原型,從而用于最小化調(diào)試專用引腳數(shù),。這項(xiàng)技術(shù)最適合用于處理較慢的內(nèi)部電路,。假定使用8位總線的50MHz設(shè)計(jì)(時(shí)鐘沿間為20ns)需要電路內(nèi)的可視能力。使用100MHz在第一個(gè)10ns期間采樣低4bit,,在第二個(gè)10ns期間采樣高4位,。這樣僅用4個(gè)引腳,就可在每個(gè)20ns周期內(nèi)捕獲到全部8位的調(diào)試信息,。在捕獲跡線后,,組合相繼的4位捕獲就可重建8位跡線。TDM復(fù)用也有一些缺點(diǎn),。如果用傳統(tǒng)邏輯分析儀捕獲跡線,,觸發(fā)就變得非常復(fù)雜和容易出錯(cuò)。例如在8位碼型上的觸發(fā)就包括把邏輯分析儀設(shè)置到尋找跟隨規(guī)定4位碼型后的另一特定4位碼型,。但邏輯分析儀不知道哪一個(gè)4位是 8位組的開始,,因此要在與觸發(fā)設(shè)置相匹配的條件上觸發(fā)-而不是使用者所中意的觸發(fā)條件。

  采用TDM復(fù)用時(shí)得到的測(cè)量結(jié)果有精確的周期,。但設(shè)計(jì)工程師卻丟失了時(shí)鐘周期間的定時(shí)關(guān)系信息,。通常單端引腳的速度和邏輯分析儀收集跡線的采集速度(狀態(tài)模式)限制了壓縮比。例如如果最大單端引腳速度是200MHz,,內(nèi)部電路運(yùn)行于高達(dá)100 MHz,,那么可實(shí)現(xiàn)的最大壓縮比是2:1,。

  隨著給定FPGA設(shè)計(jì)的成熟,它可能會(huì)增強(qiáng)和改變,。原來專門用于調(diào)試的引腳會(huì)被用于設(shè)計(jì)增強(qiáng),。或開始就限制了設(shè)計(jì)的引腳,。另一種調(diào)試技術(shù)為這類情況帶來價(jià)值,。

  邏輯分析內(nèi)核

  現(xiàn)在大多數(shù)FPGA 廠商也提供邏輯分析(見圖2)。這些 IP在合成前或合成后插入FPGA,。內(nèi)核包含觸發(fā)電路,,以及用于設(shè)置測(cè)量和內(nèi)部RAM,以保存跡線的資源,。插入設(shè)計(jì)的邏輯分析內(nèi)核改變了設(shè)計(jì)的定時(shí),,因此大多數(shù)設(shè)計(jì)工程師都把內(nèi)核永久性地留在設(shè)計(jì)內(nèi)。

 

圖2: 從 JTAG 下載邏輯分析儀的配置,,
圖中的例子是 Xilinx ChipScopePro,。

 

  對(duì)于電路內(nèi)配置,可通過JTAG訪問內(nèi)核,,以及為觀察而把捕獲數(shù)據(jù)傳送到PC,。如果內(nèi)核消耗不到5%的可用資源,F(xiàn)PGA 內(nèi)核就能充分發(fā)揮作用,。如果 FPGA的尺寸使內(nèi)核要消耗超過10%的資源,,設(shè)計(jì)工程師在使用這種方法時(shí)將會(huì)遇到很多問題。

  邏輯分析內(nèi)核有三項(xiàng)主要優(yōu)點(diǎn),。

1. 它們的使用不增加引腳,。可通過FPGA 上已有的專門JTAG引腳訪問,。即使沒有其它可用引腳,,這種調(diào)試方法也能得到內(nèi)部可視能力。

2. 簡(jiǎn)單的探測(cè),。探測(cè)包括把結(jié)點(diǎn)路由到內(nèi)部邏輯分析儀的輸入,。不需要擔(dān)心為得到有效信息,應(yīng)如何連接到電路板上,,也不存在信號(hào)完整性問題,。

3. 邏輯分析內(nèi)核是便宜的,。FPGA廠商把他們的業(yè)務(wù)模型建立于用硅片所獲取價(jià)值的基礎(chǔ)上,。所以所用的調(diào)試IP 通常能以低于$1,000美元的價(jià)格獲得。

使用內(nèi)部邏輯分析內(nèi)核也有三方面的影響,。

1. 內(nèi)核的尺寸限制了在大FPGA中的使用,。此外由于內(nèi)部FPGA存儲(chǔ)器用于跡線,,使跡線深度很淺。
2. 設(shè)計(jì)工程師必須放棄把內(nèi)部存儲(chǔ)器用于調(diào)試,,存儲(chǔ)器會(huì)由所作的設(shè)計(jì)使用,。
3. 內(nèi)部邏輯分析儀只工作于狀態(tài)模式。它們捕獲的數(shù)據(jù)與規(guī)定的時(shí)鐘同步,,而不能提供信號(hào)定時(shí)關(guān)系,。

  混合技術(shù)

  一些FPGA廠商已開始與傳統(tǒng)邏輯分析儀廠商聯(lián)合開發(fā)組合技術(shù)(見圖 3)。例如Agilent 和 Xilinx 最近聯(lián)合為Xilinx的ChipScope開發(fā)2M狀態(tài)深存儲(chǔ)器,。

 

圖3: 混合內(nèi)部和傳統(tǒng)邏輯分析的第
一個(gè)例子是Agilent 和 Xilinx聯(lián)
合為ChipScopePro開發(fā)的深存儲(chǔ)器
,,通過TDM復(fù)用能把引腳數(shù)減到最少。

 

  這一解決方案把內(nèi)部邏輯分析內(nèi)核用于觸發(fā),。在滿足內(nèi)核的觸發(fā)條件時(shí),,內(nèi)核把跡線信息從經(jīng)路由的結(jié)點(diǎn)傳送到內(nèi)核,再送到引腳,。引腳通過mictor連接器接到一個(gè)小的外部跟蹤盒,。該解決方案融入了TDM復(fù)用,以減少調(diào)試專用引腳數(shù),。根據(jù)內(nèi)部電路的速度,,復(fù)用壓縮可能是1:1,2:1或4:1,。由于跡線未在內(nèi)部保存,,因此IP內(nèi)核要小于帶跡線存儲(chǔ)器的邏輯分析IP。

  如何作出決定,?

  傳統(tǒng)邏輯分析和基于內(nèi)核的邏輯分析技術(shù)都很有用,。在選擇最適合您調(diào)試需要的方案時(shí),事先考慮一些因素將能幫助您作出決定,。下面這幾個(gè)問題能幫助您確定哪種方案最為有效,。

1. 您預(yù)計(jì)會(huì)遇到哪種類型的調(diào)試問題?用內(nèi)部邏輯分析儀能找到較簡(jiǎn)單的問題,,而傳統(tǒng)邏輯分析儀則能勝任復(fù)雜的故障,。

2. 除了狀態(tài)模式外,您還需要捕獲定時(shí)信息嗎,?如果需要,,傳統(tǒng)邏輯分析儀能適應(yīng)這一要求。

3. 需要多深的跡線,?傳統(tǒng)邏輯分析儀可在各通道上捕獲達(dá)64M的跡線,,而內(nèi)部邏輯分析內(nèi)核更適合淺的跡線。

4. 有多少引腳可專門用于調(diào)試,?引腳數(shù)越少,,使用內(nèi)部邏輯分析儀就越適合,。

5. 必須為新工具投入多少資金?雖然32通道傳統(tǒng)邏輯分析儀的起價(jià)為$6K,,但內(nèi)部邏輯分析儀及相隨波形觀察器的起價(jià)還不到$1K,。

6. 研制組能容忍對(duì)FPGA設(shè)計(jì)的沖擊嗎??jī)?nèi)核只能在大的 FPGA上工作,,并會(huì)改變?cè)O(shè)計(jì)的定時(shí),。對(duì)所有尺寸和類型的FPGA,傳統(tǒng)邏輯分析儀的路由信號(hào)輸出對(duì)設(shè)計(jì)和工作的影響甚微,。

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