采用開放式芯片協(xié)議(OCP)總線的跟蹤儀器與架構(gòu)
基于 OCP 的總線可進(jìn)行多種高帶寬操作,在基本數(shù)據(jù)傳輸?shù)幕A(chǔ)上添加了許多新的特性和功能。這些新性能包括專用總線命令模式、脈沖操作、多數(shù)據(jù)標(biāo)簽以及用于增加跟蹤信號(hào)數(shù)量的擴(kuò)展能力。附錄中列出的 MIPS24K OCP 接口就是這類產(chǎn)品的典型。除了提供基本地址尋址和數(shù)據(jù)操作的總線接口信號(hào)外,OCP 還提供多種可選信號(hào),以調(diào)用專用處理器的特定強(qiáng)化功能,如數(shù)據(jù)排列、脈沖及多線程運(yùn)行等功能。
采用 OCP 這類先進(jìn)總線架構(gòu)的另一個(gè)好處是,它能夠更有效地協(xié)調(diào)內(nèi)部大量集成內(nèi)核的復(fù)雜工作。分析因素包括對(duì)給定OCP 接口提出特定的問題,以及片上子系統(tǒng)性能等更受全球關(guān)注的問題。這些問題涵蓋諸如理解和優(yōu)化傳輸效率、延遲、飽和、資源沖突和其他操作選項(xiàng)等可能對(duì)處理器元件的性能和運(yùn)行產(chǎn)生直接影響等因素
雖然仿真是開發(fā)流程的重要環(huán)節(jié),但無論是在原型還是在系統(tǒng)級(jí)驗(yàn)證階段,對(duì)硬件本身狀況進(jìn)行分析也是同樣重要的環(huán)節(jié),而最終產(chǎn)品本身的硬件分析就更加重要了。在大多數(shù)情況下,諸如硬件內(nèi)嵌入式總線在信息分析中所遇到的問題通常是能見度難題 —— 您很難確定自己看不到的問題。使用傳統(tǒng)的 JTAG 掃描通常很難解決這個(gè)能見度難題,其原因在于:
由于總線運(yùn)行的多周期性,在一個(gè)總線運(yùn)行周期內(nèi)有些信號(hào)會(huì)在不同時(shí)段變得非常活躍,調(diào)試工具應(yīng)當(dāng)進(jìn)行連續(xù)的跟蹤,而不是單個(gè)周期的瞬態(tài)圖;
總線運(yùn)行問題牽涉到至少兩個(gè)通信時(shí)鐘(如處理器和存儲(chǔ)器外設(shè))。傳統(tǒng)的調(diào)試方法,如暫停部分系統(tǒng)進(jìn)行測(cè)試可能會(huì)帶來變化并引入新的變量,從而干預(yù)測(cè)試環(huán)節(jié)和過程;
如果問題是間歇性和少量的,那么追蹤操作就應(yīng)當(dāng)采用觸發(fā)模式,如實(shí)時(shí)捕獲有重要意義的總線周期信息。
目前廣泛采用的具有調(diào)試功能的嵌入式OCP 總線方法是在設(shè)計(jì)中添加片上儀器(OCI),以改善子系統(tǒng)接口的能見度。OCI 實(shí)際上是一個(gè)專門用來高效跟蹤嵌入式信號(hào)的IP 子系統(tǒng)。它既不通過 JTAG 端口進(jìn)行緩沖,也不通過專門的測(cè)試端口流到您的 PC 上以供觀看。 OCI 能夠提供成功的嵌入式設(shè)計(jì)所必需的高效跟蹤功能,廣泛應(yīng)用于調(diào)試、嵌入式處理器運(yùn)行控制和邏輯分析。OCI 解決方案能夠解決片上總線分析中 SoC 的特定問題,并為非可見的總線接口提供強(qiáng)大的調(diào)試能見度。最近OCI 解決方案已開始面市。
顯示的是一個(gè)基本的多內(nèi)核架構(gòu)(雙處理器、存儲(chǔ)器接口和采用通用片上總線的定制化IP)和幾類可使該子系統(tǒng)更加簡(jiǎn)化,并可提高調(diào)試效率的可添加儀器。圖1 詳盡列出了本文探討的重點(diǎn)——總線監(jiān)測(cè)與跟蹤儀器的組成部分,其他支持或補(bǔ)充的儀器分區(qū)可以包含在處理器和邏輯分析調(diào)試的地址中。
調(diào)試儀器的功能基本可劃分為兩個(gè)主要類型:
·專門用于進(jìn)行調(diào)試控制、支持特定處理器和其他內(nèi)核的系統(tǒng)內(nèi)分析分區(qū);
·支持跟蹤和任何用戶定義信號(hào)的更為通用的邏輯分析器分區(qū)。
總線分析通常用來處理用于通用邏輯分析的同類儀器,也能執(zhí)行總線架構(gòu)和協(xié)議專用信號(hào)信息的線上處理和后處理。應(yīng)當(dāng)強(qiáng)調(diào)的是,圖中所示的所有儀器都與單個(gè) JTAG 流程鏈關(guān)系緊密,因此需要通過定制的JTAG 控制器接口進(jìn)行訪問。通過同樣的JTAG 接口還能夠訪問邊界掃描和其他傳統(tǒng)的JTAG 功能。
處理器內(nèi)核的系統(tǒng)內(nèi)分析器(ISA)分區(qū)能夠?yàn)樘幚砥魈峁┨囟ǖ倪\(yùn)行控制、觸發(fā)硬/軟件斷點(diǎn)監(jiān)測(cè)及實(shí)時(shí)跟蹤指令和數(shù)據(jù)等操作。
FS2 ISA-MIPS 能夠執(zhí)行以下典型的處理器調(diào)試子系統(tǒng)操作:
·JTAG 內(nèi)核的啟動(dòng)、停止、斷點(diǎn)和單步執(zhí)行;
·無限制的軟件斷點(diǎn);
·多達(dá)15個(gè)硬件事件/斷點(diǎn);
·基于指令執(zhí)行、存儲(chǔ)、IO操作、地址值或地址范圍、操作碼類型或級(jí)別的觸發(fā)操作;
·每個(gè)周期高達(dá)64 位的實(shí)時(shí)跟蹤;
·執(zhí)行分支跟蹤信息的跟蹤;
·采用指令碼和執(zhí)行顯示的調(diào)試器。
為了最有效地利用跟蹤信息,ISA 通常會(huì)采用分支跟蹤信息等壓縮技術(shù),這樣就能夠使ISA 集中處理指令中斷,從而減少所消耗的存儲(chǔ)器資源。跟蹤信息可以與GDB等調(diào)試器軟件工具流程鏈緊密集成,實(shí)現(xiàn)更好的源代碼分析和相關(guān)性。只要設(shè)計(jì)和資源運(yùn)用得當(dāng),單個(gè)ISA 分區(qū)內(nèi)就能集成不止一個(gè)內(nèi)核(給定類型),并可作為多內(nèi)核系統(tǒng)調(diào)試中的共享資源。
在大多數(shù)設(shè)計(jì)中,處理器只是需要進(jìn)行系統(tǒng)分析的若干子系統(tǒng)之一。在特殊應(yīng)用的協(xié)處理器、存儲(chǔ)控制器、外設(shè)及其他功能的設(shè)計(jì)中都包含邏輯分區(qū)。邏輯與處理器IP 在調(diào)試要求上有幾個(gè)重要區(qū)別。
邏輯導(dǎo)航器是First Silicon SolutiONs公司開發(fā)的一個(gè)通用JTAG 兼容邏輯分析器的儀器,其主要功能包括:
·負(fù)責(zé)監(jiān)測(cè)和跟蹤合成過程中選取的所有用戶定義信號(hào);
·64K跟蹤周期中支持高達(dá)256 個(gè)信號(hào)(采用片上 RAM);
·門受限的應(yīng)用的跟蹤范圍最小可達(dá)1個(gè)信號(hào)×64 個(gè)周期;
·任何跟蹤信號(hào)和外部觸發(fā)邊緣或水平的組合或連續(xù)觸發(fā);
·基于狀態(tài)的順序觸發(fā)器和基于儀器分區(qū)資源的計(jì)數(shù)器觸發(fā);
·同步化多儀器的可選時(shí)間戳記 ~ 制定單周期或擴(kuò)展時(shí)間跟蹤的時(shí)間戳記,可以設(shè)置長(zhǎng)達(dá)48位;
包含一個(gè)可通過JTAG 端口進(jìn)行調(diào)試控制的JTAG 控制通用寄存器。
FS2 總線導(dǎo)航器等片上總線分析器能夠?yàn)榭偩€運(yùn)行提供定制化邏輯分析儀器操作。總線分析有兩種典型的操作形式 —— 接口跟蹤重要信號(hào)的形式(OCP 插槽)或總線結(jié)構(gòu)內(nèi)的跟蹤形式。OCP具有插槽級(jí)跟蹤能力,能夠跟蹤從每個(gè)總線主控路由到總線導(dǎo)航器的輸入多工器的信號(hào)。既能一次對(duì)一個(gè)總線主控進(jìn)行跟蹤,又能根據(jù)特定應(yīng)用需求對(duì)所有總線主控中選定的信號(hào)進(jìn)行跟蹤。
總線導(dǎo)航器還能確定諸如給定設(shè)計(jì)的邊帶和可選信號(hào)的數(shù)據(jù)字的大小和數(shù)量,以確定合成過程中RTL 操作的參數(shù),從而實(shí)現(xiàn)給定設(shè)計(jì)的定制化跟蹤。
總線導(dǎo)航器還可像用于基于OCP 狀態(tài)的處理器調(diào)試操作的低延遲觸發(fā)那樣,為MIPS調(diào)試分區(qū)提供直接交叉觸發(fā)接口分區(qū)。同樣,處理器輸出也能夠用于總線儀器的可選輸出信號(hào),在處理器操作的基礎(chǔ)上實(shí)現(xiàn)總線啟動(dòng)和停止的低延遲觸發(fā)。
為了支持流水線總線操作,給定周期的跟蹤同步、排列指令和響應(yīng)部分都以單個(gè)周期顯示。這種總線跟蹤查看方式能夠更直觀地顯示軟件分析中的觸發(fā)與跟蹤。
該儀器減少了總線跟蹤的閑置的和“沒有準(zhǔn)備”的周期,保存了對(duì)RAM 資源的跟蹤,使跟蹤過程更便于讀取,而時(shí)間戳記則確保系統(tǒng)與其他調(diào)試操作的同步。
操作得當(dāng)?shù)脑挘蟽x器能在芯片產(chǎn)品設(shè)計(jì)的整個(gè)生命周期內(nèi)直觀、有效地改善設(shè)計(jì)的易測(cè)性、可維護(hù)性和可分析性。要實(shí)現(xiàn)片上調(diào)試功能,要求設(shè)計(jì)人員在硬件驗(yàn)證過程中懂得如何運(yùn)用調(diào)試工具,同時(shí)考慮在給定的解決方案中如何將儀器解決方案集成到設(shè)計(jì)中。
用戶可用到的功能包括:
靈活的片上觸發(fā)、跟蹤和性能分析 —當(dāng)大量數(shù)據(jù)通過基于總線的OCP時(shí),只有某些數(shù)據(jù)才有用,重要的是訪問您所需要的信號(hào)。其中一種分析方法就是允許片上性能分析功能監(jiān)測(cè)和發(fā)送摘要信息。例如,您并不需要在每次總線飽和時(shí)都對(duì)數(shù)據(jù)進(jìn)行跟蹤,只有當(dāng)數(shù)據(jù)的確需要跟蹤時(shí)才進(jìn)行逐條的跟蹤,這樣就可以只需要使用比較少的性能分析分區(qū)。
各級(jí)片上調(diào)試的協(xié)處理與交叉觸發(fā)—如果系統(tǒng)并不是在隔離的條件下工作,就不要采取調(diào)試方案。總線與處理器運(yùn)行和性能間存在著正相關(guān)的關(guān)系,特別是相互依賴或完全同步的多內(nèi)核系統(tǒng)。在設(shè)計(jì)時(shí),系統(tǒng)級(jí)調(diào)試解決方案應(yīng)該支持其他儀器分區(qū)。
與其他調(diào)試器/驗(yàn)證工具的集成 —MIPS 處理器軟件工具鏈支持諸如二進(jìn)制指令到源代碼等調(diào)試功能。為了充分利用調(diào)試信息,儀器環(huán)境應(yīng)當(dāng)允許將跟蹤信息通過某些途徑引入調(diào)試器工具。同理,邏輯分析工具業(yè)應(yīng)該允許將邏輯跟蹤信息通過某些方法引入仿真工具,以便更簡(jiǎn)便地對(duì)實(shí)際邏輯信息和仿真邏輯信息進(jìn)行比較。
與內(nèi)部信號(hào)速度保持同步并保持合適的門大小— 您需要做的最后一件事是將調(diào)試分區(qū)添加到定時(shí)閉合功能中,或是采用另一個(gè)尺寸的芯片或封裝。調(diào)試儀器尺寸可能很小(在某些情況下只有幾千個(gè)門或更少)也可能很大,特別存在大量復(fù)雜觸發(fā)操作或大量跟蹤時(shí),OCI 應(yīng)與系統(tǒng)中的其他部分以同樣的速度運(yùn)行。
根據(jù)系統(tǒng)不同需要進(jìn)行配置——如果您只需要有限的調(diào)試能見度,就不需要一套“豪華”的調(diào)試解決方案了。反過來,如果要進(jìn)行重大問題的調(diào)試,就要采用更好的調(diào)試解決方案。調(diào)試解決方案應(yīng)該適應(yīng)開發(fā)周期不同階段的不同需要—— 在原型和仿真器階段應(yīng)使用較大的調(diào)試方案,而在量產(chǎn)開始階段則使用較小的調(diào)試方案 —在不同的產(chǎn)品生命周期里應(yīng)當(dāng)選擇相同的功能和接口,但是可以選擇較低的性能和較少的選項(xiàng)。
片上儀器不僅局限于IP — 能夠正確解讀所提供的調(diào)試信息非常重要,而具備一定的支持級(jí)別也是不可或缺的。大部分儀器 IP 的設(shè)計(jì)初衷是為了支持探針和調(diào)試電纜的工作。它們有專用的驅(qū)動(dòng)器和用來格式化,并實(shí)現(xiàn)硬件儀器和跟蹤、控制 GUI (圖3 就是一個(gè)例子)和命令行接口之間通信的API。在定制和集成的解決方案中,標(biāo)準(zhǔn)驅(qū)動(dòng)器和API 具備明顯的優(yōu)勢(shì)。例如,F(xiàn)S2 就在其儀器方工具中廣泛采用了 Tcl/Tk、MDI、XML和 Eclipse 等軟件標(biāo)準(zhǔn)。
結(jié)語
基于SoC 的復(fù)雜器件的測(cè)試和分析方法正在經(jīng)歷著巨大轉(zhuǎn)變,一些新型片上儀器正不斷成為整體解決方案的組成部分。像MIPS24K 這種具有OCP多功能總線的性能的處理器堪稱片上分析能力中的典范,是那些領(lǐng)先的尖端數(shù)字平臺(tái)所必需的。
評(píng)論