總線(xiàn)實(shí)現片內硬件調試支持單元設計
片上系統的出現使得芯片可以實(shí)現更加復雜的功能,獲取更高的性能,但同時(shí)其內部信號也變得越來(lái)越難以觀(guān)察和控制,相應的測試和調試工作也遇到了難以克服的時(shí)間復雜性困難。國際半導體技術(shù)路線(xiàn)圖( Internat io nal Technolo gy Roadmap for Semico nducto rs,IT RS) 指出,調試和定位問(wèn)題所需要的時(shí)間將會(huì )隨著(zhù)工藝的進(jìn)步呈指數型增長(cháng)。由于測試和調試工作的復雜性,其費用往往比設計費用還要高,大約要占整個(gè)SoC 總設計成本的1/ 3 以上。在整個(gè)SoC 的硬件設計過(guò)程中,從第一次投片到最后成功的實(shí)現所有功能,硬件調試的時(shí)間已經(jīng)接近整個(gè)時(shí)間的35%,而且這個(gè)數字隨著(zhù)集成度的提高還會(huì )增加。
本文引用地址:http://dyxdggzs.com/article/150345.htm 在整個(gè)片上系統中,微處理器是核心,也是最復雜的模塊,所以各個(gè)處理器內核的提供商也都投入了大量的研發(fā)力量,在其內核中集成了豐富的調試功能。當今流行的調試技術(shù)大多采用復用JT AG 的調試方案,但是這種方法一般都是在目標系統內部插入掃描鏈,當處理器高速工作的時(shí)候,難免會(huì )限制處理器性能的提高。
為此,該設計提出一種新的調試結構,它不依賴(lài)JTA G接口且需要較少的引腳開(kāi)銷(xiāo),通過(guò)掛接在片上高速總線(xiàn)上來(lái)實(shí)時(shí)監測片內通信狀況,同時(shí)它直接與處理器進(jìn)行交互,能夠在不影響處理器正常工作的情況下控制處理器以及訪(fǎng)問(wèn)所有片上存儲單元,用戶(hù)可以通過(guò)專(zhuān)用的數據輸出鏈路進(jìn)行遠程調試,發(fā)布調試指令以及獲取反饋信息。結合以上特點(diǎn),該設計將以文獻[ 3]中提出的一個(gè)良好調試結構所需具備的三個(gè)基本特征作為設計出發(fā)點(diǎn): 調試的可觀(guān)察性; 調試的可控制性; 高效的通信效率; 低入侵性。
1 調試系統構成
以硬件調試模塊DSU 為核心,AMBA 2. 0 總線(xiàn)為構架,專(zhuān)用UART 為調試鏈路接口的系統結構如圖1所示。

圖1 調試系統結構圖
調試主機通過(guò)總線(xiàn)接口U ART 對調試單元發(fā)出調試指令; 調試單元將控制系統的調試狀態(tài),在滿(mǎn)足觸發(fā)條件時(shí)將通過(guò)與處理器的直接通信來(lái)掛起處理器,用戶(hù)可以利用調試主機通過(guò)調試接口訪(fǎng)問(wèn)片上所有存儲單元,獲取系統狀態(tài)信息; 總線(xiàn)追蹤緩存可以工作在兩種模式下,在正常模式下通過(guò)DSU 實(shí)時(shí)記錄總線(xiàn)通信狀態(tài),而在調試模式下,將由調試主機對其進(jìn)行訪(fǎng)問(wèn),尋找問(wèn)題發(fā)生的根源; 指令追蹤緩存處于微處理器內部,用來(lái)存儲執行過(guò)的指令; 調試接口UART 將為調試主機和總線(xiàn)之間提供協(xié)議轉換服務(wù),實(shí)現串行數據與并行數據的相互轉化。
1. 1 AHB 總線(xiàn)
在SoC 設計中,芯片內部總線(xiàn)的設計往往決定了芯片的性能、功耗與各模塊的復雜度。通常依據以下兩個(gè)方面選取總線(xiàn): 一是芯片設計流程其內在的需求,二是對交換帶寬、延時(shí)和效率靈活性的需求。該設計采用ARM 公司提出的一種片內高速總線(xiàn)協(xié)議AHB,它具有以下特點(diǎn): 支持突發(fā)傳輸; 支持分塊傳輸; 單周期總線(xiàn)控制權移交; 單時(shí)鐘沿操作; 非三態(tài)執行; 寬數據總線(xiàn)架構; 數據和地址流水重疊。此外,該協(xié)議還支持靜態(tài)時(shí)序分析以及友好的測試插入。
該系統設計的AHB 結構如圖2 所示,由主從模塊、仲裁器以及地址譯碼器構成,采用中央多路選擇器的互聯(lián)方式。作為核心部件,仲裁器接收最多16 個(gè)主設備的總線(xiàn)請求,為實(shí)現 可配置!的設計初衷,采用基于分治的仲裁策略,實(shí)現了固定與輪詢(xún)兩種優(yōu)先級算法,可以供用戶(hù)靈活選用。AHB 采用的集中式地址譯碼機制,有利于提高外圍設備的可移植性,中央譯碼器根據地址總線(xiàn)發(fā)來(lái)的地址以及各個(gè)從機的身份信息進(jìn)行譯碼以選擇從設備,該設計為減少運算邏輯和降低功耗,僅對地址的高端位進(jìn)行判別。整個(gè)AHB 系統由多路選擇器連接起來(lái),避免了采用三態(tài)總線(xiàn)帶來(lái)的功耗、速度以及可測性方面的問(wèn)題,系統所需的控制信號和地址數據將由多路選擇器路由到相應的目的設備,而根據路由的方向可將多路選擇器分為主模塊到從模塊多路選擇器和從模塊到主模塊的多路選擇器。此外,為了解決在沒(méi)有主機請求總線(xiàn)時(shí)的總線(xiàn)??? bus parking ) 問(wèn)題,此系統還設計了一個(gè)缺省主設備( default master) ,其選擇??康闹鳈C號依賴(lài)選取的仲裁算法。split 傳送是AHB 的一個(gè)顯著(zhù)特點(diǎn),它在防止系統死鎖和充分利用總線(xiàn)方面起到了積極作用,這里為了解決分塊鎖定( split lo cked) 這一矛盾以及地址未命中問(wèn)題,設計實(shí)現了一個(gè)虛擬從設備( dummy slave) ,當以上問(wèn)題出現時(shí),將由虛擬從設備代為發(fā)送回應信號。

圖2 AH B 總線(xiàn)系統互聯(lián)結構
1. 2 T race Buf fer
為了實(shí)現引言中提到的調試的可觀(guān)察性,本系統中就必須具備能夠記錄總線(xiàn)通信信息以及指令執行情況的模塊。AHB T race Buf fer 就是一個(gè)循環(huán)緩沖存儲體,被用來(lái)存儲AHB 上通信的所有信息。AHB 總線(xiàn)上的地址、數據和各種控制信號存儲在其中,并且可以在以后的分析中讀出; 同時(shí)在需要調試寫(xiě)入的時(shí)候也可以通過(guò)AHB 寫(xiě)總線(xiàn)寫(xiě)入數據。本模塊因每個(gè)周期需記錄的信息位寬為128 b,所以設計的AHB TraceBuf fer 存儲器將采用4 個(gè)位寬為32 b 的同步SRAM構成,深度可配置。若整個(gè)Buffer 的容量為1 KB,則每一個(gè)SRAM 大小為64 × 32 b,若容量為2 KB,則每一個(gè)SRAM 大小為128 × 32 b,依次類(lèi)推。
在正??偩€(xiàn)通信中,每一筆AHB 傳輸將被循環(huán)存儲到Buffer 中,在處理器進(jìn)入調試模式后,AHB TraceBuf fer 被暫時(shí)掛起,這時(shí)可由外部調試設備利用AHB總線(xiàn)訪(fǎng)問(wèn)Buffer ,通過(guò)地址譯碼控制4 塊SRAM 各自的使能信號,進(jìn)而完成讀/ 寫(xiě)操作。Buffer 的數據輸入端為128 b,包含的有地址、數據、控制信號和控制寄存器值等,詳細見(jiàn)表1。
同樣在微處理器內部實(shí)現一個(gè)指令T race Buf fer,用來(lái)存儲執行過(guò)的指令。該部件同樣循環(huán)存儲,位寬128 b,利用4 塊SRAM 構成。該存儲器中將記錄指令執行過(guò)程中指令運行狀態(tài),操作碼、操作數和操作結果,以及PC 指針等值,用以方便以后讀出進(jìn)行診斷定位。
兩塊Buf fer 在系統正常運轉時(shí)記錄數據,所以為了保證其內容的正確性,僅允許系統進(jìn)入調試模式時(shí)對其進(jìn)行讀寫(xiě)訪(fǎng)問(wèn),而正常狀態(tài)下將禁止對其訪(fǎng)問(wèn)。
表1 AHB Trace Buffer 數據分配表

1. 3 DSU 單元
對于嵌入式系統而言,其內部的大部分信號與微處理器的工作狀態(tài)對于開(kāi)發(fā)者都是不可見(jiàn)的,本設計就是通過(guò)提高在系統開(kāi)發(fā)過(guò)程中用戶(hù)對系統的可觀(guān)察性和可控制性從而幫助開(kāi)發(fā)者更為有效的定位設計中的錯誤,從而加速開(kāi)發(fā)周期。為此,本系統必須在片上集成單獨的調試單元用于監測系統運轉并能接管處于異常狀態(tài)時(shí)的微處理器。
借鑒CPU中程序狀態(tài)字的作用,DSU 中首先需要一些寄存器能夠控制與管理整個(gè)調試單元的行為,它應該能接收來(lái)自調試主機發(fā)布的調試命令,同時(shí)也能夠對系統內部斷點(diǎn)等觸發(fā)行為做出實(shí)時(shí)響應以及在任何時(shí)刻都能被調試主機所訪(fǎng)問(wèn),為此,該調試單元設計了如圖3 所示的部分關(guān)鍵寄存器。

圖3 DSU 內部寄存器
圖3( a) 為AHB T race Buf fer 控制寄存器。其中EN 位將控制AHB Trace Buffer 的使能; DM 位表示Buf fer 處于延遲計數模式,設計這種模式是為了方便觀(guān)察斷點(diǎn)發(fā)生前后定長(cháng)時(shí)間內系統的運轉狀態(tài); BR 位則表示AHB 斷點(diǎn)命中; 高16 位DCNT 表示在延遲計數模式下的延遲計數值。AHB 斷點(diǎn)寄存器有兩路,可寫(xiě)入30 位的精確斷點(diǎn)地址,當AHB 地址總線(xiàn)上廣播的地址與該斷點(diǎn)地址相吻合時(shí),將會(huì )立即凍結AHBTr ace Buf fer,同時(shí)清除AHB 控制寄存器的使能位。
評論