如何利用嵌入式儀器調(diào)試SoC(一)
傳統(tǒng)上,軟件驗證和調(diào)試及硬件驗證和調(diào)試一直是兩個不同的世界。通常情況下,軟件團隊和硬件團隊各自為政,前者專注于編程模型內(nèi)部的軟件執(zhí)行,后者則在硬件開發(fā)框架內(nèi)進行調(diào)試,其中時鐘周期精度、并行運行及調(diào)試數(shù)據(jù)回溯原始設計的關(guān)系是關(guān)鍵。理論上,經(jīng)過全面調(diào)試后,軟件和硬件應無差錯地協(xié)同運行。但在實際環(huán)境中,無差錯協(xié)同運行的情況不多,正因如此,經(jīng)常會導致關(guān)鍵成本上升及產(chǎn)品開發(fā)周期延誤。
為在合理的成本和時間范圍內(nèi)實現(xiàn)更高的集成度,業(yè)界必須轉(zhuǎn)向新的方法:設計的洞察。換句話說,如果我們想能夠高效地持續(xù)驗證和調(diào)試這些系統(tǒng),工程師們必須提前設計成能夠提供全面的系統(tǒng)視圖。其中的關(guān)鍵是能夠了解涵蓋硬件領(lǐng)域和軟件領(lǐng)域的各種行為之間的臨時關(guān)系。本文介紹了使用嵌入式儀器調(diào)試SoC的一種方法,說明了通過整合硬件調(diào)試視圖和軟件調(diào)試視圖,可以更快、更高效地調(diào)試整個系統(tǒng)。
構(gòu)建測試臺
圖1所示的SoC 由一塊32位RISC指令集處理器及一條AMBA APB外設總線組成,處理器連接到AMBA AHB系統(tǒng)總線上。SoC還包含一個DDR2存儲控制器、一個千兆位以太網(wǎng)網(wǎng)絡適配器、一個Compact Flash控制器、VGA控制器及多個低速外設接口。SoC運行Debian GNU Linux操作系統(tǒng)第4版,這一操作系統(tǒng)運行v2.6.21內(nèi)核。處理器核心工作頻率為60MHz,DDR存儲控制器工作頻率為100MHz,其它I/O 外設在33MHz~12MHz之間的基本頻率上運行。整個SoC在Virtex-5開發(fā)板卡上實現(xiàn)。
圖1. SoC基線測試臺
總體上看,這一系統(tǒng)是一臺全功能計算機,能夠提供基于終端的用戶接入,能夠連接互聯(lián)網(wǎng),運行應用程序,安裝文件系統(tǒng)等等。SoC的這些特點產(chǎn)生了復雜的調(diào)試場景,給硬件調(diào)試設施和軟件調(diào)試設施的功能帶來了壓力。在大多數(shù)情況下,關(guān)鍵操作都同時涵蓋硬件和軟件。
調(diào)試基礎(chǔ)設施
處理器核心開發(fā)人員一般會提供調(diào)試基礎(chǔ)設施,要么是某個核心的一套固定特性,要么是一群核心的可配置插件。不管是哪種形式,調(diào)試基礎(chǔ)設施都變成了被制造的核心的一部分。然后調(diào)試軟件使用這個基礎(chǔ)設施,為軟件開發(fā)人員提供調(diào)試特性。
與大多數(shù)現(xiàn)代處理器類似,如英特爾處理器、AMD處理器、IBM處理器、Oracle處理器和ARM處理器,這里突出顯示的處理器核心支持一套基本調(diào)試功能。在本例中,可以通過JTAG訪問的“后門”,允許軟件調(diào)試程序(如GDB)讀取和寫入系統(tǒng)中的存儲器,檢測處理器的運行狀態(tài)。通過這些機制及訪問原始軟件源代碼,GDB和其它軟件調(diào)試程序可以提供軟件斷點、單步操作、變量值檢查、堆棧跟蹤、初始條件配置、交替存儲器值及恢復功能。
在大多數(shù)情況下,硬件調(diào)試設施并不是與構(gòu)成SoC的硬件IP核心一起提供的。相反,硬件調(diào)試設施通常疊加到現(xiàn)有的SoC設計上。造成這種差異的原因有很多。首先,與軟件調(diào)試不同,硬件要求的底層功能具有多樣化特點,通常只有在SoC組裝時才能得到全面了解。此外,每種新的SoC通常要求不同的調(diào)試基礎(chǔ)設施。最后,作為新興領(lǐng)域,硬件調(diào)試的標準化程度不高,生態(tài)系統(tǒng)建設不夠。因此,硬件調(diào)試設施通常被留給各個設計人員,這些設計人員會創(chuàng)建針對不同功能領(lǐng)域的特定調(diào)試特性。在大型機構(gòu)中,通常會開發(fā)擁有內(nèi)部支持的工具和結(jié)構(gòu)。但是,隨著SoC的復雜程度不斷提高,創(chuàng)建高效硬件調(diào)試設施的復雜程度也在不斷提高,內(nèi)部開發(fā)工作難以為繼。
作為替代方案,測試和測量廠商可以提供完整的設計工具、IP庫和工作流程,創(chuàng)建硬件調(diào)試設施。圖2所示的設置稱為Tektronix Clarus Post-Silicon Validation Suite,這一驗證套件由多種可以重復配置的嵌入式儀器組成,這些儀器可以連接起來,分布在整個SoC中,創(chuàng)建滿足特定功能要求的調(diào)試基礎(chǔ)設施。 Implementer工具可以在RTL級(Vreilog、System Verilog和VHDL)把硬件設計中任何層級的任何信號儀器化。Analyzer通過JTAG或以太網(wǎng)連接,配置和控制嵌入式儀器。最后,Investigator把嵌入式儀器收集的數(shù)據(jù)向回映射到原始RTL(在仿真環(huán)境中),實現(xiàn)更復雜的調(diào)試。
圖2: Clarus Post-Silicon Vlidtion Suite套件的結(jié)構(gòu)。
嵌入式儀器被應用到SOC中,提供調(diào)試基礎(chǔ)設施,如圖3所示。其中一個重要方面是能夠在調(diào)試過程中重新配置儀器,針對SoC不同領(lǐng)域中的各種信號和場景?;緝x器稱為捕獲站,其獨立管理觀測數(shù)據(jù)的選擇、壓縮、處理和存儲。多臺捕獲站通常一起使用,為某個SoC創(chuàng)建特定設計基礎(chǔ)設施。在插入過程中,捕獲站配置一系列關(guān)心的潛在信號、最高同時觀測數(shù)量以及最大RAM容量。捕獲站一般被分配給特定時鐘域,同時捕獲觀測數(shù)據(jù)。Analyzer從每個捕獲站中收集數(shù)據(jù),顛倒壓縮算法,把每個站中捕獲的數(shù)據(jù)對準,在所有捕獲站中生成時間相關(guān)的視圖。
圖3: 硬件調(diào)試基礎(chǔ)設施。
本例中使用的SoC有四個捕獲站:一個位于處理器時鐘域,標為1號捕獲站(60MHz),針對362個信號;一個位于RX以太網(wǎng)域,標為2號捕獲站 (25MHz),針對17個信號;一個位于TX以太網(wǎng)域,標為3號捕獲站(25MHz),針對17個信號;最后一個位于閃存時鐘域,標為4號捕獲站 (33MHz),針對178個信號。每個捕獲站都并行運行,能夠選擇性地觀測任意信號組合。Analyzer工具的最終輸出是一個表示實際硅片器件中時鐘周期準確信號事務的波形,如圖4所示。
圖4: SoC波形實例。
評論