用于 ip 模塊的電路測試的基于功能結(jié)構(gòu)的測試包裝器的制造方法
【專利摘要】測試包裝器和相關(guān)聯(lián)的測試訪問機制(TAM)體系結(jié)構(gòu)用于促進對集成在片上系統(tǒng)(SoC)的IP模塊的測試。TAM體系結(jié)構(gòu)包括集成在靠近IP模塊的SoC上的測試控制器和一個或多個測試包裝器。與來自外部測試器的輸入相對應(yīng)的測試數(shù)據(jù)和命令由測試控制器進行封裝,并且經(jīng)由互連結(jié)構(gòu)被發(fā)送到一個或多個測試包裝器。這些測試包裝器與一個或多個IP測試端口進行接口以向IP模塊提供測試數(shù)據(jù)、控制和/或激勵信號來促進對這些IP模塊的電路級測試。經(jīng)由該結(jié)構(gòu)將這些電路級測試的測試結(jié)果返回到測試控制器。測試包裝器可以被配置為直通互連信號,從而使得經(jīng)由測試封裝和經(jīng)由結(jié)構(gòu)在該測試控制器和IP模塊之間傳送的測試結(jié)果能夠促進對IP模塊的功能測試。測試包裝器還可以被配置為對包括測試分區(qū)的多個IP模塊進行測試。
【專利說明】用于IP模塊的電路測試的基于功能結(jié)構(gòu)的測試包裝器
【技術(shù)領(lǐng)域】
[0001]概括地說,本發(fā)明的領(lǐng)域涉及計算機系統(tǒng),并且,更具體地說,涉及(但非排他性地)對片上系統(tǒng)(SoC)設(shè)計進行測試。
【背景技術(shù)】
[0002]計算機體系結(jié)構(gòu)正從接口印刷電路板上的分立部件或者通過使用其它封裝配置向?qū)⒍鄠€部件集成到單個集成芯片上(其通常被稱為片上系統(tǒng)
[0003](SoC)體系結(jié)構(gòu))發(fā)展。SoC提供了大量優(yōu)點,包括:更密集的封裝、功能部件之間更高速的通信、以及更低溫度操作。SoC設(shè)計還提供了標準化、可擴展性、模塊化以及可重用性。
[0004]盡管Soc體系結(jié)構(gòu)是未來的潮流,但當與使用分立部件相比時,其在設(shè)計的驗證和集成方面提出了一些挑戰(zhàn)。例如,許多年來,個人計算機使用INTEL的無處不在的“北”橋和“南”橋體系結(jié)構(gòu),其中,中央處理單元經(jīng)由第一組總線接合到存儲器控制器中心(MCH)芯片,并且存儲器控制器中心反過來經(jīng)由另一組總線接合到輸入/輸出控制器中心(ICH)芯片。MCH和ICH中的每一個經(jīng)由其它總線和接口還提供到各種系統(tǒng)部件和外圍設(shè)備的接口。這些總線和接口中的每一個遵守已確立的標準,從而使得該系統(tǒng)體系結(jié)構(gòu)能夠支持模塊化設(shè)計。為了確保適當?shù)脑O(shè)計,可以使用測試接口來對單個部件或成組的部件進行測試,這些測試接口是可通過設(shè)備管腳訪問的。
[0005]模塊化也是SoC體系結(jié)構(gòu)的關(guān)鍵方面。通常,系統(tǒng)設(shè)計者將集成各種功能模塊,這些功能模塊包括在工業(yè)中通常被稱為知識產(chǎn)權(quán)(IP)內(nèi)核、IP內(nèi)核模塊、或簡稱為IP的功能模塊。為了本文中的目的,這些功能模塊被稱為IP模塊或簡稱為“IP” ;可以理解的是,如同SoC開發(fā)和制造產(chǎn)業(yè)中的技術(shù)人員會理解的,術(shù)語IP模塊或IP也涵蓋IP內(nèi)核以及通常被稱為IP的任何其它部件或模塊。這些IP模塊通常服務(wù)一種或多種專用功能,并且通常包括從各個供應(yīng)商獲得許可的或者內(nèi)部開發(fā)的現(xiàn)有電路設(shè)計模塊。為了集成這些IP模塊,將各種接口設(shè)計到S0C中。這可以是非常具有挑戰(zhàn)性的,因為定義明確的北橋-南橋體系結(jié)構(gòu)及其標準化接口對于SoC中的集成來說是不實用的或不可取的。
[0006]為了解決該問題,開發(fā)了新的更高速以及更模塊化的接口。例如,INTEL公司最近開發(fā)了新的互連結(jié)構(gòu)體系結(jié)構(gòu),其包括INTEL片上可擴展結(jié)構(gòu)(10SF)。此外,還開發(fā)了其它基于結(jié)構(gòu)的接口,其包括開放內(nèi)核協(xié)議(OCP)以及ARM的AMBA (高級微控制器總線體系結(jié)構(gòu))接口。諸如IOSF互連結(jié)構(gòu)的片上互連使用分組化分層通信協(xié)議并且支持IP模塊之間的點對點互連,從而促進異構(gòu)的IP與標準的IOSF接口之間容易的集成。
[0007]為了驗證SoC體系結(jié)構(gòu)的設(shè)計完整性,需要對IP模塊之間的通信進行測試以及對IP功能和電路進行測試。在常規(guī)的方法下,對給定的SoC體系結(jié)構(gòu)進行測試是使用測試訪問機制(TAM)來實現(xiàn)的,TAM是使用自組(ad-hoc)技術(shù)來設(shè)計的。這樣的TAM需要專門的驗證和設(shè)計工作,這需要針對每一個焊鉛或衍生SoC重復(fù)該驗證和設(shè)計工作。所使用的自組技術(shù)還導(dǎo)致額外的面積和SoC級處的走線工作,這會致使在當今的密集SoC中增加擁塞。這會嚴重地破壞SoC的上市時間和低成本目標。從而,需要以更加靈活和可預(yù)測的方式來促進對SoC體系結(jié)構(gòu)的測試。
【專利附圖】
【附圖說明】
[0008]當結(jié)合附圖進行時,由于通過參照下面的【具體實施方式】,本發(fā)明的前述方面和許多伴隨的優(yōu)點變得更好理解,因此本發(fā)明的前述方面和許多伴隨的優(yōu)點將變得更加容易明白,其中,除非另有規(guī)定,否則貫穿各個觀點,相同的附圖標記指代相同的部分:
[0009]圖1是示出了根據(jù)本發(fā)明的一個實施例的示例性測試訪問機制(TAM)體系結(jié)構(gòu)的框圖;
[0010]圖1A是實現(xiàn)IOSF結(jié)構(gòu)的圖1的TAM體系結(jié)構(gòu)的實施例的框圖;
[0011]圖2是示出了根據(jù)一個實施例的測試控制器的微體系結(jié)構(gòu)的框圖;
[0012]圖3是示出了根據(jù)一個實施例的測試包裝器的微體系結(jié)構(gòu)的框圖;
[0013]圖4是示出了根據(jù)一個實施例的測試控制器中的跨時鐘FIFO的使用的框圖;
[0014]圖5是示出了根據(jù)一個實施例的測試包裝器中的跨時鐘FIFO的使用的框圖;
[0015]圖6是示出了示例性IP模塊及相應(yīng)的測試邏輯的細節(jié)的框圖;
[0016]圖7是示出了一種SoC體系結(jié)構(gòu)的框圖,在該SoC體系結(jié)構(gòu)中,實現(xiàn)了測試控制器和多個測試包裝器以促進對相應(yīng)的IP模塊進行測試;
[0017]圖8是示出了被配置為對包括測試分區(qū)的多個IP模塊進行測試的測試包裝器的實施例的框圖。
【具體實施方式】
[0018]本文中描述了用于促進對SoC進行測試的方法和裝置的實施例。在下面的描述中,闡述了大量具體細節(jié)以提供對本發(fā)明的實施例的透徹理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將會認識到,可以在沒有這些具體細節(jié)的情況下實施本發(fā)明,或者使用其它方法、部件、材料等來實施本發(fā)明。在其它情況下,沒有示出或詳細描述公知的架構(gòu)、材料或操作以避免模糊本發(fā)明的方面。
[0019]貫穿本說明所提及的“一個實施例”或“實施例”意指結(jié)合該實施例描述的特定的特征、架構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在貫穿本說明的各處中出現(xiàn)的短語“在一個實施例中”或“在實施例中”不一定均指的是相同的實施例。此外,在一個或多個實施例中,可以以任何適當?shù)姆绞絹韺μ囟ǖ奶卣鳌⒓軜?gòu)或特性進行組合。
[0020]根據(jù)本文中公開的實施例的方面,提供了被稱為測試訪問機制或TAM的、用于測試訪問的標準、模塊化、可擴展以及可重用的設(shè)施。TAM是使用現(xiàn)有的功能結(jié)構(gòu)來實現(xiàn)的,并且提供了用于在部件調(diào)試及制造測試期間傳遞測試激勵及測試響應(yīng)的采樣的標準機制。TAM的功能結(jié)構(gòu)的重用降低了實現(xiàn)成本,借此TAM繼承了標準化的功能結(jié)構(gòu)相對于常規(guī)方法和體系結(jié)構(gòu)(其需要使用與功能結(jié)構(gòu)分離的且除了功能結(jié)構(gòu)之外的專門的測試設(shè)施)的優(yōu)點(諸如模塊化、可重用性、可擴展性以及低成本)。
[0021]在下述實施例中的一些實施例中,公開了運用使用運用Intel片上可擴展結(jié)構(gòu)(IOSF)的SoC的TAM的示例性的實現(xiàn)方案和概念。將會理解的是,使用IOSF結(jié)構(gòu)的實現(xiàn)僅是示例性的,并且將運用類似的概念來實現(xiàn)使用其它類型的互連結(jié)構(gòu)的TAM,這些其它類型包括但不限于開放內(nèi)核協(xié)議(OCP)以及INTEL Quickpath?互連。
[0022]根據(jù)一個實施例,TAM是使用已經(jīng)在SoC上實現(xiàn)的、用于向測試器傳遞測試數(shù)據(jù)和激勵以及傳遞來自測試器的測試數(shù)據(jù)和激勵的結(jié)構(gòu)設(shè)施、協(xié)議和接口來實現(xiàn)的,其也被稱為自動測試設(shè)備或ATE。由于TAM使用現(xiàn)有的功能結(jié)構(gòu),因此其導(dǎo)致了比常規(guī)的技術(shù)更少的門數(shù)和更少的全局布線(這在密集SoC中尤其重要)。
[0023]TAM通過兩個主要的部件來實現(xiàn):測試控制器和測試包裝器。作為概述,測試控制器作為結(jié)構(gòu)的代理并且用作ATE和SoC之間的門戶,因此使得SoC外部的ATE能夠通過將測試數(shù)據(jù)轉(zhuǎn)換成SoC中的每種類型結(jié)構(gòu)的適用結(jié)構(gòu)協(xié)議所運用的分組來向目標IP傳遞測試數(shù)據(jù)。(如果必要的話)由測試包裝器在目的地IP模塊處將這些解分組(de-packetize)成測試激勵。然后,測試包裝器從目標IP收集對測試激勵的響應(yīng),并且將其作為一個或多個分組傳送回測試控制器,然后,測試控制器將其轉(zhuǎn)換成適合于ATE進行采樣的形式。
[0024]圖1中示出了說明TAM的一個實施例的模塊級細節(jié)的示例性體系結(jié)構(gòu)。該體系結(jié)構(gòu)包括在SoC102外部的ATE100,SoC102包括測試接口 103、測試控制器104、互連結(jié)構(gòu)106、測試包裝器108、IP模塊108、以及測試配置模塊112。測試控制器104和測試包裝器108中的每一個通信地耦合到結(jié)構(gòu)106。測試控制器104還經(jīng)由測試接口 103通信地耦合到ATE100,測試接口 103包括SoC封裝上的多個管腳。此外,測試包裝器108還通信地耦合到IP模塊110。盡管為了清楚起見沒有在圖1中示出,但在(諸如圖7中所示的以及下面所討論的)典型的SoC體系結(jié)構(gòu)中,各種其它的測試包裝器、IP模塊和/或橋也將通信地耦合到結(jié)構(gòu)106。
[0025]測試控制器是主要的接口,通過測試控制器測試器將測試激勵應(yīng)用到被測IP(IUT),并且對來自IUT的響應(yīng)進行采樣。測試控制器通過提供與對不使用基于結(jié)構(gòu)的接口的設(shè)備進行測試所需要的接口非常類似的接口,來在ATE和來自測試器的結(jié)構(gòu)之間提供抽象接口。如圖1中所示,測試控制器104包括三個主要的部件:測試數(shù)據(jù)格式器114、傳送事務(wù)隊列(TXQ) 116、接收事務(wù)隊列(RXQ) 118、以及結(jié)構(gòu)接口 120。
[0026]測試包裝器作為結(jié)構(gòu)和IP模塊的測試端口之間的接口:設(shè)想包裝器的一種方式是作為抽象層,其從結(jié)構(gòu)抽象出用于測試IP模塊的低層信令要求,并且反過來從IP模塊抽象出與結(jié)構(gòu)相關(guān)的協(xié)議。如圖1中所示,來自測試包裝器108的測試信號的一部分與IP模塊的結(jié)構(gòu)接口部件相接合,而這些測試信號的另一部分經(jīng)由耦合在IP測試端口和測試包裝器110上的測試接口 124之間的連接122與IP測試端口 130相連接。IP測試端口可以用于執(zhí)行各種部件和電路級的測試,包括通常被執(zhí)行以驗證IP內(nèi)核等的完整性的掃描測試。測試包裝器108還被配置為支持結(jié)構(gòu)信號直接直通到達IP模塊110,以支持通信和對IP模塊與結(jié)構(gòu)接口的功能測試,以及支持在正常SoC使用期間的結(jié)構(gòu)通信操作。
[0027]IP模塊110表示可以使用根據(jù)本文中公開的原理和概念的TAM進行測試的各種類型的IP模塊和IP內(nèi)核。如圖所示,IP模塊110包括IP內(nèi)核126、結(jié)構(gòu)接口模塊128以及IP測試端口 130。下面參照圖6對與示例性IP模塊相對應(yīng)的進一步的細節(jié)進行了討論。
[0028]圖2中示出了測試控制器104A的微體系結(jié)構(gòu)的一個實施例的細節(jié)。說明性的部件包括命令解碼器200、分別耦合到傳送隊列(TXQ)接口 206和接收隊列(RXQ)接口 208的一對FIFO (先進先出)緩沖區(qū)202和204。測試控制器104還包括目的地地址寄存器210。此夕卜,為了清楚起見,在圖2中將圖1的測試控制器104的傳送和接收隊列(TXQl 16和RXQl 18)以及結(jié)構(gòu)接口 120總體描繪為結(jié)構(gòu)接口模塊212,以便不模糊測試控制器104的微體系結(jié)構(gòu)的其它細節(jié)。
[0029]測試數(shù)據(jù)格式器114從測試器接收包括測試數(shù)據(jù)和測試器命令/控制信號的測試器輸入,并且對相應(yīng)的測試數(shù)據(jù)和測試命令/指令進行封裝以用于傳輸?shù)絀UT:封裝操作涉及包括合適的地址信息,以便該封裝被轉(zhuǎn)發(fā)到預(yù)期的目的地IP,并且附加額外的命令字段,以便目標IP知道對測試數(shù)據(jù)進行什么處理。例如,在掃描模式中,分組包括IP地址,以及嵌入數(shù)據(jù)中的命令,該數(shù)據(jù)指導(dǎo)針對IP的測試包裝器執(zhí)行掃描加載、卸載、同時加載/卸載或者使捕獲時鐘產(chǎn)生脈沖。
[0030]將由測試數(shù)據(jù)格式器封裝的測試器輸入數(shù)據(jù)分解成傳送事務(wù)隊列以用于傳送到結(jié)構(gòu)上。最大封裝尺寸取決于傳送/接收事務(wù)隊列的大小,并且對最大封裝尺寸進行優(yōu)化以確保分組/解分組開銷的最小化。為了通過使簿記的量最小來簡化包裝器的設(shè)計,在一個實施例中,傳送事務(wù)隊列的每個條目是自包含的實體,其對命令以及執(zhí)行該命令所針對的數(shù)據(jù)進行編碼。例如,包含掃描數(shù)據(jù)的條目將具有指定在掃描數(shù)據(jù)之前的掃描操作類型(加載、卸載或二者)的字段。此外,只要目的地掃描包裝器在接收掃描數(shù)據(jù),那么其就繼續(xù)執(zhí)行掃描移位操作,從而導(dǎo)致簡單、低成本的包裝器設(shè)計。對于確保已經(jīng)加載最大掃描長度的掃描鏈來說,沒有簿記是必要的(并且可以獨立于該最大掃描鏈長度來設(shè)計包裝器)。一旦已經(jīng)組裝好測試數(shù)據(jù)分組,就將其轉(zhuǎn)發(fā)到結(jié)構(gòu)接口以作為通告的事務(wù)在結(jié)構(gòu)上傳送到目的地IUT。在替換方案下,可以使用多個分組來發(fā)送給定的測試封裝;然而,由于會需要使用第一分組中的信息或諸如報頭信息的其它信息來通知接收機在特定的測試封裝中有多少分組,因此該方案需要更多的開銷。
[0031]在一個實施例中,測試控制器104A以下列方式進行操作。從ATE100接收測試數(shù)據(jù)以及測試命令。在所示的實施例中,通過N比特接口從ATE100接收測試數(shù)據(jù),并且通過4比特接口來接收作為4比特值的測試命令。然而,4比特值的使用是示例性的,因為也可以使用包括其它比特值的測試命令??偟膩碚f,N比特和4比特接口中的每一個接口可以包括并行或串行接口,盡管為了簡化ATE和測試控制器之間的通信(并且通過SoC102的代理測試接口 103),并行接口是優(yōu)選的。此外,針對給定的測試封裝可以使用測試數(shù)據(jù)的一個或多個N比特組。另外,可以將給定的測試命令編碼成順序接收的一個或多個4比特測試命令數(shù)據(jù)值。測試命令數(shù)據(jù)還可以包括控制數(shù)據(jù)。除了圖2中所示的測試數(shù)據(jù)和測試命令數(shù)據(jù)之外,還有以相應(yīng)的時鐘頻率操作的時鐘(CLK)信號。如同下面進一步詳細描述的,一些技術(shù)由測試控制器實現(xiàn),從而使得ATE時鐘信號所使用的時鐘頻率可以與互連結(jié)構(gòu)所使用的時鐘頻率不同。
[0032]在命令解碼器200處接收來自ATE100的測試命令數(shù)據(jù),并且使用查找表、寄存器等對該測試命令數(shù)據(jù)進行解碼。測試命令告訴測試控制器要執(zhí)行什么操作以控制向結(jié)構(gòu)傳輸數(shù)據(jù)或者從結(jié)構(gòu)傳輸數(shù)據(jù)。目的地地址寄存器210對要向其發(fā)送測試分組的IP的目的地地址進行存儲,并且使用來自測試器的單獨命令來加載該目的地地址寄存器。在可應(yīng)用的測試命令的控制之下,將輸入測試數(shù)據(jù)(“測試數(shù)據(jù)入”)加載到FIF0202中,并且傳送隊列接口 204用于將格式化的測試命令分組“加載”到要被傳送到結(jié)構(gòu)106的傳送隊列中。在實踐中,傳送隊列接口 204操縱指針以標識包含要被出站傳送到結(jié)構(gòu)的分組數(shù)據(jù)的存儲器存儲單元。[0033]結(jié)構(gòu)接口模塊212提供用于利用由相應(yīng)的互連所使用的可應(yīng)用數(shù)據(jù)、信號和協(xié)議來與結(jié)構(gòu)106進行通信的接口。在一些實施例中,結(jié)構(gòu)106包括使用具有一種或多種可配置寬度(諸如11、2^知、8^161等)的多個單向串行鏈路來實現(xiàn)的點對點互連。結(jié)構(gòu)還可以具有類總線的體系結(jié)構(gòu)??偟膩碚f,任何類型的現(xiàn)有和未來的結(jié)構(gòu)都可以用于實現(xiàn)本文中公開的一般性概念和原理。使用利用結(jié)構(gòu)106所采用的多層協(xié)議棧實現(xiàn)的分組和相應(yīng)的事務(wù)來傳輸數(shù)據(jù)。例如,在一個實施例中,結(jié)構(gòu)協(xié)議對應(yīng)于Intel片上可擴展結(jié)構(gòu)(IOSF)協(xié)議。在另一個實施例中,結(jié)構(gòu)106可以實現(xiàn)開放內(nèi)核協(xié)議(0CP)。這些例子并不意在是限制性的,因為可以使用任何現(xiàn)有的或未來的互連結(jié)構(gòu)架構(gòu)和協(xié)議來實現(xiàn)SoC體系結(jié)構(gòu)和本文中公開的相應(yīng)原理和概念。此外,除了點對點互連之外,也可以在使用其它拓撲(諸如基于環(huán)、網(wǎng)、環(huán)面和總線的互連)的SoC上實現(xiàn)本文中公開的技術(shù)和原理。
[0034]在更加概括的層次上,結(jié)構(gòu)接口模塊212提供在由結(jié)構(gòu)106使用的事務(wù)實現(xiàn)和通過結(jié)構(gòu)106傳送出站和接收入站的數(shù)據(jù)之間的抽象層。相應(yīng)地,為了支持不同類型的互連結(jié)構(gòu),只需要改變結(jié)構(gòu)接口模塊212中的電路(以及潛在地TXQ和RXQ接口 206和208),而測試控制器104中的其余電路可以保持不變,并且以獨立于特定的結(jié)構(gòu)互連架構(gòu)和協(xié)議的方式來實現(xiàn)測試控制器104中的其它電路。
[0035]在使用基于分組的結(jié)構(gòu)協(xié)議的實施例中,將測試數(shù)據(jù)和相應(yīng)的測試命令信息進行“分組”(即,格式化成一個或多個分組),并且通過結(jié)構(gòu)將其傳輸?shù)侥繕薎P模塊,通過分配給IP模塊相應(yīng)的地址來識別目標IP模塊。同樣地,通過由RXQ接口 206經(jīng)由相應(yīng)的控制信號促進的接收隊列傳輸?shù)膮f(xié)調(diào),由目標IP模塊和/或測試包裝器(如同下面進一步詳細描述的)生成的測試輸出數(shù)據(jù)在結(jié)構(gòu)接口模塊212處被接收、“解分組”并且根據(jù)適用的測試命令被加載到FIF0204。然后,將FIF0204中緩沖的可適用的測試結(jié)果數(shù)據(jù)轉(zhuǎn)移出測試控制器104,以作為“測試數(shù)據(jù)出”(即,測試響應(yīng)數(shù)據(jù))由ATE100接收。如圖2中所示,從測試控制器200接收作為一個或多個M比 特數(shù)據(jù)模塊的測試數(shù)據(jù)。如前述,可以經(jīng)由并行或串行接口來實現(xiàn)M比特數(shù)據(jù)傳輸,并且給定的測試結(jié)果可以包括一個或多個M比特單元的數(shù)據(jù)。
[0036]作為概述,在典型的IP模塊上執(zhí)行的測試有兩類:功能測試和架構(gòu)測試。功能測試涉及對通信接口以及由IP模塊執(zhí)行的功能進行測試,并且由于通信地或可操作地耦合到SoC中的結(jié)構(gòu)的每個IP模塊能夠經(jīng)由該結(jié)構(gòu)來發(fā)送和接收數(shù)據(jù),因此通??梢酝ㄟ^使用經(jīng)由該結(jié)構(gòu)發(fā)送的測試數(shù)據(jù)和命令來促進功能測試。相應(yīng)地,在一個實施例中,測試包裝器提供直通機制,以使得包含與功能測試有關(guān)的測試數(shù)據(jù)和命令的測試分組能夠經(jīng)由結(jié)構(gòu)從測試控制器傳遞,并且使得包含測試結(jié)果的分組和/或通過測試包裝器返回的功能測試數(shù)據(jù)能夠被返回到測試控制器。
[0037]除了功能測試之外,測試包裝器還支持架構(gòu)測試。在本質(zhì)上,測試包裝器結(jié)合測試控制器提供了一種將ATE有效地耦合到為其實現(xiàn)測試包裝器的每個IP模塊中的測試端口的機制。相應(yīng)地,可能在常規(guī)的分立部件上執(zhí)行的架構(gòu)測試(諸如掃描測試)可以同樣在IP模塊上執(zhí)行;然而,在本文中公開的體系結(jié)構(gòu)下,不需要從ATE SoC接口或交換模塊到每個IP模塊的全局布線,也不需要全局布線來分隔JTAG管腳,從而節(jié)省了寶貴的模具布局空間。此外,由于測試包裝器設(shè)計是模塊化、可重用的,并且涉及極少的模具空間,因此很容易在對開發(fā)進度影響最低的情況下將其添加到新的和現(xiàn)有的設(shè)計中,從而緩解對上市時間的擔憂。此外,該體系結(jié)構(gòu)的模塊化和可重用特性意味著不再需要單獨定制的測試體系結(jié)構(gòu)。[0038]如同上面所討論的,測試包裝器作為結(jié)構(gòu)與IP的測試端口之間的接口。測試包裝器經(jīng)由結(jié)構(gòu)取回源于測試控制器的測試分組,通過嵌入分組本身的命令來解釋需要對分組中的數(shù)據(jù)進行怎樣的處理,并且然后利用適當?shù)男帕顓f(xié)議將數(shù)據(jù)應(yīng)用于IP的適當?shù)臏y試端口。例如,在掃描模式(通過經(jīng)由TAP設(shè)置適當?shù)目刂萍拇嫫鱽頂嘌?中,包裝器使用測試控制器提供的掃描數(shù)據(jù)(從在IP接收隊列(RXQ)中存放的分組中取回的)來執(zhí)行掃描加載操作;將來自IP的掃描卸載數(shù)據(jù)(響應(yīng))存儲到IP傳送隊列(TXQ);并且當由掃描分組中嵌入的命令指示時,應(yīng)用適當?shù)牟东@時鐘??梢酝ㄟ^設(shè)計執(zhí)行以下功能的子模塊來實現(xiàn)針對特定測試方法的測試包裝器:
[0039]RXQ/TXQ讀-寫邏輯:該子模塊與事務(wù)隊列進行接合,以從接收隊列(RXQ)取回數(shù)據(jù),并且將數(shù)據(jù)置于傳送隊列(TXQ)中以經(jīng)由結(jié)構(gòu)最終轉(zhuǎn)發(fā)回測試控制器。通過檢測新數(shù)據(jù)已經(jīng)到達RXQ來從RXQ取回數(shù)據(jù)。通過簡單的狀態(tài)信號或者通過將隊列的頭指針和尾指針(如果存在)進行比較,可以確定數(shù)據(jù)到達RXQ。通常通過從RXQ彈出條目來執(zhí)行從RXQ的讀操作。類似地,當可從IP獲得響應(yīng)數(shù)據(jù)時,并且確定TXQ有足夠的空間來支持寫操作(要么使用簡單的狀態(tài)信號,要么通過對TXQ的頭指針和尾指針進行比較)時,對TXQ執(zhí)行寫操作。一旦TXQ條目的數(shù)量達到預(yù)定的限制,就將TXQ中的數(shù)據(jù)作為結(jié)構(gòu)分組轉(zhuǎn)發(fā)到測試控制器。
[0040]測試協(xié)議翻譯器:該邏輯子模塊(經(jīng)由多個部件實現(xiàn)的)在一側(cè)與上述RXQ/TXQ讀-寫邏輯接合,并且在另一側(cè)與IP的測試管腳接合,以實現(xiàn)對IP進行測試所需要的測試協(xié)議。這種接合包括對嵌入的命令進行解碼,以及將來自RXQ的原始數(shù)據(jù)轉(zhuǎn)換成向IP應(yīng)用測試激勵所需要的波形,以及對來自IP的響應(yīng)波形進行采樣,并且將它們轉(zhuǎn)換成適合于寫入TXQ的數(shù)據(jù)。通過精心的設(shè)計,實現(xiàn)多種架構(gòu)測試方法(測試方法諸如掃描)所需要的測試協(xié)議翻譯器,可以共享相同的RXQ/TXQ讀-寫邏輯以降低測試包裝器的硬件開銷。
[0041]跨時鐘域:必須處理多達3個不同的時鐘域的主要子模塊是RXQ/TXQ讀-寫邏輯:它必須與從RXQ/TXQ讀出和向RXQ/TXQ寫入所需的參考時鐘以及測試協(xié)議翻譯器所使用的參考時鐘(其由測試協(xié)議的信令要求所確定(例如,掃描包裝器會使用由最大頻移所確定的參考時鐘))競爭。為了確??缭竭@些時鐘邊界的數(shù)據(jù)的有序地交換,使用握手邏輯來確保在數(shù)據(jù)可用之前不對其進行采樣,并且允許有足夠的時間將數(shù)據(jù)發(fā)送到可能在不同的時鐘域上的邏輯。在圖4和圖5中分別示出了測試控制器和測試包裝器的示例性跨時鐘域?qū)崿F(xiàn)的圖,下面對其進行進一步詳細討論。
[0042]這里要注意的很重要的一點是,只針對架構(gòu)或其它非功能測試應(yīng)用才需要測試包裝器。在這些情況下,測試包裝器需要對功能事務(wù)進行修改,以適應(yīng)非功能/架構(gòu)協(xié)議。對于功能測試來說,IP將直接對來自結(jié)構(gòu)的功能事務(wù)進行響應(yīng),并且因此不需要測試包裝器。相應(yīng)地,測試包裝器的直通特征在功能測試期間實現(xiàn)。
[0043]圖3示出了測試包裝器108A的微體系結(jié)構(gòu)以及去往和來自廣義IP模塊110的接口的一個實施例的進一步的細節(jié)。圖3中示出的部件中的幾個部件與圖2的測試控制器104A中的相似部件類似,包括結(jié)構(gòu)接口 300、RXQ和TXQ接口 302和304、以及FIF0306和308。測試包裝器108還包括復(fù)用器模塊310、測試狀態(tài)機312、以及測試控制邏輯314。
[0044]結(jié)構(gòu)接口模塊300采用復(fù)用器電路和相關(guān)聯(lián)的邏輯(被共同描繪為復(fù)用器模塊310),以促進從結(jié)構(gòu)106接收入站和向結(jié)構(gòu)106發(fā)送出站的信號的發(fā)送/接收以及直通。從互連結(jié)構(gòu)的角度來看,接合到結(jié)構(gòu)的每一個IP模塊具有各自的結(jié)構(gòu)接口和唯一的互連地址。在一些實施例中(根據(jù)特定的結(jié)構(gòu)體系結(jié)構(gòu)和協(xié)議),接合到結(jié)構(gòu)的每個設(shè)備或IP模塊采用代理來處理經(jīng)由結(jié)構(gòu)互連發(fā)送的事務(wù)分組。如本文中所使用的,這些代理(通??梢越?jīng)由編程邏輯等來實現(xiàn))被嵌入圖中所示的結(jié)構(gòu)接口模塊之內(nèi),并且為了清楚起見沒有單獨示出,然而,將會理解的是,這些代理及其相關(guān)聯(lián)的功能在各種結(jié)構(gòu)接口模塊中實現(xiàn),以用于采用使用這些代理的互連結(jié)構(gòu)協(xié)議的應(yīng)用。
[0045]在示出的實施例中,源于測試控制器的用于測試給定的目標IP模塊的測試分組可以具有兩個地址中的一個--與IP模塊自身對應(yīng)的地址(通常用于功能測試);或者分配給測試包裝器的地址。如上面所討論的,由于IP模塊的功能測試不要求來自測試包裝器的支持,因此可以繞過測試包裝器。如上面所討論的,這通過復(fù)用器模塊300來實現(xiàn)。為了確定測試分組的正確目標(IP模塊,或測試包裝器),針對每個分組執(zhí)行某種類型的地址檢測。因此,結(jié)構(gòu)接口模塊300或結(jié)構(gòu)(106)包括用于檢測分組地址的電路,并且然后相應(yīng)地路由分組。[0046]以有些只是相反的類似方式來處理來自測試包裝器和相關(guān)聯(lián)的IP模塊的出站分組的傳送。在這種情況下,經(jīng)由復(fù)用器選擇地將來自IP模塊結(jié)構(gòu)接口 128的信號和由測試包裝器108在內(nèi)部生成的信號耦合到測試包裝器的結(jié)構(gòu)接口。在這種情況下,不需要地址檢測,因為在結(jié)構(gòu)接口 128和測試包裝器之間的互連信號路徑上只出現(xiàn)出站數(shù)據(jù)指示輸出分組的源是IP模塊110。從IP模塊的角度來看,測試包裝器是透明的,就像IP模塊的結(jié)構(gòu)接口直接連接到互連結(jié)構(gòu)。該設(shè)計內(nèi)的信號直通功能有助于該期望的功能。
[0047]使用RXQ接口 302從結(jié)構(gòu)接口模塊300中的事務(wù)取回隊列中取回去往測試包裝器的數(shù)據(jù)分組,RXQ接口 302反過來驅(qū)動向測試控制邏輯314提供相應(yīng)輸入的測試狀態(tài)機306,測試控制邏輯314解釋輸入并且經(jīng)由測試控制信號和相關(guān)聯(lián)的測試數(shù)據(jù)(就像“測試數(shù)據(jù)出”所描述的)向IP模塊應(yīng)用相應(yīng)的測試激勵。類似地,從IP模塊取回響應(yīng)數(shù)據(jù)(“測試數(shù)據(jù)入”),將其緩存在FIF0308中,并將其格式化成分組且經(jīng)由TXQ接口 304和結(jié)構(gòu)接口模塊300的使用通過結(jié)構(gòu)106進行傳輸。測試響應(yīng)分組的目的地通常是測試控制器,測試控制器對響應(yīng)數(shù)據(jù)進行解分組和重新格式化,并且將數(shù)據(jù)傳輸?shù)紸TE。根據(jù)由測試包裝器實現(xiàn)的測試方法,經(jīng)由測試狀態(tài)機312和測試控制邏輯314來實現(xiàn)相應(yīng)的電路和邏輯,并且通過“測試數(shù)據(jù)出”和“測試數(shù)據(jù)入”信號來傳輸適當?shù)臏y試數(shù)據(jù)。例如,如果將包裝器設(shè)計為應(yīng)用掃描數(shù)據(jù),那么“測試控制”是掃描控制信號(掃描使能、捕獲和掃描時鐘),并且“測試數(shù)據(jù)出”和“測試數(shù)據(jù)入”信號與IP的掃描數(shù)據(jù)入和掃描數(shù)據(jù)出信號進行接合(經(jīng)由相應(yīng)的IP測試端口 130)。對于針對IP實現(xiàn)多個測試方法的包裝器來說,可以共享這些構(gòu)造塊中的一些(諸如與結(jié)構(gòu)進行通信的模塊,例如FIFO以及RXQ和TXQ接口)。
[0048]如上所述,在一個實施例中,F(xiàn)IFO包括定時跨越FIFO,其被配置為促進ATE和測試控制器之間的通信信號以及測試控制器和結(jié)構(gòu)之間的通信信號使用的時鐘頻率之差。例如,這示意性地示于圖4中??偟膩碚f,如果ATE和結(jié)構(gòu)運行單獨且不相關(guān)的時鐘,那么跨時鐘FIFO對數(shù)據(jù)進行同步:通常,測試器將必須以2X或比結(jié)構(gòu)時鐘更慢地運行,以確保數(shù)據(jù)的完整性。在另一種情況下,如果插入了測試設(shè)計(DFT)邏輯(簡單的旁路MUX)以使得測試器時鐘與結(jié)構(gòu)時鐘相同,則不需要同步FIFO,并且測試器可以運行的和結(jié)構(gòu)一樣塊。后一種情況是實現(xiàn)架構(gòu)測試的優(yōu)選選擇。[0049]在圖4所示的示例中,ATElOO和測試控制器104B的左手側(cè)的部件(被共同示為格式器114)以對應(yīng)于第一時鐘域(CLK域I)的第一時鐘頻率CLKl運行。同時,測試控制器104的右手側(cè)的部件(為了簡單起見,由TXQ接口 206和結(jié)構(gòu)接口模塊212共同表示)在與結(jié)構(gòu)106使用的CLK2信號的頻率相對應(yīng)的第二時鐘域(CLK域2)中運行??鐣r鐘FIF0202A被配置為跨越不同的時鐘域,以相對于所述一個或兩個時鐘信號頻率以異步的方式運行,并且采用適用的握手電路來確保數(shù)據(jù)完整性。如果CLK2的頻率是CLKl的頻率的倍數(shù),則簡化電路和邏輯,但這不是嚴格的要求。盡管未示出,但以類似的方式對涉及測試結(jié)果分組的接收和處理的測試控制器104B的電路進行配置,其中,F(xiàn)IF0204被配置為第二跨時鐘FIFO。
[0050]使用類似的技術(shù)來解決互連結(jié)構(gòu)、測試包裝器和IP模塊之間的時鐘頻率差異。如圖5的測試包裝器108B中所示,將部件(為了簡單起見在這里進行了抽象)劃分成標記為CLK域2和CLK域3的兩個時鐘域。使用握手控制和在跨時鐘FIF0306A中實現(xiàn)的定時電路來跨越這兩個時鐘域。以類似的方式,可以實現(xiàn)與封裝和轉(zhuǎn)發(fā)測試包裝器中的測試結(jié)果數(shù)據(jù)有關(guān)的電路,包括跨時鐘FIF0308 (未示出)。
[0051]一般來說,基本上可以使用本文中公開的測試控制器和測試包裝器的組合,在具有類似的核心電路的IP模塊上執(zhí)行可以使用直接耦合到分立部件上的管腳的測試器在該分立部件上執(zhí)行的任何測試。根據(jù)特定的測試要求,可以在本文中的一個或多個部件中嵌入特定測試邏輯。通常,可以將特定于某一類型的IP模塊或內(nèi)核類別的測試邏輯嵌入針對該類別實現(xiàn)的測試包裝器中。
[0052]例如,圖6中示出的示例性IP模塊IlOA表示對掃描測試所適用的一類IP模塊。如圖所示,IP模塊IlOA具有內(nèi)核126A,內(nèi)核126A包括存儲器600、高速緩存器602和掃描鏈604。還示出的是測試包裝器108C中的用于執(zhí)行掃描測試、直接存取測試(DAT)測試以及基于架構(gòu)的功能測試(SBFT)的邏輯。
[0053]如上面所討論的,測試包裝器提供了測試接口以與IP模塊的IP測試端口進行通信。將該接口示意性地描繪為測試接口模塊124和連接122A。一般來說,可以經(jīng)由能夠傳送數(shù)據(jù)和/或信號的任意類型的連接(諸如總線、串行連接等等)來實現(xiàn)連接122A。
[0054]與本文中公開的TAM的實現(xiàn)有關(guān)的另一個方面是TAM配置。在測試數(shù)據(jù)被傳輸?shù)絋AM之前,必須對TAM進行配置,以使TAM的各個部件知道如何處理數(shù)據(jù)。例如,在掃描模式中,需要對包裝器和測試控制器進行配置,以使它們可以正確地對掃描數(shù)據(jù)進行封裝和解釋,并且對面向掃描的分組中的適當字段進行解釋以執(zhí)行移位操作、應(yīng)用捕獲時鐘等等。使用諸如1149.1TAP、IEEE1500WTAP或結(jié)構(gòu)邊帶的獨立機制更好地執(zhí)行該配置。在最低限度,期望配置機制支持由TAM支持的所有測試模式(諸如掃描、DAT和SBFT)。為了簡化設(shè)計、驗證和初啟,配置機制不應(yīng)依賴于操作結(jié)構(gòu),并且假定:在通過結(jié)構(gòu)啟動首個與測試相關(guān)的操作之前,獨立配置機制將把TAM置于適當?shù)臏y試模式中。
[0055]通常,用于實現(xiàn)TAM測試配置的邏輯可以被嵌入測試控制器中,實現(xiàn)在單獨的模塊中,或者可以包括分布在多個部件中的邏輯。例如,將用于實現(xiàn)測試配置的邏輯描繪為圖1中的測試配置模塊112。在該示例性實現(xiàn)中,測試配置模塊112從ATE100接收輸入和控制信息,并且,作為響應(yīng),向測試控制器104和測試包裝器108中的每一個提供測試配置數(shù)據(jù)。
[0056]如上面所討論的,可以使用各種類型的互連結(jié)構(gòu)和相關(guān)聯(lián)的結(jié)構(gòu)協(xié)議來實現(xiàn)本文中公開的實施例的各方面,并且整體的測試控制器和測試包裝器的體系結(jié)構(gòu)是獨立于任何特定的互連結(jié)構(gòu)的。然而,為了更好地示出與促進相關(guān)通信操作的互連結(jié)構(gòu)的使用相關(guān)的接口方面,現(xiàn)在使用IOSF互連結(jié)構(gòu)來給出實施例。
[0057]IOSF是正跨越INTEL SoC擴散的片上功能互連結(jié)構(gòu)。IOSF提供將符合IOSF的IP集成到SoC中的即插即用機制,并且是基于PC1-e標準的。IOSF在接口和協(xié)議水平上實施標準化,但并不指定結(jié)構(gòu)實現(xiàn),從而使得在如何實現(xiàn)結(jié)構(gòu)方面具有靈活性,以解決不同的SoC細分市場?;赑C1-e使得采取PC1-e行為的拆封(shrinkirap)操作系統(tǒng)具有兼容性。發(fā)展本文中公開的技術(shù)的主要動機是:出于向IOSF結(jié)構(gòu)所在的IP傳輸數(shù)據(jù)以及對來自IOSF結(jié)構(gòu)所在的IP的響應(yīng)進行采樣的目的,使IOSF標準功能互連結(jié)構(gòu)的使用能夠作為標準ΤΑΜ。這允許在標準的功能互連上對具有即插即用能力的標準化TAM進行邏輯分層,從而減少設(shè)計開銷。
[0058]圖1A示出了實現(xiàn)IOSF互連結(jié)構(gòu)的圖1的TAM體系結(jié)構(gòu)的實施例。圖1A中示出的部件中的許多部件與圖1中的類似部件共享相同的標號,并且這些部件在兩個實施例中執(zhí)行類似的操作。此外,圖1A中的體系結(jié)構(gòu)包括IP模塊110Β,該IP模塊IlOB包括圖6的IP內(nèi)核126Α,其中,圖6和圖1A中的IP內(nèi)核126Α的部件的操作是類似的。
[0059]在IOSF下,通過利用多層協(xié)議經(jīng)由互連傳輸?shù)姆纸M的使用來促進互連結(jié)構(gòu)上的通信。該協(xié)議在針對分組數(shù)據(jù)在互連上的傳輸而管理通信和仲裁操作的每個端點處使用代理。該協(xié)議還使用分別促進發(fā)送和接收結(jié)構(gòu)接口操作的主接口和目標接口。在IOSF協(xié)議下,源于主接口的分組傳輸包括與目標(針對這些分組的接收)IP上的目標接口相對應(yīng)的地址信息。圖1A中的主接口和目標接口包括在測試控制器104C中的主接口 132和目標接口134,以及在IP模塊IlOB中的主接口 138。IP模塊IlOB還描繪了傳送事務(wù)隊列(TXQ) 140和接收事務(wù)隊列(RQX)隊列142。TXQ與主接口的配對以及目標接口與RXQ的配對對于每個IOSF接口來說是公共的。雖然沒有在圖1A中示出,但測試包裝器108Α還包括主接口和目標接口以及相關(guān)聯(lián)的TXQ和RXQ。
[0060]一般來說,針對SoC的實際TAM實現(xiàn)將包括與多個測試包裝器進行通信的測試控制器,其中針對每個IP的測試包裝器的實例,實現(xiàn)TAM體系結(jié)構(gòu)以用于測試該IP。給定的測試包裝器的特定的微體系結(jié)構(gòu)將在某種程度上依賴于被設(shè)計用來測試的IP,但是本文中描述的微體系結(jié)構(gòu)子模塊中的許多子模塊將可以跨越測試包裝器而重用。圖7中所示的SoC700描繪了這種TAM體系結(jié)構(gòu)的示例性實現(xiàn)。
[0061]SoC700包括耦合到測試接口 103的測試控制器104,測試接口 103被配置為經(jīng)由多個SoC測試管腳連接到ATElOO。SoC700的部件被描繪為在北復(fù)合體和南復(fù)合體之間進行劃分,這在某種程度上與INTEL的北橋/南橋體系結(jié)構(gòu)所使用的分立部件集成類似,確認在SoC中所有的部件集成在公共模具上,在部件之間沒有外部互連。
[0062]北復(fù)合體包括連接到IOSF結(jié)構(gòu)702的多個IP (被描繪為IP1、IP2和IP3)。每個IP包括各自的代理(被描繪為代理1、代理2和代理3),所述代理被用于促進該IP與耦合到IOSF結(jié)構(gòu)的其它代理之間的通信,包括由測試控制器104實現(xiàn)的代理O。實現(xiàn)各自的測試包裝器108-1、108-2和108-3以促進對IP1、IP2和IP3的測試,并且測試包裝器108-1、108-2和108-3也耦合到IOSF結(jié)構(gòu)702。
[0063]北復(fù)合體還包括經(jīng)由與IO相干的結(jié)構(gòu)橋706通信地耦合到IOSF結(jié)構(gòu)702的相干結(jié)構(gòu)704。相干結(jié)構(gòu)704支持相干存儲器事務(wù)來訪問各種共享的存儲器資源,這些共享的存儲器資源被共同描繪為存儲器708。包括多個內(nèi)核712的CPU710通信地耦合到相干結(jié)構(gòu)704,其中,在保持存儲器相干性的同時每個內(nèi)核能夠訪問存儲器708。對于使用相干互連結(jié)構(gòu)保持存儲器相干性的支持通常由各個代理(為了清楚起見沒有示出)來保持。
[0064]實現(xiàn)測試包裝器108-4以用于促進對CPU710的測試,并且經(jīng)由接口 714和CPU上的代理(代理4)來與CPU710進行接合。代理4和測試包裝器108-4的結(jié)構(gòu)接口部件被配置為與相干結(jié)構(gòu)704進行接合,其使用與IOSF結(jié)構(gòu)702不同的接口架構(gòu)和協(xié)議。橋706促進兩個結(jié)構(gòu)協(xié)議之間的橋接操作、根據(jù)第一協(xié)議(例如,10SF)將分組轉(zhuǎn)換成與第二協(xié)議(例如,0CP)相對應(yīng)的分組,同時還促進兩個結(jié)構(gòu)之間的定時和信令接口。以這種方式,可以經(jīng)由IOSF結(jié)構(gòu)702、橋706和相干結(jié)構(gòu)704將測試封裝數(shù)據(jù)從測試控制器104發(fā)送到測試包裝器108-4,并且可以在相反的方向上將相應(yīng)的測試結(jié)果數(shù)據(jù)返回到測試控制器。
[0065]南復(fù)合體中的測試包裝器的實現(xiàn)與北復(fù)合體中耦合到IOSF結(jié)構(gòu)702的測試包裝器的實現(xiàn)類似。南復(fù)合體包括通信地耦合到多個IP (如同IP5、IP6和IP7所描繪的)的IOSF結(jié)構(gòu)716,其與相應(yīng)的代理5、6和7促進的結(jié)構(gòu)進行通信。各自的測試包裝器108-5、108-6和108-7促進了針對這些IP中的每一個IP的測試操作。IOSF結(jié)構(gòu)716被示為經(jīng)由IOSF至IOSF橋718耦合到IOSF結(jié)構(gòu)702。在替換配置中,IOSF結(jié)構(gòu)702和716包括單一的互連結(jié)構(gòu),相應(yīng)地,將不使用橋。在另一個實施例中,南復(fù)合體結(jié)構(gòu)包括OCP結(jié)構(gòu),并且橋718包括IOSF至OCP橋。
[0066]架構(gòu)測試應(yīng)用(如掃描)提供用于對由于測試包裝器而導(dǎo)致的硬件開銷進行優(yōu)化的另一個機會。在一個實施例中,可以將多個IP分組為“測試分區(qū)”,以菊花鏈方式將它們的掃描鏈連接在一起,以形成組合的IUT。也可以使用其它方案,例如STAR和菊花鏈的組合的STAR配置。這樣的測試分區(qū)體系結(jié)構(gòu)針對整個測試分區(qū)只需要一個測試包裝器,而不是針對每個IP需要一個測試包裝器。這進一步降低了硬件開銷。測試分區(qū)方法是由諸如IP的大小、各個IP的物理接近度、測試期間的總體功率耗散等的若干因素驅(qū)動的。例如,單個IP可能太小以至于不能單獨對其進行掃描測試,從而使得適合將其與其它IP —起包括到測試分區(qū)中。
[0067]圖8中示出了使用測試包裝器的實施例的測試分區(qū)的實現(xiàn)的例子。在該實例中,將IP模塊IP-1、IP-2和IP-3分組以形成測試分區(qū)800。該體系結(jié)構(gòu)還包括測試包裝器802,804和806,這些測試包裝器的一側(cè)分別耦合到IP模塊IP_1、IP_2和IP-3并且另一側(cè)耦合到結(jié)構(gòu)808。在該示例配置下,在測試包裝器802中實現(xiàn)大部分測試包裝器邏輯,在隔離包裝器(IW) 804和806中實現(xiàn)的邏輯主要用于保持IP模塊IP_2和IP-3在測試期間處于不活動、非干擾的狀態(tài)。以類似的方式,在“主機” IP模塊(在該示例中是IP模塊IP-1)中實現(xiàn)針對測試分區(qū)中的IP模塊實現(xiàn)的大部分測試邏輯。一般情況下,主機IP模塊將具有被描繪為IP測試端口 810的接口邏輯,以促進待實現(xiàn)的特定測試。例如,典型的測試可以是掃描測試,并且因此測試分區(qū)800將作為掃描分區(qū)來進行操作。
[0068]一般來說,可以用與上面討論的108類似的方式對測試包裝器802進行配置,包括在圖3和圖5中被描繪為108A和108B的詳細實施例。為了方便起見,在圖8中將相應(yīng)的邏輯描繪為測試接口邏輯812。如前所描述,測試包裝器802包括用于經(jīng)由適當?shù)慕Y(jié)構(gòu)接口(如同由復(fù)用器814和816所描繪的)促進測試輸入和輸出信號的路由的邏輯。特定類型的結(jié)構(gòu)接口將取決于由結(jié)構(gòu)808實現(xiàn)的相應(yīng)的結(jié)構(gòu)體系結(jié)構(gòu)和協(xié)議,其表示任何類型的現(xiàn)有或未來的結(jié)構(gòu)體系結(jié)構(gòu)。一般來說,總體的測試包裝器和相關(guān)聯(lián)的測試分區(qū)方案對于實現(xiàn)的特定結(jié)構(gòu)來說是不可知的。
[0069]如上面所討論的,測試包裝器802處理大部分測試操作,這些測試操作包括到主機IP模塊IP-1的接口。同時,將隔離包裝器804和806保持在隔離模式,從而可以在沒有干擾去往和來自結(jié)構(gòu)808的通信的情況下執(zhí)行對IP模塊IP-2和IP-3的測試。在一個實施例中,如圖8中所描繪的,這可以經(jīng)由相應(yīng)的空閑狀態(tài)機(ISM)818和820來實現(xiàn),空閑狀態(tài)機818和820可操作地耦合到復(fù)用器822、824、826和828。通常,ISM是有限狀態(tài)機,其確保在測試期間結(jié)構(gòu)獲得針對隔離包裝器804和806的正確的握手信號。以與上面針對測試包裝器108描述的類似方式,隔離包裝器可以被配置為操作作為結(jié)構(gòu)信號直通,這可以是在測試操作外部使用的配置。當操作處于直通模式時,由針對每個IP模塊的結(jié)構(gòu)接口模塊促進握手信號。
[0070]測試分區(qū)中的主機IP模塊被用于實現(xiàn)對分區(qū)中的其它IP模塊的測試(結(jié)合來自測試接口邏輯812的測試激勵),并用于促進將與測試分區(qū)中的IP模塊相對應(yīng)的測試結(jié)果數(shù)據(jù)傳送回測試包裝器802,測試包裝器802接著以與上面針對圖1和IA的TAM體系結(jié)構(gòu)所描述的類似方式將結(jié)果轉(zhuǎn)發(fā)回測試控制器(未示出)。例如,可以將在IP模塊IP-UIP-2和IP-3上執(zhí)行的掃描測試的結(jié)果返回測試包裝器802、分組并且經(jīng)由結(jié)構(gòu)808轉(zhuǎn)發(fā)回測試控制器。
[0071]在前述實施例中,單一主機IP模塊被用于促進對測試分區(qū)中的多個IP模塊進行測試。然而,這并不意味著是限制性的,因為測試包裝器可以被配置為使用替換的配置向測試分區(qū)中的多個IP模塊提供測試輸入。例如,多個IP模塊中的每一個IP模塊可以包括其自己的一組IP測試端口,并且接收來自測試包裝器的測試輸入,以及將結(jié)果傳輸回測試包裝器,或者可以使用混合方案,該混合方案針對一些操作和測試包裝器與一個或多個其它IP模塊之間的邊帶通信使用主機IP模塊。
[0072]還應(yīng)當注意的是,針對使用壓縮/解壓縮的掃描體系結(jié)構(gòu),測試包裝器可以被配置為與壓縮/解壓縮邏輯接口。在這種配置下,測試包裝器將向解壓縮模塊進行饋送,并且將獲得自壓縮模塊返回的掃描響應(yīng)數(shù)據(jù)。該方案提供兩個優(yōu)點。第一,測試包裝器避免了對掃描鏈的內(nèi)部數(shù)量的改變。基于針對產(chǎn)品的大容量制造需求,可以在不影響測試包裝器的情況下對IP的掃描鏈的內(nèi)部數(shù)量進行修改。第二,可以將IP的外部掃描鏈的數(shù)量(即,測試包裝器所觀察到的掃描鏈的數(shù)量)標準化為與結(jié)構(gòu)的寬度相等或者更小的數(shù)字,從而使得掃描數(shù)據(jù)的一個移位循環(huán)可以在一個數(shù)據(jù)周期中在結(jié)構(gòu)上傳輸。這在極大程度上簡化了測試控制器和測試包裝器二者的設(shè)計,從而進一步降低硬件開銷。
[0073]測試控制器和測試包裝器的組合使用提供了用于有效地傳送去往和來自IUT的測試命令、測試激勵和測試結(jié)果的機制,從而在不需要全局布線的情況下使得ATE有效地耦合到每個IP。此外,TAM體系結(jié)構(gòu)支持重用和可擴展性,同時使生成和實現(xiàn)特定測試的需要最小化,這促進了要求針對每個SoC設(shè)計或衍生物的相應(yīng)電路。例如,一旦已經(jīng)設(shè)計了針對給定IP模塊的測試包裝器,每當在使用類似的通信體系結(jié)構(gòu)(例如,相同的互連結(jié)構(gòu))的SoC中實現(xiàn)IP模塊的實例時,就可以使用該測試包裝器設(shè)計。此外,可以設(shè)想測試控制器可以被配置為支持跨越多個SoC體系結(jié)構(gòu)和/或衍生物的測試。例如,“通用的”測試控制器可以被配置為支持跨越芯片集家族的測試??蛇x地,可以使用針對包含可參數(shù)化的子部件(諸如信號的類型和數(shù)量)以及可以使用編譯器指令包含/排除的子部件的測試控制器的可配置的RTL模塊。作為另一個選擇,用作“測試控制器生成器”的程序或腳本可以用于使用預(yù)編碼的構(gòu)造塊和模板來生成定制的測試控制器鄰近備用設(shè)備。
[0074]本文中公開的發(fā)明的示例性實施例將本發(fā)明的各個方面的實現(xiàn)示為實現(xiàn)在半導(dǎo)體芯片(如同SoC體系結(jié)構(gòu)所示例的)上。此外,可以在機器可讀介質(zhì)內(nèi)實現(xiàn)本說明書的實施例。例如,可以將上述設(shè)計存儲在與用于設(shè)計半導(dǎo)體器件的設(shè)計工具相關(guān)聯(lián)的機器可讀介質(zhì)上和/或嵌入該機器可讀介質(zhì)內(nèi)。示例包括在VHSIC硬件描述語言(VHDL)語言或Verilog語言中格式化的網(wǎng)表。一些網(wǎng)表的示例包括:行為級網(wǎng)表、寄存器傳輸級(RTL)網(wǎng)表、門級網(wǎng)表和晶體管級網(wǎng)表。機器可讀介質(zhì)還包括具有布局信息(諸如⑶S-1I文件)的介質(zhì)。此外,可以在仿真環(huán)境中使用半導(dǎo)體芯片設(shè)計的網(wǎng)表文件或其它機器可讀介質(zhì)以執(zhí)行上述教導(dǎo)的方法。
[0075]對本發(fā)明的圖示的實施例的上述描述(包括在摘要中描述的內(nèi)容),并非旨在窮舉或?qū)⒈景l(fā)明限制為所公開的精確形式。雖然出于說明的目的在本文中描述了本發(fā)明的具體實施例和示例,但如同相關(guān)領(lǐng)域的技術(shù)人員將認識到的,在本發(fā)明的范圍內(nèi)的各種等同修改是可能的。
[0076]根據(jù)上面的【具體實施方式】可以對本發(fā)明做出這些修改。在以下的權(quán)利要求書中所使用的術(shù)語不應(yīng)該被解釋為將本發(fā)明限制為在本說明書和附圖中公開的具體實施例。而是,本發(fā)明的范圍完全由下面的權(quán)利要求來確定,其應(yīng)當根據(jù)確立的權(quán)利要求解釋的教義來解釋。
【權(quán)利要求】
1.一種片上系統(tǒng)(SoC),包括: 互連結(jié)構(gòu); 知識產(chǎn)權(quán)(IP)模塊,其可操作地耦合到所述互連結(jié)構(gòu);以及 測試包裝器,其通信地耦合到所述互連結(jié)構(gòu)及所述IP模塊中的每一個; 其中,響應(yīng)于經(jīng)由所述互連結(jié)構(gòu)接收到包括測試數(shù)據(jù)和/或測試命令的測試封裝,所述測試包裝器被配置為:向所述IP模塊提供相應(yīng)的測試輸入數(shù)據(jù)、控制和/或激勵信號以在所述IP模塊中的電路上執(zhí)行一個或多個測試操作。
2.根據(jù)權(quán)利要求1所述的SoC,其中,所述互連結(jié)構(gòu)包括Intel片上系統(tǒng)結(jié)構(gòu)或開放內(nèi)核協(xié)議結(jié)構(gòu)中的一個。
3.根據(jù)權(quán)利要求1所述的SoC,其中,所述IP模塊包括結(jié)構(gòu)接口,并且所述測試包裝器被配置為:支持互連結(jié)構(gòu)信號直通到所述IP模塊的所述結(jié)構(gòu)接口,以使得所述IP模塊能夠通信地耦合到所述互連結(jié)構(gòu)。
4.根據(jù)權(quán)利要求1所述的SoC,其中,所述測試包裝器包括結(jié)構(gòu)接口電路,所述結(jié)構(gòu)接口電路被配置為與以第一時鐘頻率操作的互連結(jié)構(gòu)接合,并且所述測試包裝器被配置為與使用以第二時鐘頻率操作的信號的IP模塊的IP測試端口接合。
5.根據(jù)權(quán)利要求1所述的SoC,其中,所述測試包裝器被配置為:從所述IP模塊接口接收測試結(jié)果數(shù)據(jù),并且將所述測試結(jié)果數(shù)據(jù)分組到一個或多個分組中,并且經(jīng)由所述互連結(jié)構(gòu)向被用以促進測試所述SoC的測試部件發(fā)送所述一個或多個分組。
6.根據(jù)權(quán)利要求1所述的SoC,還包括: 多個IP模塊,其可操作地耦合到所述互連結(jié)構(gòu);以及 多個測試包裝器,每個測試包裝器通信地耦合到所述互連結(jié)構(gòu)以及相應(yīng)的IP模塊; 其中,所述測試包裝器中的每一個被配置為經(jīng)由所述互連結(jié)構(gòu)接收測試封裝,并且向其相應(yīng)的IP模塊提供對應(yīng)的測試輸入數(shù)據(jù)、控制和/或激勵信號以執(zhí)行由所述IP模塊中的電路上的所述測試封裝所定義的一個或多個測試操作。
7.根據(jù)權(quán)利要求1所述的SoC,其中,所述測試包裝器被配置為在所述IP模塊上執(zhí)行掃描測試。
8.一種片上系統(tǒng)(SoC),包括: 互連結(jié)構(gòu); 包括測試分區(qū)的多個知識產(chǎn)權(quán)(IP)模塊,其可操作地耦合到所述互連結(jié)構(gòu);以及 測試包裝器,其通信地耦合到所述互連結(jié)構(gòu)以及所述多個IP模塊中的至少一個IP模塊中的每一個; 其中,響應(yīng)于經(jīng)由所述互連結(jié)構(gòu)接收到包括測試數(shù)據(jù)和測試命令的測試封裝,所述測試包裝器被配置為:向所述測試包裝器通信地耦合到的至少一個IP模塊提供對應(yīng)的測試輸入數(shù)據(jù)、控制和/或激勵信號,以在所述多個IP模塊中的每一個IP模塊中的電路上執(zhí)行一個或多個測試操作。
9.根據(jù)權(quán)利要求8所述的SoC,還包括至少一個隔離包裝器,每個隔離包裝器通信地耦合到所述互連結(jié)構(gòu)和相應(yīng)的IP模塊,其中,所述隔離包裝器被配置為:在于所述IP模塊上執(zhí)行至少一個測試操作期間,將相應(yīng)的IP模塊與所述互連結(jié)構(gòu)隔離。
10.根據(jù)權(quán)利要求9所述的SoC,其中,所述測試包裝器和所述至少一個隔離包裝器可配置為:促進信號在所述多個IP模塊和所述互連結(jié)構(gòu)之間的直通。
11.根據(jù)權(quán)利要求10所述的SoC,其中,所述測試包裝器通信地耦合到包括主機IP模塊的單個IP模塊,并且所述主機IP模塊被配置為:向所述測試分區(qū)中的其它IP模塊提供測試輸入信號,并且將與在所述其它IP模塊和所述主機IP模塊上執(zhí)行的測試相對應(yīng)的測試結(jié)果數(shù)據(jù)返回到所述測試包裝器。
12.根據(jù)權(quán)利要求10所述的SoC,其中,所述測試包裝器被配置為:接收與在所述多個IP模塊上執(zhí)行的測試相對應(yīng)的測試結(jié)果數(shù)據(jù),并且將所述測試結(jié)果數(shù)據(jù)分組到一個或多個分組中,并且經(jīng)由所述互連結(jié)構(gòu)將所述一個或多個分組發(fā)送到被用以促進測試所述SoC的測試部件。
13.—種方法,包括: 通過以下步驟對包括片上系統(tǒng)(SoC)中的測試分區(qū)的多個IP模塊進行測試: 經(jīng)由互連結(jié)構(gòu),向集成在所述SoC上并通信地耦合到所述IP模塊中的至少一個IP模塊和所述互連結(jié)構(gòu)的測試包裝器傳送測試數(shù)據(jù)和/或測試命令;以及 經(jīng)由所述測試包裝器,向所述測試分區(qū)中的所述至少一個IP模塊提供測試輸入數(shù)據(jù)、控制和/或激勵信號,以促進對與所述測試數(shù)據(jù)和/或測試命令相對應(yīng)的所述多個IP模塊的電路級測試。
14.根據(jù)權(quán)利要求13所述的方法,還包括: 在集成到所述SoC上的測試控制器處接收來自所述SoC外部的測試器的測試器輸入;` 在所述測試控制器處基于所述測試器輸入生成測試封裝,所述測試封裝包括所述測試數(shù)據(jù)和/或測試命令;并且 經(jīng)由所述互連結(jié)構(gòu)從所述測試控制器向所述測試包裝器傳送作為一個或多個分組的所述測試封裝。
15.根據(jù)權(quán)利要求14所述的方法,還包括: 在所述測試包裝器處接收與所述多個IP模塊的電路測試相對應(yīng)的測試結(jié)果數(shù)據(jù),并且 經(jīng)由所述互連結(jié)構(gòu)從所述測試包裝器向所述測試控制器傳送包括所述測試結(jié)果數(shù)據(jù)的一個或多個分組,所述測試結(jié)果數(shù)據(jù)包括在所述IP模塊上執(zhí)行的電路測試。
16.根據(jù)權(quán)利要求13所述的方法,還包括:在所述多個IP模塊中的至少一個IP模塊的電路測試期間,將所述多個IP模塊中的至少一個IP模塊與所述互連結(jié)構(gòu)隔離。
17.根據(jù)權(quán)利要求16所述的方法,還包括: 在所述電路測試期間,采用至少一個隔離包裝器來將所述多個IP模塊中的至少一個IP模塊與所述互連結(jié)構(gòu)隔離;以及 在所述電路測試完成之后,將所述至少一個隔離包裝器配置為:促進信號在所述多個IP模塊中的至少一個IP模塊與所述互連結(jié)構(gòu)之間的直通。
18.根據(jù)權(quán)利要求13所述的方法,其中,所述測試包裝器通信地耦合在所述多個IP模塊中的一個IP模塊與所述互連結(jié)構(gòu)之間,所述方法還包括:將所述測試包裝器配置為使信號從所述IP模塊直通到所述互連結(jié)構(gòu)。
19.根據(jù)權(quán)利要求13所述的方法,其中,所述測試包裝器通信地耦合到包括主機IP模塊的IP模塊中的一個,所述方法還包括:從所述測試包裝器向所述主機IP模塊提供測試輸入;以及 采用所述主機IP模塊以向所述測試分區(qū)中的至少一個其它IP模塊提供測試數(shù)據(jù)或測試激勵中的至少一個,以促進所述至少一個其它IP模塊的電路測試。
20. 根據(jù)權(quán)利要求19所述的方法,還包括: 在所述主機IP模塊處收集來自所述至少一個其它IP模塊的測試結(jié)果數(shù)據(jù);以及
【文檔編號】G06F13/14GK103492890SQ201180069866
【公開日】2014年1月1日 申請日期:2011年12月21日 優(yōu)先權(quán)日:2011年3月9日
【發(fā)明者】S·帕蒂爾, A·賈斯, P·利謝爾內(nèi)斯 申請人:英特爾公司