總線實(shí)現(xiàn)片內(nèi)硬件調(diào)試支持單元設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
片上系統(tǒng)的出現(xiàn)使得芯片可以實(shí)現(xiàn)更加復(fù)雜的功能,獲取更高的性能,但同時(shí)其內(nèi)部信號(hào)也變得越來(lái)越難以觀察和控制,相應(yīng)的測(cè)試和調(diào)試工作也遇到了難以克服的時(shí)間復(fù)雜性困難。國(guó)際半導(dǎo)體技術(shù)路線圖( Internat io nal Technolo gy Roadmap for Semico nducto rs,IT RS) 指出,調(diào)試和定位問(wèn)題所需要的時(shí)間將會(huì)隨著工藝的進(jìn)步呈指數(shù)型增長(zhǎng)。由于測(cè)試和調(diào)試工作的復(fù)雜性,其費(fèi)用往往比設(shè)計(jì)費(fèi)用還要高,大約要占整個(gè)SoC 總設(shè)計(jì)成本的1/ 3 以上。在整個(gè)SoC 的硬件設(shè)計(jì)過(guò)程中,從第一次投片到最后成功的實(shí)現(xiàn)所有功能,硬件調(diào)試的時(shí)間已經(jīng)接近整個(gè)時(shí)間的35%,而且這個(gè)數(shù)字隨著集成度的提高還會(huì)增加。
在整個(gè)片上系統(tǒng)中,微處理器是核心,也是最復(fù)雜的模塊,所以各個(gè)處理器內(nèi)核的提供商也都投入了大量的研發(fā)力量,在其內(nèi)核中集成了豐富的調(diào)試功能。當(dāng)今流行的調(diào)試技術(shù)大多采用復(fù)用JT AG 的調(diào)試方案,但是這種方法一般都是在目標(biāo)系統(tǒng)內(nèi)部插入掃描鏈,當(dāng)處理器高速工作的時(shí)候,難免會(huì)限制處理器性能的提高。
為此,該設(shè)計(jì)提出一種新的調(diào)試結(jié)構(gòu),它不依賴JTA G接口且需要較少的引腳開(kāi)銷(xiāo),通過(guò)掛接在片上高速總線上來(lái)實(shí)時(shí)監(jiān)測(cè)片內(nèi)通信狀況,同時(shí)它直接與處理器進(jìn)行交互,能夠在不影響處理器正常工作的情況下控制處理器以及訪問(wèn)所有片上存儲(chǔ)單元,用戶可以通過(guò)專用的數(shù)據(jù)輸出鏈路進(jìn)行遠(yuǎn)程調(diào)試,發(fā)布調(diào)試指令以及獲取反饋信息。結(jié)合以上特點(diǎn),該設(shè)計(jì)將以文獻(xiàn)[ 3]中提出的一個(gè)良好調(diào)試結(jié)構(gòu)所需具備的三個(gè)基本特征作為設(shè)計(jì)出發(fā)點(diǎn): 調(diào)試的可觀察性; 調(diào)試的可控制性; 高效的通信效率; 低入侵性。
1 調(diào)試系統(tǒng)構(gòu)成
以硬件調(diào)試模塊DSU 為核心,AMBA 2. 0 總線為構(gòu)架,專用UART 為調(diào)試鏈路接口的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 調(diào)試系統(tǒng)結(jié)構(gòu)圖
調(diào)試主機(jī)通過(guò)總線接口U ART 對(duì)調(diào)試單元發(fā)出調(diào)試指令; 調(diào)試單元將控制系統(tǒng)的調(diào)試狀態(tài),在滿足觸發(fā)條件時(shí)將通過(guò)與處理器的直接通信來(lái)掛起處理器,用戶可以利用調(diào)試主機(jī)通過(guò)調(diào)試接口訪問(wèn)片上所有存儲(chǔ)單元,獲取系統(tǒng)狀態(tài)信息; 總線追蹤緩存可以工作在兩種模式下,在正常模式下通過(guò)DSU 實(shí)時(shí)記錄總線通信狀態(tài),而在調(diào)試模式下,將由調(diào)試主機(jī)對(duì)其進(jìn)行訪問(wèn),尋找問(wèn)題發(fā)生的根源; 指令追蹤緩存處于微處理器內(nèi)部,用來(lái)存儲(chǔ)執(zhí)行過(guò)的指令; 調(diào)試接口UART 將為調(diào)試主機(jī)和總線之間提供協(xié)議轉(zhuǎn)換服務(wù),實(shí)現(xiàn)串行數(shù)據(jù)與并行數(shù)據(jù)的相互轉(zhuǎn)化。
1. 1 AHB 總線
在SoC 設(shè)計(jì)中,芯片內(nèi)部總線的設(shè)計(jì)往往決定了芯片的性能、功耗與各模塊的復(fù)雜度。通常依據(jù)以下兩個(gè)方面選取總線: 一是芯片設(shè)計(jì)流程其內(nèi)在的需求,二是對(duì)交換帶寬、延時(shí)和效率靈活性的需求。該設(shè)計(jì)采用ARM 公司提出的一種片內(nèi)高速總線協(xié)議AHB,它具有以下特點(diǎn): 支持突發(fā)傳輸; 支持分塊傳輸; 單周期總線控制權(quán)移交; 單時(shí)鐘沿操作; 非三態(tài)執(zhí)行; 寬數(shù)據(jù)總線架構(gòu); 數(shù)據(jù)和地址流水重疊。此外,該協(xié)議還支持靜態(tài)時(shí)序分析以及友好的測(cè)試插入。
該系統(tǒng)設(shè)計(jì)的AHB 結(jié)構(gòu)如圖2 所示,由主從模塊、仲裁器以及地址譯碼器構(gòu)成,采用中央多路選擇器的互聯(lián)方式。作為核心部件,仲裁器接收最多16 個(gè)主設(shè)備的總線請(qǐng)求,為實(shí)現(xiàn) 可配置!的設(shè)計(jì)初衷,采用基于分治的仲裁策略,實(shí)現(xiàn)了固定與輪詢兩種優(yōu)先級(jí)算法,可以供用戶靈活選用。AHB 采用的集中式地址譯碼機(jī)制,有利于提高外圍設(shè)備的可移植性,中央譯碼器根據(jù)地址總線發(fā)來(lái)的地址以及各個(gè)從機(jī)的身份信息進(jìn)行譯碼以選擇從設(shè)備,該設(shè)計(jì)為減少運(yùn)算邏輯和降低功耗,僅對(duì)地址的高端位進(jìn)行判別。整個(gè)AHB 系統(tǒng)由多路選擇器連接起來(lái),避免了采用三態(tài)總線帶來(lái)的功耗、速度以及可測(cè)性方面的問(wèn)題,系統(tǒng)所需的控制信號(hào)和地址數(shù)據(jù)將由多路選擇器路由到相應(yīng)的目的設(shè)備,而根據(jù)路由的方向可將多路選擇器分為主模塊到從模塊多路選擇器和從模塊到主模塊的多路選擇器。此外,為了解決在沒(méi)有主機(jī)請(qǐng)求總線時(shí)的總線??? bus parking ) 問(wèn)題,此系統(tǒng)還設(shè)計(jì)了一個(gè)缺省主設(shè)備( default master) ,其選擇??康闹鳈C(jī)號(hào)依賴選取的仲裁算法。split 傳送是AHB 的一個(gè)顯著特點(diǎn),它在防止系統(tǒng)死鎖和充分利用總線方面起到了積極作用,這里為了解決分塊鎖定( split lo cked) 這一矛盾以及地址未命中問(wèn)題,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)虛擬從設(shè)備( dummy slave) ,當(dāng)以上問(wèn)題出現(xiàn)時(shí),將由虛擬從設(shè)備代為發(fā)送回應(yīng)信號(hào)。
硬件調(diào)試支持單元設(shè)計(jì) 1' />
圖2 AH B 總線系統(tǒng)互聯(lián)結(jié)構(gòu)