TWI287639B - A distributed operating system for a semiconductor test system for testing at least one device under test - Google Patents

A distributed operating system for a semiconductor test system for testing at least one device under test Download PDF

Info

Publication number
TWI287639B
TWI287639B TW93103512A TW93103512A TWI287639B TW I287639 B TWI287639 B TW I287639B TW 93103512 A TW93103512 A TW 93103512A TW 93103512 A TW93103512 A TW 93103512A TW I287639 B TWI287639 B TW I287639B
Authority
TW
Taiwan
Prior art keywords
test
operating system
module
interface
address controller
Prior art date
Application number
TW93103512A
Other languages
Chinese (zh)
Other versions
TW200506404A (en
Inventor
Ankan Pramanick
Mark Elston
Leon Lee Chen
Robert F Sauer
Original Assignee
Advantest Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/403,817 external-priority patent/US7290192B2/en
Priority claimed from US10/404,002 external-priority patent/US7460988B2/en
Priority claimed from US10/772,327 external-priority patent/US7437261B2/en
Application filed by Advantest Corp filed Critical Advantest Corp
Publication of TW200506404A publication Critical patent/TW200506404A/en
Application granted granted Critical
Publication of TWI287639B publication Critical patent/TWI287639B/en

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

A distributed operating system for a semiconductor test system, such as automated test equipment (ATE), is described. The operating system includes a host operating system for enabling control of one or more site controllers by a system controller. One or more local operating systems, each associated with a site controller, enable control of one or more test modules by an associated site controller. Each test module performs testing on a corresponding device-under-test at a test site.

Description

1287639 (1) 玖、發明說明 本申請案主張2 003年2月24日提出之 6 0M4 9,622號、“測試積體電路的方法及裝置 年2月14曰提出之申請案第60/44 7,8 3 9號、“ 體積體電路用測試程式之方法及結構”;2003」 曰提出之美國申請案第1 0/404,002號、“測試 測試模組模擬器、及儲存程式之記錄媒體”:及 3月31日提出之美國申請案第1〇/4 03,817號、 備及測試方法”之利益,所有申請案之整體內 用的方式倂入本文中。本申請案之整體內容係 的方式倂入同時在此提出之美國申請案第_ “開發半導體積體電路用測試程式之方法及結 該申請案主張 2003年2月 14日提出之E 6 0/44 7,8 3 9號、“開發半導體積體電路用測試程 及結構”之利益。 【發明所屬之技術領域】 本發明有關積體電路(ICs )之測試,且更 用於測試一或多ICs之自動化測試設備(ATE ) 【先前技術】 系統晶片(SOC )裝置之日增複雜性及同時 測試成本之需求已迫使1C製造廠及測試器賣方 應該如何施行IC測試。根據工業硏究,沒有測 申請案第 ";2003 開發半導 ΐ 3 月 3 1 模擬器、 2003 年 “測試設 容係以引 亦以引用 ----號 ^ 構”中, _請案第 式之方法 特別有關 〇 減少晶片 重新思考 試廠商之 -5- (2) 1287639 重新設計預算成本將繼續在不久的將來急劇地上昇。 測試設備之高成本之一主要理由係習知測試器體系 結構之專用本質。每一測試器製造廠具有許多測試器平 臺,這些平臺不只跨公司不相容,諸如 Advantest、 Teradyne 及 Agilent,而且跨平臺亦不相容,諸如由1287639 (1) 发明 发明 发明 发明 发明 发明 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本8 3 9 , "Method and Structure of Test Program for Volume Circuits"; 2003" 美国 US Application No. 1 0/404,002, "Testing Test Module Simulator, and Recording Media for Storage Programs": and The benefits of the US application No. 1/4 03, 817, preparation and test methods, filed on March 31, are incorporated in this document. The overall content of this application is intrusive. At the same time, the US application filed here _ "Method for developing a test program for a semiconductor integrated circuit and the application of the application claimed to be issued on February 14, 2003, E 6 0/44 7,8 3 9 "developing semiconductor The benefits of the test circuit and structure of the integrated circuit. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to testing of integrated circuits (ICs) and is also used for testing automated test equipment (ATE) of one or more ICs. [Prior Art] Increasing complexity of system-on-a-chip (SOC) devices And the need to test costs at the same time has forced 1C manufacturers and tester sellers how to perform IC testing. According to industrial research, there is no application for the application of the ""2003 development semi-conducting ΐ March 31 simulator, 2003 "testing the installation system to cited by reference----number ^ structure", _ request The method of the first type is particularly relevant to the reduction of the wafer re-examination of the tester-5- (2) 1287639 The cost of redesigning the budget will continue to rise sharply in the near future. One of the main reasons for the high cost of test equipment is the proprietary nature of the conventional tester architecture. Each tester manufacturer has many tester platforms that are not only incompatible with companies, such as Advantest, Teradyne, and Agilent, but are also incompatible across platforms, such as by

Advantest所製成之T3 3 0 0、T5 5 00及T6600系列測試 器。基於這些不相容性,每一測試器需要其自身專用而 不能使用在其他測試器之硬體及軟體零組件。此外,需 要一重大之翻譯努力以將一測試程式由一測試器移植至 另一測試器’且第二者之解決方法係難以開發。即使當 已爲一平臺開發第三者之解決方法時,其不能在一不同 平臺移植或再利用。由一平臺至另一平臺之翻譯處理大 致上係複雜及易錯誤的’導致額外之努力、時間及增加 測試成本。 測S式設備之局成本之一主要理由係習知測試器體系 結構之專用本質。每一測試器製造廠具有許多測試器平 室’坦些平室:不只跨公司不相容,諸如Advantest、 Teradyne及AgUent,而且由相同公司所製成之跨平臺亦 不相谷,δ者如由Advantest所製成之丁33〇〇、丁55〇〇及 Τ6600系列測試器。基於這些不相容性,每一測試器需要 其自身專用而不能使用在其他_試器之硬體及軟體零組 件。此外,需要一重大之翻譯努力以將一測試程式由一 測試器移植至另-測試器,且第三者之解決方法係難以 開發。即使當已爲一平臺開發第三者之解決方法時,其 -6- (3) 1287639 不能在一不同平臺移植或再利用。由一平臺至另一平臺 之翻譯處理大致上係複雜及易錯誤的,導致額外之努 力、時間及增加測試成本。 在一主機電腦上運轉諸如作業系統及測試分析工具/ 應用程式之測試器軟體。基於該體系結構之專用本質, 所有硬體及軟體對一給定之測試器保留於一固定架構 中。爲測試一 IC,開發一專用之測試程式,其使用一些 或所有該測試器之能力以界定該測試資料、信號、波 形、及電流及電壓電平,以及收集該待測物(D U T )反應 及決定DUT通過/失敗。 因爲一測試器應可測試寬廣變化之I C s ,硬體及軟體 零組件兩者係設計成可在寬廣操作範圍上工作。如此, 一測試器包含未用於很多測試狀態之很多資源。同時, :對於一給定之1C,該測試器不能提供適合於該IC之最想 要資源。譬如,適合測試一複雜而包含嵌入式微控制 器、大嵌入式動態隨機存取記憶體(D RAM )及快閃記憶 體、及各種諸如周邊零件連接界面(PCI )及通用串列匯 流排(USB )等之其他核心之SoC A之邏輯測試器,可能 發現不適當地用於一不具有嵌入式微控制器及大嵌入式 DRAM/快閃記憶體、但包含數位類比轉換器(DACs )及 積分三角(Sigma-Delta )轉換器之 ASIC B。爲測試 ASIC B,一適當之測試器將需要類比及混合信號測試單 元,而非廣泛地支援嵌入式記憶體測試。 因此,其想要的是提供一可依測試需求而定重新架 -7- 1287639 (4) 構之測δ式窃。此外’其想要的是連接及使用宜千 有關之賣方設備。然而’基於習知測試系統之 及在每一賣方設備中之資料格式之專有本質, 可能插電及使用來自另一賣方之設備。 【發明內容】 V 本發明之一具體實施例之開放式體系結構 允許第三者之模組之使用。該測試系統之硬體 機包含標準之介面’而來自不同賣方之模組能 用方式與該介面互相作用。該模組可爲硬體, 單元、數位針腳卡、類比卡、或裝置電源;或 如一工具程式或公用程式,包含測試執行工具 統監視或核可工具程式、單元電平控制器(例 儀器、通用介面匯流排-G ΡIΒ控制)、資料庫、 他設備之控制之軟體。 於一具體實施例中,該體系結構在微軟視 統下係一分散式物件環境。該測試器係一具有 至模組通訊及控制器至模組通訊之模組控制軟 板通訊函式庫之模組化系統。該模組譬如包 組、裝置電源(DPS )模組、任意波形產生器( 組、數位板模組及特定應用軟體。 於一具體實施例中,一模組連接賦能器包 多模組連接及同步性機構之開關矩陣網路。當 樣式之多數DUTs時,該開關矩陣網路亦在多數 I 與 ATEs 專用本質 其通常不 測試系統 及軟體主 以隨插即 諸如功能 軟體,諸 程式、系 如基本之 或用於其 窗作業系 允許模組 體及一背 含數位模 AWG)模 含一提供 測試相同 控制器及 (5) 1287639 測試位置之間允許共通測試資料及資源之分享。 因爲每位置獨立之位址控制器,所有測試位置能非 同步地操作。該事實上有助於多數DUT測試。該模組化 及複數位置結構亦對該系統提供擴展性。於該系統之一 具體實施例中’能架構單一控制器以控制及測試多數 DUTs 〇 隨插即用或可替換模組之槪念係在硬體及軟體層次 兩者藉著標準介面之使用而變容易。於軟體中,框架類 別經常能夠作動、控制及監視該模組。該框架係施行共 通之測試相關操作之一組類別及方法。這包含用於電源 及針腳電子定序、設定電流/電壓電平及定時狀態、獲 得測量結果、控制測試流動等之類別。該框架亦提供用 於副程式服務及除錯之方法。框架物件可根據本發明之 一具體實施例經由提供標準之介面工作。提供該框架類 別之一以C + +爲基礎之參考實作。一使用者亦可開發其自 身之特定框架類別。 經過一背板通訊函式庫獲得硬體-軟體介面及通訊。 經由以C + +語言爲基礎之測試程式及—在C + +以上之圖形 使用者介面(GUI )測試程式規劃層存取之開放式背板通 訊函式庫提供用於該測試系統之一般化使用者介面。使 用C/C + +建構產生一測試程式之方法係揭示在美國申請案 第6 0/44 7,83 9號中。該通訊函式庫以對使用者應用程式 及測試程式簡明之方式提供與該位址控制器通訊之構 制。本質上’該背板通訊函式庫提供意欲用於橫跨該測 -9- 1287639 (6) 試器背板(關於此點,“背板”係一抽象、不須爲一物 理硬體背板)通訊之介面,藉此提供與連接至特別位址 之模組通訊所需之函數程式。此函式庫之使用免除該模 組賣方建立其自身之驅動程式(諸如微軟視窗階層之驅 動程式)。這允許賣方特定模組軟體使用該標準之背板 驅動程式以與該對應硬體模組通訊。在一具體實施例 中,該背板通訊協定使用一以封包爲基礎之格式。 開放式體系結構之一優點係其簡化整個測試器用 法。其提供一機制以開發第三者解決方法,且再利用這 些解決方法而不需顯著重作。對於任何給定之測試位 址’能選擇適當之模組及如所想要地使用。因爲模組係 可替換,能重新架構每一測試位址,以達成一 DUT之最 佳測SS;。其亦簡化跨平臺之不相容性問題。所有這些簡 化作用導致減少努力、更快之讀寫轉換時間、及隨後減 少之測試成本。 本發明提供一用於在測試(D UT )下至少測試〜裝置 之系統。該系統包含至少一位址控制器,用以控制g少 一測試模組,以將至少一測試(可能爲測試計劃之〜部 份)施加至至少一 D U T。一系統控制器控制該至少〜位 址控制器。 一測試模組介面界定測試模組功能,用以當作〜& 址控制器至第一測試模組之介面,其中該測試模組介面 係可延伸至當作該位址控制器至第二測試模組之介面, 該未延伸測試模組介面不足以當作該位址控制器至該第 - 10- 1287639 (7) 二測試模組之介面。 該系統尙包含一可延伸之測試功能,諸如一可讓使 用者界定之測試級,其係與DUT特性無關。一項測試係 該可延伸測試功能之實作。 一測試模組可使用一測試器針腳介面與該DUT通 訊,該介面可與DUT特性無關。該測試模組介面可包含 一測試模組介面類別,且該測試器針腳介面可包含一測 試器針腳介面類別。 本發明之一具體實施例之分散式作業系統至少包含 一主作業系統,其用以能夠藉著一系統控制器控制至少 一位址控制器;及至少一局部作業系統,其與每一位址 控制器相連,用以能夠藉著一相連之位址控制器控制至 少一測試模組。至少一測試模組在一對應之DUT上施行 測試。 該主作業系統可同步操作該至少一位址控制器、該 系統控制器及該至少一位址控制器間之調解通訊、及該 至少一位址控制器之監視操作。一位址控制器可監視與 該位址控制器相連之至少一測試模組之操作。 該主作業系統包含至少一主機介面,其用以與該至 少一位址控制器通訊。一測試模組介面界定測試模組功 能,用以當作一位址控制器至第一測試模組之介面,其 中該測試模組介面係可延伸至當作該位址控制器至第二 測試模組之介面,該未延伸測試模組介面不足以當作該 位址控制器至該第二測試模組之介面。 -11 - 1287639 (δ) 該主作業系統至少可包含一主框架類別, 標準之電腦語言(例如C/C + + )中開發,以便會g 用者開發特定類別之應用程式,用以控制該至 控制器。 每一局部作業系統可包含至少一局部框架 可在一標準之電腦語言(例如C/C + + )中開發, 讓一使用者開發特定類別之應用程式,用以控 一測試模組。 藉著每一位址控制器所控制之模組數目 的。與一對應位址控制器有關之局部作業系統 架構藉著該位址控制器所控制之測試模組樣式 業系統能夠使藉著該系統t控制器所控制之位址 目爲可變動的,及能夠使藉著該測試系統所測靜 數目可變動的。 一模擬器能以該測試系統模擬一候選測試 法’以確認該候選模組與該測試系統相容。 【實施方式】 圖1說明習知測試器之一般化體系結構, 信號係如何產生及施加至一待測物(D U T ) 。i 輸入針腳係連接至一應用測試資料之驅動器2 DUT輸出針腳係連接至一比較器4。於大部份 使用三態驅動器-比較器,以致每一測試器針腳 能作用當作〜輸入針腳或當作一輸出針腳。專 其可在一 i夠讓一使 少一位址 類別,其 以便能夠 制該至少 係可變動 能夠重新 。該主作 控制器數 :之 DUTs 模組之用 其顯示一 5 — DUT ,而每一 案例中, (通道) 用於單一 -12- (9) 1287639 D U T之測試器針腳共同地形成一測試位址,並與該工作 以一相關定時產生器6 、波形產生器8 、圖像記憶體 1 0、定時資料記憶體1 2、波形記憶資料1 4、及界定該資 料流速之部件1 6。 圖2說明一根據本發明具體實施例之系統體系結構 1 〇〇。一系統控制器(SysC ) 1 〇2係接合至複數位址控制 器(SiteCs ) 104。該系統控制器亦可接合至一網路以存 取相關檔案。經過一模組連接賦能器1 0 6,每一位址控制 器係接合至控制位在一測試位址1 1 〇之一或多測試模組 108。該模組連接賦能器1〇6允許所連接硬體模組1()8之 重新架構,及亦用作一用於資料傳送之匯流排(用以載 入圖案資料、集合反應資料、提供控制等)。此外,經 過該模組連接賦能器,在一位址之模組能存取在另一位 址之模組。該模組連接賦能器1 0 6允許不同測試位址具 有相同或不同模組架構。換句話說,每一測試位址可採 用不同數目及樣式之模組。可能之硬體實作包含專用之 連接、切換連接、匯流排連接、環形連接、及星形連 接。該模組連接賦能器1 〇 6可譬如爲一開關矩陣所實 作。每一測試位址1 1 0係與一 DUT 1 1 2有關,其經過一 負載板U 4連接至該對應位址之模組。於一具體實施例 中,單一位址控制器可連接至多數DUT位址。 該系統控制器1 02用作該整個系統管理者。其協調 該位址控制器活動、管理系統階層之平行測試策略、及 另外提供信息處理程式/探針控制以及系統階層資料登錄 -13- 1287639 (10) 及錯誤處理支援。依該操作上之設定而定,該系統控制 器1 0 2能布署在一由位址控制器1 〇 4之操作分開之中央 處理單元(CPU)上。另一選擇係一共用之CPU可藉著 該系統控制器1 0 2及該位址控制器1 〇 4所分享。同理, 每一位址控制器104能布署在其自己專用之CPu (中央 處理單元)上,或爲該同一 CPU內之一分開製程或線 程。 該系統體系結構可能槪念上地想像爲圖2所示之分 散式系統,並理解該個別系統零組件亦能當作一整體、 單一系統之邏輯零組件,且不須視爲一分散式系統之物 理零組件。 圖3說根據本發明—具體實施例之軟體體系結構 2〇〇。該軟體體系結構200代表一分散式作業系統,其具 有與相關硬體系統元件1 02,1 04,1 08通訊而用於該系統控 制器220、至少一位址控制器240、及至少一模組260之 元件。除了該模組260外,該體系結構200包含一用以 於軟體中模組模擬2 8 0之對應元件。 當作一示範之選擇,此平臺之開發環境能基於微軟 視窗軟體。該體系結構之使用具有附加利益於程式及支 援可移植性(例如一現場維護工程師能連接一膝上型電 腦’其運轉該測試器作業系統以施行先進之診斷)。然 而’對於大計算密集之操作(諸如測試圖案編譯),該 有關軟體可產生爲一獨立之實體,而能夠獨立地運轉以 允許橫跨分散式平臺之工作排程。用於批次工作之相關 -14- (11) 1287639 軟體工具係如此能夠在複數平臺樣式上執彳了。 當作一示範之選擇,ANSI/ISO標準C + +能當作用於 該軟體之原始語言。當然,在此有複數可用之選擇(以 提供一在額定C + +介面上方之層),而允許第三者以其自 身選擇之另一語言整合進入該系統。 圖3依照元件之組織藉著額定之來源(或集體開發 成一子系統)說明她們之陰影變化,該來源包含該測試 器作業系統介面290、使用者零組件292 (例如爲測試目 的而由一使用者所供給)、系統零組件2 9 4 (例如用於基 本之連線及通訊供給當作軟體下部機制)、模組開發零 組件296 (例如由一模組開發者所供給)、及外部零組件 2 98 (例如藉著異於模組開發者之外部來、源所供給)。 由以來源爲基礎之組織觀點,該測試器作業系統 (TOS )介面290包含:系統控制器至位址控制器介面 222、框架類別224、位址控制器至模組介面24 5、框架 類別246、預定模組階層介面、背板通訊函式庫249、機 箱插槽IF (介面)262、負載板硬體IF 264、背板模擬IF 283負載板模擬IF 285、DUT模擬IF 287、用於DUT’s Verilog模型之Verilog PLI (程式語言介面)2 8 8、及用 於DUT’s C/C + +模型之C/C + +語言支援289。 使用者零組件2 92包含:一使用者測試計劃檔242、 使用者測試類別243、硬體負載板265、及DUT 266、 DUT Verilog 模型 2 93、及一DUT C/C + +模型 291。 系統零組件294包含:系統工具22 6、通訊函式庫 -15- (12) 1287639 23 0、測試類別244、背板驅動程式2 5 0、HW背板261、 模擬框架28 1、背板模擬2 8 2 '及負載板模擬2 8 6。 模組開發零組件296包含:模組命令實作24 8、模組 硬體2 6 3、及模組模擬284。 外部零組件2 9 8包含外部工具22 5。 該系統控制器220包含至位址控制器之介面222、框 架類別224、系統工具226、外部工具225、及一通訊函 式庫23 0。該系統控制器軟體係對該使用者之主要枏互作 用點。其對本發明之位址控制器提供閘道器,及於多位 址/ DUT環境中之位址控制器之同步性,如藉著該相同 之受讓人在美國專利申請案第 60/449,622號中所敘述 者。使用者應用程式及工具、以圖形使用者介面(GUI) 爲基礎或以別的方式在該系統控制器上運轉。該系統控 制器亦可用作對於所.有測試計劃檔相關資訊之資料貯存 器,該資訊包含測試計劃檔、測試樣式、及測試參數檔 案。在本發明具體實施例之物件導向環境中,一測試參 數檔案包含用於一測試類別之參數化資料。 第三開發者除了(或取代)該標準系統工具226以 外能提供工具。該系統控制器220上之標準介面222包 含使用該工具以存取該測試器及測試物件之介面。該工 具(應用程式)22 5,226允許該測試及測試器物件之交談 式及批次控制。該工具包含用於提供自動化能力之應用 程式(譬如經過SECS/TSEM等之使用。) 駐在該系統控制器220上之通訊函式庫2 3 0提供該 -16- 1287639 (13) 機制’以用簡明之使用者應用程式及測靜 該位址控制器2 4 0通訊。 常駐於與該系統控制器2 2 0有關之言丨 2 2 2對該框架物件提供開放式介面,該物^ 器上執行。所涵括者係允許以該位址控制 組軟體存取及取回圖案資料之介面。亦包 用程式及工具以存取該測試器及測試物件 腳本程式介面,該腳本程式介面提供能力 程式引擎存取及處理該測試器及測試零組 用於交談式、批次及遠端應用程式之共用 tb 。 與該系統控制器220有關之框架類別 制,以與這些前述之物件互相作用,並提 之參考實作。譬如,本發明之位址控制器 能性測試物件。該系統控制器框架類別可 功能性測試代理主機,並當作該功能性測 端系統、以控制器爲基礎之替代品。如此 測試介面係製成可用於該系統控制器220 系統、模組-開發、及介面零組件2 94,296 考慮一分散於該系統控制器及該位址控制 統。該框架類別有效地提供一與該主系統 作業系統介面。它們亦構成該軟體元件, 該位址控制器提供該閘道器,及提供於多> 境中之位址控制器之同步性。如此該層提 &程式之方式與 Ϊ憶體中之介面 f在該系統控制 丨益爲基礎之模 ^含者係使用應 之介面,以及 以經過一腳本 件。這允許一 機制施行其功 224提供一機 供一標準介面 240提供一功 提供一對應之 試物件之一遠 該標準功能性 上之工具。該 及2 9 0分別可 器間之作業系 控制器相連之 該軟體元件對 位址/ DU丁環 供一於本發明 -17- (14) 1287639 具體實施例中之物件模型,其適於處理及存取位址控制 器,而不需直接處理該通訊層。 該位址控制器240存放一使用者測試計劃檔242、使 用者測試類別24 3、標準測試類別244、標準介面245、 位址控制器框架類別246、模組高階命令介面(亦即預定 模組階層介面)24 7、模組命令實作24 8、背板通訊函式 庫249、及一背板驅動程式2 5 0。最好大部份該測試功能 性係藉著該位址控制器1 04/240所處理,如此允許該測試 位址1 1 〇之獨立操作。 一測試計劃檔242係由該使用者所寫入。該計劃檔 目§以S者如C + +之標準電腦g吾g直接寫入》或以較局階測試 程式規劃語言敘述:以產生C + +碼,然後該C + +碼能編譯 成可執行之測試程式。 該測試計劃檔藉著使用該框架類別2 4 6及/或標準 或與該位址控制器有關之使用者供給測試類別244建立 測試物件、使用該標準介面2 4 5架構該硬體、及界定該 測試計劃檔流程。其亦於該測試計劃檔之執行期間提供 任何額外需要之邏輯。該測試計劃檔支援一些基本之服 務,及對下列物件之服務、諸如除錯服務(例如斷點) 提供一介面,且存取至下列之框架及標準類別。 與該位址控制器有關之框架類別2 4 6係一組施行共 通測試相關操作之類別及方法。該位址控制器階層框架 譬如包含用於電源及針腳電子定序、設定階層及定時狀 態、獲得測量結果、控制測試流動等之類別。該框架亦 -18- (15) 1287639 提供用於副程式服務及除錯之方法。該框架物件可經過 施行該標準介面工作。譬如,該測試器針腳框架類別之 實作係標準化,以施行一般之測試器針腳介面,其測試 類別可用於與硬體模組針腳互相作用。 可提供某一框架物件以藉著該模組階層介面2 4 7之 幫助而工作,以與該模組通訊。該位址控制器框架類別 有效地用作支援每一位址控制器之局部作業系統介面。 大致上超過九成之程式碼係用於該裝置測試之資 料,且剩餘百分之十之程式碼實現該測試方法論。該裝 置測試資料係依DUT而定(例如電源狀態、信號電壓狀 態、定時狀態等)。該測試碼包括將該指定之裝置狀態 載入至ATE硬體上之方,法,及亦包括那些需要實現使用 者指疋目的(諸如資料登載)之方法。本發明之一具體 實施例之框架提供一硬體相依之測試及測試器物件模 型’其允許該使用者施行DUT測試程式規劃之工作。 爲增加測試碼之再用性,此碼可造成與任何裝置特 定之資料(例如針腳名稱、模擬資料等)、或裝置測試 特定資料(例如用於D C單元、測量針腳、目標針腳數 目、樣式檔案名稱、樣式程式之編址之狀態)無關。假 如測試碼係以這些樣式之資料編譯,該測試碼之再用性 將減少。因此,根據本發明之一具體實施例,任何裝置 特定資料或裝置測試特定資料可於碼執行期間在外部造 成對該測試碼有效,以當作輸入。 於本發明之一具體實施例中,對於一特別樣式之測 - 19- (16) 1287639 試’ 一標準測試介面之實作之測試類別、在此標以ITe st 實現測試資料及碼(且因此碼之再用性)之分離。此一 測試類別本身可當作一用於分開例証之“型板”,其僅 只基於裝置特定及/或裝置測試特定資料彼此不同。在 該測試計劃檔中指定測試類別。每一測試類別典型提供 裝釐測試之一特定樣式或用於裝置測試之設定。譬如, 本發明之一具體實施例可提供該ITe st介面之一特定實 作,譬如FunctionalTest,當作用於所有DUTs用功能性 _試之基本類別。其提供設定性測試狀態、執行樣式、 &基於該故障選通脈衝之存在決定該測試狀.態之基本功 能。其他樣式之實作可包含交流電及直流電測試類別, 在此標以 ACParametricTests 及 DCParametricTests 〇 所有測試型式可提供一些虛擬方法(例如init (),preEXeC ( ) 5及 postExec ())之預定實作。這些 方法變成該測試工程師用以凌駕預定之行爲及設定任何 測試特定參數之進入點。然而,習慣之測試類別亦可用 於測試計劃檔。 測試類別允許該使用者藉著提供用於指定該測試之 〜特別例証之選項之參數架構類別行爲。譬如,一機能 測試可採取參數P L丨s t及T e s t C ο n d i t i ο n s,以分別指定欲 執行之樣式列表,及用於該測試之階層及定時狀態。對 於這些參數(經由測試計劃敘述檔中之不同“測試”方 塊之使用)指定不同値允許該使用者建立一機能測試之 不同實例。圖4說明不同測試實例如何可源自單一測試 -20- (17) 1287639 類別。一型板函式庫可使用當作一般演算法及資料結構 之一般用途函式庫。測試器之使用者可看見該函式庫, 以致該使用者可譬如修改一測試類別之實作,以建立_ 使用者界定之測試類別。 至於使用者開發之測試類別,該系統之一具體實施 例支援此測試類別整合進入該框架,其中所有測試類別 源自單一測試介面,例如ITest,以致該框架能以與系統 測試類別之標準組相同之方式處理它們。使用者可自由 地將額外之功能性倂入其測試類別,並理解它們必須於 其測試程式中使用自定碼以利用這些額外之設備。 每一測試位址1 1 〇係專用於測試一或多DUTs 1 06, 及經過測試模組1 1 2之一可架構集合物件起作用。每一 測試模組1 1 2係施行一特別測試工作之實體。譬如,一 測試模組1 12可爲一 DUT電源、一針腳卡、一類比卡 等。此模組方式提供高度彈性及可架構性。 該模組命令實作類別24 8可藉著模組硬體賣方所提 供,及依賣方所選擇之命令實作方法而定供給用於硬體 模組之任一模組階層介面、或提供標準介面之模組特定 實作。這些類別之外部介面係藉著預定模組階層介面需 求及背板通訊函式庫需求所界定。此層亦提供測試命令 之標準設定之延伸,允許增加方法(功能)及資料元 件。 該背板通訊函式庫249提供用於橫跨該背板之標準 通訊之介面,藉此提供與連接至該測試位址之模組通訊 -21 - (18) 1287639 所需要之功能。這允許賣方特定之模組軟體使用一背板 驅動程式2 5 0以與該對應硬體模組通訊。該背板通訊協 定可使用一封包基本格式。 測試器針腳物件代表物理測試器通道及源自一測試 器針腳介面,在此標以 ITseterPin。本發明具體實施例之 軟體開發工具(SDK)提供ITseterPin之一預定實作,其 可稱爲TseterPin,並以一預定模組階層介面、IChannel 之觀點供給。假如它們能以IChaiinel之觀點供給其模組 之功能性,賣方可自由地利用 TseterPin ;以別的方式, 它們必須提供ITseterPin之一實作以與其模組一起工作。 由本發明之測試器系統所提供、在此標以IΜ 〇 d u 1 e之 標準模組介面一般代表一賣方之硬體模組。能以可執行 之形式提供用於該系統之賣方供給模組特定軟體,諸如 動態連結函式庫(DDLs )。來自賣方用於每一模組型式 之軟體可爲內嵌於單一DLL中。每一此軟體模組係負責 用於提供該模組介面命令用之賣方特定實作,其包含模 組軟體開發用之API。 在此該模組介面命令有二論點:首先,它們用作該 使用者之介面,以與該系統中之一特別硬體模組(間 接)通訊;及第二,它們提供該第三方開發者能利用以 將其本身之模組整合進入該位址控制器階層框架之介 面。如此,由該框架所提供之模組介面命令係分成二種 型式: 首先及最明顯者係那些經過該框架介面暴露至該使 -22- 1287639 (19) 用者之“命令”。如此,測試器針腳介面(ITseterPin ) 提供方法以取得及設定階層及定時値’而一電源介面 (IPowerSupply )譬如提供用以開機及關機之方法。 此外,該框架提供該預定模組階層介面之特別範 疇,其能用於與該模組通訊。這些是由框架類別所使用 之介面(亦即框架介面之“標準”實作),以與賣方模 組通訊。 然而,該第二論點之使用,該模組階層介面係選用 地。如此做之優點係賣方可然後利用類別之實作,諸如 ITseterPin及 IPowerSupply等,而藉著供給該模組階層 介面集中焦點在送至其硬體之特定訊息之內容。.然而, 假如這些介、面對該賣方不適當,可選擇它們以提供其框 架介面之自定實作(例如ITseterPin、IPowerSupply等之 賣方實作)。這些將然後提供對於其硬體適當之自定功 能性。 因此模組特定之賣方軟體之整合能經過二不同方法 達成:相關框架類別及介面之自定實作、或模組階層介 面之特別範疇之自定實作。 其次藉著圖5之輔助呈現兩方法之一範例應用,其 係統一模型語言(U M L )類別圖示,並描述本發明~具 體實施例之測試器系統及賣方供給模組之相互作用。 一新數位模組之賣方、第三者A (ΤΡΑ)提供一軟體 模組’以與其硬體模組通訊。此軟體模組將供給該標準 介面’ IModule。讓該模組物件稱爲TPAPinModu]e。該賣 -23- (20) 1287639 方TPA能夠利用該ITseterPin介面之標準系統實作,在 此標以TseterPin,藉著供給該有關之預定模組-階層介面 —於此案例中,Ichann el —於其模組中。這可能由以下事 實所造成,即該TseterPin使用標準之預定模組階層介 面,諸如 Ichannel ,以與模組通訊。因此, TP APinModule藉著僅只建立及暴露 TseterPin物件提供 針腳。 現在考慮一不同賣方,第三者B(TPB),其決定該 Ichannel介面不會與其硬體好好工作。因此,TPB不只需 要提供其自身之IModule實作(TPBPinModule) ,而且 亦提供該ITseterPin介面之一實作,TPBTseterPin。 此方法給第三開發者大量之彈性,以選擇如何開發 其硬體及支援軟體。雖然它們需要供給該IModule介面, 可選擇它們以供給模組階層介面或供給像TseterPins之物 件,如它們所了解適合者。 其實,賣方可選擇供給 TseterPins,以便提供在該 ITs eter Pin介面中未支援之延伸。該框架將提供使用者一 機制,用以取回一特定介面或對一物件之實作指標。這 意指當使用者代碼具有一 ITs eter Pin指標時,假如其需 要,該框架將能夠決定其是否指向、亦即一 丁 P B T s e t e r P i η物件目的。(注意此特色可經由標準C + +執 行期型別鑑定(RTTI )提供)。換句話說,當該測試計 劃檔呼叫該ϊ T s e t e r P i η介面時’該介面可依序直接請求該 TseterPin類別之賣方測試器針腳實作,這合倂模組特定 -24- (21) 1287639 資訊(例如待設定暫存器之編址以提供一特別之DUT模 擬)。 簡言之,雖然該框架代碼將總是使用該ITseterPin介 面,如需要時,使用者可自由地利用由模組賣方所提供 之特定部件及延伸。換句話說,一模組賣方能夠譬如將 方法(功能)加至該類別之標準系統實作。對於該使用 者之交易係利用特定之賣方延伸造成該測試碼較不能與 其他賣方之模組一起使用。 在該模組階層,該系統 1 00額定地具有二操作模 型。於一線上操作模型中,使用模組元件260 (例如硬體 元件),且於一斷線操作模型中,使用軟體2 8 0中之模 組模擬。 對於線上操作模型,該模組元件260包含HW (硬 體)背板261、機箱插槽IF (介面)2 62、模組硬體 263、負載板硬體if 264、硬體負載板 2 65、及 DUT 266 〇 對於斷線操作模型,軟體2 8 0中之模組模擬包含一 模擬框架281、背板模擬2 8 2、背板模擬if 2 8 3、模組模 擬284、負載板模擬IF 2 8 5、負載板模擬286、及DUT模 擬IF 28 7。二模型係顯示用於DUT模擬。一使用Verilog 之模型包含該 Verilog PLI (程式語言介面)2 8 8及一 DUT Verilog模型293。一使用C/C + +之模型包含C/C + + 語言支援2 8 9及一 DUT C/C + +模型291。注意該模擬能在 任何電腦上施行,例如個人電腦上。 - 25- (22) 1287639 於該線上模型中’該模組賣方提供物理硬體零組件 以支援測試,諸如數位測試器通道、DUT電源、或DC測 量單元。該模組經過該機箱插槽IF 2 62對該HW背板261 形成介面。 另外,對於斷線工作,一以個人電腦爲基礎或運轉 該系統控制器之同等裝置之其他環境將承擔所有提供該 位址控制器階層框架及用於該軟體下層之副程式環境、 以及模擬硬體之責任。 該背板模擬2 8 2提供一用於該物理背板2 6 1之軟體 替代品。這經過該背板模擬介面2 8 3與該(賣方提供) 模組模擬軟體2 84通訊。T3 3 0 0, T5 5 00 and T6600 series testers made by Advantest. Based on these incompatibilities, each tester needs its own dedicated hardware and software components that cannot be used in other testers. In addition, a major translation effort is required to port a test program from one tester to another' and the second solution is difficult to develop. Even when a third party solution has been developed for a platform, it cannot be ported or reused on a different platform. The translation process from one platform to another is generally complex and error-prone, resulting in additional effort, time and increased testing costs. One of the main reasons for measuring the cost of an S-type device is the proprietary nature of the conventional tester architecture. Each tester manufacturer has a number of tester chambers, which are not only incompatible with companies, such as Advantest, Teradyne and AgUent, but also cross-platforms made by the same company. Ding 33〇〇, Ding 55〇〇 and Τ6600 series testers made by Advantest. Based on these incompatibilities, each tester needs its own dedicated hardware and software components that cannot be used in other testers. In addition, a major translation effort is required to migrate a test program from one tester to another, and the third party's solution is difficult to develop. Even when a third party solution has been developed for a platform, its -6-(3) 1287639 cannot be ported or reused on a different platform. Translation processing from one platform to another is generally complex and error-prone, resulting in additional effort, time, and increased testing costs. Run tester software such as operating systems and test analysis tools/applications on a host computer. Based on the proprietary nature of the architecture, all hardware and software remain in a fixed architecture for a given tester. To test an IC, develop a dedicated test program that uses some or all of the capabilities of the tester to define the test data, signals, waveforms, and current and voltage levels, and to collect the DUT response and Determine the DUT pass/fail. Because a tester should be able to test a wide range of I C s , both hardware and software components are designed to operate over a wide operating range. As such, a tester contains many resources that are not used in many test states. At the same time, for a given 1C, the tester cannot provide the most desirable resources for the IC. For example, it is suitable for testing a complex embedded microcontroller, large embedded dynamic random access memory (D RAM) and flash memory, and various peripheral interface (PCI) and universal serial bus (USB). Other core SoC A logic testers may find it inappropriate to use an embedded microcontroller and large embedded DRAM/flash memory, but include digital analog converters (DACs) and integral triangles. (Sigma-Delta) converter ASIC B. To test ASIC B, an appropriate tester would require an analog and mixed-signal test unit rather than extensive support for embedded memory testing. Therefore, what it wants is to provide a δ-style hack that can be re-arranged according to the test requirements -7- 1287639 (4). In addition, what it wants is to connect and use the relevant seller equipment. However, based on the proprietary nature of the prior art test system and the data format in each vendor device, it is possible to plug in and use equipment from another vendor. SUMMARY OF THE INVENTION V An open architecture of one embodiment of the present invention allows the use of a third party module. The hardware of the test system includes a standard interface' and the modules from different vendors can interact with the interface. The module can be a hardware, a unit, a digital pin card, an analog card, or a device power supply; or a tool or utility, including a test execution tool monitoring or approval tool, a unit level controller (eg, an instrument, Universal interface bus - G Ρ I Β control), database, software for controlling the device. In one embodiment, the architecture is a decentralized object environment under Microsoft Visualization. The tester is a modular system with a module control software communication library to module communication and controller to module communication. The module is, for example, a packet group, a device power supply (DPS) module, an arbitrary waveform generator (group, a tablet module, and a specific application software. In one embodiment, a module connection enabler package and multiple module connections) Switching matrix network of synchronous mechanism. When most DUTs are styled, the switch matrix network is also used in most I and ATEs. It usually does not test the system and the software is mainly plugged in, such as functional software, programs, systems. For example, the basic or for the window operation allows the module body and a back digital analog AWG) module to provide a test for sharing the same controller and (5) 1287639 test locations to allow sharing of common test data and resources. Because of the independent location controller for each location, all test locations can operate asynchronously. This actually helps most DUT tests. The modular and complex position structure also provides scalability to the system. In one embodiment of the system, the ability to structure a single controller to control and test most DUTs, plug-and-play or replaceable modules is at the hardware and software level through the use of standard interfaces. It's easy. In software, frame classes are often able to act, control, and monitor the module. The framework is a group of categories and methods for performing common test-related operations. This includes categories for power and pin electronic sequencing, setting current/voltage levels and timing states, obtaining measurement results, controlling test flow, and more. The framework also provides methods for sub-program services and debugging. The frame article can operate via a standard interface in accordance with an embodiment of the present invention. Provide a C++-based reference implementation of one of the framework categories. A user can also develop a specific framework category of his or her own. Get a hardware-software interface and communication through a backplane communication library. The open backplane communication library via the C++ language-based test program and the graphical user interface (GUI) test program access layer in C++ provides generalization for the test system. user interface. The method of constructing a test program using C/C++ construction is disclosed in U.S. Application Serial No. 60/44 7,83,9. The communication library provides communication with the address controller in a manner that is succinct to the user application and test program. Essentially, the backplane communication library is intended to be used across the test -9- 1287639 (6) tester backplane (on this point, the "backplane" is an abstraction that does not have to be a physical hardback Board) Communication interface to provide the functional program required to communicate with the module connected to the special address. The use of this library exempts the model vendor from creating its own driver (such as the Microsoft Windows driver). This allows the vendor specific module software to use the standard backplane driver to communicate with the corresponding hardware module. In a specific embodiment, the backplane protocol uses a packet-based format. One of the advantages of an open architecture is that it simplifies the entire tester approach. It provides a mechanism to develop third-party solutions and reuse these solutions without significant redoing. For any given test address', the appropriate module can be selected and used as intended. Because the modules are replaceable, each test address can be re-architected to achieve a DUT's best test SS; It also simplifies cross-platform incompatibility issues. All of these simplifications result in reduced effort, faster read and write conversion times, and subsequent reduced test costs. The present invention provides a system for testing at least a device under test (D UT ). The system includes at least one address controller for controlling one less test module to apply at least one test (possibly a portion of the test plan) to at least one D U T . A system controller controls the at least ~ address controller. A test module interface defines a test module function for acting as an interface between the ~& address controller and the first test module, wherein the test module interface can be extended to serve as the address controller to the second The interface of the test module, the interface of the unextended test module is not sufficient to serve as the interface between the address controller and the first 10-10287639 (7) test module. The system includes an extendable test function, such as a test level that can be defined by the user, regardless of the DUT characteristics. One test is the implementation of the extendable test function. A test module can communicate with the DUT using a tester pin interface that is independent of the DUT characteristics. The test module interface can include a test module interface category, and the tester pin interface can include a tester pin interface category. A decentralized operating system according to an embodiment of the present invention includes at least a main operating system for controlling at least one address controller by a system controller; and at least a partial operating system, each address The controllers are connected to enable control of at least one test module by a connected address controller. At least one test module is tested on a corresponding DUT. The primary operating system can synchronously operate the at least one address controller, the mediation communication between the system controller and the at least one address controller, and the monitoring operation of the at least one address controller. An address controller can monitor the operation of at least one test module coupled to the address controller. The primary operating system includes at least one host interface for communicating with the at least one address controller. A test module interface defines a test module function for acting as an interface between the address controller and the first test module, wherein the test module interface can be extended to serve as the address controller to the second test The interface of the module, the interface of the unextended test module is not sufficient as the interface between the address controller and the second test module. -11 - 1287639 (δ) The main operating system can contain at least one main frame category, developed in a standard computer language (eg C/C++), so that users can develop specific categories of applications to control the To the controller. Each partial operating system can include at least one partial framework that can be developed in a standard computer language (e.g., C/C++) to allow a user to develop a particular type of application for controlling a test module. By the number of modules controlled by each address controller. The local operating system architecture associated with a corresponding address controller is capable of making the address controlled by the system t controller variable by the test module style system controlled by the address controller, and The number of statics measured by the test system can be varied. A simulator can simulate a candidate test method with the test system to confirm that the candidate module is compatible with the test system. [Embodiment] FIG. 1 illustrates a generalized architecture of a conventional tester, how a signal system is generated and applied to a test object (D U T ). The i input pin is connected to a driver for application test data. 2 The DUT output pin is connected to a comparator 4. Most use a tri-state driver-comparator so that each tester pin can act as an ~input pin or as an output pin. It can be used to make one address less than one address, so that it can be changed at least. The number of master controllers: the DUTs module uses it to display a 5-DUT, and in each case, the (channel) test pins for a single -12-(9) 1287639 DUT collectively form a test bit. And associated with the work, a timing generator 6, a waveform generator 8, an image memory 10, a timing data memory 1, a waveform memory data 14, and a component 16 defining the data flow rate. Figure 2 illustrates a system architecture 1 根据 in accordance with an embodiment of the present invention. A system controller (SysC) 1 〇 2 is coupled to a complex address controller (SiteCs) 104. The system controller can also be coupled to a network to access related files. Each of the address controllers is coupled to one or more test modules 108 at a test address 1 1 经过 via a module connection enabler 106. The module connection enabler 1 〇 6 allows the re-architecting of the connected hardware module 1 () 8 and also serves as a bus for data transfer (for loading pattern data, collecting reaction data, providing Control, etc.). In addition, after the module is connected to the enabler, the module at one address can access the module at another address. The module connection enabler 106 allows different test addresses to have the same or different module architectures. In other words, different numbers and styles of modules can be used for each test address. Possible hardware implementations include dedicated connections, switch connections, bus connections, ring connections, and star connections. The module connection energizer 1 〇 6 can be implemented, for example, as a switch matrix. Each test address 1 1 0 is associated with a DUT 1 1 2, which is connected to the module of the corresponding address via a load board U 4 . In one embodiment, a single address controller can be connected to a plurality of DUT addresses. The system controller 102 serves as the entire system manager. It coordinates the address controller activity, manages the system level parallel test strategy, and provides information processing program/probe control and system level data login -13-1287639 (10) and error handling support. Depending on the operational settings, the system controller 102 can be deployed on a central processing unit (CPU) separated by the operation of the address controller 1 〇 4. Another option is that a shared CPU can be shared by the system controller 102 and the address controller 1 〇 4. Similarly, each address controller 104 can be deployed on its own dedicated CPu (Central Processing Unit) or separate processes or threads for one of the same CPUs. The system architecture may be imagining the decentralized system shown in Figure 2, and understand that the individual system components can also be considered as a logical component of a single system, and do not need to be considered a decentralized system. Physical components. Figure 3 illustrates a software architecture 2根据 in accordance with the present invention. The software architecture 200 represents a decentralized operating system having communication with associated hardware system components 102, 104, 108 for the system controller 220, at least one address controller 240, and at least one mode The components of group 260. In addition to the module 260, the architecture 200 includes a corresponding component for the module emulation of the software in the software. As a demonstration option, the development environment for this platform can be based on Microsoft Windows software. The use of this architecture has the added benefit of program and support portability (e.g., a field maintenance engineer can connect a laptop computer to run the tester operating system to perform advanced diagnostics). However, for large computationally intensive operations (such as test pattern compilation), the software can be created as a separate entity that can operate independently to allow for work scheduling across distributed platforms. Related to batch work -14- (11) 1287639 Software tools are so capable of obscuring in multiple platform styles. As an alternative, the ANSI/ISO standard C++ can be used as the original language for the software. Of course, there are multiple options available (to provide a layer above the nominal C++ interface), while allowing a third party to integrate into the system in another language of its own choice. Figure 3 illustrates their shadow changes by means of a nominal source (or collectively developed into a subsystem) that includes the tester operating system interface 290 and user components 292 (eg, for testing purposes) Provided by the system, system components 2 9 4 (for example, for basic connection and communication supply as a software lower mechanism), module development component 296 (for example, supplied by a module developer), and external zero Component 2 98 (for example, by the source of the module developer, the source is supplied). From a source-based organizational perspective, the Tester Operating System (TOS) interface 290 includes: a system controller to address controller interface 222, a framework category 224, an address controller to a module interface 24 5, a framework category 246 , scheduled module level interface, backplane communication library 249, chassis slot IF (interface) 262, load board hardware IF 264, backplane analog IF 283 load board analog IF 285, DUT analog IF 287, for DUT's Verilog model's Verilog PLI (programming language interface) 2 8 8 and C/C++ language support for DUT's C/C++ model 289. User component 2 92 includes: a user test plan file 242, a user test category 243, a hardware load board 265, and a DUT 266, a DUT Verilog model 2 93, and a DUT C/C++ model 291. System component 294 includes: system tool 22 6. communication library -15- (12) 1287639 23 0, test category 244, backplane driver 205, HW backplane 261, analog frame 28 1, backplane simulation 2 8 2 'and load board simulation 2 8 6. The module development component 296 includes: a module command implementation 24 8 , a module hardware 2 6 3 , and a module simulation 284 . The external component 2 9 8 includes an external tool 22 5 . The system controller 220 includes an interface 222 to the address controller, a framework category 224, a system tool 226, an external tool 225, and a communication library 230. The system controller soft system is the primary interaction point for the user. It provides a gateway to the address controller of the present invention and the synchronization of the address controller in a multi-address/DUT environment, as described in U.S. Patent Application Serial No. 60/449,622. The person described in the article. User applications and tools, based on a graphical user interface (GUI) or otherwise running on the system controller. The system controller can also be used as a solution. There is a data repository for information about the test plan file, which contains test plan files, test styles, and test parameter files. In the object oriented environment of a particular embodiment of the invention, a test parameter file contains parameterized data for a test category. The third developer can provide tools in addition to (or in place of) the standard system tool 226. The standard interface 222 on the system controller 220 includes an interface for accessing the tester and test objects using the tool. The tool (application) 22 5, 226 allows conversational and batch control of the test and tester objects. The tool includes an application for providing automation capabilities (eg, via SECS/TSEM, etc.) The communication library resident on the system controller 220 provides the-16-1287639 (13) mechanism for use. Concise user application and static measurement of the address controller 240 communication. Remaining in connection with the system controller 2 2 0 2 2 2 provides an open interface to the frame object, which is executed on the object. The included person is the interface that allows the software to access and retrieve the pattern data by the address control group. The program and tools are also used to access the tester and test object scripting interface. The scripting interface provides a capability program engine to access and process the tester and test zero sets for conversational, batch and remote applications. Share tb. The framework category associated with the system controller 220 interacts with these aforementioned objects and provides a reference implementation. For example, the address controller of the present invention can test objects. The system controller framework category is a functional test agent host and serves as a controller-based alternative to the functional test system. Such a test interface is made available to the system controller 220 system, module-development, and interface components 2 94, 296 considering a dispersion of the system controller and the address control system. The framework category effectively provides an interface to the main system operating system. They also constitute the software component, and the address controller provides synchronization of the gateway and the address controller provided in the multi-> environment. In this way, the way of the program and the interface in the memory is based on the control of the system. The user uses the interface and the script. This allows a mechanism to perform its functions. 224 provides a machine for a standard interface 240 to provide a function of providing one of the corresponding test objects far beyond the standard functional tool. The software component pair address/DU butyl ring connected to the operating system controller of the 190 is provided in the object model of the present invention -17-(14) 1287639, which is suitable for processing And access to the address controller without having to deal directly with the communication layer. The address controller 240 stores a user test plan file 242, a user test category 24 3, a standard test category 244, a standard interface 245, an address controller frame category 246, and a module high-level command interface (ie, a predetermined module). Hierarchy interface) 24 7. Module command implementation 24 8. Backplane communication library 249 and a backplane driver 2 50. Preferably, most of the test functionality is handled by the address controller 104/240, thus allowing independent operation of the test address 1 1 . A test plan file 242 is written by the user. The program file § is written directly by the S standard computer such as C++ or in a more general test program programming language: to generate C++ code, then the C++ code can be compiled into Execution test program. The test plan file establishes a test object by using the framework category 246 and/or standards or a user-supplied test category 244 associated with the address controller, constructs the hardware using the standard interface, and defines The test plan file process. It also provides any additional logic required during the execution of the test plan file. The test plan file supports some basic services and provides an interface to services such as debug services (such as breakpoints) for the following items, and access to the following frameworks and standard categories. The framework category 2 4 6 associated with the address controller is a set of categories and methods for performing common test related operations. The address controller hierarchy includes categories for power and pin electronic sequencing, setting levels and timing states, obtaining measurement results, controlling test flows, and the like. The framework also provides a method for sub-program services and debugging. -18- (15) 1287639. The frame object can work through the implementation of the standard interface. For example, the test pin frame type is standardized to implement a general tester pin interface, and its test category can be used to interact with hardware module pins. A frame object can be provided to work with the help of the module hierarchy interface to communicate with the module. The address controller framework category is effectively used as a local operating system interface to support each address controller. Generally, more than 90% of the code is used for testing the device, and the remaining 10% of the code implements the test methodology. The device test data is based on the DUT (eg power status, signal voltage status, timing status, etc.). The test code includes the method of loading the specified device state onto the ATE hardware, and also includes methods that require user fingerprinting (such as data posting). The framework of one embodiment of the present invention provides a hardware-dependent test and tester object model that allows the user to perform DUT test program planning. To increase the reusability of the test code, this code can be used to identify any device-specific data (such as pin names, analog data, etc.), or device test specific data (such as for DC units, measuring pins, target pin count, style files). The name, the state of the style program is not relevant. If the test code is compiled with these styles, the reusability of the test code will be reduced. Thus, in accordance with an embodiment of the present invention, any device specific material or device test specific data may be externally made valid for the test code during code execution as an input. In a specific embodiment of the present invention, for a special style test - 19- (16) 1287639 test 'a standard test interface implementation test category, here ITe st implementation test data and code (and therefore Separation of code reuse). This test category itself can be considered as a "template" for separate illustrations that differ only from one another based on device specificity and/or device specific data. Specify the test category in the test plan file. Each test category typically provides one of the specific styles of the test or the settings used for the device test. For example, one embodiment of the present invention may provide a specific implementation of the ITe st interface, such as FunctionalTest, as a basic category for functional testing of all DUTs. It provides a set test state, an execution pattern, & determines the test pattern based on the presence of the fault strobe pulse. The basic function of the state. Other styles of implementation may include AC and DC test categories, labeled ACParametricTests and DCParametricTests. 〇 All test patterns provide predefined implementations of virtual methods such as init (), preEXeC ( ) 5 and postExec (). These methods become the entry point for the test engineer to override the predetermined behavior and set any test specific parameters. However, custom test categories can also be used in test plan files. The test category allows the user to provide a class structure class behavior by specifying options for the particular example of the test. For example, a functional test may take the parameters P L丨s t and T e s t C ο n d i t i ο n s to specify a list of styles to be executed, and the level and timing state for the test. Different assignments to these parameters (via the use of different "test" blocks in the test plan narrative) allow the user to establish different instances of a functional test. Figure 4 illustrates how different test cases can be derived from a single test -20- (17) 1287639 category. A type library library can use a general purpose library that acts as a general algorithm and data structure. The user of the tester can see the library so that the user can modify the implementation of a test category to establish a user-defined test category. As regards the test categories developed by the user, a specific embodiment of the system supports integration of the test category into the framework, wherein all test categories are derived from a single test interface, such as ITest, so that the framework can be the same as the standard test group of the system test category. The way they are handled. Users are free to put additional functionality into their test categories and understand that they must use custom code in their test programs to take advantage of these additional devices. Each test address 1 1 is dedicated to testing one or more DUTs 106, and works through one of the test modules 1 1 2 to construct a collection object. Each test module 1 1 2 is an entity that performs a special test work. For example, a test module 1 12 can be a DUT power supply, a pin card, a type of card, and the like. This modular approach provides a high degree of flexibility and architecture. The module command implementation category 24 8 can be provided by the module hardware vendor and can be supplied to any module level interface of the hardware module or provided by the vendor according to the command implementation method selected by the seller. Module-specific implementation of the interface. The external interfaces of these categories are defined by the requirements of the predetermined module level interface and the requirements of the backplane communication library. This layer also provides an extension of the standard settings for test commands, allowing for the addition of methods (functions) and data elements. The backplane communication library 249 provides a standard communication interface for the backplane to provide the functionality required to communicate with the module connected to the test location - 21 - (18) 1287639. This allows the vendor specific module software to use a backplane driver 250 to communicate with the corresponding hardware module. The backplane communication protocol can use a basic format of the package. The tester pin object represents the physical tester channel and is derived from a tester pin interface, labeled ITseterPin. The Software Development Kit (SDK) of the specific embodiment of the present invention provides a predetermined implementation of ITseterPin, which may be referred to as TseterPin, and is supplied from the perspective of a predetermined module hierarchy interface, IChannel. Sellers are free to use TseterPin if they can provide the functionality of their modules from IChaiinel's point of view; otherwise, they must provide one of ITseterPin's implementations to work with their modules. The standard module interface provided by the tester system of the present invention and labeled I Μ u u 1 e generally represents a vendor's hardware module. Seller-supplied module-specific software for the system, such as Dynamic Linked Libraries (DDLs), can be provided in an executable form. The software from the vendor for each module type can be embedded in a single DLL. Each of the software modules is responsible for providing vendor specific implementations for the module interface commands, including APIs for modular software development. There are two arguments for the module interface command: first, they serve as the interface for the user to communicate (indirectly) with a particular hardware module in the system; and second, they provide the third-party developer Can be used to integrate its own modules into the interface of the address controller hierarchy. Thus, the module interface commands provided by the framework are divided into two types: The first and most obvious are those that are exposed through the framework interface to the user of the -22- 1287639 (19). Thus, the tester pin interface (ITseterPin) provides a means to obtain and set the level and timing, and a power interface (IPowerSupply) provides, for example, a method for powering up and shutting down. In addition, the framework provides a special paradigm for the predetermined module hierarchy interface that can be used to communicate with the module. These are the interfaces used by the framework categories (i.e., the "standard" implementation of the framework interface) to communicate with the vendor model. However, the use of this second argument, the module hierarchy interface is selected. The advantage of this is that the seller can then use the implementation of the categories, such as ITseterPin and IPowerSupply, by focusing on the content of the specific message sent to the hardware by the module level interface. . However, if these are not appropriate for the seller, they may be selected to provide a self-determined implementation of their framework (eg, vendor implementations of ITseterPin, IPowerSupply, etc.). These will then provide the appropriate custom functionality for their hardware. The integration of the module-specific vendor software can be achieved in two different ways: the self-determined implementation of the relevant framework categories and interfaces, or the self-defined implementation of the special scope of the module hierarchy. Next, an example application of the two methods is presented by the assistance of Fig. 5, which is a system language (U M L ) category diagram, and describes the interaction between the tester system of the present invention and the vendor supply module. The seller of the new digital module, the third party A (ΤΡΑ), provides a software module 'to communicate with its hardware module. This software module will be supplied to the standard interface 'IModule. Let the module object be called TPAPinModu]e. The -23-(20) 1287639 square TPA can be implemented using the standard system of the ITseterPin interface, labeled TseterPin, by supplying the relevant predetermined module-level interface - in this case, Ichann el - In its module. This may be caused by the fact that the TseterPin uses a standard predetermined module level interface, such as Ichannel, to communicate with the module. Therefore, TP APinModule provides stitching by simply creating and exposing TseterPin objects. Now consider a different vendor, Third Party B (TPB), which decides that the Ichannel interface will not work well with its hardware. Therefore, TPB does not only need to provide its own IModule implementation (TPBPinModule), but also provides one of the ITseterPin interfaces, TPBTseterPin. This approach gives third developers a lot of flexibility to choose how to develop their hardware and support software. Although they need to supply the IModule interface, they can be selected to supply module level interfaces or to supply objects like TseterPins, as they are known to be suitable. In fact, the seller can choose to supply TseterPins to provide an extension that is not supported in the ITs eter Pin interface. The framework will provide a user-based mechanism for retrieving a specific interface or an indicator of the implementation of an object. This means that when the user code has an ITs eter Pin indicator, the framework will be able to determine if it is pointing, that is, a P B T s e t e r P i η object, if it is needed. (Note that this feature is available via standard C++ Execution Type Identification (RTTI)). In other words, when the test plan file calls the ϊ T seter P i η interface, the interface can directly request the vendor tester pin implementation of the TseterPin category, which is a combination of module specific -24- (21) 1287639 Information (such as the address of the register to be set to provide a special DUT simulation). In short, although the framework code will always use the ITseterPin interface, the user is free to utilize the specific components and extensions provided by the module vendor, if desired. In other words, a module seller can, for example, add methods (functions) to the standard system implementation of the category. For the user's transaction, the specific vendor extension is used to make the test code less usable with other vendors' modules. At the module level, the system 100 has a nominal two operational model. In the on-line operation model, a module component 260 (e.g., a hardware component) is used, and in a disconnection operation model, a modular simulation in software 2000 is used. For the online operation model, the module component 260 includes an HW (hardware) backplane 261, a chassis slot IF (interface) 2 62, a module hardware 263, a load board hardware if 264, and a hardware load board 2 65. And DUT 266 〇 For the disconnection operation model, the module simulation in the software 280 includes a simulation frame 281, backplane simulation 2 8 2, backplane simulation if 2 8 3, module simulation 284, load board simulation IF 2 8 5. Load board simulation 286, and DUT analog IF 28 7. The second model is shown for DUT simulation. A model using Verilog includes the Verilog PLI (Programming Language Interface) 2 8 8 and a DUT Verilog Model 293. A model using C/C++ includes C/C++ language support 2 8 9 and a DUT C/C++ model 291. Note that the simulation can be performed on any computer, such as a personal computer. - 25- (22) 1287639 In this online model, the module vendor provides physical hardware components to support testing, such as digital tester channels, DUT power supplies, or DC measurement units. The module forms an interface with the HW backplane 261 through the chassis slot IF 2 62. In addition, for disconnection work, another environment based on the PC or the equivalent device running the system controller will assume all the sub-program environment providing the address controller hierarchy framework and the lower layer of the software, and the simulation hard The responsibility of the body. The backplane simulation 2 8 2 provides a software replacement for the physical backplane 261. This communicates with the (provided by) module emulation software 2 84 via the backplane analog interface 283.

該模組模擬軟體 2 84最好係i藉著該模組賣方所提 供,及典型緊密地與一模組263之特別賣方實作連結。 如此,橫跨由不同賣方所供給之模組,該模組模擬軟體 在細節中典型將不同。於此案例中,該模組模擬允許該 賣方經過一軟體模型(例如該模組模擬軟體2 84 )暴露硬 體功能性、送出模擬信號至該模擬之負載板2 86、及接收 與處理來自該模擬負載板28 6之DUT反應信號,並經過 該 DUT模擬IF 2 8 7連接至形成 DUT模型之軟體 29 1,2 93。於一些案例中,賣方可發現其有利的是提供該 模組韌體之模組及旁路模擬之一簡單功能模擬。該模組 模擬軟體比較該模擬DUT對該模擬模組模擬信號之反應 與一習知良好之DUT反應。基於此比較,該軟體決定是 否藉著該模組執行該測試、如想要地達成其測試該DUT -26 - (23) 1287639 之目標、及在該線上物理測試器上之一 1C (物理DUT ) 上使用之前有助於該使用者對該模組除錯。 該負載板模擬介面2 8 5具有線管之作用,用以使信 號往返該模組模擬層及該模擬之負載板2 8 6。該負載板模 擬零組件2 8 6支援裝置腳座轉換及往返該DUT模擬IF 2 8 7之信號傳播。 該DUT模擬可爲一本機代碼(亦即C / C + + )模擬 291、或對待測目標裝置2 93之一功能模型之Verilog程 式規劃語言介面(PL])。該模型與該模擬之負載板經過 該DUT模擬介面287形成介面。 注意這些層之整體控制係藉著該模擬框架2 8 1所提 供。該模擬框架測量該模擬DUT對習知模擬信號之反 應。系統模擬之方法係揭示在美國專利申請案第 10/403,817 號中。 通訊及控制 通訊及控制係經由相關軟體物件之管理進行。最 好,一通訊機制係隱藏在該系統控制器上之一物件模型 之後方。此物件模型對該位址控制器所發現之類別及物 件提供一代理主機,且藉此提供一用於應用程式開發 (例如1C裝置測試)之方便程式規劃模型。這允許應用 程式開發者(例如該ATE系統之使用者)避免與該應用 程式及該位址/系統控制器間之通訊特質有關之不需要 細節。 -27 - (24) 1287639 圖6說明一位址控制器物件之特定具體實施例,如 由一位址控制器軟體 240中之位址控制器1 04所維持 者。該位址控制器物件包含 CmdDispatcher 602、 FunctionalTestMsgHandler 60 4、及 FunctionalTest 606。 介面包含 IMsgHandler 608 及 ITest 610。 該位址控制器軟體240最好包含一應用程式存取可 能需要之所有功能類別。這些類別可譬如包含測試、模 組、針腳等。既然該使用者之測試及軟體工具典型常駐 在不同電腦中,訊息將由該系統控制器上之工具送至該 位址控制器上之一伺服器。此伺服器將呼叫在命令配送 物件上之一方法。 該命令配送物件(CmdDispatcher ) 602維持一訊息 處理程式物件之映像,並供給該IMsgHandler介面6 0 8。 圖 6 說明 IMsgHandler、FunctionalTestMsgHandler 6 0 4 之一特定實作。由該CmdDispatcher物件602所接收之訊 息包含一待通訊物件之識別字。此識別字係發現在一內 部映像中,並分解成該特定之實作,於此案例中顯示該 FunctionalTestMsgHandler 物件 604。 於此範例中,IMsgHandler 60 8包括單一方法, H a n d 1 e M e s s a g e ()。此方法最好係施行當作單一實作類 別。於所示之案例中,該 FunctionalTestMsgHandler 604 將依進來訊息之確實本質而定送出六方法之一上之訊 息。該進來訊息之標頭包含一訊息i d,其允許該訊息處 理程式決定如何直譯及將該訊息送至何處。 -28- 1287639 (25) 在該系統控制器I 02之對應通訊環境與該系統控制 器軟體220之工具22 5,226部分有關。圖7說明一維持在 系統控制器軟體2 2 0中之系統控制器1 0 2上之工具物件 (或系統控制器物件)具體實施例,並與圖6所示位址 控制器物件對應。該工具物件包含一物件CmdDispatcher 702、FunctionalTestMsgHandler 704、及The module emulation software 2 84 is preferably provided by the vendor of the module and is typically closely coupled to a special vendor of a module 263. Thus, the module emulation software will typically differ in the details across the modules supplied by different vendors. In this case, the module simulation allows the seller to expose hardware functionality via a software model (eg, the module emulation software 2 84 ), send analog signals to the simulated load board 2 86, and receive and process from the The DUT response signal of the load board 28 is simulated and connected to the software 29, 2 93 forming the DUT model via the DUT analog IF 287. In some cases, the seller may find it advantageous to provide a simple functional simulation of the module's firmware and bypass simulation. The module simulation software compares the response of the analog DUT to the analog signal of the analog module with a well-known DUT reaction. Based on this comparison, the software decides whether to perform the test by the module, if it wants to achieve its target of testing the DUT -26 - (23) 1287639, and one of the physical testers on the line 1C (physical DUT) ) Help the user debug the module before using it. The load board analog interface 285 has a line tube function for routing signals to and from the module analog layer and the simulated load board 286. The load board analog component 286 supports device pin conversion and signal propagation to and from the DUT analog IF 2 8 7. The DUT simulation can be a native code (i.e., C/C++) simulation 291, or a Verilog programming language interface (PL) of a functional model of the target device 2 93 to be tested. The model forms an interface with the simulated load board through the DUT analog interface 287. Note that the overall control of these layers is provided by the simulation framework 281. The simulation framework measures the response of the analog DUT to a conventional analog signal. The method of system simulation is disclosed in U.S. Patent Application Serial No. 10/403,817. Communication and Control Communication and control are carried out through the management of related software objects. Preferably, a communication mechanism is hidden behind one of the object models on the system controller. The object model provides a proxy host for the categories and objects found by the address controller and thereby provides a convenient programming model for application development (e.g., 1C device testing). This allows the application developer (e.g., the user of the ATE system) to avoid unnecessary details regarding the communication characteristics between the application and the address/system controller. -27 - (24) 1287639 Figure 6 illustrates a particular embodiment of an address controller object, as maintained by address controller 104 in the address controller software 240. The address controller object includes CmdDispatcher 602, FunctionalTestMsgHandler 60 4, and FunctionalTest 606. The interface includes IMsgHandler 608 and ITest 610. The address controller software 240 preferably includes all of the functional categories that an application access may need. These categories can include, for example, tests, modules, pins, and the like. Since the user's test and software tools are typically resident on different computers, the message will be sent by the tool on the system controller to one of the servers on the address controller. This server will call one of the methods on the command delivery object. The command delivery object (CmdDispatcher) 602 maintains an image of the message handler object and provides the IMsgHandler interface 608. Figure 6 illustrates one specific implementation of IMsgHandler, FunctionalTestMsgHandler 6 0 4 . The information received by the CmdDispatcher object 602 contains an identification word for the object to be communicated. This identification word is found in an internal image and broken down into that particular implementation, which is shown in this case as a FunctionalTestMsgHandler object 604. In this example, IMsgHandler 60 8 includes a single method, H a n d 1 e M e s s a g e (). This method is best implemented as a single implementation category. In the case shown, the FunctionalTestMsgHandler 604 will send a message on one of the six methods depending on the exact nature of the incoming message. The header of the incoming message contains a message i d that allows the message handler to decide how to translate and where to send the message. -28- 1287639 (25) The corresponding communication environment of the system controller I 02 is related to the tools 22 5, 226 of the system controller software 220. Figure 7 illustrates a specific embodiment of a tool object (or system controller object) maintained on system controller 102 in system controller software 220 and corresponding to the address controller object of Figure 6. The tool object includes an object CmdDispatcher 702, FunctionalTestMsgHandler 704, and

FunctionalTestProxy 706。介面包含 IMsgHandler 708、 ITestClie n t 710、及 IDispatch 712。亦包含係一公用應用 程式7 1 4。 對於此範例,該類S!j CmdDispatcher 702 、 IMsgHandler 708、及 FunctionalTestMsgHandler 704 係與 圖6者相同。然而,未使用F u n c t i ο n a 1 T e s t 6 0 6 (或任何 其他位址控制器類別)之特例化。反之,該工具物件具 有用於與該位址控制器1 〇 4上之每一物件通訊之代理主 機類別。因此,譬如,該工具物件包含取代 FunctionalTest 6 0 6 之類別 FunctionalTestProxy 706。同 理,該工具物件中之ITestCIient 710與位址控制器物件 中之ITest 61 0不相同。大致上,在該系統控制器102上 執行之應用程式將不使用如設在該位址控制器1 04上之 實際介面。於此案例中,ITest 6]0之三方法(亦即 preExec ( ) 、execute ()、及 postExec ())係以單一 方法 ITest Client 710 (亦即 runTe st ())取代。此外, ITestCIient 7】0最好係一雙重介面;亦即其傳承自 ID i s p a t c h 7 ] 2,其係供給當作一微軟元件物件模型 -29- (26) 1287639 (C〇M )。其提供一能夠使腳本程式引擎存取供給該介 面之物件之介面。這允許該系統可在該微軟視窗平臺上 改寫腳本程式。 如一用於圖6 - 7所示具體實施例之操作之範例,一在 該系統控制器1 0 2 (例如工具2 2 6,2 2 8部份之一中)上執 行之應用程式可與一位址控制器1 〇4通訊,在此一測試 計劃檔242包含一或多Function alTe st物件606。於該位 址控制器1 04上之測試計劃檔242之初始化期間,一對 應測試計畫物件係載入至該位址控制器1 0 4上,並建構 一 TestplanMessageHandler 物件及以該 CmdDispatcher 物 件6 02物件登錄之。這將一獨特之ID指派至該訊息處理 程式。以其他組成該測試計劃檔242之TestP lan物件發 生類似操作。 該系統控制器 1 〇3上之應用程式(例如於工具 226,228中)初始化該通訊函式庫230、經由一通訊通道 連接至該位址控制器104、及爲該 TestPUn獲得至一 ID。該函式庫建構一 TestPlanProxy物件及以此ID初始 化之。於初始化期間,此代理主機物件決定其包含多少 測試及其型式及ID s。其對於每一型式(於此案例中僅只 一型式)載入該適當之DLLs及爲它們建構該代理主機物 件,並以其ID値初始化它們。 該測試代理主機物件依序亦初始化。爲如此做,它 們建構適當之訊息以獲得其名稱(使用其ID値)及將它 們送至一在該位址控制器I 〇 4之通訊伺服器,並將該訊 -30- (27) 1287639 息送至該C m d D i s p a t c h e r 6 0 2。此物件於其內部映像中搜 尋該目的 IDs , 及使該訊息前進至該 FunctionalTestMsgHandler 物件 604 之 handleMessage ()方法上。譬如,假如該訊息係一獲得測試名稱之請 求,這些該物件獲得其個別之測試名稱及以適當之名稱 字串回覆該應用程式之測試代理主機物件。 在達成初始,化之後,該應用程式對一 TestPlan物件 具有遠端存取,且經過該應用程式有二測試物件。該使 用者現在可譬如壓下在該應用程式上之一 “運轉測試計 劃檔(Run Test Plan ) ”按鈕。其結果是,該應用程式呼 叫該測試計劃檔代理主機物件上之 R u η T e s t p 1 a η ()方 法。此方法以該目的測試計劃檔物件之目的ID建構一 RunTestPlan 訊息,及呼叫該 RPC 代理主機上之 sen dMes sage ()功能,並將該訊息送至該位址控制器。 該位址控制器 104 上之通訊伺服器呼叫該 CmdDispatcher 物件 602 上之 handleMessage ()方法, 且使該測試計劃檔物件之ID通過。該CmdDispatcher物 件602於其內部映像中搜尋此ID,發現用於該TestPlan 物件之訊息處理程式及呼叫在此物件上之h a n d 1 e M e s s a g e ()方法,其依序呼叫該TestPlan物件上之RunTestPlan ()方法。於一類似方式中,該應用程式能獲得該測試 物件之名稱及最後之運轉狀態。 使用該通訊函式庫之方法 -31 - 1287639 (28) 下文係一使用通訊函式庫2 3 0之範例。 該通訊函式庫2 3 0最好係一靜態函式庫。一應用程 式能經過一 Co mm Libr ary .h檔使用此通訊函式庫。一需 要輸出該通訊函式庫類別之應用程式應具有除了包含上 面所包含檔案以外所界定之前處理程式定義 C〇MMLIBRARY_EXPORTS 、 COMMLIBRARY_ FORCE — LINKAGE。一輸入該通訊函式庫之應用程式不須界定任 何前處理程式定義。當該通訊函式庫係用作伺服器時, 該應用程式必須呼叫 CcmdDispatchei·之以下靜態函數程 式:initializeServerunsigned long portNo) ° 該portNo係應正監聽伺服器之portNo。能藉著呼叫 該靜態函數程式取回對應於該伺服器之命令調度程式: 在該 C C m d D i s p a t c h e 1·類 SU 上之 getServerCmdDispatcher 〇 當該通訊函式庫係用作客戶機時,該應用程式將呼 叫CcmdDispatcher之以下靜態函數程式: initializeClientconst OFCString server Address » unsigned long serverPortNo, CcmdDispatcher**pCmdDlspatcher, OFCString serverld) 對於該客戶機之serverAddress及ServerPortNo必須 連接。此函數程式對於該客戶機及其已經連接之serverld 初始化該命令調度程式指標。亦在一稍後時間點,該客 戶機能藉著呼呼叫靜態函數程式 getClientCmdDispatcher -32- (29) 1287639 取回對應於該serverld之命令調度程式。 當編譯該通訊函式庫時,所建構者已排除在該檔案 Clientlnterface.idl 及 Serverlnterface.idl 上。該較佳具體 實施例應用該業已產生並用於這些介面定義檔案之存根 模組及代理主機檔案,以連結該代理主機及存根模組實 作檔案進入該相同之函式庫。因此,該伺服器及客戶機 可於相同之編址空間中特例化。最好造成該介面定義檔 及存根模組檔中之以下變化,以使該通訊函式庫工作如 同該相同編址空間中之伺服器及客戶機。 介面定義檔中之改變 以下之名稱空間宣告,最好係加在每一介面定義檔 中。這是避免該代理主機實作函數程式及該介面函數程 式之自身實作間之名稱衝突。以下之名稱空間宣告係加 在該 serverlnterface.idl 中: cpp_quote ( “#ifdef—cplusplus”) CPP — quote ( “namespace COMM_SERVER”) cpp —quote ( cpp_quo t e ( “ #endif”) cpp —quote ( 改變該存根模組實作檔案中之函數程式,以呼叫用 於該介面中宣告之函數程式之我們自身之實作函數程 式,亦即我們具有一對應於該介面中宣告之每一函數程 式之不同命名之函數程式。 -33- (30) 1287639 爲了避免函數程式呼叫中之衝突,其較佳的是以 “COMM_”字串當作該實作函數程式名稱之字首。故該存 根模組函數程式中之代碼係改變成呼叫 “ C 〇 Μ Μ _ f u n c t i ο η N a m e ” 代替 “ f u 11 c t.i ο η N a m e 。 對於此工作方法,所有存在之功能類別亦應具有其 對應之訊息處理程式物件及代理主機類別。所有訊息處 理程式物件應源自由該通訊函式庫所提供之IMsgHandler 類別。IMsgHandler類別係一抽象之類別。其最好負責該 訊息處理程式之施行,以提供一用於該handleMessage、 setObjectld、handleError之定義。所有該訊息型式應由 —開始(吾人保留零當作hand leErr or )。該功能類別最 好具有其對應之訊息處理程式當作:其構件變數。於該功 能性類別之建構程式中,該功能性類別將藉著呼叫一由 其訊息處理程式所提供之函數程式獲得其登錄以該訊息 處理程式之本身。下一訊息處理程式物件應藉著呼叫在 該命令調度程式上之addMsgHandler函數程式以該命令調 度程式登錄,該調度程式具有該訊息處理程式當作該參 數。該addMsgHandler函數程式將指派一ID至該訊息處 理程式及該功能性類別。該功能性類別之破壞程式將藉 著送出該功能性類別識別字當作參數呼叫在該命令調度 程式上之r e m 〇 v e M s g H a n d 1 e r函數程式。代理主機類別亦 將遵循相同之登錄程序,如對該功能性類別所說明。 以下之CTestPlan類別顯示按照本發明較佳具體實施 例之一典型功能性類別爲何: -34- (31) 1287639FunctionalTestProxy 706. The interface includes IMsgHandler 708, ITestClie n 710, and IDispatch 712. Also included is a utility application 7 1 4 . For this example, the classes S!j CmdDispatcher 702, IMsgHandler 708, and FunctionalTestMsgHandler 704 are the same as those of Figure 6. However, specialization of F u n c t i ο n a 1 T e s t 6 0 6 (or any other address controller class) is not used. Conversely, the tool object has a proxy host class for communicating with each object on the address controller 1 〇 4. So, for example, the tool object contains a functional FunctionalProxy 706 that replaces FunctionalTest 6 0 6 . Similarly, the ITestCIient 710 in the tool object is not the same as the ITest 61 0 in the address controller object. In general, an application executing on the system controller 102 will not use the actual interface as provided on the address controller 104. In this case, the ITest 6]0 method (ie, preExec ( ), execute (), and postExec ()) is replaced by the single method ITest Client 710 (that is, runTe st ()). In addition, ITestCIient 7]0 is preferably a dual interface; that is, it inherits from ID i s p a t c h 7 ] 2, which is supplied as a Microsoft component object model -29-(26) 1287639 (C〇M). It provides an interface that enables the scripting engine to access the objects that supply the interface. This allows the system to rewrite scripts on the Microsoft Windows platform. As an example of the operation of the specific embodiment shown in FIG. 6-7, an application executed on the system controller 102 (for example, in one of the tools 2 2 6, 2 2 8) can be combined with an application. The address controller 1 通讯 4 communicates, where a test plan file 242 includes one or more Function alTe st objects 606. During the initialization of the test plan file 242 on the address controller 104, a corresponding test plan object is loaded onto the address controller 104, and a TestplanMessageHandler object is constructed and the CmdDispatcher object is used. The object is logged in. This assigns a unique ID to the message handler. A similar operation occurs with other TestP lan objects that make up the test plan file 242. The application on the system controller 1 ( 3 (e.g., in tools 226, 228) initializes the communication library 230, connects to the address controller 104 via a communication channel, and obtains an ID for the TestPUn. The library constructs a TestPlanProxy object and initializes it with this ID. During initialization, this proxy host object determines how many tests it contains and its type and ID s. It loads the appropriate DLLs for each type (only one pattern in this case) and constructs the proxy host objects for them, and initializes them with their IDs. The test agent host object is also initialized in sequence. To do so, they construct the appropriate message to get their name (using their ID 値) and send them to a communication server at the address controller I 〇 4, and the message -30-(27) 1287639 The information is sent to the C md D ispatcher 6 0 2. The object searches for the destination IDs in its internal image and advances the message to the handleMessage() method of the FunctionalTestMsgHandler object 604. For example, if the message is a request for a test name, the object obtains its individual test name and responds to the test agent host object of the application with the appropriate name string. After the initialization, the application has remote access to a TestPlan object and there are two test objects through the application. The user can now depress one of the "Run Test Plan" buttons on the application. As a result, the application calls the R u η T e s t p 1 a η () method on the host object of the test plan file. This method constructs a RunTestPlan message with the destination ID of the purpose test plan object, and calls the sen dMes sage () function on the RPC proxy host, and sends the message to the address controller. The communication server on the address controller 104 calls the handleMessage() method on the CmdDispatcher object 602 and passes the ID of the test plan object. The CmdDispatcher object 602 searches the internal image for the ID, finds the message handler for the TestPlan object, and calls the hand 1 e M essage () method on the object, which sequentially calls the RunTestPlan on the TestPlan object ( )method. In a similar manner, the application can obtain the name and final operational status of the test object. Method of using the communication library -31 - 1287639 (28) The following is an example of using the communication library 260. The communication library 2 3 0 is preferably a static library. An application can use this communication library via a Co mm Library .h file. An application that needs to output the communication library class should have a handler definition C〇MMLIBRARY_EXPORTS , COMMLIBRARY_ FORCE — LINKAGE defined in addition to the files contained above. An application that enters the communication library does not need to define any preprocessor definitions. When the communication library is used as a server, the application must call CcmdDispatchei's following static function: initializeServerunsigned long portNo) ° The portNo should be listening to the server's portNo. The command dispatcher corresponding to the server can be retrieved by calling the static function program: getServerCmdDispatcher on the CC md D ispatche 1 class SU. When the communication library is used as a client, the application The following static function program will be called CcmdDispatcher: initializeClientconst OFCString server Address » unsigned long serverPortNo, CcmdDispatcher**pCmdDlspatcher, OFCString serverld) The serverAddress and ServerPortNo of this client must be connected. This function initializes the command dispatcher metric for the client and its connected serverld. Also at a later point in time, the client can retrieve the command dispatcher corresponding to the serverld by calling the static function program getClientCmdDispatcher -32- (29) 1287639. When compiling the communication library, the constructor has been excluded from the files Clientlnterface.idl and Serverlnterface.idl. The preferred embodiment applies the stub module and the proxy host file that have been generated and used for the interface definition files to link the proxy host and the stub module implementation file into the same library. Therefore, the server and client can be instantiated in the same addressing space. Preferably, the following changes in the interface definition file and the stub module file are caused so that the communication library works as the server and client in the same addressing space. Changes in the interface definition file The following namespace declarations are best added to each interface definition file. This is to avoid name conflicts between the proxy host implementation function program and the implementation of the interface function itself. The following namespace declaration is added to the serverlnterface.idl: cpp_quote ("#ifdef-cplusplus") CPP — quote ( “namespace COMM_SERVER”) cpp —quote ( cpp_quo te ( “ #endif”) cpp —quote (change this The stub module implements a function program in the archive to call our own implementation function program for the function program declared in the interface, that is, we have a different name corresponding to each function program declared in the interface. The function program. -33- (30) 1287639 In order to avoid conflicts in the function program call, it is preferable to use the "COMM_" string as the prefix of the name of the implementation function program. Therefore, the stub module function program The code in the middle is changed to call "C 〇Μ Μ _ functi ο η N ame " instead of " fu 11 c ti ο η N ame . For this working method, all existing functional categories should also have their corresponding message handler objects. And the proxy host category. All message handler objects should be free from the IMsgHandler class provided by the communication library. The IMsgHandler category is one. The category of abstraction. It is best responsible for the implementation of the message handler to provide a definition for the handleMessage, setObjectld, handleError. All messages should be started by - (we retain zero as hand leErr or ). The category preferably has its corresponding message handler as its component variable. In the functional category of the constructor, the functional category will be logged in by calling a function program provided by its message handler. The message processing program itself. The next message handler object should be logged in by the command dispatcher by calling the addMsgHandler function program on the command dispatcher, which has the message handler as the parameter. The addMsgHandler function The program will assign an ID to the message handler and the functional category. The broken program of the functional category will call the rem 〇ve M sg H on the command scheduler by sending the functional category identifier as a parameter. And 1 er function program. The proxy host category will also follow the same login procedure. . The description of the functionality of the categories displayed in the category CTestPlan particularly preferred embodiment of the present invention, one exemplary embodiment of a functional why Type: -34- (31) 1287639

File: - TestPlan.h Class CTestPlan { private: unsigned long m一Id; CTestPlanMsgHandler m_tplMsgHandler; } 一 File: - TestPlan.cpp extern CcmdDispatcher *gjpCmdDispatcher; CTestPlan::CTestPlan { m_tplMsgHandler.setTestPlan(this); gjpCmdDispatcher.AddMsgHandler(&m_tplMsgHandler) } 一 CT estPlan: :-CT estPlan { g_pCmdDispatcher.removeMsgHandler(m_Id) DLL’s 下之 程式將 該g_pCmdDispatcher物件應藉著呼叫由該通訊 1 .ί 所暴露之 getCmdDispatcher()初始化。以 CTestPIanMsgHandler類別顯示一典型之訊息處理 看起來如何。File: - TestPlan.h Class CTestPlan { private: unsigned long m_Id; CTestPlanMsgHandler m_tplMsgHandler; } A File: - TestPlan.cpp extern CcmdDispatcher *gjpCmdDispatcher; CTestPlan::CTestPlan { m_tplMsgHandler.setTestPlan(this); gjpCmdDispatcher.AddMsgHandler(&amp ;m_tplMsgHandler) } A CT estPlan: :-CT estPlan { g_pCmdDispatcher.removeMsgHandler(m_Id) The program under DLL's initializes the g_pCmdDispatcher object by calling getCmdDispatcher() exposed by the communication 1. . Display a typical message processing in the CTestPIanMsgHandler category.

File: - TestPlanMsgHandler.h Class CtestPlanMsgHandler : public IMsgHandler { public: setTestPlan(CTestPlan *pTestPlan); setTestPlanProxy(CTestPlanProxy *pTestPlanProxy); void handleMessage(unsigned long msgType, unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) void handleSetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg); void handleGetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg); private: CTestPlan mj)TestPlan; -35- 1287639 (32) CTestPlanProxy m _pTestPlanProxy; typedefvoid (CFuncTestMsgHandler::*handlerFn)(unsigned long, unsigned long, byte*); std::map<int5 handlerFn> m_handlers; } 一 File: - TestPlanMsgHandler.cpp CTestPlanMsgHandler::Ctest]PlanMsgHandler { m_handlers[HandleError] = handleError; m_handlers[GetName] = handleGetName; m__handlers[SetName] = handleSetName; } 一 void CTestPlanMsgHandler::handleMessage(unsigned long msgType, unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) { if (msgType == 0) { handleError(senderId? senderMsgLen, pSenderMsg); else handlerFn fn = NULL; hlter—t flter; flter = m_handlers.fmd(msgType); if (flter == m一handlers.end。) { 一 return; } fn = flter->second; if (NULL != in) { (this->*fn)(senderld? senderMsgLen, pSenderMsg); void CTestPlanMsgHandler::handleSetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) { if (m_pTestPlanProxy != NULL) { OFCString tplName = ByteToString(senderMsgLen5 pSenderMsg) -36- (33) (33)1287639 m_pTplProxy->setName(tplName); void CTestPlanMsgHandler::handleGetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) { OFCString testName; if (m__pTestPlan !=NULL) { unsigned long 1 一destld unsigned long l_msgType; unsigned long l_senderld; unsigned 1 一 senderMsgLen; byte *l_senderMsg = NULL; if (m_pTestPlan->getName(testName) != true) { // If a failure has occurred Send error message char *errorString = “Error retrieving name”; 1 一 destld = senderld; l_msgType = HandleError; 1 一 senderld = mjd; 1 一 senderMsgLen = strlen(enorString); 1 一 senderMsg = StringToByte(errorString); sendMsg(]_destId5 1 一msgType, l—senderld, 1 一 senderMsgLen, 1—senderMsg); return; } l—destld = senderld; 1—msgType = SetName; long l—senderld = m—Id; 1 一 senderMsgLen = testName.length(); 1 一 senderMsg = NULL;File: - TestPlanMsgHandler.h Class CtestPlanMsgHandler : public IMsgHandler { public: setTestPlan(CTestPlan *pTestPlan); setTestPlanProxy(CTestPlanProxy *pTestPlanProxy); void handleMessage(unsigned long msgType, unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) void handleSetName( Unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg); void handleGetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg); private: CTestPlan mj)TestPlan; -35- 1287639 (32) CTestPlanProxy m _pTestPlanProxy; typedefvoid (CFuncTestMsgHandler ::*handlerFn)(unsigned long, unsigned long, byte*); std::map<int5 handlerFn>m_handlers; } a File: - TestPlanMsgHandler.cpp CTestPlanMsgHandler::Ctest]PlanMsgHandler { m_handlers[HandleError] = handleError; m_handlers[ GetName] = handleGetName; m__handlers[SetName] = handleSetName; } a void CTestPlanMsgHandler::handleMessage(unsigned long msgType, unsigned long senderld, unsigned long senderMsgLen, byte *pSen derMsg) { if (msgType == 0) { handleError(senderId? senderMsgLen, pSenderMsg); else handlerFn fn = NULL; hlter-t flter; flter = m_handlers.fmd(msgType); if (flter == m-handlers.end . ) { a return; } fn = flter->second; if (NULL != in) { (this->*fn)(senderld? senderMsgLen, pSenderMsg); void CTestPlanMsgHandler::handleSetName(unsigned long senderld, unsigned long senderMsgLen, byte *pSenderMsg) { if (m_pTestPlanProxy != NULL) { OFCString tplName = ByteToString(senderMsgLen5 pSenderMsg) -36- (33) (33)1287639 m_pTplProxy->setName(tplName); void CTestPlanMsgHandler::handleGetName(unsigned long Sendld, unsigned long senderMsgLen, byte *pSenderMsg) { OFCString testName; if (m__pTestPlan !=NULL) { unsigned long 1 a destld unsigned long l_msgType; unsigned long l_senderld; unsigned 1 a senderMsgLen; byte *l_senderMsg = NULL; if (m_pTestPlan- >getName(testName) != true) { // If a failure has occurred Send error message char *errorString = "Error retrieving name"; 1 a destld = senderld; l_msgType = HandleError; 1 a senderld = mjd; 1 a senderMsgLen = strlen(enorString); 1 a senderMsg = StringToByte(errorString); sendMsg(]_destId5 1 a msgType, L—senderld, 1 a senderMsgLen, 1—senderMsg); return; } l—destld = senderld; 1—msgType = SetName; long l—senderld = m—Id; 1 a senderMsgLen = testName.length(); 1 a senderMsg = NULL;

StringToByte(testName, &1—senderMsg); sendMsg(l 一 destld, 1 一msgType, ]__senderld5 1—senderMsgLen, 1 一 senderMsg); DELETE—BYT 巨(1—senderMsg); -37- (34) (34)1287639 void CTestPlanMsgHandler::handleError(unsigned long senderld, unsigned long senderMsgLen, byte 氺pSenderMsg) { OFCString errorString;StringToByte(testName, &1—senderMsg); sendMsg(l a destld, 1 msgType, ]__senderld5 1—senderMsgLen, 1 a senderMsg); DELETE—BYT giant (1—senderMsg); -37- (34) (34 ) 1287639 void CTestPlanMsgHandler::handleError(unsigned long senderld, unsigned long senderMsgLen, byte 氺pSenderMsg) { OFCString errorString;

ByteToString(senderMsgLen? pSenderMsg, errorString); m_pTestPlanProxy->setError(enOrString); 以下之C T e s t P 1 a η P r o x y類別顯不一典型之代理主機類 別看起來爲何。ByteToString(senderMsgLen? pSenderMsg, errorString); m_pTestPlanProxy->setError(enOrString); The following C T e s t P 1 a η P r o x y categories are not typical of the proxy host class.

File: - TestPlanProxy.h Class CTestPlanProxy { CTestPlanProxy(unsigned long serverld); 〜CTestPlanProxy (); private: CTestPlanProxy〇; unsigned long m—Id; unsigned long m一serverld; CTestPlanMsgHandler m_tplMsgHandler; } 一File: - TestPlanProxy.h Class CTestPlanProxy { CTestPlanProxy(unsigned long serverld); ~CTestPlanProxy (); private: CTestPlanProxy〇; unsigned long m—Id; unsigned long m a serverld; CTestPlanMsgHandler m_tplMsgHandler;

File: - TestPlanProxy.cpp extern CcmdDispatcher *g_pCmdDispatcher; CTestPlanProxy: :CTestPlanProxy(unsigned long serverld) { m一 serverld = serverld; m_tplMsgHandler.setTestPlanProxy(this); g_pCmdDispatcher.AddMsgHandler(&m 一tplMsgHandler) /// initialize the proxy with its name, unsigned long msgType; unsigned long senderMsgLen; byte *pSenderMsg = NULL; msgType = GetName; senderMsgLen = 0; pSenderMsg = NULL; sendMsg(m_clientId? msgType, m 一 Id, senderMsgLen, pSenderMsg); // Check if the error string has been set by the message handler. -38- (35) 1287639 if (m_err〇rString.length() != 0) { OFCString errorString = m_errorString; m__error String = MM; throw exception(errorString.c_str〇); CTestPlanProxy::〜CTestPlanProxy { g_pCmdDispatcher.removeMsgHandler(m__Id) 該 g —pCmdDispatcher 物件應 藉著呼 叫 getCmdDispatcher()初始化。 系統架構及測試 圖8說明根據本發明一具體實施例之額定測試順序 8〇〇。該測試順序800包含一測試環境804中之模組安裝 8〇2,該測試環境包含測試準備步驟8〇6及系統測試 8〇8。最初證實8 1 2 (藉著可能基於賣方品質控制之一些 外部程序)新的模組8 1 0 (硬體或軟體或其一組合)。安 裝8 0 2首先需要測試準備步驟8 0 6,其包含甩於斷線模擬 8 1 〇之硬體模組模擬之安裝、用於測試程式開發8 1 2之模 組資源檔案及介面之安裝、及用於型樣編譯8 i 4之模組 特定型樣編譯程式之安裝。其次以來自校準8〗6、診斷 8 1 8、及架構8 2 0之輸入進行系統測試8 0 8。然後對該新 模組進行系統測試8 0 8,其包含:)介面控制;(2 ) 同步性、定序、及可重複性;(3 )錯誤/警告處理; (4 )多位址控制;及(5 )多設備模組控制。 -39- 1287639 (36) 雖然上文已詳細敘述本發明之僅只某一示範具體實 方也例,那些4練於該技藝者將輕易地了解於該示範具體 實施例中之很多修改係可能的,卻未實質脫離本發明之 新_教導及優點。據此,所有此修改係意欲涵括在本發 明之範圍內’如由該申請專利所界定者。 【圖式簡單說明】 圖1說明一習知測試器體系結構。 圖2說明根據本發明一具體實施例之系統體系結 構。 圖3說明根據本發明一具體實施例之軟體體系結 構。 圖4說明根據本發明一具體實施例之測試類別之使 用。 圖5係統·一模型語言(UML )之示意圖,其根據本 發明之具體實施例說明一測試器系統及不同賣方供給模 組資源之相互作用。 圖6說明一位址控制器物件之具體實施例,其用於 管理藉著一位址控制器所維持之使用者之測試。 圖7說明一在該系統控制器側面之物件替代品之具 體實施例,其代表圖6所示之位址控制器物件。 圖8說明一根據本發明具體實施例之測試環境。 【符號說明】 -40- (37) (37)1287639 2 驅動器 4 比較器 6 疋時產生益 8 波形產生器 10 圖像記憶體 12 定時資料記憶體 14 波形記憶資料 16 部件 100 系統體系結構 102 系統控制器 103 系統控制器 104 位址控制器 10 6 賦能器 108 測試模組 110 測試位址 1 12 待測物 114 負載板 200 軟體體系結構 2 2 0 系統控制器 222 介面 224 框架類別 22 5 外部工具 226 系統工具 2 2 8 系統工具 (38) (38)1287639 230 通訊函式庫 240 位址控制器 242 使用者測試計劃檔 243 使用者測試類別 244 測試類別 24 5 介面 246 框架類別 247 介面 24 8 模組命令實作 249 函式庫 2 5 0 背板驅動程式 260 模組 261 背板 262 機箱插槽介面 2 63 模組硬體 264 硬體介面 2 65 負載板 266 待測物 2 8 0 模組模擬 281 模擬框架 2 8 2 背板模擬 2 8 3 模擬介面 2 8 4 模組模擬 2 8 5 模擬介面 (39) (39)1287639 2 8 6 負載板模擬 2 8 7 模擬介面 2 8 8 程式語言介面 2 8 9 語言支援 2 90 測試器作業系統介面 291 模型 2 92 使用者零組件 2 93 模型 294 系統零組件 296 模組開發零組件 2 9 8 外部零組件 6 02 命令配送物件 604 功能測試訊息處理程式 606 功能測試 6 08 訊息處理程式介面 610 測試介面 7 02 命令配送 7 04 功能測試訊息處理程式 7 06 功能測試代理主機 7 0 8 訊息處理程式介面 710 測試客戶機介面 7 1 2 配送介面 714 應用程式 8 00 測試順序 -43 (40) 1287639 8 02 安裝 8 04 測試環境 8 06 測試準備步驟 8 0 8 系統測試 8 10 模組 8 12 程式開發 814 型樣編譯 816 校準 8 1 8 診斷 820 架構File: - TestPlanProxy.cpp extern CcmdDispatcher *g_pCmdDispatcher; CTestPlanProxy: :CTestPlanProxy(unsigned long serverld) { m_serverld = serverld; m_tplMsgHandler.setTestPlanProxy(this); g_pCmdDispatcher.AddMsgHandler(&m a tplMsgHandler) /// initialize the proxy Unsigned long senderMsgLen; byte *pSenderMsg = NULL; msgType = GetName; senderMsgLen = 0; pSenderMsg = NULL; sendMsg(m_clientId? msgType, m_Id, senderMsgLen, pSenderMsg); // Check if the Error string has been set by the message handler. -38- (35) 1287639 if (m_err〇rString.length() != 0) { OFCString errorString = m_errorString; m__error String = MM; throw exception(errorString.c_str〇); CTestPlanProxy::~CTestPlanProxy { g_pCmdDispatcher.removeMsgHandler(m__Id) The g —pCmdDispatcher object should be initialized by calling getCmdDispatcher(). System Architecture and Testing Figure 8 illustrates a nominal test sequence 8 根据 in accordance with an embodiment of the present invention. The test sequence 800 includes a module installation 8〇2 in a test environment 804 that includes test preparation steps 8〇6 and system tests 8〇8. Initially confirmed 8 1 2 (by some external procedures that may be based on the quality control of the seller) a new module 8 1 0 (hardware or software or a combination thereof). Installation 8 0 2 first requires the test preparation step 8.0, which includes the installation of the hardware module simulation of the disconnection simulation 8 1 、, the module resource file and interface installation for the test program development 8 1 2, And the installation of the module-specific type compiler for the type compilation 8 i 4 . Secondly, the system test 8 8 8 is performed with input from calibration 8〗 6, diagnosis 8 18, and architecture 8 2 0. The new module is then systematically tested 8 0 8, which includes:) interface control; (2) synchronization, sequencing, and repeatability; (3) error/warning processing; (4) multiple address control; And (5) multi-device module control. -39- 1287639 (36) Although only a certain exemplary concrete embodiment of the present invention has been described in detail above, those skilled in the art will readily appreciate that many modifications of the exemplary embodiment are possible. Without departing from the novel teachings and advantages of the present invention. Accordingly, all such modifications are intended to be included within the scope of the present invention as defined by the application. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates a conventional tester architecture. Figure 2 illustrates a system architecture in accordance with an embodiment of the present invention. Figure 3 illustrates a soft body architecture in accordance with an embodiment of the present invention. Figure 4 illustrates the use of test categories in accordance with an embodiment of the present invention. Figure 5 is a schematic diagram of a System Language (UML) illustrating the interaction of a tester system and different vendor supplied model resources in accordance with an embodiment of the present invention. Figure 6 illustrates a specific embodiment of an address controller object for managing tests performed by a user maintained by an address controller. Figure 7 illustrates a specific embodiment of an article replacement on the side of the system controller, which represents the address controller object shown in Figure 6. Figure 8 illustrates a test environment in accordance with an embodiment of the present invention. [Description of Symbols] -40- (37) (37)1287639 2 Driver 4 Comparator 6 产生 Generate Benefit 8 Waveform Generator 10 Image Memory 12 Timing Data Memory 14 Wave Memory Data 16 Component 100 System Architecture 102 System Controller 103 System Controller 104 Address Controller 10 6 Enabler 108 Test Module 110 Test Address 1 12 Object to be Tested 114 Load Board 200 Software Architecture 2 2 0 System Controller 222 Interface 224 Frame Category 22 5 External Tools 226 System Tools 2 2 8 System Tools (38) (38) 1287639 230 Communication Library 240 Address Controller 242 User Test Plan File 243 User Test Category 244 Test Category 24 5 Interface 246 Frame Category 247 Interface 24 8 Module Command Implementation 249 Library 2 5 0 Backplane Driver 260 Module 261 Backplane 262 Chassis Slot Interface 2 63 Module Hardware 264 Hard Interface 2 65 Load Board 266 DUT 2 8 0 Module Simulation 281 Analog Frame 2 8 2 Backplane Simulation 2 8 3 Analog Interface 2 8 4 Module Simulation 2 8 5 Analog Interface (39) (39) 1287639 2 8 6 Load Board Simulation 2 8 7 Analog Interface 2 8 8 Program Language Interface 2 8 9 Language Support 2 90 Tester Operating System Interface 291 Model 2 92 User Components 2 93 Model 294 System Components 296 Module Development Components 2 9 8 External Components 6 02 Command Delivery Object 604 Functional Test Message Handler 606 Function Test 6 08 Message Processor Interface 610 Test Interface 7 02 Command Delivery 7 04 Function Test Message Processing Program 7 06 Function Test Agent Host 7 0 8 Message Processor Interface 710 Test Client Interface 7 1 2 Distribution Interface 714 Application 8 00 Test sequence -43 (40) 1287639 8 02 Installation 8 04 Test environment 8 06 Test preparation steps 8 0 8 System test 8 10 Module 8 12 Program development 814 Model compilation 816 Calibration 8 1 8 Diagnostics 820 Architecture

Claims (1)

1287639 (1) 拾、申請專利範圍 1 · 一種分散式作業系統,用於測試至少一待測物 (DUT)之半導體測試系統,該作業系統包含: 一主作業系統,其能夠藉著一系統控制器控制至少 一位址控制器;及 至少一局部作業系統,其與每一位址控制器結合, 用以能夠藉著一相結合之位址控制器控制至少一測試模 組, 其中至少一測試模組在一對應待測物上施行測試。 2 ·如申請專利範圍第1項之分散式作業系統,其中該 主作業系統同步操作該至少一位址控制器。 3 ·如申請專利範圍第i項之分散式作業系統,其中該 主作業系統調解該系統控制器及該至少一位址控制器間 之通訊。 4 ·如申請專利範圍第1項之分散式作業系統,其中該 系統控制器監視該至少一位址控制器之操作。 5 ·如申請專利範圍第1項之分散式作業系統,其中一 位址控制器監視該至少一與該位址控制器相連之測試模 組之操作。 6 ·如申請專利範圍第1項之分散式作業系統,其中該 主作業系統包含至少一主機介面,該主機介面用以與該 至少一位址控制器通訊。 7 ·如申請專利範圍第6項之分散式作業系統,該至少 一主機介面用以與至少一與位址控制器相連之測試模組 -45 - 1287639 (2) 通訊。 8.如申請專利範圍第i項之分散式作業系統,尙包含 一用於界定測試模組函數程式之測試模組介面,而用以 形成一位址控制器至第一測試模組之介面,其中該測試 模組介面係可延伸至形成該位址控制器至第二測試模組 之介面,該未延伸之測試模組介面不足以形成該位址控 制器至該第二測試模組之介面。 9·如申請專利範圍第〗項之分散式作業系統,其中該 主作業系統包含至少一主框架類別。 1 0 ·如申請專利範圍第9項之分散式作業系統,其中 該至少一主框架類別係在一標準電腦語言中開發,以能 夠讓一使用者開發用於控制該至少一位址控制器之應用 程式特定類別。 1 1 .如申請專利範圍第〗〇項之分散式作業系統,其中 該標準電腦語言係C或C + +。 1 2 ·如申請專利範圍第1項之分散式作業系統,其中 每一局部作業系統包含至少一局部框架類別。 1 3 ·如申請專利範圍第1 2項之分散式作業系統,其中 該至少一局部框架類別係在一標準電腦語言中開發,以 能夠讓一使用者開發用於控制該至少一測試模組之應用 程式特定類別。 1 4 ·如申請專利範圍第1 3項之分散式作業系統,其中 該標準電腦語言係C或C + +。 1 5 ·如申請專利範圍第1項之分散式作業系統,其中 -46 - 1287639 (3) 由每一位址控制器所控制之模組數目係可變動的。 1 6 ·如申請專利範圍第1項之分散式作業系統,其中 與一對應位址控制器結合之局部作業系統能夠重新架構 藉著該位址控制器所控制之測試模組型式。 17·如申請專利範圍第1項之分散式作業系統,其中 該主作業系統能夠變動由該系統控制器所控制之位址控 制器之數目。 18·如申請專利範圍第1項之分散式作業系統,其中 該主作業系統能夠變動由該測試系統所測試之待測物之 數目。 1 9 ·如申請專利範圍第1項之分散式作業系統,其中 該至少一測試模組包含硬體及/或軟體。 20.如申請專利範圍第1項之分散式作業系統,尙包 含一模擬器,其用於以該測試系統模擬一候選測試模組 之用法,以確認該候選模組與該測試系統相容。 2 1 ·如申請專利範圍第1項之分散式作業系統,其中 在第一測試位址之模組之第一集合係架構成異於在第二 測試位址之模組之第二集合。 22 .如申請專利範圍第〗項之分散式作業系統,第一 測試位址具有第一架構,以測試第一待測物,且第二測 試位址具有第二架構,以測試第二待測物,其中該第一 及第二測試位址係可重新架構,以與第三測試位址形成 在一起,而取代測試第三待測物。 23 .如申請專利範圍第1項之分散式作業系統,其中 -47- 1287639 (4) 在第一測試位址之第一模組能存取在第二測試位址之第 二模組。 2 4.如申請專利範圍第1項之分散式作業系統,尙包 含一通訊函式庫,其具有與測試模組一起使用之函數程式 及介面之一預定集合。 -48 -1287639 (1) Picking up, patent application scope 1 · A decentralized operating system for testing at least one semiconductor test system of a DUT, the operating system comprising: a main operating system capable of being controlled by a system Controlling at least one address controller; and at least one local operating system coupled with each address controller for controlling at least one test module by a combined address controller, wherein at least one test The module performs a test on a corresponding object to be tested. 2. The distributed operating system of claim 1, wherein the primary operating system operates the at least one address controller synchronously. 3. The distributed operating system of claim i, wherein the primary operating system mediates communication between the system controller and the at least one address controller. 4. The distributed operating system of claim 1, wherein the system controller monitors operation of the at least one address controller. 5. The distributed operating system of claim 1, wherein the address controller monitors operation of the at least one test module connected to the address controller. 6. The distributed operating system of claim 1, wherein the primary operating system includes at least one host interface for communicating with the at least one address controller. 7. The decentralized operating system of claim 6, wherein the at least one host interface is for communicating with at least one test module -45 - 1287639 (2) connected to the address controller. 8. The distributed operating system of claim i, wherein the test module interface for defining a test module function program is used to form an interface between the address controller and the first test module. The test module interface can be extended to form an interface between the address controller and the second test module, and the unextended test module interface is insufficient to form an interface between the address controller and the second test module. . 9. The distributed operating system of claim </RTI> wherein the primary operating system comprises at least one primary framework category. 1 0. The distributed operating system of claim 9, wherein the at least one main frame category is developed in a standard computer language to enable a user to develop control of the at least one address controller Application specific category. 1 1. A decentralized operating system as claimed in the patent application, wherein the standard computer language is C or C++. 1 2 . The distributed operating system of claim 1, wherein each partial operating system comprises at least one partial framework category. 1 3 - The distributed operating system of claim 12, wherein the at least one partial framework category is developed in a standard computer language to enable a user to develop control of the at least one test module Application specific category. 1 4 · The distributed operating system of claim 13 of the patent application, wherein the standard computer language is C or C++. 1 5 · For the decentralized operating system of Patent Application No. 1, -46 - 1287639 (3) The number of modules controlled by each address controller is variable. 1 6 · As in the distributed operating system of claim 1, the local operating system combined with a corresponding address controller can re-architect the test module type controlled by the address controller. 17. The distributed operating system of claim 1, wherein the primary operating system is capable of varying the number of address controllers controlled by the system controller. 18. The distributed operating system of claim 1, wherein the primary operating system is capable of varying the number of analytes tested by the testing system. The dispersing operating system of claim 1, wherein the at least one test module comprises a hardware and/or a soft body. 20. The decentralized operating system of claim 1, wherein an emulator is included for simulating the use of a candidate test module with the test system to verify that the candidate module is compatible with the test system. 2 1 . The distributed operating system of claim 1, wherein the first set of frames of the module at the first test site is different from the second set of modules at the second test site. 22. The decentralized operating system of claim 1, wherein the first test site has a first architecture to test the first object to be tested, and the second test site has a second architecture to test the second test site And the first and second test addresses are reconfigurable to form a third test address instead of testing the third test object. 23. The distributed operating system of claim 1, wherein -47- 1287639 (4) the first module at the first test location can access the second module at the second test address. 2 4. The distributed operating system of claim 1 of the patent application, comprising a communication library having a predetermined set of functional programs and interfaces for use with the test module. -48 -
TW93103512A 2003-02-14 2004-02-13 A distributed operating system for a semiconductor test system for testing at least one device under test TWI287639B (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US44783903P 2003-02-14 2003-02-14
US44962203P 2003-02-24 2003-02-24
US10/403,817 US7290192B2 (en) 2003-03-31 2003-03-31 Test apparatus and test method for testing plurality of devices in parallel
US10/404,002 US7460988B2 (en) 2003-03-31 2003-03-31 Test emulator, test module emulator, and record medium storing program therein
US10/772,327 US7437261B2 (en) 2003-02-14 2004-02-06 Method and apparatus for testing integrated circuits

Publications (2)

Publication Number Publication Date
TW200506404A TW200506404A (en) 2005-02-16
TWI287639B true TWI287639B (en) 2007-10-01

Family

ID=39201724

Family Applications (1)

Application Number Title Priority Date Filing Date
TW93103512A TWI287639B (en) 2003-02-14 2004-02-13 A distributed operating system for a semiconductor test system for testing at least one device under test

Country Status (1)

Country Link
TW (1) TWI287639B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI384245B (en) * 2008-03-30 2013-02-01 Advantest Corp Testing module, testing apparatus and testing method
TWI461712B (en) * 2009-01-21 2014-11-21 King Yuan Electronics Co Ltd A parallel test switching device, a parallel test system and a parallel test method
TWI476418B (en) * 2009-05-01 2015-03-11 Cambridge Silicon Radio Ltd Semiconductor test system and method
TWI499789B (en) * 2012-06-04 2015-09-11 Advantest Corp Testing system and server
US9140752B2 (en) 2012-06-04 2015-09-22 Advantest Corporation Tester hardware
US9563527B2 (en) 2013-06-04 2017-02-07 Advantest Corporation Test system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719917B (en) * 2020-07-14 2021-02-21 金麗科技股份有限公司 Processing method for applying analog dynamic circuit to digital testing tool

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI384245B (en) * 2008-03-30 2013-02-01 Advantest Corp Testing module, testing apparatus and testing method
TWI461712B (en) * 2009-01-21 2014-11-21 King Yuan Electronics Co Ltd A parallel test switching device, a parallel test system and a parallel test method
TWI476418B (en) * 2009-05-01 2015-03-11 Cambridge Silicon Radio Ltd Semiconductor test system and method
TWI499789B (en) * 2012-06-04 2015-09-11 Advantest Corp Testing system and server
US9140752B2 (en) 2012-06-04 2015-09-22 Advantest Corporation Tester hardware
US9563527B2 (en) 2013-06-04 2017-02-07 Advantest Corporation Test system

Also Published As

Publication number Publication date
TW200506404A (en) 2005-02-16

Similar Documents

Publication Publication Date Title
US7437261B2 (en) Method and apparatus for testing integrated circuits
JP3954639B2 (en) Method and apparatus for testing integrated circuits
JP4608516B2 (en) Method for integrating test modules into a modular test system and modular test system
EP1610136B1 (en) Test emulator
JP3911007B1 (en) Method and system for simulating a modular test system
JP2006518460A5 (en)
US20050022087A1 (en) Method and system for controlling interchangeable components in a modular test system
US20090119542A1 (en) System, method, and program product for simulating test equipment
WO2013183246A1 (en) Test system
JP2013250248A (en) Test system and server
JP2009116878A (en) Simulation system and method for test device, and program product
JP2007057541A (en) Test emulator
TWI287639B (en) A distributed operating system for a semiconductor test system for testing at least one device under test
CN100456043C (en) Method and apparatus for testing integrated circuits
JP2009229304A (en) Test system and module control method
JP2005285092A (en) Test emulation apparatus
Rajsuman et al. Open architecture test system: System architecture and design

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees