新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 如何利用嵌入式儀器調(diào)試SoC(一)

如何利用嵌入式儀器調(diào)試SoC(一)

作者: 時(shí)間:2013-05-11 來(lái)源:網(wǎng)絡(luò) 收藏
隨著系統(tǒng)級(jí)芯片()的復(fù)雜度不斷提高,軟、硬件開(kāi)發(fā)融合所帶來(lái)的挑戰(zhàn)已經(jīng)不可小覷。這些功能強(qiáng)大的系統(tǒng)現(xiàn)在由復(fù)雜的軟件、固件、處理器、GPU、存儲(chǔ)控制器和其它高速外設(shè)混合而成。更高的功能集成度與更快的內(nèi)部時(shí)鐘速度以及復(fù)雜的高速I/O相結(jié)合,意味著提供正常運(yùn)行、并經(jīng)過(guò)全面驗(yàn)證的系統(tǒng)比以前變得更難。

  傳統(tǒng)上,軟件驗(yàn)證和調(diào)試及硬件驗(yàn)證和調(diào)試一直是兩個(gè)不同的世界。通常情況下,軟件團(tuán)隊(duì)和硬件團(tuán)隊(duì)各自為政,前者專注于編程模型內(nèi)部的軟件執(zhí)行,后者則在硬件開(kāi)發(fā)框架內(nèi)進(jìn)行調(diào)試,其中時(shí)鐘周期精度、并行運(yùn)行及調(diào)試數(shù)據(jù)回溯原始設(shè)計(jì)的關(guān)系是關(guān)鍵。理論上,經(jīng)過(guò)全面調(diào)試后,軟件和硬件應(yīng)無(wú)差錯(cuò)地協(xié)同運(yùn)行。但在實(shí)際環(huán)境中,無(wú)差錯(cuò)協(xié)同運(yùn)行的情況不多,正因如此,經(jīng)常會(huì)導(dǎo)致關(guān)鍵成本上升及產(chǎn)品開(kāi)發(fā)周期延誤。

  為在合理的成本和時(shí)間范圍內(nèi)實(shí)現(xiàn)更高的集成度,業(yè)界必須轉(zhuǎn)向新的方法:設(shè)計(jì)的洞察。換句話說(shuō),如果我們想能夠高效地持續(xù)驗(yàn)證和調(diào)試這些系統(tǒng),工程師們必須提前設(shè)計(jì)成能夠提供全面的系統(tǒng)視圖。其中的關(guān)鍵是能夠了解涵蓋硬件領(lǐng)域和軟件領(lǐng)域的各種行為之間的臨時(shí)關(guān)系。本文介紹了使用的一種方法,說(shuō)明了通過(guò)整合硬件調(diào)試視圖和軟件調(diào)試視圖,可以更快、更高效地調(diào)試整個(gè)系統(tǒng)。

  構(gòu)建測(cè)試臺(tái)

  圖1所示的 由一塊32位RISC指令集處理器及一條AMBA APB外設(shè)總線組成,處理器連接到AMBA AHB系統(tǒng)總線上。SoC還包含一個(gè)DDR2存儲(chǔ)控制器、一個(gè)千兆位以太網(wǎng)網(wǎng)絡(luò)適配器、一個(gè)Compact Flash控制器、VGA控制器及多個(gè)低速外設(shè)接口。SoC運(yùn)行Debian GNU Linux操作系統(tǒng)第4版,這一操作系統(tǒng)運(yùn)行v2.6.21內(nèi)核。處理器核心工作頻率為60MHz,DDR存儲(chǔ)控制器工作頻率為100MHz,其它I/O 外設(shè)在33MHz~12MHz之間的基本頻率上運(yùn)行。整個(gè)SoC在Virtex-5開(kāi)發(fā)板卡上實(shí)現(xiàn)。

 如何利用嵌入式儀器調(diào)試SoC(一) 

  圖1. SoC基線測(cè)試臺(tái)

  總體上看,這一系統(tǒng)是一臺(tái)全功能計(jì)算機(jī),能夠提供基于終端的用戶接入,能夠連接互聯(lián)網(wǎng),運(yùn)行應(yīng)用程序,安裝文件系統(tǒng)等等。SoC的這些特點(diǎn)產(chǎn)生了復(fù)雜的調(diào)試場(chǎng)景,給硬件調(diào)試設(shè)施和軟件調(diào)試設(shè)施的功能帶來(lái)了壓力。在大多數(shù)情況下,關(guān)鍵操作都同時(shí)涵蓋硬件和軟件。

  調(diào)試基礎(chǔ)設(shè)施

  處理器核心開(kāi)發(fā)人員一般會(huì)提供調(diào)試基礎(chǔ)設(shè)施,要么是某個(gè)核心的一套固定特性,要么是一群核心的可配置插件。不管是哪種形式,調(diào)試基礎(chǔ)設(shè)施都變成了被制造的核心的一部分。然后調(diào)試軟件使用這個(gè)基礎(chǔ)設(shè)施,為軟件開(kāi)發(fā)人員提供調(diào)試特性。

  與大多數(shù)現(xiàn)代處理器類似,如英特爾處理器、AMD處理器、IBM處理器、Oracle處理器和ARM處理器,這里突出顯示的處理器核心支持一套基本調(diào)試功能。在本例中,可以通過(guò)JTAG訪問(wèn)的“后門”,允許軟件調(diào)試程序(如GDB)讀取和寫入系統(tǒng)中的存儲(chǔ)器,檢測(cè)處理器的運(yùn)行狀態(tài)。通過(guò)這些機(jī)制及訪問(wèn)原始軟件源代碼,GDB和其它軟件調(diào)試程序可以提供軟件斷點(diǎn)、單步操作、變量值檢查、堆棧跟蹤、初始條件配置、交替存儲(chǔ)器值及恢復(fù)功能。

在大多數(shù)情況下,硬件調(diào)試設(shè)施并不是與構(gòu)成SoC的硬件IP核心一起提供的。相反,硬件調(diào)試設(shè)施通常疊加到現(xiàn)有的SoC設(shè)計(jì)上。造成這種差異的原因有很多。首先,與軟件調(diào)試不同,硬件要求的底層功能具有多樣化特點(diǎn),通常只有在SoC組裝時(shí)才能得到全面了解。此外,每種新的SoC通常要求不同的調(diào)試基礎(chǔ)設(shè)施。最后,作為新興領(lǐng)域,硬件調(diào)試的標(biāo)準(zhǔn)化程度不高,生態(tài)系統(tǒng)建設(shè)不夠。因此,硬件調(diào)試設(shè)施通常被留給各個(gè)設(shè)計(jì)人員,這些設(shè)計(jì)人員會(huì)創(chuàng)建針對(duì)不同功能領(lǐng)域的特定調(diào)試特性。在大型機(jī)構(gòu)中,通常會(huì)開(kāi)發(fā)擁有內(nèi)部支持的工具和結(jié)構(gòu)。但是,隨著SoC的復(fù)雜程度不斷提高,創(chuàng)建高效硬件調(diào)試設(shè)施的復(fù)雜程度也在不斷提高,內(nèi)部開(kāi)發(fā)工作難以為繼。

  作為替代方案,測(cè)試和測(cè)量廠商可以提供完整的設(shè)計(jì)工具、IP庫(kù)和工作流程,創(chuàng)建硬件調(diào)試設(shè)施。圖2所示的設(shè)置稱為Tektronix Clarus Post-Silicon Validation Suite,這一驗(yàn)證套件由多種可以重復(fù)配置的儀器組成,這些儀器可以連接起來(lái),分布在整個(gè)SoC中,創(chuàng)建滿足特定功能要求的調(diào)試基礎(chǔ)設(shè)施。 Implementer工具可以在RTL級(jí)(Vreilog、System Verilog和VHDL)把硬件設(shè)計(jì)中任何層級(jí)的任何信號(hào)儀器化。Analyzer通過(guò)JTAG或以太網(wǎng)連接,配置和控制嵌入式儀器。最后,Investigator把嵌入式儀器收集的數(shù)據(jù)向回映射到原始RTL(在仿真環(huán)境中),實(shí)現(xiàn)更復(fù)雜的調(diào)試。

  如何利用嵌入式儀器調(diào)試SoC(一)

  圖2: Clarus Post-Silicon Vlidtion Suite套件的結(jié)構(gòu)。

  嵌入式儀器被應(yīng)用到SOC中,提供調(diào)試基礎(chǔ)設(shè)施,如圖3所示。其中一個(gè)重要方面是能夠在調(diào)試過(guò)程中重新配置儀器,針對(duì)SoC不同領(lǐng)域中的各種信號(hào)和場(chǎng)景?;緝x器稱為捕獲站,其獨(dú)立管理觀測(cè)數(shù)據(jù)的選擇、壓縮、處理和存儲(chǔ)。多臺(tái)捕獲站通常一起使用,為某個(gè)SoC創(chuàng)建特定設(shè)計(jì)基礎(chǔ)設(shè)施。在插入過(guò)程中,捕獲站配置一系列關(guān)心的潛在信號(hào)、最高同時(shí)觀測(cè)數(shù)量以及最大RAM容量。捕獲站一般被分配給特定時(shí)鐘域,同時(shí)捕獲觀測(cè)數(shù)據(jù)。Analyzer從每個(gè)捕獲站中收集數(shù)據(jù),顛倒壓縮算法,把每個(gè)站中捕獲的數(shù)據(jù)對(duì)準(zhǔn),在所有捕獲站中生成時(shí)間相關(guān)的視圖。

  如何利用嵌入式儀器調(diào)試SoC(一)

  圖3: 硬件調(diào)試基礎(chǔ)設(shè)施。

  本例中使用的SoC有四個(gè)捕獲站:一個(gè)位于處理器時(shí)鐘域,標(biāo)為1號(hào)捕獲站(60MHz),針對(duì)362個(gè)信號(hào);一個(gè)位于RX以太網(wǎng)域,標(biāo)為2號(hào)捕獲站 (25MHz),針對(duì)17個(gè)信號(hào);一個(gè)位于TX以太網(wǎng)域,標(biāo)為3號(hào)捕獲站(25MHz),針對(duì)17個(gè)信號(hào);最后一個(gè)位于閃存時(shí)鐘域,標(biāo)為4號(hào)捕獲站 (33MHz),針對(duì)178個(gè)信號(hào)。每個(gè)捕獲站都并行運(yùn)行,能夠選擇性地觀測(cè)任意信號(hào)組合。Analyzer工具的最終輸出是一個(gè)表示實(shí)際硅片器件中時(shí)鐘周期準(zhǔn)確信號(hào)事務(wù)的波形,如圖4所示。

  如何利用嵌入式儀器調(diào)試SoC(一)

  圖4: SoC波形實(shí)例。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 儀器調(diào)試 SoC

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉