專利名稱:芯片內(nèi)調(diào)試系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路以及與此類似產(chǎn)品的測(cè)試。更明確的說(shuō),本發(fā)明涉及一種用來(lái)對(duì)集成電路進(jìn)行功能測(cè)試的芯片內(nèi)調(diào)試系統(tǒng)。
背景技術(shù):
集成電路,包括處理器,比如CPU以及其它同類設(shè)備,為了保證其正常功能需要充分的測(cè)試,稱為調(diào)試。隨著集成電路變得更快更復(fù)雜,全面功能測(cè)試的需求變得更加重要。
已有大量的技術(shù),用來(lái)為包括處理器在內(nèi)的集成電路提供調(diào)試支持。其中一種這樣的方法利用專用芯片內(nèi)邏輯,比如,一系列的斷點(diǎn)。所謂斷點(diǎn),是指處理器的控制流中,允許修改處理器運(yùn)行的點(diǎn)。舉例來(lái)說(shuō),斷點(diǎn)可以引發(fā)大量的可能事件,像停止運(yùn)行,比如,為了進(jìn)入調(diào)試監(jiān)測(cè)模式或監(jiān)測(cè)模式,等等。設(shè)備控制流通常是一些指令,微處理器用它來(lái),比如,執(zhí)行一個(gè)特定功能。當(dāng)處理器進(jìn)入調(diào)試監(jiān)測(cè)模式,控制的運(yùn)行停止,處理器進(jìn)入與外部仿真器的通信狀態(tài)。在與外部仿真器通信時(shí),用戶可以查看處理器在某一特定斷點(diǎn)的運(yùn)行。舉例來(lái)說(shuō),如果在某一地址執(zhí)行存儲(chǔ)器處理,同樣的存儲(chǔ)器處理過(guò)程也可以進(jìn)入仿真系統(tǒng),這樣用戶就能看到。
習(xí)慣上,芯片制造商采取兩種方法之一,來(lái)實(shí)現(xiàn)芯片內(nèi)邏輯調(diào)試支持。方法一,芯片制造商為同一芯片生產(chǎn)兩種變體,產(chǎn)品版用來(lái)銷售,測(cè)試版專門用來(lái)做仿真測(cè)試。不幸的是,由于所有的產(chǎn)品芯片都必須做兩份,而測(cè)試芯片不能銷售(不能為芯片制造商帶來(lái)利潤(rùn)),因此使用同一產(chǎn)品芯片的兩種變體在很大程度上增加了制造成本。方法二,芯片制造商可以這樣實(shí)現(xiàn)芯片內(nèi)邏輯調(diào)試支持,把產(chǎn)品芯片本身的一部分做成專用的邏輯單元,以滿足定義所需斷點(diǎn)的需要。不幸的是,把產(chǎn)品芯片本身的一部分專用來(lái)實(shí)現(xiàn)調(diào)試支持,增加了設(shè)計(jì)時(shí)間,還給設(shè)計(jì)者縮小芯片規(guī)模帶來(lái)不利的影響。另外,為了實(shí)現(xiàn)最小量的產(chǎn)品芯片不動(dòng)產(chǎn)(real estate)專用來(lái)做這種芯片內(nèi)邏輯,需要芯片內(nèi)邏輯量相應(yīng)的減小。芯片內(nèi)邏輯的減少,減小了芯片內(nèi)邏輯提供足夠的必需調(diào)試功能的能力。因此,為了補(bǔ)償這種芯片內(nèi)調(diào)試支持的削減,通常就要雇傭外部測(cè)試人員,大大增加了制造后的后期費(fèi)用。
另一種用來(lái)為處理器提供調(diào)試支持的技術(shù)稱作實(shí)時(shí)跟蹤。實(shí)時(shí)跟蹤使得用戶能夠查看處理器運(yùn)行過(guò)程中,所選內(nèi)部總線和所選內(nèi)部數(shù)據(jù)處理。通常,提供內(nèi)部總線和內(nèi)部數(shù)據(jù)處理的訪問(wèn),需要使用專用外連接芯片。一般,專用外連接芯片由一個(gè)標(biāo)準(zhǔn)產(chǎn)品芯片和外加的外部總線組成,這些總線實(shí)現(xiàn)與被測(cè)設(shè)備所需的連接,允許訪問(wèn)所選的內(nèi)部總線和數(shù)據(jù)寄存器。不幸的是,隨著芯片規(guī)模和復(fù)雜度的增加,所需的專用外連接塊數(shù)量急劇增加。由于連接塊的數(shù)量被專用外連接芯片的大小所限,對(duì)于非常大的,以及/或,非常復(fù)雜的芯片,使用實(shí)時(shí)跟蹤技術(shù)所能得到的信息量實(shí)際上是有限的。這與這類設(shè)備的需求正好相反。另外,隨著集成電路速度的增加,每一測(cè)試周期信息類型的數(shù)據(jù)量急劇增加。這種信息速率的增加,有可能超出仿真器,和/或,任意介入其中的數(shù)據(jù)總線的能力。
考慮到上述情況,很顯然,需要一些改進(jìn)的芯片內(nèi)調(diào)試系統(tǒng)。
發(fā)明概要這里描述了一種為集成電路提供調(diào)試支持的改進(jìn)的芯片內(nèi)調(diào)試系統(tǒng),以及調(diào)試這些集成電路的方法。更明確的說(shuō),該調(diào)試支持系統(tǒng)用來(lái),根據(jù)需要,提供集成電路產(chǎn)生的所有可能數(shù)據(jù)帶(data band)的一個(gè)所選子集。
在本發(fā)明的一個(gè)方案中,公開(kāi)了一種集成電路,用來(lái)選擇性提供所選內(nèi)部部件的操作測(cè)試數(shù)據(jù)。響應(yīng)控制信號(hào)電子部件產(chǎn)生數(shù)據(jù)帶形式的操作數(shù)據(jù)。這些數(shù)據(jù)帶用來(lái)評(píng)價(jià)集成電路的功能。集成電路具有多個(gè)輸入/輸出線,用來(lái)將電子部件連接至外部電路。響應(yīng)測(cè)試程序,外部電路給出控制信號(hào),它能夠指導(dǎo)所選電子部件產(chǎn)生相關(guān)的數(shù)據(jù)帶。集成電路還帶有一個(gè)數(shù)據(jù)帶選擇器,它與多個(gè)電子部件相連接??刂菩盘?hào)依據(jù)測(cè)試程序中的指令,指導(dǎo)數(shù)據(jù)帶選擇器選擇某些特定的數(shù)據(jù)帶。
在本發(fā)明的另一個(gè)方案中,集成電路為芯片內(nèi)系統(tǒng)型集成電路。
本發(fā)明還有另一個(gè)方案,公開(kāi)了適合用來(lái)進(jìn)行集成電路功能測(cè)試的一種芯片內(nèi)測(cè)試系統(tǒng)。該芯片內(nèi)調(diào)試系統(tǒng)包括一個(gè)主機(jī),用來(lái)運(yùn)行可執(zhí)行指令,一個(gè)與主機(jī)相連的仿真器,依據(jù)從主機(jī)接收的指令產(chǎn)生控制和邏輯信號(hào),以及被測(cè)設(shè)備(DUT)集成電路,它響應(yīng)仿真器產(chǎn)生的控制和邏輯信號(hào)而連接到仿真器。該被測(cè)設(shè)備(DUT)集成電路具有多個(gè)電子部件,其中一些特定的電子部件產(chǎn)生指示該電子部件的特定操作特性的相關(guān)數(shù)據(jù)帶,以響應(yīng)外部信號(hào)。被測(cè)設(shè)備集成電路還包括一個(gè)連接到特定電子部件的可編程數(shù)據(jù)帶選擇器。依據(jù)從仿真器經(jīng)由數(shù)據(jù)帶選擇器控制線接收來(lái)的控制信號(hào),可編程數(shù)據(jù)帶選擇器輸出所選中的數(shù)據(jù)帶。
仍然是在本發(fā)明的另一個(gè)方案中,調(diào)試系統(tǒng)包括一個(gè)與仿真器相連的主目標(biāo)板,它具有一個(gè)整體連接到其上的主DUT集成電路,以及一個(gè)與仿真器相連的從目標(biāo)板,它具有一個(gè)整體連接到其上的從DUT集成電路。該調(diào)試系統(tǒng)還包括與主目標(biāo)板和從目標(biāo)板相連的比較器,用它來(lái)確保主DUT和從DUT同步運(yùn)行。
在本發(fā)明的另一個(gè)方面,公開(kāi)了一種集成電路。該集成電路包括多個(gè)電子部件,產(chǎn)生數(shù)據(jù)帶以響應(yīng)外部信號(hào),這些數(shù)據(jù)帶是運(yùn)行信息。集成電路還包括一個(gè)與多個(gè)電子部件相連的數(shù)據(jù)帶選擇器,外部電路產(chǎn)生的控制信號(hào)指導(dǎo)其選擇某些特定的數(shù)據(jù)帶。
本發(fā)明的再一個(gè)方面,公開(kāi)了一種使用芯片內(nèi)調(diào)試系統(tǒng)調(diào)試集成電路的方法。該芯片內(nèi)調(diào)試系統(tǒng)包括一個(gè)主機(jī),用來(lái)運(yùn)行可執(zhí)行指令,一個(gè)與主機(jī)相連的仿真器,根據(jù)從主機(jī)接受來(lái)的指令產(chǎn)生控制和邏輯信號(hào),以及被測(cè)設(shè)備集成電路,它響應(yīng)仿真器產(chǎn)生的控制和邏輯信號(hào)與仿真器相連,被測(cè)設(shè)備(DUT)集成電路包括多個(gè)電子部件,其中某些電子部件根據(jù)外部信號(hào)產(chǎn)生表明該電子部件特定的操作特性的相應(yīng)的數(shù)據(jù)帶,還包括與特定電子部件相連的可編程數(shù)據(jù)帶選擇器,它依據(jù)從仿真器經(jīng)由數(shù)據(jù)帶選擇器控制線接收來(lái)的控制信號(hào),輸出所選的數(shù)據(jù)帶。進(jìn)行測(cè)試時(shí),選擇數(shù)據(jù)帶進(jìn)行跟蹤,選擇斷點(diǎn),來(lái)查看在DUT集成電路控制流某一位置上某一參數(shù)的運(yùn)行特性。把測(cè)試程序載入仿真器,執(zhí)行測(cè)試程序,獲取所選的數(shù)據(jù)帶,如果探測(cè)到斷點(diǎn)則獲取結(jié)果數(shù)據(jù)。然后,對(duì)獲取的數(shù)據(jù)進(jìn)行后處理,重復(fù)此過(guò)程,直到獲取了所有的數(shù)據(jù)帶并進(jìn)行了后處理。
對(duì)附圖的簡(jiǎn)要描述本發(fā)明的闡述是以例子的方式,而不是通過(guò)限定,在所附的圖中,相同的標(biāo)號(hào)指代相同的元件,其中
圖1A是一個(gè)調(diào)試系統(tǒng)的方塊圖,對(duì)應(yīng)于本發(fā)明的一種方案;圖1B是數(shù)據(jù)帶分組的圖解,對(duì)應(yīng)于本方明的一種方案;圖1C是基于三態(tài)驅(qū)動(dòng)器的數(shù)據(jù)帶選擇器圖解,對(duì)應(yīng)于本發(fā)明的一種方案;圖1D是內(nèi)嵌于處理器中的數(shù)據(jù)帶選擇器圖解,對(duì)應(yīng)于本發(fā)明的一種方案;圖2是一種集成電路調(diào)試系統(tǒng)的方塊圖,對(duì)應(yīng)于本發(fā)明的一種方案;圖3是一個(gè)流程圖,詳細(xì)說(shuō)明了使用芯片內(nèi)調(diào)試系統(tǒng)的方法,對(duì)應(yīng)于本發(fā)明的一種方案;圖4顯示了一種芯片內(nèi)調(diào)試系統(tǒng),它具有一臺(tái)主目標(biāo)設(shè)備,和至少一臺(tái)從設(shè)備,對(duì)應(yīng)于本發(fā)明的一種方案;圖5是一個(gè)流程圖,詳細(xì)說(shuō)明了使用具有主目標(biāo)設(shè)備和至少一臺(tái)從設(shè)備的芯片內(nèi)調(diào)試系統(tǒng)的方法,對(duì)應(yīng)于本發(fā)明的一種方案;以及圖6顯示了一種芯片內(nèi)調(diào)試系統(tǒng),它適合調(diào)試芯片內(nèi)系統(tǒng)型的集成電路,對(duì)應(yīng)于本發(fā)明的一種方案。
首選方案的詳細(xì)描述為了提供對(duì)本發(fā)明的全面了解,在如下的詳細(xì)描述中提出了大量的具體方案。但是,很顯然,對(duì)于那些在本領(lǐng)域有熟練技能的人,如果沒(méi)有這些具體描述,或者使用替代的元件或方法,也能夠?qū)嵤┍景l(fā)明。在其它的一些例子里,一些眾所周知的過(guò)程、步驟、元件和電路并沒(méi)有詳細(xì)說(shuō)明,這樣可以避免不必要地使得本發(fā)明的某些方面變得模糊。
先看圖1A,所示是根據(jù)本發(fā)明實(shí)施方案的被測(cè)設(shè)備(DUT)集成電路100的圖解。DUT集成電路100包含了子系統(tǒng)102。在本發(fā)明的一種方案里,子系統(tǒng)可以是處理器單元,例如多個(gè)計(jì)算機(jī)系統(tǒng)都帶有的中央處理器單元(CPU),用來(lái)運(yùn)行可執(zhí)行指令,這些指令存儲(chǔ)在,例如包含在DUT集成電路100中的數(shù)據(jù)寄存器里,但圖中沒(méi)有顯示。子系統(tǒng)102還可以是打印機(jī)接口單元,例如,當(dāng)DUT集成電路100是下面將要討論的芯片內(nèi)系統(tǒng)型集成電路時(shí)。在此例中,子系統(tǒng)102被定義為處理器單元102,典型的如CPU。可是,本發(fā)明不應(yīng)該被解釋為只限于CPU或其它處理器,事實(shí)上,對(duì)任意類型的集成電路都適用。
在本發(fā)明的一種首選方案里,處理器102用來(lái)產(chǎn)生數(shù)據(jù)帶,每個(gè)數(shù)據(jù)帶是所有存在信息的一個(gè)子集,該信息反映了和處理器102相關(guān)的所選運(yùn)行參數(shù)。數(shù)據(jù)帶通常為數(shù)據(jù)位形式,由包含在處理器102中的相關(guān)部件根據(jù)它們特定的運(yùn)行特性所產(chǎn)生。用這一方法,在任意特定時(shí)刻,用戶可以選擇一個(gè)代表著所選部件所有運(yùn)行參數(shù)的一個(gè)子集的數(shù)據(jù)帶或跟蹤。正如圖1B所示,數(shù)據(jù)帶1可以使FPI數(shù)據(jù)、FPI地址,也可以是CPU PC信息,而數(shù)據(jù)帶2可以包含,比如,DMA/PCPPC以及CPU PC信息。而數(shù)據(jù)帶3可以包含CPU讀/寫(xiě)數(shù)據(jù),CPU ALU結(jié)果數(shù)據(jù),和CPU PC數(shù)據(jù)。需要注意的是,這些組合只是示例性的,不應(yīng)該解釋為限定性的。
產(chǎn)生相關(guān)數(shù)據(jù)帶的部件通過(guò)數(shù)據(jù)帶連接104硬連線于處理器102內(nèi)。舉例來(lái)說(shuō),處理器102中的部件A,通過(guò)產(chǎn)生數(shù)據(jù)帶1而響應(yīng)適當(dāng)?shù)耐獠啃盘?hào)。而數(shù)據(jù)帶1輸出到相應(yīng)的數(shù)據(jù)帶連接104A。通過(guò)這種方式,處理器102中提供足夠的處理器調(diào)試能力所需的內(nèi)部連接數(shù)量?jī)H限制于那些產(chǎn)生數(shù)據(jù)帶的連接。
DUT集成電路100,還包括一個(gè)與數(shù)據(jù)帶連接104相連的可編程數(shù)據(jù)帶選擇器106,用來(lái)接收來(lái)自于處理器102中部件的數(shù)據(jù)帶。可編程數(shù)據(jù)帶選擇器106把所選的數(shù)據(jù)帶輸出到數(shù)據(jù)帶總線108上。應(yīng)注意,和整個(gè)集成電路100的總不動(dòng)產(chǎn)相比,數(shù)據(jù)帶選擇器106的規(guī)模相對(duì)較小,并沒(méi)有過(guò)多地消耗有價(jià)值的集成電路的不動(dòng)產(chǎn)。另外,數(shù)據(jù)帶選擇器106可以升級(jí)以適應(yīng)不同的技術(shù),且不依賴于任何特定的集成電路制造技術(shù)平臺(tái)。
在一個(gè)實(shí)現(xiàn)中,數(shù)據(jù)帶選擇器106是一個(gè)可編程N(yùn)×M多路器,具有N個(gè)來(lái)自處理器102的輸入,和M個(gè)到下面將要討論的仿真器的輸出。N×M多路器的這種可編程屬性給數(shù)據(jù)帶選擇器106帶來(lái)了靈活性,而這正是容納所選數(shù)據(jù)帶大量組合的需要。在另外的實(shí)現(xiàn)中,如圖1C所示,數(shù)據(jù)帶選擇器106包括三態(tài)驅(qū)動(dòng)器120,可控地連接著數(shù)據(jù)帶連接104和數(shù)據(jù)帶總線108。而三態(tài)驅(qū)動(dòng)器120再由三態(tài)驅(qū)動(dòng)器選擇電路122控制。外部電路產(chǎn)生的選擇控制信號(hào)指導(dǎo)了三態(tài)驅(qū)動(dòng)器選擇電路122。這樣的外部電路可以包含下面將要討論的仿真器。這種設(shè)計(jì)適合于流出數(shù)據(jù)流收到限制的情況。比如,當(dāng)數(shù)據(jù)帶總線108只可以容納與有限數(shù)量的數(shù)據(jù)帶相關(guān)的信息數(shù)據(jù)流時(shí),就出來(lái)了這種情況。顯示在圖1D中的本發(fā)明的再一個(gè)方案里,數(shù)據(jù)帶選擇器106(比如它也可以包含三態(tài)驅(qū)動(dòng)器)可以內(nèi)嵌在處理器102中。這樣,由于帶選擇在處理器102內(nèi)部實(shí)現(xiàn),處理器102的輸出數(shù)量就減少了。如果內(nèi)嵌數(shù)據(jù)帶選擇器包含了三態(tài)驅(qū)動(dòng)器,則三態(tài)驅(qū)動(dòng)器由處理器102控制。
現(xiàn)在看圖2,圖中顯示的是根據(jù)本發(fā)明的一種方案的集成電路調(diào)試系統(tǒng)200。集成電路調(diào)試系統(tǒng)200中包含一個(gè)通過(guò)仿真器/IC接口數(shù)據(jù)總線204與DUT集成電路100相連的仿真器202。仿真器/IC接口數(shù)據(jù)總線204通過(guò)數(shù)據(jù)帶總線108與數(shù)據(jù)帶選擇器106相連,它把所選的數(shù)據(jù)帶從數(shù)據(jù)帶選擇器106傳送到仿真器202。
請(qǐng)注意,在本發(fā)明的一種方案里,仿真器/IC總線204與數(shù)據(jù)帶總線108的連接可以是DUT(“被測(cè)設(shè)備”)套接字,在許多高速的測(cè)試器以及類似的系統(tǒng)中能夠找到。不過(guò),在一個(gè)首選方案里,DUT集成電路100整體與一個(gè)印刷電路板(PCB)連接,比如,在這種情況下,集成電路被測(cè)設(shè)備/PCB被稱作目標(biāo)設(shè)備。
仿真器202還與主機(jī)206相連。主機(jī)206在終端用戶(沒(méi)有顯示)和仿真器之202間提供了用戶接口。主機(jī)206通常具有顯示器208,終端用戶用它來(lái)查看,比如實(shí)時(shí)測(cè)試結(jié)果,或者,當(dāng)集成電路100的全部或部分測(cè)試完成后再查看結(jié)果。
主機(jī)206還為仿真器202提供可執(zhí)行指令。在一種方案里,仿真器202處理接收來(lái)的指令,以形成各種控制和邏輯信號(hào),用來(lái)測(cè)試DUT集成電路100。由仿真器202提供的測(cè)試相關(guān)的控制信號(hào),由選擇控制線210傳送,選擇控制線210連接了數(shù)據(jù)帶選擇器106與仿真器202。這些控制信號(hào)包含選擇器控制信號(hào),選擇器106利用它,通過(guò)仿真器/IC總線204,把特定的數(shù)據(jù)帶從處理器102傳送到仿真器202。在一種方案里,數(shù)據(jù)帶的選擇是根據(jù)終端用戶產(chǎn)生的指令,這些指令通過(guò)主機(jī)206送到仿真器202。在另一個(gè)方案里,數(shù)據(jù)帶的選擇是根據(jù)軟件產(chǎn)生的指令,這些軟件存在于主機(jī)206中。這種安排在自動(dòng)測(cè)試設(shè)備中比較典型,比如,這樣的設(shè)備具有一個(gè)帶存儲(chǔ)器(本地或遠(yuǎn)程)的中央處理器,用來(lái)產(chǎn)生所需的指令集。
能夠選擇性地選取某一個(gè)數(shù)據(jù)帶,或某一個(gè)數(shù)據(jù)帶組合,通過(guò)仿真器/IC接口數(shù)據(jù)總線204(同時(shí)也經(jīng)過(guò)數(shù)據(jù)帶總線108)傳送給仿真器202,這一能力的提供避免了傳統(tǒng)調(diào)試/測(cè)試系統(tǒng)的許多問(wèn)題。舉例來(lái)說(shuō),限制所選的數(shù)據(jù)帶數(shù)量,或者明智地給數(shù)據(jù)帶分組以限制單個(gè)測(cè)試周期處理的數(shù)據(jù)總量,可以避免仿真器202或數(shù)據(jù)總線204、108上數(shù)據(jù)流過(guò)載的問(wèn)題。
圖3是一個(gè)流程圖,詳細(xì)說(shuō)明了使用根據(jù)本發(fā)明的一種方案的芯片內(nèi)調(diào)試系統(tǒng)的方法300。使用芯片內(nèi)調(diào)試系統(tǒng)的方法開(kāi)始于選擇一個(gè)需要獲取的數(shù)據(jù)帶(302)。需要注意的是,依據(jù)特定的需要和該芯片內(nèi)調(diào)試系統(tǒng)各種部件的屬性,可以選取任意數(shù)量的數(shù)據(jù)帶。一旦選取了特定的數(shù)據(jù)帶,測(cè)試程序被載入目標(biāo)設(shè)備(304)。測(cè)試程序通常包含一些可執(zhí)行指令,目標(biāo)設(shè)備中的集成電路被測(cè)設(shè)備用它來(lái),比如,在恰當(dāng)?shù)臅r(shí)刻產(chǎn)生所需的數(shù)據(jù)帶。當(dāng)程序載入目標(biāo)設(shè)備后,便在目標(biāo)設(shè)備上運(yùn)行,以產(chǎn)生所選的數(shù)據(jù)帶(從現(xiàn)在開(kāi)始成為跟蹤)(306)。然后與目標(biāo)設(shè)備相連的仿真器獲取跟蹤(308)。接著,主機(jī)確定是否需要獲取另一個(gè)數(shù)據(jù)帶(310)。如果主機(jī)確定需要獲取另一個(gè)數(shù)據(jù)帶,則選擇下一個(gè)數(shù)據(jù)帶(302),控制轉(zhuǎn)回到(304)。如果主機(jī)確定不需要獲取新的數(shù)據(jù)帶,則仿真器對(duì)獲取的跟蹤進(jìn)行后處理(312),處理結(jié)果傳送到和仿真器相連的主機(jī),并顯示于顯示器上(314)。
在需要獲取多個(gè)數(shù)據(jù)帶的情況下,使用一個(gè)目標(biāo)就必須多次執(zhí)行測(cè)試以獲得所需數(shù)量的數(shù)據(jù)帶。獲取后,后處理需要對(duì)獲取得數(shù)據(jù)帶(或跟蹤)進(jìn)行校對(duì)。在一些情況下,由于一些難以控制的因素,不同數(shù)據(jù)帶獲取之間的時(shí)間間隔往往帶來(lái)差異。這些因素包括,與被測(cè)處理器基本操作性無(wú)關(guān)的處理器操作中的隨機(jī)變動(dòng),由于仿真器和/或主機(jī)性能的隨機(jī)波動(dòng)引起的測(cè)試性能的變動(dòng),等等。為了有效消除這些時(shí)間相關(guān)的、以及其它類型的測(cè)試變動(dòng),而不采取消耗時(shí)間的重復(fù)操作,本發(fā)明的另一個(gè)方案采用主/從設(shè)置。
圖4是一個(gè)主/從芯片內(nèi)調(diào)試系統(tǒng)400,對(duì)應(yīng)于本發(fā)明的一種方案。主/從系統(tǒng)400包括一個(gè)主目標(biāo)402,從目標(biāo)404,比較器406,以及仿真器408,這些都與主機(jī)(沒(méi)有顯示)相連。需要注意的是,為了使得由于芯片性能以外的因素引起的變動(dòng)最小,主目標(biāo)402和從目標(biāo)404必須充分的相同。主目標(biāo)402包括主被測(cè)設(shè)備(DUT),它具有一個(gè)通過(guò)數(shù)據(jù)帶總線414與處理器412相連的數(shù)據(jù)帶選擇器410。處理器412把主目標(biāo)校準(zhǔn)信號(hào)輸出到輸出線416上,比較器406接收該信號(hào)。數(shù)據(jù)帶選擇器410通過(guò)總線418與仿真器408相連,根據(jù)仿真器408的指導(dǎo),傳送主處理器412產(chǎn)生的所選數(shù)據(jù)帶。
從目標(biāo)404包括從被測(cè)設(shè)備(DUT),它具有一個(gè)通過(guò)數(shù)據(jù)帶總線424與處理器422相連的數(shù)據(jù)帶選擇器420。處理器422把從目標(biāo)校準(zhǔn)信號(hào)輸出到輸出線426上,比較器406接收該信號(hào)。數(shù)據(jù)帶選擇器420通過(guò)總線428與仿真器408相連,根據(jù)仿真器408的指導(dǎo),傳送從處理器412產(chǎn)生的所選數(shù)據(jù)帶。
在單個(gè)測(cè)試周期里,主/從芯片內(nèi)調(diào)試系統(tǒng)400設(shè)置成充分同時(shí)地產(chǎn)生所選數(shù)據(jù)帶。為了獲取所需的數(shù)據(jù)帶反復(fù)執(zhí)行測(cè)試,這種設(shè)置避免了這種情況下由于芯片性能的隨機(jī)變動(dòng)帶來(lái)的不正確。由于比較器406的行為保證了主DUT和從DUT的同步,就避免了校準(zhǔn)誤差,注意到這一點(diǎn)很重要。
運(yùn)行中,主機(jī)把所需的測(cè)試程序載入主DUT和從DUT中。依據(jù)主機(jī)提供的指令,仿真器408向數(shù)據(jù)帶選擇器410和420發(fā)送數(shù)據(jù)帶選擇信號(hào),指明每個(gè)數(shù)據(jù)帶選擇器要提供某一個(gè)數(shù)據(jù)帶,或某些數(shù)據(jù)帶。舉例來(lái)說(shuō),如果在一個(gè)測(cè)試周期里,需要產(chǎn)生數(shù)據(jù)帶A和數(shù)據(jù)帶B,仿真器408把數(shù)據(jù)帶選擇信號(hào)Aselect。送給數(shù)據(jù)帶選擇器410,把數(shù)據(jù)帶選擇信號(hào)Bselect。送給數(shù)據(jù)帶選擇器420。仿真器408把測(cè)試開(kāi)始信號(hào)送給主DUT和從DUT。主DUT把主DUT校準(zhǔn)信號(hào)輸出到輸出線416,與此同時(shí)從DUT把從校準(zhǔn)信號(hào)輸出到輸出線426上。然后校準(zhǔn)器406校準(zhǔn)主DUT和從DUT產(chǎn)生的信號(hào),確定主DUT和從DUT同步運(yùn)行。值得注意的是,在一個(gè)首先方案里,比較器406不斷地檢查以保證主DUT和從DUT同步。如果比較器406確定主DUT和從DUT不同步,則向主機(jī)發(fā)送一個(gè)表明這件事的信號(hào),然后主機(jī)采取適當(dāng)?shù)男袆?dòng)。
一旦比較器406確定主DUT和從DUT同步操作,仿真器408便獲取由主DUT產(chǎn)生的數(shù)據(jù)帶A,與此同時(shí)獲取由從DUT產(chǎn)生的數(shù)據(jù)帶B。接著仿真器把數(shù)據(jù)帶A和B送到主機(jī)以供后處理。此過(guò)程可以重復(fù)足夠多次,直到獲取了所需數(shù)量的數(shù)據(jù)帶。
需要注意的是,可以在主DUT和每個(gè)從DUT中設(shè)置不同的斷點(diǎn)標(biāo)準(zhǔn)。這樣,可能設(shè)置的最大斷點(diǎn)數(shù)至少為(n+1),其中n為從DUT數(shù)目。
在本發(fā)明的另一個(gè)方案里,如果單個(gè)測(cè)試周期中需要獲取大量的數(shù)據(jù)帶,則任意數(shù)量的從目標(biāo)可以和主目標(biāo)聯(lián)合使用。然而,需要注意的是,每一個(gè)從目標(biāo)都必須與主目標(biāo)保持同步。
圖5是一個(gè)流程圖,詳細(xì)說(shuō)明了使用主/從芯片內(nèi)調(diào)試系統(tǒng)的方法500,對(duì)應(yīng)于本發(fā)明的一種方案。使用主/從芯片內(nèi)調(diào)試系統(tǒng)的方法,開(kāi)始于選擇需要獲取的主目標(biāo)數(shù)據(jù)帶(502)。選擇了主數(shù)據(jù)帶后,選擇對(duì)應(yīng)的從數(shù)據(jù)帶。值得注意的是,在這點(diǎn)上,需要選擇所需數(shù)量的從數(shù)據(jù)帶。一旦選擇了所有的主數(shù)據(jù)帶和相應(yīng)的從數(shù)據(jù)帶,主機(jī)把測(cè)試程序載入仿真器(506)。測(cè)試程序載入仿真器后,通過(guò)設(shè)置主DUT中適當(dāng)?shù)財(cái)?shù)據(jù)寄存器,在主目標(biāo)中設(shè)置各個(gè)斷點(diǎn)(508)。主DUT中的斷點(diǎn)設(shè)置完畢后,在從DUT中設(shè)置相關(guān)斷點(diǎn)(510)。當(dāng)設(shè)置了主和從DUT中所有斷點(diǎn),仿真器便運(yùn)行測(cè)試程序(512)。如果測(cè)試程序的運(yùn)行過(guò)程中沒(méi)有探測(cè)到斷點(diǎn)(514),控制回到(512)。然而,如果運(yùn)行中探測(cè)到斷點(diǎn)(514),則結(jié)果送入主機(jī),并在顯示器上顯示(516)。如果檢查了斷點(diǎn)數(shù)據(jù)后,主機(jī)(或終端用戶,如果有)確定繼續(xù)程序的運(yùn)行(518),則程序運(yùn)行再繼續(xù),控制回到(512)。如果,確定程序的運(yùn)行不再繼續(xù),則程序停止。
圖6顯示了一個(gè)適合調(diào)試芯片內(nèi)系統(tǒng)型集成電路的芯片內(nèi)調(diào)試系統(tǒng)600,對(duì)應(yīng)于本發(fā)明的一種方案。芯片內(nèi)調(diào)試系統(tǒng)600包括一個(gè)芯片內(nèi)系統(tǒng)型的集成電路602。芯片602通常包含任意數(shù)量的系統(tǒng),比如,中央處理器604,打印機(jī)控制器608,輸入/輸出控制器610,等等,每一個(gè)都能夠產(chǎn)生相關(guān)的數(shù)據(jù)帶集。系統(tǒng)602-610的每一個(gè)都與數(shù)據(jù)帶選擇器612相連,仿真器614使用數(shù)據(jù)帶選擇器信號(hào),指導(dǎo)數(shù)據(jù)帶選擇器612選擇數(shù)據(jù)帶的任意組合。
運(yùn)行中,仿真器614把測(cè)試程序載入系統(tǒng)604-610中需要產(chǎn)生數(shù)據(jù)帶型操作數(shù)據(jù)的任意系統(tǒng)。一旦載入,所選系統(tǒng)便產(chǎn)生相關(guān)的數(shù)據(jù)帶,經(jīng)由數(shù)據(jù)帶選擇器612,這些數(shù)據(jù)帶被有選擇性地送入仿真器614。根據(jù)主機(jī)(沒(méi)有顯示)建立的協(xié)議,仿真器614對(duì)獲取的數(shù)據(jù)帶進(jìn)行后處理。為了全面地評(píng)價(jià)集成電路602中所有的系統(tǒng),此過(guò)程可以重復(fù)所需的次數(shù)。
需要注意的是,集成電路602中的一些系統(tǒng),可以用上面討論的主/從設(shè)置來(lái)測(cè)試。通過(guò)使用主/從設(shè)置,集成電路602中的許多系統(tǒng)可以被充分同步地測(cè)試。
這里描述的設(shè)置有許多的優(yōu)點(diǎn)。一個(gè)這樣的優(yōu)點(diǎn)是本發(fā)明減少了為了調(diào)試集成電路所需的引出線。另外的優(yōu)點(diǎn)包括不再需要單個(gè)產(chǎn)品芯片的兩個(gè)變體。另外,通過(guò)使用主和從設(shè)置,可以非常同時(shí)地評(píng)價(jià)大量數(shù)據(jù),避免了時(shí)間相關(guān)的校準(zhǔn)誤差。而且,本發(fā)明提供了一種簡(jiǎn)單、經(jīng)濟(jì)的方法,來(lái)調(diào)試芯片內(nèi)系統(tǒng)型的集成電路。此外,通過(guò)選擇性地選取單個(gè)測(cè)試周期的數(shù)據(jù)帶,精簡(jiǎn)了送入仿真器的處理數(shù)據(jù),減小了使得仿真系統(tǒng)過(guò)載的可能性。所描述的發(fā)明適合任意電路,包括但不僅限于那些包括微處理器在內(nèi)的電路,以及那些與此類似的。
盡管這里僅僅詳細(xì)描述了本發(fā)明的幾個(gè)方案,需要注意的是,在不偏離本發(fā)明精髓和范圍的前提下,可以以許多其它的具體形式實(shí)施本發(fā)明。特別是盡管本發(fā)明主要以具有處理器子系統(tǒng)的集成電路來(lái)描述,包括減少引出線在內(nèi)的優(yōu)點(diǎn),同樣適用于任意能夠產(chǎn)生大量相關(guān)于,比如,操作信息的設(shè)備。
另外,對(duì)應(yīng)于特定系統(tǒng)的需要,調(diào)試系統(tǒng)特性可以多種多樣。因此,這里的例子應(yīng)該被看作示例性的,而不是限定性的,并且本發(fā)明不能被限制于所給的細(xì)節(jié),而是可以在所附權(quán)利要求的范圍類作出修改。
權(quán)利要求
1.一種集成電路,用來(lái)選擇性地提供其中所選部件的操作測(cè)試數(shù)據(jù),電子部件響應(yīng)控制信號(hào),產(chǎn)生數(shù)據(jù)帶形式的操作數(shù)據(jù),數(shù)據(jù)帶被用來(lái)評(píng)價(jià)集成電路的功能,該集成電路包括多個(gè)輸入/輸出線,恰當(dāng)安排用來(lái)連接電子部件和外部電路,外部電路用來(lái)響應(yīng)測(cè)試程序提供控制信號(hào),控制信號(hào)可以指導(dǎo)所選的電子部件產(chǎn)生相關(guān)的數(shù)據(jù)帶;以及與多個(gè)電子部件相連的數(shù)據(jù)帶選擇器,用于依據(jù)測(cè)試程序中的指令,選擇控制信號(hào)指導(dǎo)的某些數(shù)據(jù)帶。
2.如權(quán)利要求1的集成電路,其中至少一個(gè)電子部件是處理器單元。
3.如權(quán)利要求1的集成電路,其中的數(shù)據(jù)帶選擇器包括多個(gè)與電子部件相連的輸入線;多個(gè)與外部電路相連的輸出數(shù)據(jù)總線,用來(lái)傳送所選電子部件產(chǎn)生的數(shù)據(jù)帶;多個(gè)三態(tài)驅(qū)動(dòng)器,其輸入連接到輸入線,輸出連接到輸出數(shù)據(jù)總線;以及與三態(tài)驅(qū)動(dòng)器相連的三態(tài)驅(qū)動(dòng)器選擇器,響應(yīng)控制信號(hào),啟動(dòng)所選的三態(tài)驅(qū)動(dòng)器。
4.如權(quán)利要求1的集成電路,其中集成電路是芯片內(nèi)系統(tǒng)型集成電路。
5.一種適合進(jìn)行集成電路功能測(cè)試的芯片內(nèi)調(diào)試系統(tǒng),包括用來(lái)運(yùn)行可執(zhí)行指令的主機(jī);與主機(jī)相連的仿真器,依據(jù)從主機(jī)接收來(lái)的指令產(chǎn)生控制和邏輯信號(hào);以及與仿真器相連的被測(cè)設(shè)備集成電路(DUT),響應(yīng)仿真器產(chǎn)生的控制和邏輯信號(hào),被測(cè)設(shè)備(DUT)集成電路,包括多個(gè)電子部件,其中某些電子部件通過(guò)產(chǎn)生相關(guān)的數(shù)據(jù)帶響應(yīng)外部信號(hào),這些數(shù)據(jù)帶表明該電子部件特定的操作特性,以及與某些電子部件相連的可編程數(shù)據(jù)帶選擇器,依據(jù)從仿真器經(jīng)由數(shù)據(jù)帶選擇器控制線接收到的控制信號(hào),輸出所選的數(shù)據(jù)帶。
6.如權(quán)利要求5的調(diào)試系統(tǒng),還包括一個(gè)主目標(biāo)板,它具有一個(gè)整體連接其上的主DUT集成電路,主目標(biāo)板與仿真器相連;一個(gè)從目標(biāo)板,它具有一個(gè)整體連接其上的從DUT集成電路,從目標(biāo)板與仿真器相連;一個(gè)與主目標(biāo)板和從目標(biāo)板相連的比較器,比較器用來(lái)接收運(yùn)行過(guò)程中主DUT集成電路輸出的主校準(zhǔn)信號(hào),和從DUT集成電路輸出的從校準(zhǔn)信號(hào),比較器比較主校準(zhǔn)信號(hào)和從校準(zhǔn)信號(hào),輸出一個(gè)相關(guān)的比較器輸出電壓,表明主和從DUT集成電路操作的同步性。
7.如權(quán)利要求5的調(diào)試系統(tǒng),其中DUT集成電路是一個(gè)芯片內(nèi)系統(tǒng)型集成電路。
8.如權(quán)利要求7的調(diào)試系統(tǒng),其中芯片內(nèi)系統(tǒng)型的集成電路包括多個(gè)系統(tǒng),它們中的每一個(gè)都產(chǎn)生相關(guān)的數(shù)據(jù)帶集,表明該系統(tǒng)所選操作特性。
9.如權(quán)利要求6的調(diào)試系統(tǒng),當(dāng)主DUT集成電路和從DUT集成電路非同步操作時(shí),比較器輸出電壓使得主機(jī)指導(dǎo)仿真器停止對(duì)主、從DUT集成電路的調(diào)試。
10.如權(quán)利要求9的調(diào)試系統(tǒng),其中主機(jī)是一臺(tái)PC。
11.如權(quán)利要求9的調(diào)試系統(tǒng),其中主機(jī)是一臺(tái)工作站。
12.如權(quán)利要求9的調(diào)試系統(tǒng),其中仿真器是一種自動(dòng)測(cè)試器,該自動(dòng)測(cè)試器結(jié)合了中央處理器,存儲(chǔ)器,和I/O設(shè)備,用來(lái)為DUT集成電路提供指令,對(duì)從數(shù)據(jù)帶選擇器接收來(lái)的數(shù)據(jù)帶進(jìn)行后處理。
13.一種使用芯片內(nèi)調(diào)試系統(tǒng)調(diào)試集成電路的方法,該芯片內(nèi)調(diào)試系統(tǒng)包括一個(gè)主機(jī),用來(lái)運(yùn)行可執(zhí)行指令,一個(gè)與主機(jī)相連的仿真器,用來(lái)依據(jù)來(lái)自主機(jī)的指令產(chǎn)生控制和邏輯信號(hào),以及與仿真器相連的被測(cè)設(shè)備(DUT)集成電路,響應(yīng)仿真器產(chǎn)生的控制和邏輯信號(hào),被測(cè)設(shè)備(DUT)集成電路包括多個(gè)電子部件,其中的某些電子部件通過(guò)產(chǎn)生相關(guān)的數(shù)據(jù)帶以響應(yīng)外部信號(hào),這些數(shù)據(jù)帶表明該電子部件特定的操作特性,以及一個(gè)與某些電子部件相連的可編程數(shù)據(jù)帶選擇器,依據(jù)從仿真器經(jīng)由數(shù)據(jù)帶選擇器控制線來(lái)的控制信號(hào),輸出所選的數(shù)據(jù)帶,該方法由一下步驟組成(a)選擇要跟蹤的數(shù)據(jù)帶;(b)選擇斷點(diǎn),用來(lái)在DUT集成電路控制流中某一特定位置,查看特定參數(shù)的操作特性;(c)把測(cè)試程序載入仿真器;(d)運(yùn)行測(cè)試程序;(e)獲取所選數(shù)據(jù)帶;(f)當(dāng)探測(cè)到斷點(diǎn)時(shí),獲取結(jié)果數(shù)據(jù);(g)取得數(shù)據(jù)帶進(jìn)行后處理;以及(h)重復(fù)步驟(a)到(g),指導(dǎo)獲取了所有的數(shù)據(jù)帶。
全文摘要
本文介紹了一種改進(jìn)的芯片內(nèi)調(diào)試系統(tǒng)。該芯片內(nèi)調(diào)試系統(tǒng)包含了數(shù)據(jù)帶選擇器,它根據(jù)需要,有選擇性地將集成電路中處理器產(chǎn)生的數(shù)據(jù)帶傳送給仿真器。仿真器依據(jù)從主機(jī)那里接收來(lái)的指令,指導(dǎo)數(shù)據(jù)帶選擇器。
文檔編號(hào)G01R31/3183GK1339128SQ99816502
公開(kāi)日2002年3月6日 申請(qǐng)日期1999年12月21日 優(yōu)先權(quán)日1999年1月22日
發(fā)明者A·溫策, E·切斯特斯, R·G·弗勒克, G·謝蒂 申請(qǐng)人:因芬尼昂技術(shù)北美公司