欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

集成電路的診斷電路的制作方法

文檔序號(hào):6419726閱讀:397來源:國知局
專利名稱:集成電路的診斷電路的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路領(lǐng)域。更準(zhǔn)確地說,本發(fā)明涉及集成電路的板上診斷電路。
集成電路的板上診斷電路是眾所周知的。這種已知電路的一個(gè)例子就是由英國ARM Limited of Cambridge用于幾種微處理器設(shè)計(jì)的、由JTAG型控制器控制的串聯(lián)掃描鏈(serial scan chains)。現(xiàn)有的掃描鏈型診斷電路的問題在于,串聯(lián)掃描數(shù)據(jù)的輸入和掃描數(shù)據(jù)的輸出不夠快,以致不能進(jìn)行實(shí)時(shí)和/或有效的診斷。具體地說,可能需要把集成電路的速度降低到其正常運(yùn)行速度之下或者暫停運(yùn)行,以便可以把串聯(lián)診斷數(shù)據(jù)掃描輸入串聯(lián)掃描鏈和掃描輸出串聯(lián)掃描鏈。以低于其正常運(yùn)行速度工作的集成電路將導(dǎo)致以下結(jié)果執(zhí)行的診斷工作不能真實(shí)代表集成電路實(shí)時(shí)運(yùn)行的功能??赡艹霈F(xiàn)這樣的情況某些故障僅在全速工作時(shí)才顯現(xiàn),而以較低速度工作時(shí)將看不見(必須電路以此速度工作來適應(yīng)診斷串聯(lián)掃描鏈的應(yīng)用)。此外,把JTAG用于與調(diào)試處理器的通信至少產(chǎn)生對(duì)系統(tǒng)資源訪問的兩步方法。
根據(jù)本發(fā)明的一個(gè)方面凹,提供一種集成電路,它包括多個(gè)功能電路,它們可以執(zhí)行數(shù)據(jù)處理操作;至少一種功能總線,它可以提供所述多個(gè)功能電路之間的通信;以及診斷總線主控器電路,它可以在所述多個(gè)功能電路的實(shí)時(shí)運(yùn)行期間,通過借助于所述至少一種功能總線向所述多個(gè)功能電路中的一個(gè)或多個(gè)電路發(fā)布總線交易請(qǐng)求來對(duì)所述多個(gè)功能電路中的至少一個(gè)電路執(zhí)行診斷操作。
本發(fā)明提供一種診斷總線主控器電路,所述電路與集成電路的功能總線連接。所述診斷總線主控器電路可以用來向功能總線發(fā)布總線交易,以便執(zhí)行診斷操作。這些總線交易可以用來以某些數(shù)據(jù)激勵(lì)功能電路、捕獲來自功能電路的數(shù)據(jù)或組合這些或其它活動(dòng)。所述技術(shù)利用功能電路之間的現(xiàn)有總線結(jié)構(gòu)設(shè)備來提供用于診斷信號(hào)激勵(lì)和捕獲的插入點(diǎn),由于不需要對(duì)串聯(lián)掃瞄鏈周圍的數(shù)據(jù)計(jì)時(shí)以便將數(shù)值加載到分布在整個(gè)電路中的鎖存器,所以所述插入點(diǎn)能夠?qū)崟r(shí)操作。雖然可以認(rèn)為,通過功能總線的診斷訪問在應(yīng)用上將受到限制,但是實(shí)際上,需要在現(xiàn)代系統(tǒng)芯片型集成電路中實(shí)現(xiàn)的大部分診斷測試類型都是通過標(biāo)準(zhǔn)總線(例如,AMBA或AHB總線)圍繞檢查各種功能電路之間的正常通信實(shí)現(xiàn)的。通常,不同功能電路已經(jīng)分別測試并作為單獨(dú)項(xiàng)目確認(rèn),在新的集成電路設(shè)計(jì)中重要的是這些項(xiàng)目的內(nèi)聯(lián)和它們通過功能總線的正常通信。本發(fā)明的技術(shù)完全適合提供這種類型的快速、相對(duì)的非侵入式診斷操作,并降低了額外開銷。
診斷總線主控器電路可以執(zhí)行調(diào)試形式的診斷操作或生產(chǎn)測試形式的操作。此外,診斷總線主控器電路也可以用于實(shí)現(xiàn)生產(chǎn)編程、生產(chǎn)配置、現(xiàn)場編程和現(xiàn)場配置操作。這使診斷總線主控器電路能夠再用于純?cè)\斷領(lǐng)域之外的有益操作,從而減小其相關(guān)的開銷。
在本發(fā)明的最佳實(shí)施例中,診斷總線主控器電路可以設(shè)置成執(zhí)行驗(yàn)證操作,以便在它執(zhí)行診斷操作之前自動(dòng)地授權(quán)。所述特征在診斷特性不適合用于獲得對(duì)安全數(shù)據(jù)(例如,秘密加密密密鑰等)訪問的安全系統(tǒng)中有明顯的優(yōu)點(diǎn)。通過保證診斷總線主控器電路必須在應(yīng)用前驗(yàn)證它自己,就可以限制不適應(yīng)該機(jī)制的應(yīng)用。具體地說,驗(yàn)證可以采用以下形式要求診斷主控器電路發(fā)布與預(yù)定規(guī)則(例如,包括由外部源提供的加密密鑰)匹配的驗(yàn)證請(qǐng)求,要求在診斷總線主控器電路能夠訪問功能電路單元之前確定所述預(yù)定規(guī)則。
除了提供訪問功能總線外,本發(fā)明的最佳實(shí)施例包括專用診斷總線,通過所述專用診斷總線,診斷總線主控器電路可以獲得對(duì)數(shù)據(jù)的訪問,這種訪問不是通過功能總線的正常訪問。因此,專用診斷總線可以設(shè)置成訪問功能電路中的狀態(tài),這種訪問不是通過功能總線的正常訪問,因?yàn)樵谡2僮髌陂g通常不需要在功能電路之間傳遞所述狀態(tài)。所述特征與上述驗(yàn)證技術(shù)相結(jié)合特別有用,因而,可以把對(duì)這種專用診斷總線的訪問限制在已驗(yàn)證的操作。而且,隔離這樣的總線可以避免惡意的和偶然的使用這些附加數(shù)據(jù)值/寄存器。
應(yīng)當(dāng)指出,在一些集成電路中使用多功能總線可以有不同的總線協(xié)議。最佳實(shí)施例通過提供具有多個(gè)總線接口電路的診斷總線主控器電路來滿足這種要求,這些接口電路負(fù)責(zé)使用它們的具體總線協(xié)議與各個(gè)功能總線通信。選擇機(jī)制允許選擇訪問哪一個(gè)總線。
診斷總線主控器電路利用外部信號(hào)協(xié)議與外部診斷裝置(例如,具有適當(dāng)?shù)慕涌诳ǖ挠?jì)算機(jī))通信。為了方便這種通信,診斷總線主控器電路包括用于提供這種通信鏈路和使通信協(xié)議之間符合要求的外部接口電路。
在本發(fā)明的最佳實(shí)施例中,診斷總線主控器電路還能用一種方式在時(shí)鐘域之間傳送信號(hào),這種方式能有效地將外部診斷環(huán)境與集成電路的計(jì)時(shí)環(huán)境隔離。
診斷總線主控器電路特別適合于對(duì)存儲(chǔ)在與功能總線連接的裝置中的數(shù)據(jù)值(例如,存儲(chǔ)在主存儲(chǔ)器、外存儲(chǔ)器或其它裝置中的數(shù)據(jù))進(jìn)行操作??梢允褂迷\斷總線主控器電路對(duì)這些數(shù)據(jù)值進(jìn)行加載、存儲(chǔ)、復(fù)制和驗(yàn)證。
這種應(yīng)用類型的特別有用實(shí)例是當(dāng)集成電路包括與總線連接的閃存并且診斷總線主控器電路用于利用閃存可編程協(xié)議對(duì)閃存編程時(shí)的實(shí)例。對(duì)這種閃存的編程一般是一種運(yùn)行時(shí)間操作并且利用所述集成電路的通用功能電路不會(huì)有高的效率。
現(xiàn)在參照附圖用實(shí)例說明本發(fā)明的實(shí)施例,附圖中

圖1示意地說明包括與外部診斷裝置連接的板上診斷系統(tǒng)的集成電路;圖2是說明包括用于發(fā)布總線交易以便實(shí)現(xiàn)對(duì)集成電路的診斷操作的診斷總線主控器電路的集成電路的原理圖;圖3至5圖解說明診斷總線主控器電路技術(shù)的各個(gè)方面;以及圖6和7示意地圖解說明診斷總線主控器和邊界鏈控制的形式。
圖1說明與外部診斷裝置4連接的集成電路2。外部診斷裝置4和集成電路2之間的連接是通過雙向串聯(lián)接口(例如,JTAG或SWJ)實(shí)現(xiàn)的。在集成電路2中,接口電路6接收雙向信號(hào)。來自串聯(lián)信號(hào)的編碼數(shù)據(jù)和來自串聯(lián)信號(hào)的編碼控制信號(hào)都傳送給診斷電路8,所述診斷電路8根據(jù)這些控制信號(hào)和數(shù)據(jù)執(zhí)行對(duì)集成電路2的其它元件的診斷操作。數(shù)據(jù)和控制信號(hào)也可以通過雙向串聯(lián)信號(hào)從集成電路2反向傳送給外部診斷裝置4。集成電路2一般是芯片系統(tǒng)(SoC)集成電路。
集成電路2中的功能電路包括處理器核心10、協(xié)處理器12、存儲(chǔ)器14和串聯(lián)UART裝置16。這些功能電路通過功能總線18(例如,AMBA、AHB或其它用于連接功能電路的總線)連接。以集成電路2中的塊的形式示意地圖解說明診斷電路8。應(yīng)當(dāng)指出,這些診斷電路可以采用各種不同的形式并且可以例如包括圍繞集成電路2外圍、某些功能元件或某些所需功能元件內(nèi)擴(kuò)展的串聯(lián)掃描鏈。診斷電路8也可以是其它形式,例如BIST裝置等。
工作時(shí),使用外部診斷裝置的工程師將命令執(zhí)行對(duì)集成電路2的某些診斷操作,以響應(yīng)控制信號(hào)和沿雙向串聯(lián)接口并通過接口電路6傳送給集成電路2的數(shù)據(jù)。結(jié)果數(shù)據(jù)將沿雙向接口通過接口電路6反向傳送到外部診斷裝置4。
圖2示意地說明包括多個(gè)功能電路的集成電路52(例如,SoC集成電路),所述多個(gè)功能電路包括處理器核心54、協(xié)處理器56、閃存58、輸入/輸出電路60及存儲(chǔ)器62。處理器核心54、閃存58、輸入/輸出電路60及存儲(chǔ)器62通過公用功能總線64(例如,可以是ARM、AMBA、AHB總線或其它系統(tǒng)總線)。公用功能總線64具有關(guān)聯(lián)的總線協(xié)議并用于常規(guī)主/從類型配置以便在功能電路之間傳送數(shù)據(jù)和控制事務(wù)。
診斷總線主控器電路66用于執(zhí)行使用總線交易的診斷操作。這些總線交易可以將數(shù)據(jù)或控制值輸入給功能電路或恢復(fù)來自功能電路的數(shù)據(jù)。診斷總線主控器電路66通過任選的驗(yàn)證電路68連接到功能電路64。診斷總線主控器電路66還連接到專用診斷總線70(例如,專用的AMBA總線或定制的專用總線),所述專用診斷總線將專用診斷訪問提供給(在本例中)處理器核心54和協(xié)處理器56。專用診斷總線70可以訪問與功能總線64非標(biāo)準(zhǔn)連接并且暴露在專用診斷總線70上純粹用于診斷目的的數(shù)據(jù)值。
提供接口電路72和診斷電路74以便將診斷總線主控器電路66連接到外部診斷裝置(未示出)。接口電路72支持外部診斷裝置使用的外部協(xié)議,例如,上述雙向串聯(lián)通信。診斷總線主控器電路66負(fù)責(zé)支持相應(yīng)的總線的總線信號(hào)協(xié)議,通過所述相應(yīng)的總線發(fā)布用于診斷目的事務(wù)。
當(dāng)驗(yàn)證步驟通過之后,任選擇驗(yàn)證電路68起只允許診斷總線主控器電路66訪問功能總線或總線64的一部分的作用。所述驗(yàn)證步驟可以是從診斷總線主控器電路66向驗(yàn)證電路68提供與預(yù)定的秘密密鑰匹配的適當(dāng)?shù)拿荑€。這樣,只有擁有密鑰的相應(yīng)授權(quán)個(gè)人才能以這樣的方式激活診斷總線主控器電路66,即,它能夠通過驗(yàn)證電路68訪問功能總線64。因此,保密數(shù)據(jù)或其它敏感材料能夠在功能電路中得到保護(hù)。驗(yàn)證也可以用于控制某些總線訪問,例如,訪問特權(quán)從動(dòng)裝置,而其它總線訪問可以自由利用。
應(yīng)當(dāng)指出,集成電路52和外部診斷裝置可以工作在不同時(shí)鐘域。接口72在這兩個(gè)時(shí)鐘域之間有效地提供一種搭橋裝置。
診斷總線主控器電路66可以用于發(fā)布總線交易,將數(shù)據(jù)值加載給裝置(例如,存儲(chǔ)器、外設(shè)或其它裝置)、從這些裝置回存的數(shù)據(jù)、在這些裝置之間復(fù)制數(shù)據(jù)或驗(yàn)證存儲(chǔ)在這些裝置中的數(shù)據(jù)。
診斷總線主控器電路66還可以用于根據(jù)閃存可編程協(xié)議對(duì)閃存58編程。這是診斷總線主控器電路66的一種非診斷應(yīng)用,由于需要提供某種機(jī)制來對(duì)集成電路52中的閃存58進(jìn)行編程,因此它可以降低與其設(shè)備相關(guān)的開銷。
本發(fā)明最佳實(shí)施例的詳細(xì)說明如下術(shù)語和縮寫以下將使用的術(shù)語和縮寫說明如下術(shù)語含義JTAG用于控制與掃描鏈串聯(lián)接口的4-6線接口的IEEE聯(lián)合測試存取組規(guī)范。JTAG用于調(diào)試及測試。SWJ基于基礎(chǔ)調(diào)試JTAG模型。掃描TAP基于JTAG的測試部分。
仿真程序誤稱,用來指運(yùn)行與調(diào)試芯片連接的控制盒(HW件)。通常的仿真程序基于JTAG。與SWJ接口連接的盒因歷史原因也稱作仿真程序。
AMBA芯片內(nèi)的ARM總線標(biāo)準(zhǔn)。
AHB 用于常規(guī)存儲(chǔ)器訪問(通過APB)的AMBA高速接口。
APB 用于低速訪問的AMBA外圍接口。
AHB Lite指在沒有多主控器并且沒有全成組方式及其相關(guān)信令的情況下的AMBA、AHB剝離版本。
多主控器AMBA總線共享方案(不在AMBA Lite中),其中不同主控器可以獲得總線鎖(允許)以便以交錯(cuò)方式訪問總線。
多段、多層 將總線分成多段的AMBA方案,所述方案可以控制訪問。這可以使局部主控器降低加鎖的開銷。
判優(yōu)程序,判斷法 代替多主控器的總線模型。判優(yōu)程序從爭用主控器中選擇對(duì)總線的流線訪問。在MCU中使用更一般的和不對(duì)稱的多處理器核心的布局。當(dāng)配置合適時(shí),它能夠提供比總線允許模型更好的性能。
閃存 一種只讀存儲(chǔ)器,所述存儲(chǔ)器可以用專用的可編程方法寫入。它允許MCU在后制造過程中將代碼和文字燒蝕進(jìn)器件。對(duì)于低端MCU,這只能在生產(chǎn)中進(jìn)行,不能工作時(shí)實(shí)現(xiàn)(所以,可以在更新/維護(hù)期間通過外部工具完成)。
嵌入式閃存 指在同一芯片中作為處理器的閃存單元。與外部芯片相反。應(yīng)當(dāng)指出,閃存器件具有嵌入式控制器(MCU),所述控制器使芯片大小的嵌入式閃存十分昂貴。
引言DBT(調(diào)試總線分接頭)是小型JTAG TAP,它連接到AMBA總線上。主機(jī)可以使用JTAG、SWJ、直接端口或其它裝置訪問DBT,并可以在總線而不是AMBA總線上操作。根據(jù)系統(tǒng)設(shè)計(jì),總線連接可以是用于多主控器總線設(shè)計(jì)的總線主控塊,或者如果用判優(yōu)程序管理,也可以是AMBA Lite塊。
存儲(chǔ)器TAP允許訪問存儲(chǔ)器系統(tǒng)(超出了L1高速緩沖存儲(chǔ)器),了解ARM核心是正在運(yùn)行、調(diào)試停止還是保持復(fù)位狀態(tài)。這允許把TAP更廣泛地應(yīng)用于多目標(biāo)系統(tǒng)○在核心引導(dǎo)之前開始測試系統(tǒng)。這在所有閃存系統(tǒng)中特別重要,但是對(duì)于芯片級(jí)測試也可以推斷。
○與利用處理器JTAG模型可能得到的相比,下載和存儲(chǔ)器讀出快很多。
○在運(yùn)行系統(tǒng)中不停止核心的情況下對(duì)存儲(chǔ)器和外圍寄存器的讀/寫訪問。這會(huì)出現(xiàn)干擾,但是這是固定的和小的(由于對(duì)存儲(chǔ)器的訪問是不穩(wěn)定的,但受JTAG TCK時(shí)序的限制)。
○能夠與核心時(shí)鐘速度變化(低速睡眠)無關(guān)地訪問存儲(chǔ)器。
○當(dāng)總線可見時(shí)能夠用于對(duì)閃存編程(然而如果不是AMBA從動(dòng)裝置,則一些FPGA引導(dǎo)閃存就不能達(dá)到)。
○任何調(diào)試寄存器的配置/控制不是核心的一部分。這就避免了需要多個(gè)TAP支持不同的調(diào)試塊。應(yīng)當(dāng)指出,調(diào)試寄存器能夠通過核心輸出以避免要求內(nèi)部機(jī)制-這就允許運(yùn)行時(shí)訪問和允許更清晰的設(shè)計(jì)。
存儲(chǔ)器TAP對(duì)于允許非常快的順序(例如,下載)和非順序訪問是最佳的。對(duì)于單地址的重復(fù)查詢也是最佳的,并可以利用支持時(shí)間測量(由于總線活動(dòng)是決定性的)的仿真程序提供關(guān)于所述重復(fù)查詢的精確的時(shí)間標(biāo)記。還通過在總線繞接器中嵌入小的閃存可編程算法來方便快速閃存下載。
調(diào)試系統(tǒng)總線的TAP部件存儲(chǔ)器TAP的目的在于尋址的7個(gè)基本問題1、允許非??焖俚拇鎯?chǔ)器下載(和上載)。在10MHz,對(duì)于較快的仿真程序而言,3M字節(jié)/秒的下載是合理的,對(duì)于較慢的仿真程序600K字節(jié)/秒是合理的。
2、允許ARM核心停止(在調(diào)試中)、運(yùn)行、睡眠、復(fù)位或其它狀態(tài)時(shí)訪問存儲(chǔ)器。這就是說,所述部件允許更多系統(tǒng)觀察。
3、允許在讀寫總線時(shí)更清晰的處理故障。所述機(jī)制清楚地處理中斷,其結(jié)果不改變處理器的狀態(tài)。當(dāng)通過處理器核心訪問存儲(chǔ)器時(shí),即使有更多的活動(dòng),其狀態(tài)不受所有活動(dòng)的影響,所以只受故障的影響。在總線出現(xiàn)故障后,DBT不改變其狀態(tài),否則按規(guī)定向其發(fā)送信號(hào)。
4、允許直接對(duì)閃存編程(不使用核心)。這不僅允許以其最大速率(即用閃存自己的速度)對(duì)閃存編程,而且也允許處理器仍處于復(fù)位時(shí)對(duì)閃存編程(所以可以用于對(duì)臨界引導(dǎo)碼編程)。如果FPGA位引導(dǎo)閃存或其它器件使用的閃存在總線上是可見的,它也能夠用于對(duì)這些元件編程。只要仿真程序能夠產(chǎn)生訪問之間(對(duì)超時(shí)的閃存)可預(yù)計(jì)的時(shí)間延遲,或用強(qiáng)制驗(yàn)證以每個(gè)字的批形式寫入,即使沒有選擇閃存支持,DBT也可以用于直接對(duì)閃存編程。
5、只能用于訪問調(diào)試的局部段集合一側(cè)。即,DBT可以適應(yīng)調(diào)試使用的專用總線(并也能適應(yīng)全局使用的系統(tǒng)總線)。它也可以用于輸出給為ASIC調(diào)試部件和通用部件規(guī)定的調(diào)試寄存器,CAN總線的外設(shè)可以輸出一些寄存器到所述段以便調(diào)試。
6、可以用作具有目標(biāo)SW(例如監(jiān)視器和RTOS代理者)的通信路徑。與5不一樣,這也能夠在主總線實(shí)現(xiàn)。所以,RTOS調(diào)試代理者可以將這用于訪問(即使RTOS在DSP上運(yùn)行)。與DCC(ARM調(diào)試通信信道寄存器)不一樣,這允許隔離。利用中斷驅(qū)動(dòng)和一些與存儲(chǔ)器地址一致的地址,主機(jī)和目標(biāo)SW將使用簡單的同步交換進(jìn)行相互通信。報(bào)文大小可以象需要的一樣長,并且由于目標(biāo)SW僅僅寫入RAM,然后繼續(xù)其它活動(dòng),因此目標(biāo)SW不會(huì)被隔開(例如,等待CP14)。
7、可以用于高速卸載跟蹤數(shù)據(jù)??梢岳眠@種方法以非常高的速度對(duì)映射到AHB的片上跟蹤緩沖區(qū)進(jìn)行卸載。而且,利用在填充的同時(shí)可以泄放的跟蹤緩沖區(qū),人們可以連續(xù)收集(以有限帶寬,例如3-4M字節(jié)/秒)。
代理者/監(jiān)視器通信(注意信號(hào)和應(yīng)答)可以預(yù)計(jì),對(duì)于為了下載的直接存儲(chǔ)器訪問(無監(jiān)視器)和處理器核心運(yùn)行時(shí)訪問以及與運(yùn)行時(shí)目標(biāo)上的代理者的通信,DBT將是有用的。代理者的通信工作包括將分組寫入RAM、發(fā)送具有注意信號(hào)位的完整信令,然后等待確定的ACK信號(hào)/位。這樣,可以將它回讀。這種模型的優(yōu)點(diǎn)是,你只承擔(dān)中斷每一個(gè)分組的代價(jià)(并且即使你能查詢,但是每一個(gè)分組-隔離是免費(fèi)的)。分組的大小不固定,但是由協(xié)議和選擇代理者或監(jiān)視器確定。
對(duì)把注意信號(hào)與核心連接(作為中斷)進(jìn)行選擇以及從核心返回的ACK信號(hào)的連接(作為GPIO)進(jìn)行選擇是適合于系統(tǒng)設(shè)計(jì)的。對(duì)于某些處理器和應(yīng)用場合的應(yīng)用類型,這很可能被大大地激勵(lì)。
與之通信的主代理者將是用于直接調(diào)試的監(jiān)視器以及用于RTOS調(diào)試的線程(運(yùn)行系統(tǒng)調(diào)試(RSD)方式)。
閃存支持提供任選的閃存支持以便允許對(duì)嵌入系統(tǒng)的閃存進(jìn)行快速編程。所述機(jī)制通過添加用于預(yù)寫入地址/數(shù)據(jù)和可能事后寫入地址/數(shù)據(jù)的掩膜ROM常數(shù)來工作。如果需要,它也可以提供飛行驗(yàn)證(但是,通常最好寫入整塊然后返回并驗(yàn)證-這樣最快和較安全)。用強(qiáng)制驗(yàn)證,驗(yàn)證步驟很快。
閃存模型也允許外部機(jī)制(例如,修車機(jī)械更新用于發(fā)動(dòng)機(jī)控制的編程常數(shù))的現(xiàn)場閃存重編程。這對(duì)于不改變閃存本身的應(yīng)用是有用的。
在DBT中用于閃存支持的一般原因是使閃存的編程非???,而不管閃存的大小。這就加速了調(diào)試時(shí)間。應(yīng)當(dāng)指出,對(duì)于許多閃存器件,預(yù)寫入和數(shù)據(jù)寫入之間的時(shí)間必須處于某周期內(nèi),否則將超時(shí)。這就是說,通過JTAG仿真程序直接編程是不可能的。周DBT閃存支持則沒有問題。
高速緩沖存儲(chǔ)器的問題和TCMDBT只能檢查總線。雖然總線具有用于第二段模型的設(shè)備,但是它不能檢查L1高速緩沖存儲(chǔ)器。如果DBT置于它的前面它只能檢查L2高速緩沖存儲(chǔ)器(所以是系統(tǒng)設(shè)計(jì)的選擇)。緊密耦合存儲(chǔ)器(TCM)也存在問題。
對(duì)于L1高速緩沖存儲(chǔ)器,問題只出現(xiàn)在某些條件下●當(dāng)下載代碼時(shí),”I”高速緩沖存儲(chǔ)器必須清除內(nèi)容/無效,以便重載新的數(shù)據(jù)。對(duì)于下載,這將是不正常的問題(由于核心停止和仿真程序/運(yùn)行控制將處理高速緩沖存儲(chǔ)器的清除)。
●當(dāng)下載數(shù)據(jù)時(shí),”D”高速緩沖存儲(chǔ)器必須預(yù)先注滿(如果回寫)或在連續(xù)寫入之前或之后(或沒有被核心修改)無效。對(duì)于下載,這將是不正常的問題(如上概述)。
●在目標(biāo)運(yùn)行中查詢地址時(shí),如果沒有回寫高速緩沖存儲(chǔ)器線地址就可以檢查地址(這樣地址就可以處于非高速緩沖存儲(chǔ)器區(qū)或連續(xù)寫入高速緩沖存儲(chǔ)器區(qū))。如果使用回寫,一直到下一個(gè)高速緩沖存儲(chǔ)器注滿(從應(yīng)用特征或運(yùn)行控制支持)地址才能更新。因此,仍然能夠查詢回寫,但是將延遲一個(gè)非確定的周期(根據(jù)由應(yīng)用程序的非習(xí)慣用法引起的高速緩沖存儲(chǔ)器注滿之前多長確定)。
●在目標(biāo)運(yùn)行中修改地址時(shí),如果地址是可緩存的它不會(huì)影響應(yīng)用。一直到高速緩沖存儲(chǔ)器被清除變化才被接受(如果回寫和高速緩沖存儲(chǔ)器被改變,DBT的修改可能丟失)。
對(duì)于TCM,存儲(chǔ)器對(duì)DBT而言根本就看不見,除非它是某些形式的雙端口。例如,如果TCM也是一個(gè)AMBA從動(dòng)裝置,或者如果它包含繞接為AHB從屬裝置的外部DMA端口,那么DBT就可以訪問TCM。其它是通過系統(tǒng)模型支持,系統(tǒng)模型以以下3種方式中的一種提供訪問1、TCM繞接器包含外部端口(例如,DMA端口),使所述端口可以用于DBT。這可以或者通過使其在AMBA總線上可見或者通過在DBT中使用替代的存儲(chǔ)器概念來完成的。
2、將TCM與DBT以及ARM混合。這將沒有判優(yōu)法,所以只能在ARM核心停止時(shí)使用。它可能需要注冊(cè)避免路徑問題的接口。所述模型提供低成本的訪問,但是在處理器運(yùn)行時(shí)不能訪問存儲(chǔ)器。
3、TCM與一些判優(yōu)法混合成DBT(如果DBT被訪問時(shí)等待狀態(tài)的核心)。除了它允許在核心運(yùn)行中訪問外,這與上述2相同。不清楚的是,對(duì)于DBT應(yīng)用所述模型的費(fèi)用是否合算。
沒有DBT的支持,只能通過停止所述核心來訪問TCM或者通過它的JTAG機(jī)制訪問(或其它裝置,例如監(jiān)視器)。
MMU/MPU和虛擬地址DBT部件只能看見物理地址(總線地址)。調(diào)試程序響應(yīng)虛擬和物理地址之間執(zhí)行的任何所需的映射。對(duì)于將MMU/MPU用于保護(hù)和高速緩沖存儲(chǔ)器控制的應(yīng)用來說,這不是問題(對(duì)于任何核心中的地址X,它也是總線上的地址X)。對(duì)于將MMU用于生成虛擬地址與物理地址不相匹配的環(huán)境的應(yīng)用來說,存在4種情況
1)地址的動(dòng)態(tài)重映射(意思是在運(yùn)行中映射變化)。虛擬地址為”處理”映射成不同的物理地址。通過處理模型OS把這作為避免各種處理(a.k.a.任務(wù))之間的接觸的方法。在這種情況下,調(diào)試程序通??梢詮腛S本身或從頁表尋找。但是,映射可以改變超時(shí),所以在允許核心運(yùn)行時(shí)訪問這些地址存在風(fēng)險(xiǎn)。
2)靜態(tài)/一次映射(意思是映射被設(shè)置在引導(dǎo)時(shí)間并且所述方法被保留)。虛擬地址將外圍或其它總線對(duì)象映射成”公用”位置。這只能通過檢查頁表確定。這是非常通用的,但是調(diào)試程序必須支持讀這些表。根據(jù)ARM核心,它能夠在核心運(yùn)行中(由掃描鏈讀取CP15)確定頁表在哪里。如果頁表在總線上可見(見關(guān)于TCM的討論),那么DBT允許調(diào)試程序讀取頁表以便確定映射。目標(biāo)文件將包含關(guān)于所述影射的信息也是可能的。
3)建立頁面故障區(qū)。這些故障區(qū)用于各種目的,包括讀出復(fù)制、稀疏矩陣/陣列、映射文件(或等價(jià)文件)、要求加載閃存代碼等。這些方案在想要的和需要的各個(gè)方面都在變化。調(diào)試程序需要理解存儲(chǔ)器處理的內(nèi)容,以便知道什么是合適的(引起調(diào)試程序的頁面故障通常是不合適的)。在一些情況下,調(diào)試程序知道數(shù)據(jù)來自何處(例如,閃存),所以DBT能夠用于直接訪問數(shù)據(jù)。通常這種存儲(chǔ)器只能在核心停止時(shí)才能處理。
4)生成更寬的地址。雖然所述方法的最通常的應(yīng)用(不管是ASID、Domains還是其它擴(kuò)展模型)不要求虛擬地址和物理地址是不同,但是所述機(jī)制可以用于產(chǎn)生調(diào)入塊等。同樣,調(diào)試程序需要知道能夠映射這些地址的規(guī)則。
值得注意的是只有情況2能夠用于基于訪問模型的核心(JTAG或監(jiān)視器)。其余都存在問題,不管使用什么樣的訪問方法都必須由調(diào)試程序?qū)ぶ贰?br> 還值得注意的是,極大多數(shù)設(shè)計(jì)都在系統(tǒng)級(jí)在很短的時(shí)間內(nèi)應(yīng)用重映射(芯片啟動(dòng)和芯片選擇器等)。由于新的ARM核心更直接地支持MMU特征,所以有可能更多的設(shè)計(jì)將依賴于用于這種效應(yīng)的核心。因此,調(diào)試程序很可能將不得不處理這些問題,而核心將可能需要在不停止時(shí)訪問信息。
訪問使用一組IR/DR事務(wù)以JTAG或等價(jià)裝置訪問DBT。
IR用于從不同的綜合應(yīng)用中選擇○多種JTAGBYPASS(0xF)、IDCODE(0x0A)、要求活動(dòng)的JTAG(對(duì)于那些可以不管)○當(dāng)TAP處于局部段(0x01)時(shí)局部存儲(chǔ)器訪問○不管使用的總線連接類型(0x02)是什么,對(duì)于通常的總線可見性全局存儲(chǔ)器訪問○用于對(duì)在ARM核心中(0x3和0x4)較早掃描模型進(jìn)行訪問的掃描。這是用于Argon和V6類型核心的服務(wù)。它可以用作ARM7/9/10/11核心上的繞接器,以便提供象Argon一樣的模型。它也可以用于將通常的訪問繞接在較早的核心中,使得SWJ快許多。它也能夠?qū)⑦@用于邊界掃描測試(不是相關(guān)的調(diào)試)。
所有存儲(chǔ)器都使用TR(全局或局部)訪問,所以所有操作都是以DR為基礎(chǔ)的。所述模型將DR分割成4種請(qǐng)求控制、尋址、讀和寫。DR共有34位。
DR操作使它們可以一次性讀和寫。CaptureDR的采樣數(shù)據(jù)通常是先前的操作的結(jié)果。用UpdateDR寫入數(shù)據(jù)將執(zhí)行4種請(qǐng)求中的一種。
模塊DBT部件被分成各個(gè)部分,它們中的極大多數(shù)都是任選的。圖1證明了這個(gè)概念。實(shí)際上僅僅需要命令塊。選擇塊由如何使用確定■如果使用另一種裝置訪問,就不需要TAP。例如,當(dāng)與SWJ連接時(shí),由于SWJ部件將直接驅(qū)動(dòng)DBT就不需要TAP。
■當(dāng)繞接現(xiàn)有的ARM的EmbeddedICE邏輯(為了在預(yù)Argon核心中實(shí)現(xiàn)調(diào)試監(jiān)視器而建議的模型)或測試掃描鏈時(shí),僅需要掃描鏈的TAP寄存器。
■各種總線的部件只有需要時(shí)才使用。多主控器(完整的AMBA)用于多主控器系統(tǒng)。簡單的AMBA Lite用于具有判優(yōu)程序的MCU。AMBALite加上簡單的判優(yōu)程序可以用于沒有判優(yōu)程序的MCU中(簡單的總線信號(hào)與等待狀態(tài)混合驅(qū)動(dòng)判優(yōu)/保持ARM訪問)。
■可以包括或不包括額外的特征。這包括閃存編程、注意信號(hào)的輸出、ACK信號(hào)輸入、寬總線訪問、其它總線訪問(相對(duì)于系統(tǒng)為局部的)等。主機(jī)可以告訴人們存在直接來自接口的(通過IDCODE、控制寄存器和其它任選側(cè)寄存器)的哪一些方便。如果它們啟動(dòng)回讀,通過啟動(dòng)它們和觀察可檢測到一些特性;其它可以以IDCODE部件的編號(hào)標(biāo)記。
重要的是要非常仔細(xì)地避免太大的模塊。就是說,對(duì)于與復(fù)雜性(太多可能的組合)和開銷(與不同片插在一起)有關(guān)的模塊存在一個(gè)成本問題。通常的方法是將模塊在DBT中分解成5種類型■自然塊。如圖1所示,將DBT分解成3個(gè)等級(jí)的塊。這樣,除去SWJ的頂塊(TAP)或選擇哪一個(gè)總線繞接器是自然適應(yīng)的塊。
■基于哪一個(gè)核心和哪一個(gè)總線。例如,有64位支持能力只能與支持64位數(shù)據(jù)的核心/總線在一起。
■基于系統(tǒng)規(guī)定細(xì)節(jié)(例如閃存)。如果系統(tǒng)存在閃存并且與模型兼容,任選的閃存塊就可以被包含在內(nèi)。
■基于路由選擇。如果Attention或ACK信號(hào)不能確定路線,它們就不得不停止使用。這些種類有力地促進(jìn)兼容性。但是,其中的一些可能不會(huì)感覺到。例如,局部調(diào)試段僅適合某些設(shè)計(jì)。
■由系統(tǒng)的擴(kuò)充/關(guān)聯(lián)(例如安全性和JTAG測試掃描鏈)引起的。這些擴(kuò)展允許DBT服務(wù)于更廣泛的目的。
IDCODE JTAG掃描IDCODE包括ARM生產(chǎn)產(chǎn)家的ID代碼、DBT的特別部分編號(hào)和修訂信息。
部分編號(hào)被分成帶”xx”的DBT的唯一前綴(可能為3xx),”xx”部分是基礎(chǔ)配置信息。配置信息允許快速分析DBT的綜合能力(相對(duì)于全局存儲(chǔ)器訪問的局部、閃存支持、測試掃描鏈支持、安全性等)。
存儲(chǔ)器訪問命令接口DR為34位。將位這樣分組,使得當(dāng)通過TDI(主機(jī)到目標(biāo))輸入時(shí)輸入最后2位,當(dāng)通過TDO輸出時(shí)則輸出狀態(tài)。所以,TDI->32位,數(shù)據(jù)->2位控制/狀態(tài)->TDO。
傳送格式為[Type as 1:0][Value as 31:0]應(yīng)答格式為[Status as 1:0][Return data as 31:0]應(yīng)當(dāng)指出,應(yīng)答會(huì)被一個(gè)事務(wù)曲解(所以,來自通過UpdateDR發(fā)送的類型/數(shù)值的應(yīng)答將在下一個(gè)CaptureDR回答)。還應(yīng)當(dāng)指出,在沒有位移的情況下執(zhí)行CaptureDR->UpdateDR是寫入模型的一種特殊情況-它允許填充(當(dāng)自動(dòng)加一時(shí))或重寫(當(dāng)非自動(dòng)加一時(shí))。
輸入為以下的一種
狀態(tài)由兩位組成□Bit0(LSB)為nCOPLETE■Bit1(MSB)為ERROR狀態(tài)的組合讀作為(Bit0、Bit1)
控制請(qǐng)求
[控制字]控制字由LSB至MSB的位組成>位0在讀出或?qū)懭霐?shù)據(jù)中地址自動(dòng)加一。如果當(dāng)前事務(wù)完成只加一。這就是說如果因故障失敗或新的請(qǐng)求太快(在完成之前),事務(wù)將不加一。注意加一僅在底部的12位。因此,加一在2^12頁面。
>位1-3作業(yè)的大小0=8位1=16位2=32位3=64位(僅適應(yīng)數(shù)據(jù)總線)n=4-7預(yù)留>位4-7閃存控制0=無閃存-正常的AHB操作1=啟動(dòng)閃存寫入。這就是說所有寫入都在所需的數(shù)值前后發(fā)送給閃存控制操作。如果閃存支持是不可用的,則所述位不保持設(shè)置狀態(tài)。
2=無閃存,強(qiáng)制認(rèn)證。這就是說,所有后續(xù)的寫入不會(huì)執(zhí)行實(shí)際寫入,但是將讀出總線上當(dāng)前的地址,并將結(jié)果與傳送的值比較。如果比較相匹配,則‘寫入’作為繼續(xù)處理。如果比較不匹配,則狀態(tài)將指出錯(cuò)誤。
3=用啟動(dòng)的回讀寫入閃存。這就是說在寫入后數(shù)據(jù)被回讀確認(rèn)設(shè)置合適。注意,用于寫入閃存的規(guī)則要保證是完整的操作。
4=4-15預(yù)留。
>位8-11預(yù)留用于操作替換。后面將允許用于訪問”替換”存儲(chǔ)器和總線。0用于標(biāo)準(zhǔn)總線操作。
>位12注意信號(hào)。當(dāng)可用時(shí),這將引起發(fā)送給ARM核心的中斷。這允許發(fā)送郵箱型信令(也見ACK)。這是自清除信號(hào)。因此,寫入認(rèn)定,將發(fā)送信號(hào)通知AEM,然后清除。注意,Attention/ACK擴(kuò)展模型可以用于改變被驅(qū)動(dòng)的信號(hào)(當(dāng)系統(tǒng)提供多個(gè)Attention信號(hào)時(shí))。
>位13ACK返回信號(hào)。當(dāng)可用時(shí),將允許ARM核心發(fā)送應(yīng)答或接受郵箱操作(發(fā)送的分組)的信令。這是自清除鎖存器。這樣一次就將讀出認(rèn)定,然后讀出解除認(rèn)定一直到讀出下一個(gè)認(rèn)定為止。注意,Attention/ACK擴(kuò)展模型可以用于改變被采樣的信號(hào)(當(dāng)系統(tǒng)提供多個(gè)ACK信號(hào)時(shí))。
>位30穩(wěn)定狀態(tài)。如果出現(xiàn)錯(cuò)誤或沒有完成,后面的請(qǐng)求要一直到控制被再次讀出才接受。就是說,如果執(zhí)行數(shù)據(jù)讀出/寫入請(qǐng)求,雖然它仍在總線上等待,但是它或者是失敗或者是執(zhí)行任何其它請(qǐng)求,一直到控制請(qǐng)求被推入所述請(qǐng)求和所有后面的請(qǐng)求才被接受。這樣就保證主機(jī)能夠告訴發(fā)生了什么。注意,當(dāng)設(shè)置所述位時(shí),在所有無關(guān)的命令上返回的狀態(tài)也將指出失敗。這時(shí)設(shè)置的系統(tǒng)不會(huì)提供清除。
>位31提供控制變化。所述標(biāo)記必須設(shè)置為控制寫入控制集的字。如果沒有設(shè)置,控制字就不能寫入(這就只允許讀出它(包括清除的穩(wěn)定狀態(tài)),并簡化NOP)。
應(yīng)答(下一次掃描結(jié)果)將是當(dāng)前鎖定的控制集。這就可以用于檢驗(yàn)穩(wěn)定狀態(tài)(提交還是不提交)并可以用于確定是否允許操作例如,如果大小設(shè)置為64(大小為3),而回讀為32(2),那么TAP就不支持64位操作。對(duì)于閃存操作和替換操作相類似。
地址
[地址]其中當(dāng)操作替換為標(biāo)準(zhǔn)總線操作(見詳細(xì)控制)時(shí),地址就是總線地址(物理的)。
保存寫入地址用于將來的數(shù)據(jù)讀出和寫入操作。注意,自動(dòng)增量模型意味著在所有允許的后續(xù)數(shù)據(jù)讀出/寫入操作上所述地址將加一(數(shù)據(jù)大小)。
應(yīng)答(下一次掃描結(jié)果)將與所述請(qǐng)求中寫入的地址相同。
數(shù)據(jù)寫入[10b][寫入的值]所述操作將寫入8、16、32或64位值的第一/第二個(gè)一半,所述值是來自進(jìn)入保存地址集中當(dāng)前地址的值(見尋址請(qǐng)求)。如果成功的話,所述地址將遞增1、2、4或8(在它可以增量的位數(shù)目中)。
所述應(yīng)答(下一次掃描結(jié)果)將指明寫入是失敗還是成功。
數(shù)據(jù)讀出[11b][無關(guān)的值]其中當(dāng)把操作超越設(shè)置為標(biāo)準(zhǔn)總線操作(它可以用于掃描操作由地址規(guī)定的掃描鏈的寄存器命名)時(shí),忽略所述輸出值。
所述操作將讀出8、16、32或64位值的第一/第二個(gè)一半,所述值是來自保存地址集中當(dāng)前地址的值(見尋址請(qǐng)求)。如果成功的話,所述地址將遞增1、2、4或8(在它可以遞增的位數(shù)目中)。
如果狀態(tài)為OK,那么所述應(yīng)答(下一次掃描結(jié)果)將是讀出的值,否則如果出錯(cuò)則是出錯(cuò)信息。(注意,它是AMBA控制器的工作,如果設(shè)置出錯(cuò)位,則可以在ReadDATA總線上返回錯(cuò)誤代碼。)實(shí)例給出的這些例子說明這些接口怎樣使用。應(yīng)當(dāng)指出,對(duì)于大多數(shù)仿真程序來說,更加實(shí)際的是把所述掃描組合成緩沖區(qū),然后馬上全部運(yùn)行它們。這就擴(kuò)展到多個(gè)單一操作和下載。所述返回?cái)?shù)據(jù)可以在確定所有操作是否成功后檢查。
寫入單一數(shù)值下面給出怎樣寫入單一數(shù)值。應(yīng)當(dāng)指出,如果控制和地址已經(jīng)包含正確值,就不需要寫入它們。
ScanOut(Control,SIZE(2)|COMMT) --將大小設(shè)置為32位ScanOut(address,addr)--將地址設(shè)置為寫入ScanOut(DataWrite,Value) --將值設(shè)置為寫入ScanIO(Control,0,&results) --獲取確實(shí)運(yùn)行的結(jié)果If(!results[status])SucceededElseFailed讀入單一值下面給出怎樣讀入單一值。應(yīng)當(dāng)指出,如果控制和地址已經(jīng)包含正確值,就不需要從控制和地址讀出它們。
ScanOut(Control,SIZE(2)|COMMT) --將大小設(shè)置為32位ScanOut(address,addr)--將地址設(shè)置為讀出ScanOut(DataRead,0) --將值設(shè)置為讀出ScanIO(Control,0,&results) --獲取結(jié)果If(!results[status])Data_read=results[value]ElseFailed寫入多個(gè)值(下載)
下面給出怎樣寫入多個(gè)值。應(yīng)當(dāng)指出,如果控制和地址已經(jīng)包含正確值,就不需要寫入它們。應(yīng)當(dāng)指出,所述算法處理限制在4K(字節(jié)地址限制)繞接情況。就是說,自動(dòng)增量特征只對(duì)底部12位起作用。所以當(dāng)?shù)刂烦^4K基準(zhǔn)點(diǎn)時(shí),必須重寫。由于我們不知道輸入的地址是否校正在4K邊界上,所以當(dāng)它變到下一個(gè)邊界時(shí),我們就簡單地將它寫入。還應(yīng)當(dāng)指出,檢查在使用靜態(tài)位的每一塊的末端聚集的誤差。如果檢測到一個(gè)誤差循環(huán)將使用更慢的掃描重試(例如,在RunTestIdle中自旋)。
ScanOut(Control,AUTO_INC|SIZE(2)|COMMT) --size=32,增量ScanOut(Address,addr) --將開始地址設(shè)置為寫入For(index=0;index<length;index++){ScanOut(DataWrite,Value[index]) --將下一個(gè)值設(shè)置為寫入addr+=4;If(!(addr&0xFFF)) --注意addr增量僅為12位{ --循環(huán)到下一頁ScanOut(Control,0) --獲取運(yùn)行結(jié)果ScanIO(Address,addr,&result s) --設(shè)置下一個(gè)校正地址If(results[data]&STICKY_STATUS) --控制請(qǐng)求結(jié)果Failed--聚集錯(cuò)誤}}將多個(gè)值寫入閃存寫入閃存需要執(zhí)行與標(biāo)準(zhǔn)存儲(chǔ)器相同的操作,以下幾點(diǎn)除外。
當(dāng)設(shè)置了位4(閃存編程)時(shí),閃存編程命令也與數(shù)據(jù)一起發(fā)送給總線接口。由于編程閃存花的時(shí)間比SRAM短很多,因此,一旦RTI延遲電路(在UpdateDR和CaptureDR之間)接收命令時(shí),下一個(gè)字的編程工作可以排在PauseDR中的調(diào)諧延遲后面以便節(jié)約時(shí)間。就是說,接在另一個(gè)寫入后面寫入,然后在PauseDR中有足夠的自旋以便保證完全寫入閃存(和選擇回讀)。這樣,狀態(tài)通過UpdateDR正常推進(jìn),這時(shí)就開始寫入。同樣,隊(duì)列中可以排列更多任務(wù)。在這些塊后面,主叫用戶檢查靜止?fàn)顟B(tài),看所有操作是否都完成。
其它結(jié)果具有RVI-ME(4-8MHz TCK)積分電路/AP下載500KB/sec(RAM)閃存編程 180KB/sec(2芯片,每個(gè)芯片16位構(gòu)成32位)存儲(chǔ)器注滿3700KB/sec設(shè)置方法圍繞上面簡述的模型建立DBT,例如,在問題和解決方案中。為了提供更多的細(xì)節(jié),本節(jié)說明為什么把各不同部分構(gòu)造成這樣。
綜合設(shè)計(jì)DBT的綜合設(shè)計(jì)提供了一種快速和方便的訪問芯片存儲(chǔ)器/外設(shè)系統(tǒng)的機(jī)制。這就是說,對(duì)于調(diào)試程序和測試工具執(zhí)行的一般應(yīng)用而言,大小或IR和DR掃描鏈及使用的形式都設(shè)計(jì)成最佳性能下載、填充、采樣位置、運(yùn)行系統(tǒng)使用的鎖存器、與監(jiān)視器或代理者的通信、閃存的編程、存儲(chǔ)器的驗(yàn)證。
DBT沒有設(shè)計(jì)成覆蓋用于其它直接調(diào)試的各種應(yīng)用。就是說,它是簡單的AHB/AHB Lite存儲(chǔ)器訪問部件。如果其它各種調(diào)試使用總線模型可以展現(xiàn)自已是在系統(tǒng)總線還是在專用調(diào)試總線(段)上,它們就能方便地使用DBT。這種重要的應(yīng)用模型要使DBT適用廣泛的裝置。另外,這就是說,由于增加了其它存儲(chǔ)器可訪問部件,因此當(dāng)DBT不可用或使用DBT時(shí),可以通過傳統(tǒng)的JTAG訪問它們。這就輔助證明了最清楚的內(nèi)部操作。使用總線模型(系統(tǒng)總線或局部總線)”連接”的裝置的例子有ETM(跟蹤)、ETB(跟蹤緩沖區(qū))、調(diào)試監(jiān)視器、SOC中的ASIC(信息聚集)、CTI/CTM(交叉觸發(fā))和FPB(閃存鎖存器和斷點(diǎn))。
應(yīng)當(dāng)指出,DBT的設(shè)計(jì)思想是在發(fā)送數(shù)據(jù)而不是聚集數(shù)據(jù)中JTAG仿真程序是最好的(應(yīng)當(dāng)指出,SWJ(單線JTAG)是這方面的極端例子,與工作時(shí)的仿真程序無關(guān))。這是由于通信模型和需要事后處理的人工智能的結(jié)果。驗(yàn)證和聚集誤差是這方面的優(yōu)秀實(shí)例。這并不是說,功能強(qiáng)大的仿真程序(例如,ARM RVI)不能選擇使用雙向裝置和局部分析,由于它減少了執(zhí)行大多數(shù)操作所需的TCK數(shù)目,這些仿真程序?qū)木o耦合決策受益。
總線接口總線接口模型被設(shè)計(jì)成組合式的,以便適應(yīng)不同的系統(tǒng)設(shè)計(jì)。當(dāng)期望AHB-Lite時(shí),期望微控制器用于整個(gè)AHB多主控器模型是不合理的。同樣,假設(shè)單一段以及期望系統(tǒng)設(shè)計(jì)者建立主控橋也是不合理的。
相對(duì)于全局模型(同時(shí)允許兩種總線配件)局部模型被設(shè)計(jì)成適應(yīng)必須具有明顯不同訪問模型的系統(tǒng)設(shè)計(jì)。對(duì)此的主要要求是相對(duì)于系統(tǒng)存儲(chǔ)器的調(diào)試監(jiān)視器的局部存儲(chǔ)器。通過將調(diào)試監(jiān)視器的存儲(chǔ)器確定為特殊段(所述段也可以包括映射寄存器的調(diào)試存儲(chǔ)器),那么當(dāng)執(zhí)行局部訪問時(shí),總線主控和/或判優(yōu)都不需要;這就允許在調(diào)試操作期間整個(gè)系統(tǒng)都以較少的干擾運(yùn)行。另外,局部總線模型可以保證總線上的其它部件不會(huì)腐蝕和損害數(shù)據(jù)。最后,在沒有監(jiān)聽選項(xiàng)的情況下局部段為加密信息控制作好準(zhǔn)備。
閃存閃存模型是以這種概念為基礎(chǔ)的,即,大多數(shù)閃存部件利用以下一組數(shù)值進(jìn)行編程所述數(shù)值之前的寫入、所述數(shù)值、以及任選地在寫入后的一些寫入。為了獲得最佳速度,許多閃存裝置允許狀態(tài)檢查以確定何時(shí)寫入。DBT模型通常不執(zhí)行這種操作。相反,它通過讓JTAG接口使用足夠的時(shí)間適應(yīng)標(biāo)準(zhǔn)的閃存寫入來工作。如果任何單元都不能獲得合適的寫入,將檢測到事后寫入的驗(yàn)證。所述方法不適合一些應(yīng)用場合使用,但是為主機(jī)模型提供了最佳速度(和門電路成本)的安全方法。最壞的情況簡化為如果超時(shí)運(yùn)行閃存必須重寫。
對(duì)于必須馬上驗(yàn)證閃存的情況,可以使用帶驗(yàn)證方法的任選的寫入閃存。這就允許JTAG仿真程序在寫入字節(jié)或字之后馬上檢查故障,并仍然發(fā)揮批處理將多個(gè)字寫入成組傳送。
強(qiáng)制驗(yàn)證驗(yàn)證模型基于非直覺的”強(qiáng)制”模型。這就是說,寫入被傳送出去,而不是執(zhí)行寫入。相反,地址被讀出(從總線)并與反向壓入的值比較。然后,將結(jié)果用2位(誤差/狀態(tài))返回并且還利用聚集誤差模型工作。這樣做是因?yàn)樗С职l(fā)送模型。可供選擇的方法是在讀出時(shí)發(fā)送并將結(jié)果返回以便在主機(jī)上比較。通過執(zhí)行塊寫入、接著壓入比較、接著更多的操作,主機(jī)可以分批處理最大數(shù)目的操作以便獲得最好的綜合性能。如果驗(yàn)證失敗,剩余的操作就被忽略,這是合理的(對(duì)于誤差處理)。這就避免了主機(jī)和目標(biāo)之間來回往返。
強(qiáng)制性驗(yàn)證可以用于閃存驗(yàn)證、SRAM下載驗(yàn)證、通常的寫入驗(yàn)證以及用于值變化的采樣。后者意味著主機(jī)可以觀察改變的地址(或地址集),然后獲得改變地址的近似時(shí)間標(biāo)記。壓入期望值,然后周期性地重復(fù)操作。通過觀察每次變化的狀態(tài)位(2),主機(jī)可以確定什么時(shí)候值被改變(當(dāng)與被壓入的值不同時(shí)驗(yàn)證返回錯(cuò)誤信號(hào))。
Attention和ACKAttention和ACK模型是清除使用郵箱模型的任何人。它避免了由目標(biāo)的查詢,并避免了由DBT裝置(它是干擾)的總線查詢。Attention和ACK的擴(kuò)展模型可供選擇具有多個(gè)Attention和/或ACK信號(hào)(例如,不同核心)的DBT部件使用,但是不會(huì)使簡單的情況慢下來。即,擴(kuò)展模型允許使用單獨(dú)的控制請(qǐng)求來選擇哪一個(gè)Attention信號(hào)用于驅(qū)動(dòng)(一個(gè)或多個(gè)),哪一個(gè)ACK信號(hào)用于采樣(一個(gè)或多個(gè)),然后可以應(yīng)用利用控制驅(qū)動(dòng)當(dāng)前設(shè)定值的常規(guī)模型。這就是說,Attention和ACK可以用于更快的直接插入模型,當(dāng)改變?nèi)芜x的設(shè)置時(shí)需要額外的掃描。
圖6示出ScanTAP至MemTAP之間的關(guān)系(以較接近于存儲(chǔ)器訪問的方式支持掃描的方法)和兩者怎樣適應(yīng)DBT并且示出一種實(shí)現(xiàn)/構(gòu)造模型。建議用于ScanTAP的模型用來完成4項(xiàng)任務(wù)●清除在時(shí)鐘域邊界上的分隔符。這提供了一種最小可能的注冊(cè)接口和時(shí)鐘域之間的同步交換管理,特別是處理掃描中傳播的額外開銷。
●簡單的MUX模型允許多個(gè)掃描鏈處理程序。
●掃描鏈處理程序的簡易實(shí)現(xiàn)-如果它們不想使用它們自己的接口(橋路支持和時(shí)鐘),那么可以與簡易的Verilog繞接以便支持ScanTAP接口。
●利用大掃描鏈的最佳化的插入/抽取應(yīng)用。
ScanTAP方案生成4種不同塊,系統(tǒng)設(shè)計(jì)程序必須執(zhí)行其中的一種(可能已經(jīng)執(zhí)行)。這些塊示于圖7。
1、協(xié)議塊。所述塊將相同的基本協(xié)議用作MemTAP的子部件。它可以通過TAP塊(對(duì)于直接的JTAG)或SWJ的片上運(yùn)行控制塊訪問。它管理簡易的34位寄存器模型,所述寄存器模型提供對(duì)34位寄存器的訪問。所述4個(gè)寄存器與MemTAP的4個(gè)寄存器匹配,但是適用于稍有不同的應(yīng)用●控制扇區(qū)(對(duì)于掃描鏈)、請(qǐng)求和數(shù)據(jù)計(jì)數(shù)器。返回狀態(tài)(如果操作完成)。請(qǐng)求指明僅僅預(yù)先、僅僅事后、僅僅插入數(shù)據(jù)、僅僅抽取數(shù)據(jù)、預(yù)先插入數(shù)據(jù)然后事后插入、預(yù)先抽取數(shù)據(jù)然后事后抽取。
●地址預(yù)先和事后計(jì)數(shù)器(每一個(gè)16位)。當(dāng)通過控制來啟動(dòng)時(shí),這些跳躍掃描單元得到想要的插入和抽取的地址。
●額外不使用??赡苡糜诨刈x當(dāng)前的掃描鏈大小。
●數(shù)據(jù)插入和抽取的數(shù)據(jù)值。這些數(shù)據(jù)值用于在掃描鏈的當(dāng)前位置設(shè)置/獲取數(shù)據(jù)。每次使用它都支持1-32位的操作。重復(fù)訪問這些寄存器每次都將執(zhí)行當(dāng)前請(qǐng)求在控制中給定大小的操作。因此,32位的4個(gè)操作中每一個(gè)都可以用于處理掃描的128位。由于只開銷2位,這就是說使用所述機(jī)制的成本很低。
2、ShiftIF塊。所述塊處于時(shí)鐘域邊界另一邊。這就允許掃描單元以比請(qǐng)求協(xié)議塊執(zhí)行的時(shí)鐘速率高很多的時(shí)鐘速率操作。所述塊管理modes、count+data(20位的寄存器)和MUXselections。相同的3個(gè)寄存器用于所有模型。ShiftIF的mode指明采用哪一個(gè)活動(dòng)設(shè)置選擇器、設(shè)置計(jì)數(shù)然后泄漏(預(yù)先或事后的進(jìn)程)、設(shè)置數(shù)據(jù)+計(jì)數(shù)然后用于插入的泄漏、設(shè)置計(jì)數(shù)然后用于抽取的到數(shù)據(jù)寄存器中的泄漏。到ShiftIF的接口把握手協(xié)議(handshake)用于確認(rèn)完成。selector和count+data為注冊(cè)接口,當(dāng)不是請(qǐng)求mode(活動(dòng))時(shí),所述接口能夠?qū)懭牒妥x出。插入看來象寫入data+count(20位)然后寫入mode、然后等待握手協(xié)議(handshake)。抽取看來象寫入count(高4位)、然后寫入mode、然后等待握手協(xié)議(handshake)、然后讀出data(16位)。
3、選擇器MUX。ShiftIF塊請(qǐng)求MUX切換當(dāng)前的選擇掃描。當(dāng)selector寄存器被寫入時(shí)就執(zhí)行,然后mode被設(shè)置為選擇器設(shè)置。MUX使用握手協(xié)議(handshake)和ACK/Error信號(hào)指明是否接受。誤差響應(yīng)將清除ShiftIF塊中的selector寄存器,使得協(xié)議塊可以檢測是否接受(在回讀上)。這允許仿真sW確定具體裝置是否存在掃描鏈。
4、串聯(lián)移位器。SoC/ASIC廠商提供串聯(lián)移位器。它可以使用5信號(hào)的接口或使用提供的繞接器。5信號(hào)接口包括3路輸入”時(shí)鐘”(預(yù)置)、”橋接”請(qǐng)求和SI(移入)。5信號(hào)接口還包括2路輸出握手協(xié)議(handshake)(ACK)和SO(移出)。根據(jù)每一個(gè)預(yù)先請(qǐng)求輸出(任何形式)的時(shí)鐘脈沖,然后當(dāng)移位完成(信號(hào)通過整個(gè)掃描鏈)后串聯(lián)移位器驅(qū)動(dòng)握手協(xié)議(handshake)信號(hào)。當(dāng)SO信號(hào)被選通到SI輸入時(shí),橋接信號(hào)被確認(rèn)并保持在時(shí)鐘前面。這允許所述掃描超前并保持相同的內(nèi)容(如果所有位循環(huán)位移)。
5、ShiftIF塊通過保持的橋接信號(hào)和脈沖count時(shí)間(由協(xié)議塊加載)來執(zhí)行事先或事后跳躍。握手協(xié)議(handshake)確定可能的速率。ShiftIF塊將不確認(rèn)自己的返回到協(xié)議塊的握手協(xié)議(handshake),一直到完成為止,因此,不存在超時(shí)運(yùn)行的可能。ShiftIF塊通過保持橋接信號(hào)和脈沖時(shí)鐘count時(shí)間來執(zhí)行數(shù)據(jù)”抽取”操作。把每一個(gè)SO移位到data寄存器。然后,當(dāng)確認(rèn)握手協(xié)議(handshake)時(shí)協(xié)議塊讀出data。ShiftIF塊通過不保持橋接信號(hào)和脈沖時(shí)鐘count時(shí)間來執(zhí)行數(shù)據(jù)”插入”操作。利用data寄存器的底部位來驅(qū)動(dòng)每一個(gè)SI,然后將所述底部位移位。協(xié)議塊將具有預(yù)先加載的data(和count)。
權(quán)利要求
1.一種集成電路,它包括多個(gè)功能電路,用于執(zhí)行數(shù)據(jù)處理操作;至少一種功能總線,用于提供所述多個(gè)功能電路之間的通信;以及診斷總線主控器電路,它在所述多個(gè)功能電路的實(shí)時(shí)操作期間,通過借助于所述至少一種功能總線向所述多個(gè)功能電路中的一個(gè)或多個(gè)電路發(fā)布總線交易請(qǐng)求來對(duì)所述多個(gè)功能電路中的至少一個(gè)電路執(zhí)行診斷操作。
2.如權(quán)利要求1所述的集成電路,其中,所述診斷總線主控器電路執(zhí)行以下的一個(gè)或多個(gè)操作調(diào)試操作;生產(chǎn)測試操作;生產(chǎn)編程操作;生產(chǎn)配置操作;現(xiàn)場編程操作;以及現(xiàn)場配置操作。
3.如權(quán)利要求1和2中任何一項(xiàng)所述的集成電路,其中,所述診斷總線主控器電路可以執(zhí)行驗(yàn)證操作,以便授權(quán)所述診斷總線主控器電路完成執(zhí)行診斷操作和訪問所述功能總線兩者中的至少一種操作。
4.如權(quán)利要求3所述的集成電路,其中包括與所述至少一種功能總線連接的驗(yàn)證電路,所述驗(yàn)證操作包括所述診斷總線主控器電路向所述驗(yàn)證電路發(fā)布驗(yàn)證請(qǐng)求,所述驗(yàn)證電路可以根據(jù)所述驗(yàn)證請(qǐng)求與預(yù)定的規(guī)則的匹配選擇性地授權(quán)給所述診斷總線主控器電路。
5.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中包括將所述診斷總線主控器電路連接到所述多個(gè)功能電路中至少一個(gè)的專用診斷總線,所述專用診斷總線提供對(duì)不能通過所述至少一種功能總線訪問的數(shù)據(jù)的訪問。
6.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中包括具有不同總線協(xié)議的多功能總線,所述診斷總線主控器電路包括多個(gè)總線接口電路,所述各總線接口電路各自用于利用相應(yīng)的功能總線的總線協(xié)議與所述相應(yīng)的功能總線進(jìn)行通信。
7.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述診斷總線主控器電路包括外部接口電路,所述外部接口電路用于利用相應(yīng)的外部信號(hào)協(xié)議與相應(yīng)的外部診斷裝置進(jìn)行通信。
8.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述診斷總線主控器電路可以在所述集成電路的時(shí)鐘域和連接到所述診斷總線主控器電路的外部診斷裝置的時(shí)鐘域之間傳送信號(hào)。
9.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述診斷總線主控器電路可以執(zhí)行以下的一個(gè)或多個(gè)操作裝入來自連接所述至少一個(gè)功能總線的裝置的數(shù)據(jù)值;將數(shù)據(jù)值存儲(chǔ)到連接所述至少一種功能總線的裝置中;在連接所述至少一種功能總線的各裝置之間復(fù)制數(shù)據(jù)值;以及驗(yàn)證存儲(chǔ)在連接所述至少一種功能總線的裝置中的數(shù)據(jù)值。
10.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,閃存與所述至少一種功能總線連接,所述診斷總線主控器電路可以利用閃存可編程協(xié)議對(duì)所述閃存進(jìn)行編程。
11.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述集成電路是芯片系統(tǒng)集成電路。
12.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述至少一種功能總線是所述集成電路的外部總線。
13.如上述權(quán)利要求中任何一項(xiàng)所述的集成電路,其中,所述至少一種功能總線是AMBA總線。
14.一種對(duì)集成電路執(zhí)行實(shí)時(shí)診斷操作的方法,所述集成電路具有可以執(zhí)行數(shù)據(jù)處理操作的多個(gè)功能電路和可以在所述多個(gè)功能電路之間提供通信的至少一種功能總線,所述方法包括以下步驟在所述多個(gè)功能電路的實(shí)時(shí)操作期間,通過所述至少一種功能總線從診斷總線主控器電路向所述多個(gè)功能電路中的一個(gè)或多個(gè)功能電路發(fā)布總線事務(wù)請(qǐng)求。
15.如權(quán)利要求14所述的方法,其中,所述診斷總線主控器電路可以執(zhí)行以下的一個(gè)或多個(gè)操作調(diào)試操作;生產(chǎn)測試操作;生產(chǎn)編程操作;生產(chǎn)配置操作;現(xiàn)場編程操作;以及現(xiàn)場配置操作。
16.如權(quán)利要求14和15中任何一項(xiàng)所述的方法,其中,所述診斷總線主控器電路執(zhí)行驗(yàn)證操作以便授權(quán)所述診斷總線主控器電路完成執(zhí)行診斷操作和訪問所述功能總線兩者中的至少一種操作。
17.如權(quán)利要求16所述的方法,其中,驗(yàn)證電路與所述至少一種功能總線連接,所述驗(yàn)證操作包括所述診斷總線主控器電路向所述驗(yàn)證電路發(fā)布驗(yàn)證請(qǐng)求,所述驗(yàn)證電路根據(jù)所述驗(yàn)證請(qǐng)求與預(yù)定的規(guī)則的匹配選擇性地授權(quán)給所述診斷總線主控器電路。
18.如權(quán)利要求14至17中的任何一項(xiàng)所述的方法,其中,專用診斷總線將所述診斷總線主控器電路連接到所述多個(gè)功能電路中的至少一個(gè),所述專用診斷總線提供對(duì)不能通過所述至少一種功能總線訪問的數(shù)據(jù)的訪問。
19.如權(quán)利要求14至18中的任何一項(xiàng)的方法,所述集成電路包括具有不同總線協(xié)議的多功能總線,所述診斷總線主控器電路包括多個(gè)總線接口電路,所述各總線接口電路各自用于利用相應(yīng)的功能總線的總線協(xié)議與所述相應(yīng)的功能總線進(jìn)行通信。
20.如權(quán)利要求14至19中的任何一項(xiàng)所述的方法,其中,所述診斷總線主控器電路包括外部接口電路,所述外部接口電路用于利用相應(yīng)的外部信號(hào)協(xié)議與相應(yīng)的外部診斷裝置進(jìn)行通信。
21.如權(quán)利要求14至20中的任何一項(xiàng)所述的方法,其中,所述診斷總線主控器電路可以在所述集成電路的時(shí)鐘域和連接到所述診斷總線主控器電路的外部診斷裝置的時(shí)鐘域之間傳送信號(hào)。
22.如權(quán)利要求14至21中的任何一項(xiàng)所述的方法,其中,所述診斷總線主控器電路執(zhí)行以下的一個(gè)或多個(gè)操作裝入來自連接所述至少一個(gè)功能總線的裝置的數(shù)據(jù)值;將數(shù)據(jù)值存儲(chǔ)到連接所述至少一種功能總線的裝置中;在連接所述至少一種功能總線的各裝置之間復(fù)制數(shù)據(jù)值;以及驗(yàn)證存儲(chǔ)在連接所述至少一種功能總線的裝置中的數(shù)據(jù)值。
23.如權(quán)利要求14至22中的任何一項(xiàng)所述的方法,其中,閃存與所述至少一種功能總線連接,所述診斷總線主控器電路可以利用閃存可編程協(xié)議對(duì)所述閃存進(jìn)行編程。
24.如權(quán)利要求14至23中的任何一項(xiàng)所述的方法,其中,所述集成電路是芯片系統(tǒng)集成電路。
25.如權(quán)利要求14至24中的任何一項(xiàng)所述的方法,其中,所述至少一種功能總線是所述集成電路的內(nèi)部總線。
26.如權(quán)利要求14至25中的任何一項(xiàng)所述的方法,其中,所述至少一種功能總線是AMBA總線。
全文摘要
一種通過功能總線互連的具有多個(gè)功能電路的集成電路,它配備有診斷總線主控器電路,所述診斷總線主控器電路利用功能總線上的總線交易執(zhí)行診斷操作。這些診斷操作在集成電路的標(biāo)準(zhǔn)速度運(yùn)行期間實(shí)時(shí)執(zhí)行,以便產(chǎn)生更精確的診斷結(jié)果。對(duì)于作為診斷操作的一部分的從存儲(chǔ)器讀出數(shù)據(jù)值或?qū)?shù)據(jù)值寫入存儲(chǔ)器的操作,診斷總線主控器電路特別有用。
文檔編號(hào)G06F11/273GK1764902SQ03826315
公開日2006年4月26日 申請(qǐng)日期2003年9月17日 優(yōu)先權(quán)日2003年4月17日
發(fā)明者P·基梅爾曼, I·費(fèi)爾德 申請(qǐng)人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
师宗县| 安多县| 皮山县| 定襄县| 竹溪县| 工布江达县| 睢宁县| 东辽县| 尼勒克县| 上饶县| 合阳县| 阿鲁科尔沁旗| 太仆寺旗| 红原县| 屏山县| 马龙县| 门源| 玉龙| 自治县| 雷波县| 杂多县| 南乐县| 鄂伦春自治旗| 洮南市| 贡嘎县| 邓州市| 从化市| 司法| 宁安市| 揭东县| 仁化县| 鄂尔多斯市| 祁阳县| 宁津县| 利川市| 察隅县| 韶关市| 固始县| 龙山县| 竹北市| 仁化县|