專利名稱::將生產(chǎn)測試接口接至全局串行總線的方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬數(shù)據(jù)處理領(lǐng)域,具體地說,與將生產(chǎn)測試接口接至諸如互聯(lián)集成電路(I2C)總線之類的全局串行總線的方法和裝置有關(guān)。I2C總線是一個工業(yè)標(biāo)準(zhǔn)串行雙向2線總線,通常用于互連一個或多個主從控制的多個集成電路。I2C總線包括兩條總線線路,一條是串行數(shù)據(jù)線路(SDA),另一條是串行時鐘線路(SCA)。I2C總線支持任何集成電路(IC)生產(chǎn)工藝,如負溝道金屬氧化物半導(dǎo)體(NMOS)、互補金屬氧化物半導(dǎo)體(CMOS)和雙極性半導(dǎo)體。在多個接到I2C總線上的器件之間由兩條線路載運串行數(shù)據(jù)(SDA)和串行時鐘(SLC)信息。需要有一些方法和有效機制將諸如遵從IEEE1145.1規(guī)范的聯(lián)合測試動作組(JointTestActionGroup)JTAG接口之類的生產(chǎn)測試接口接至包括互聯(lián)集成電路(interintegratedcircuit(I2C))總線的全局串行總線。所希望的是可以用諸如I2C總線之類的全局串行總線查詢VPD信息、提供寄存器訪問和執(zhí)行多個掛到這串行總線上的器件(包括存儲器和IO子系統(tǒng))內(nèi)的測試。本發(fā)明的主要目的是提供將一個生產(chǎn)測試接口接至一個包括互聯(lián)集成電路(I2C)總線在內(nèi)的全局串行總線的方法和裝置。其他目的是使這樣的方法和裝置基本上沒有不良影響和克服現(xiàn)有技術(shù)的許多缺點。簡要地說,本發(fā)明為將一個生產(chǎn)測試接口接至一個諸如互聯(lián)集成電路(I2C)總線那樣的全局串行總線提供了方法和裝置。需傳送至和來自全局串行總線的數(shù)據(jù)由輸入/輸出緩存邏輯緩存。一個接至輸入/輸出緩存邏輯的從控接口邏輯從輸入/輸出緩存邏輯接收數(shù)據(jù)和向輸入/輸出緩存邏輯發(fā)送數(shù)據(jù)。接至輸入/輸出緩存邏輯和從控制接口邏輯的從控控制器調(diào)整輸入/輸出緩存邏輯的數(shù)據(jù)交換步調(diào)。按照本發(fā)明的一個特點,在輸入/輸出緩存器與全局串行總線之間配有差錯檢測邏輯,用來檢測差錯。本發(fā)明及其以上和其他目的和優(yōu)點從以下對附圖所示的優(yōu)選實施例的詳細說明中可以看得更為清楚。在這些附圖中圖1為示出按優(yōu)選實施例實現(xiàn)的生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的方框圖;圖2為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的從控數(shù)據(jù)和控制寄存器的方框圖。圖3為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的從控IO緩存邏輯的方框圖;圖4為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的從控測試接入口(TAP)接口的方框圖;圖5為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的從控控制器的方框圖;圖6為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機與物理接口之間數(shù)據(jù)調(diào)步的方框圖;圖7為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的IO緩存邏輯與I2C從屬狀態(tài)機的從控測試接入口(TAP)接口之間的數(shù)據(jù)調(diào)步的方框圖;圖8為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的從控差錯處理邏輯的方框圖;圖9為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的多個狀態(tài)的方框圖10A和10B分別示出了按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的原始寫控制流程和原始讀控制流程;圖10C和10D分別示出了按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的寄存器寫控制流程和寄存器讀控制流程;圖10E和10F分別示出了按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的I2C從控狀態(tài)機的控制寫控制流程和控制讀控制流程;以及圖11為示出按優(yōu)選實施例實現(xiàn)的圖1所示生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置的測試接入口(TAP)和邊界掃描體系結(jié)構(gòu),入口的方框圖。下面結(jié)合圖1說明按本發(fā)明實現(xiàn)的生產(chǎn)測試接口與全局互聯(lián)集成電路(I2C)總線互連裝置100。生產(chǎn)測試接口與I2C總線互連裝置100包括一個從屬I2C狀態(tài)機和翻譯器102,通過I2C物理接口104接至I2C總線106。生產(chǎn)測試接口與I2C總線互連裝置100可以做在單個集成電路芯片上。I2C狀態(tài)機和翻譯器102通過內(nèi)部JTAG總線110與多路器(MUX)108連接。MUX108接至外部JTAG總線112??刂戚斎?13加到MUX108上,以在內(nèi)部JTAG總線110和外部JTAG總線112之間進行選擇。測試接入口和邊界掃描體系結(jié)構(gòu),入口114或其它的JTAG實現(xiàn)方式,接在MUX108與時鐘控制、內(nèi)建自檢(BIST)和其他功能118、多達223個結(jié)構(gòu)寄存器120和一些JTAG可掃描寄存器或測試數(shù)據(jù)寄存器(TDR)122之間。按照本優(yōu)選實施例的特點,生產(chǎn)測試接口與I2C總線互連裝置100以一種獨到的方式溝通了I2C總線106和JTAG測試接入口(TAP)入口114,使互連裝置100既支持固有的I2C寄存器傳送協(xié)議又支持全部的JTAG功能。生產(chǎn)測試接口與I2C總線互連裝置100遵從工業(yè)標(biāo)準(zhǔn)的I2C總線協(xié)議,但又不限制JTAG功能。生產(chǎn)測試接口與I2C總線互連裝置100大大減輕了互連布線,引進了芯片級尋址能力,定義了直接存儲器映射輸入/輸出(MMIO)讀寫寄存器尋址能力。按照本優(yōu)選實施例的特點,有了生產(chǎn)測試接口與I2C總線互連裝置100就能使用對于電路內(nèi)數(shù)據(jù)通路、測試和實驗室/現(xiàn)場調(diào)試功能的生產(chǎn)測試硬件。生產(chǎn)測試接口與I2C總線互連裝置100引入了一個新的掃描控制器指令,掃描通信即讀,減少了I2C總線106上的寄存器讀響應(yīng)等待。生產(chǎn)測試接口與I2C總線互連裝置100簡化和減少了系統(tǒng)級生產(chǎn)測試的連接。系統(tǒng)級生產(chǎn)測試對于測試接口可以只用單個I2C連接106,從而簡化了測試連線過程和執(zhí)行綜合和內(nèi)建測試所需的軟件。I2C狀態(tài)機和翻譯器102將通過I2C總線106發(fā)送的數(shù)據(jù)變換為固有的JTAG命令。I2C狀態(tài)機和翻譯器102可以用作一個與入口114對接的TAP控制器,以執(zhí)行對接在I2C總線106上的芯片內(nèi)的寄存器進行讀、寫和掃描。I2C狀態(tài)機和翻譯器102可以啟動邏輯內(nèi)建自檢(LBIST)或數(shù)組內(nèi)建自檢(ABIST)、掃描JTAGTDR122、控制芯片計時,以及任何其他可通過JTAG總線112啟動由入口114實現(xiàn)的功能。生產(chǎn)測試接口與I2C總線互連裝置100采用7比特從尋址模式,可以直接對27個從控對象尋址。這個協(xié)議意味著一個被尋址的從控對象響應(yīng)讀/寫,對存儲器內(nèi)由這個具體從控對象規(guī)定處開始的相繼字節(jié)進行串行訪問。生產(chǎn)測試接口與I2C總線互連裝置100將直接尋址擴展到223,對8字節(jié)對準(zhǔn)寄存器進行操作。此外,還可執(zhí)行由入口114支持的寄存器讀/寫以外的操作。串行I2C總線106包括串行數(shù)據(jù)(SDA)和串行時鐘(SCL)兩條線路,在總線靜止時復(fù)位為1。任何總線主控都可以用一個啟動比特(SDA1→0,而SCL=“1”)發(fā)起消息傳送。I2C總線協(xié)議對數(shù)據(jù)分組操作,每個分組一字節(jié)寬,每個分組后接一個確認比特(0=良好確認)。消息傳送開始后,從控在確認比特定時期間有權(quán)驅(qū)動SDA,而主控在其他時間有權(quán)驅(qū)動SCL和SDA。主控邏輯始終擁有時鐘。從控除了確認比特外占用SDA來讀。在SCL計時(0→1→0)期間每個SDA數(shù)據(jù)/確認比特必需保持穩(wěn)定的1或0,使得SDA在SCL的上升沿前就建立,一直保持到SCL的下降沿,而在SCL為低電平時再轉(zhuǎn)換。分組的比特以最高有效比特(bit1)首先發(fā)送。啟動字節(jié)的比特1-7為具體從控芯片的地址。啟動字節(jié)的比特8是一個讀/寫比特。寫是以主控發(fā)送字節(jié)而從控確認應(yīng)答進行的。在主控寫了讀啟動字節(jié)后就開始進行讀操作,但在從控確認啟動字節(jié)后數(shù)據(jù)流反向?,F(xiàn)在,從控發(fā)送分組而主控確認。從控一直發(fā)送到主控應(yīng)答Ack=1。所有傳輸都以一個停止比特(SCL=1,而SDS0→1)結(jié)束??偩€在停止比特后重新靜止。IEEE1149.1規(guī)定了一種稱為測試接入口的5線路接口,與邊界掃描體系結(jié)構(gòu)通信。入口114是聯(lián)合測試動作組(JTAG)接口IEEE1149.1規(guī)范的具體實現(xiàn)。JTAG測試接入口(TAP)的5條線路是JTAG測試時鐘輸入(TCK),JTAG測試數(shù)據(jù)輸入(TDI),JTAG測試數(shù)據(jù)輸出(TDO),JTAG測試模式選擇輸入(TMS),以及JTAG測試邏輯復(fù)位輸入(TRST)。測試時鐘輸入(TCK)的上升沿使入口114對TMS和TDI采樣。在TCK上升沿期間的JTAG測試模式選擇輸入(TMS)的值使得在入口114的TAP控制器內(nèi)進行狀態(tài)轉(zhuǎn)移。測試數(shù)據(jù)輸入(TDI)是輸入給入口114的串行數(shù)據(jù)。測試數(shù)據(jù)輸出(TDO)是從入口114輸出的串行數(shù)據(jù)。JTAG測試邏輯復(fù)位輸入(TRST)使測試邏輯異步復(fù)位(TAP→TestLogicRst),恢復(fù)入口114。ShiftIR是使指令在入口114內(nèi)TDI和TDO之間串行移動的狀態(tài)。在TMS保持為0時,每個TCK時鐘使另一個比特從TDI移入指令寄存器,而使IR狀態(tài)移出TDO。指令寄存器的內(nèi)容確定了需訪問的具體TDR,或需執(zhí)行的非寄存器操作。ShiftDR是使許多數(shù)據(jù)寄存器(TDR)之一串接在TDI和TDO之間的狀態(tài)。在TMS保持為0時,每個TCK時鐘使另一個比特從TDI移入寄存器,而使(老)數(shù)據(jù)移出TDO。圖2示出了按優(yōu)選實施例實現(xiàn)的I2C狀態(tài)機和翻譯器102的總標(biāo)為200的一些原始從控數(shù)據(jù)和控制寄存器。I2C從控邏輯200包括一個緩存數(shù)據(jù)、地址和寄存器讀/寫(R/W)的輸入/輸出緩存寄存器(IOBUF)201和一個與之配合的輸入/輸出字節(jié)計數(shù)寄存器(IOCNT)202。I2C從控邏輯200包括一個接在物理接口104和從控JTAG接口204之間的差錯檢測器203。I2C從控邏輯200包括一個接在物理接口104、輸入/輸出字節(jié)計數(shù)寄存器(IOCNT)202和從控JTAG接口204之間的從控控制器206。從控JTAG接口204包括一個串行移位寄存器(SSR)208和一個與之配合的比特計數(shù)寄存器(BCR)210。從控JTAG接口204包括一個測試模式選擇(TMS)的選擇寄存器(TSR)212和TMS終端選擇寄存器(TTSR)214、一個提供測試時鐘輸入(TCK)的時鐘產(chǎn)生器(CG)216和一個提供JTAG測試模式選擇輸入(TMS)的MUX218。物理接口104處理I2C協(xié)議和定時,提供一個1字節(jié)寬的數(shù)據(jù)接口和相應(yīng)的握手信號。SDA指的是由I2C規(guī)定的雙向串行數(shù)據(jù)信號。SCL指的是由I2C規(guī)定的串行時鐘信號。物理接口104的操作通常遵從I2C標(biāo)準(zhǔn)的傳統(tǒng)實施方式。IO緩存器(IOBUF)201對送至和來自由I2C啟動字節(jié)標(biāo)明作為從控芯片的受訪問芯片的相繼字節(jié)進行緩存。IOBUF201內(nèi)的數(shù)據(jù)每次一個字節(jié)地并行送至和來自物理接口104。整個啟動字節(jié)保存在IOBUF201內(nèi),但只有讀/寫比特再由I2C狀態(tài)機102使用。在寫操作期間,數(shù)據(jù)流從I2C總線106流向內(nèi)部JTAG總線110的TDI或TMS。在讀操作期間,數(shù)據(jù)流從內(nèi)部JTAG總線110的TDO流向I2C總線106。串行移位寄存器(SSR)208能并行接收來自IOBUF201或向IOBUF201提供多達8個字節(jié)。這數(shù)據(jù)然后就按IEEE1149.1協(xié)議串行地移至內(nèi)部JTAG總線110和從那里移入。物理接口104對I2C總線106進行監(jiān)視,接收進入/送出的各個字節(jié)。如果字節(jié)是一個啟動字節(jié),物理接口104就將7比特的從控地址與芯片地址相比較。如果地址不一致,就略去這個字節(jié)和其余消息。物理接口104向從控控制器206發(fā)送一個信號,表明已接收到一個字節(jié)。從控控制器206對與IOBUF201的數(shù)據(jù)交換進行調(diào)步,遞減IO計數(shù)(IOCNT)202,使數(shù)據(jù)在IOBUF201內(nèi)正確對齊。在接收到或發(fā)送到消息的結(jié)尾時,或者在IOBUF上溢或下溢時,從控控制器206就在SSR208和IOBUF201之間傳送數(shù)據(jù),觸發(fā)從控JTAG接口204,以執(zhí)行一個或多個JTAG原始操作。在本說明和權(quán)利要求中所謂的原始操作是指由一個或多個測試時鐘輸入(TCK)脈沖組成的一個序列驅(qū)動送至和來自內(nèi)部從控JTAG接口204的測試模式選擇(TMS)、控制,或者TDI/TDO、指令或數(shù)據(jù)/狀態(tài)。圖3示出了實現(xiàn)IOBUF201和IOCNT202的從控IO緩存邏輯。從控IO緩存邏輯201和IOCNT202包括IO計數(shù)寄存器(IOCNTL2)302、正/倒計數(shù)器304、比較器(>“1011”)306、AND門307、IO緩存器(IOBUFL2)308和多路器(MUXIOA,MUXIOB)310和312。IOCNT202等效于IO計數(shù)寄存器(IOCNTL2)302和正/倒計數(shù)器304。在靜止時,IO計數(shù)寄存器(IOCNTL2)302用指向IO緩存器201的最低有效字節(jié)的b“1011”的計數(shù)數(shù)據(jù)(CNTDATA)并行裝載。I2C狀態(tài)機102通過斷言LOADCNT指出CNTDATA有效,送至IOCNTL2302。隨著各字節(jié)通過I2C總線106傳送,計數(shù)遞減,相繼指向下一個最高有效字節(jié)。I2C物理接口104處理傳送比特(最高有效比特先傳),IOBUF201向I2C物理接口104提供和從I2C物理接口104接收字節(jié)(最低有效字節(jié)先送)。如果啟動字節(jié)指出是一個對I2C總線106的讀操作,I2C狀態(tài)機102在準(zhǔn)備將數(shù)據(jù)返回I2C總線106的過程中通過斷言LOADCNT有效和CNTDATA=b“0111”使IOCNT前跳到IO緩存器201的數(shù)據(jù)部分。IOCNT寄存器IOCNTL2302在寄存器讀/寫操作期間再用作一個原始操作步驟計數(shù)器304。在這種模式中,加到步驟計數(shù)器304上的CountUp每次執(zhí)行寄存器讀/寫時序中的下個原始命令步驟時由I2C狀態(tài)機102激活。只有IOBUF201的IOCNTL2和數(shù)據(jù)部改變,而IOBUF地址和啟動字節(jié)保持它們的值不變。12字節(jié)的IO緩存寄存器(IOBUFL2)308從啟動字節(jié)開始自右至左一次一個字節(jié)裝載。來自I2C物理接口104的數(shù)據(jù)根據(jù)信號ISBYTEO到達,由來自I2C狀態(tài)機102的信號COUNTBYTE指為有效。MUXIOA310將IOBUF數(shù)據(jù)反饋給所有字節(jié),除了IOCNT所指字節(jié),它用ISBYTEO上的數(shù)據(jù)代替。讀信息根據(jù)信號ISBYTEI送至物理接口104。MUXIOD312根據(jù)ISBYTEI選擇需驅(qū)動的第IOCNT個字節(jié)。來自SSR208的數(shù)據(jù)在BUFLOAD信號由I2C狀態(tài)機102激活時并行裝入IOBUF201的數(shù)據(jù)部分。這發(fā)生在一個寄存器讀原始時序的最終,或者在一個I2C命令請求時執(zhí)行一個1步驟JTAG原始命令之后。數(shù)據(jù)、命令/地址和r/w比特通過IOBUFL2(095)信號送至I2C狀態(tài)機102和SSR208。由AND門307產(chǎn)生的指示IOBUF充滿/排空狀況。下面的表1提供了多路器(MUXIOA,MUXIOB)310、312的MUX規(guī)定,其中x表示不需考慮。表1MUX規(guī)定MUXIOB312不考慮IOcntL2的最高有效比特,從控邏輯只返回數(shù)據(jù),從不返回地址信息。圖4示出了實現(xiàn)JTAG接口204的測試接入口(TAP)接口邏輯。從控TAP接口邏輯204包括一個TAP時鐘狀態(tài)機(TAPCMSL2)402,多個多路器(MUXA,MUXB,MUXC,MUXD,MUXE)404、406、408、410和412,多個寄存器(SSRL2(063),TTSRL2,TSRL2,BCRL2(05))414、416、418和420,一個倒計數(shù)器421,一個比較器(=“111111”)422,多個鎖存器413、424和426,以及一對AND門428和430。在裝入命令(LOADCMD)信號激活時,測試接入口命令(TAPCMD)被認為對啟動內(nèi)部JTAG總線110上的活動有效。TAPCMD信號的信息如下面所說明的那樣裝入命令寄存器,而1時鐘(ONECLK2)鎖存器426被置為1,以在一個或多個TCK脈沖上釋放。見下面的表2、3和4中對TAP時鐘狀態(tài)機(TAPCSM)402、TAP原始命令接口和MUXD410的規(guī)定。MUXB406提供反饋,在LOADCMD不是有效時保持命令寄存器當(dāng)前值不變。MUXA404同樣也保持SSR(數(shù)據(jù))值不變。TAP時鐘狀態(tài)機(TAPCMSL2)402保持在空閑狀態(tài)(IDLE)直至受到ONECLKL2激活。狀態(tài)機402依次通過狀態(tài)TCKF1、TCKR0、TCKR1再回到IDLE。狀態(tài)機402繼續(xù)通過這些狀態(tài)循環(huán),只要ONECLKL2=1。TCK在TCK上升(TCKR0,TCKR1)狀態(tài)被驅(qū)動為1,有效地將基本從控時鐘四分頻,提供大致為50%的工作比。在TCKR1狀態(tài),BCR遞減,而SSR數(shù)據(jù)右移一個比特。JTAG的TDO在TCK的上升沿采樣的要求通過在TCKR0狀態(tài)用TDO裝入TDOL2鎖存器413來達到。見下面表4內(nèi)的MUXE412的規(guī)定。表2TAP時鐘狀態(tài)機(TAPCSML2)402狀態(tài)機402的狀態(tài)是格雷編碼的,以防止在狀態(tài)轉(zhuǎn)換期間對TCK的誤操作。除非在狀態(tài)表內(nèi)另有規(guī)定,輸出為0。加到MUXA404、MUXB406和BCRL2420的TAP命令(TAPCMD)信號是9字節(jié)寬。第一字節(jié)是一個需由JTAG掃描邏輯204執(zhí)行的原始命令。TMS選擇寄存器(TSRL2TAPCMD比特0)418確定MUXC408將選擇來自SSRL2(063)的SSR數(shù)據(jù)移出給TMS,還是一個常數(shù)值。零0表示在SSRL2414內(nèi)的數(shù)據(jù)是一個TMS控制信息流。1使MUXC選擇一個不變的0值在前N-1個TCK時鐘脈沖期間加到TMS上,然后選擇TTSRL2416的值在第N個(終端)TCK脈沖期間加到TMS上。終端TMS選擇寄存器(TTSRL2TAPCMD比特1)416提供一個值在第N個(終端)TCK脈沖期間加到TMS。TTSRL2416用于長掃描操作,如果SSR的64比特寬度不足以完成掃描的話。TTSRL2=0將溝通一些原始操作,使掃描可以用另一個原始命令繼續(xù)下去。TTSRL2=1通過使入口114內(nèi)的JTAGTAP狀態(tài)離開移位DR或移位IR狀態(tài)終止這操作。通過以一種否則使不用于原始命令的組合方式選通TAPCMD比特0∶1形成測試邏輯復(fù)位(TRST)。AND門428的這個輸出由鎖存器424鎖存,以免測試邏輯復(fù)位TRST信號誤操作。比特計數(shù)寄存器420(BCRL2TAPCMD比特2∶7)規(guī)定隨一個TMS或TDI信息序列發(fā)送的TCK脈沖的個數(shù)。BCR值為b“111110”表示需發(fā)送64個TCK脈沖(整個SSR寄存器414將右移出TDI或TMS),將TDO在左側(cè)移回SSR。BCR=b“111111”是終端計數(shù),指示需釋放一個TCK脈沖。TAPCMD的第一字節(jié)的定義總結(jié)于以下表3。表3TAP原始命令接口</tables>TAPCMD信號的其余比特表示在準(zhǔn)備移出TDI或TMS中需裝入SSR208的數(shù)據(jù)。在BCR達到b“111111”時執(zhí)行這個命令。ONECLKL2鎖存器426返回到0,而TAPCMD狀態(tài)機402復(fù)位,回到空閑狀態(tài)。內(nèi)部JTAG總線110待用。AND門430的CMDDONE信號輸出反饋給I2C從控狀態(tài)機102,作為可以啟動一個新的原始命令的指示符。在以下列出多路器(MUXA,MUXB,MUXC,MUXD,MUXE)404、406、408、410和412的MUX規(guī)定的表4中,x表示不需考慮,而/=表示不等于。表4MUX規(guī)定圖5示出了實現(xiàn)控制器206的從控控制邏輯。從控控制邏輯206包括I2C從控狀態(tài)機邏輯(I2CSSML2(03))502,比較器(=)504,以及傳送TAPCMD的MUXSMA506、傳送數(shù)據(jù)的MUXSMB508和用于控制的MUXSMD510這些多路器。從控控制邏輯206包括寄存器讀/寫(REGRW)總線同步邏輯512。REGRW總線同步邏輯512包括一對AND門514、516,一個SC空閑鎖存器(SCIDLEL2)520,一個NOT門522,以及一個多路器MUXSMB524。從控控制邏輯206執(zhí)行多個基本功能如下。I2C從控狀態(tài)機邏輯(I2CSSML2(03))502對物理接口106和IO緩存邏輯300之間的數(shù)據(jù)交換進行調(diào)步和對IO緩存邏輯300和JTAG掃描邏輯204之間的數(shù)據(jù)交換進行調(diào)步。傳送TAPCMD的MUXSMA506為寄存器讀/寫操作提供一個有序的命令序列。REGRW總線同步邏輯512對JTAG掃描邏輯204和入口114之間的數(shù)據(jù)交換進行調(diào)步。傳送數(shù)據(jù)的MUXSMB508使傳送數(shù)據(jù)的I2C帶寬要求最低。表5、6、7和8分別列出了從控控制器206的MUXSMA506、MUXSMB524、MUXSMC508和MUXSMD510的多路器規(guī)定。IOBUF201和SSR208數(shù)據(jù)并不始終是字節(jié)對等傳送。如果I2C用一個原始命令序列訪問一個短于或不是IOBUF/SSR寄存器寬度的同樣倍數(shù)的TDR時,來自I2C總線106的數(shù)據(jù)在IOBUF201內(nèi)左對齊,使得在接收到所有的有效數(shù)據(jù)時能檢測到上溢。在IOBUF201數(shù)據(jù)裝入SSR208時,數(shù)據(jù)右對齊。從目標(biāo)TDR掃描出的數(shù)據(jù)在SSR208內(nèi)左對齊,并且在再傳送給IOBUF201時保持左對齊,使得在合適時刻能檢測到返回給I2C的數(shù)據(jù)的下溢。REGRW總線同步邏輯512利用SCidle信號使寄存器讀/寫總線同步。在CHKADR狀態(tài),SCidle鎖存器置為1(假設(shè)來自入口114的SCIDLE信號有效)。在一個寄存器R/W(讀/寫)操作啟動時,SCIDLE變?yōu)榈碗娖?,?fù)位SCidleL2520。在寄存器讀操作完成時,SCIDLE和非SCidleL2指示從寄存器讀出的數(shù)據(jù)在入口114內(nèi)可用。在表中的寄存器讀時序存完成第三步后暫停,以利用這個邏輯與寄存器讀總線同步。圖6示出了對IOBUF201和物理接口104之間的數(shù)據(jù)傳送進行調(diào)步所需的信號。這些信號的定義參照狀態(tài)機的說明很容易理解。圖7示出了緩存器201對JTAG掃描邏輯204的數(shù)據(jù)調(diào)步情況。圖中示出了對IOBUF201和JTAG掃描邏輯204之間的數(shù)據(jù)傳送進行調(diào)步所用的信號。這些信號的定義參照狀態(tài)機的說明很容易理解。表5MUX規(guī)定表5續(xù)</tables>表6MUX規(guī)定</tables>表7MUX規(guī)定表8下面參見圖8,圖中示出了實現(xiàn)差錯檢測器203的差錯處理邏輯。差錯處理邏輯203包括一個循環(huán)冗余校驗(CRC)邏輯802,對送至和來自I2C總線106的數(shù)據(jù)進行CRC校驗。差錯處理邏輯203包括一個ACKTYPEMUX804,它的輸入有CRCGood(CRC良好,Attention(注意),IOCNTL2,讀或?qū)?,以及一個來自比較器808的原始命令。I2C狀態(tài)機102和差錯處理邏輯203接收來自JTAGTAP控制器入口114的Attention輸入。這個來自入口114的Attention輸入可以是由于一個寄存器讀/寫總線差錯或一些其他差錯情況而激活的。讀或?qū)懯且粋€來自物理接口104經(jīng)I2C狀態(tài)機緩存的輸入。IOBUFL2是一個從IO緩存邏輯201加到比較器808的輸入。加到比較器808上的TapCmdAdr是一個可作為內(nèi)部常數(shù)或通過芯片IO插針配置的常數(shù)。IOCNTL2是一個從IO緩存邏輯201加到MUX804的輸入。CRC-Good是一個來自CRC邏輯802的信號,指出這個CRC字節(jié)傳送正確。Is_slave_ack_type是一個從差錯處理邏輯800送至物理接口104的輸出。I2C從控用確認脈沖處理差錯。I2C要求數(shù)據(jù)的每個字節(jié)在Ack上有一個確認,或從控地址的第九比特上有一個第九時鐘周期。在從控碰到一個差錯時,它在試圖執(zhí)行一個讀時序時將不再確認它的地址和數(shù)據(jù)。這樣的軟件可以確定有差錯情況,并利用I2C總線106確定引起差錯的原因和可以根據(jù)差錯情況加以恢復(fù)。有幾種情況可能使從控對一個讀或?qū)憰r序不確認。如果已允許CRC校驗,從控將不確認第13個字節(jié),以防軟件蓋寫數(shù)據(jù)。這13個字節(jié)包括從控地址、3個字節(jié)的寄存器讀地址、8個數(shù)據(jù)字節(jié)和1個CRC字節(jié)。寫將只在CRC正確計算和發(fā)送后才能發(fā)生。沒有CRC校驗,如果軟件寫多個8個字節(jié)的數(shù)據(jù),數(shù)據(jù)就會被蓋寫。在Attention信號在入口114內(nèi)升高并且沒有在入口114內(nèi)被堵塞,狀態(tài)機在試圖執(zhí)行一個寄存器直讀時序時將引起一個NoAck。如果執(zhí)行一個寫時序而發(fā)送的3個字節(jié)的地址不是一個原始地址,從控就不確認通過I2C總線發(fā)送的數(shù)據(jù)字節(jié)。一旦允許了CRC校驗,而在I2C總線上發(fā)送的CRC不正確,從控將對下個讀嘗試不確認。表9差錯處理邏輯ACK型MUx804規(guī)定</tables>下面參見圖9、10A、10B、10C、10D、10E和10F,在圖9中示出了狀態(tài)機102的順序狀態(tài)。圖10A和10B分別示出了I2C從控狀態(tài)機102的原始寫控制流程和原始讀控制流程。圖10C和10D分別示出了I2C從控狀態(tài)機102的寄存器寫控制流程和寄存器讀控制流程。圖10E和10F分別示出了I2C從控狀態(tài)機102的控制寫控制流程和控制讀控制流程。在I2C從控狀態(tài)機102的IDLE狀態(tài)902,沒有I2C活動。用b“1011”裝入IOcntL2,直指準(zhǔn)備接收啟動字節(jié)中IOBUFL2的LSByte(最低有效字節(jié))。多個狀態(tài)是一些I2C寫狀態(tài),包括一個AMACH狀態(tài)904、一個WBYTE狀態(tài)906、一個CHKOVRFLW狀態(tài)908和一個WRTACK狀態(tài)910。在這些寫I2C狀態(tài)中,在I2C主控向從控寫字節(jié)時,第一個字節(jié)始終是一個對從控尋址的啟動字節(jié)。啟動字節(jié)的第八個比特是一個讀/寫比特。下面三個字節(jié)可理解為一個寄存器地址、原始TAP命令或從控控制命令。其余的字節(jié)是數(shù)據(jù)。在AMATCH(地址匹配)狀態(tài)904,物理接口104識別出一個啟動字節(jié)后,對一個消息的(下一個)字節(jié)進行匯編。AMATCH狀態(tài)904在一個重復(fù)的啟動或啟動字節(jié)地址不匹配時返回IDLE狀態(tài),使從控回到IDLE。如果消息在接收到前四個字節(jié)(啟動+地址字節(jié))結(jié)束,從控就返回IDLE。如果允許CRC,但檢測到一個CRC差錯,AMATCH狀態(tài)904就返回IDLE狀態(tài)902。AMATCH狀態(tài)904在物理接口104接收到8個或更多個比特時轉(zhuǎn)到WBYTE狀態(tài)906。物理接口104的一個具體實施是在啟動字節(jié)期間在IsStartDetected前指示Is8times,要求將Is8times鎖存(Is8timesL2),使它不致丟失。AMATCH狀態(tài)904在物理接口104接收到一個或多個字節(jié)的數(shù)據(jù)后檢測到一個停止比特時就轉(zhuǎn)到CHKADR狀態(tài)912。在WBYTE(寫字節(jié))狀態(tài)906,來自物理接口的Is_Byte_O寫入IOBUFL2(第IOcntL2個字節(jié)),然后將IOcntL2減1。如果這是一個I2C寫操作,WBYTE狀態(tài)906就轉(zhuǎn)到CHKOVRFLW狀態(tài)908。數(shù)據(jù)流繼續(xù)從主控/發(fā)起方流向從控。如果這是一個I2C讀操作,WBYTE狀態(tài)906就轉(zhuǎn)到CHKADR狀態(tài)。在啟動字節(jié)后數(shù)據(jù)流反向?,F(xiàn)在,主控接收來自從控的數(shù)據(jù)。在CHKOVRFLW(檢查IO緩存器的上(下)溢)狀態(tài)908,沒有行動。在這是一個寫操作,而IOCntL2還沒有從b“0000”覆蓋到b“1111”,說明在IOBUFL2內(nèi)尚有可容納更多字節(jié)的空間時,CHKOVRFLW狀態(tài)908就轉(zhuǎn)到WRTACK狀態(tài)910。在一個寄存器讀或原始命令已經(jīng)充滿IOBUFL2而CHKOVRFLW狀態(tài)908原是從I2C讀狀態(tài)的RBYTE狀態(tài)932轉(zhuǎn)入時,CHKOVRFLW狀態(tài)908就轉(zhuǎn)到WAITREAD狀態(tài)910。讀出一個或多個字節(jié),但IOBUFL2還沒有下溢。轉(zhuǎn)到CHKADRIOBUFL2是充滿/排空,觸發(fā)一個寄存器讀/寫或原始操作。WRTACK(確認I2C字節(jié)剛寫至從控)狀態(tài)910提供一個好的Ack行動,如果在消息的前四個字節(jié)(啟動+3個地址字節(jié))內(nèi)的話。如果寄存器讀地址和Attention是來自入口114,WRTACK狀態(tài)910就提供一個失敗的Ack。IsDoRead(IOBUF讀I2C主控寫的字節(jié))激活,送至物理接口104,指示已為IOBUF準(zhǔn)備好了一個字節(jié)。NeedAckL2復(fù)位。如果這是第四個字節(jié)(剛寫至IOBUF的最后的地址字節(jié);IOcntL2現(xiàn)在=7)而地址指示一個原始命令,檢查ValidBytes,它就根據(jù)這個原始命令的BCR段解碼,以使IOcntL2在數(shù)據(jù)緩存器內(nèi)前跳。例如,BCR=b“000000”,只有兩個字節(jié)將發(fā)送給入口114,因此只需要一個數(shù)據(jù)字節(jié)。IOcntL2提前到b“0000”,使得在數(shù)據(jù)的第一個字節(jié)后將立即發(fā)生上溢。否則,I2C就會浪費時間發(fā)送沒有意義的另7個比特數(shù)據(jù)。WRTACK狀態(tài)910根據(jù)NeedAckL2轉(zhuǎn)到AMATCH狀態(tài)904。物理接口104在發(fā)送/接收Ack后激活一個周期的IsAckSent。在從控狀態(tài)機一直等待到Ack發(fā)送的情況下,NeedAckL2保持不變。在CHKADR(校驗地址)狀態(tài),對IOBUFL2的地址段進行檢查,確定是否為采用I2C從控命令格式的一個寄存器讀/寫、原始或控制命令。對于原始和控制操作,原始信號有效。在這是一個寄存器讀/寫操作的情況下,SCidleL2置位。REGRW總線同步邏輯512將監(jiān)視寄存器讀寫(結(jié)構(gòu)寄存器r/w)總線,以使JTAG命令的各個步驟與寄存器讀/寫操作合拍不致過快。在這是一個讀/寫操作的情況下,IOcntL2寄存器設(shè)置為b“0001”。在這種情況下,IOCNT將逐步通過原始TAP命令的一個規(guī)定時序,以完成寄存器讀/寫操作。如果Attention有效或CRC允許而校驗沒有通過,CHKADR狀態(tài)912就轉(zhuǎn)到IDLE狀態(tài)902,寄存器讀將有失敗的確認(FanilACK)。CHKADR狀態(tài)912在IOBUFL2地址與原始基本地址不一致時轉(zhuǎn)到寄存器讀/寫命令狀態(tài)之一,REGRWGO狀態(tài)918。CHKADR狀態(tài)912在IOBUFL2地址與基本r/w命令地址一致時轉(zhuǎn)到基本命令狀態(tài)之一,LDTAPCMD狀態(tài)914。CHKADR狀態(tài)912在IOBUFL2地址與控制命令地址之一一致時轉(zhuǎn)到CHKSTOP狀態(tài)924。這些命令在沒有任何JTAG總線活動的情況下執(zhí)行。原始命令狀態(tài)包括LDTAPCMD狀態(tài)914和WAITTAPDONE狀態(tài)916。IOBUFL2地址字節(jié)與為直接連到芯片上JTAG接口保留的地址一致。將發(fā)生TMS或TDI/TDO活動,但不是兩者都發(fā)生。最多可達SSRL2寄存器寬度的任何數(shù)量的比特將按照裝入IOBUFL2字節(jié)10的原始TAP命令傳送。在LDTAPCMD(裝入TAP命令)狀態(tài)914,TAP命令從IOBUFL2(字節(jié)10)裝入JTAG接口204。LoadCmd和ValidBytes信號一起將有效字節(jié)對齊的數(shù)據(jù)裝入SSRL2的最右邊的一些字節(jié)。這意味著,數(shù)據(jù)必需由在數(shù)據(jù)段內(nèi)右對齊的I2C發(fā)送。例如,如果BCR為b“000111”,將有9比特發(fā)送給入口114,來自I2C物理接口104的數(shù)據(jù)的LSByte就必需含有8個有效比特,而來自I2C物理接口104的下個字節(jié)含有一個有效比特,它必需作為這個字節(jié)內(nèi)最右邊的那個比特發(fā)送。在WAITTAPDONE(等待TAP完成)狀態(tài)916,沒有行動。JTAG接口204忙于執(zhí)行一個原始TAP命令。WAITTAPDONE狀態(tài)916根據(jù)在硬件結(jié)束后來自JTAG接口204的CmdDone轉(zhuǎn)到CHKSTOP狀態(tài)924。在CHKSTOP(檢查I2C停止?fàn)顩r)狀態(tài)924,寄存器讀/寫操作總是傳送8個字節(jié),但原始命令可以只以在SSRL2內(nèi)有效的數(shù)據(jù)部分結(jié)束。IOcntL2302用指示有效數(shù)據(jù)含有多少個左對齊字節(jié)的ValidBytes裝入。例如,BCR210以b“000111”開始,SSRL2414初始保持右對齊的9個比特,因此只有字節(jié)6、7是有效的。原始命令完成后,獲取的TDO數(shù)據(jù)在SSRL2414內(nèi)左對齊,因此只有字節(jié)0、1是有效的。CHKSTOP狀態(tài)924在檢測到一個I2C停止比特后轉(zhuǎn)到IDLE狀態(tài)902,不需要進一步的行動。這是可能性不大的路徑,除非寄存器讀/寫操作超時延遲很久。CHKSTOP狀態(tài)924在SSR208內(nèi)有讀出的數(shù)據(jù)需要返回給T2C物理接口104時轉(zhuǎn)到LOADRESULTS狀態(tài)926。CHKSTOP狀態(tài)924在I2C物理接口104請求的寫操作結(jié)束后I2C物理接口104等待從控確認最近傳送的字節(jié)時轉(zhuǎn)到WRTACK狀態(tài)910。I2C讀狀態(tài)包括LOADRESULTS狀態(tài)926、READACK狀態(tài)928、WAITREAD狀態(tài)930和RBYTE狀態(tài)932。在I2C讀狀態(tài),I2C物理接口104讀取來自從控的字節(jié)。每次IO緩存器201放出數(shù)據(jù)就執(zhí)行寄存器讀、原始或控制操作后轉(zhuǎn)到LOADRESULTS和READACK狀態(tài)926和928。主控從從控那里收回所有定時權(quán)。主控可以讀一個或多個字節(jié),在Ack=1時終止I2C傳送。由WAITREAD、RBYTE和CHKOVRFLW這些狀態(tài)930、932和908形成的循環(huán)每傳送一個字節(jié)執(zhí)行一次。在LOADRESULTS(將數(shù)據(jù)從SSR裝入IOBUF)狀態(tài)926,如果剛執(zhí)行的JTAG操作是一個原始操作,則數(shù)據(jù)仍在SSRL2414內(nèi),而且必需拷貝入IOBUFL2308。否則,這是已在一個寄存器讀/寫操作的步驟6(見以下說明)中執(zhí)行了的,因此SSR是無用的存儲單元。在READACK(等待對剛從從控讀取的I2C字節(jié)的確認)狀態(tài)928,物理接口104監(jiān)視讀定時,包括等待Ack比特。參見圖6,物理接口104接收到Ack后,就通過激活I(lǐng)AckReady,使NeedAckL2置位,表示它需要IOBUF201放出另一個字節(jié)。于是,IsWrtReady激活,向物理接口104表示下個字節(jié)已就緒,可以從IOBUF201寫到Is_Byte_I。同時,NeedAckL2復(fù)位。READACK狀態(tài)928轉(zhuǎn)到WAITREAD狀態(tài)930,如果物理接口104忙于向主控發(fā)回另一個數(shù)據(jù)字節(jié),或如果Ack=1,等待停止比特,這是I2C協(xié)議允許終止一個讀操作的喉一可能條件。在WAITREAD(等待I2C從從控讀一個字節(jié))狀態(tài)930,沒有行動。物理接口104忙于向主控發(fā)回另一個數(shù)據(jù)字節(jié),或者如果Ack=1,等待停止比特。WAITREAD狀態(tài)930在主控讀取的第一個數(shù)據(jù)字節(jié)用一個“1”來確認時轉(zhuǎn)到IDLE狀態(tài)902,物理接口104一檢測到停止比特就使?fàn)顟B(tài)進入IDLE。否則,NeedAck2指出物理接口104已完成將另一個字節(jié)發(fā)送給主控后接收到Ack=1,從而使?fàn)顟B(tài)進入IDEL狀態(tài)902。IDLE狀態(tài)902將激活I(lǐng)sWrtReady,允許物理接口104開始期待停止比特、復(fù)位NeedAckL2和使用停止比特。WAITREAD狀態(tài)930在物理接口104接收到Ack=0(指示需要另一個數(shù)據(jù)字節(jié))時轉(zhuǎn)到RBYTE狀態(tài)932。在RBYTE(準(zhǔn)備讀另一個數(shù)據(jù)字節(jié))狀態(tài)932,IOcntL2302減1,指向IOBUFL2308內(nèi)的下一個數(shù)據(jù)字節(jié)。寄存器讀/寫(REGRW)命令狀態(tài)包括REGRWGO狀態(tài)918、WAITCMDDONE狀態(tài)920和CMDSTEP狀態(tài)922。IOBUFL2地址字節(jié)與為原始或控制命令保留的任何地址都不一致。這地址直接翻譯成一個寄存器讀/寫地址。TMS和TDI/TDO活動都將在一個規(guī)定步驟序列內(nèi)發(fā)生,以完成寄存器讀/寫操作。將傳送的是剛好為SSRL2寄存器414的寬度的64個比特。在REGRWGO(啟動寄存器命令時序的(下一個)步驟)狀態(tài)918,寄存器時序的(下一個)步驟加到激活的TapCmd總線和LoadCmd上,以啟動JTAG接口204。如果IOcntL2=步驟6,寄存器讀操作讀取的數(shù)據(jù)是在SSRL2414內(nèi),需要在使入口114的TAP控制器回到RunTestIdle的清理步驟前保存到IOBUFL2308,否則最終命令步驟會破壞SSR內(nèi)的數(shù)據(jù)。這是通過激活BufLoad來實現(xiàn)的。在WAITCMDDONE(等待TAP和/或寄存器讀完成)狀態(tài)920,沒有行動?;蛘逬TAG掃描邏輯忙于執(zhí)行一個原始TAP命令,或者寄存器讀操作已經(jīng)開始但還沒有結(jié)束。WAITCMDDONE狀態(tài)920在來自JTAG掃描邏輯的CmdDone信號指示最近的命令步驟完成而RegisterRWdone信號在來自入口的SCIDLE信號成為無效后返回到有效之后有效。RegisterRWdone信號只是在一個寄存器讀操作的步驟3期間才有意義,此后寄存器讀操作應(yīng)立即發(fā)生。在CMDSTEP(下個命令步驟前)狀態(tài)922,IOcntL2加1,IOcntL2用來在CmdMuxSel中檢索寄存器讀/寫命令的各個步驟。CMDSTEP狀態(tài)922轉(zhuǎn)到SCOMGO寄存器讀和寫命令時序都剛好是7個步驟那樣長。如果步驟7還沒有執(zhí)行,循環(huán)回來啟動下個步驟。CMDSTEP狀態(tài)922在第7步驟一完成就轉(zhuǎn)到CHKSTOP狀態(tài)924。圖11示出了生產(chǎn)測試接口和全局互聯(lián)集成電路(I2C)總線互連裝置100的入口114的測試接入口(TAP)和邊界掃描體系結(jié)構(gòu)的主要功能。入口114提供JTAG掃描功能1102和掃描通信功能1104。JTAG掃描功能1102使I2C從控狀態(tài)機102可以通過在線路TAP/SP所示的測試接入口(TAP)接口(IEEE1149.1)掃描芯片環(huán)。Attention(注意)輸出和加電復(fù)位(POR)輸出也加在線路TAP/SP所指處。Attention輸出用來警告I2C從控狀態(tài)機102需要觀察或干預(yù)/恢復(fù)的各種情況。掃描通信功能1104在一個芯片的功能邏輯和掃描功能之間提供一條并行數(shù)據(jù)通路。接入操作可以在各芯片時鐘運行和系統(tǒng)工作時執(zhí)行;掃描通信功能1104利用了這允許與一個正在工作的芯片或系統(tǒng)通信的優(yōu)點。時鐘樹1114接收來自入口114的TCKSCANCLOCKS輸入。時鐘樹1114也輸出各個芯片時鐘。半定制的LBIST/SCAN接口1116可選地用來將這些芯片掃描環(huán)組織成一些功能組,諸如對電平敏感的掃描設(shè)計(LSSD)環(huán),以及BIST信道。接口1116接在入口114的JTAG掃描1102和功能芯片邏輯1118之間。入口114的JTAG掃描控制器的設(shè)計所增添的這個優(yōu)選實施例的新指令,掃描通信即讀,有利于新的I2C與JTAG接口功能的設(shè)計。在新指令掃描通信即讀設(shè)計以前,讀一個芯片寄存器需要兩個步驟。步驟1執(zhí)行入口掃描控制器命令“掃描通信讀”(十六進制代碼“17”),取得目標(biāo)芯片寄存器的內(nèi)容,裝入入口掃描通信數(shù)據(jù)寄存器1104。步驟2執(zhí)行入口掃描控制器命令“掃描出”(十六進制代碼“12”),讀出入口掃描通信數(shù)據(jù)寄存器1104的內(nèi)容。這個兩步處理設(shè)計成適合現(xiàn)有的軟件和硬件。采用這個新的掃描通信即讀命令,步驟1和2可以合并成單個步驟執(zhí)行入口掃描控制器命令“掃描通信即讀”(十六進制代碼“14”),獲取目標(biāo)芯片寄存器1120的內(nèi)容裝入入口掃描通信數(shù)據(jù)寄存器1104,然后立即讀出入口掃描通信數(shù)據(jù)寄存器1104的內(nèi)容。如果I2C與JTAG接口功能必需采用原來的兩步驟處理,那么它就要在一個時鐘周期(它本身的I2C時鐘周期之一)內(nèi)執(zhí)行這兩個步驟。由于這個I2C時鐘周期可能相對于其他系統(tǒng)時鐘有所不同,因此不能保證這兩個步驟都能順利完成。通過將這個處理合并成一個步驟,現(xiàn)在就能保證這操作將在一個時鐘周期內(nèi)完成?;ミB裝置100和I2C狀態(tài)機102的工作情況從以下各例中可以看出。一個64比特的寄存器讀/寫操作以啟動字節(jié)地址(I2C從控基地址)開始,可選地后接最多為3個字節(jié)的寄存讀/寫地址(LSByte,高位比特在前)。一種實現(xiàn)方式規(guī)定是8字節(jié)對齊的寄存器讀/寫地址。一個寫操作必需以寄存器讀/寫地址的全部3個字節(jié)啟動,而一個讀操作可以使用一個以前寫的地址或修改重新啟動/讀字節(jié)前地址的一個、二個或全部三個字節(jié)(除非允許CRC檢驗)。I2C從控貫徹24比特的寄存器讀/寫地址(比特23至0,比特0=LSB)。入口/JTAG規(guī)定LSB為奇偶校驗比特。其余23個比特(23至1)表示一個字節(jié)對齊的地址。寄存器讀/寫地址傳送總是8字節(jié)寬,但每個芯片通常設(shè)計了一些具有改變的寬度的寄存器,可以不必按8字節(jié)邊界對齊。I2C寄存器讀/寫數(shù)據(jù)段內(nèi)數(shù)據(jù)的具體對齊與芯片實現(xiàn)有關(guān)。如果在這點接收到一個停止比特,那么所寫的地址只有這部份將被改變,而不會引起其他行動。對于一個寫操作來說,從第四字節(jié)(LSByte,高位比特在前)起就是寫操作的數(shù)據(jù)。一個或多個數(shù)據(jù)字節(jié)后的停止或溢出狀況將中止寄存器讀/寫操作,寄存器讀/寫地址不自動遞增。在寫/讀多于8個字節(jié)的數(shù)據(jù)時要發(fā)生上溢/下溢。作為這種設(shè)計的一個可選方案,寄存器讀/寫地址可以自動遞增,為多于8個字節(jié)的寫/讀對相繼的一些讀/寫地址進行寫/讀。寫多于8個字節(jié)的數(shù)據(jù)將導(dǎo)致在相同的寄存器讀/寫地址的數(shù)據(jù)被蓋寫。寫少于8個字節(jié)的數(shù)據(jù)將導(dǎo)致寄存器讀/寫地址寫有滿的8個字節(jié),數(shù)據(jù)的一些最高有效字節(jié)寫的將是寄存器讀/寫數(shù)據(jù)IO緩存器內(nèi)上次操作留下的。在允許CRC檢驗的情況下,從控將不確認一個寫操作期間的第9個(CRC)字節(jié),以免將正確傳送的數(shù)據(jù)蓋寫。對于一個讀操作來說,重新啟動(停止后再啟動)用R/W比特=“1”發(fā)至I2C接口。這觸發(fā)了I2C硬件內(nèi)中止的一個寄存器讀操作。數(shù)據(jù)流于是反向,從控對每個確認回送一個數(shù)據(jù)字節(jié)(LSByte最先)。如果讀多于8個字節(jié),數(shù)據(jù)將從LSByte開始重復(fù)。非寄存器TAP命令格式由保留的寄存器讀/寫地址(23∶12)=x“524”(這個地址是可再定位的)標(biāo)識。有8個操作模式,由TapCmd比特10∶8選樣。比特11保留他用。在原始TAP命令(TapCmd地址(11∶8)=“0000”)格式中,寄存器讀/寫地址的LSByte被譯為一個使一些比特移出通過TMS或TDI送至TAP口和獲取TDO的TAP命令。這能使I2C接口104完成JTAG邏輯支持的任何動作。停止或溢出狀況將斷開BCR,使它保持讀操作和溢出時的當(dāng)前值。寫或讀多于“BCR值模8”(+1,如果余數(shù)非零的話)個字節(jié)的數(shù)據(jù)使一個BCR重裝將這個數(shù)據(jù)流(即寫/讀掃描環(huán)內(nèi)相繼的字節(jié))。在允許CRC檢驗的情況下,除非正確發(fā)送CRC字節(jié),所有的讀/寫原語和寄存器讀/寫都將受到抑制。Tap命令例64比特+比特環(huán)寄存器讀/寫輸出(CRC禁止)以下列出執(zhí)行一個后接1比特掃描輸出的內(nèi)部掃描環(huán)的原始64比特掃描輸出所需的I2C命令序列1.裝入原語命令命令從控使Tap狀態(tài)機首先進至測試邏輯復(fù)位再進至移位IR,在一個指令內(nèi)掃描。I2C寫啟動W/R/W比特=0,長度=5字節(jié),停止字節(jié)108x10個TCK脈沖(Addr/Cmd字節(jié)后的數(shù)據(jù)是TMS序列)字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)4DFxTMS值序列(從最右的LSB向MSB取)字節(jié)500x繼續(xù)的TMS值序列(將TapSM送至移位IR)2.裝入原始命令和指令數(shù)據(jù)命令從控將OF800041掃描入Tap控制器指令寄存器。這是內(nèi)部環(huán)的一個掃描輸出,然后取TapS/M送至Exit1-IR。I2C寫啟動w/R/W比特=0),長度=7字節(jié),停止字節(jié)1DEx32個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)441x指令的LSB字節(jié)500x指令的下個字節(jié)字節(jié)680x指令的下個字節(jié)字節(jié)7OFx指令的MSB(內(nèi)部掃描環(huán)的掃描輸出)3.裝入原始命令命令從控安排Tap狀態(tài)機至移位DR(從Exit1-IR)的時序。I2C寫啟動w/R/W比特=0,長度=4字節(jié),停止字節(jié)102x4個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)403xTMS值序列(從最右的LSB至MSB將TapS/M取至移位DR)4.裝入原始Cmd命令從控引進64個TCK脈沖,對于所有這些脈沖TMS=0,以及將TapS/M保持在移位DR內(nèi)。I2C寫啟動Cmd命令從控引進64個TCK脈沖,對于所有這些脈沖TMS=0,以及將TapS/M保持在移位DR內(nèi)。字節(jié)1BEx64個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB5.取得掃描輸出命令的返回數(shù)據(jù)TMS為0,將TapS/M留在移位DR內(nèi)。I2C讀重新啟動w/R/W比特=1),長度=8字節(jié),停止字節(jié)1FEx數(shù)據(jù)的LSB字節(jié)2OFx數(shù)據(jù)的下個字節(jié)字節(jié)3DCx數(shù)據(jù)的下個字節(jié)字節(jié)4BAx數(shù)據(jù)的下個字節(jié)字節(jié)5EFx數(shù)據(jù)的下個字節(jié)字節(jié)6BEx數(shù)據(jù)的下個字節(jié)字節(jié)7ADx數(shù)據(jù)的下個字節(jié)字節(jié)8DEx數(shù)據(jù)的MSB6.裝入下個原始命令命令從控引進TMS=1的一個TCK脈沖,將TapS/M在1比特的掃描后送至Exit1-DR。I2C寫啟動w/R/W比特=0),長度=3,停止字節(jié)1FFx1個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB7.取得掃描輸出命令的返回數(shù)據(jù)(1比特)將TapS/M送至Exit1-DR。I2C讀重新啟動w/R/W比特=1),長度=1字節(jié),停止字節(jié)1FEx數(shù)據(jù)的LSB(只有最右的那個比特有效)8.裝入下個原始命令命令從控使Tap狀態(tài)機進至測試邏輯復(fù)位狀態(tài)。I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止字節(jié)103x5個TCR脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)41FxTMS值形式的最右比特至最右比特的序列(僅5個比特用于使Tap狀態(tài)機返回復(fù)位)Tap命令例2.5字節(jié)寄存器寫以下列出將2.5字節(jié)(20比特)的數(shù)據(jù)掃描入內(nèi)部掃描環(huán)所需的I2C命令序列(注意得到的數(shù)據(jù)掃描將為AEFBA十六進制代碼)。1.裝入原始命令命令從控使Tap狀態(tài)機進至測試邏輯復(fù)位,再進至移位IR,在一個指令內(nèi)掃描。I2C寫啟動w/R/W比特=0,長度=5字節(jié),停止字節(jié)108x10個TCK脈沖(Addr/Cmd字節(jié)后的數(shù)據(jù)是TMS序列)字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)4DFxTMS值序列(從最右的LSB向MSB取)字節(jié)500x繼續(xù)的TMS值序列(將TapSM送至移位IR)2.裝入原始命令和指令數(shù)據(jù)命令從控將OF800041掃描入Tap控制器指令寄存器。這是內(nèi)部環(huán)的一個掃描輸出,然后取TapS/N送至Exit1-IR。I2C寫啟動w/R/W比特=0),長度=7字節(jié),停止字節(jié)1DEx32個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)441x指令的LSB字節(jié)500x指令的下個字節(jié)字節(jié)680x指令的下個字節(jié)字節(jié)7OFx指令的MSB(內(nèi)部掃描環(huán)的掃描輸出)3.裝入原始命令命令從控安排Tap狀態(tài)機進至移位DR(從Exit1-IR)的時序。I2C寫啟動w/R/W比特=0,長度=4字節(jié),停止字節(jié)102x4個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)403xTMS值序列(從最右的LSB至MSB將TapS/M取至移位DR)4.裝入原始命令命令從控啟動一個2字節(jié)SCAN-IN(掃入),它包括兩串各為8個的TCK脈沖,對于所有這些脈沖TMS=0,以及將S/M保留在移位DR內(nèi)。I2C寫啟動w/R/W比特=0),長度=5字節(jié),停止字節(jié)106xTCK脈沖(都是TMS=0,注意由于有兩個數(shù)據(jù)字節(jié),因此需要16個TCK脈沖,使得內(nèi)部從控邏輯將送出兩個獨立的8比特掃描結(jié)果)字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)4BAx數(shù)據(jù)的第一個字節(jié)(LSB)字節(jié)5EFx數(shù)據(jù)的下個字節(jié)5.裝入原始Cmd通過在最后4個比特內(nèi)掃描結(jié)束2.5字節(jié)SCAN-IN。這4個TCK脈沖除了最后一個TCK都是TMS=0,TMS=1的最后一個TCK將使TAPS/M送至Exit1-DR。I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止字節(jié)1C2x4個TCK脈沖(前3個TMS為0,最后一個TMS為1)字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)4BAxSCAN-IN數(shù)據(jù)的4個最高有效比特(最右的這些比特)6.裝入下個原始命令命令從控使Tap狀態(tài)機轉(zhuǎn)到測試邏輯復(fù)位狀態(tài)。I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止字節(jié)103x5個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)41Fx從最右到最左的TMS值序列(僅5個比特用于使Tap狀態(tài)機返回復(fù)位)空TAP命令(TapCmdAddr(11∶8)=“0001”)JTAG對TCK/TMS/TDI的操作被壓制。這個模式例如用來在一個將一個新命令掃描入IR的TapCmd序列后立即回讀IR狀態(tài)信息。I2C寫SSR數(shù)據(jù)(IO緩存器)操作沒有影響。I2C讀SSR數(shù)據(jù)操作將返回掃描出的最近JTAG/IDO數(shù)據(jù)。Tap命令例掃描入一個指令后立即讀IR狀態(tài)1.裝入原始命令命令從控使Tap狀態(tài)機進至測試邏輯復(fù)位再進至移位IR,掃描入一個指令。I2C寫啟動w/R/W比特=0,長度=5字節(jié),停止字節(jié)108x10個TCK脈沖(Addr/Cmd字節(jié)后的數(shù)據(jù)是TMS序列)字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)4DFxTMS值序列(從最右的LSB向MSB取)字節(jié)500x繼續(xù)的TMS值序列(將TapSM送至移位IR)2.裝入原始命令和指令數(shù)據(jù)命令從控將OF800041掃描入Tap控制器指令寄存器。這是內(nèi)部環(huán)的一個掃描輸出,然后取TapS/N送至Exit1-IR。I2C寫啟動w/R/W比特=0),長度=7字節(jié),停止字節(jié)1DEx32個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)441x指令的LSB字節(jié)500x指令的下個字節(jié)字節(jié)680x指令的下個字節(jié)字節(jié)7OFx指令的MSB(內(nèi)部掃描環(huán)的掃描輸出)3.裝入原始命令命令從控讀掃描控制器的上次掃描輸出(這將是IR狀態(tài),因為上次操作是指令寄存器掃描)。I2C寫啟動w/R/W比特=0,長度=3字節(jié),停止字節(jié)1--x這個字節(jié)對于本命令不需考慮字節(jié)241x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB4.取得原始讀命令的返回數(shù)據(jù)---返回掃描出的數(shù)據(jù)(下面用虛線表示)。I2C讀重新啟動w/R/W比特=1),長度=4字節(jié),停止字節(jié)1--xIR狀態(tài)的LSB字節(jié)2--xIR狀態(tài)的下個字節(jié)字節(jié)3--xIR狀態(tài)的下個字節(jié)字節(jié)4--xIR狀態(tài)的MSB5.裝入下個原始命令命令從控使Tap狀態(tài)機進至測試邏輯復(fù)位狀態(tài)。I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止字節(jié)103x5個TCK脈沖字節(jié)240x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB字節(jié)41Fx從最右至最左比特的TMS值序列(僅5個比特用于使Tap狀態(tài)機返回復(fù)位)頒發(fā)I2C停止序列啟用Attention命令(TapCmdAddr(11∶8)=“0010”),從入口觸發(fā)啟用Attention的I2C方法。一個對SSR數(shù)據(jù)(IO緩存器)的I2C寫操作啟用由I2C從控執(zhí)行的Attention檢驗。JTAG活動受到抑制。注意在寫這個序列時,從控將只在Attention非有效時確認寄存器讀/寫操作。在Attention有效時,只有原始Tap命令才用標(biāo)準(zhǔn)的I2C確認脈沖確認。Tap命令例內(nèi)部重新啟用Attention檢驗1.I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止2.字節(jié)1--x字節(jié)242x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB3.頒發(fā)I2C停止序列禁止Attention命令(TapCmdAddr(11∶8)=“0011”),從入口觸發(fā)禁止Attention的I2C方法。一個對SSR數(shù)據(jù)(IO)緩存器)的I2C寫操作可以禁止由I2C從控執(zhí)行的Attention檢驗。注意在寫這個序列時,從控將確認原始命令和寄存器讀/寫序列,即使Attention有效。這個方法用來克服諸如機器檢驗有效之類會導(dǎo)致產(chǎn)生一個Attention的問題。這并不校正由于寄存器讀/寫差錯而產(chǎn)生的Attention和在寄存器讀/寫差錯不予考慮后接收的數(shù)據(jù)。在默認的情況下,Attention被屏蔽掉。Tap命令例內(nèi)部屏蔽Attention1.I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止2.字節(jié)1--x字節(jié)243x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB3.頒發(fā)I2C停止序列原始命令例內(nèi)部啟動CRC校驗這個字節(jié)序列將啟用CRC檢驗。1.I2C寫啟動w/R/W比特=0),長度=3字節(jié),停止2.字節(jié)1--x字首245x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB3.頒發(fā)I2C停止序列注意現(xiàn)在將啟用CRC檢驗,直至字節(jié)245x和字節(jié)352x發(fā)送給從控。例執(zhí)行采用CRC的寄存器讀在本例中,CRC的實施方式采用8比特CRC累加器的實現(xiàn)方式x8+x4+x3+x2+1。寫原始解碼,啟用CRC檢驗。1.I2C寫啟動w/R/W比特=0),長度=3字節(jié),停止2.字節(jié)1--x字節(jié)245x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB3.頒發(fā)I2C停止序列(現(xiàn)在CRC檢驗啟用)送入需讀的地址和從控地址和3字節(jié)地址的CRC字節(jié)(在本例中為59x)。1.I2C寫啟動w/R/W比特=0),長度=4字節(jié),停止2.字節(jié)103x寄存器讀/寫地址的LSB字節(jié)200x寄存器讀/寫地址的中間字節(jié)字節(jié)380x寄存器讀/寫地址的MSB字節(jié)459x移入8個0后的CRC字節(jié)3.頒發(fā)I2C停止序列(寄存器讀/寫地址800003存儲在從控內(nèi))讀如所希望讀出的那樣多的字節(jié),而CRC字節(jié)只對發(fā)回到I2C總線上的數(shù)據(jù)計算。1.I2C寫啟動w/R/W比特=1,長度=8字節(jié),停止在本例中讀字節(jié)1-8(長度可變)2.頒發(fā)I2C停止序列為了獲得根據(jù)上次讀操作計算出的CRC字節(jié),必需將原始解碼“5247”x與作為CRC字節(jié)的“11”x(在不考慮命令部分時送入“03”x)一起發(fā)送。1.I2C寫啟動w/R/W比特=0,長度=4字節(jié),停止2.字節(jié)1--x對于CRC讀來說不用考慮(在本情況下使用03x)字節(jié)247x讀CRC解碼地址字節(jié)352x原始地址的MSB字節(jié)411x移入8個0后的CRC字節(jié)3.頒發(fā)I2C停止序列(寄存器讀/寫地址800003存儲在從控內(nèi))在下發(fā)CRC讀的原始解碼后可以執(zhí)行一個讀序列,以獲得所執(zhí)行的寄存器讀的CRC。只有一個字節(jié)是有效的,因此應(yīng)該只讀一個字節(jié)或略去其余字節(jié)。主控應(yīng)不確認(“1”b)這個字節(jié),因此能執(zhí)行這個操作而不會引起總線差錯。1.I2C寫啟動w/R/W比特=1),長度=1字節(jié),停止對于這個例子是讀字節(jié)#1(只有一個字節(jié)是有效的)2.頒發(fā)I2C停止序列注意CRC字節(jié)應(yīng)通過先前計算的字節(jié)發(fā)送,以對寄存器清零。以下這個字節(jié)序列停止CRC檢驗。1.I2C寫啟動w/R/W比特=0,長度=3字節(jié),停止2.字節(jié)1--xTCK脈沖字節(jié)246x原始Cmd地址的LSB字節(jié)352x原始Cmd地址的MSB3.頒發(fā)I2C停止序列現(xiàn)在CRC檢驗禁用于下個程序。雖然本發(fā)明結(jié)合各圖所示的本發(fā)明實施例的詳細情況作了說明,但這些詳細情況并不構(gòu)成對所附權(quán)利要求給定的本發(fā)明專利保護范圍的限制。權(quán)利要求1.一種將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,所述裝置包括輸入/輸出緩存邏輯,用來緩存需傳送給和來自所述全局串行總線的數(shù)據(jù);一個與所述輸入/輸出緩存邏輯連接的從控接口邏輯,用來接收來自所述輸入/輸出緩存邏輯的數(shù)據(jù)和將數(shù)據(jù)發(fā)送給所述輸入/輸出緩存邏輯;以及一個與所述輸入/輸出緩存邏輯和所述從控接口邏輯連接的從控控制器,用來對與所述輸入/輸出緩存邏輯的數(shù)據(jù)交換進行調(diào)步。2.如在權(quán)利要求1中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,所述裝置還包括接在所述輸入/輸出緩存器和全局串行總線之間的差錯處理邏輯,用來處理差錯狀況。3.如在權(quán)利要求2中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述差錯處理邏輯包括一個循環(huán)冗余檢驗(CRC)計算邏輯。4.如在權(quán)利要求1中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述全局串行總線包括一個互聯(lián)集成電路(I2C)總線。5.如在權(quán)利要求1中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述生產(chǎn)測試接口包括一個聯(lián)合測試動作組(JTAG)接口,而所述從控接口邏輯處理從所述JTAG接口接收的和發(fā)送給所述JTAG接口的JTAG格式命令。6.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,所述裝置還包括接在所述輸入/輸出緩存器和全局串行總線之間的差錯處理邏輯,用來處理差錯情況,所述JTAG接口向所述差錯處理邏輯提供注意信號,所述注意信號指示出現(xiàn)差錯。7.如在權(quán)利要求6中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述差錯處理邏輯包括一個循環(huán)冗余檢驗(CRC)計算邏輯,用來實現(xiàn)CRC計算。8.如在權(quán)利要求6中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控接口邏輯配置成根據(jù)所述注意信號允許和禁止差錯檢驗。9.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器對所述從控接口邏輯和所述JTAG接口之間的數(shù)據(jù)交換進行調(diào)步。10.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器為所述從控接口邏輯和所述JTAG之間的數(shù)據(jù)交換提供數(shù)據(jù)導(dǎo)引和路由選擇。11.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器向所述從控接口邏輯提供用于寄存器讀和寫操作的一個有序的命令序列。12.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控接口邏輯處理同時的JTAG讀和寫操作,而所述從控控制器為一個JTAG指令寄存器(IR)狀態(tài)讀操作提供一個寫操作,接著再提供一個讀操作。13.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器為寄存器讀和寫操作提供一個啟動字節(jié)地址,接著再提供一個寄存器讀/寫地址。14.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器向所述從控接口邏輯提供用于掃描通信寄存器讀和寫操作的一個有序的命令序列。15.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述全局串行總線包括一個互聯(lián)集成電路(I2C)總線和一個接在所述I2C總線和所述輸入/輸出緩存邏輯之間的物理接口,而所述從控控制器對所述物理接口和所述輸入/輸出緩存邏輯之間的數(shù)據(jù)交換進行調(diào)步。16.如在權(quán)利要求15中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器為所述物理接口和所述輸入/輸出緩存邏輯之間的數(shù)據(jù)交換提供數(shù)據(jù)導(dǎo)引。17.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器向所述從控接口邏輯提供用于寄存器讀操作的命令。18.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器向所述從控接口邏輯提供用于寄存器寫操作的命令。19.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控接口邏輯包括一個測試時鐘(TCK)產(chǎn)生邏輯。20.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控接口邏輯接收來自所述JTAG接口的一個裝入命令信號。21.如在權(quán)利要求20中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述JTAG接口和所述從控接口邏輯由一個內(nèi)部JTAG總線連接,而所述裝入命令信號是為了啟動所述內(nèi)部JTAG總線上的活動而激活的。22.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述全局串行總線包括一個互聯(lián)集成電路(I2C)總線,并且有一個確認信號用于差錯處理。23.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器向所述從控接口邏輯提供一個執(zhí)行一個或多個原始操作的命令。24.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述原始操作選擇至少一個與所述JTAG接口的控制、指令、數(shù)據(jù)和狀態(tài)交換。25.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述JTAG接口包括一個掃描通信即讀邏輯。26.如在權(quán)利要求5中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述掃描通信即讀邏輯執(zhí)行一個步驟,取出一個目標(biāo)寄存器的內(nèi)容裝入一個掃描通信數(shù)據(jù)寄存器,并立即讀出所述掃描通信數(shù)據(jù)寄存器的所述內(nèi)容。27.如在權(quán)利要求1中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的裝置,其中所述從控控制器提供用于與所述輸入/輸出緩存邏輯交換數(shù)據(jù)的數(shù)據(jù)導(dǎo)引和路由選擇。28.一種將一個生產(chǎn)測試接口接至一個全局串行總線的方法,所述方法包括下列步驟在一個物理接口和一個內(nèi)部總線之間配置一個從控狀態(tài)機,所述物理接口與所述全局串行總線連接,而所述內(nèi)部總線與所述生產(chǎn)測試接口連接;以及利用所述從控狀態(tài)機執(zhí)行下列步驟緩存需傳送給和來自所述全局串行總線的數(shù)據(jù),以及對所述生產(chǎn)測試接口和所述全局串行總線之間的數(shù)據(jù)交換進行調(diào)步。29.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行處理差錯狀況的步驟。30.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為掃描通信讀操作提供命令的各個步驟。31.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為掃描通信寫操作提供命令的各個步驟。32.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為控制讀操作提供命令的各個步驟。33.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為控制寫操作提供命令的各個步驟。34.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為原始寫操作提供命令的各個步驟。35.如在權(quán)利要求28中所述的將一個生產(chǎn)測試接口接至一個全局串行總線的方法,其中所述從控狀態(tài)機還執(zhí)行為原始讀操作提供命令的各個步驟。36.一種將一個生產(chǎn)測試接口接至一個全局串行總線的集成電路器件,所述集成電路器件包括輸入/輸出緩存邏輯,用來緩存需傳送給和來自所述全局串行總線的數(shù)據(jù);一個與所述輸入/輸出緩存邏輯連接的從控接口邏輯,用來接收來自所述輸入/輸出緩存邏輯的數(shù)據(jù)和將數(shù)據(jù)發(fā)送給所述輸入/輸出緩存邏輯;以及一個與所述輸入/輸出緩存邏輯和所述從控接口邏輯連接的從控控制器,用來對與所述輸入/輸出緩存邏輯的數(shù)據(jù)交換進行調(diào)步。37.如在權(quán)利要求36中所述的集成電路器件,所述集成電路器件還包括接在所述輸入/輸出緩存邏輯和所述從控接口邏輯之間的差錯處理邏輯。全文摘要本發(fā)明提供了一種將一個生產(chǎn)測試接口接至一個諸如互聯(lián)集成電路(I文檔編號G06F13/42GK1264081SQ9912744公開日2000年8月23日申請日期1999年12月30日優(yōu)先權(quán)日1999年2月18日發(fā)明者蓋伊·R·卡里爾,詹姆斯·S·哈維蘭德,沙倫·D·文森特,保羅·L·維爾特根申請人:國際商業(yè)機器公司