隨著FPGA融入越來越多的能力,,對有效調試工具的需求將變得至關重要。對內部可視能力的事前周密計劃將能使研制組采用正確的調試戰(zhàn)略,,以更快完成他們的設計任務,。
“我知道我的設計中存在一個問題,但我沒有很快找到問題所需要的內部可視能力,。”由于缺乏足夠的內部可視能力,,調試FPGA基系統(tǒng)可能會受挫。使用通常包含整個系統(tǒng)的較大FPGA時,,調試的可視能力成為很大的問題,。為獲得內部可視能力,設計工程師必須把一些引腳專門用作調試引腳,,而不是實際用于設計,。哪些工具可用于進行內部FPGA跡線測量?又有哪些技術可用固定的引腳數(shù)最大化內部可視能力,?
FPGA設計工程師有兩種進行內部跡線測量的方法:
1. 把結點路由至引腳,,使用傳統(tǒng)的外部邏輯分析儀測試。
2. 把一個邏輯分析儀內核插入FPGA 設計,,通過JTAG把由內部FPGA存儲器保存的跡線捕獲路由輸出,。
邏輯分析
FPGA開發(fā)者要在設計前期作出重要的判定,他們有意識或無意識地確定如何能夠調試他們的設計,。得到內部FPGA可視能力的最常用方法是使用邏輯分析儀,,把感興趣的內部結點路由至分析儀探測的引腳。這種方法提供深存儲器跡線,,在這里問題成因和其影響可能有很大的時間間隔,。邏輯分析儀能很好測量可能逃逸仿真的異步事件。一個例子是具有非相關頻率的兩個或多個時鐘域交互影響,。邏輯分析儀提供強大的觸發(fā),,所得到的測量結果能建立與其它系統(tǒng)事件的時間相關。
傳統(tǒng)邏輯分析儀提供狀態(tài)和定時模式,,因此可同步或異步地捕獲數(shù)據,。在定時模式,設計工程師能看到信號躍變間的關系,。在狀態(tài)模式,,設計工程師有能力觀察相對于狀態(tài)時鐘的總線。當調試總線值至關重要的數(shù)據路徑時,,狀態(tài)模式是特別有用的,。
有效的真實世界測量需要事先周密的計劃。使用傳統(tǒng)邏輯分析儀要顧及的主要權衡是把結點路由輸出至可探測的引腳,。傳統(tǒng)邏輯分析儀只能觀察到路由至引腳的信號,。由于還不知道潛在的電路內調試問題,,設計工程師只能把很少幾個引腳用于調試。這樣少的引腳數(shù)可能不足以提供解決手頭問題的足夠可視能力,,從而延誤項目的完成,。
保持內部可視能力,同時減少專用于調試引腳數(shù)的一種方法是在設計中插入開關多路轉換器(見圖1),。例如當 FPGA 設計進入電路時,,可能需要觀察128個內部結點,這就需要一次跟蹤32個通道,。在這種情況下,,可在FPGA設計中實現(xiàn)多路轉換器,在給定時間內路由出32個結點,。為編程多路轉換器,,設計工程師可下載新的配置文件,使用JTAG或通過多路轉換器上的控制線經路由切換各信號,。在設計階段,,必須仔細規(guī)劃測試多路轉換器插入。否則設計工程師可能止步于不能同時訪問需要調試的結點,。
圖1: 測試多路轉換器的插 |
最小化調試專用引腳數(shù)的第二種方法是時分復用(TDM),。TDM復用常用于設計原型,此時把多片F(xiàn)PGA 作為單片ASIC的原型,,從而用于最小化調試專用引腳數(shù),。這項技術最適合用于處理較慢的內部電路。假定使用8位總線的50MHz設計(時鐘沿間為20ns)需要電路內的可視能力,。使用100MHz在第一個10ns期間采樣低4bit,,在第二個10ns期間采樣高4位。這樣僅用4個引腳,,就可在每個20ns周期內捕獲到全部8位的調試信息,。在捕獲跡線后,組合相繼的4位捕獲就可重建8位跡線,。TDM復用也有一些缺點,。如果用傳統(tǒng)邏輯分析儀捕獲跡線,觸發(fā)就變得非常復雜和容易出錯,。例如在8位碼型上的觸發(fā)就包括把邏輯分析儀設置到尋找跟隨規(guī)定4位碼型后的另一特定4位碼型,。但邏輯分析儀不知道哪一個4位是 8位組的開始,因此要在與觸發(fā)設置相匹配的條件上觸發(fā)-而不是使用者所中意的觸發(fā)條件,。
采用TDM復用時得到的測量結果有精確的周期,。但設計工程師卻丟失了時鐘周期間的定時關系信息,。通常單端引腳的速度和邏輯分析儀收集跡線的采集速度(狀態(tài)模式)限制了壓縮比。例如如果最大單端引腳速度是200MHz,,內部電路運行于高達100 MHz,,那么可實現(xiàn)的最大壓縮比是2:1。
隨著給定FPGA設計的成熟,,它可能會增強和改變,。原來專門用于調試的引腳會被用于設計增強?;蜷_始就限制了設計的引腳,。另一種調試技術為這類情況帶來價值。
邏輯分析內核
現(xiàn)在大多數(shù)FPGA 廠商也提供邏輯分析(見圖2),。這些 IP在合成前或合成后插入FPGA,。內核包含觸發(fā)電路,以及用于設置測量和內部RAM,,以保存跡線的資源,。插入設計的邏輯分析內核改變了設計的定時,因此大多數(shù)設計工程師都把內核永久性地留在設計內,。
圖2: 從 JTAG 下載邏輯分析儀的配置,, |
對于電路內配置,,可通過JTAG訪問內核,,以及為觀察而把捕獲數(shù)據傳送到PC。如果內核消耗不到5%的可用資源,,F(xiàn)PGA 內核就能充分發(fā)揮作用,。如果 FPGA的尺寸使內核要消耗超過10%的資源,設計工程師在使用這種方法時將會遇到很多問題,。
邏輯分析內核有三項主要優(yōu)點,。
1. 它們的使用不增加引腳??赏ㄟ^FPGA 上已有的專門JTAG引腳訪問,。即使沒有其它可用引腳,這種調試方法也能得到內部可視能力,。
2. 簡單的探測,。探測包括把結點路由到內部邏輯分析儀的輸入。不需要擔心為得到有效信息,,應如何連接到電路板上,,也不存在信號完整性問題。
3. 邏輯分析內核是便宜的。FPGA廠商把他們的業(yè)務模型建立于用硅片所獲取價值的基礎上,。所以所用的調試IP 通常能以低于$1,000美元的價格獲得,。
使用內部邏輯分析內核也有三方面的影響。
1. 內核的尺寸限制了在大FPGA中的使用,。此外由于內部FPGA存儲器用于跡線,,使跡線深度很淺。
2. 設計工程師必須放棄把內部存儲器用于調試,,存儲器會由所作的設計使用,。
3. 內部邏輯分析儀只工作于狀態(tài)模式。它們捕獲的數(shù)據與規(guī)定的時鐘同步,,而不能提供信號定時關系,。
混合技術
一些FPGA廠商已開始與傳統(tǒng)邏輯分析儀廠商聯(lián)合開發(fā)組合技術(見圖 3)。例如Agilent 和 Xilinx 最近聯(lián)合為Xilinx的ChipScope開發(fā)2M狀態(tài)深存儲器,。
圖3: 混合內部和傳統(tǒng)邏輯分析的第 |
這一解決方案把內部邏輯分析內核用于觸發(fā),。在滿足內核的觸發(fā)條件時,,內核把跡線信息從經路由的結點傳送到內核,再送到引腳,。引腳通過mictor連接器接到一個小的外部跟蹤盒,。該解決方案融入了TDM復用,以減少調試專用引腳數(shù),。根據內部電路的速度,,復用壓縮可能是1:1,2:1或4:1,。由于跡線未在內部保存,因此IP內核要小于帶跡線存儲器的邏輯分析IP,。
如何作出決定,?
傳統(tǒng)邏輯分析和基于內核的邏輯分析技術都很有用。在選擇最適合您調試需要的方案時,,事先考慮一些因素將能幫助您作出決定,。下面這幾個問題能幫助您確定哪種方案最為有效。
1. 您預計會遇到哪種類型的調試問題,?用內部邏輯分析儀能找到較簡單的問題,,而傳統(tǒng)邏輯分析儀則能勝任復雜的故障。
2. 除了狀態(tài)模式外,,您還需要捕獲定時信息嗎,?如果需要,傳統(tǒng)邏輯分析儀能適應這一要求。
3. 需要多深的跡線,?傳統(tǒng)邏輯分析儀可在各通道上捕獲達64M的跡線,,而內部邏輯分析內核更適合淺的跡線。
4. 有多少引腳可專門用于調試,?引腳數(shù)越少,,使用內部邏輯分析儀就越適合。
5. 必須為新工具投入多少資金,?雖然32通道傳統(tǒng)邏輯分析儀的起價為$6K,,但內部邏輯分析儀及相隨波形觀察器的起價還不到$1K。
6. 研制組能容忍對FPGA設計的沖擊嗎,?內核只能在大的 FPGA上工作,,并會改變設計的定時。對所有尺寸和類型的FPGA,,傳統(tǒng)邏輯分析儀的路由信號輸出對設計和工作的影響甚微,。