專(zhuān)利名稱(chēng):包括并行和串行訪(fǎng)問(wèn)的片上系統(tǒng)的測(cè)試方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及印刷電路板領(lǐng)域,更具體地,涉及印刷電路板的測(cè)試。
背景技術(shù):
聯(lián)合測(cè)試行動(dòng)組(JTAG)是指針對(duì)測(cè)試訪(fǎng)問(wèn)端口的IEEE 1149標(biāo)準(zhǔn),用于使用邊界 掃描來(lái)測(cè)試印刷電路板。自動(dòng)測(cè)試產(chǎn)生(ATG)工具使用JTAG來(lái)測(cè)試印刷電路板。已經(jīng)開(kāi)發(fā) 了邊界掃描描述語(yǔ)言(BSDL)作為板級(jí)JTAG的IEEE 1149. 1標(biāo)準(zhǔn)的一部分,并且還已經(jīng)開(kāi) 發(fā)了分級(jí)掃描描述語(yǔ)言(HSDL)作為BSDL的擴(kuò)展。BSDL/HSDL描述了在板上或板的組件上 可用的資源(其中,HSDL描述了由其他組件構(gòu)成的組件)。雖然BSDL/HSDL對(duì)于板級(jí)JTAG 是高效的,但是從板級(jí)JTAG至片級(jí)JTAG的發(fā)展突出了 BSDL/HSDL的局限性。正在對(duì)指令JTAG (IJTAG)進(jìn)行標(biāo)準(zhǔn)化(表示為P1687標(biāo)準(zhǔn)),來(lái)克服與從板級(jí)JTAG 至片級(jí)JTAG的轉(zhuǎn)換相關(guān)聯(lián)的現(xiàn)有JTAG局限性;然而,與IJTAG相關(guān)聯(lián)的進(jìn)行中的工作已經(jīng) 揭示出,BSDL/HSDL不能夠滿(mǎn)足片級(jí)JTAG測(cè)試的描述需求。BSDL/HSDL依賴(lài)于組成邊界掃 描寄存器的單元的有序列表,然而,這樣的靜態(tài)描述不適合描述IJTAG中所需的復(fù)雜動(dòng)態(tài) 掃描鏈。此外,BSDL/HSDL不能提供用于描述系統(tǒng)的每個(gè)組件所需的測(cè)試過(guò)程的空間。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于片級(jí)JTAG測(cè)試的新硬件描述語(yǔ)言。這種新硬件描述語(yǔ)言 被稱(chēng)作新BSDL(NSDL),使得能夠描述片上系統(tǒng)的測(cè)試資源,從而使得能夠以便于片上系統(tǒng) 測(cè)試的方式來(lái)描述片上系統(tǒng)。本發(fā)明提供了一種自下至上的方法來(lái)描述片上系統(tǒng)。本發(fā)明 支持片上系統(tǒng)的每個(gè)組件的算法描述,并且支持片上系統(tǒng)的組件之間的互連的算法描述, 從而能夠產(chǎn)生整個(gè)片上系統(tǒng)或部分片上系統(tǒng)的算法描述。本發(fā)明支持對(duì)一個(gè)或多個(gè)片上系 統(tǒng)器件的并行訪(fǎng)問(wèn),包括用于描述和使用并行訪(fǎng)問(wèn)進(jìn)行測(cè)試的方法。在一個(gè)實(shí)施例中,一種方法,包括接收對(duì)串行測(cè)試訪(fǎng)問(wèn)接口的描述,該串行測(cè)試 訪(fǎng)問(wèn)接口用于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流;接收對(duì)并行測(cè)試訪(fǎng)問(wèn)接口的描述, 該并行測(cè)試訪(fǎng)問(wèn)接口用于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流;以及存儲(chǔ)對(duì)串行測(cè)試訪(fǎng) 問(wèn)接口的描述以及對(duì)并行測(cè)試訪(fǎng)問(wèn)接口的描述,其中,串行測(cè)試訪(fǎng)問(wèn)接口使用片上系統(tǒng)的 串行掃描路徑來(lái)提供對(duì)組件的訪(fǎng)問(wèn),并行測(cè)試訪(fǎng)問(wèn)接口提供對(duì)組件的訪(fǎng)問(wèn),而不使用片上 系統(tǒng)的串行掃描路徑。在一個(gè)實(shí)施例中,一種方法,包括接收對(duì)并行接口模塊的描述,該并行接口模塊 適于將測(cè)試系統(tǒng)耦合至片上系統(tǒng)的核心模塊;以及存儲(chǔ)對(duì)并行接口模塊的描述,其中,并行 接口包括至少一個(gè)串行寄存器,適于經(jīng)由片上系統(tǒng)的掃描路徑對(duì)核心模塊進(jìn)行訪(fǎng)問(wèn);以 及至少一個(gè)并行寄存器,適于對(duì)核心模塊進(jìn)行訪(fǎng)問(wèn),而不使用片上系統(tǒng)的掃描路徑。在一個(gè)實(shí)施例中,一種方法,包括接收對(duì)串行測(cè)試訪(fǎng)問(wèn)端口的描述,該串行測(cè)試 訪(fǎng)問(wèn)端口適于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流;接收對(duì)并行測(cè)試訪(fǎng)問(wèn)端口的描述, 該并行測(cè)試訪(fǎng)問(wèn)端口適于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流;接收對(duì)接口端口的描述,該接口端口適于將串行測(cè)試訪(fǎng)問(wèn)端口和并行測(cè)試訪(fǎng)問(wèn)端口耦合至片上系統(tǒng)的至少一部 分組件;以及對(duì)描述進(jìn)行存儲(chǔ),以在測(cè)試片上系統(tǒng)時(shí)使用。
結(jié)合附圖,通過(guò)考慮以下詳細(xì)描述,能夠容易理解本發(fā)明的教導(dǎo),在附圖中圖1示出了測(cè)試環(huán)境的高級(jí)框圖;圖2示出了圖1的測(cè)試環(huán)境的片上系統(tǒng)的高級(jí)框圖;圖3示出了對(duì)“無(wú)訪(fǎng)問(wèn)”組件的輸入-輸出認(rèn)識(shí);圖4示出了對(duì)“受限訪(fǎng)問(wèn)”或“全訪(fǎng)問(wèn)”組件的輸入-輸出認(rèn)識(shí);圖5示出了對(duì)組件的內(nèi)部掃描路徑的片(slice)的顯式引用;圖6示出了交叉器件的表示的高級(jí)框圖;圖7示出了使用通用交叉器件來(lái)動(dòng)態(tài)修改片上系統(tǒng)的掃描路徑的高級(jí)框圖;圖8示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖;圖9示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖;圖10示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖;圖11示出了圖1的測(cè)試環(huán)境的測(cè)試系統(tǒng)的高級(jí)框圖;圖12示出了通過(guò)JTAG連接來(lái)測(cè)試系統(tǒng)的圖1的測(cè)試系統(tǒng)執(zhí)行的示例方法;圖13示出了通過(guò)JTAG連接來(lái)測(cè)試系統(tǒng)的圖1的測(cè)試系統(tǒng)執(zhí)行的示例方法;圖14示出了通過(guò)JTAG連接來(lái)測(cè)試系統(tǒng)的圖1的測(cè)試系統(tǒng)執(zhí)行的示例方法;圖15示出了使用圖2的片上系統(tǒng)的組件之一的描述來(lái)確定用于測(cè)試該組件的測(cè) 試過(guò)程的寄存器比特值;圖16示出了使用圖2的片上系統(tǒng)的組件的描述來(lái)確定用于測(cè)試圖2的片上系統(tǒng) 的組件之一的測(cè)試過(guò)程的比特流;圖17示出了在IJTAG/NSDL框架中測(cè)試系統(tǒng)的組件的圖1的測(cè)試系統(tǒng)執(zhí)行的示例 方法;圖18示出了示例片上系統(tǒng)的高級(jí)框圖;圖19示出了使用圖18的片上系統(tǒng)的組件之一的描述來(lái)確定用于測(cè)試該組件的測(cè) 試過(guò)程的寄存器比特值;圖20示出了使用圖18的片上系統(tǒng)的組件的描述來(lái)確定圖18的片上系統(tǒng)的組件 的描述;圖21示出了并行訪(fǎng)問(wèn)接口的通用連接方案的高級(jí)框圖;圖22是示出了兩個(gè)示例并行訪(fǎng)問(wèn)連接方案的高級(jí)框圖;圖23A示出了示例測(cè)試環(huán)境的高級(jí)框圖;圖23B示出了圖23A的示例測(cè)試環(huán)境內(nèi)的數(shù)據(jù)流的高級(jí)框圖;圖24示出了并行端口與片上系統(tǒng)的核心之間的示例連接的高級(jí)框圖;圖25示出了并行端口與片上系統(tǒng)的核心之間的示例連接的高級(jí)框圖;圖26示出了并行端口與片上系統(tǒng)的核心之間的示例連接的高級(jí)框圖;圖27示出了并行端口與片上系統(tǒng)的核心之間的示例連接的高級(jí)框圖;圖28示出了并行訪(fǎng)問(wèn)接口的內(nèi)部連接方案的高級(jí)框圖29示出了用于描述片上系統(tǒng)的測(cè)試資源的方法;以及圖30示出了適合于執(zhí)行本文描述的函數(shù)的通用計(jì)算機(jī)的高級(jí)框圖。為便于理解,在可能的情況下,使用相同的附圖標(biāo)記來(lái)指示附圖中相同的元件。
具體實(shí)施例方式如這里所述,正在將指令JTAG(IJTAG)標(biāo)準(zhǔn)化(被稱(chēng)作P1687標(biāo)準(zhǔn),或備選地, IJTAG)來(lái)克服與從板級(jí)JTAG測(cè)試至片級(jí)JTAG測(cè)試的轉(zhuǎn)換相關(guān)聯(lián)的現(xiàn)有JTAG局限性;然 而,與IJTAG相關(guān)聯(lián)的進(jìn)行中的工作已經(jīng)揭示出,BSDL/HSDL不能夠滿(mǎn)足片級(jí)邊界掃描的描 述需求。本發(fā)明提供了一種克服用于片級(jí)JTAG測(cè)試的BSDL/HSDL的局限性的新硬件描述 語(yǔ)言。這種新硬件描述語(yǔ)言在這里被稱(chēng)作新BSDL(NSDL)。NSDL語(yǔ)言實(shí)現(xiàn)了片上系統(tǒng)的測(cè) 試資源的描述,從而便于片上系統(tǒng)的測(cè)試。從以下NSDL描述中可以看到NSDL描述語(yǔ)言的 許多優(yōu)點(diǎn)。如這里所述,新硬件描述語(yǔ)言NSDL還實(shí)現(xiàn)了基于JTAG的測(cè)試中的附加改進(jìn)。NSDL 描述語(yǔ)言使得能夠使用所謂的“交叉器件”來(lái)便于片上系統(tǒng)器件的測(cè)試。交叉器件實(shí)現(xiàn)了 對(duì)片上系統(tǒng)的系統(tǒng)掃描路徑的動(dòng)態(tài)修改。NSDL描述語(yǔ)言還使得能夠使用并行訪(fǎng)問(wèn)來(lái)便于片 上系統(tǒng)器件的測(cè)試??梢远喾N方式來(lái)提供對(duì)片上系統(tǒng)器件的并行訪(fǎng)問(wèn)。此外,應(yīng)當(dāng)注意,雖 然這些改進(jìn)已由NSDL描述語(yǔ)言實(shí)現(xiàn),但是這些改進(jìn)也可以結(jié)合今后開(kāi)發(fā)的其他描述語(yǔ)言 來(lái)利用。在硬件開(kāi)發(fā)過(guò)程中,有三個(gè)主要參與方器件供應(yīng)商、系統(tǒng)架構(gòu)師、以及測(cè)試工程 師。器件供應(yīng)商制造特定器件。系統(tǒng)架構(gòu)師使用由器件供應(yīng)商提供的器件來(lái)構(gòu)成系統(tǒng)。測(cè) 試工程師對(duì)該系統(tǒng)進(jìn)行測(cè)試,以確保該系統(tǒng)正確運(yùn)行(例如,測(cè)試系統(tǒng)器件之間的互連、器 件函數(shù)、系統(tǒng)函數(shù)等)。NSDL語(yǔ)言可以由器件供應(yīng)商使用(例如,來(lái)描述其器件),由系統(tǒng) 架構(gòu)師使用(例如,用于構(gòu)成系統(tǒng)),以及由測(cè)試工程師使用(例如,用于測(cè)試該系統(tǒng))。因 此,預(yù)期的是在整個(gè)硬件開(kāi)發(fā)過(guò)程中使用NSDL語(yǔ)言。在片上系統(tǒng)開(kāi)發(fā)過(guò)程中,組成系統(tǒng)的器件可以是“軟”器件,S卩,使用某種硬件描述 語(yǔ)言的器件描述。在該過(guò)程中,系統(tǒng)架構(gòu)師在系統(tǒng)級(jí)開(kāi)發(fā)流中將軟器件與系統(tǒng)級(jí)代碼集成, 以獲得最終由測(cè)試工程師進(jìn)行測(cè)試的片上系統(tǒng)。由于片上系統(tǒng)的復(fù)雜度增加(例如,在器 件數(shù)目、器件之間的互連、器件內(nèi)依賴(lài)性、器件間依賴(lài)性等方面),測(cè)試片上系統(tǒng)的復(fù)雜度也 增加。NSDL語(yǔ)言使得能夠容易描述并從而容易測(cè)試任何復(fù)雜度的片上系統(tǒng)。圖1示出了測(cè)試環(huán)境的高級(jí)框圖。具體地,測(cè)試環(huán)境100包括片上系統(tǒng)(S-o-C)llO 和測(cè)試系統(tǒng)(TS) 120。TS 120測(cè)試S-O-C 110 (例如,測(cè)試S-o_C 110的各個(gè)單獨(dú)組件(包 括組件函數(shù))、S-o-C 110上器件之間的互連、S-o-C 110的系統(tǒng)級(jí)函數(shù)等,及其各種組合)。 TS 120經(jīng)由測(cè)試訪(fǎng)問(wèn)端口 (TAP) 115測(cè)試S-o-C 110,該測(cè)試訪(fǎng)問(wèn)端口(TAP) 115包括輸入 端口 115工(表示為T(mén)DI端口)以及輸出端口 115。(表示為T(mén)DO端口)。在一個(gè)實(shí)施例中,在P1687環(huán)境中,通過(guò)IEEE 1149. 1標(biāo)準(zhǔn)描述TAP115。盡管這 里主要使用TDI端口 115I*TD0端口 115。示出和描述,但是TAP 115可以包括其他控制端 口,例如,TCK端口、TMS端口、以及可選地,TRST端口(出于清楚描述目的已經(jīng)省略)。此 外,盡管主要關(guān)于由IEEE 1149. 1標(biāo)準(zhǔn)描述的TAP來(lái)示出和描述,但是TAP 115可以利用各 種其他端口(例如,由其他標(biāo)準(zhǔn)描述的端口等,及其各種組合)。
TS 120使用測(cè)試過(guò)程(test procedure)對(duì)S-o-C 110進(jìn)行測(cè)試。TS 120可以使 用一個(gè)或多個(gè)測(cè)試過(guò)程來(lái)執(zhí)行一個(gè)或多個(gè)測(cè)試。測(cè)試過(guò)程可以用于測(cè)試組件的一部分(例 如,組件函數(shù)、組件函數(shù)集、組件內(nèi)依賴(lài)性等)、組件、一組組件(例如,組件之間的互連、組 件間依賴(lài)性等)、一個(gè)或多個(gè)系統(tǒng)級(jí)函數(shù)等,及其各種組合。TS 120產(chǎn)生測(cè)試過(guò)程來(lái)測(cè)試S-o-C 110。測(cè)試過(guò)程指定測(cè)試S-Q-CllO所需的信 息。針對(duì)S-o-C 110的測(cè)試過(guò)程可以指定S-o-C 110的描述(包括對(duì)S-o-C 110的各個(gè)單 獨(dú)組件中的每一個(gè)的描述,以及S-o-C 110的系統(tǒng)級(jí)描述)。測(cè)試過(guò)程可以指定輸入測(cè)試向 量和預(yù)期輸出測(cè)試向量。測(cè)試過(guò)程可以包括與測(cè)試相關(guān)聯(lián)的其他信息,例如,測(cè)試所需的估 計(jì)的時(shí)間、針對(duì)測(cè)試輸出數(shù)據(jù)處理(例如,日志記錄、錯(cuò)誤觸發(fā)、恢復(fù)動(dòng)作等)等,及其各種 組合。TS 120使用S-o-C 110的描述(包括對(duì)S_0_C 110的各個(gè)單獨(dú)組件中的每一個(gè)的 描述,以及S-o-C 110的系統(tǒng)級(jí)描述)來(lái)產(chǎn)生測(cè)試過(guò)程以測(cè)試S-o-C 110。可以使用NSDL 來(lái)指定對(duì)S-o-C 110的各個(gè)單獨(dú)組件的描述。單獨(dú)組件的描述可以描述該組件的內(nèi)部掃描 路徑??梢允褂肗SDL來(lái)指定S-o-C 110的系統(tǒng)級(jí)描述。S-o-C 110的系統(tǒng)級(jí)描述可以描述 S-o-C 110的拓?fù)?例如,組件之間的互連、組件間依賴(lài)性等)。S-o-C 110的描述信息(包括各個(gè)單獨(dú)組件的描述、系統(tǒng)級(jí)描述等)包括用于為 S-o-C 110產(chǎn)生測(cè)試過(guò)程的信息。例如,描述信息包括組件掃描路徑信息、系統(tǒng)拓?fù)湫畔⒌龋?可以對(duì)這些信息進(jìn)行處理以確定掃描路徑長(zhǎng)度信息、掃描路徑分級(jí)信息等,及其各種組合。 S-o-C 110的描述信息可以包括這里描述的任何其他描述信息。TS 120通過(guò)對(duì)S-o-C 110執(zhí)行一個(gè)或多個(gè)測(cè)試過(guò)程來(lái)測(cè)試S-o-CllO。TS 120為 要執(zhí)行的測(cè)試產(chǎn)生輸入比特流和預(yù)期測(cè)試結(jié)果(例如,預(yù)期輸出比特值或輸出比特流)。TS 120向TDI端口 115工提供輸入比特流(被稱(chēng)作輸入測(cè)試向量),并接收來(lái)自TDO端口 115。 的相應(yīng)輸出比特流(被稱(chēng)作輸出測(cè)試向量)。TS 120將實(shí)際輸出比特流與預(yù)期輸出比特流 進(jìn)行比較,以確定測(cè)試結(jié)果。TS 120可以存儲(chǔ)測(cè)試結(jié)果。TS 120可以執(zhí)行一個(gè)或多個(gè)測(cè)試過(guò)程來(lái)測(cè)試S-o-C 110。TS 120可以以某種方式 組織對(duì)多個(gè)測(cè)試過(guò)程的執(zhí)行,來(lái)最小化總測(cè)試時(shí)間(由于對(duì)于相同的測(cè)試過(guò)程的集合,不 同調(diào)度決策會(huì)得到不同的測(cè)試完成時(shí)間)。TS 120可以指定測(cè)試調(diào)度(即,對(duì)執(zhí)行測(cè)試過(guò) 程所必須按照的順序進(jìn)行指定的調(diào)度)。TS 120可以執(zhí)行與片上系統(tǒng)的測(cè)試相關(guān)聯(lián)的多種 其他函數(shù)。圖2示出了圖1的測(cè)試環(huán)境的片上系統(tǒng)的高級(jí)框圖。如圖2所示,S-o-C 110包 括多個(gè)組件210A-210E(共同示為組件210),這些組件通過(guò)多個(gè)組件互連220 (共同示為組 件互連220)而相互連接。組件210可以包括可以包括在片上系統(tǒng)中的任何組件??梢允褂肗SDL來(lái)描述組 件210。組件210在這里也可以被稱(chēng)作測(cè)試資源。在一個(gè)實(shí)施例中,在根據(jù)P1687標(biāo)準(zhǔn)的系統(tǒng)中,組件210可以包括IP、儀器 (instrument)、和/或選擇儀器比特(SIB)。知識(shí)產(chǎn)權(quán)(IP)器件是需要測(cè)試的正常器件。儀器是不需要測(cè)試的、提供適于幫助測(cè)試的功能(例如,讀取值、監(jiān)視值、提供有 用信息等,及其各種組合)的器件。例如,儀器可以是要用于對(duì)加速壽命測(cè)試進(jìn)行參數(shù)化的溫度傳感器的輸出。例如,儀器可以是對(duì)于軟件定義的無(wú)線(xiàn)電裝置的獲取階段,用于校準(zhǔn)可 調(diào)諧濾波器的傳感器的參考值。換言之,儀器可以幫助在初始系統(tǒng)測(cè)試期間以及在整個(gè)系 統(tǒng)壽命期間進(jìn)行測(cè)試。由于IP/儀器可能非常類(lèi)似,這里可以交換地使用這兩個(gè)術(shù)語(yǔ)。此外,由于IP和 儀器可以用作片上系統(tǒng)的組件,因此更一般地,IP和儀器在這里可以被稱(chēng)作組件。IP/儀器可以包括分級(jí)掃描路徑。具有分級(jí)掃描路徑的組件包括內(nèi)部掃描路徑,當(dāng) 將該組件引入到系統(tǒng)中時(shí),該內(nèi)部掃描路徑成為系統(tǒng)掃描路徑的一部分。SIB是分級(jí)掃描路徑單元,其使得能夠動(dòng)態(tài)地將掃描路徑的一部分包括在掃描路 徑中或從掃描路徑中去除(這取決于測(cè)試中將會(huì)使用哪個(gè)或哪些器件)。SIB形成當(dāng)前 P1687標(biāo)準(zhǔn)草案的硬件提議的一部分。一般而言,分級(jí)改善了對(duì)片上系統(tǒng)的組件的測(cè)試。例如,分級(jí)實(shí)現(xiàn)了測(cè)試期間對(duì)有 源系統(tǒng)掃描路徑的最小化以及對(duì)組件的隔離,從而減少了對(duì)片上系統(tǒng)的組件的訪(fǎng)問(wèn)時(shí)間。在其他實(shí)施例中,在根據(jù)其他標(biāo)準(zhǔn)的系統(tǒng)中,組件210可以包括其他類(lèi)型的組件。在一個(gè)實(shí)施例中,組件210可以包括一個(gè)或多個(gè)交叉器件。片上系統(tǒng)測(cè)試中對(duì)交 叉器件的使用是通過(guò)使用NSDL語(yǔ)言來(lái)實(shí)現(xiàn)的(即,大多數(shù)這樣的器件不能由BSDL/HSDL來(lái) 描述)。參照?qǐng)D6-10可以更好地理解片上系統(tǒng)測(cè)試中對(duì)交叉器件的使用。如圖2所示,組件210中的每一個(gè)包括多個(gè)內(nèi)部寄存器。具體地,組件210A包括 三個(gè)寄存器(A。、A^ A2),組件210b包括六個(gè)寄存器(B。、B。B2、B3> B4, B5),組件210c包括五 個(gè)寄存器(Cc^CrCyCyC4),組件210d包括三個(gè)寄存器(D0,D1,D2),以及組件210E包括四個(gè) 寄存器(Ep E1, E2, E3)。每個(gè)組件210的寄存器形成針對(duì)該組件210的內(nèi)部掃描路徑???以使用NSDL來(lái)描述每個(gè)組件210的內(nèi)部掃描路徑。如圖2所示,每個(gè)組件210支持至少一個(gè)函數(shù)。具體地,組件210a支持三個(gè)函數(shù), 組件210b支持四個(gè)函數(shù),組件210。支持三個(gè)函數(shù),組件210d支持兩個(gè)函數(shù),組件210e支持 一個(gè)函數(shù)。由每個(gè)組件210支持的函數(shù)分別利用每個(gè)組件210的寄存器(即,內(nèi)部掃描路 徑)。因此,可以使用NSDL來(lái)描述每個(gè)組件210支持的函數(shù)。如圖2所示,S-O-C 110的組件210經(jīng)由S_0_C 110的組件互連220連接。組件 210(即,組件210的內(nèi)部掃描路徑)和組件210之間的組件互連220形成從S-O-C 110的輸 入測(cè)試端口(TDI)至S-O-C 110的輸出測(cè)試端口(TDO)的系統(tǒng)掃描路徑??梢允褂肗SDL來(lái) 定義系統(tǒng)掃描路徑(例如,通過(guò)使用NSDL來(lái)定義各個(gè)單獨(dú)組件中的每一個(gè),以及使用NSDL 來(lái)定義系統(tǒng)的構(gòu)成,從而形成基于NSDL的總體系統(tǒng)描述)。如這里所述,基于NSDL的S-O-C 110的總體系統(tǒng)描述是算法描述(即,由于在使 用相湖關(guān)聯(lián)的算法的集合中,描述組件210、組件互連220、組件內(nèi)以及組件間依賴(lài)性等中 的每一個(gè))。S-O-C 110的算法描述包括適于在測(cè)試S-O-C 110時(shí)由TS 120使用的信息 (例如,掃描路徑長(zhǎng)度信息、掃描路徑分級(jí)信息等,及其各種組合)??梢酝ㄟ^(guò)以下方式來(lái)描述片上系統(tǒng)描述片上系統(tǒng)的每個(gè)組件(例如,描述IP、儀 器、交叉器件(當(dāng)使用時(shí))等,及其各種組合),描述片上系統(tǒng)的拓?fù)?包括描述片上系統(tǒng)的 每個(gè)組件之間的互連、組件內(nèi)以及組件間依賴(lài)性等,及其各種組合)。在一個(gè)實(shí)施例中,在根據(jù)P1687標(biāo)準(zhǔn)的系統(tǒng)中,組件可以包括IP、儀器、和/或選擇 儀器比特(SIB),片上系統(tǒng)的描述需要每個(gè)IP/儀器的描述(例如,包括內(nèi)部寄存器的含義、要應(yīng)用/觀(guān)察的過(guò)程/比特流集合等),每個(gè)SIB的描述(當(dāng)使用SIB時(shí)),系統(tǒng)掃描路 徑的構(gòu)成的描述(即,掃描路徑如何通過(guò)片上系統(tǒng),包括每個(gè)組件的內(nèi)部掃描路徑如何通 過(guò)組件等)等,及其各種組合。將IP插入到掃描鏈中,這能夠?qū)崿F(xiàn)通過(guò)掃描鏈對(duì)IP的測(cè)試。片上系統(tǒng)內(nèi)對(duì)IP的 使用是根據(jù)針對(duì)IP的訪(fǎng)問(wèn)權(quán)限級(jí)別(APL)(例如,無(wú)訪(fǎng)問(wèn)、受限訪(fǎng)問(wèn)、全訪(fǎng)問(wèn))而改變的。如果針對(duì)IP的APL是“無(wú)訪(fǎng)問(wèn)”,則測(cè)試工具不知道IP的內(nèi)部,因此必須依賴(lài)于由 IP的供應(yīng)商提供的信息。例如,必須提供針對(duì)IP的比特流集合(即,輸入比特流和預(yù)期輸 出比特流)。在這種情況下,認(rèn)為該比特流為靜態(tài)比特流。測(cè)試工具必須將針對(duì)IP的靜態(tài) 輸入比特流插入到針對(duì)片上系統(tǒng)的系統(tǒng)比特流中,并對(duì)IP的供應(yīng)商所指定的相應(yīng)輸出比 特流進(jìn)行處理。如果針對(duì)IP的APL是“全訪(fǎng)問(wèn)”,則測(cè)試工具完全知道IP的內(nèi)部,包括用NSDL描 述的IP的內(nèi)部掃描鏈以及用選擇的描述語(yǔ)言描述的IP的源。在這種情況下,測(cè)試工具能 夠直接計(jì)算針對(duì)IP的所需的輸入比特流和預(yù)期輸出比特流(例如,使用其自己的算法),或 者IP的供應(yīng)商能夠提供預(yù)先計(jì)算的比特流的集合(例如,作為靜態(tài)和/或動(dòng)態(tài)比特流)。如果針對(duì)IP的APL是“受限訪(fǎng)問(wèn)”,則測(cè)試工具僅有限地知道IP的內(nèi)部。提供IP 的NSDL描述。IP的NSDL描述包括IP的內(nèi)部掃描鏈的描述,以及可以用于測(cè)試IP的過(guò)程 集。在這種情況下,測(cè)試工具使用IP的描述,以產(chǎn)生在測(cè)試IP時(shí)使用的比特流(例如,輸 入比特流和預(yù)期輸出比特流)。將儀器插入到片上系統(tǒng)中,這能夠?qū)崿F(xiàn)了通過(guò)檢查一些值或條件來(lái)測(cè)試片上系 統(tǒng)。儀器可以支持可用于測(cè)試目的的一個(gè)或多個(gè)函數(shù)。因此,雖然IP的描述僅包括測(cè)試IP 所需的過(guò)程集,但是儀器的描述還包括可以用于訪(fǎng)問(wèn)儀器的函數(shù)的過(guò)程(和/或比特流) 集。儀器的描述可以包括從構(gòu)成儀器的寄存器的寄存器的值方面對(duì)儀器的函數(shù)的描述。因 此,使用NSDL,IP和儀器之間的唯一不同在于過(guò)程集。如這里關(guān)于IP和儀器所述,可以使用過(guò)程來(lái)指定IP和儀器的描述。過(guò)程可以視 為每次調(diào)用過(guò)程時(shí)要執(zhí)行的原子指令的拼接。針對(duì)IP/儀器的過(guò)程描述可以取決于IP/儀器的APL。如果組件的APL是“無(wú)訪(fǎng)問(wèn)”,則過(guò)程可以表示為比特流值(即,要寫(xiě)入掃描路徑中 的值以及要從掃描路徑中讀取的值)。如果組件的APL是“受限訪(fǎng)問(wèn),,或“全訪(fǎng)問(wèn)”,則對(duì)IP/儀器的掃描路徑的知曉提供 了相對(duì)于IP/儀器的過(guò)程的表示的附加自由度,使得可以構(gòu)成過(guò)程。過(guò)程的空間構(gòu)成指示 可以如何使用不同過(guò)程的輸入/輸出來(lái)構(gòu)成片上系統(tǒng)的系統(tǒng)掃描路徑的輸入/輸出。時(shí)間 構(gòu)成指示可以如何將過(guò)程順序地應(yīng)用于相同組件(例如,IP/儀器),以執(zhí)行特定操作。此 外,過(guò)程可以嵌套至和/或嵌套自更大的過(guò)程和/或多個(gè)更小過(guò)程。過(guò)程包括過(guò)程屬性(即,過(guò)程的描述)以及過(guò)程體。過(guò)程的描述可以包括以下信 息例如長(zhǎng)度、忙模式指示、進(jìn)入條件、退出條件、依賴(lài)性、內(nèi)部掃描路徑描述等,及其各種組 合。固定長(zhǎng)度過(guò)程可以定義為始終占用相同量的時(shí)間來(lái)執(zhí)行的過(guò)程??勺冮L(zhǎng)度過(guò)程可 以定義為占用可變量的時(shí)間來(lái)執(zhí)行的過(guò)程??梢允褂闷渌麜r(shí)間值(例如,最佳和最差情況 時(shí)間、平均時(shí)間等,及其各種組合)來(lái)定義可變長(zhǎng)度過(guò)程。在一個(gè)實(shí)施例中,必須為每個(gè)可變長(zhǎng)度過(guò)程提供至少一個(gè)退出條件??梢詮闹芷诮嵌葋?lái)表達(dá)過(guò)程長(zhǎng)度(或者,在不能夠用周期來(lái)表達(dá)的情況下,用諸 如秒等一些其他絕對(duì)項(xiàng)或時(shí)間的一些其他度量來(lái)表達(dá))。例如,對(duì)于采取物理度量的儀器、 異步儀器、在非同步時(shí)鐘域中進(jìn)行操作的儀器等,不能從周期角度來(lái)表達(dá)過(guò)程長(zhǎng)度。如果以 時(shí)間來(lái)表達(dá)過(guò)程長(zhǎng)度,則測(cè)試工具可以確定周期計(jì)數(shù)(例如,利用對(duì)實(shí)際測(cè)試時(shí)鐘周期的 知曉),或者估計(jì)周期計(jì)數(shù)(例如,使用參考時(shí)鐘周期)。過(guò)程應(yīng)當(dāng)聲明過(guò)程忙模式。如果在執(zhí)行過(guò)程期間,掃描鏈的值不得改變,則過(guò)程的 忙模式為“保持”,(即,每次掃描訪(fǎng)問(wèn)必須將其重置為相同值)。例如,處于“保持”模式的 儀器可以是組合(combinatorial)器件(即,每次修改都會(huì)影響結(jié)果)。如果在過(guò)程的執(zhí)行 期間,掃描鏈的值不重要,則過(guò)程的忙模式為“不理會(huì)”。例如,處于“不理會(huì)”模式的儀器可 以是僅當(dāng)被觸發(fā)時(shí)才對(duì)輸入進(jìn)行采樣的任何器件。片上系統(tǒng)的描述還包括與片上系統(tǒng)相關(guān)聯(lián)的依賴(lài)性的描述。片上系統(tǒng)的依賴(lài)性包 括組件內(nèi)依賴(lài)性(片上系統(tǒng)的一個(gè)組件的函數(shù)或過(guò)程之間),以及組件間依賴(lài)性(片上系統(tǒng) 的不同組件的函數(shù)或過(guò)程之間)??梢砸栽S多方式來(lái)指定依賴(lài)性的描述(例如,通過(guò)列出這 些依賴(lài)性、基于名稱(chēng)的鏈接等,及其各種組合)。例如,函數(shù)X可以通過(guò)〃函數(shù)X依賴(lài)于函數(shù)XI,X2,...,Xn的完成〃這樣的指示 來(lái)描述,這意味著該函數(shù)X在每個(gè)所列的子函數(shù)完成之前不能開(kāi)始其執(zhí)行。例如,過(guò)程X可 以通過(guò)"過(guò)程X依賴(lài)于過(guò)程Y"這樣的指示來(lái)描述,這意味著,出于多種原因,在執(zhí)行過(guò)程X 之前,必須完成過(guò)程Y??梢砸愿鞣N其他方式來(lái)描述片上系統(tǒng)的依賴(lài)性。應(yīng)當(dāng)聲明片上系統(tǒng)的組件內(nèi)和組件間依賴(lài)性。依賴(lài)性的聲明使得測(cè)試工具能夠執(zhí) 行測(cè)試調(diào)度。在一個(gè)實(shí)施例中,可以將依賴(lài)性聲明為該依賴(lài)性的過(guò)程的聲明部分的一部分。 在一個(gè)實(shí)施例中,可以使用顯式命名來(lái)聲明依賴(lài)性。在一個(gè)這樣的實(shí)施例中,通用參數(shù)可以 用于將外部依賴(lài)性與組件的符號(hào)名鏈接起來(lái),其中該組件與該外部依賴(lài)性相關(guān)聯(lián)。使用NSDL,可以以各種其他方式來(lái)執(zhí)行依賴(lài)性的描述和聲明。針對(duì)組件(或組件組)的一個(gè)過(guò)程(或多個(gè)過(guò)程)的構(gòu)建基于組件的APL而變化, 組件的APL影響對(duì)與組件相關(guān)聯(lián)的輸入/輸出信息的認(rèn)知。圖3示出了對(duì)“無(wú)訪(fǎng)問(wèn)”組件300的輸入-輸出認(rèn)知。如果組件的APL是“無(wú)訪(fǎng) 問(wèn)”,則對(duì)于由組件支持的每個(gè)函數(shù),函數(shù)體包括輸入流信息(要用于構(gòu)成輸入比特流)、 函數(shù)長(zhǎng)度和掃描路徑長(zhǎng)度信息、以及輸出比特流信息(例如,預(yù)期的輸出比特流、所需的輸 出比特流處理等,及其各種組合)。圖4示出了對(duì)“受限訪(fǎng)問(wèn)”或“全訪(fǎng)問(wèn)”組件400的輸入-輸出認(rèn)知。如果組件的 APL是“受限訪(fǎng)問(wèn)”或“全訪(fǎng)問(wèn)”,則組件的內(nèi)部掃描路徑是已知的(即,組件的每個(gè)寄存器、 以及寄存器的拓?fù)涫且阎?。可以將組件的內(nèi)部掃描路徑分成多個(gè)片(slice),這些片可 以分布在一個(gè)或多個(gè)分級(jí)級(jí)別上??梢砸匀魏畏绞?例如,使用相鄰級(jí)別的一個(gè)或多個(gè)寄 存器)來(lái)控制對(duì)不同分級(jí)級(jí)別的訪(fǎng)問(wèn)。參照?qǐng)D4示出和描述的組件,可以更好地理解將組 件的內(nèi)部掃描路徑分成多個(gè)分級(jí)級(jí)別。如圖4所示,將內(nèi)部掃描路徑分成五個(gè)片(表示為片1、2、3、4、5)。內(nèi)部掃描路徑 的五個(gè)片分布在兩個(gè)分級(jí)級(jí)別(表示為級(jí)別0、1)上。片1、2、3、4、5分別包括4個(gè)、4個(gè)、3 個(gè)、3個(gè)和2個(gè)寄存器。片1、2、5位于分級(jí)級(jí)別0中。片3和4位于分級(jí)級(jí)別1中。寄存器(表示為寄存器Hl)控制內(nèi)部掃描路徑分級(jí)的級(jí)別0和級(jí)別1之間的訪(fǎng)問(wèn)。Hl寄存器控制 內(nèi)部掃描路徑,使得對(duì)片3和4旁路(即,從內(nèi)部掃描路徑中排除它們),或者不對(duì)片3和4 旁路(即,在內(nèi)部掃描路徑中包括它們)。如圖4所示,內(nèi)部掃描路徑的組成如下。片1的輸入是TDI,并且片1的輸出是片 2的輸入。片2的輸入是片1的輸出,并且片2的輸出是至Hl的第一輸入(級(jí)別0輸入)。 在級(jí)別0,H1的輸入是片2的輸出,并且Hl的輸出是片5的輸入。在級(jí)別1,H1的輸出是片 3的輸入,并且Hl的輸入是片4的輸出。片3的輸入是Hl的輸出(級(jí)別1輸出),片3的 輸出是片4的輸入。片4的輸入是片3的輸出,片4的輸出是Hl的輸入(級(jí)別1輸入)。 片5的輸入是Hl的輸出(級(jí)別0輸出),以及片5的輸出是TD0。在一個(gè)實(shí)施例中,將組件的內(nèi)部掃描路徑分成多個(gè)片是函數(shù)性,S卩,內(nèi)部掃描路徑 的每個(gè)片具有在其上操作的一個(gè)或多個(gè)片函數(shù),可以使用一個(gè)或多個(gè)片過(guò)程來(lái)測(cè)試每個(gè)片 函數(shù),每個(gè)片函數(shù)是可由測(cè)試工具獨(dú)立調(diào)度的。在該實(shí)施例中,可以以類(lèi)似于“無(wú)訪(fǎng)問(wèn)”組 件的函數(shù)體的構(gòu)成方式,來(lái)構(gòu)成在內(nèi)部掃描路徑的給定片上操作的函數(shù)體(即,使用輸入 比特流信息、函數(shù)長(zhǎng)度和掃描路徑長(zhǎng)度信息、輸出比特流信息等、及其各種組合來(lái)描述函數(shù) 體)。因此,利用與內(nèi)部掃描路徑的不同片或片的組合一起操作的不同過(guò)程,可以以多 種方式來(lái)使用組件的內(nèi)部掃描路徑的劃分。例如(參照?qǐng)D4),執(zhí)行與片1相關(guān)聯(lián)的第一過(guò) 程P1,以將數(shù)據(jù)寫(xiě)入片1中,從而觸發(fā)組件中某個(gè)函數(shù)的執(zhí)行,這得到片2中的存儲(chǔ)或結(jié)果 數(shù)據(jù)以及片5中的差錯(cuò)數(shù)據(jù)。然后,可以執(zhí)行兩個(gè)附加過(guò)程P2和P5(分別操作于片2和5 上)以分別讀取片2和5的值。因此,將內(nèi)部掃描路徑分成片(包括在多個(gè)分級(jí)級(jí)別上劃 分),這提供了片上系統(tǒng)測(cè)試的很大靈活性。TS 120可以容易將算法過(guò)程轉(zhuǎn)換成串行測(cè)試 比特流(例如,輸入比特流和預(yù)期輸出比特流)。由于可以開(kāi)發(fā)用于使用組件的內(nèi)部掃描路徑的片的不同過(guò)程,所以利用內(nèi)部掃描 路徑的片的過(guò)程必須能夠引用片(包括片內(nèi)部的信號(hào))。過(guò)程可以以任何方式引用片。在 一個(gè)實(shí)施例中,例如,過(guò)程可以使用顯式命名來(lái)引用片。在一個(gè)這樣的實(shí)施例中,向每個(gè)片 (即,寄存器或寄存器組)分配唯一名稱(chēng),從而使得能夠像訪(fǎng)問(wèn)記錄一樣來(lái)訪(fǎng)問(wèn)分級(jí)實(shí)例化 的片。關(guān)于圖5示出和描述了使用顯式命名來(lái)標(biāo)識(shí)組件的片的示例。圖5示出了對(duì)組件500的內(nèi)部掃描路徑的片的顯式引用。如圖5所示,組件500 包括具有六個(gè)片的12寄存器掃描路徑,其中每個(gè)片由唯一名稱(chēng)指代。第一片是命名為BS_0 的單個(gè)寄存器。第二片是命名為BS_1的單個(gè)寄存器。第三片是命名為SCAN_4_BIT_0的四 個(gè)寄存器的串行鏈,該串行鏈包括命名為BS_0、BS_1、BS_2和BS_3的四個(gè)寄存器。第四片 是命名為An0ther_SCAN_4_BIT的四個(gè)寄存器的串行鏈,該串行鏈包括命名為BS_0、BS_1、 BS_2和BS_3的四個(gè)寄存器。第五片是命名為BS_2的單個(gè)寄存器。第六片是命名為BS_3 的單個(gè)寄存器。如這里所述,可以像訪(fǎng)問(wèn)記錄一樣來(lái)訪(fǎng)問(wèn)分級(jí)實(shí)例化的寄存器。例如,由箭頭1指 示的寄存器的唯一名稱(chēng)為BS_1(即使兩個(gè)其他寄存器也命名為BS_1,但可以看出,使用分 級(jí)命名如何確保了寄存器的唯一命名)。例如,由箭頭2指示的片(即,寄存器組)的唯一 命名是SCAN_4_BIT_0。例如,由箭頭3指示的寄存器的唯一命名為another_SCAN_4_BIT. BS_1。換言之,對(duì)于片和寄存器的任意數(shù)目的分級(jí)級(jí)別,能夠使用唯一命名來(lái)引用內(nèi)部掃描路徑的每個(gè)片、以及每個(gè)片的每個(gè)寄存器。盡管這里主要關(guān)于可以用于定義組件的過(guò)程或過(guò)程集合的特定過(guò)程屬性(例如, 過(guò)程長(zhǎng)度、函數(shù)和過(guò)程依賴(lài)性、內(nèi)部掃描路徑描述、片描述、片引用屬性等)進(jìn)行示出和描 述,但是可以指定各種其他過(guò)程屬性。用于描述過(guò)程的過(guò)程屬性可以包括用于以支持片上 系統(tǒng)測(cè)試的方式來(lái)描述過(guò)程的任何信息。除了過(guò)程屬性以外,過(guò)程還包括過(guò)程體。過(guò)程體包括過(guò)程的細(xì)節(jié)。過(guò)程體可以以 任何方式來(lái)實(shí)現(xiàn)。過(guò)程體不具有掃描路徑的概念(而是,在片上并行進(jìn)行訪(fǎng)問(wèn),以及測(cè)試工 具將這些操作合并成對(duì)系統(tǒng)掃描路徑的訪(fǎng)問(wèn))。過(guò)程體可以使用多種語(yǔ)句、斷言、嵌套過(guò)程 等,及其各種組合。在一個(gè)實(shí)施例中,其中,使用用VHDL語(yǔ)言實(shí)現(xiàn)的NSDL來(lái)描述片上系統(tǒng)(因此,使 用用VHDL語(yǔ)言實(shí)現(xiàn)的NSDL來(lái)描述與片上系統(tǒng)相關(guān)聯(lián)的每個(gè)過(guò)程),可以使用VHDL語(yǔ)法來(lái) 表達(dá)過(guò)程體。過(guò)程的過(guò)程體可以以其他方式來(lái)表達(dá),這取決于片上系統(tǒng)的描述的實(shí)現(xiàn)方式。通過(guò)NSDL容易提供組件的內(nèi)部掃描路徑的描述。在NSDL中,每個(gè)寄存器單元被認(rèn) 為是實(shí)體,可以將寄存器單元分組成包(package)(例如,使用VHDL規(guī)則,其中NSDL實(shí)現(xiàn)為 VHDL的超集)。在NSDL中,使用兩個(gè)通用參數(shù),“precedent” (在前)和“following”(在 后),來(lái)描述每個(gè)寄存器實(shí)體,這兩個(gè)參數(shù)可以用于通過(guò)顯式引用寄存器實(shí)例來(lái)表達(dá)掃描 路徑。寄存器實(shí)體的“precedent”參數(shù)指定至該寄存器實(shí)體的輸入的源。寄存器實(shí)體的 “following”參數(shù)指定來(lái)自該寄存器實(shí)體的輸出的目的地。因此,寄存器實(shí)體可以包括單個(gè) 寄存器、寄存器組(包括分級(jí)分組)等。針對(duì)與關(guān)于圖5示出和描述的內(nèi)部掃描鏈相對(duì)應(yīng)的以下樣本代碼,可以更好地理 解組件的內(nèi)部掃描路徑的描述。以下樣本代碼示出了包括串行布置的四個(gè)基本邊界掃描寄存器在內(nèi)的簡(jiǎn)單掃描 路徑,其中,第一邊界掃描寄存器接收來(lái)自TDI端口的輸入,第四邊界掃描寄存器向TDO端 口提供輸出BS_0:BS generic map (precedent = > " TDI " , following = >" BS_1");BS_1:BS generic map (precedent = > " BS_0" , following = >" BS_2");BS_2:BS generic map (precedent = > " BS_1" , following = >" BS_3");BS_3:BS generic map (precedent = > " BS_2" , following = >" TDO");可以將該4寄存器掃描鏈封裝到實(shí)體中,并分級(jí)實(shí)例化。以下樣本代碼確切地示 出了如何將該4寄存器掃描鏈封裝到實(shí)體中并分級(jí)實(shí)例化(最終用于描述SCAN_4_BIT_0 和 another_SCAN_4_BIT 寄存器實(shí)體)Entity SCAN_4_BIT isGeneric (precedent: string: = " TDI “ ;following: string: = " TDO " ) ;End entity ;Architecture A of SCAN_4_BIT isbeginBS_0:BS generic map (precedent = > precedent, following = >BS_1:BS generic map (precedent = > " BS_0 " , following = >"BS_2:BS generic map (precedent = > " BS_1" , following = >'
//
“BS_1") BS_2〃 ); BS_3〃 );
BS_3:BS generic map (precedent = >" BS_2" , following => following);end ;以下樣本代碼示出了圖5的12寄存器掃描路徑的表示(描述)(其中,如關(guān)于圖5 示出和描述的,使用六個(gè)寄存器實(shí)體來(lái)表示12寄存器掃描路徑,包括四個(gè)單獨(dú)寄存器和由 4寄存器掃描鏈組成的兩個(gè)寄存器實(shí)體)。BS_0:BS generic map (precedent = > " TDI “ , following = >" BS_1");BS_1:BS generic map(precedent = > “ BS_0 “ , following = > “ SCAN_4_ BIT_0〃 );SCAN_4_BIT_0:BS generic map(precedent = > “ BS_1 “ , following = >"another_SCAN_4_BIT");another_SCAN_4_BIT:BS generic map (precedent = > “ SCAN_4_BIT_0 “, following = >" BS_2〃 );BS_2:BS generic map(precedent = >" another_SCAN_4_BIT" , following = >"BS_3");BS_3:BS generic map (precedent = > " BS_2" , following = >" TDO");使用這種類(lèi)型的描述,測(cè)試工具可以在編譯時(shí)間(例如,使用上下文校驗(yàn))自動(dòng)計(jì) 算與掃描路徑有關(guān)的信息(例如,其長(zhǎng)度、其分級(jí)結(jié)構(gòu)等,及其各種組合)。此外,寄存器實(shí) 體的描述是高度可再用的(例如,用于其他設(shè)計(jì))。由于能夠以許多不同方式來(lái)收集、存儲(chǔ) 以及校驗(yàn)針對(duì)寄存器實(shí)體的描述信息(即,由于符號(hào)表的實(shí)現(xiàn)方式在編譯器之間可能發(fā)生 顯著變化,例如,在散列表、數(shù)據(jù)庫(kù)等方面),所以出于清楚和一般性的目的,省略其細(xì)節(jié)。此外,由于使用這種類(lèi)型的描述,容易描述片上系統(tǒng)的每個(gè)組件,因此可以通過(guò)對(duì) 單獨(dú)組件的描述進(jìn)行組合來(lái)獲得片上系統(tǒng)的總體系統(tǒng)描述(包括組件之間互連的描述,組 件間依賴(lài)性的描述等,及其各種組合)。在其他工作中,NSDL為描述(因此,測(cè)試)片上系 統(tǒng)配置提供顯著靈活性。如這里所述,NSDL除了能夠描述形成片上系統(tǒng)的掃描路徑的一部分的典型組件以 外,NSDL還能夠描述能夠?qū)崿F(xiàn)片上系統(tǒng)掃描路徑的動(dòng)態(tài)改變的器件。用NSDL術(shù)語(yǔ),這種類(lèi) 型的器件被稱(chēng)作“交叉器件”。參照?qǐng)D6示出和描述了交叉器件的通用表示。圖6示出了交叉器件的表示的高級(jí)框圖。具體地,交叉器件表示600代表能 夠動(dòng)態(tài)修改片上系統(tǒng)的掃描路徑的交叉器件。交叉器件將一個(gè)或多個(gè)輸入(稱(chēng)作支流 (affluent))路由至一個(gè)或多個(gè)輸出(稱(chēng)作分支(tributarie))。如圖6所示,交叉器件表 示600包括多個(gè)支流(表示為path_in_0至path_in_m)以及多個(gè)分支(表示為path_out_0 至 path_out_n)。為了在測(cè)試片上系統(tǒng)時(shí)利用交叉器件,必須描述交叉器件。使用BSDL/HSDL很難 (如果不是不可能的話(huà))實(shí)現(xiàn)交叉器件的動(dòng)態(tài)可變掃描路徑的描述,BSDL/HSDL專(zhuān)門(mén)被設(shè)計(jì) 為處理靜態(tài)掃描路徑。相反,NSDL能夠容易提供交叉器件的動(dòng)態(tài)可變掃描路徑的描述,NSDL 提供由測(cè)試工具容易理解的交叉器件的算法描述。使用NSDL的交叉器件的通用描述如下IP<entity name)isGeneric (
precedentstring:=following:string:=affluent: string:="tributary:string:=);EncKentity name> ;從以上提供的交叉器件的通用描述可見(jiàn),通用參數(shù)〃 affluent"(支流) 和〃 tributary"(分支)可以用于訪(fǎng)問(wèn)分級(jí)掃描路徑。首先將通用參數(shù)〃 affluent" 和〃 tributary"設(shè)置為〃 deselected"(取消選定),使得交叉器件僅僅操作為掃描路徑 內(nèi)的途經(jīng)通過(guò)的組件(即,支流和分支是不活動(dòng)的,因此不對(duì)掃描路徑進(jìn)行動(dòng)態(tài)修改)。通 過(guò)使用"affluent"和"tributary"參數(shù)來(lái)調(diào)用相關(guān)的選擇函數(shù),可以激活交叉器件以 動(dòng)態(tài)修改掃描路徑。如果存在多于一個(gè)支流和/或多于一個(gè)分支,必須唯一地標(biāo)識(shí)支流和/或分 支中的每一個(gè)。在一個(gè)實(shí)施例中,例如,可以使用簡(jiǎn)單的排序編號(hào)(例如,對(duì)于支流為 affluent_0、affluent_l 等;對(duì)于分支為 tributary_0、tributary_l 等)。使用基于 NSDL 的描述,測(cè)試工具能夠僅通過(guò)引用通用參數(shù)來(lái)理解通過(guò)交叉器件的連接??梢砸匀魏畏绞絹?lái)產(chǎn)生交叉器件的描述。在一個(gè)實(shí)施例中,使用經(jīng)由架構(gòu)而互連 的輸入連接集合和輸出連接集合的描述,來(lái)產(chǎn)生交叉器件的描述,其中該架構(gòu)適于動(dòng)態(tài)控 制對(duì)片上系統(tǒng)的一個(gè)組件(或多個(gè)組件)的訪(fǎng)問(wèn)??梢源鎯?chǔ)交叉器件的描述以用于測(cè)試。 處理器可以接收或獲取交叉器件的描述(例如,從存儲(chǔ)器、另一系統(tǒng),或從這種描述的任何 其他源)以用于執(zhí)行測(cè)試。如這里所述,輸入連接集合包括掃描路徑輸入連接(沿著自TDI的方向,連接至片 上系統(tǒng)的掃描路徑),以及至組件的至少一個(gè)連接(表示為組件訪(fǎng)問(wèn)輸入連接),輸出連接 集合包括掃描路徑輸出連接(沿著至TDO的方向,連接至片上系統(tǒng)的掃描路徑),以及至組 件的至少一個(gè)連接(表示為組件訪(fǎng)問(wèn)輸出連接)。在一個(gè)實(shí)施例中,使用〃 precedent"參數(shù)(針對(duì)掃描路徑輸入連接)以及一 個(gè)或多個(gè)"affluent"參數(shù)(針對(duì)一個(gè)或多個(gè)組件訪(fǎng)問(wèn)輸入連接),來(lái)指定輸入連接集 合。在一個(gè)實(shí)施例中,使用"following"參數(shù)(針對(duì)掃描路徑輸出連接)和一個(gè)或多 個(gè)"affluent"參數(shù)(這對(duì)一個(gè)或多個(gè)組件訪(fǎng)問(wèn)輸出連接),來(lái)指定輸出連接集合。交叉器件可以以任何方式動(dòng)態(tài)修改系統(tǒng)掃描路徑。架構(gòu)可以是用于經(jīng)由組件將輸 入連接集合中的輸入連接動(dòng)態(tài)連接至輸出連接集合中的輸出連接的任何架構(gòu),其中選擇交 叉器件來(lái)將該組件添加至系統(tǒng)掃描路徑。例如,該架構(gòu)可以是開(kāi)關(guān)架構(gòu)、總線(xiàn)架構(gòu)、網(wǎng)絡(luò)架 構(gòu)等。在一個(gè)實(shí)施例中,交叉器件的描述是算法描述,包括適于測(cè)試工具理解的至少一 個(gè)構(gòu)成規(guī)則??梢詫⒔徊嫫骷拿枋鰟?dòng)態(tài)修改為,將組件動(dòng)態(tài)添加至掃描路徑,并從掃描路 徑中動(dòng)態(tài)移除組件(例如,通過(guò)修改參數(shù)〃 affluent〃和〃 tributary")。使用NSDL來(lái)描述片上系統(tǒng)測(cè)試中的測(cè)試資源,這使得能夠以能夠在片上系統(tǒng) 測(cè)試中使用交叉器件的方式,來(lái)描述許多不同交叉器件。可以將由NSDL描述的不同交 叉器件分組到三個(gè)寬泛類(lèi)別中。具體地,交叉器件可以表示“有線(xiàn)”(wired)連接、“事
“TDI"; “TD0";
deselected"; “deselected";(transactional)_ ·#,, (wired-transactional) 3 _。“有線(xiàn)”交叉器件是基本上有線(xiàn)連接到片上系統(tǒng)的掃描路徑的交叉器件(并可以根 據(jù)需要對(duì)其進(jìn)行選擇或取消選擇)?!坝芯€(xiàn)”交叉器件以類(lèi)似于開(kāi)關(guān)的方式進(jìn)行操作(即, 根據(jù)需要能夠在支流和分支之間對(duì)連接進(jìn)行動(dòng)態(tài)編程)。由于“有線(xiàn)”交叉器件的掃描路徑 是有線(xiàn)地連接到片上系統(tǒng)的系統(tǒng)掃描路徑中的,所以需要顯式地取消選擇“有線(xiàn)”交叉器件 的掃描路徑。在圖8中示出并描述了“有線(xiàn)”交叉器件的第一示例(具體地,作為Ρ1687硬 件建議的一部分的選擇儀器比特(SIB)組件)。在圖9中示出和描述了“有線(xiàn)”交叉器件的 第二示例。“事務(wù)”交叉器件是支持臨時(shí)連接(即,表示特定事務(wù)的連接)的交叉器件?!笆?務(wù)”交叉器件可以作為任何架構(gòu)(例如,作為總線(xiàn)、片上網(wǎng)絡(luò)等)進(jìn)行操作。事務(wù)可以是由 “事務(wù)”交叉器件的架構(gòu)支持的任何事務(wù)(例如,總線(xiàn)架構(gòu)中的總線(xiàn)訪(fǎng)問(wèn)、網(wǎng)絡(luò)架構(gòu)中的路由 等)。由于“事務(wù)”交叉器件的掃描路徑僅在事務(wù)時(shí)間是活動(dòng)的,因此不需要顯式地取消選 定“事務(wù)”交叉器件的掃描路徑。在圖10中示出和描述了 “事務(wù)”交叉器件的示例。在“有線(xiàn)”交叉器件中,至少一個(gè)組件訪(fǎng)問(wèn)輸入連接和至少一個(gè)組件訪(fǎng)問(wèn)輸入連接 是有線(xiàn)連接。因此,組件訪(fǎng)問(wèn)輸入連接和組件訪(fǎng)問(wèn)輸出連接是不同的物理連接。在“事務(wù)” 交叉器件中,至少一個(gè)組件訪(fǎng)問(wèn)輸入連接和至少一個(gè)組件訪(fǎng)問(wèn)輸入連接是事務(wù)連接,使得 一個(gè)物理連接可以用于支持多個(gè)事務(wù)(即,組件訪(fǎng)問(wèn)輸入連接和組件訪(fǎng)問(wèn)輸出連接可以共 享相同的物理連接,但是可以被認(rèn)為是不同的事務(wù)連接)。使用BSDL/HSDL,雖然可以描述特定的“有線(xiàn)”交叉器件(即,SIB組件),但是該 描述非常困難。此外,不可能使用BSDL/HSDL描述更復(fù)雜的“有線(xiàn)”交叉器件。此外,使用 BSDL/HSDL描述“事務(wù)”和“有線(xiàn)-事務(wù)”交叉器件更不可能。因此,出于上述原因,Ρ1687 中標(biāo)準(zhǔn)化的交叉器件僅僅是SIB組件。相反,使用NSDL,明顯是支持對(duì)任何“有線(xiàn)”交叉器件、“事務(wù)”交叉器件以及“有 線(xiàn)-事務(wù)”交叉器件的描述的,并且測(cè)試工具容易對(duì)該描述進(jìn)行解釋。的確,事實(shí)上,可以使 用NSDL描述能夠動(dòng)態(tài)修改片上系統(tǒng)的掃描路徑的任何復(fù)雜的交叉設(shè)備。為了示例NSDL的 能力,這里關(guān)于圖7-圖10提供了交叉器件的若干示例(及其使用NSDL表達(dá)的相應(yīng)描述)。圖7示出了使用通用交叉器件來(lái)動(dòng)態(tài)修改片上系統(tǒng)的掃描路徑的高級(jí)框圖。如圖 7所示,片上系統(tǒng)700包括掃描路徑,該掃描路徑包括通用交叉器件710。掃描路徑包括兩 個(gè)永久掃描路徑部分(即,始終包括在掃描路徑中的部分)以及可選掃描路徑部分(即,可 以通過(guò)交叉器件710動(dòng)態(tài)地包括在掃描路徑中并可以從該掃描路徑中移除的部分)。如圖7所示,在片上系統(tǒng)700的掃描路徑中,測(cè)試訪(fǎng)問(wèn)輸入(TDI)耦合至第一永久 掃描路徑部分(包括一系列邊界掃描單元),第一永久掃描路徑部分耦合至交叉器件710的 第一輸入(即,precedent),交叉器件710的第一輸出(即,following)耦合至第二永久掃 描路徑部分,第二永久掃描路徑部分耦合至測(cè)試訪(fǎng)問(wèn)輸出(TDO)。交叉器件710允許將可選掃描路徑部分動(dòng)態(tài)地(有選擇地)并入片上系統(tǒng)70的 掃描路徑中。具體地,交叉器件710包括第二輸出(即,分支)和第二輸入(即,支流),可 以選擇該第二輸出將第一永久掃描路徑部分的輸出耦合至的可選掃描路徑部分的輸入,可 以選擇該第二輸入將可選掃描路徑部分的輸出耦合至第二永久掃描路徑部分的輸入。交叉器件710使得能夠通過(guò)選擇/取消選定輸入/輸出的特定組合,來(lái)動(dòng)態(tài)修改掃描路徑。當(dāng)將交叉器件710的第二輸出和第二輸入取消選定時(shí),掃描路徑是TDI、 SCAN_4_BIT_0、BS_0、BS_1、交叉器件710、BS_2、TD0。當(dāng)將交叉器件710的第二輸出和第二 輸入選定時(shí)(即,第一輸入連接至第二輸出,第二輸入連接至第一輸出),掃描路徑是TDI、 SCAN_4_BIT_0、BS_0、BS_1、交叉器件 710、another_SCAN_4_BIT、BS_3、交叉器件 710、BS_2、 TDO。圖8示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖。具體地,圖8示出 了 SIB器件800。SIB器件800實(shí)現(xiàn)了對(duì)另一組件的選擇(即,使得將該組件添加至掃描路 徑)。SIB器件受選擇比特的控制。當(dāng)選擇比特的值為“0”時(shí),該單元不是活動(dòng)的(其僅 是掃描路徑中的比特)。當(dāng)將選擇比特的值設(shè)置為“ 1”時(shí),掃描路徑通過(guò)端口 WSIo (即,支 流)路由出,并通過(guò)端口 WSOi(即,分支)路由入,從而將與這些端口連接的任何器件添加 至掃描路徑。SIB器件800的基于NSDL的描述如下(出于清楚的目的,包括行號(hào))1 IP SIB generic(precedentstring: = “ TDI“;2following: string: =〃 TDO〃 ;
0162]5 Begin
0163]6 UpSIBREG generic map(precedent = > " TDI〃,
0166]9
0167]10 Procedure select
0168]11 Length 1 ;
0169]12 Selection wired ;
0170]13 {
0171]14 UpSib < = ' 1';
0172]15 tributary: =〃 TDI 〃 ;
0173]16 affluent: =〃 TDO〃 ;
0174]17 }
0175]18
0176]19 Procedure deselect
0177]20 Length 1 ;
0178]21 Selection wired ;
0179]22 {
0180]23 UpSib < = ' 0';
0181]24 tributary: =〃 deselected";
0182]25 affluent: =〃 deselected";
0183]26 }
0160]3
0161]4
tributary:string: = " deselected affluent:string: = " deselected"
0164]7
0165]8
following = >" TDO elements = > 1);
2728 End SIB ;在SIB器件800的描述中,6-9行聲明內(nèi)部寄存器(即,測(cè)試工具需要以便處理分 級(jí)的比特,在SIB器件800的情況下,僅為一個(gè)比特);以及10-17行示出了選擇過(guò)程,19-26 行示出了取消選定的過(guò)程(使用其相應(yīng)的名稱(chēng),測(cè)試工具能夠容易識(shí)別)。在描述體中,容易識(shí)別NSDL的兩個(gè)作用(1)掃描路徑的修改,從而由片處理來(lái)表 達(dá)比特流(見(jiàn)14和23行);以及⑵通過(guò)賦予串的值,來(lái)進(jìn)行拓?fù)涞男薷?例如,以類(lèi)似 于拓?fù)溆成渲?precedent〃和〃 following"的賦值的方式)。圖9示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖。具體地,圖9示出了 分級(jí)開(kāi)關(guān)器件900。分級(jí)開(kāi)關(guān)器件900包括三個(gè)輸入支流和兩個(gè)輸出分支。盡管所描述的
具有三個(gè)支流和兩個(gè)分支,但是可以支持任何數(shù)目的支流和分支。
分級(jí)開(kāi)關(guān)器件900的基于NSDL的描述如下(為了清楚起見(jiàn)包括行號(hào))
1:P Hierarchy_switch generic (precedent:string:=丨 TDI “;
2following:string: = " TDO“;
3tributary_0:string: = " deselected"
4tributary_l:string: = " deselected"
5affluent_0:string: = " deselected"
6affluent_l:string: = " deselected"
7affluent_2:string: = " deselected"
8)
9
10Begin
11
12Affl—map: Vector—REG generic map (precedent = >〃TDI “,
13following = >" Trib—map"
14elem—size = > 2 ;
15elements = > 3);
16Trib—map: Vector—REG generic map (precedent = >〃Affl—map",
17following=〉" TD0"
18elem—size = > 2 ;
19elements = > 2);
20
21subtype name is string(1 to 11);
22type name_vector is array (natural range < > )ofname ;
23constant affluent—name:name_vector(0 to 2):=
24("affluent—0〃 , “ affluent—1",〃 affluent
25constant tributary—name:name_vector(0 to 1):=
26(〃 tributary_0,,,〃 tributary—1〃 );
27
28
29Procedure select (affluent_nmbin std_logic_vector(1 downto 0);
30tributary_nmb:in std_logic)
31Length 1 ;
32Selection wired ;
33{
34Trib_map < = affluent—nmb ;
35Affl—map< = " 0" &tributary_nmb ;
36
37case (tributary—nmb)
38when' 0; => tributary_0):=
39affluent_name(conv_integer(affluent_nmb));
40when' 1! => tributary_l:=
41affluent—name(conv_integer(affluent_nmb));
42end case ;
43
44case (affluent—nmb)
45when" 00〃 = > affluent_0:=
46tributary—name(conv_integer(tributary—nmb));
47when" 01〃 = > affluent_l:=
48tributary—name(conv_integer(tributary—nmb));
49when" 10〃 = > affluent_2:=
50tributary—name(conv_integer(tributary—nmb));
51when others = > assert false report" ERROR ! “ severity failure
52end case ;
53ι
54
55Procedure deselect_affluent
56(affluent—nmb:in std_logic_vector(1 downto 0))
57Length 1 ;
58Selection wired ;
59{
60Aff l_map < = " 11〃 ;
61case(affluent_nmb)
62when" 00〃 => affluent_0: = " deselected";
63when" 01〃 => affluent_l: = " deselected";
64when" 10" => affluent_2: =" deselected";
65when others = > assert false report" ERROR ! “ severity warning
66end case ;
6768 }6970 Procedure deselect_tributary(tributary_nmbin std_logic)71 Length 1 ;72 Selection wired ;73 {74 Trib_map < = " 11〃 ;75 case(tributary_nmb)76 when' 0' => tributary_0: =" deselected";77 when' 1' = > tributary」="deselected";78 end case ;79 }80 End hierarchy_switch ;在分級(jí)開(kāi)關(guān)器件900的描述中3_7行聲明支流和分支(其中每一個(gè)分別給定唯 一名稱(chēng));12-19行聲明內(nèi)部掃描路徑(即,類(lèi)似于開(kāi)關(guān)矩陣);21-26行通過(guò)定義一些定制 類(lèi)型來(lái)充分利用VHDL能力(從而,為分級(jí)描述符準(zhǔn)備了實(shí)質(zhì)上等同于開(kāi)關(guān)矩陣的內(nèi)容)。在分級(jí)開(kāi)關(guān)器件900的描述中“SeleCt”(選擇)過(guò)程(29-53行)負(fù)責(zé)比特流修 改,此外,利用VHDL算法能力(以及先前定義的定制類(lèi)型),以描述動(dòng)態(tài)掃描路徑修改。函 數(shù)的參數(shù)是指要連接路徑的有序編號(hào)。從分級(jí)開(kāi)關(guān)器件900的描述所看到的,使通過(guò)分級(jí)開(kāi)關(guān)器件90的連接為不活動(dòng), 這不需要對(duì)該連接的兩端進(jìn)行取消選定;而是,僅對(duì)連接的一端取消選定就切斷了該連接。 因此,取消選定可以由兩個(gè)過(guò)程來(lái)處理(1)〃 deselect_affluent"實(shí)現(xiàn)支流的取消選定 (使用有序編號(hào)作為參數(shù)),以及(2)" deselect_tributary"實(shí)現(xiàn)分支的取消選定(使用 有序編號(hào)作為參數(shù))。圖10示出了可以使用NSDL描述的一個(gè)交叉器件的高級(jí)框圖。具體地,圖10示出 了總線(xiàn)架構(gòu)器件1000??偩€(xiàn)架構(gòu)器件1000包括經(jīng)由組件總線(xiàn)1012互連的主網(wǎng)關(guān)組件1011 以及5個(gè)從組件1013A-1013E(共同示為從組件1013)。在總線(xiàn)架構(gòu)器件1000中,向每個(gè)從組件1012分配由網(wǎng)關(guān)組件1011使用的地址, 以訪(fǎng)問(wèn)從組件1012??偩€(xiàn)架構(gòu)器件1000必須支持特定的協(xié)議,以使得網(wǎng)關(guān)組件1011能夠 訪(fǎng)問(wèn)從組件1012 ;然而,總線(xiàn)架構(gòu)器件1000的基于NSDL的描述不需要關(guān)于該協(xié)議的任何
fn息ο總線(xiàn)架構(gòu)器件1000的基于NSDL的描述如下(為了清楚起見(jiàn)包括行號(hào))網(wǎng)關(guān)包描述1 Package Gff_package is23 Constant N_SLAVES: integer = 5 ;4 Constant ADDRESS_DEPTH:integer: = 3 ;5 subtype slave_name_type is string(1 to 1);
6 subtype slave—address—type is std_logic_vector
7(ADDRESS一DEPTH-I downto 0);
8
9 Type slave_mapping_type is record
10slave_name:slave_name_type ;
11slave_address:slave_address_typr ;
12end record ;
13
14Type network_mapping_type is array(1 to N_SLAVES)of
15slave_mapping_type ;
16
17Constant BUS_0P—FIELDS:integer: = 2 ;
18
19Constant BUS_READ:std_logic_vector(BUS_0P_FIELDS_1
downto 0) : = 〃 01〃 ;
20Constant BUS_WRITE:std_logic_vector(BUS—0P_FIELDS_1
downto 0) : = 〃 10〃 ;
21Constant BUS_IDLE:std_logic_vector(BUS_0P_FIELDS_1
downto 0) : = 〃 00 “;
22
23End Gff_package ;
網(wǎng)關(guān)描述
1 Use Gff_package. all ;
2
3[P Gff generic(precedent:string: =" TDI“;
4following:string: = " TDO“;
5tributary:string: = " deselected";
6affluent:string: = " deselected";
7network—mapping:network_mapping一type);
8
9
10Begin
11
12Address_map: REG generic map (precedent => " TDI ",
13following = >" TDO"
14elements = > ADDRESS_DEPTH);
15Bus_operation:REG generic map(
16precedent = >" Address_map “;
17following = >" TDO〃 ;
18elements = > BUS_0P_FIELDS);1920 Function get_slave_address(name:in slave_name_type)21return slave_address_type is22 Begin23 for kin N_SLAVES loop24 If network_mapping(k). slave_name = name then25 return network—mapping(k) · slave—address ;26 End loop ;27 assert false report" ERROR, slave" &name&" does not exist"28severity failure ;29 end get_slave_address ;3031 Procedure select—tributary(tributary—name:in slave_name_type)32 Length 10 ;33 Selection transaction ;34 {35 address_map <= get_slave_address (tributary_name);36 bus_operation <= BUS_WRITE ;37 tributary: = tributary—name ;38 }3940 Procedure select—affluent(affluent—name:in slave_name_type)41 Length 10 ;42 Selection transaction ;43 {44 address_map <= get_slave_address (aff luent_name);45 bus_operation <= BUS_READ ;46 affluent: = affluent—name ;47 }4849 End Gff ;為了更好的可讀性,已經(jīng)將總線(xiàn)架構(gòu)器件1000的基于NSDL的描述拆分成兩個(gè)文 件。具體地,將總線(xiàn)架構(gòu)器件1000的基于NSDL的描述拆分成以下部分(1)包括針對(duì)總線(xiàn) 架構(gòu)器件1000的所有類(lèi)型的聲明的包;以及(2)總線(xiàn)架構(gòu)器件1000的描述??偩€(xiàn)架構(gòu)器件1000的基于NSDL的描述不需與總線(xiàn)架構(gòu)器件1000的總線(xiàn)協(xié)議的 實(shí)際實(shí)現(xiàn)方式有關(guān)的信息;而基于NSDL的描述僅需要與在總線(xiàn)架構(gòu)器件1000內(nèi)發(fā)起事 務(wù)所需的命令有關(guān)的信息。事務(wù)由包括在基于NSDL的描述中的"select_tributary〃 和"select_affluent"函數(shù)定義。
“ select.tributary"函數(shù)(31-38行)將適宜地址寫(xiě)入適宜寄存器(使用定制 類(lèi)型和函數(shù)),以命令到總線(xiàn)的“寫(xiě)入”操作?!皊electjffluent"函數(shù)(40-47行)讀取 從適宜寄存器讀取適宜地址(使用定制類(lèi)型和函數(shù)),以命令自總線(xiàn)的“讀取”操作。由于總線(xiàn)架構(gòu)器件1000是“事務(wù)”交叉器件,總線(xiàn)架構(gòu)器件1000的基于NSDL的 描述不需要“選擇”或“取消選擇”過(guò)程;而是,將“選擇”和“取消選擇”過(guò)程標(biāo)記為“事務(wù)”, 使得測(cè)試工具知道該連接只是活動(dòng)一次,然后就將支流和分支設(shè)置回至“取消選定”。如這里所述,諸如總線(xiàn)架構(gòu)器件1000 (以及其他交叉器件)等交叉器件完全超出 P1687標(biāo)準(zhǔn)的當(dāng)前能力范圍。只有使用NSDL,才可能對(duì)諸如總線(xiàn)體架構(gòu)器件1000(以及其 他交叉器件)等交叉器件進(jìn)行描述。如這里所述,可以使用NSDL來(lái)描述片上系統(tǒng),此外,用于測(cè)試片上系統(tǒng)的測(cè)試工 具可以利用片上系統(tǒng)的系統(tǒng)級(jí)描述。關(guān)于圖11示出和描述了適于測(cè)試使用NSDL描述的片 上系統(tǒng)的示例測(cè)試工具。此外,參照?qǐng)D12-圖20可以更好地理解使用NSDL描述的片上系 統(tǒng)的測(cè)試。圖11示出了圖1的測(cè)試環(huán)境的測(cè)試系統(tǒng)的高級(jí)框圖。具體地,TS120包括處理 器1110、存儲(chǔ)器1120、輸入輸出(I/O)接口 1130、以及支持電路1140。處理器1110耦合至 存儲(chǔ)器1120、I/O接口 1130以及支持電路1140中的每一個(gè)。處理器1110與存儲(chǔ)器1120、 I/O接口 1130以及支持電路1140協(xié)作,來(lái)提供這里示出和描述的各種測(cè)試函數(shù)。如圖11所示,存儲(chǔ)器1120存儲(chǔ)適于在執(zhí)行系統(tǒng)測(cè)試時(shí)使用的資源。具體地,存儲(chǔ) 器1120存儲(chǔ)測(cè)試工具1121、測(cè)試資源描述1122、以及適于在執(zhí)行系統(tǒng)測(cè)試時(shí)使用的測(cè)試數(shù) 據(jù)1123。存儲(chǔ)器可以存儲(chǔ)用于執(zhí)行系統(tǒng)測(cè)試的任何其他程序、描述、數(shù)據(jù)等(表示為其他 1124)。測(cè)試工具1121控制系統(tǒng)測(cè)試。測(cè)試工具1121可以包括一個(gè)或多個(gè)測(cè)試過(guò)程。測(cè) 試過(guò)程可以由一個(gè)或多個(gè)測(cè)試編譯器產(chǎn)生??梢詧?zhí)行測(cè)試過(guò)程以測(cè)試一個(gè)或多個(gè)系統(tǒng)。測(cè) 試工具1121包括可以用于控制系統(tǒng)測(cè)試的任何其他過(guò)程、程序等。測(cè)試資源描述1122可以包括適于在系統(tǒng)測(cè)試中使用的任何描述,例如組件描述、 系統(tǒng)描述等,及其各種組合。測(cè)試資源描述1122可以包括系統(tǒng)拓?fù)涞拿枋?。測(cè)試資源描述 1122可以包括被處理以用于執(zhí)行片上系統(tǒng)測(cè)試的任何其他描述。測(cè)試資源描述1122可以包括一個(gè)或多個(gè)庫(kù),使得可以為不同類(lèi)型的測(cè)試資源維 護(hù)描述模板(因此,可以根據(jù)需要進(jìn)行訪(fǎng)問(wèn)和修改)。模板可以是組件級(jí)模板(例如,針對(duì) 特定IP的模板、針對(duì)特定儀器的模板等),系統(tǒng)拓?fù)淠0宓?,及其各種組合。測(cè)試數(shù)據(jù)1123包括適于在執(zhí)行系統(tǒng)測(cè)試時(shí)使用的任何數(shù)據(jù)。測(cè)試數(shù)據(jù)1123可以 包括輸入比特流數(shù)據(jù)、輸出比特流數(shù)據(jù)(例如,由測(cè)試系統(tǒng)的確定預(yù)期輸出比特流,以及從 片上系統(tǒng)捕獲的實(shí)際輸出比特流)等,及其各種組合。測(cè)試數(shù)據(jù)1123包括可以應(yīng)用于正被 測(cè)試的系統(tǒng)和/或可以從正被測(cè)試的系統(tǒng)中恢復(fù)的任何其他數(shù)據(jù)。I/O 接口 1130 提供從 TS 120 至 S-o-C 110 的接口。I/O 接口 1130 是基于 JTAG 的接口。I/O接口 1130支持TDI接口,通過(guò)該TDI接口,TS 120可以響應(yīng)于處理器1110執(zhí) 行的測(cè)試過(guò)程,來(lái)將輸入比特流應(yīng)用于S-o-CllO。I/O接口 1130支持TDO接口,通過(guò)該TDO 接口,TS 120可以響應(yīng)于處理器1110執(zhí)行的測(cè)試過(guò)程,來(lái)從S-o-C 110中恢復(fù)實(shí)際輸出比特流。
盡管這里主要關(guān)于一個(gè)TDI和一個(gè)TDO接口進(jìn)行示出和描述,但是I/O接口 1130 可以支持用于測(cè)試不同片上系統(tǒng)配置所需或期望的任何數(shù)目和類(lèi)型的測(cè)試接口。例如,對(duì) 于基于JTAG的測(cè)試,I/O接口 1130還可以支持針對(duì)TCK信號(hào)、TMS信號(hào)、以及可選地TRST 信號(hào)的接口。支持電路1140包括可以在執(zhí)行系統(tǒng)測(cè)試時(shí)使用的任何附加電路。例如,支持電路 1140可以包括附加處理器、附加存儲(chǔ)器、附加接口、測(cè)試比特流產(chǎn)生電路、測(cè)試比特流處理 電路等,及其各種組合。支持電路1140包括測(cè)試系統(tǒng)120可能需要的任何附加電路。處理器1140與存儲(chǔ)器1120、1/0接口 1130、以及支持電路1140協(xié)作,以提供這里 描述的各種片上系統(tǒng)測(cè)試函數(shù)。處理器1140產(chǎn)生描述(例如,函數(shù)級(jí)描述、組件描述等)。處理器1140處理來(lái)自 測(cè)試資源描述1122的描述,以產(chǎn)生描述(例如,使用組件描述來(lái)分析組件互連、產(chǎn)生系統(tǒng)描 述等)。處理器1140存儲(chǔ)該描述,作為測(cè)試資源描述1122的一部分。處理器1140產(chǎn)生用于測(cè)試片上系統(tǒng)的測(cè)試過(guò)程,并存儲(chǔ)該測(cè)試過(guò)程作為測(cè)試工 具1121的一部分。處理器1140使用來(lái)自測(cè)試工具1121的測(cè)試過(guò)程產(chǎn)生測(cè)試數(shù)據(jù),并存儲(chǔ) 該測(cè)試數(shù)據(jù)作為測(cè)試數(shù)據(jù)1123的一部分。處理器可以與存儲(chǔ)器1120、I/O接口 1130、以及支持電路1140協(xié)作,以提供這里 描述的任何其他片上系統(tǒng)測(cè)試函數(shù)。參照?qǐng)D12-14可以更好地理解使用片上系統(tǒng)的基于NSDL的描述的片上系統(tǒng)測(cè)試, 圖12-14提供了用于使用片上系統(tǒng)的基于NSDL的描述來(lái)測(cè)試片上系統(tǒng)的方法。也可以參 照?qǐng)D15和16(提供示出了片上系統(tǒng)的一個(gè)組件的測(cè)試的示例)、圖17 (提供用于測(cè)試片上 系統(tǒng)的組件的方法)、以及圖18-圖20 (提供示出了片上系統(tǒng)測(cè)試的示例)理解使用片上系 統(tǒng)的基于NSDL的描述的片上系統(tǒng)測(cè)試。圖12示出了由圖1的測(cè)試系統(tǒng)執(zhí)行的、用于通過(guò)JTAG連接測(cè)試系統(tǒng)的示例方法。 盡管示出和描述了以串行方式執(zhí)行,但是可以同時(shí)地或者以與關(guān)于圖12示出和描述的順 序不同的順序來(lái)執(zhí)行圖12的方法1200的步驟的至少一部分。方法1200開(kāi)始于步驟1202, 并前進(jìn)至步驟1204。在步驟1204,為片上系統(tǒng)確定測(cè)試比特流。測(cè)試比特流包括輸入比特流和預(yù)期輸 出比特流??梢园凑者@里描述的任何方式確定測(cè)試比特流。在一個(gè)實(shí)施例中,使用關(guān)于圖 13示出和描述的方法確定測(cè)試比特流。在步驟1206,將輸入比特流應(yīng)用于片上系統(tǒng)??梢越?jīng)由片上系統(tǒng)的TDI接口將輸 入比特流應(yīng)用于片上系統(tǒng)。在步驟1208,從片上系統(tǒng)捕獲實(shí)際輸出比特流??梢越?jīng)由片上 系統(tǒng)的TDO接口從片上系統(tǒng)捕獲實(shí)際輸出比特流。在步驟1210,使用實(shí)際輸出比特流和預(yù)期輸出比特流,來(lái)確定測(cè)試結(jié)果。通過(guò)將實(shí) 際輸出比特流和預(yù)期輸出比特流比較,來(lái)確定測(cè)試結(jié)果(例如,確定在測(cè)試期間是否存在 任何錯(cuò)誤)。在步驟1212,存儲(chǔ)測(cè)試結(jié)果。在步驟1214,方法1200結(jié)束。圖13示出了由圖1的測(cè)試系統(tǒng)執(zhí)行、用于通過(guò)JTAG連接測(cè)試系統(tǒng)的示例方法。具 體地,圖13的方法1300包括用于確定在測(cè)試片上系統(tǒng)時(shí)使用的測(cè)試比特流的方法。盡管 示出和描述了以串行方式執(zhí)行,但是可以同時(shí)地或者以與關(guān)于圖13示出和描述的順序不同的順序來(lái)執(zhí)行圖13的方法1300的步驟的至少一部分。方法1300開(kāi)始于步驟1302,并前 進(jìn)至步驟1304。在步驟1304,確定片上系統(tǒng)的描述(這里表示為系統(tǒng)描述)。可以以這里描述的 任何方式來(lái)確定系統(tǒng)描述。系統(tǒng)描述是片上系統(tǒng)的基于NSDL的描述。在一個(gè)實(shí)施例中,使 用關(guān)于圖14示出和描述的方法來(lái)確定系統(tǒng)描述。在步驟1306,根據(jù)片上系統(tǒng)的系統(tǒng)描述,來(lái)確定用于測(cè)試片上系統(tǒng)的測(cè)試比特流。 測(cè)試比特流包括要應(yīng)用于片上系統(tǒng)的輸入比特流,以及可以與從片上系統(tǒng)捕獲的實(shí)際輸 出比特流進(jìn)行比較的預(yù)期輸出比特流。在步驟1308,方法1300結(jié)束。圖14示出了由圖1的測(cè)試系統(tǒng)執(zhí)行、用于通過(guò)JTAG連接測(cè)試系統(tǒng)的示例方法。具 體地,圖14的方法1304包括用于確定片上系統(tǒng)的系統(tǒng)描述的方法。盡管示出和描述了以 串行方式執(zhí)行,但是可以同時(shí)地或者以與關(guān)于圖14示出和描述的順序不同的順序來(lái)執(zhí)行 圖14的方法1304的步驟的至少一部分。方法1304開(kāi)始于步驟1402,并前進(jìn)至步驟1404。在步驟1404,標(biāo)識(shí)片上系統(tǒng)的組件。可以以任何方式來(lái)標(biāo)識(shí)片上系統(tǒng)的組件。在 一個(gè)實(shí)施例中,可以標(biāo)識(shí)片上系統(tǒng)的組件作為片上系統(tǒng)提供的測(cè)試資源。在一個(gè)實(shí)施例中, 可以通過(guò)分析片上系統(tǒng)來(lái)標(biāo)識(shí)片上系統(tǒng)的組件??梢砸匀魏纹渌绞絹?lái)標(biāo)識(shí)片上系統(tǒng)的組 件。在步驟1406,為片上系統(tǒng)的每個(gè)組件確定組件描述??梢砸匀魏畏绞絹?lái)確定組件 描述。在一個(gè)實(shí)施例中,其中,組件描述是預(yù)定義的,可以通過(guò)簡(jiǎn)單讀取預(yù)定義的描述來(lái) 確定組件描述。在一個(gè)實(shí)施例中,其中組件描述不是預(yù)定義的,可以通過(guò)分析每個(gè)組件來(lái)在 運(yùn)行中定義組件描述。組件的描述指定組件的內(nèi)部掃描路徑。在一個(gè)實(shí)施例中,組件的描述從寄存器值 方面來(lái)表示組件。在一個(gè)這樣的實(shí)施例中,其中,組件支持多個(gè)函數(shù),組件的每個(gè)函數(shù)可從 寄存器值方面來(lái)表示。關(guān)于圖15可以更好地理解從寄存器值方面的組件描述。使用NSDL 指定組件描述。在步驟1408,確定片上系統(tǒng)的拓?fù)?。片上系統(tǒng)的拓?fù)涿枋隽似舷到y(tǒng)的組件之間 的互連。通過(guò)分析片上系統(tǒng)的組件之間的互連,來(lái)確定片上系統(tǒng)的拓?fù)?。在步驟1410,確定片上系統(tǒng)的系統(tǒng)描述。使用組件描述和系統(tǒng)拓?fù)鋪?lái)確定系統(tǒng)描 述。片上系統(tǒng)的系統(tǒng)描述表示片上系統(tǒng)的掃描路徑,包括片上系統(tǒng)的各個(gè)組件中每一個(gè)的 內(nèi)部掃描路徑以及片上系統(tǒng)的組件之間的互連。系統(tǒng)描述可以包括用于描述片上系統(tǒng)的任 何其他信息。在步驟1412,存儲(chǔ)片上系統(tǒng)的系統(tǒng)描述。在步驟1414,方法1304結(jié)束。圖15示出了使用圖2的片上系統(tǒng)的組件之一的描述來(lái)確定用于測(cè)試該組件的測(cè) 試過(guò)程的寄存器值。具體地,將S-O-C 110(為了清楚起見(jiàn)省略)的組件210A的描述轉(zhuǎn)換 成針對(duì)S-O-C 110的組件210a的寄存器值的集合(表示為寄存器值1510)。組件210A的 寄存器值1510包括針對(duì)由組件210A支持的三個(gè)函數(shù)中每一個(gè)的寄存器值??梢詫?duì)針對(duì)由 組件210A提供的三個(gè)函數(shù)中每一個(gè)的寄存器值進(jìn)行處理,以確定用于測(cè)試組件210A的測(cè)試 比特流的值。
如圖15所示,從組成組件210A的組件寄存器A。、、、A2的寄存器值方面,來(lái)描述組 件210A的函數(shù)。第一函數(shù)定義為“000”,等待4個(gè)周期,“001”。第二函數(shù)定義為:“111”,等 待1個(gè)周期,“010”,等待5個(gè)周期,“101”。第三函數(shù)定義為:“000”,等待2個(gè)周期,“100”, 等待10個(gè)周期,“000”。換言之,寄存器值1510指定了針對(duì)組件210a的從函數(shù)到組件寄存 器值的映射。該描述(即,從函數(shù)到寄存器值的映射)示出了,可以容易地處理組件的描述, 以確定測(cè)試比特流。如圖15所示,對(duì)于組件21(^的每個(gè)函數(shù),寄存器值1510指示(1)如何針對(duì)函 數(shù)寫(xiě)入和讀取組件寄存器,以及(2)針對(duì)函數(shù),必須如何解釋組件寄存器值。因此,在諸如 NSDL等描述語(yǔ)言中,組件的描述包括組件函數(shù)的描述,然后可以將該組件函數(shù)的描述轉(zhuǎn)換 成寄存器值,以在用于測(cè)試片上系統(tǒng)上下文內(nèi)的組件的測(cè)試過(guò)程中使用。盡管出于清楚目的,在描述從函數(shù)到寄存器值的映射時(shí)被省略了,但是根據(jù)NSDL 的組件210a的特定描述是算法描述,該描述是以如關(guān)于圖3-圖5所示出和描述的方式構(gòu) 成的。組件210A的基于NSDL的描述使得能夠確定從函數(shù)到寄存器值的映射。盡管出于清 楚的目的進(jìn)行了省略,但是可以為S-O-C 110的其他組件(S卩,組件210b-組件210e)中的 每一個(gè)定義類(lèi)似描述。圖16示出了使用圖2的片上系統(tǒng)的組件的描述來(lái)確定用于測(cè)試圖2的片上系統(tǒng) 的組件之一的測(cè)試過(guò)程的測(cè)試比特流。如圖16所示,產(chǎn)生測(cè)試比特流1610,以用于測(cè)試至 少一部分S-O-C 110。具體地,測(cè)試比特流1610包括應(yīng)用于S-O-C 110的TDI端口的輸 入比特流16111;以及從S-O-C 110的TDO端口接收的輸出比特流1611。。TS 120使用S-O-C 110的描述(使用NSDL指定的)產(chǎn)生測(cè)試比特流1610。S_0_C 110的描述(這里也被稱(chēng)作系統(tǒng)描述)包括S-O-C 110的測(cè)試資源的描述(例如,組件210 的描述、組件互連220的描述等,及其各種組合)。S-O-C 110的系統(tǒng)描述描述了 S-O-C 110 的拓?fù)?,并從而描述?S-O-C 110的系統(tǒng)掃描路徑。如這里所述,TS 120基于S-O-C 110的系統(tǒng)描述(提供了系統(tǒng)掃描路徑的描述) 來(lái)產(chǎn)生測(cè)試比特流1610。因此,由于S-O-C 110的系統(tǒng)描述提供了 S-O-C 110的系統(tǒng)掃描路 徑的描述,因此TS 120能夠確定為S-O-C 110產(chǎn)生的測(cè)試比特流1610的哪些部分與S-O-C 110的系統(tǒng)掃描路徑的哪些部分相對(duì)應(yīng)。在圖16中示出了這一點(diǎn)。如圖16所示,已經(jīng)定位了輸入比特流Ieil1和輸出比特流1611。內(nèi)的特定比特位 置(即,與組件210a相對(duì)應(yīng)的比特位置)。通過(guò)使用S-O-C110的基于NSDL的描述(提供 了與S-O-C 110的系統(tǒng)掃描路徑有關(guān)的信息,包括S-O-C 110內(nèi)組件210的相應(yīng)位置),能 夠?qū)崿F(xiàn)對(duì)輸入比特流Ieil1和輸出比特流1611。內(nèi)的與組件210a內(nèi)的寄存器相對(duì)應(yīng)的特定 位置的定位。盡管為了清楚起見(jiàn),在描述從組件寄存器到比特流的轉(zhuǎn)換時(shí)被省略了,但是根據(jù) NSDL的S-O-C 110的特定描述是算法描述,其描述了 S-O-C 110的拓?fù)?,從而描述?S_0_C 110的系統(tǒng)掃描路徑。S-O-C 110的該基于NSDL的描述使得能夠執(zhí)行從寄存器值到比特流 的轉(zhuǎn)換。圖17示出了由圖1的測(cè)試系統(tǒng)執(zhí)行、在IJTAG/NSDL框架中測(cè)試系統(tǒng)的組件的示 例方法。具體地,圖17的方法1700包括用于測(cè)試片上系統(tǒng)的一個(gè)組件的方法。盡管示出 和描述了以串行方式執(zhí)行,但是可以同時(shí)地或者以與關(guān)于圖17示出和描述的順序不同的順序來(lái)執(zhí)行圖17的方法1700的步驟的至少一部分。方法1700開(kāi)始于步驟1702,并前進(jìn)至 步驟1704。在步驟1704,選擇片上系統(tǒng)的組件(即,選作要被測(cè)試的片上系統(tǒng)的組件)。在步驟1706,獲得所選組件的描述。在步驟1708,對(duì)于組件所支持的每個(gè)函數(shù),將該函數(shù)轉(zhuǎn)換成與組件的寄存器相關(guān) 聯(lián)的寄存器值。使用組件的描述將組件的函數(shù)轉(zhuǎn)換成寄存器值。在步驟1710,獲得片上系統(tǒng)的系統(tǒng)描述。片上系統(tǒng)的系統(tǒng)描述指定了片上系統(tǒng)的 系統(tǒng)掃描路徑,其是根據(jù)片上系統(tǒng)的組件描述和片上系統(tǒng)的拓?fù)涞拿枋龆_定的。系統(tǒng)描 述可以用于指定用于片上系統(tǒng)的測(cè)試比特流。在步驟1712,使用片上系統(tǒng)的拓?fù)鋪?lái)確定片上系統(tǒng)的測(cè)試比特流內(nèi)的所選組件位 置。測(cè)試比特流內(nèi)所選組件位置指定了輸入比特流內(nèi)的一個(gè)或多個(gè)比特位置以及實(shí)際輸出 比特流內(nèi)一個(gè)或多個(gè)比特位置。在步驟1713 (可選步驟),驅(qū)動(dòng)交叉器件(即,如果對(duì)組件的訪(fǎng)問(wèn)受交叉器件的控 制)。通過(guò)對(duì)交叉器件的算法描述進(jìn)行處理,來(lái)驅(qū)動(dòng)交叉器件。驅(qū)動(dòng)交叉器件使得能夠選擇 交叉器件,以動(dòng)態(tài)地將相關(guān)聯(lián)的組件添加至片上系統(tǒng)的掃描路徑。在不再需要對(duì)組件進(jìn)行 訪(fǎng)問(wèn)之后,可以取消選定該交叉器件,以從片上系統(tǒng)的掃描路徑中移除相關(guān)聯(lián)的組件。該步 驟是可選的,這是由于對(duì)組件的訪(fǎng)問(wèn)可以受交叉器件的控制,也可以不受交叉器件的控制。在步驟1714,將寄存器值插入到輸入比特流的定位位置中。然后可以將輸入比特 流應(yīng)用于片上系統(tǒng)的輸入測(cè)試訪(fǎng)問(wèn)端口(即,用于測(cè)試片上系統(tǒng)的至少一部分)。在步驟 1716,從輸出比特流(即,從由測(cè)試系統(tǒng)從片上系統(tǒng)的輸出測(cè)試訪(fǎng)問(wèn)端口捕獲的輸出比特 流)的定位位置中恢復(fù)結(jié)果值。然后可以對(duì)恢復(fù)的結(jié)果值進(jìn)行處理,以便于確定各種測(cè)試 結(jié)果。在步驟1718,方法1700結(jié)束。圖18示出了示例片上系統(tǒng)的高級(jí)框圖。如圖18所示,片上系統(tǒng)1800包括濾波 器和三個(gè)儀器,這三個(gè)儀器包括模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)、以及天線(xiàn)訪(fǎng)問(wèn)單 元(AAU)。AAU支持模擬至數(shù)字至模擬轉(zhuǎn)換。濾波器支持至ADC的輸出連接(表示為RX_ out)和來(lái)自DAC的輸入連接(表示為T(mén)X_in)。濾波器支持與AAU的雙向連接(表示為AN_ inout)ο如圖18所示,經(jīng)由從TDI輸入至TDO輸出的掃描路徑,來(lái)提供對(duì)三個(gè)儀器的訪(fǎng)問(wèn)。 該掃描路徑包括致動(dòng)器寄存器集合和三個(gè)SIB單元(每一個(gè)分別針對(duì)三個(gè)儀器中一個(gè),使 得能夠?qū)⑾鄳?yīng)儀器添加至掃描路徑)。致動(dòng)器寄存器與濾波器相接口。第一 SIB單元提供 對(duì)ADC儀器的訪(fǎng)問(wèn)(經(jīng)由支流和分支)。第二 SIB單元提供對(duì)DAC儀器的訪(fǎng)問(wèn)(經(jīng)由支流 和分支)。第三SIB單元提供對(duì)AAU儀器的訪(fǎng)問(wèn)(經(jīng)由支流和分支)。隨后是掃描路徑的描述。TDI輸入耦合至致動(dòng)器寄存器集合的輸入。致動(dòng)器寄存 器集合的輸出耦合至第一 SIB單元的輸入。第一 SIB的輸出耦合至第二 SIB單元的輸入。 第二 SIB單元的輸出耦合至第三SIB單元的輸入。第三SIB單元的輸出耦合至TDO輸出。 當(dāng)取消選定每個(gè)SIB時(shí)(即,如果沒(méi)有“選擇”任何SIB,以使得它們相應(yīng)的儀器不能被添加 至掃描路徑),從TDI輸入至TDO輸出的序列形成了片上系統(tǒng)1800的掃描路徑。如圖18所示,通過(guò)選擇與三個(gè)儀器相關(guān)聯(lián)的相應(yīng)SIB單元的支流和分支接口,可以容易地將三個(gè)儀器中的每一個(gè)添加至掃描路徑。例如,可以選擇第一 SIB,使得可以將 ADC儀器添加至掃描路徑以用于測(cè)試。例如,可以選擇第一 SIB和第三SIB,使得可以將ADC 和AAU儀器均添加至掃描路徑以用于測(cè)試。如這里所述,片上系統(tǒng)1800的基于NSDL的描 述簡(jiǎn)化了片上系統(tǒng)1800的測(cè)試。圖19示出了使用圖18的片上系統(tǒng)的組件之一的描述來(lái)確定用于測(cè)試該組件的測(cè) 試過(guò)程的寄存器比特值。具體地,圖19示出了 ADC儀器的描述(表示為描述1910)到與ADC 儀器的寄存器(表示為寄存器1920)相關(guān)聯(lián)的寄存器值的映射。如圖19所示,描述1910 包括掃描路徑的描述(表示為掃描路徑描述1911),以及由ADC儀器執(zhí)行的函數(shù)的算法表 示(表示為函數(shù)算法1912)。描述1910是基于NSDL的(算法)描述。掃描路徑描述1911標(biāo)識(shí)出ADC儀 器的寄存器(包括數(shù)據(jù)寄存器和控制寄存器),并描述了如何布置寄存器(例如,標(biāo) 識(shí)〃 precedent"、“ following"、以及長(zhǎng)度信息)。函數(shù)算法1912描述了由ADC儀器執(zhí) 行的函數(shù)的操作。根據(jù)描述1910,測(cè)試工具能夠容易確定可以用于測(cè)試ADC儀器的比特流值。圖20示出了使用圖18的片上系統(tǒng)的組件描述來(lái)確定圖18的片上系統(tǒng)的組件描 述。具體地,圖20示出了圖18的片上系統(tǒng)的構(gòu)成的描述(表示為拓?fù)?010)。使用片上系 統(tǒng)1800的每個(gè)組件(例如,致動(dòng)器寄存器、SIB、以及儀器)的輸入和輸出中的每一個(gè)的通 用映射來(lái)指定拓?fù)?010。例如,致動(dòng)器寄存器的描述指示,至致動(dòng)器寄存器的輸入是TDI輸入 (“precedent = > “ TDI'),自致動(dòng)器寄存器的輸出是第一 SIB,該輸出表示為RX_ enable,這是由于其使能了對(duì)ADC儀器的RX_register的訪(fǎng)問(wèn)(following = > “ RX_ enable")。換言之,根據(jù)與其相接口的組件來(lái)描述致動(dòng)器寄存器組件。例如,第一 SIB的描述(即,RX_enable組件)指示,至RX_enable組件的輸入是 致動(dòng)器寄存器(precedent =>〃 actuator_registers〃),第一 SIB 的輸出是第二 SIB,該 輸出表示為T(mén)X_enable,這是由于其使能了對(duì)DAC儀器的TX_regiSter的訪(fǎng)問(wèn)(following =>"Tx_enable〃)。此夕卜,由于第一 SIB使能了對(duì)ADC儀器的訪(fǎng)問(wèn),因此第一 SIB的描述還描述了對(duì) ADC儀器的訪(fǎng)問(wèn)。具體地,第一 SIB的描述指示了,經(jīng)由一個(gè)輸入(affluent=〉" Rx_ register)以及一個(gè)輸出(tributary => 〃 Rx_enable〃),使能了從第一 SIB 至 ADC 儀器 的訪(fǎng)問(wèn)。根據(jù)這些示例,清楚的是,使用NSDL可以容易描述片上系統(tǒng)的整個(gè)拓?fù)?。此外,?于該拓?fù)涮峁┝似舷到y(tǒng)的組件之間的互連的描述,因此可以容易確定片上系統(tǒng)的拓?fù)鋬?nèi) 片上系統(tǒng)的每個(gè)組件的定位。如這里所述,使用片上系統(tǒng)的組件描述(提供了從組件的函數(shù)到該組件的寄存器 的寄存器值的映射)以及片上系統(tǒng)的拓?fù)涿枋觯梢詫?duì)片上系統(tǒng)執(zhí)行各種類(lèi)型的測(cè)試。因 此,圖18-20示出了使用NSDL描述片上系統(tǒng)的優(yōu)點(diǎn)。根據(jù)以上描述,使用NSDL語(yǔ)言來(lái)描述片上系統(tǒng)的各種優(yōu)點(diǎn)和好處是顯而易見(jiàn)的。 NSDL的算法本質(zhì)特點(diǎn)實(shí)現(xiàn)了片上系統(tǒng)的算法描述(無(wú)論拓?fù)溆卸鄰?fù)雜),可以對(duì)該算法描 述進(jìn)行處理以確定測(cè)試比特流,該測(cè)試比特流適于測(cè)試片上系統(tǒng)(例如,測(cè)試多個(gè)組件、測(cè)試一個(gè)組件,測(cè)試組件的函數(shù)的子集等,及其各種組合)。因此,使用NSDL,可以確定片上系 統(tǒng)的系統(tǒng)掃描路徑的分級(jí)描述,以用于測(cè)試片上系統(tǒng)。NSDL語(yǔ)言以BSDL/HSDL無(wú)法支持的方式來(lái)支持IJTAG的特征,包括提供片上系 統(tǒng)組件(例如,IP、儀器、交叉器件等)的算法描述、片上系統(tǒng)拓?fù)?例如,組件之間的互連、 組件間依賴(lài)性等)等,及其各種組合,從而實(shí)現(xiàn)片上系統(tǒng)的算法系統(tǒng)級(jí)描述。因此,NSDL語(yǔ) 言實(shí)現(xiàn)了分級(jí)掃描路徑組織,從而實(shí)現(xiàn)了將寄存器值轉(zhuǎn)換成測(cè)試比特流,該測(cè)試比特流可 以用于測(cè)試片上系統(tǒng)。可以以許多方式來(lái)實(shí)現(xiàn)NSDL語(yǔ)言。在一個(gè)實(shí)施例中,使用VHDL的現(xiàn)有特征來(lái)實(shí)現(xiàn)NSDL。BSDL定義為VHDL的子集,而 NSDL利用VHDL的超集。由于VHDL是主要的寄存器傳送級(jí)(RTL)描述語(yǔ)言,因此其適于表 達(dá)其描述的組件的測(cè)試需求。通過(guò)保持與VHDL的兼容,NSDL可以由現(xiàn)有編譯器支持,只需 要最小改變。此外,VHDL的使用確保了至NSDL的轉(zhuǎn)換對(duì)于習(xí)慣VHDL的操作員而言是一種 平滑的體驗(yàn)過(guò)程,此外,確保了對(duì)現(xiàn)有源和工具的轉(zhuǎn)換和改變也是容易的。因此,利用VHDL 的NSDL最小化了對(duì)現(xiàn)有用戶(hù)群體的影響,從而簡(jiǎn)化了現(xiàn)有用戶(hù)群體對(duì)NSDL的采用。相反,曾開(kāi)發(fā)BSDL作為VHDL的子集,以努力使BSDL即與VHDL后向兼容也與VHDL 前向兼容。子集指示了無(wú)任何添加(即,由嵌入到現(xiàn)有VHDL規(guī)則中的結(jié)構(gòu)性語(yǔ)法規(guī)則承載 所有信息,然后以與正常方式不同的方式來(lái)解釋)。雖然后向兼容是自動(dòng)的,但是定義新結(jié) 構(gòu)的不可能性使得演進(jìn)很困難。該結(jié)構(gòu)性限制導(dǎo)致開(kāi)發(fā)者通常以反直覺(jué)方式,過(guò)度使用兩 個(gè)最通用的結(jié)構(gòu)(屬性和特性串)。換言之,將BSDL有效地限制在VHDL的一小部分內(nèi),從 而消除了 VHDL具有上下文意義的任何可能性。如這里所述,NSDL提供了片上系統(tǒng)測(cè)試中的許多優(yōu)點(diǎn)。類(lèi)似地,使用VHDL來(lái)實(shí)現(xiàn) NSDL在片上系統(tǒng)測(cè)試中提供了許多優(yōu)點(diǎn)??梢栽赩HDL實(shí)體組件偶聯(lián)體(couplet)上,對(duì)片上系統(tǒng)的組件進(jìn)行建模,從而實(shí) 現(xiàn)由片上系統(tǒng)的組件支持的各個(gè)單獨(dú)函數(shù)的描述。因此,可以通過(guò)組件的內(nèi)部掃描路徑 (可以包括分級(jí))來(lái)提供對(duì)每個(gè)組件的訪(fǎng)問(wèn)。此外,組件可以與相應(yīng)的測(cè)試過(guò)程集合一同提 供,測(cè)試系統(tǒng)可以使用該測(cè)試過(guò)程集合來(lái)測(cè)試該組件,其中,使用NSDL指定過(guò)程的屬性(例 如,長(zhǎng)度、依賴(lài)性等),而使用VHDL指定過(guò)程體。因此,這使得系統(tǒng)體系結(jié)構(gòu)能夠以類(lèi)似于組 件體系結(jié)構(gòu)處理組件級(jí)描述的方式的方式來(lái)處理系統(tǒng)級(jí)描述??梢詫⑵舷到y(tǒng)的掃描路徑構(gòu)成為可以像VHDL組件一樣實(shí)例化的一系列實(shí)體, 從而容易地將其重新分組到包或庫(kù)中。此外,容易處理許多更復(fù)雜的表示(例如,給定類(lèi)型 組件的多個(gè)實(shí)例化、組件間依賴(lài)性等,及其各種組合)。此外,NSDL以改善經(jīng)典VDL信號(hào)映 射的方式實(shí)現(xiàn)了對(duì)系統(tǒng)掃描鏈的構(gòu)建。開(kāi)發(fā)用于測(cè)試片上系統(tǒng)的測(cè)試過(guò)程可以引用系統(tǒng)掃 描路徑或系統(tǒng)掃描路徑的一部分(被稱(chēng)作片,可以包括組件組,或者甚至包括一個(gè)組件的 子集)。盡管這里主要關(guān)于使用VHDL實(shí)現(xiàn)的NSDL的實(shí)施例進(jìn)行示出和描述,但是可以使 用其他硬件描述語(yǔ)言(可以包括還沒(méi)有開(kāi)發(fā)的硬件描述語(yǔ)言)來(lái)實(shí)現(xiàn)NSDL。如這里所述,除了改善基于JTAG的測(cè)試,以及實(shí)現(xiàn)在基于JTAG的測(cè)試中使用交叉 器件以外,NSDL語(yǔ)言還實(shí)現(xiàn)了對(duì)片上系統(tǒng)的組件的并行訪(fǎng)問(wèn),從而實(shí)現(xiàn)片上系統(tǒng)測(cè)試的改 善(例如,改善的測(cè)試調(diào)度、改善的測(cè)試效率等,及其各種組合)。
在一個(gè)實(shí)施例中,例如P1687,并行訪(fǎng)問(wèn)主要用作優(yōu)化數(shù)據(jù)傳輸帶寬的方式,而串 行訪(fǎng)問(wèn)仍保持對(duì)測(cè)試的控制。NSDL語(yǔ)言能夠描述這些輔助資源,并將它們插入到測(cè)試流中 (例如,分別插入到關(guān)于圖12和17示出和描述的方法1200和1700中)。此外,也可以對(duì)NSDL進(jìn)行擴(kuò)展以描述更復(fù)雜的測(cè)試訪(fǎng)問(wèn)機(jī)制(TAM),例如,使用交 叉器件來(lái)提供用于測(cè)試片上系統(tǒng)的并行訪(fǎng)問(wèn),使用扇出-扇入方案來(lái)提供用于測(cè)試片上系 統(tǒng)的并行訪(fǎng)問(wèn)等,及其各種組合??梢詤⒄?qǐng)D21-28更好理解用于測(cè)試一個(gè)片上系統(tǒng)(或多個(gè)片上系統(tǒng))的并行訪(fǎng) 問(wèn)的使用。圖21示出了并行訪(fǎng)問(wèn)接口的一般連接方案的高級(jí)框圖。具體地,一般連接方案 2100提供了至片上系統(tǒng)2120的并行訪(fǎng)問(wèn)接口 2110。并行訪(fǎng)問(wèn)接口 2110包括內(nèi)部并行端 口 2111、外部并行端口 2112、以及內(nèi)部接口 2113。片上系統(tǒng)2120包括并行端口 2121。如圖21所示,通過(guò)內(nèi)部并行端口 2111與并行端口 2121之間的連接,提供對(duì)片上 系統(tǒng)2120的并行訪(fǎng)問(wèn)。利用并行端口 2121需要(1)并行端口 2121與片上系統(tǒng)2120的 連接和同步(可以在實(shí)例化時(shí)間進(jìn)行),以及(2)通過(guò)測(cè)試系統(tǒng)(為了清楚起見(jiàn)而省略)對(duì) 并行端口 2121的處理。如圖21所示,內(nèi)部并行端口 2111和外部并行端口 2112使得η個(gè)輸入連接(η > 0)和m個(gè)輸出連接(m> 0)連接至片上系統(tǒng)2120的并行端口 2121。以?xún)煞N方式提供對(duì)片上系統(tǒng)2120的并行訪(fǎng)問(wèn)。外部地提供對(duì)片上系統(tǒng)2120的并行訪(fǎng)問(wèn)。使用外部并行端口 2112提供從測(cè)試系 統(tǒng)到片上系統(tǒng)2120的外部訪(fǎng)問(wèn)。外部并行端口 2112用作測(cè)試系統(tǒng)與內(nèi)部并行端口 2111 之間的接口。外部并行端口 2112支持η個(gè)輸入連接以及m個(gè)輸出連接(分別與內(nèi)部并行 端口 2111的η個(gè)輸入/m個(gè)輸出連接相對(duì)應(yīng))。內(nèi)部地提供對(duì)片上系統(tǒng)2120的并行訪(fǎng)問(wèn)。使用內(nèi)部接口 2113提供從測(cè)試系統(tǒng)到 片上系統(tǒng)2120的內(nèi)部訪(fǎng)問(wèn)。在一個(gè)實(shí)施例中,可以使用連接至系統(tǒng)掃描路徑的一個(gè)或多個(gè) 內(nèi)部寄存器來(lái)實(shí)現(xiàn)內(nèi)部接口 2113。在該實(shí)施例中,內(nèi)部寄存器可以用于控制并行訪(fǎng)問(wèn)接口 2110的行為,或者查詢(xún)并行訪(fǎng)問(wèn)接口 2110的狀態(tài)。如上所述,為了清楚起見(jiàn),省略了可以經(jīng)由內(nèi)部接口 2112或外部接口 2113訪(fǎng)問(wèn)內(nèi) 部并行端口 2111的測(cè)試系統(tǒng)。使用NSDL描述并行訪(fǎng)問(wèn)接口 2110。并行訪(fǎng)問(wèn)接口 2110的NSDL描述包括⑴內(nèi)部端口的描述(例如,寬度信息、數(shù) 據(jù)流方向等信息),以及(2)并行訪(fǎng)問(wèn)函數(shù)/過(guò)程。并行訪(fǎng)問(wèn)接口 2110的NSDL描述也可以可選地包括(3)外部并行端口 2112的描 述(例如,寬度信息、數(shù)據(jù)流方向等信息)。并行訪(fǎng)問(wèn)接口 2110的NSDL描述也可以可選地包括(4)內(nèi)部接口 2113的描述 (例如,用于控制函數(shù)和/或狀態(tài)函數(shù)的寄存器的描述)。在一個(gè)實(shí)施例中,可以使用串行測(cè)試訪(fǎng)問(wèn)接口的描述以及并行測(cè)試訪(fǎng)問(wèn)接口的描 述,來(lái)描述從測(cè)試系統(tǒng)到具有多個(gè)組件的片上系統(tǒng)的并行訪(fǎng)問(wèn),串行測(cè)試訪(fǎng)問(wèn)接口用于在 測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流(其中,串行測(cè)試訪(fǎng)問(wèn)接口使用片上系統(tǒng)的串行掃描 路徑來(lái)提供對(duì)組件的訪(fǎng)問(wèn)),并行測(cè)試訪(fǎng)問(wèn)接口用于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流(其中,并行測(cè)試訪(fǎng)問(wèn)接口提供對(duì)組件的訪(fǎng)問(wèn),而不使用片上系統(tǒng)的串行掃描路徑,即, 即使串行掃描路徑的一個(gè)或多個(gè)值可以控制訪(fǎng)問(wèn),也不直接經(jīng)由串行掃描路徑提供訪(fǎng)問(wèn))。 可以存儲(chǔ)串行測(cè)試訪(fǎng)問(wèn)接口和并行測(cè)試訪(fǎng)問(wèn)接口,用于測(cè)試。在一個(gè)實(shí)施例中,可以使用并行接口模塊的描述來(lái)描述從測(cè)試系統(tǒng)到片上系統(tǒng)的 并行訪(fǎng)問(wèn),并行接口模塊適于將測(cè)試系統(tǒng)耦合至片上系統(tǒng)的核心模塊,并存儲(chǔ)并行接口模 塊的描述,其中,并行接口包括至少一個(gè)串行寄存器和至少一個(gè)并行寄存器,該至少一個(gè)串 行寄存器適于使用片上系統(tǒng)的掃描路徑來(lái)訪(fǎng)問(wèn)核心模塊,該至少一個(gè)并行寄存器適于訪(fǎng)問(wèn) 核心模塊,而不使用片上系統(tǒng)的掃描路徑??梢源鎯?chǔ)該描述以用于測(cè)試。在一個(gè)實(shí)施例中,可以通過(guò)使用串行測(cè)試訪(fǎng)問(wèn)端口的描述、并行測(cè)試訪(fǎng)問(wèn)端口的 描述、以及接口端口的描述來(lái)描述從測(cè)試系統(tǒng)到片上系統(tǒng)的并行訪(fǎng)問(wèn),串行測(cè)試訪(fǎng)問(wèn)端口 適于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流,并行測(cè)試訪(fǎng)問(wèn)端口適于在測(cè)試系統(tǒng)與組件之 間耦合測(cè)試比特流,接口端口適于將串行測(cè)試訪(fǎng)問(wèn)端口和并行測(cè)試訪(fǎng)問(wèn)端口耦合至片上系 統(tǒng)的至少一部分組件??梢源鎯?chǔ)該描述,以用于測(cè)試片上系統(tǒng)。如這里所述,存儲(chǔ)所產(chǎn)生的描述。這樣,處理器可以接收該描述(例如,從存儲(chǔ)器、 從另一系統(tǒng)、或者從這種描述的任何其他源),以使用并行訪(fǎng)問(wèn)執(zhí)行各種測(cè)試(例如,組件 級(jí)測(cè)試、系統(tǒng)級(jí)測(cè)試等,及其各種組合)??梢砸云渌绞絹?lái)描述從測(cè)試系統(tǒng)到片上系統(tǒng)的并行訪(fǎng)問(wèn)。并行接口 2110與片上系統(tǒng)2120之間的通信可以為同步或異步。在一個(gè)實(shí)施例中,并行接口 2110與片上系統(tǒng)2120之間的通信與掃描鏈同步。在 一個(gè)這樣的實(shí)施例中,在1149. 1 “更新”信號(hào)的上升沿,對(duì)并行端口 2121上的值進(jìn)行采樣。 在該實(shí)施例中,測(cè)試系統(tǒng)僅僅必須向端口提供值(用于輸入),和/或從端口收集值(用于 輸出)。在一個(gè)實(shí)施例中,并行接口 2110與片上系統(tǒng)2120之間的通信可以實(shí)現(xiàn)為同步 突發(fā)。在一個(gè)這樣的實(shí)施例中,為了優(yōu)化帶寬,將數(shù)據(jù)突發(fā)發(fā)送至并行端口 2121(對(duì)于輸 入),和/或從并行端口 2121讀取數(shù)據(jù)突發(fā)(對(duì)于輸出)。在一個(gè)這樣的實(shí)施例中,可以在 1149. 1 “更新”信號(hào)的上升沿處開(kāi)始突發(fā)數(shù)據(jù)的發(fā)送/讀取。并行接口 2110指定至測(cè)試系 統(tǒng)的數(shù)據(jù)突發(fā)的特性。在一個(gè)實(shí)施例中,并行接口 2110和片上系統(tǒng)2120之間的通信為異步。在該實(shí)施 例中,并行端口 2121自己進(jìn)行操作,對(duì)其自身用于操作連接的協(xié)議進(jìn)行處理。在該實(shí)施例 中,測(cè)試系統(tǒng)僅允許高級(jí)訪(fǎng)問(wèn)(發(fā)送數(shù)據(jù)和接收數(shù)據(jù))。事務(wù)的協(xié)議由測(cè)試系統(tǒng)的并行接口 驅(qū)動(dòng)器進(jìn)行處理。在一個(gè)實(shí)施例中,片上系統(tǒng)1220可以支持多個(gè)這種與并行接口 2110通信的模式。 在這樣的實(shí)施例中,可以使用函數(shù)集合在不同通信模式之間切換。例如,函數(shù)集合可以包 括‘‘disable_p0rt",禁用并行端口 ; ‘‘ set_scan_synchr0",切換至掃描鏈同步訪(fǎng)問(wèn) 模式;“set_burst",切換至突發(fā)訪(fǎng)問(wèn)模式;以及"set.asynchro",切換至異步模式。圖22示出了兩個(gè)示例并行訪(fǎng)問(wèn)連接方案的高級(jí)框圖。如圖22所示,在圖1的測(cè)試環(huán)境的上下文內(nèi)描述示例并行訪(fǎng)問(wèn)連接方案。示例的 并行訪(fǎng)問(wèn)連接方案用于將測(cè)試系統(tǒng)120連接至片上系統(tǒng)110。具體地,示例的并行訪(fǎng)問(wèn)連接 方案用于將測(cè)試系統(tǒng)120連接至片上系統(tǒng)110的JTAG接口 2201和并行接口 2202。
如圖22所示,第一并行訪(fǎng)問(wèn)連接方案2210針對(duì)JTAG和并行訪(fǎng)問(wèn)利用公共纜線(xiàn)。 第一并行訪(fǎng)問(wèn)連接方案2210針對(duì)至片上系統(tǒng)110的掃描路徑的JTAG接口 2201以及片上 系統(tǒng)110的并行連接2202,利用單個(gè)連接器件(表示為JTAG并行接口器件)2111。如圖22所示,第二并行訪(fǎng)問(wèn)連接訪(fǎng)問(wèn)方案2220利用分離的JTAG和并行連接。第 二并行訪(fǎng)問(wèn)連接方案2210針對(duì)至片上系統(tǒng)110的掃描路徑的JTAG接口 2201,利用第一連 接器件(表示為JTAG接口器件2121),以及針對(duì)片上系統(tǒng)110的并行接口 2202,利用第二 連接器件(表示為并行接口器件2122)。關(guān)于第二并行訪(fǎng)問(wèn)連接方案2210,盡管參照測(cè)試系統(tǒng)120是針對(duì)JTAG接口 2201 和并行接口 2202兩者的測(cè)試源/宿的實(shí)施例進(jìn)行示出和描述,但是在其他實(shí)施例中,針對(duì) JTAG接口 2201和并行接口 2202的測(cè)試源和/或宿可以是不同的。例如,JTAG接口 2201 或并行接口 2202可以使用除了測(cè)試系統(tǒng)120以外的其它測(cè)試源和/或宿。一般而言,根據(jù)并行接口的實(shí)現(xiàn)方式,經(jīng)由并行接口執(zhí)行片上系統(tǒng)測(cè)試的測(cè)試系 統(tǒng)可以直接訪(fǎng)問(wèn)片上系統(tǒng)的并行端口,例如,這是由于在測(cè)試系統(tǒng)與片上系統(tǒng)的并行端口 之間放置有許多結(jié)構(gòu)。在圖23A和23B中示出和描述了示例。圖23A示出了示例測(cè)試環(huán)境的高級(jí)框圖。示例測(cè)試環(huán)境2300使得測(cè)試系統(tǒng)能夠 使用并行訪(fǎng)問(wèn)接口執(zhí)行對(duì)片上系統(tǒng)的測(cè)試,該并行訪(fǎng)問(wèn)接口提供對(duì)片上系統(tǒng)的并行訪(fǎng)問(wèn)。 具體地,測(cè)試環(huán)境2300包括經(jīng)由接口器件(ID) 2320互連的測(cè)試系統(tǒng)(TS) 2310和芯片/板 (C/B)2330οTS 2310是測(cè)試系統(tǒng),適于經(jīng)由并行訪(fǎng)問(wèn)接口執(zhí)行片上系統(tǒng)的測(cè)試。TS 2310可以 以任何方式實(shí)現(xiàn),以實(shí)現(xiàn)使用對(duì)片上系統(tǒng)的并行訪(fǎng)問(wèn)來(lái)測(cè)試片上系統(tǒng)的系統(tǒng)。在一個(gè)實(shí)施 例中,TS 2310可以實(shí)現(xiàn)為圖11示出和描述的TS 120的適配版本(例如,適于支持并行測(cè) 試言旨力)OTS 2310包括適于在經(jīng)由并行訪(fǎng)問(wèn)接口執(zhí)行片上系統(tǒng)測(cè)試時(shí)使用的軟件。具體地, TS 2310包括控制測(cè)試工具2312和并行接口驅(qū)動(dòng)器2313的操作系統(tǒng)2311。TS 2310包括 適于執(zhí)行片上系統(tǒng)測(cè)試的其他硬件和軟件(例如,處理器、存儲(chǔ)器、支持電路,等)(為了清 楚起見(jiàn)而省略)。在一個(gè)實(shí)施例中,測(cè)試工具2312可以與測(cè)試工具1121相同,或者至少與關(guān)于測(cè)試 工具2312示出和描述的函數(shù)可以實(shí)現(xiàn)為測(cè)試工具1121的一部分。C/B 2330包括片上系統(tǒng)2331以及并行接口 2332。片上系統(tǒng)2331可以是這里描 述的任何片上系統(tǒng)。并行接口 2332是關(guān)于圖21和22示出和描述的并行接口。關(guān)于圖21 可以更好理解并行接口 2332與片上系統(tǒng)2331之間的交互。如圖23Α所示,使用NSDL分別 描述片上系統(tǒng)2331和并行接口 2332。ID 2320 用作 TS 2310 與 C/B 2330 之間的接口。TS 2310 與 ID 2320 之間的接口 可以使用TS 2310所支持的任何類(lèi)型的接口(例如,USB纜線(xiàn)或可以由TS 2310支持的任 何其他類(lèi)型的接口)來(lái)實(shí)現(xiàn)。ID2320與C/B 2330之間的接口可以實(shí)現(xiàn)為由C/B 2330支 持的任何類(lèi)型的接口。在一個(gè)實(shí)施例中,ID 2320支持至C/B 2330的分離的數(shù)據(jù)和控制接 口,使得可以獨(dú)立地從TS 2310向C/B 2330應(yīng)用數(shù)據(jù)信號(hào)和控制信號(hào)。如這里所述,測(cè)試工具2312處理與并行接口 2332 (以及,從而與片上系統(tǒng)2331) 的數(shù)據(jù)交換,并且并行接口驅(qū)動(dòng)器2313處理與并行接口 2332 (以及,從而與片上系統(tǒng)2331)的協(xié)議交換。換言之,并行接口驅(qū)動(dòng)器2313防止了必須由測(cè)試工具2312管理與并行接口 2332的協(xié)議交換。如圖23A所示,ID 2320支持TS 2310與C/B 2330之間的數(shù)據(jù)交換和協(xié) 議交換。在一個(gè)實(shí)施例中,并行接口驅(qū)動(dòng)器2313使用操作系統(tǒng)2311所支持的函數(shù)(例如, 使用緩沖器、信號(hào)量、郵箱等,及其各種組合)來(lái)處理與并行接口 2332的協(xié)議交換。在該實(shí) 施例中,測(cè)試工具2312不直接控制片上系統(tǒng)的JTAG端口 ;而是,測(cè)試工具2312與向測(cè)試工 具2312提供各種函數(shù)(例如,使用由驅(qū)動(dòng)器聲明并且由測(cè)試工具2312導(dǎo)入的函數(shù))的驅(qū) 動(dòng)器交互。圖23B示出了圖23A的示例測(cè)試環(huán)境內(nèi)的數(shù)據(jù)流的高級(jí)框圖。如圖23B所示,數(shù) 據(jù)從TS 2310流向C/B 2330 (表示為數(shù)據(jù)流2315)并且從C/B 2330流向TS 2310 (表示為 數(shù)據(jù)流2352)。在數(shù)據(jù)流2351中,數(shù)據(jù)從測(cè)試工具2312流至并行接口驅(qū)動(dòng)器2313、至接口 器件2320、至并行接口 2332、至片上系統(tǒng)2331。在數(shù)據(jù)流2352中,數(shù)據(jù)沿著反向路徑從片 上系統(tǒng)2330到測(cè)試工具2312流動(dòng)。如這里所述,在測(cè)試環(huán)境2300的上下文內(nèi),僅有數(shù)據(jù) 流是重要的。片上系統(tǒng)2331的基于NSDL的描述包括(例如,在實(shí)例化時(shí))連接至相應(yīng)并行接 口的一個(gè)或多個(gè)并行端口,一個(gè)或多個(gè)并行片(其中存儲(chǔ)用于并行事務(wù)的數(shù)據(jù)),以及適于 在并行端口發(fā)起事務(wù)的一個(gè)或多個(gè)并行事務(wù)函數(shù)。可以使用特定命名(例如,"parallel, XXXX“)來(lái)標(biāo)識(shí)并行片??梢允褂锰囟?例如,‘‘sencLparallel_data〃和〃 get_ parallel.data")來(lái)標(biāo)識(shí)并行事務(wù)函數(shù)。例如,并行事務(wù)函數(shù)的原型可以包括function send—parallel—data(sending—slicein string)return boolean ;function get_parallel_data(receiving_slice:in string)return boolean ;這里描述的示例的并行事務(wù)函數(shù)宣告并行端口上的活動(dòng),并且還指示對(duì)串行測(cè)試 比特流的修改,以控制串行測(cè)試比特流?!安⑿衅钡膶?shí)現(xiàn)向測(cè)試系統(tǒng)(示意性地,TS 2310 的測(cè)試工具2312)通知片上系統(tǒng)的并行端口與片上系統(tǒng)的剩余部分(這里被稱(chēng)作片上系統(tǒng) 的“核心”)之間數(shù)據(jù)流的細(xì)節(jié)??梢砸栽S多方式來(lái)實(shí)現(xiàn)片上系統(tǒng)的并行端口與片上系統(tǒng)的 核心之間的連接(圖24-27示出和描述了該連接的示例)。圖24示出了片上系統(tǒng)的并行端口與核心之間的示例連接的高級(jí)框圖。如圖24所 示,示例連接利用完全獨(dú)立的并行端口(獨(dú)立于串行掃描路徑)。具體地,連接2400包括 TAP端口 2410和提供對(duì)片上系統(tǒng)2430的并行訪(fǎng)問(wèn)的外部并行端口 2420。片上系統(tǒng)2430 包括可以經(jīng)由TAP端口 2410或經(jīng)由外部并行端口 2420訪(fǎng)問(wèn)的核心2439??梢允褂闷舷到y(tǒng)2433的串行掃描路徑中的串行寄存器2431,經(jīng)由TAP端口 2410來(lái)訪(fǎng)問(wèn)核心2439。串行寄存器2431控制經(jīng)由第一接口 2433對(duì)核心2439的訪(fǎng)問(wèn)。使 用并行寄存器2434經(jīng)由外部并行端口 2420來(lái)訪(fǎng)問(wèn)核心2439,其中并行寄存器2434在片上 系統(tǒng)2430的串行掃描路徑的外部。并行寄存器2434控制經(jīng)由第二接口 2435對(duì)核心2439 的訪(fǎng)問(wèn)。如圖24所示,經(jīng)由并行寄存器2434訪(fǎng)問(wèn)核2439完全獨(dú)立于串行寄存器2431。 因此,通過(guò)并行邏輯對(duì)所有控制信號(hào)進(jìn)行處理,不需要來(lái)自片上系統(tǒng)2430的串行掃描路徑的干預(yù)。函數(shù)〃 get_parallel_data〃簡(jiǎn)單采取并行片的名稱(chēng)(示意性地,“parallel, reg")作為自變量,由于不需要對(duì)比特流進(jìn)行修改,因此函數(shù)體為空。圖25示出了片上系統(tǒng)的并行端口與核心之間的示例連接的高級(jí)框圖。如圖25所 示,示例連接利用獨(dú)立于串行控制的并行端口。具體地,連接2500包括TAP端口 2510以及 提供對(duì)片上系統(tǒng)2530的并行訪(fǎng)問(wèn)的外部并行端口 2520。片上系統(tǒng)2530包括可以經(jīng)由TAP 端口 2510或經(jīng)由外部并行端口 2520訪(fǎng)問(wèn)的核心2539??梢允褂闷舷到y(tǒng)2530的串行掃描路徑中的串行寄存器2531,經(jīng)由TAP端口 2510來(lái)訪(fǎng)問(wèn)核心2539。串行寄存器2531控制經(jīng)由第一接口 2533對(duì)核心2539的訪(fǎng)問(wèn)???以使用并行寄存器2534經(jīng)由外部并行端口 2520來(lái)訪(fǎng)問(wèn)核心2539,其中并行寄存器2534在 片上系統(tǒng)2530的串行掃描路徑的外部。并行寄存器2534控制經(jīng)由第二接口 2535對(duì)核心 2539的訪(fǎng)問(wèn)。如圖25所示,使用片上系統(tǒng)2530的串行掃描路徑中的附加使能寄存器2531,來(lái) 控制經(jīng)由并行寄存器2534和關(guān)聯(lián)的第二接口 2535對(duì)核心2539的訪(fǎng)問(wèn)。使能寄存器2532 使用從使能寄存器2532至核心2539的控制接口 2537,來(lái)控制經(jīng)由并行寄存器2534對(duì)核心 2539的訪(fǎng)問(wèn)。因此,片上系統(tǒng)2530的串行掃描路徑包括TDI->使能寄存器2532->串行 寄存器 2531- > TDO0因此,如圖25所示,從片上系統(tǒng)2530的串行掃描路徑,以串行方式控制經(jīng)由并行 寄存器2534對(duì)核心2539的訪(fǎng)問(wèn)。在該實(shí)施例中,函數(shù)〃 get_parallel_data〃采取并行片 的名稱(chēng)(示意性地,"paralleling")作為自變量,并且由于需要對(duì)比特流進(jìn)行修改,函 數(shù)體包括將使能寄存器2532的值設(shè)置為所需值的指令。圖26示出了片上系統(tǒng)的并行端口與核心之間的示例連接的高級(jí)框圖。如圖26所 示,對(duì)于串行和并行數(shù)據(jù),示例連接利用至核心的共享訪(fǎng)問(wèn)端口。具體地,連接2600包括 TAP端口 2610,以及提供對(duì)片上系統(tǒng)2630的并行訪(fǎng)問(wèn)的外部并行端口 2620。片上系統(tǒng)2630 包括核心2639,可以經(jīng)由TAP端口 2610或經(jīng)由外部并行端口 2620來(lái)訪(fǎng)問(wèn)核心2639??梢允褂闷舷到y(tǒng)2630的串行掃描路徑中的串行寄存器2631,經(jīng)由TAP端口 2610來(lái)訪(fǎng)問(wèn)核心2639。串行寄存器2631控制經(jīng)由第一接口 2633對(duì)核心2639的訪(fǎng)問(wèn)。可 以使用并行寄存器2634經(jīng)由外部并行端口 2620來(lái)訪(fǎng)問(wèn)核心2639,該并行寄存器2634在 片上系統(tǒng)2630的串行掃描路徑的外部。并行寄存器2634控制經(jīng)由第二接口 2635對(duì)核心 2639的訪(fǎng)問(wèn)。如圖26所示,使用共享訪(fǎng)問(wèn)端口 2636控制經(jīng)由串行寄存器2631和并行寄存器 2634對(duì)核心2639的訪(fǎng)問(wèn)。共享訪(fǎng)問(wèn)端口 2636采用來(lái)自串行寄存器2631的第一接口 2633 作為第一輸入,并且采用來(lái)自并行寄存器2634的第二接口 2635作為第二輸入。共享訪(fǎng)問(wèn) 端口 2636選擇輸入之一,并經(jīng)由共享訪(fǎng)問(wèn)接口 2638向核心2639提供所選的一個(gè)輸入。如圖26所示,使用片上系統(tǒng)2630的串行掃描路徑中的附加使能寄存器2632來(lái)控 制共享訪(fǎng)問(wèn)端口 2636對(duì)輸入之一的選擇。使能寄存器2632使用從使能寄存器2632至共 享訪(fǎng)問(wèn)端口 2636的控制接口 2637,控制經(jīng)由共享訪(fǎng)問(wèn)端口 2636和共享訪(fǎng)問(wèn)接口 2638對(duì)核 心2539的訪(fǎng)問(wèn)。因此,片上系統(tǒng)2630的串行掃描路徑包括TDI- >串行寄存器2631- > 使能寄存器2632- > TDO0因此,如圖26所示,從片上系統(tǒng)2630的串行掃描路徑,以串行方式來(lái)控制經(jīng)由并
33行寄存器2634對(duì)核心2639的訪(fǎng)問(wèn)。在該實(shí)施例中,片上系統(tǒng)2539宣告對(duì)分(dichotomy) (例如,通過(guò)將串行寄存器2631和并行寄存器2634標(biāo)記為“交替”)。在這樣的實(shí)施例中, 測(cè)試系統(tǒng)獲知,當(dāng)并行接口活動(dòng)時(shí),串行寄存器2631對(duì)核心2639沒(méi)有影響(即,效果上,它 們是“死存儲(chǔ)”)。該規(guī)則的關(guān)聯(lián)之處在于,許多寄存器可以共享相同的并行端口。圖27示出了片上系統(tǒng)的并行端口與核心之間的示例連接的高級(jí)框圖。如圖27所 示,串行寄存器和提供對(duì)片上系統(tǒng)的核心的并行訪(fǎng)問(wèn)的并行寄存器共享相同的觸發(fā)器,從 而最小化提供對(duì)片上系統(tǒng)的核心的并行訪(fǎng)問(wèn)所需的資源。具體地,連接2700利用使能寄存 器2732、多個(gè)數(shù)據(jù)寄存器2731i-27318(共同為,數(shù)據(jù)寄存器2731)、以及多個(gè)共享訪(fǎng)問(wèn)端口 2733r27338 (共同為,共享訪(fǎng)問(wèn)端口 2733)。如圖27所示,使能寄存器2732的數(shù)據(jù)輸入是TDI輸入,使能寄存器2732的數(shù)據(jù) 輸出是第一共享訪(fǎng)問(wèn)端口 273h的輸入之一,第一共享訪(fǎng)問(wèn)端口 2733i的數(shù)據(jù)輸出是第一數(shù) 據(jù)寄存器273^的數(shù)據(jù)輸入,第一數(shù)據(jù)寄存器273^的第一數(shù)據(jù)輸出是第二共享訪(fǎng)問(wèn)端口 27332的輸入之一,第二共享訪(fǎng)問(wèn)端口 27332的數(shù)據(jù)輸出是第二數(shù)據(jù)寄存器27312的數(shù)據(jù)輸 入,第二數(shù)據(jù)寄存器27312的第一數(shù)據(jù)輸出是第三共享訪(fǎng)問(wèn)端口 27333的輸入之一,第三共 享訪(fǎng)問(wèn)端口 27333的數(shù)據(jù)輸出是第三數(shù)據(jù)寄存器27313的數(shù)據(jù)輸入,依此類(lèi)推,直到第八數(shù) 據(jù)寄存器27318的第一數(shù)據(jù)輸出是TDO輸出為止。還如圖27所示,每個(gè)共享訪(fǎng)問(wèn)端口 2733包括第二數(shù)據(jù)輸入(還耦合至掃描路徑 中在前寄存器的數(shù)據(jù)輸出)。共享訪(fǎng)問(wèn)端口 27331i-27338的第二數(shù)據(jù)輸入分別耦合至來(lái)自 外部并行端口 2720的相應(yīng)數(shù)據(jù)輸入(這里表示為并行輸入連接)。因此,每個(gè)共享訪(fǎng)問(wèn)端 口 2733選擇來(lái)自其兩個(gè)數(shù)據(jù)輸入之一的數(shù)據(jù)(即,選擇來(lái)自串行掃描路徑中的在前寄存器 的數(shù)據(jù)輸入或來(lái)自外部并行端口 2720的并行輸入連接之一的數(shù)據(jù)輸入,該外部并行端口 2720連接至共享訪(fǎng)問(wèn)端口 2733)。如圖27所示,使能寄存器2732的輸出應(yīng)用于每個(gè)共享訪(fǎng)問(wèn)端口 2733,作為針對(duì)每 個(gè)共享訪(fǎng)問(wèn)端口 2733的輸入選擇信號(hào),從而由每個(gè)共享訪(fǎng)問(wèn)端口 2733控制數(shù)據(jù)選擇。如果使能寄存器2732的值指示,應(yīng)當(dāng)將串行數(shù)據(jù)(來(lái)自TAP端口 2710)提供給核 心2739,則從使能寄存器2732向每個(gè)共享訪(fǎng)問(wèn)端口 2733提供的輸入選擇信號(hào)指引每個(gè)共 享訪(fǎng)問(wèn)端口 2733來(lái)選擇來(lái)自?huà)呙杪窂街性谇凹拇嫫鞯妮斎?而不是來(lái)自并行輸入連接的 輸入,該并行輸入連接連接至來(lái)自外部并行端口 2720的共享訪(fǎng)問(wèn)端口)。在這種情況下,共享訪(fǎng)問(wèn)端口 2733i選擇來(lái)自使能寄存器2732的輸入(而不是來(lái) 自外部并行端口 2720的并行輸入連接的輸入),從而使得將使能寄存器2732的值讀入到第 一數(shù)據(jù)寄存器(并因此提供給核心2739)。類(lèi)似地,在這種情況下,共享訪(fǎng)問(wèn)端口 27332選擇來(lái)自第一數(shù)據(jù)寄存器2731i的輸入(而不是來(lái)自外部并行端口 2720的并行輸入 連接的輸入),從而使得將第一數(shù)據(jù)寄存器273^的值讀入到第二數(shù)據(jù)寄存器27312中(并 因此提供給核心2739)。換言之,盡管為了清楚起見(jiàn),省略了對(duì)剩余數(shù)據(jù)轉(zhuǎn)移的描述,但是其 他數(shù)據(jù)寄存器2731的類(lèi)似數(shù)據(jù)轉(zhuǎn)移使得能夠?qū)⒋袛?shù)據(jù)提供給核心2739。如果使能寄存器2732的值指示,應(yīng)當(dāng)將并行數(shù)據(jù)(來(lái)自外部并行端口 2720)提供 給核心2739,則從使能寄存器2732提供給每個(gè)共享訪(fǎng)問(wèn)端口 2733的輸入選擇信號(hào)指引每 個(gè)共享訪(fǎng)問(wèn)端口 2733來(lái)選擇來(lái)自并行輸入連接的輸入(而不是來(lái)自?huà)呙杪窂街性谇凹拇?器的輸入),該并行輸入連接連接至來(lái)自外部并行端口 2720的共享訪(fǎng)問(wèn)端口。
在這種情況下,共享訪(fǎng)問(wèn)端口 2733i選擇來(lái)自外部并行端口 2720的并行輸入連接 的輸入(而不是來(lái)自使能寄存器2732的輸入),該輸入連接至共享訪(fǎng)問(wèn)端口 27311;從而使 得將來(lái)自外部并行端口 2720的并行輸入連接的值讀入到第一數(shù)據(jù)寄存器2731i中(并因 此提供給核心2739)。類(lèi)似地,在這種情況下,共享訪(fǎng)問(wèn)端口 27332選擇來(lái)自外部并行端口 2720的并行輸入連接的輸入(而不是來(lái)自第一數(shù)據(jù)寄存器273^的輸入),該輸入連接至 共享訪(fǎng)問(wèn)端口 27332,從而使得將來(lái)自外部并行端口 2720的并行輸入連接的值讀入到第二 數(shù)據(jù)寄存器27312中(并因此提供給核心2739)。換言之,盡管為了清楚起見(jiàn),省略了對(duì)剩 余數(shù)據(jù)轉(zhuǎn)移的描述,但是其他數(shù)據(jù)寄存器2731的類(lèi)似數(shù)據(jù)轉(zhuǎn)移使得能夠?qū)⒉⑿袛?shù)據(jù)提供 給核心2739。此外,盡管連接2700的直接NSDL描述可能會(huì)十分復(fù)雜,但是應(yīng)注意,這種類(lèi)型的 連接在功能上等同于關(guān)于圖26示出和描述的連接2600。在連接2600和2700中,“選擇” 片的值決定是串行數(shù)據(jù)到達(dá)核心還是并行數(shù)據(jù)到達(dá)核心。連接2600與連接2700之間的唯 一不同在于預(yù)期值在連接2700中,共享寄存器,從而在并行訪(fǎng)問(wèn)的情況下,要預(yù)期的值是 并行值,而串行數(shù)據(jù)被蓋寫(xiě)。盡管這里主要關(guān)于向具有一個(gè)并行端口的片上系統(tǒng)提供并行訪(fǎng)問(wèn)進(jìn)行了示出和 描述(為了清楚起見(jiàn)),但是可以向具有多個(gè)并行端口的片上系統(tǒng)提供并行訪(fǎng)問(wèn)。類(lèi)似地, 盡管這里主要關(guān)于向具有一個(gè)并行片的片上系統(tǒng)提供并行訪(fǎng)問(wèn)進(jìn)行了示出和描述(為了 清楚起見(jiàn)),但是可以向具有多個(gè)并行片的片上系統(tǒng)提供并行訪(fǎng)問(wèn)。在這樣的實(shí)施例中,可以以任何方式來(lái)標(biāo)識(shí)多個(gè)并行端口。例如,可以使用有序編 號(hào)(例如,關(guān)于交叉器件所描述的)來(lái)標(biāo)識(shí)多個(gè)并行端口。例如,具有η個(gè)并行輸入和m個(gè)并 行輸出的片上系統(tǒng)具有以下端口 〃 parallel_in_<i>",i = 0,1,· · ·,n_l ; ” parallel, out_<k>",k = 0,1,...,m-1。此外,每個(gè)并行端口具有其自己的函數(shù),可以以任何方式 來(lái)標(biāo)識(shí)每一個(gè)函數(shù)(例如,通過(guò)使用附加在結(jié)尾處的相應(yīng)端口名稱(chēng),例如"get_parallel_ data_parallel_in_0“ 、 “ set_scan_synchro_parallel_out_3“ ·)。相反,對(duì)于多個(gè)并行片的命名不存在限制,只要并行片的相應(yīng)名稱(chēng)指示該片是并 行片(例如,名稱(chēng)可以以"parallel"開(kāi)始)。在一個(gè)實(shí)施例中,其中"sencLparallel data"和〃 get_parallel_data〃采用片名稱(chēng)作為參數(shù),可以將任何端口與任何并行寄存 器相連接。在另一實(shí)施例中,其中,‘‘send_parallel_data〃 和〃 get_parallel_data〃 不采用片名稱(chēng)作為參數(shù),片上系統(tǒng)可以確切地聲明每個(gè)端口是如何“連接至”一個(gè)或多個(gè)并 行片的。并行接口的NSDL描述包括掃描路徑及其相關(guān)函數(shù)的描述。NSDL描述指示與并行 接口連接的實(shí)際物理端口(并行管腳)。這可以由頂層文件中經(jīng)典BSDL/HSDL規(guī)則來(lái)處理 (例如,采用BSDL識(shí)別TAP信號(hào)的方式)。將并行通信協(xié)議的實(shí)現(xiàn)委托給并行接口驅(qū)動(dòng)器。 告知測(cè)試系統(tǒng)哪些并行管腳受到哪些并行接口驅(qū)動(dòng)器的控制。盡管這里主要關(guān)于針對(duì)并行端口的輸入數(shù)據(jù)流進(jìn)行示出和描述,但是針對(duì)并行端 口的輸出數(shù)據(jù)流是對(duì)稱(chēng)的。換言之,對(duì)于可以針對(duì)至片上系統(tǒng)的輸入數(shù)據(jù)流而實(shí)現(xiàn)的每個(gè) 輸入連接類(lèi)型(如關(guān)于圖24-圖27示出和描述的),可以為來(lái)自片上系統(tǒng)的輸出數(shù)據(jù)流實(shí) 現(xiàn)相應(yīng)的對(duì)稱(chēng)的輸出連接類(lèi)型。盡管這里主要關(guān)于支持并行訪(fǎng)問(wèn)接口的內(nèi)部并行端口與片上系統(tǒng)的并行端口之間的簡(jiǎn)單內(nèi)部連接的并行訪(fǎng)問(wèn)接口進(jìn)行示出和描述,但是并行訪(fǎng)問(wèn)接口可以支持并行訪(fǎng)問(wèn) 接口的內(nèi)部并行端口與片上系統(tǒng)的并行端口之間的更復(fù)雜的內(nèi)部連接。這樣,不管復(fù)雜性 如何,NSDL能夠描述任何測(cè)試訪(fǎng)問(wèn)機(jī)制(TAM)。在一個(gè)實(shí)施例中,可以使用一個(gè)或多個(gè)交叉器件來(lái)提供并行訪(fǎng)問(wèn)接口的內(nèi)部并行 端口與片上系統(tǒng)的并行端口之間的內(nèi)部連接。在一個(gè)這樣的實(shí)施例中,選取和取消選定函 數(shù)可以用于處理內(nèi)部連接,無(wú)論來(lái)自串行掃描路徑還是來(lái)自并行端口。在另一實(shí)施例中,可以使用扇入/扇出方案來(lái)提供并行訪(fǎng)問(wèn)接口的內(nèi)部并行端口 與片上系統(tǒng)的并行端口之間的內(nèi)部連接。在這樣的實(shí)施例中,并行端口的比特可以用于驅(qū) 動(dòng)多個(gè)片上系統(tǒng)器件(即,通過(guò)內(nèi)部并行端口在多個(gè)片上系統(tǒng)器件之間共享外部并行端口 的帶寬)。因此,盡管這里主要關(guān)于提供對(duì)一個(gè)片上系統(tǒng)的器件的并行訪(fǎng)問(wèn)的并行訪(fǎng)問(wèn)器件 進(jìn)行示出和描述,但是在其他實(shí)施例中,并行訪(fǎng)問(wèn)接口可以提供對(duì)多個(gè)片上系統(tǒng)器件的并 行訪(fǎng)問(wèn)。關(guān)于圖28示出和描述了這種并行訪(fǎng)問(wèn)接口的一般連接方案。圖28示出了并行訪(fǎng)問(wèn)接口的內(nèi)部連接方案的高級(jí)框圖。具體地,內(nèi)部連接方案 2800提供至三個(gè)片上系統(tǒng)2820廠(chǎng)28203(共同為片上系統(tǒng)2820)的并行訪(fǎng)問(wèn)接口 2810。并 行訪(fǎng)問(wèn)接口 2810包括內(nèi)部并行端口 2811、外部并行端口 2812、以及內(nèi)部接口 2813。外部 并行端口 2812和內(nèi)部并行端口 2811支持從測(cè)試系統(tǒng)至片上系統(tǒng)2820的η個(gè)輸入連接,并 且支持從片上系統(tǒng)2820至測(cè)試系統(tǒng)的m個(gè)輸出連接。如圖28所示,每個(gè)片上系統(tǒng)2820包括支持并行輸入連接和并行輸出連接的并行 端口。并行訪(fǎng)問(wèn)接口 2810的內(nèi)部端口支持(1)至每個(gè)片上系統(tǒng)2120的輸入數(shù)據(jù)流的扇 出,以及⑵來(lái)自每個(gè)片上系統(tǒng)2120的輸出數(shù)據(jù)流的扇入。外部并行端口 2812的η個(gè)輸 入連接扇出到至片上系統(tǒng)2820i的i個(gè)輸入連接,至片上系統(tǒng)28202的j個(gè)輸入連接,以及 至片上系統(tǒng)28203的1^個(gè)輸入連接(即,η = i+j+k)。外部并行端口 2812的m個(gè)輸出連接 扇入自來(lái)自于片上系統(tǒng)2820i的ρ個(gè)輸出連接,來(lái)自于片上系統(tǒng)28202的q個(gè)輸出連接,以 及來(lái)自于片上系統(tǒng)28203的r個(gè)輸出連接(即,m = p+q+r)。因此,使用NSDL描述語(yǔ)言,可以容易描述任何復(fù)雜度的片上系統(tǒng)器件。可以描述 片上系統(tǒng)器件的任何測(cè)試資源,包括組件(例如,IP、儀器、交叉器件等),組件之間的互連 等,及其各種組合。在NSDL中,片上系統(tǒng)的測(cè)試資源的描述是算法描述,其中,每個(gè)算法描 述包括以適于測(cè)試工具理解的格式而定義的一個(gè)或多個(gè)構(gòu)成規(guī)則。圖29示出了用于描述片上系統(tǒng)的測(cè)試資源的方法。盡管示出和描述了以串行方 式執(zhí)行,但是可以同時(shí)地或者以與關(guān)于圖29示出和描述的順序不同的順序來(lái)執(zhí)行圖29的 方法2900的步驟的至少一部分。方法2900開(kāi)始于步驟2902,并前進(jìn)至步驟2904。在步驟2904,產(chǎn)生片上系統(tǒng)的每個(gè)組件的算法描述。每個(gè)組件的算法描述描述了組件所支持的至少一個(gè)函數(shù)到針對(duì)該組件的至少一 個(gè)寄存器值的映射。每個(gè)組件的算法描述描述了組件的內(nèi)部掃描路徑。在一個(gè)實(shí)施例中,通過(guò)以下方式來(lái)產(chǎn)生片上系統(tǒng)的組件的算法描述標(biāo)識(shí)由組件 支持的至少一個(gè)函數(shù);產(chǎn)生組件的算法描述,其為至少一個(gè)函數(shù)中的每一個(gè),定義該函數(shù)至 針對(duì)組件的至少一個(gè)寄存器的至少一個(gè)寄存器值的映射;以及存儲(chǔ)組件的算法描述。在步驟2906,產(chǎn)生片上系統(tǒng)的組件之間的互連的算法描述。組件之間互連的算法描述指定片上系統(tǒng)的系統(tǒng)級(jí)拓?fù)?。在步驟2908,使用組件的算法描述和組件之間互連的算法描述來(lái)產(chǎn)生片上系統(tǒng)的 算法描述。片上系統(tǒng)的算法描述描述了片上系統(tǒng)的拓?fù)?,根?jù)該拓?fù)?,可以?gòu)建片上系統(tǒng)的 掃描路徑的描述。在步驟2910,存儲(chǔ)片上系統(tǒng)的算法描述??梢源鎯?chǔ)每個(gè)組件的各個(gè)單獨(dú)算法描述。 存儲(chǔ)組件之間互連的算法描述??梢砸匀魏畏绞酱鎯?chǔ)算法描述。在步驟2912,方法2900結(jié)
束ο算法描述適于測(cè)試工具理解,以用于測(cè)試片上系統(tǒng)。這樣,處理器可以接收算法描 述(例如,從存儲(chǔ)器、從另一系統(tǒng)、或者從這種描述的任何其他源),以執(zhí)行各種測(cè)試(例如, 組件級(jí)測(cè)試、系統(tǒng)級(jí)測(cè)試等,及其各種組合)。如這里所述,在一個(gè)實(shí)施例中,可以使用VHDL實(shí)現(xiàn)NSDL語(yǔ)言。在一個(gè)這樣的實(shí)施 例中,可以通過(guò)上下文巴克斯范式(BNF)語(yǔ)法來(lái)形式化針對(duì)NSDL的語(yǔ)法規(guī)則。例如,BNF容 易描述語(yǔ)法結(jié)構(gòu)的產(chǎn)生,如以下示例
ENTITY<identifier>IS <entity_header> <entity_declarative_part> [BEGIN<entity_statement_part>] END[ENTITY][<entity_simple_name>];在該示例中,符號(hào)'='指示,可以將左側(cè)元素派生至右側(cè)結(jié)構(gòu)中。右側(cè)可以 由更多派生詞素(以大寫(xiě)字符指示的不可再派生的原子元素)構(gòu)成。節(jié)點(diǎn)是派生點(diǎn),而葉 節(jié)點(diǎn)是不能再派生的節(jié)點(diǎn)(即,右側(cè)僅包含詞素)。方括號(hào)'['和‘Γ用于表達(dá)可選的 派生(它們用于定義遞歸規(guī)則)。符號(hào)' <'和' >'用于指示進(jìn)一步派生。與VHDL規(guī)則 一致,引號(hào)用于指示串。這種類(lèi)型的語(yǔ)法能夠產(chǎn)生在結(jié)構(gòu)上匹配語(yǔ)言的任何可能“短語(yǔ)”,并能夠用于驗(yàn)證 給定文本是否屬于該語(yǔ)言(即,其是否遵照規(guī)則)。這僅僅是結(jié)構(gòu)性描述,且不能夠傳遞與 其“含義”有關(guān)的任何信息,而是,必須添加屬性,以考慮到上下文信息Left_hand 個(gè)(H) J, (L) = right_hand_0 個(gè)(HO) J, (LO) [right_ hand_l (HI)丨(Ll)],其中:丨(L)指示從低級(jí)派生導(dǎo)出并傳輸至高級(jí)派生的信息;丨(H)指示從高級(jí)派生導(dǎo)出并傳輸至低級(jí)派生的信息;每個(gè)節(jié)點(diǎn)可以定義一組規(guī)則,以定義如何從HO. . . Hn開(kāi)始計(jì)算H,以及如何從L開(kāi) 始來(lái)獲得不同的L0... Ln ;以及每個(gè)級(jí)別能夠?yàn)槎x對(duì)于H、L、Hi以及Li的一組條件,以使短語(yǔ)在該語(yǔ)言中具有含義”。以下規(guī)則(編號(hào)[1]至[14])描述IP和儀器的聲明[l]<IP_declaration> (H, η) (P_info) (Ext) (Cross) (Par)::=
<IP_instrument_archi_body> (H, η) I (Ext) (P_info) 個(gè)(Sel一Cross)個(gè)(Pa:r_dec) END[IP][<device_simple_name>];
BEGIN
IP<identifier>IS
<device_header> (Ext) (Cross一decl) (Par)規(guī)則=Cross = Cross_decl U Sel_Cross如果Cross_decl /=0,檢查對(duì)于每個(gè)“有線(xiàn)”元件是否存在“選擇” / “取消選定”語(yǔ)句,以及對(duì)于每個(gè)“事務(wù)”元件是否至少存在“選擇”。NB Cross_decl =0 ο Sel_Cross 二0,否則錯(cuò)誤檢查是否已經(jīng)解決
了〃 architecture_body〃中的所有模塊間依賴(lài)性。如果Par/=0,檢查在(H,η)內(nèi)是否存在至少一個(gè)并行寄存器,并且在(Pjnfo) 內(nèi)是否存在相應(yīng)〃 get_parallel_data〃 /〃 send_parallel_data〃 的聲明。如果Par_dec/=0,檢查其與Par中信息(端口名稱(chēng)、并行寄存器、連接,扇入扇出 等)的一致性。NB :Par_decl =0 Par=0,否則錯(cuò)誤。[2] <instrument_declaration> 個(gè)(H, η)個(gè)(Ρ_ info)個(gè)(Ext)個(gè)(Cross)個(gè)(Par):: = INSTRUMENT<identifier>IS<device_ header) (Ext) (Cross一decl) (Par) (Cross一decl)BEGIN<IP_instrument_archi_body> 個(gè)(H,η) I (Ext)個(gè)(P_info)個(gè)(Sel_Cross)個(gè)(Par_dec)END [instrument] [device_simple_name];規(guī)貝1J :Cross = Cross_decl U Sel_Cross [Same as rule 1][3]<IP_instrument_archi_body> 個(gè)(P_info) I (Ext)個(gè)(Sel_Cross)個(gè)(Par_ dec)::=ARCHITECTURE<architecture_simple_name>OF<entity_name>ISarchitecture_declarative_partBEGIN<IP_instr_stat_part> 個(gè)(H, η)個(gè)(P_info) I (Ext)個(gè)(Sel_Cross)個(gè)(Par_ dec)
END[ARCHITECTURE][<architecture_simple_name>];[4] <IP_instr_stat_part> 個(gè)(HIn)個(gè)(P_info) J, (Ext)個(gè)(Sel_Cross)個(gè)(Par_ dec)::=<intemal_scan_path> 個(gè)(H, η)[<parallel_declarations> (Par—dec)]
<IP_instrument_statement_part> I (Ext)個(gè)(P_info)個(gè)(Sel_Cross)[5]<device_header> 個(gè)(Ext)個(gè)(Cross_decl)個(gè)(Par)::=GENERIC ([<crossroad_information> 個(gè)(Cross_decl)][;<parallel_information> (Par)][;<external_dependencies> 個(gè)(Ext)]);該規(guī)則實(shí)現(xiàn)與掃描路徑的鏈接的定義以及最終外部引用的聲明。NB:〈crossroad—information〉在規(guī)貝Ij [10]中導(dǎo)出。[6] <external_dependencies> 個(gè)(Ext)::=〈external一reference〉個(gè)(Nei_Ext) [ ;〈external—dependencies〉個(gè)(01d_Ext)]規(guī)貝丨J :Ext = New—Ext U Old—Ext[7]〈external—reference〉個(gè)(Ext):: = 〈string—identifier〉stringRule: (Ext) = string—identifier這些入口中的每一個(gè)定義針對(duì)外部元素的符號(hào)名稱(chēng)。該符號(hào)用于針對(duì)外部函數(shù)依 賴(lài)性來(lái)引用該元素。[8]IP_instrument_statement_part I (Ext)個(gè)(P_info)=<proc_func_list> I (Ext)個(gè)(P_use)個(gè)(Sel_Cross)[TEST_SET<proc_func_list> 丨(Ext)丨(P_test)END TEST_SET ;]該規(guī)則描述關(guān)于儀器使用的強(qiáng)制過(guò)程集合以及可選測(cè)試過(guò)程集合。P_Info = P_ Test UP_use。[9]<internal_scan_path> 個(gè)(H,η)=<component_instantiation_statement>[<internal_scan_path>]在〃 Partial Access (部分訪(fǎng)問(wèn))〃或〃 Full Access (全訪(fǎng)問(wèn))〃的情況下,掃 描路徑由其組件的直接實(shí)例化來(lái)描述(見(jiàn)針對(duì)(H,n)的上下文規(guī)則的規(guī)則[37]-[41])。注 意該規(guī)則實(shí)現(xiàn)儀器和IP嵌套。如果不存在該派生,則標(biāo)識(shí)"無(wú)訪(fǎng)問(wèn)"器件。[10]<crossroad_information> (Cross)=PRECEDENT: STRING: =〃 TDI 〃 ;FOLLOWING:STRING: =〃 TDO〃[〈tributaries〉個(gè)(Affls)][〈affluents〉個(gè)(Tribs)];規(guī)貝丨J =Cross = Affls U Tribs[11]〈tributaries〉個(gè)(Tribs)::=TRIBUTARY:STRING: =" deselected";<numbered_tributaries> (num_tribs);規(guī)則Tribs=" tributary"I Tribs = num_tribs[12]<numbered_tributaries> 個(gè)(Tribs)::=TRIBUTARY_<numeral>:STRING: =〃 deselected"
規(guī)貝U:Tribs=" tributary_<numeral>" U 01d_tribs [13]〈affluents〉個(gè)(Affls)::=
AFFLUENT:STRING: =" deselected";
<numbered_affluents> (num_affIs); 規(guī)則Affls=" affluent"
Affls = num_affIs [14]<numbered_affluents> 個(gè)(Affls)::=
AFFLUENT_<numeral>:STRING: =" deselected [;<numbered_affluents) (01d_Affls)]規(guī)則Affls = " affluent_<numeral>" U 01d_Affls 規(guī)則[1]-[14]的儀器和 IP 的定義允許對(duì)IP/儀器多次實(shí)例化(例如,像利用經(jīng)典VHDL組件所進(jìn)行的那樣)。這在規(guī) 則[15]中示出。從語(yǔ)法觀(guān)點(diǎn)來(lái)看,該實(shí)例化規(guī)則(規(guī)則[15])與經(jīng)典VHDL中的確切地相同。所有 新穎性都在上下文側(cè)(1)實(shí)例化將器件的拷貝創(chuàng)建到掃描路徑中。編譯器可以容易地從編譯庫(kù)獲取其 信息,并使用它們來(lái)完成系統(tǒng)掃描路徑。(2)通用映射負(fù)責(zé)指定精確掃描路徑插入點(diǎn)(“precedent"、“ following", 支流和分支)。(3)其他通用映射將外部元素的符號(hào)名稱(chēng)分解成實(shí)際名稱(chēng)(即相應(yīng)實(shí)例的標(biāo)簽)。 測(cè)試工具還必須檢查所引用的過(guò)程實(shí)際存在于實(shí)例化的元素中。以下規(guī)則(編號(hào)[16]至[33])描述了示例過(guò)程[16]<proc_func_list> J, (Ext) (P_info)=[<proc_func_proto_list>]<complete_proc_func_list> I (Ext)個(gè)(P一info)[17]<proc_func_proto_list>::=<proc_func_prototype>[ ; <proc_func_proto_li st>][18]<proc_func_prototype>:: = <procedure_prototype><function_prototype>[19]<procedure_prototype>::=procedure<procedure_name>(<formal_parameter_list>)[DEPENDENCIES(<dep_list>);]LENGTH(<length_descriptor>);BUSY_M0DE(<mode_identifier>);[CONNECTION<connection_type> ;]
component_instantiation_statement
instantiation label: instantiated unit 「Reneric map aspect] 「port map aspect];
規(guī)則過(guò)程原型僅僅是語(yǔ)法手段,以使得代碼對(duì)于人類(lèi)用戶(hù)而言更加可讀。它們不 攜帶上下文信息。NB 僅針對(duì)選擇過(guò)程,允許“連接”派生。[20]<function_prototype>:=FUNCT10N<prο c e dure_name >(<formal_parameter一list [DEPENDENCIES(<d印一list ;]LENGTH(<length_descriptor>);BUSY_M0DE(<mode_identifier>);[<optional_attributes>]RETURN<type> ;規(guī)則過(guò)程原型就是僅僅是語(yǔ)法手段,以使得代碼對(duì)于人類(lèi)用戶(hù)而言更加可讀。它 們不攜帶上下文信息。NB 僅針對(duì)選擇過(guò)程,允許“連接”派生。[21]<formal_parameter_list>規(guī)則參數(shù)遵照正常VHDL參數(shù)的語(yǔ)法。通過(guò)顯式命令來(lái)進(jìn)行對(duì)掃描路徑片的引 用O
<complete_proc_func_list>I (Ext)個(gè)(P一info)個(gè)(Cross)::= 〈complete一procedure〉 I (Ext)個(gè)(new一P)個(gè)(Cross一Info) 〈complete一function〉 i (Ext)個(gè)(new一P) 規(guī)則P_info = 01d_P U New_P Cross = 01d_Cross U Cross_info〈complete一procedure〉I (Ext)個(gè)(Proc_info)個(gè)(Cross一info)::= PR0CEDURE<prοcedure_name 個(gè)(Sel_info) >
(<formal_parameter_list> (P)) [DEPENDENCIES(<dep_list>)丨(Ext)丨(D);] LENGTH(<length_descriptor> 丨(L));
(M); (C_type);]
BUSY_M0DE(<mode_identifier>) [C0NNECTI0N<connectiorn_type> IS
begin
<procedure_body> END<procedure_name> ; 規(guī)則
P=參數(shù)信息(標(biāo)準(zhǔn)VHDL)。一個(gè)參數(shù)至少應(yīng)當(dāng)指代片或靜態(tài)比特流 L=過(guò)程長(zhǎng)度信息 D=依賴(lài)性信息 M=忙模式信息
<procedure_name> 是字面標(biāo)識(shí)符<procedure_body> 類(lèi)似正常 VHDL 中的派生Proc_info = PULUDUMCross_info =如果Sel_info/=0 (SeL[l]-SeL[6]中的命名規(guī)則)則 Cross_info = Sel_info U C_typeNB :Sel—info=0<">c_type=0,否則出錯(cuò)[24]<complete_function> I (Ext)個(gè)(Proc_info)::=FUNCTION<function_name> formal_parameter_list> (P))[DEPENDENCIES (<dep_list>)丨(Ext)丨(D);]LENGTH(<length_descriptor> 個(gè)(L));BUSY_M0DE(<mode_identifier>)丨(M);RETURN<type>ISBEGIN<function_b°dy>END<function_name> ;規(guī)則P =參數(shù)信息(標(biāo)準(zhǔn)VHDL)。一個(gè)參數(shù)至少應(yīng)當(dāng)指代片或靜態(tài)比特流。L=過(guò)程長(zhǎng)度信息D =依賴(lài)性信息M =忙模式信息<function_name> 是字面標(biāo)識(shí)符<function_body> 類(lèi)似正常 VHDL 中的派生Proc_info = PULUDUM[25]<dep_list> I (Ext) (D_new)=<dependence> I (Ext) (D)[ ; dep_list I (Ext) (D_old)]規(guī)則D_new = D_old U D 或 D_new = D[26]<dependence> I (Ext) (D):: = <string_identifier> (P)<string_identifier> 個(gè)(E) · <string一identifier〉個(gè)(P)規(guī)則P =依賴(lài)過(guò)程的名稱(chēng)E =在檢查E e Ext中定義外部器件P的名稱(chēng),否則錯(cuò)誤D = PUE[27]<mode_identifier> 丨(M) = HOLD|D0NT_CARE規(guī)則M=〃 hold〃或〃 dont_care"[28]<length_descriptor> 個(gè)(L) = <length_exp> 個(gè)(T)[<end_cond> 個(gè)(C)]規(guī)則L= T U C[29]<length_exp> (T) = <time_exp> (T)<time_exp> 個(gè)(L) ,<time_exp> 個(gè)(A), <time_exp> 個(gè)(U)規(guī)則T= T 或 LUAUU
L=函數(shù)長(zhǎng)度的下限
A =平均函數(shù)長(zhǎng)度U=函數(shù)長(zhǎng)度的上限[30]<time_exp> 個(gè)(T):: = <numeral><time_type>|<numeral>規(guī)則T包含絕對(duì)時(shí)間或時(shí)鐘計(jì)數(shù)(如果不指定時(shí)間單位)[31]<end_cond> 個(gè)(C):: = <boolean_expression>規(guī)則布爾表達(dá)指示過(guò)程的結(jié)束條件。其應(yīng)當(dāng)使用來(lái)自由顯式命名標(biāo)識(shí)的片的信號(hào)。[32]<connection_type> = WIRED|TRANSACTION[33]<optional_attributes>=規(guī)則有意地將該派生保留為開(kāi)放的。通過(guò)定義可選的參數(shù),任何兩個(gè)操作員能夠交換他們所偏好的格式的信息,而不是在標(biāo)準(zhǔn)化時(shí)間選 擇的任意一種。例如,這能夠用于給出用于功率管理的開(kāi)關(guān)活動(dòng)的估計(jì),或者直接給出焦耳 /瓦。測(cè)試工具忽略其未實(shí)現(xiàn)的派生,最后產(chǎn)生警告。如這里所述,選擇過(guò)程由它們的名稱(chēng)標(biāo)識(shí)。以下規(guī)則(編號(hào)Sel [1]至Sel [6])說(shuō) 明了對(duì)使用類(lèi)似BNF語(yǔ)法的選擇過(guò)程的命名的控制。這里關(guān)于圖8、圖9示出和描述了示例 交叉器件,并且圖10示出了這些規(guī)則的示例應(yīng)用。sel[1]<procedure_name> 個(gè)(Sel_info)=<radix>[<extentions> 個(gè)(Affls)個(gè)(Tribs)]規(guī)則:Sel_info= (Affls) U (Tribs)sel [2]<radix> = SELECT|DESELECTsel [3]〈extensions〉=〈affluents 個(gè)(Affls) > <tributariest 個(gè)(Tribs) >sel [4]<affIuents (Affls)>: = AFFLUENT<numbered_affIuents (Nmb_Affls)>
0規(guī)則如果(affluent)Affls=〃 All";如果(numbered_affluents)Affls = Nmb_Affls如果(0) AfflS= 0;說(shuō)明該規(guī)則檢測(cè)函數(shù)命令的支流,函數(shù)進(jìn)行命令??梢詾闊o(wú)(即,規(guī)則以空集結(jié) 束)、所有支流(非指定)、或僅僅為子集(一個(gè)或多個(gè)affluenthmb ;sel[5]<numbered_affIuents 個(gè)(New_Affls) > =AFFLUENT_<nmb>[; <numbered_affluents 個(gè)(01d_Affls) > ]規(guī)則<nmb>可以是任何自然數(shù)New_Affls = 01d_Affls U afflunent_<nmb> ;sel[6]<tributariess (Tribs) > = TRIBUTARY<numbered_tributaries (Nmb_Tribs) >
規(guī)則如果(tributary)Tribs=" All";如果(numbered_tributaries) Tribs = Nmb_Tribs如果(0) Tribs=0;說(shuō)明該規(guī)則檢測(cè)函數(shù)命令的分支??梢詾闊o(wú)(即,規(guī)則以空集結(jié)束)、所有分支 (非指定)、或僅僅為子集(一個(gè)或多個(gè)tributary_<nmb>);對(duì)于自動(dòng)測(cè)試產(chǎn)生工具所要使用的選擇過(guò)程,還需要標(biāo)準(zhǔn)化的自變量,使得自動(dòng) 測(cè)試產(chǎn)生工具知道如何處理選擇過(guò)程。遵照實(shí)際選擇算法,存在兩種引用派生的方式(1) 通過(guò)顯示命名,即,使用“串”或等同類(lèi)型;(2)通過(guò)對(duì)派生的有序編號(hào),即,使用適宜大小的 std—logic—vector。自變量隨著過(guò)程控制的派生而改變(從選擇規(guī)則Sel [1]-Sel [6]看出)。以下原 型與最一般的情況有關(guān)(NB 即使該示例為“選擇”,相同規(guī)則對(duì)于“取消選定”當(dāng)然也是有 效的)1)select(tributary—nmbin std_logic_vector,affluent—nmb:in std_logic_vector)2)select (tributary—name:in string,affluent—name: in string)自動(dòng)測(cè)試產(chǎn)生工具只須填入相應(yīng)的名稱(chēng)/編號(hào)。在更精確的選擇函數(shù)的情況下, 僅需要使用一些自變量(例如,圖9的分級(jí)開(kāi)關(guān)器件的取消選定函數(shù)),如果名稱(chēng)本身已經(jīng) 唯一標(biāo)識(shí)了目標(biāo)(例如,圖8的SIB),則最終為空。以下規(guī)則(規(guī)則[34]至[41])基于VHDL 93,并與VHDL 93兼容,但是明顯更簡(jiǎn) 單。已經(jīng)移除與NSDL不直接相關(guān)的所有派生。應(yīng)注意規(guī)則[34]至[39]是經(jīng)典VHDL語(yǔ)法 規(guī)則,這里所示的僅用于描述新的上下文規(guī)則。[34]library_unit:=primary_unitIsecondary_unit[35]primary—unit 個(gè)(H,η)個(gè)(P_info)個(gè)(Cross)個(gè)(Par)::=entity_declaration 個(gè)(H, η)I configuration—declarationpackage_declarationIP_declaration (H, η) (P_info) (Ext) (Cross) (Par)lnstrument_ddeclaration 個(gè) (H, η) 個(gè) (Ρ_ info)丨(Ext)丨(Cross)丨(Par)注意這是NSDL與VHDL集成的規(guī)則,允許IP和儀器定義為頂層實(shí)體;這也是如下 所在的點(diǎn)測(cè)試工具完成分級(jí)分析,將分級(jí)分析的信息存儲(chǔ)在(H,n)、(P_info)、(Cross)以 及(Par)中。規(guī)則Ext = 0,否則出錯(cuò)(其是頂層模塊)[36] secondary—unit =
architecture—body
I package—body[37]entity—declaration 個(gè)(H,η)::=ENTITY<identifier>ISentity—headerent ity_dec larat ive—part[BEGINarchitecture—body (H,η)]END [entity][entity_simple—name];規(guī)則該規(guī)則描述由編譯器在實(shí)例化時(shí)使用的所定義實(shí)體的掃描路徑內(nèi)部。該規(guī) 則能夠用于描述非P1687兼容的實(shí)體,該實(shí)體具有掃描路徑,但不具有函數(shù)/過(guò)程集合。注 意,實(shí)體保持為與在經(jīng)典VHDL中類(lèi)似,從而他們不允許外部依賴(lài)性。[38]architecture—body 個(gè)(H,η)=ARCHITECTURE<architecture_simple_name>OF entity_name ISarchitecture_declarative_partBEGINarchitecture_statement_part 個(gè)(H, η)個(gè)(P, F)END[architecture][<architecture_simple_name>];規(guī)則檢查(P,F(xiàn))所定義的掃描鏈的完整性(以TDI開(kāi)始,以TDO結(jié)束,沒(méi)有漏洞、 線(xiàn)性而非分級(jí)等)。[39]architecture_statement_part 個(gè)(H,η)個(gè)(P,F(xiàn))=[component一instantiation一statement 個(gè)(HijIii)個(gè)(P, FOi]規(guī)則H = U Hi+ (H_in,H_out) j(P, F) =U (P,F(xiàn))i,η = Σ[40]<scan_path> (SP_info)=<component_instantiation_statement> 個(gè)(C_info)[<scan_path> 個(gè)(S_old)]規(guī)則也可以將該規(guī)則解釋為,在并發(fā)語(yǔ)句上對(duì)VHDL規(guī)則的上下文檢查,這將規(guī) 則的開(kāi)發(fā)限制到掃描鏈相關(guān)的單元實(shí)例的實(shí)例。SP_info = S_old U C_infor使用C_info內(nèi)的P和F來(lái)檢查掃描路徑完整性。[41]component_instantiation_statement 個(gè)(C_info)=instantiation_label instantiated_unit (H, η) (P, F[, H_in, H_out])[generic_map_aspect][port_map_aspect];規(guī)則n(單元數(shù) 目),H(分級(jí)信息),P(在前),F(xiàn)在后),從數(shù)據(jù)庫(kù)中 的"instatiated_unit〃描述中獲取
H_in, H_out,由控制單元引入的分級(jí)掃描路徑C_info = (H, η) U (P,F(xiàn)[,H_in,H_out])以下規(guī)則(編號(hào)[42]至[57])包括用于并行訪(fǎng)問(wèn)的示例正式規(guī)則[42]<p£ir£illel_inform£ition> 個(gè)(Par):: =[<parallel_inputs> (par—in)]
[<parallel_outputs> 個(gè)(par_out)];規(guī)則Par = par_in U par_out[43]<parallel_declarations> (Par—dec)::=[<parallel_connection> 個(gè)(par_connection)][<alternates> 個(gè)(alter—info)][<fanning> (fanning_info)]規(guī)貝1J :Par_dec = par_connection · fanning_info · alter_info[44]<paralle_inputs> (par—in)::=<single_parallel_input> 個(gè)(idf)<numbered_par_inputs> (par_ins);規(guī)則par_in = idfI par_in = par_ins[45]<single_parallel_input> (idf):: =PARALLEL_IN:STRING: =〃 deselected";規(guī)則idf="parallel_in"[46]<numbered_par_inputs> (par_in)::=<numbered_par_input> (idf)[;<numbered_parjnputs> (par_ins)]規(guī)則par_in = idf U par_ins[47]<numbered_par_input> (idf)::=PARALLEL_IN_<numeral>:STRING: =〃 deselected"規(guī)則idf= 〃 parallel_in_<numeral>〃[48]<parallel_outputs> (par—out)::=<single_parallel_output> 個(gè)(idf)I<numbered_par_outputs> (par_outs);規(guī)則par_out = idfI par—out = par—outs[49]<single_parallel_output> 個(gè)(idf)::=PARALLEL_0UT:STRING: =〃 deselected";規(guī)則idf=〃 parallel_out〃[50]<numbered_par_outputs> (par_outs)::=<numbered_par_output> (idf)[;<numbered_par_outputs> (old_par_outs)]
規(guī)則par_outs = idf U old_par_outs
[51]<numbered_par_output> 個(gè)(idf)::=PARALLEL_OUT_<numeral>:STRING: =〃 deselected"規(guī)貝U:idf=〃 paral 1 el_out_<numeral>"[52]<fanning> (fanning_info)::=<port_name> 個(gè)(idf) PAN<proveriMice> 個(gè)(provenance一info);規(guī)貝1J :fanning_info = idf U provenance_info[53]<port_name>(idf):: = <single_parallel_output> 個(gè)(idf)<numbered_par_outputs> (idf)|<single一parallel—input〉個(gè)(idf)<numbered_par_inputs> (idf)[54]<provenance> 個(gè)(provenance_info)::=<port_name> 個(gè)(idf)[&<provenance> 個(gè)(old_prov)]規(guī)則:provenance_info = old_prov U idfNB: 〃標(biāo)識(shí)符〃該規(guī)則允許扇入和扇出的描述(關(guān)于圖28所示出和描述的),而不具有對(duì)用于該 構(gòu)成的并行端口的任何約束。使用全部端口,遵照VHDL信號(hào)的拼接規(guī)則(‘&'符號(hào))進(jìn) 行構(gòu)成。[55]<alternates>(alter_info)=<serial_reg> 丨(idf) IS ALTERNATE 0F<alter_regs> 丨(idf_list);規(guī)則 alter_info = idf U idf_list[56]<register_list> (idf_list)=<parallel_reg> 個(gè)(idf) [,<register_list> 個(gè)(old_idf_list)];規(guī)貝丨J:idf_list = idf U old_idf_list‘‘ parallel_reg〃 是經(jīng)典 VHDL 標(biāo)識(shí)符。[57]<parallel_connection> 個(gè)(par_connection)=<port_name> (idf)C0NNECTS<register_list> (idf_list);規(guī)則par_connection = idf U idf_list如這里所述,以類(lèi)似于交叉器件的方式,并行接口使用一些命名規(guī)則來(lái)標(biāo)識(shí)關(guān)鍵 資源。需要命名的元素包括并行片可以由并行連接訪(fǎng)問(wèn)的片,其名稱(chēng)以“parallel”開(kāi)始。遵照連接方案,這 些片完全獨(dú)立于串行掃描路徑或串行掃描路徑的一部分。并行函數(shù)通過(guò)兩個(gè)特定函數(shù)‘‘get_parallel_data〃和〃send_parallel_ data",來(lái)獲得對(duì)并行資源的訪(fǎng)問(wèn)。如這里所述,對(duì)于并行接口存在三種可能的同步模式與掃描鏈同步、突發(fā)、以及 異步。在一個(gè)實(shí)施例中,通過(guò)特定函數(shù)在這些模式之間切換,該特定函數(shù)正如交叉選擇函數(shù) 一樣,在需要時(shí)指定必須如何改變比特流。這些函數(shù)包括function set—scan—synchro return boolean ;function set—burst(length:in burst—length—type)return boolean ;
function set_asynchro return boolean ;function disable—port return boolean ; 測(cè)試工具通過(guò)跟蹤對(duì)這些函數(shù)的調(diào)用,能夠容易獲知哪個(gè)模式是活動(dòng)的。器件僅 聲明針對(duì)其實(shí)際實(shí)現(xiàn)的模式的函數(shù)。必須在并行接口內(nèi)部將類(lèi)型"bUrSt_length_type"定義為整數(shù)子類(lèi)型,使得開(kāi) 發(fā)人員能夠指出允許用于突發(fā)的值的范圍。示例包括“subtype burst_length_type is 3到10的整數(shù)范圍〃,“typeburSt_length_type是(6,8,10) 〃等。該解決方案意味著 每個(gè)并行接口聲明其自己的"bUrSt_length_type",這僅在局部是有效的,從而不會(huì)干涉 最終的其他接口。在并行接口具有多于一個(gè)端口的實(shí)施例中,函數(shù)所引用的端口的名稱(chēng)被附加至函 ■^l^oT^i^J^ll :" set_scan_synchro_parallel_out_0 “ , “ disable_port_parallel_ in"等。上述BNF規(guī)則僅組成了可以用于實(shí)現(xiàn)NSDL的規(guī)則的示例。本發(fā)明并不意在受限 于這樣的規(guī)則。圖30示出了適合于執(zhí)行這里描述的函數(shù)的通用計(jì)算機(jī)的高級(jí)框圖。如圖30所示, 系統(tǒng)3000包括處理器元件3002 (例如,CPU)、存儲(chǔ)器3004 (例如,隨機(jī)存取存儲(chǔ)器(RAM) 和/或只讀存儲(chǔ)器(ROM))、測(cè)試模塊3005、以及各種輸入/輸出設(shè)備3006 (例如,存儲(chǔ)設(shè)備, 包括但不限于磁帶驅(qū)動(dòng)、軟盤(pán)驅(qū)動(dòng)、硬盤(pán)驅(qū)動(dòng)或光盤(pán)驅(qū)動(dòng)、接收器、發(fā)送器、揚(yáng)聲器、顯示器、 輸出端口以及用戶(hù)輸入設(shè)備(例如,鍵盤(pán)、鍵區(qū)、鼠標(biāo)等))。應(yīng)注意,本發(fā)明可以以軟件和/或軟件和硬件的組合來(lái)實(shí)現(xiàn),例如,使用專(zhuān)用集成 電路(ASIC)、通用計(jì)算機(jī)或任何其他硬件等同物。在一個(gè)實(shí)施例中,能夠?qū)⒈景l(fā)明測(cè)試過(guò) 程3005加載到存儲(chǔ)器3004中,并由處理器3002執(zhí)行,以實(shí)現(xiàn)如上所述的功能。這樣,能夠 將本發(fā)明的測(cè)試過(guò)程3005 (包括關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu))存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)或載體上,例如 RAM存儲(chǔ)器、磁或光驅(qū)動(dòng)或磁盤(pán)等。盡管這里主要關(guān)于可以使用NSDL描述和測(cè)試的片上系統(tǒng)器件的特定實(shí)現(xiàn)方式進(jìn) 行了示出和描述,但是可以使用NSDL描述和測(cè)試各種其他片上系統(tǒng)器件。盡管這里主要示 出和描述了關(guān)于使用NSDL來(lái)描述和測(cè)試片上系統(tǒng),但是可以使用NSDL描述和測(cè)試各種其 他電子電路。本發(fā)明并不意在僅限于描述和測(cè)試這里示出和描述的特定電子電路。盡管這里主要關(guān)于可以用于使用NSDL來(lái)描述和測(cè)試片上系統(tǒng)的測(cè)試系統(tǒng)的特定 實(shí)現(xiàn)方式進(jìn)行了示出和描述,但是測(cè)試系統(tǒng)的各種其他實(shí)現(xiàn)方式可以用于使用NSDL來(lái)描 述和測(cè)試片上系統(tǒng)。本發(fā)明并不意在僅限于這里示出和描述的測(cè)試系統(tǒng)的特定實(shí)現(xiàn)方式。這里作為軟件方法討論的一些步驟可以在硬件內(nèi)實(shí)現(xiàn),例如,作為與處理器協(xié)作 以執(zhí)行各種方法步驟的電路。本發(fā)明的一部分可以實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品,其中,當(dāng)由計(jì)算 機(jī)處理時(shí),計(jì)算機(jī)指令適配計(jì)算機(jī)的操作,使得能夠調(diào)用或以其他方式提供本發(fā)明的方法 和/或技術(shù)??梢詫⒂糜谡{(diào)用本發(fā)明的方法的指令存儲(chǔ)在固定或可拆卸的介質(zhì)中、經(jīng)由廣 播的數(shù)據(jù)流或其他信號(hào)承載介質(zhì)進(jìn)行傳輸、和/或存儲(chǔ)在根據(jù)指令進(jìn)行操作的計(jì)算設(shè)備內(nèi) 的存儲(chǔ)器中。盡管這里已經(jīng)詳細(xì)示出并描述了結(jié)合本發(fā)明的教導(dǎo)的各種實(shí)施例,但是本領(lǐng)域技 術(shù)人員能夠容易設(shè)想同樣結(jié)合這些教導(dǎo)的其他改變的實(shí)施例。
權(quán)利要求
一種使用從測(cè)試系統(tǒng)到片上系統(tǒng)的并行訪(fǎng)問(wèn)來(lái)測(cè)試片上系統(tǒng)的至少一部分的方法,所述片上系統(tǒng)包括多個(gè)組件,所述方法包括接收對(duì)串行測(cè)試訪(fǎng)問(wèn)接口的描述,所述串行測(cè)試訪(fǎng)問(wèn)接口用于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流,其中,所述串行測(cè)試訪(fǎng)問(wèn)接口使用片上系統(tǒng)的串行掃描路徑來(lái)提供對(duì)組件的訪(fǎng)問(wèn);以及接收對(duì)并行測(cè)試訪(fǎng)問(wèn)接口的描述,所述并行測(cè)試訪(fǎng)問(wèn)接口用于在測(cè)試系統(tǒng)與組件之間耦合測(cè)試比特流,其中,所述并行測(cè)試訪(fǎng)問(wèn)接口提供對(duì)組件的訪(fǎng)問(wèn),而不使用片上系統(tǒng)的串行掃描路徑;以及存儲(chǔ)對(duì)串行測(cè)試訪(fǎng)問(wèn)接口的描述以及對(duì)并行測(cè)試訪(fǎng)問(wèn)接口的描述。
2.根據(jù)權(quán)利要求1所述的方法,其中,串行測(cè)試訪(fǎng)問(wèn)接口包括串行測(cè)試訪(fǎng)問(wèn)端口以及 至少一個(gè)串行寄存器。
3.根據(jù)權(quán)利要求1所述的方法,其中,并行測(cè)試訪(fǎng)問(wèn)接口包括并行測(cè)試訪(fǎng)問(wèn)端口以及 至少一個(gè)并行寄存器。
4.根據(jù)權(quán)利要求1所述的方法,其中,從并行接口對(duì)組件的訪(fǎng)問(wèn)與片上系統(tǒng)的串行掃 描路徑無(wú)關(guān)。
5.根據(jù)權(quán)利要求1所述的方法,其中,從并行接口對(duì)組件的訪(fǎng)問(wèn)受到片上系統(tǒng)的串行 掃描路徑的至少一個(gè)值的控制。
6.根據(jù)權(quán)利要求1所述的方法,其中,串行測(cè)試訪(fǎng)問(wèn)接口包括至少一個(gè)串行寄存器,并 行測(cè)試訪(fǎng)問(wèn)接口包括至少一個(gè)并行寄存器,其中,至少一個(gè)串行寄存器和至少一個(gè)并行寄 存器經(jīng)由公共訪(fǎng)問(wèn)端口來(lái)訪(fǎng)問(wèn)片上系統(tǒng)的組件。
7.根據(jù)權(quán)利要求6所述的方法,其中,公共訪(fǎng)問(wèn)端口受到片上系統(tǒng)的串行掃描路徑的 至少一個(gè)值的控制。
8.根據(jù)權(quán)利要求6所述的方法,其中,公共訪(fǎng)問(wèn)端口適于響應(yīng)于控制信號(hào),選擇來(lái)自 所述至少一個(gè)串行寄存器和所述至少一個(gè)并行寄存器之一的值。
9.一種使用從測(cè)試系統(tǒng)到片上系統(tǒng)的并行訪(fǎng)問(wèn)來(lái)測(cè)試片上系統(tǒng)的至少一部分的方法, 所述方法包括接收對(duì)并行接口模塊的描述,所述并行接口模塊適于將測(cè)試系統(tǒng)耦合至片上系統(tǒng)的核 心模塊,其中,并行接口包括適于經(jīng)由片上系統(tǒng)的掃描路徑來(lái)訪(fǎng)問(wèn)核心模塊的至少一個(gè)串 行寄存器,以及適于訪(fǎng)問(wèn)核心模塊而不使用片上系統(tǒng)的掃描路徑的至少一個(gè)并行寄存器; 以及存儲(chǔ)對(duì)并行接口模塊的描述。
10.一種使用從測(cè)試系統(tǒng)到片上系統(tǒng)的并行訪(fǎng)問(wèn)來(lái)測(cè)試片上系統(tǒng)的至少一部分的方 法,所述片上系統(tǒng)包括多個(gè)組件,所述方法包括接收對(duì)串行測(cè)試訪(fǎng)問(wèn)端口的描述,所述串行測(cè)試訪(fǎng)問(wèn)端口適于在測(cè)試系統(tǒng)與組件之間 耦合測(cè)試比特流;接收對(duì)并行測(cè)試訪(fǎng)問(wèn)端口的描述,所述并行測(cè)試訪(fǎng)問(wèn)端口適于在測(cè)試系統(tǒng)與組件之間 耦合測(cè)試比特流;接收對(duì)接口端口的描述,所述接口端口適于將串行測(cè)試訪(fǎng)問(wèn)端口和并行測(cè)試訪(fǎng)問(wèn)端口 耦合至片上系統(tǒng)的至少一部分組件;以及存儲(chǔ)所述描述,以在測(cè)試片上系統(tǒng)時(shí)使用。
全文摘要
本發(fā)明提供了一種用于片級(jí)JTAG測(cè)試的新硬件描述語(yǔ)言。這種新硬件描述語(yǔ)言被稱(chēng)作新BSDL(NSDL),使得能夠描述片上系統(tǒng)的測(cè)試資源,從而使得能夠以便于片上系統(tǒng)測(cè)試的方式來(lái)描述片上系統(tǒng)。本發(fā)明提供了一種自下至上的方法來(lái)描述片上系統(tǒng)。本發(fā)明支持片上系統(tǒng)的每個(gè)組件的算法描述,并且支持片上系統(tǒng)的組件之間的互連的算法描述,從而能夠產(chǎn)生整個(gè)片上系統(tǒng)或部分片上系統(tǒng)的算法描述。本發(fā)明支持對(duì)一個(gè)或多個(gè)片上系統(tǒng)器件的并行訪(fǎng)問(wèn),包括用于描述和使用并行訪(fǎng)問(wèn)進(jìn)行測(cè)試的方法。
文檔編號(hào)G01R31/3183GK101884032SQ200880118846
公開(kāi)日2010年11月10日 申請(qǐng)日期2008年11月24日 優(yōu)先權(quán)日2007年12月4日
發(fā)明者塔潘·喬蒂·查克拉伯蒂, 姜辰煥, 布拉德?!ぜ鳌し短乇R勒, 米歇爾·波多蘭, 蘇勒什·戈雅爾 申請(qǐng)人:阿爾卡特朗訊美國(guó)公司