張亞軍,陶雪峰
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
隨著集成電路產(chǎn)業(yè)的迅速發(fā)展,為了獲取更高的參數(shù)精度,熔絲修調(diào)越來越廣泛地應(yīng)用于集成電路測試工序,由最初的一顆管芯上只有一、兩段熔絲,發(fā)展到現(xiàn)在一顆管芯上有近二十幾段熔絲,將來還有著增加的趨勢。對多數(shù)測試代工企業(yè)而言,目前主流的熔絲編程方案采用被熔絲段瞬間承載大功率以達到預(yù)期,一些經(jīng)濟實力雄厚的代工企業(yè)開始引進激光熔絲修調(diào)技術(shù)(主要配合設(shè)計公司進行芯片縮減尺寸,獲取更多的利潤)。
熔絲組成成分主要分為鋁條和多晶硅兩種,其組合方式有具有公共地、熔絲彼此首尾相連或兩種方式都存在。
本文討論的重點在于熔絲編程算法,闡述了傳統(tǒng)型、改進型和串并結(jié)合的熔絲編程算法對于程序可讀性、可維護性、測試時間等的影響。為方便敘述,設(shè)定熔絲組合方式為具有公共地,修調(diào)參數(shù)為參考電壓(共有四段熔絲),采用4 Site并行測試,配套國產(chǎn)3196D專業(yè)模擬測試機,軟件開發(fā)環(huán)境:Visual C++ 6.0。
圖1為4 Site并行測試熔絲段的硬件連接示意圖。
圖1中:Kx_Sx表示繼電器控制位,TPx表示熔絲電源,F(xiàn)usex表示熔絲段。
表1為參考電壓需要修調(diào)的真值表。
表1 參考電壓熔絲真值表(中心值1.05V)
采用經(jīng)典的IF架構(gòu),以下為Site1熔絲編程代碼:
接著編寫Site2熔絲編程代碼,代碼長度和架構(gòu)和Site1一致(重點進行繼電器控制位的更新),同樣的辦法完成Site3和Site4熔絲編程代碼。從這個程序來看,缺點非常明顯:(1)整個熔絲編程的代碼很長,可讀性不強,給人的感覺非常拖沓;(2)如果測試過程中某個繼電器控制位異常,需要更換,代碼變更點非常多,很容易因為程序員的疏忽造成遺漏引發(fā)質(zhì)量事故,對于熔絲只有兩、三段的產(chǎn)品而言,此算法尚可忍受,大于等于4段之后,無論代碼撰寫和后期生產(chǎn)維護都比較吃力,鑒于此,一種改進的算法被提出。
依然采用經(jīng)典的IF架構(gòu),依然以Site1作為編程示例:
然后進行Site2熔絲編程代碼撰寫,代碼長度和架構(gòu)和Site1熔絲編程一致(重點進行繼電器控制位的更新),同理完成Site3和Site4熔絲編程代碼撰寫,從這個程序看,使用Fuse_x_Site_x狀態(tài)標志位表示相關(guān)的繼電器的開、關(guān)狀態(tài)(0:表示常開,1:表示長閉),最后再將實際的繼電器操作集中判斷,從而避免在每個IF語句流程中重復(fù)進行相關(guān)繼電器操作流程的撰寫,從而大幅縮減代碼長度,可讀性增強,特別是某個繼電器控制位發(fā)生異常,需要更新控制位,程序僅有一個修改點,閉環(huán)了因程序員的疏忽可能造成的質(zhì)量異常。
改進型熔絲編程算法相比傳統(tǒng)的熔絲編程算法更加精簡,可維護性大大增強,但在熔絲編程時間消耗上卻是一致的,因為它們的熔絲編程過程都是是串行實現(xiàn)的。一般而言,一段熔絲編程需要花費的時間在10 ms左右,那么本案例最大可能熔絲花費的時間為10×4段×4 Site=160 ms,隨著Site數(shù)目的增加,熔絲編程時間相比單Site熔絲編程時間是成倍的增加。這給競爭日益激烈的測試工序帶來了不小的成本負擔(dān),那如何縮減熔絲編程時間,串行熔絲編程算法需要新的算法支持,串、并結(jié)合是一種很好的嘗試。
借用改進型4 Site熔絲編程算法,可以很方便地得到Site1四段熔絲標志位:Fuse1_Site1、Fuse2_Site1、Fuse3_Site1和Fuse4_Site1所處的狀態(tài),同樣的方法得到另外三個Site對應(yīng)熔絲標志位:Fuse1_Site2~Fuse4_Site2、Fuse1_Site3~Fuse4_Site3、Fuse1_Site4~Fuse4_Site4所處狀態(tài)。完成上述工作后,建立一張說明表格(如表2)。
表2中設(shè)置4個Site的第一段熔絲分別使用Fuse1_Site4、Fuse1_Site3、Fuse1_Site2、Fuse1_Site1對應(yīng)四個繼電器控制位,變量初始值為0,經(jīng)過加權(quán)算法處理后得到相應(yīng)的加權(quán)和,根據(jù)表2,設(shè)置一個如下的二維數(shù)組:
其中:Fuse1_Site1對應(yīng)K1_S1, Fuse1_Site2對應(yīng)K1_S2, Fuse1_Site3對應(yīng)K1_S3, Fuse1_Site4對應(yīng)K1_S4。需要提醒的是,JC3196D的繼電器控制指令格式為:SET_RELAY(“x,y,…”)(x和y為整型數(shù)),所以程序中還要做實際繼電器控制位的替換工作,采用如下的方案:
表2 4 Site同一位置熔絲段(Fuse1)狀態(tài)位加權(quán)計算表
再根據(jù)實際得到加權(quán)值采用查表技術(shù)和這個二維數(shù)組進行一一對應(yīng),程序中直接調(diào)用SET_RELAY(str[i]),從而實現(xiàn)了4個Site的第一段熔絲的并行熔絲編程。
同樣的處理過程使用于在4個Site的第二、第三、第四段熔絲的處理過程。
至此,本算法實現(xiàn)了一種串、并結(jié)合的熔絲編程算法,代碼量和可維護性與改進型的算法旗鼓相當(dāng),但是在程序的執(zhí)行時間卻有了很大的提升。根據(jù)上文所述:一段熔絲編程需要花費的時間在10 ms,本算法所花費的時間最大值為10×4=40 ms,而且隨著測試Site數(shù)目的增加,這個值將是一個常量,4 Site所有熔絲編程所耗費的時間幾乎等同于單Site熔絲串行編程的時間。
對于改進型和串并結(jié)合的4 Site熔絲編程算法,可以將一些固定格式的代碼整合成子程序,進一步精簡程序,更加便于后期的生產(chǎn)維護,這也是一名合格的程序編制人員應(yīng)該考慮的。同時,在測試代工業(yè)競爭日益激烈的當(dāng)下,測試時間的縮減顯得更為重要,從某種意義上說,實現(xiàn)同一測試結(jié)果,1000行的代碼相比100行的代碼可以縮減100 ms的時間的話,那絕大多數(shù)企業(yè)會選擇前者。所以高效的執(zhí)行配合簡潔的代碼是每個程序編制人員的追求。
熔絲修調(diào)在集成電路測試工序日益普遍,需要修調(diào)的參數(shù)也由最初的電壓基準演變?yōu)殡娏骰鶞?、頻率基準、抖動等,修調(diào)項目的增多,需要編程的熔絲也隨之增多,熔絲編程耗費的時間在整個芯片測試時間中占比逐步增長,特別是多Site測試方案,采用傳統(tǒng)的串行熔絲編程算法,Site數(shù)目越多,熔絲編程時間是成比例的增長。為了應(yīng)對日益激烈的企業(yè)競爭,降本增效,本文提出了一種串、并結(jié)合的熔絲編程算法,改變了Site數(shù)目增加熔絲編程時間就會增加的傳統(tǒng)理念,將多Site熔絲編程時間控制在和單Site熔絲串行編程時間耗費保持一致。
不過采用這種算法,被測試產(chǎn)品在DUT上的硬件成本會稍有增加,但相對于可持續(xù)獲取的利潤可以忽略。同時程序開發(fā)人員需要對Visual C++ 6.0的字符串處理函數(shù)有一定的了解,才能進行熟練的數(shù)據(jù)處理。
計算方法是一門很實用的科學(xué),希望本文的算法起到拋磚引玉的作用,達到完善、提高、再完善、再提高的目的。
整體而言,采用串、并結(jié)合的熔絲編程算法,可以大幅縮減熔絲編程的時間,非常值得推廣。
[1] 李建良,蔣勇. 計算方法及計算實習(xí)[M]. 南京:南京理工大學(xué)出版社,1998.