專利名稱:通用協議引擎的制作方法
通用協議引擎
背景技術:
自動存儲模式功能測試在集成電路(IC)器件生產過程中提供關鍵步驟,從而得到器件的參數和操作特性。自動測試設備系統包括連接到控制計算機或主計算機的測試電路。控制計算機提供用戶界面,用戶界面接受和存儲用于啟動測試電路以向被測器件提供激勵信號的功能測試模式數據,并接收來自被測器件的響應信號。響應信號經過評估,以確定集成電路器件的參數和操作特性。被測器件(DUT)安裝在器件接口板(或DIB)上,器件接口板為來自和發往管腳電路的物理信號提供物理接口。來自測試電路的測試激勵信號通過DIB經管腳電路提供到被測器件。來自被測器件的測試響應信號經DIB傳輸到管腳電路,進而傳輸到測試電路。測試電路將測試激勵信號與測試響應信號關聯,以確定被測器件是否通過測試。測試電路生成的激勵信號包括數據信號和用于使激勵輸入同步的時鐘信號。測試的有效性取決于這些信號相對于彼此的準確設置。例如,若干不同的信號(例如,時鐘信號、數據信號和使能信號)在適當的時間被協調和觸發,以確保測試過程中采集到有意義的數據。各種集成電路功能元件具有符合固定時間協議和數據協議的接口規范。例如,這些協議包括n線串行結構化總線,例如以太網管理數據輸入/輸出(MDIO)、通用串行總線 (USB)或內置集成電路(I2C)總線;并行通信總線,例如通用輸入/輸出(GPIO);存儲器總線,例如雙倍數據速率動態隨機存取存儲器(DDR);以及高速通信信道,例如高清晰度多媒體接口(HDMI)。如上所述,近年來,存儲模式功能測試對于功能不確定的器件已經遇到越來越大的困難。目前,半導體加工的集成水平和復雜性使得集成電路芯片可以有效地完全成為“系統級芯片”(SOC)。系統級芯片將計算機或其他電子系統的所有功能電路元件集成到單個集成電路(芯片)內。這些集成電路元件可以是數字電路、模擬電路、隨機存取存儲器、數模混合信號電路的任意組合,并且常常包括射頻功能。系統級芯片(SOC)提供集成到同一半導體基片上的多種數字和模擬集成電路功能元件。SOC的一個實例是移動電話,移動電話不僅集成了移動電話接收、處理和發射功能, 而且集成了照片和視頻處理功能、音頻數字信號處理電路和半導體存儲器電路。目前,在大多數SOC測試中,用多種測試方法(例如SCAN測試、內建自測(BIST)和功能測試)單獨測試SOC的各個功能。系統級測試通常采用定制電路,并且通常僅用于平均售價較高的低混合度器件,如微處理器。最終系統級測試可以在專門為測試特定SOC器件(例如微處理器) 而制造的定制測試設備上進行。雖然期望為其他SOC器件進行系統級測試,但為平均售價較低的SOC器件制造定制的功能測試設備并不經濟。用自動測試電路測試SOC器件的困難在于用自動測試電路進行的參數和獨立功能測試是確定性的測試操作。為測試激勵信號施加特定時序和結構,并預期測試響應信號具有特定時序和結構。如果測試響應信號與對于給定參數的預期時序和結構不匹配,則認為被測SOC器件測試失敗。SOC器件的功能可以采用不同的時序規范和時鐘規范操作,并可以異步操作。SOC器件可以在響應測試信號指示其不能工作的情況下工作,并且可以在通信功能的異步性導致測試響應信號表現不正確時工作。除了提供某些延遲因子之外,當前一代的自動測試設備系統在處理非確定性SOC 器件方面的能力非常有限。這為測試工程師帶來了很大的麻煩,因為當測試激勵信號為設計驗證中使用的模擬向量時,初始原型器件很有可能無法工作。結果導致一系列試錯循環, 在這些試錯循環中,測試工程師嘗試來回移動向量,直到發現能通過測試的布置方式為止。 由于涉及大量數據,并且需要重新模擬每一次嘗試,因此每個循環可能花費幾天時間,最終結果是新SOC器件的測試和評估階段延長數月。在本自動測試設備系統中已經嘗試模擬被測SOC器件的運行條件。由于電路功能元件之間異步通信的非確定性函數,無法為被測SOC器件準確地重新建立功能元件的正常運行環境。目前的自動測試設備環境缺乏容易而準確地提供被測SOC器件的正常運行環境的不確定電氣和時序條件這一能力。自動測試設備系統內這種不確定電氣和時序條件的缺乏進一步導致無法測量被測SOC器件的誤差范圍,該誤差范圍是相對于其在正常運行環境下可能存在的變化的運行條件下的公差而言。因此,需要一種在自動測試設備內的協議生成電路或引擎,該電路或引擎用于生成符合被測器件預期的指定器件協議的激勵信號和時序,并按照符合該指定器件協議的時序接收響應信號。
發明內容
在一個實施例中,提供了一種用于自動測試設備的協議引擎電路,所述協議引擎電路包括協議生成電路,協議生成電路被構造成檢索協議特有數據,并用于被測器件相對應的所選協議定義格式化該協議特有數據以測試被測器件。協議生成電路可以被構造成能從協議定義表中檢索所選協議定義。在一種實施例中,提供了一種用于生成信號和時序的方法,所述信號和定時符合用于在自動測試設備和被測器件之間通信的指定器件協議,所述方法包括接收用于被測器件的固定協議數據;接收協議特有數據;以及將固定協議數據和協議特有數據組合成用于測試被測器件的指定器件協議。該實施例還可包括接收協議定義位置號;從協議定義位置號所指示的表位置為指定器件協議選擇固定協議數據;以及提供用于測試被測器件的指定器件協議內的固定協議數據和協議特有數據。在一些實施例中,該方法還包括接收操作碼并從與該操作碼對應的表位置檢索動作數據;以及將動作數據與用于測試被測器件的指定器件協議內的固定協議數據和協議特有數據一起提供。在其他實施例中,檢索用于指定器件協議的固定協議數據的過程包括檢索動作數據,并且提供固定協議數據的過程包括提供動作數據。
圖1為協議生成電路的實施例的簡化框圖。圖2為協議生成電路的另一個實施例的簡化框圖。圖3為用于在自動測試系統的一個實施例中構建指定器件協議的示例性操作動作的表。圖4A和4B為協議生成電路的又一個實施例的更詳細的框圖。圖5為包括具有圖1、2或4A和4B的協議生成電路的協議專用電路的其中一個實施例的多個實例的自動測試設備系統的框圖。圖6為描述符合以太網管理數據輸入/輸出(MDIO)協議規范的信號的相對結構和時序的示意圖。圖7為操作碼實例的表。
具體實施例方式包含用于存儲在FPGA內的具體SOC的特定協議的協議專用電路可用來改進測試。 然而,該方法可能太耗時或在一些應用中受到限制。不同的SOC可能需要一個或多個不同的協議。各種SOC可以包括下列中的一種或多種m線串行結構化總線,例如以太網管理數據輸入/輸出(MDIO)、通用串行總線(USB)或內置集成電路(I2C)總線;并行通信總線,例如通用輸入/輸出(GPIO);存儲器,例如雙倍數據速率動態隨機存取存儲器(DDR);以及高速通信信道,例如高清晰度多媒體接口(HDMI)或其他。能夠為各種DUT生成大量不同協議的測試儀的優點在于,其可以增加測試儀的功能和提高測試效率。圖1為協議生成電路300的實施例及其與管腳電路320的互連的簡化框圖。可以將測試模式命令372輸入主機設備,存儲在動態隨機存取存儲器(DRAM)(未示出)內,以及傳送到協議控制存儲表370。協議控制存儲表370存儲定義用于構建符合指定器件協議的激勵信號和時序的命令的操作碼。操作碼可以被解碼或部分解碼或結構化,以直接提供控制信號,該控制信號用于生成符合指定器件協議的激勵信號和時序。操作碼通過線路309 傳送到事務狀態機305。在激活起始信號306時,事務狀態機305提供一系列時序循環,該時序循環基于由時鐘308同步的操作碼定義指定器件協議的操作動作的執行順序。時序循環信號被傳送到協議定義表310。時序信號307還從事務狀態機305傳送至協議控制存儲表370,以遞增操作碼302(如圖2所示)和表號304(如圖2所示)的傳輸。時序信號307 還被傳送到協議特有數據存儲表315,以遞增預期數據317和驅動數據319的傳輸。測試模式命令372還包含協議定義位置號,協議定義位置號定義包含固定協議數據集的協議定義表310內的位置,固定協議數據在一些實施例中還可以包括用于指定器件的對應動作信號。在下文結合圖2討論的其他實施例中,動作信號可以包含在單獨的動作表350中。參見圖1,協議引擎測試模式命令372還包含將用于每個待執行事務的協議特有數據。協議特有數據放在協議特有數據存儲表315內。協議特有數據可以是將作為激勵信號驅動至被測器件335的數據、將與來自被測器件的響應信號比較的預期數據,或用于控制事務執行過程中的數據流的屏蔽數據。如圖所示,管腳電路320包括通道邏輯325和I/O驅動器330。通道邏輯包括選擇器321和通道電路323。選擇器321接收來自協議定義表310的固定協議數據312和來自協議特有數據存儲表315的協議特有數據313。來自協議定義表310的動作信號314提供控制指令,以用于選擇是將固定協議數據312還是協議特有數據313作為所選數據信號322 還是命令信號3M傳送至通道電路323,以正確啟動通道電路323。通道電路323的驅動數據輸出327是到管腳電路320的I/O驅動器/接收器330的驅動器332的輸入,以便當自動測試設備正在按照指定器件協議將激勵數據驅動到被測器件335時提供將要驅動的協議特有數據313或固定協議數據312。作為另外一種選擇,通道電路323的控制輸出3 為驅動器332提供必要的控制信號,以便在自動測試設備正在從被測器件335接收響應信號時停用驅動器332。接收器334連接用于接收來自被測器件的響應信號。接收器334連接用于將接收的數據3 傳送到通道電路323。通道電路323接收來自協議特有數據存儲表 315的預期協議特有數據313和來自協議定義表310的預期固定協議數據312。預期協議特有數據313和固定協議數據312與來自接收器334的響應信號進行比較,以確定被測器件335是否正確工作。通道電路323提供被傳送到失敗處理器(未示出)的比較結果信號 340。圖2為協議生成電路370的另一個實施例及其與管腳電路320的連接的簡化框圖。協議生成電路370的該實施例的結構類似于上文結合圖1所描述的結構。協議控制存儲表370包括充當操作碼的高速緩沖器的先進先出(FIFO)存儲器301。FIFO 301的輸出被傳輸至狀態觸發器302。協議控制存儲表370在線路上將操作碼309a傳輸至事務狀態機 305和動作表350。如上所述,在激活起始信號306時,事務狀態機305提供一系列時序循環,該時序循環基于由時鐘308同步的操作碼定義指定器件協議的操作動作的執行順序。協議控制存儲表370還包括充當協議定義位置號的高速緩沖器的FIFO存儲器 303。FIFO 303的輸出被傳輸至表號狀態觸發器304。表號狀態觸發器304在線路309b上將協議定義位置號傳輸至事務狀態機305,然后經線路311傳輸至協議定義表360,以提供在包含用于構建指定器件協議的數據和時序的固定協議數據集362的協議定義表360內的位置。協議特有數據存儲表315包括FIFO存儲器316,該FIFO存儲器充當將與來自被測器件的響應信號比較的預期數據的高速緩沖器。FIFO 316的輸出被傳輸至狀態觸發器 317。狀態觸發器317在線路313a上將預期數據傳輸至通道邏輯325的比較邏輯356。相似地,協議特有數據存儲表315包括FIFO存儲器318,該FIFO存儲器充當將按照指定器件協議驅動至被測器件的協議特有數據的高速緩沖器。FIFO 318的輸出被傳輸至狀態觸發器 319。狀態觸發器319在線路31 上將驅動數據傳輸至通道邏輯325的驅動邏輯354。在該實施例中,分別提供單獨的協議定義表360和動作表350。這是利用了以下事實在一些實施例中,對于任何給定協議,存在可以在每個位時間發生的動作子集。圖3 為可用于在自動測試設備系統內構建指定器件協議的操作動作的實例的表。這些動作可以 1 DriveO Drive Data> Hold ifLo、Proceed on Change ^Pulse Lo-Z ifH。 0 3 實例列表,其他動作也是可能的。可以在列表中添加任何額外的動作,并更新協議生成引擎 370以包括這些動作。在一些實施例中,只有有限數量的驅動動作、有限數量的比較動作和有限數量的1/0動作可以在每個位時間發生。協議定義表360存儲固定協議數據,動作表 350存儲與操作碼309a相對應的動作。操作碼309a和固定協議數據362提供到動作表350 內的位置的指針,該指針選擇用于導向所選數據信號32 和322b以及命令信號324的信號,以正確啟動通道邏輯325。動作表350的輸出32 將來自協議定義表360的固定協議數據362導向至通道邏輯325內的驅動邏輯354。相似地,驅動數據狀態觸發器319的輸出 313b向驅動邏輯3M提供協議特有數據313a和31北。驅動邏輯3M為驅動器332提供激勵數據,進而為被測器件335提供激勵數據。動作表350的輸出322b將來自協議定義表360的固定協議數據362導向至通道邏輯325內的比較邏輯356。相似地,預期數據狀態觸發器317的輸出313a為比較邏輯356提供預期協議特有數據313a。比較邏輯356通過接收器334接收來自被測器件335的響應數據。比較邏輯356提供比較結果信號340,該信號被傳送至事務狀態機305和失敗處理器 (未示出)。動作表350的輸出包含到通道邏輯325的I/O邏輯352的動作信號324。I/O邏輯352啟動對驅動邏輯354、比較邏輯356和I/O驅動器/接收器330的驅動器332的正確控制,以逐位生成正確的事務,用于確定被測器件335的工作狀態。圖4A和4B為協議生成電路370的又一個實施例及其與管腳電路320的互連的更詳細的框圖。該實施例的自動測試設備內的協議生成電路370的源數據存儲概念是在動態隨機存取存儲器(DRAM)(未示出)內存儲盡可能少的信息。這意味著只有操作碼、表號和凈荷位(數據位)存儲在DRAM(未示出)內。所有固定的協議專用位(如起始位/停止位或關注位)存儲在協議定義表410內,因而在DRAM(未示出)內不占空間。DRAM(未示出) 提供用于操作碼37 、表號372b的測試模式數據、驅動數據372c、預期數據372d和屏蔽數據37加。操作碼37 和表號372b為協議控制存儲表400的輸入。驅動數據372c、預期數據372d和數據屏蔽位37 為協議特有數據存儲表415的輸入。一旦協議執行狀態機405發出“Next”(下一個)命令409,即可進行加載序列。操作碼同步傳輸到操作碼狀態觸發器402內,表號同步傳輸到表位置狀態觸發器404內。操作碼被充分解碼,以確定其為讀、寫還是屏蔽更新事務。驅動數據372c、預期數據372d和數據屏蔽37 的大小在小的RAM中查找。協議執行狀態機405隨后將正確數量的區塊加載到此時用作FIFO(未示出)的隨機存取存儲器(RAM)內。FIFO的輸出為驅動數據觸發器 416、預期數據觸發器417和數據屏蔽觸發器418的輸入。驅動數據觸發器416、預期數據觸發器417和屏蔽數據觸發器418被協議執行狀態機405用來為協議滿足從單個串流一直到多個位寬總線的變化的數據寬度要求。此外,可以將多個協議生成電路組合,以服務于更寬的總線。驅動數據觸發器416、預期數據觸發器 417和屏蔽數據觸發器418的位轉換(bit swizzle)將在脈沖串起始處編程,以將來自RAM 的多個位轉換為協議所要求的、到協議執行狀態機405的1、2、4或任何數量的位。驅動數據觸發器416、預期數據觸發器417和數據屏蔽觸發器418的使能線指示下一組數據應在下一位時鐘上輸出。在“wait until”(條件滿足)或“R印eat Opcode”(重復操作碼)的特殊情況下使用復位線。在這種情況下,如果不滿足條件(“Transaction Reject”(事務拒絕)已發生或“R印eat”(重復)未進行),則需要重復事務。沒有 “Next”(下一個)命令409的“Last Bit”(最后一位)信號表示FIFO應重置存儲器指針, 以重復事務。協議控制存儲表400和協議特有數據存儲表415的輸出然后在下一事務起始處將操作碼、協議定義位置號、驅動數據413a、預期數據41 和數據屏蔽位413c全部正確對準。 操作碼狀態觸發器402為包含解碼或部分解碼的操作碼的多輸出寄存器。操作碼狀態觸發器402的其中一組輸出為協議執行狀態機405提供初始定義碼403a,以初始化協議執行狀態機405的狀態計數器。操作碼的一部分為讀/寫事務位40北,該事務位然后從操作碼狀態觸發器402傳送至協議定義表410。事務定義403c從操作碼狀態觸發器402傳送到動作表450。操作碼的事務偏移部分403d在表偏移量計算器406內與來自表位置狀態觸發器404的表位置401組合,以便為正在執行的每個事務生成相對于表位置401的開始指針的準確偏移位置。來自協議執行狀態機405的表位置位491與偏移量計算器406的輸出在加法器407內組合,以確定在協議定義表410內的準確位置、下一事務的定義和固定數據。協議生成電路370的該實施例被結構化,以用于控制自動測試設備的多個通道, 從而模擬被測器件435的多個管腳。為實現這一目的,協議定義表410包括多個定義表RAM 461、462、463和464以及單獨的動作表450。多個定義表RAM 461、462、463和464通過單獨的動作表450與通道邏輯電路425和管腳電路320的I/O驅動器/接收器430通信,以分離被測器件435的管腳。在包括該實施例的協議生成電路370的自動測試設備內,協議生成電路370支持與被測器件435的八個管腳通信的八個通道。多個協議生成電路370可任選地成組在一起,以支持更寬的總線寬度,例如64位總線。成組的協議生成電路370將執行相同的操作碼。多個定義表RAM 461、462、463和464將包含不同的定義信號,這些定義信號用于將要基于每個管腳的功能施加到被測器件的管腳的信號。當執行不同的多個定義表RAM 461、462、463和464時,表偏移量計算器406和加法器407為事務定義地址生成偏移地址。用于讀和寫的每個新事務可以具有不同長度和不同定義。使用每個事務類型的偏移量對表偏移量計算器406和加法器407進行編程。這允許多個定義表RAM 461、462、463和464內的許多短事務類型或少數長事務類型,前提條件是所有事務的總長度不超過多個定義表RAM 461、462、463和464內的可用存儲空間。協議定義表410包括為一般內務處理功能提供附加位(對于該實施例為3位)的協議定義控制表461。這些位被定義為“Last bit”(最后一位)492a、“Store”(存儲)492b 和“Invert Hold Sense”(反轉保持指向)492c。"Last Bit”通知協議執行狀態機405 事務的最后一位已傳輸。協議執行狀態機405發出“Next”(下一個)命令。如果隨后的事務未被保持、達到重復計數、不存在等待條件或可以重復前一事務,則發出“Next” (下一個) 命令。“More”定義哪個循環是存儲循環。在捕獲邏輯475的建立突發的脈沖串之前定義要存儲的實際位。"Invert Hold Sense”反轉“Hold”線493的指向。“Hold”線493的功能在下文中解釋。多個協議定義表RAM 462,463和464的輸出412a,412b, · · · 412x被施加到其單獨的動作表450。動作表450主要從協議定義表RAM 462獲得其地址,但一定數量的(即2 個)地址位403c來自操作碼狀態觸發器402。這是為了應對操作碼改變事務的某些位(例如Read和MaskRead)的動作的情況。在替代實施例中,可以通過向協議定義表RAM462添加事務類型來處理動作的改變。然而,協議定義表RAM 462相對于動作表450更加昂貴,從而使地址位403c成為更理想的工具。來自動作表450的輸出的固定協議數據信號42 和事務命令信號42 為通道邏輯425的輸入。命令信號42 包括指示正在執行其中一個保持動作并且條件尚未滿足的 Hold信號。命令信號42 內的脈沖時間信號是由脈沖發生器458用來為被測器件435生成時鐘脈沖的計時脈沖。命令信號42 內的使能屏蔽允許從數據屏蔽觸發器418中讀取屏蔽位。固定協議數據41 被存儲到協議定義表462并傳輸到動作表450,以通過解碼生成固定協議數據42加。固定協議數據42 傳輸到通道邏輯425。協議特有數據413a從驅動數據觸發器416傳輸到通道邏輯425。數據屏蔽位413c從數據屏蔽觸發器418傳輸到通道邏輯425。命令信號42 的功能選擇位選擇要傳輸到被測器件435的管腳的數據的源。 驅動邏輯452的輸出為1/0驅動器/接收器430的管腳驅動器432的輸入。
命令信號424b為I/O邏輯454的輸入。I/O邏輯妨4控制管腳驅動器432。當管腳驅動器432主動驅動數據時,I/O邏輯妨4設置阻抗控制以允許驅動。作為另外一種選擇,I/O邏輯妨4允許管腳驅動器432基于計時脈沖在高阻抗狀態或驅動至Lo狀態之間切換。高阻抗狀態允許管腳電路430的接收器434從被測器件435接收數據。作為另外一種選擇,當時鐘線為發信目的(即I2C)而拉低電位時,一些協議具有特殊編碼。阻抗控制有利于這些功能。接收器434的輸出為比較邏輯456的輸入。比較邏輯456執行圖3的比較動作。 比較邏輯456比較由接收器434采集的來自被測器件435的響應數據與來自預期數據狀態觸發器417的預期數據41北。另外,比較邏輯456從數據屏蔽觸發器418接收數據屏蔽位 412c。響應數據與預期數據41 的比較結果和數據屏蔽位412c決定事務是否失敗。此外, 比較邏輯456為協議生成電路370的流控制管理各種保持條件。作為協議生成電路370流控制的一部分,往返FIFO 485使預期響應數據41 和數據屏蔽位413c延遲,以按照通過被測器件435的往返時間將其在時間上向后延遲。延遲允許比較邏輯456對來自被測器件435的響應數據與驅動數據413a、預期響應數據41 和數據屏蔽位413c中的一個進行比較。另外,往返FIFO 485使來自動作表450的事務表號 423延遲,以與捕獲邏輯475內的比較結果數據459對準。往返FIFO 485使預期固定數據信號422b延遲,以在比較邏輯456內與來自接收器434的響應數據進行比較。協議生成電路370的流控制的下一功能為“保持或樹”(HOLD OR tree)4650 “保持或樹”(HOLD OR tree)465從為被協議生成電路370或若干組成組協議生成電路370模擬的協議分組的每個通道的1/0邏輯妨4和比較邏輯456接收保持信號和使能信號。“保持或樹” (HOLD OR tree) 465的“保持”(Hold)輸出493被傳送到協議執行狀態機405和捕獲邏輯475,以確保在測試被測器件435過程中模擬正確的協議流。從動作表450輸出到被測器件435然后經“保持或樹”(HOLD OR tree) 465返回到協議執行狀態機405的循環時間設置被測器件的最高頻率。比較邏輯456的其中一個輸出為事務拒絕信號457,該信號被傳送到事務拒絕或樹(OR tree)4700事務拒絕信號457提供信號,表明被測器件435在特定位事務時間發生的一個或多個事務中失敗。為被協議生成電路370或若干組成組協議生成電路370模擬的協議分組的每個通道的所有事務拒絕信號457是事務拒絕或樹(OR tree)470的輸入。事務拒絕或樹(OR tree) 470的輸出494是協議執行狀態機405的輸入,用來提供對測試被測器件435所需協議的生成進度的條件指示。捕獲邏輯475從比較邏輯456接收比較結果數據信號459,該信號描述了將來自被測器件435的響應數據與預期數據41 進行比較的狀態。比較邏輯還從往返FIFO 485 接收延時事務表號486a和延時存儲信號486b。捕獲邏輯475從比較結果數據信號459捕捉讀數據,以便在以后用于Read/Modify/Write (讀/修改/寫)操作。捕獲邏輯475存儲具有時間戳和表號486a的比較結果數據信號459,以與其他協議生成電路370進行數據關聯。具有時間戳和表號486a的比較結果數據信號459被傳送到DRAM 220。如上所述,協議執行狀態機405提供一系列時序循環,該時序循環基于由時鐘408 同步的操作碼定義指定器件協議的操作動作。時序循環信號被傳送到協議定義表410。表位置位491從協議執行狀態機405傳送到加法器407,進而傳送到協議定義表410,以存取用于形成生成要發送到被測器件的激勵信號的協議的事務數據,并接收和評估來自被測器件的響應。協議執行狀態機405的其他功能包括提供用來與主機通信的標志497。協議執行狀態機405可以設置有限數量的標志的任意組合或與之進行比較。標志497的操作數將包含屏蔽位、寫位或比較標志。在多個協議生成電路370成組的情況下,只有一個協議執行狀態機405用于標志,其他協議執行狀態機405將從主部件接收狀態。延遲同步信號線(ISL) 498被主協議執行狀態機405用來在所有協議執行狀態機 405之間分配特定協議動作的啟動。圖5為包括具有圖1、2或4A和4B的協議生成控制370的協議專用電路50 .....
505η的其中一個實施例的多個實例的自動測試設備系統500的框圖。自動測試設備系
統500具有連接到多個管腳電子單元510a.....510η的協議專用電路50 .....505η的
多個通道。如上所述,多個管腳電子單元510a.....510η中的每一個在被測SOC器件MO
和自動測試設備系統500之間通過負載適配器的物理互連提供電接口 50 .....502η
和50 .....50如。協議專用電路50 .....505η中的每一個連接到多個管腳電子單元
510a.....510η中的至少一個,以向被測SOC器件540提供測試激勵信號,并從其接收測試
響應信號。每一個協議專用電路50 .....505η具有協議生成電路370,該協議生成電路與
協議生成電路370的剩余電路配合,起到如圖1、2或4Α和4Β中所述的作用。協議專用電路50^ι、. . . ,505η的每一個協議生成電路370與其指定DRAM 520a、. . .、520η通信,以提供測試命令并記錄被測SOC器件540的運行的測試結果。在具有大量管腳的協議中,協議專用電路50 .....505η協調對命令的解碼并生
成同步模擬預期響應的測試響應信號。為了同步模擬預期響應,協議專用電路50 .....
505η通過同步通信接口 525在協議專用電路505a、. . .、505n中可以配合的電路之間通信。同步通信接口 525包含來自事務拒絕或樹(OR tree)的事務拒絕信號和來自“保持或樹” (HOLD OR tree)的“保持” (Hold)信號。這種配合可以影響操作的延遲,因此通信被結
構化以將協議專用電路50 .....505η之間交叉通信的影響最小化。例如,協議生成電路
505a.....505η的其中一個狀態機(圖5中未示出)可以充當主機,并從相鄰協議專用電
路50 .....505η直接接收測試激勵信號以解碼。主協議引擎控制器(未示出)然后分配
正確的指令,以構造協議指定的測試響應信號的結構和時序,同時使操作的延遲的影響最小化。延遲同步信號線(ISL) 535被主協議引擎控制器(未示出)用來在所有多個協議專用電路50 .....505η之間分配特定協議動作的啟動。 自動測試設備系統500可具有多個主振蕩器530a和530b,用于生成由協議專用電
路50 .....505η確定的不同時序。對于自動測試設備系統500的確定性操作尤其如此。
在自動測試設備系統500的非確定性操作中,可以將主振蕩器530a和530b用于涉及確定性操作的測試的那些部分,同時可以將來自被測SOC器件MO的外部時序在非確定性操作中用于協議引擎控制器(未示出)。 現在參見圖6,該圖為描述符合以太網管理數據輸入/輸出(MDIO)協議規范的信號和時序的示例性示意圖。MDIO為兩管腳串行總線協議,其中總線上的一個工作站充當主工作站,總線上的所有其他工作站充當從工作站。主工作站為總線生成時鐘信號,并且由主工作站傳輸的操作為READ操作和WRITE操作。每個協議包的開端開始于前同步碼652,然后是幀頭653和操作碼6M的開端。固定數據650包括每一個這種碼,并且被定義為存儲在協議定義表中。即使存在單獨的操作碼,也只有兩個碼定義操作碼。把它們放入協議定義表使得可以存儲在測試模式中。物理地址657和目的地址658通過執行測試模式來生成,以生成協議,進而生成存儲在獨特驅動數據FIFO內的獨特驅動和預期數據655。周轉時間位 660取決于正在執行的事務的類型,但其組合非常少,并且被視為固定數據且存儲在協議定義表內。地址/數據位665為要存儲在獨特驅動數據FIFO內的獨特驅動數據。空閑時間位時間670實際提供將被設為將管腳電路的驅動器強制推到高阻抗狀態的命令。圖7為由操作動作發展的、用來定義指定器件協議的示例性操作碼的表。 Opcode (操作碼)在這里為“簡寫”命令語言,其為自動測試設備內的協議生成電路指定供每個管腳執行協議的時序和信號。本實例的操作碼為用于生成協議的時序和數據結構的事務定義。示例性操作碼定義還包括引擎更新操作碼(Engine Update Opcode),用來使自動測試設備的主機為協議生成電路提供直接指令。流控制操作碼(Flow control Opcode)在若干組成組協議生成電路、測試模式發生器或自動測試設備的主機之間提供通信,以控制測試模式流。協議生成電路利用以下事實對于任何給定的協議,只有一小組動作(例如,如圖3中所示)可以在每個位時間發生。由這些動作,可以為協議的每個管腳組合一系列動作,從而生成協議。該串動作包含在協議定義表內。動作被結構化為定義事務類型(read、 write, read until等)的一組操作碼。協議定義表內的表號通知狀態機多個事務定義中的哪一個適用于該特定事務。預期響應數據為從自動測試設備角度的讀事務中包含的獨特數據。驅動激勵數據為用于寫事務和讀事務的獨特數據(在讀事務內可以有獨特驅動數據例如地址)。協議執行狀態機為根據操作碼和表號選擇的事務檢索協議定義;操作碼在動作表內被解碼成具體的使能位;這些使能位在通道邏輯內與驅動激勵和預期響應數據組合,逐位生成正確的事務。當事務完成時,協議執行狀態機前進到下一操作碼、表號和數據。 寬度大于一位的操作碼通過在多個位上復制協議生成電路來生成。參見圖1和2,在一個實施例中,協議控制定義表310或360提供協議定義存儲裝置。協議控制存儲表370提供用于從協議定義存儲表360中選擇和檢索協議定義的裝置。 協議特有數據存儲表315是用于遞送測試數據以測試DUT的裝置。在一些實施例中,動作表 350可以被設置為使用所選協議定義作為提供用于測試DUT的測試數據的裝置的一部分。如本領域的技術人員所理解,可以制造包含重構指令碼的程序存儲裝置,該重構指令碼可以在連接到諸如現場可編程門陣列的可重構集成電路的計算裝置上執行。重構指令碼在執行時將可重構集成電路的內部電路構造為形成如圖1、2或4A和4B所述的協議生成電路。可重構集成電路在構造后執行過程,以生成符合用于在自動測試設備和被測器件之間通信的指定器件協議的信號和時序。應當理解,如本文所用,術語“表”可包括包含已存儲和可檢索信息的存儲裝置或具有這種功能的其他裝置。雖然已經結合其實施例部分地示出和描述了本發明,但本領域的技術人員將會理解,在不脫離本發明精神和范圍的前提下,可以在形式和細節上進行各種修改。
權利要求
1.一種用于自動測試設備的協議引擎電路,所述協議引擎電路包括協議生成電路,所述協議生成電路被構造成檢索協議特有數據,并用與被測器件相對應的所選協議定義格式化所述協議特有數據,以測試所述被測器件。
2.根據權利要求1所述的協議引擎電路,還包括協議定義表,其中所述協議生成電路被構造成從所述協議定義表檢索所述所選協議定義。
3.根據權利要求2所述的協議引擎電路,其中所述協議生成電路包括協議控制電路。
4.根據權利要求3所述的協議引擎電路,其中所述協議控制電路包括協議控制存儲表,所述協議控制存儲表與主機設備通信以接收和存儲操作碼和協議定義位置號。
5.根據權利要求4所述的協議引擎電路,其中所述協議生成電路還包括動作表,所述動作表連接用于接收來自所述協議定義表的固定協議數據和來自所述協議控制存儲表的操作碼,以生成包括用于測試所述被測器件的動作信號數據的固定協議數據。
6.根據權利要求4所述的協議引擎電路,其中所述協議生成電路包括協議特有數據存儲表。
7.根據權利要求6所述的協議引擎電路,其中所述協議特有數據存儲表包括a)驅動數據表,所述驅動數據表包含用于所述被測器件的協議特有數據;以及b)預期數據表,所述預期數據表包含預期作為來自所述被測器件的響應的所述協議特有數據。
8.根據權利要求6所述的協議引擎電路,其中所述協議生成電路包括事務狀態機,所述事務狀態機與所述協議控制存儲表通信,以提供用來基于所述操作碼定義指定器件協議的操作動作的一系列時序循環。
9.根據權利要求8所述的協議引擎電路,其中所述協議控制存儲表包括a)操作碼存儲裝置,所述操作碼存儲裝置用于存儲所述操作碼并將所述操作碼順序傳送到所述事務狀態機;以及b)事務位置存儲裝置,所述事務位置存儲裝置用于存儲所述協議定義位置號并將所述協議定義位置號傳送到所述事務狀態機。
10.根據權利要求9所述的協議引擎電路,其中所述協議生成電路還包括動作表,所述動作表連接用于接收來自所述協議定義表的固定協議數據和來自所述協議控制存儲表的操作碼,以生成包括用于測試所述被測器件的動作信號數據的固定協議數據。
11.根據權利要求10所述的協議引擎電路,其中所述操作碼包括用于在所述協議引擎電路與所述主機設備之間管理命令和控制的指令。
12.根據權利要求11所述的協議引擎電路,還包括流控制電路,并且其中所述操作碼包括用于管理多個協議引擎電路之間的流控制的指令。
13.根據權利要求2所述的協議引擎電路,其中所述協議定義表包括動作信號數據。
14.根據權利要求1所述的協議引擎電路,還包括協議定義表,所述協議定義表包括用于所述被測器件的多個協議定義。
15.根據權利要求1所述的協議引擎電路,還包括協議定義表,所述協議定義表包括用于多個被測器件的多個協議定義。
16.一種用于自動測試設備的協議引擎電路,所述協議引擎電路包括a)協議控制存儲表,所述協議控制存儲表與主機設備通信,以用于接收和存儲包括操作碼和協議定義位置號的測試模式;b)事務狀態機,所述事務狀態機與所述協議控制存儲表通信,以提供用來基于所述操作碼定義指定器件協議的操作動作的一系列時序循環;c)協議定義表,所述協議定義表響應所述事務狀態機,以便為與所述協議定義位置號相對應的被測器件提供固定協議數據;d)動作表,所述動作表響應所述事務狀態機,以提供與所述操作碼相對應的動作數據;以及e)協議特有數據存儲表,所述協議特有數據存儲表與所述主機設備通信,以用于接收和存儲包括預期數據和驅動數據的測試模式,所述協議特有數據存儲表響應所述一系列時序循環,以向管腳電路提供與所述固定協議數據和動作數據相對應的協議特有數據,以測試所述被測器件。
17.一種用于生成符合用于在自動測試設備和被測器件之間通信的指定器件協議的信號和時序的方法,所述方法包括a)接收用于所述被測器件的固定協議數據;b)接收協議特有數據;以及c)將所述固定協議數據和所述協議特有數據組合成用于測試所述被測器件的所述指定器件協議。
18.根據權利要求17所述的方法,還包括a)接收協議定義位置號;b)從由所述協議定義位置號指示的表位置為所述指定器件協議選擇所述固定協議數據;以及c)使用所述指定器件協議內的所述固定協議數據和所述協議特有數據測試所述被測器件。
19.根據權利要求18所述的方法,還包括接收操作碼并從與所述操作碼相對應的表位置檢索動作數據,以及將所述動作數據與用于測試被測器件的所述指定器件協議內的所述固定協議數據和所述協議特有數據一起提供。
20.根據權利要求18所述的方法,其中為所述指定器件協議檢索所述固定協議數據的操作包括檢索動作數據,并且其中測試包括使用所述動作數據。
21.根據權利要求18所述的方法,還包括順序存儲和提供協議定義位置號、操作碼和協議特有數據。
22.根據權利要求18所述的方法,其中接收所述協議定義位置號和檢索所述固定協議數據的操作包括使用狀態機。
23.根據權利要求22所述的方法,其中接收所述協議定義位置號的操作包括從協議控制存儲表接收所述協議定義位置號,并且還包括使用所述狀態機從協議定義表選擇所述固定協議定義。
24.根據權利要求23所述的方法,還包括使用所述狀態機從所述協議控制存儲表接收操作碼并從與來自所述協議控制存儲表的所述操作碼相對應的動作表選擇動作數據。
25.根據權利要求M所述的方法,其中測試包括提供來自協議特有數據存儲表的所述協議特有數據。
26.根據權利要求25所述的方法,還包括向管腳電路邏輯電路提供所述固定協議數據、所述動作數據和所述協議特有數據。
27.根據權利要求沈所述的方法,還包括將測試模式命令加載到所述協議控制存儲表和所述協議特有數據存儲表內。
28.根據權利要求18所述的方法,其中接收所述協議定義位置的操作包括從主機設備接收所述協議定義位置號。
29.一種通用協議引擎,包括a)協議定義存儲裝置,所述協議定義存儲裝置包括用于DUT的協議定義;b)用于從所述協議定義存儲裝置選擇和檢索協議定義的裝置;以及c)用來使用用于測試DUT的所述協議定義提供測試數據的裝置。
30.根據權利要求四所述的通用協議引擎,其中所述協議定義存儲裝置包括協議定義表,所述協議定義表包括對DUT進行功能測試所需的所述協議定義。
31.根據權利要求30所述的通用協議引擎,其中所述用來提供測試數據的裝置包括數據存儲表和動作表。
32.根據權利要求四所述的通用協議引擎,其中用于從成組已存儲協議定義選擇和檢索所述協議定義的所述裝置包括協議控制存儲表和協議定義表,并且其中用來使用所選協議提供測試數據的裝置包括數據存儲表和選擇器。
全文摘要
在一個實施例中,本發明提供了一種用于自動測試設備的協議引擎電路,所述協議引擎電路包括協議生成電路,所述協議生成電路被構造成檢索協議特有數據,并用與被測器件相對應的所選協議定義格式化所述協議特有數據以測試所述被測器件。所述協議生成電路可以被構造成能從協議定義表檢索所述所選協議定義。
文檔編號G01R19/00GK102341717SQ201080010873
公開日2012年2月1日 申請日期2010年3月12日 優先權日2009年3月13日
發明者喬治·康納 申請人:泰拉丁公司