Global Sources
電子工程專輯
 
電子工程專輯 > 記憶體/儲存
 
 
記憶體/儲存  

靈活運用軟硬體加速SoC驗證

上網時間: 2012年11月05日     打印版  Bookmark and Share  字型大小:  

關鍵字:驗證  除錯  Clarus  測試 

作者:Brad Quinton

Tektronix

隨著系統單晶片(SoC)的複雜度不斷提高,軟、硬體開發融合所帶來的挑戰已經不可小覷。這些功能強大的系統現在由複雜的軟體、韌體、嵌入式處理器、GPU、儲存控制器和其它高速週邊設備混合而成。更高的功能整合度與更快的內部時脈速度以及複雜的高速I/O相結合,意味著提供正常執行、並經過全面驗證的系統比以前變得更難。

傳統上,軟體驗證和除錯及硬體驗證和除錯一直是兩個不同的世界。通常情況下,軟體團隊和硬體團隊各自為政,前者專注於編程模型內部的軟體執行,後者則在硬體開發框架內進行除錯,其中時脈週期精密度、平行執行及除錯數據回溯原始設計關係是關鍵。理論上,經過全面除錯後,軟體和硬體應無差錯地協同執行。但在實際環境中,無差錯協同執行的情況不多,正因如此,經常會導致關鍵成本上升及產品開發週期延誤。

為在合理的成本和時間範圍內實現更高的整合度,業界必須轉向新的方法:設計洞察。換句話說,如果我們想能夠高效地持續驗證和除錯這些系統,工程師們必須提前設計成能夠提供全面的系統視圖。其中的關鍵是能夠了解涵蓋硬體領域和軟體領域的各種行為之間的臨時關係。本文介紹了使用嵌入式儀器除錯SoC的一種方法,說明了透過整合硬體除錯視圖和軟體除錯視圖,可以更快、更高效地除錯整個系統。

建構測試台

圖1所示的SoC由一顆32位元RISC指令集處理器及一條AMBA APB週邊設備匯流排組成,處理器連接到AMBA AHB系統匯流排上。SoC還包含一個DDR2儲存控制器、一個GbE網路配接器、一個Compact Flash控制器、VGA控制器及多個低速週邊設備介面。SoC執行Debian GNU Linux作業系統第4版,這一作業系統執行v2.6.21核心。處理器核心工作頻率為60MHz,DDR儲存控制器工作頻率為100MHz,其它I/O週邊設備在33MHz~12MHz之間的基本頻率上執行。整個SoC在Virtex-5開發板卡上實現。

總體上看,這一系統是一台全功能電腦,能夠提供基於終端的用戶接取,能夠連接網際網路,執行應用程式,安裝文件系統等等。SoC的這些特點產生了複雜的除錯場景,給硬體除錯設備和軟體除錯設備的功能帶來了壓力。在大多數情況下,關鍵作業都同時涵蓋硬體和軟體。

除錯基礎設備

處理器核心開發人員一般會提供除錯基礎設備,要麼是某個核心的一套固定特性,要麼是一群核心的可配置插件。不管是哪種形式,除錯基礎設備都變成了被製造的核心的一部份。然後除錯軟體使用這個基礎設備,為軟體開發人員提供除錯特性。

與大多數現代處理器類似,如英特爾處理器、AMD處理器、IBM處理器、Oracle處理器和RM處理器,這?突出顯示的處理器核心支援一套基本除錯功能。在本例中,可以透過JTAG存取的‘後門’,允許軟體除錯程式(如GDB)讀取和寫入系統中的記憶體,檢測處理器的執行狀態。透過這些機制及存取原始軟體原始程式碼,GDB和其它軟體除錯程式可以提供軟體斷點、單步作業、變量值檢查、堆疊追蹤、初始條件配置、交替記憶體值及恢復功能。

在大多數情況下,硬體除錯設備並不是與構成SoC的硬體IP核心一起提供的。相反,硬體除錯設備通常疊加到現有的SoC設計上。造成這種差異的原因有很多。首先,與軟體除錯不同,硬體要求的底層功能具有多樣化特點,通常只有在SoC組裝時才能得到全面了解。此外,每種新的SoC通常要求不同的除錯基礎設備。最後,作為新興領域,硬體除錯的標準化程度不高,生態系統建設不夠。因此,硬體除錯設備通常被留給各個設計人員,這些設計人員會製作針對不同功能領域的特定除錯特性。在大型機構中,通常會開發擁有內部支援的工具和結構。但是,隨著SoC的複雜程度不斷提高,製作高效硬體除錯設備的複雜程度也在不斷提高,內部開發工作難以為繼。

作為替代方案,測試和測量廠商可以提供完整的設計工具、IP庫和工作流程,製作硬體除錯設備。圖2所示的設置稱為Tektronix Clarus Post-Silicon Validation Suite,這一驗證套件由多種可以重覆配置的嵌入式儀器組成,這些儀器可以連接起來,分佈在整個SoC中,製作滿足特定功能要求的除錯基礎設備。Implementer工具可以在RTL級(Vreilog、System Verilog和VHDL)把硬體設計中任何層級的任何訊號儀器化。Analyzer透過JTAG或乙太網路連接,配置和控制嵌入式儀器。最後,Investigator把嵌入式儀器收集的數據向回映射到原始RTL(在模擬環境中),實現更複雜的除錯。

嵌入式儀器被應用到SOC中,提供除錯基礎設備,如圖3所示。其中一個重要方面是能夠在除錯過程中重新配置儀器,針對SoC不同領域中的各種訊號和場景。基本儀器稱為擷取站,其獨立管理觀測數據的選擇、壓縮、處理和儲存。多台擷取站通常一起使用,為某個SoC製作特定設計基礎設備。在插入過程中,擷取站配置一系列關心的潛在訊號、最高同時觀測數量以及最大RAM容量。擷取站一般被分配給特定時脈域,同時擷取觀測數據。Analyzer從每個擷取站中收集數據,顛倒壓縮演算法,把每個站中擷取的數據對準,在所有擷取站中產生時間相關的視圖。

本例中使用的SoC有四個擷取站:一個位於處理器時脈域,標為1號擷取站(60MHz),針對362個訊號;一個位於RX乙太網路域,標為2號擷取站(25MHz),針對17個訊號;一個位於TX乙太網路域,標為3號擷取站(25MHz),針對17個訊號;最後一個位於快閃記憶體時脈域,標為4號擷取站(33MHz),針對178個訊號。每個擷取站都平行執行,能夠選擇性地觀測任意訊號組合。Analyzer工具的最終輸出是一個表示實際晶片元件中時脈週期準確訊號事務的波形,如圖4所示。

儘管軟體除錯設備和硬體除錯設備在目標平台上觀測只限於軟體問題或硬體問題時效果很好,但在了解涉及軟體和硬體交互的行為時,則面臨著明顯挑戰。表1列出了我們的測試台開發過程中遇到的部份問題,以及我們在業界看到的代表性問題。

主要挑戰在於,儘管使用軟體除錯設備或硬體除錯設備能夠‘看到’非預期行為的影響,但通常很難確定觀測到的不正確行為到底是因還是果。這個問題經常變成軟體中非預計的行為是硬體行為不正確的結果,還是其它方式。關鍵在於確定多個事件之間的臨時關係,這要求軟體除錯視圖和硬體除錯視圖之間有一個公共參照物。

事件管理

重建軟體除錯視圖和硬體除錯視圖之間臨時關係的能力,涉及兩種除錯設備中除錯狀態和事件處理的整合,或合成硬體管理,如圖5所示。

在本例中,Clarus Suite提供的分佈式非同步儀器使得每個擷取站可以視作自治設備。為支援儀器之間的‘交叉觸發’,有一條共享事件匯流排及一個集中式事件處理器。集中式事件處理器在圖5中標為接取控制(Access Control),把除錯事件和狀態傳送給Analyzer軟體,Analyzer軟體管理著整個除錯基礎設備。這可以對多個功能單元和時脈域同時進行高效硬體除錯。為製作合成事件管理,這些資訊傳播到軟體除錯設備中,並從軟體基礎設備中收集數據。透過採用合成事件管理,基礎設備可以檢測軟體斷點事件,除錯處理器的狀態。同樣,軟體除錯設備能夠檢測硬體觸發,除錯硬體除錯設備的狀態。

合成事件管理的兩大優勢是軟體除錯發起的事件能夠控制硬體觸發,硬體除錯發起的事件能夠控制軟體除錯。更具體地說,軟體斷點可以映射到特定硬體行為,硬體觸發可以在某個點中斷軟體。圖6和圖7分別說明了這兩種場景的實例。

為展示合成除錯系統中軟體發起的斷點功能,我們修改了Linux核心,在磁碟扇區0x00041d90上產生讀取時列印消息‘BLOCK’。然後,把目標對準除錯設備中來自‘sysace’Compact Flash控制器的軌跡。我們使用GDB,在xsysace.c文件第714行上設置了一個硬體斷點(printk產生的行)。然後配置測試設備,使用合成事件管理監測軟體除錯設備。最後,‘find/’命令強制核心讀取整個磁碟。如圖6所示,軟體斷點在希望的行上暫停了核心執行,另外還觸發了硬體除錯設備。結果,可以在軟體斷點時間上看到詳細的硬體行為。

我們使用硬體配接器,展示合成除錯系統中硬體發起的觸發功能。我們設置成在Linux核心清除乙太網路配接器中的‘RX Packet Ready Interrupt Bit’時產生硬體觸發。我們把合成事件管理介面配置成把硬體事件映射到軟體除錯設備。到系統中路由器IP地址的ping從SoC到路由器應答位置發起一個發送封包。在應答產生時,這個封包到達乙太網路實體層,由乙太網路配接器處理。然後處理器被中斷,Linux核心服務中斷。在中斷服務結束時,中斷被清除。這導致硬體觸發和軟體被暫停,如圖7所示。得到的視圖顯示了從實體層直到作業系統的整個複雜系統中硬體和軟體的同步行為或時間相關行為。

本文小結

透過在軟體除錯設備和硬體除錯設備之間製作合成事件管理介面,可以圍繞軟體除錯事件和硬體除錯事件實現單事件同步。這種同步可以有意義地表示同時來自這兩種基礎設備的除錯數據。這樣一個完整的系統視圖為觀察涵蓋軟體和硬體的各種SoC功能之間的臨時關係打開了一扇窗戶,可以更快、更高效地除錯日益複雜的SoC設計。

文章圖片:


圖1. SoC基線測試台。


圖2: Clarus Post-Silicon Vlidtion Suite套件的結構。


圖3: 硬體除錯基礎設備。


圖4: SoC波形實例。


圖5: 合成事件管理。


圖6: 由軟體發起的事件。


圖7: 由硬體發起的事件。


表1: SoC除錯問題實例。





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


EE人生人氣排行
 
返回頁首