Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

利用F-Sight提高採用FPGA嵌入式處理器的系統除錯效率

上網時間: 2008年09月08日     打印版  Bookmark and Share  字型大小:  

關鍵字:嵌入式處理器  追蹤  協同除錯 

目前,越來越多的FPGA設計開始採用嵌入式處理器,如PowerPC和賽靈思(Xilinx)的MicroBlaze處理器)來完成控制任務,採用C語言等軟體語言描述這些控制任務,要比使用VHDL或Verilog等硬體語言描述更加容易。

當進行嵌入式系統設計時,絕大部份的設計時間可能花費在除錯階段,因此縮短發現問題並解決問題的時間非常重要。作為一款整合除錯器,Computex公司的F-Sight同時具備硬體和軟體除錯能力。一方面,它支援FPGA內部嵌入式處理器的全方位軟體除錯。另一方面,它還支援監視FPGA硬體訊號。本文將介紹如何利用F-Sight提高除錯效率。

啟動除錯器

Computex公司的除錯器非常適合用來實現FPGA內部嵌入式處理器的除錯。對於MicroBlaze處理器來說,工程師可以利用MicroBlaze除錯模組(MDM)控制處理器的執行過程並進行除錯,也可以利用賽靈思公司的MicroBlaze追蹤核心(XMTC)以非侵入方式監控處理器程式的執行情況。

由於FPGA的接腳限制,減少輸出到接腳的訊號數量非常重要。XMTC提供了編碼指令和數據追蹤功能,所需要的接腳數量僅為非編碼訊號所需的10%。

為了使除錯器實現追蹤功能,只需要將MDM和XMTC核心分別連接到MicroBlaze處理器的除錯和追蹤介面,然後將編碼後的追蹤訊號引到FPGA接腳以便F-Sight收集數據。完成FPGA設計後,再將F-Sight除錯器連接到電路板的Mictor連接器。如果使用賽靈思不帶Mictor連接器的ML400系列、ML500系列或Sparta-3E/3A/3AN FPGA板,那麼在Computex F-Sight配接器幫助下仍可以使用F-Sight中的處理器追蹤功能。圖1是利用F-Sight配接器將F-Sight連接到Spartan-3板上的照片。

圖1:F-Sight透過配接器連接到Spartan-3電路板。
圖1:F-Sight透過配接器連接到Spartan-3電路板。

使用處理器追蹤功能

處理器追蹤功能可以在不中斷處理器執行的情況下監控程式執行情況,因此用戶可以長時間對程式進行分析,以確定程式碼中的問題,而不會改變處理器的執行狀態。Computex F-Sight提供的處理器追蹤能力已證明適用在許多情況。

試想一段程式總是不停地產生例外。例外可能產生在程式的任何位置;工程師面臨的挑戰在於找出並釐清例外之處。為了解決這個問題,可以在例外產生之前或在例外向量中設置斷點,這樣當程式到達斷點時就會暫停。當程式停止時,可查看F-Sight記錄的執行歷史數據,可從中發現在進入例外處理前執行了哪些指令。

在嵌入式系統中堆疊溢出也是一個常見的問題。程式突然開始從看起來不太正常的地方執行。堆疊可能由於溢出而被破壞。如果懷疑產生了這樣的問題,可以透過設計觸發器來開始或停止追蹤數據的採集。透過設置觸發器條件進行堆疊指針和堆疊上限之間的比較,當條件滿足時,程式將及時中止,然後用戶就可以很容易地確認堆疊溢出以及產生的地方。

在某些即時系統中,為了除錯目的而停止處理器的執行過程並非很好的選擇,因為停止執行本身可能會改變程式行為。有時候問題可能極少出現,因此可能需要長時間監控程式執行情況。F-Sight可以用來設置複雜的觸發條件並收集追蹤數據,然後透過事後分析來除錯問題。

探測內部訊號

FPGA除錯經常從設計模擬開始。儘管模擬器能夠發現設計中的錯誤,但卻不能發現與技術指標相關的問題。而且還經常產生設計在模擬時通過了所有測試、但在FPGA中實現時卻無法工作的情況。產生這種情況時,設計人員將被迫利用邏輯分析儀在實際的目標系統中進行除錯。

當試圖將訊號從FPGA中引出以便讓邏輯分析儀監視其波形時,問題就出現了。對於大規模嵌入式系統設計來說,在大多數情況下即使只有很小的修改(例如將所需要的訊號引到元件外部接腳),也可能需要很長時間才能完成FPGA的重新合成和實體建置。此外,還可能會由於不同的佈局和佈線而帶來時序問題。執行實體建置工具所需要的實際時間依賴於電路的規模以及主電腦的性能,但很可能一天內只夠完成幾次除錯。

幸運的是,Computex F-sight提供了一項非常有用的功能,它不需要重新執行合成和實體實現工具就能透過設計修改把內部FPGA訊號引到元件外部接腳。這一功能被稱為‘探測’(Probing)。只需在顯示HDL原始程式碼的視圖中簡單地選擇內部FPGA訊號(圖2),F-Sight將自動完成其餘工作,並根據上述選擇為測試接腳分配合適的佈線資源。這是透過利用Xilinx ISE軟體工具中包含的FPGA編輯器實現的。有了這一功能,除錯時必須花在邏輯合成和佈局佈線上的時間被縮到了最短,因而可以有更多時間用在監視訊號波形上。

圖2:F-Sight探測。
圖2:F-Sight探測。

協同除錯

當系統工作不正常時,唯一能做的就是根據實際產生的事件檢查問題產生的原因。在有些情況下,利用硬體來實現事件追蹤會更容易;而在其他情況下,利用軟體可能更容易一些。例如,在使用硬體的情況中,如果能夠確定顯示例外的訊號,那麼可以將這個訊號設為觸發訊號。在使用軟體的情況中,如果例外處理被調用,那麼可以在例外處理程式處設置斷點並執行用戶程式。這樣事件產生的過程將被擷取進F-Sight的追蹤緩衝器中。

然而,這兒的問題是即使擷取了事件的產生過程,確定原因仍然需要很長的時間,除非瞭解硬體和軟體之間的相關性。針對這一點,Computex實現了協同除錯功能,即可以在F-Sight中實現硬體(分析儀)和軟體(追蹤)歷史之間的同步。利用這一功能,可以在相同時間軸上檢查事件產生時的波形和程式行為。當在分析儀窗口中滾動顯示波形時,程式執行歷史和原始程式碼視圖也相應滾動(圖3)。協同除錯功能的強大之處在於能夠透過硬體和軟體協同除錯快速確定問題原因。

圖3:F-Sight協同除錯。<p>
圖3:F-Sight協同除錯。

對快閃記憶體除錯

FPGA內部記憶體經常被用來儲存嵌入式處理器程式。然而,如果程式太大,內部記憶體的容量經常不夠用。一種可行的方法是利用外部快閃記憶體來儲存用戶程式。

雖然有些除錯器不支援快閃記憶體寫入功能,但F-Sight卻能夠像除錯位於內部記憶體中的程式一樣,全面對外部快閃記憶體中的程式除錯。例如,它可以用來下載用戶程式,對記憶體的某部份加上外掛程式,或在快閃記憶體中設置軟體斷點。

F-Sight支援1000多種類型的快閃記憶體。即使所使用的快閃記憶體不在已支援列表中,也可以透過圖形化用戶介面方便地手工增加相應項目。

作者:Jorge Carrillo, Raj Nagarajan

賽靈思公司

Koji Imanishi、Nobuhiro Nishiguchi、Ayako Suzuki

Computex有限公司





投票數:   加入我的最愛
我來評論 - 利用F-Sight提高採用FPGA嵌入式處理器...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首