【導(dǎo)讀】隨著半導(dǎo)體工藝不斷地進(jìn)步,那些原本存在芯片中的大型存儲(chǔ)器會(huì)轉(zhuǎn)變成數(shù)十或數(shù)百個(gè)小型的存儲(chǔ)器陣列,并且散布在芯片中各個(gè)角落。針對(duì)這種類型的小型陣列,如果想要偵測(cè)出與速度相關(guān)的瑕疵以及固定邏輯(stuck-at)故障,其實(shí)并不是一件容易的事。
傳統(tǒng)上,測(cè)試數(shù)字集成電路可以采用功能性向量,或是由自動(dòng)測(cè)試向量生成(ATPG)工具所產(chǎn)生的向量。此類軟件工具主要為隨機(jī)邏輯生成基于掃描的測(cè)試向量,對(duì)于待測(cè)組件(DUT)的存儲(chǔ)器部分,卻無法提供測(cè)試方案。得依賴存儲(chǔ)器內(nèi)建自測(cè)試(BIST)的方法來測(cè)試寄存器。
尤其是那些采用先進(jìn)工藝的存儲(chǔ)器陣列,存在著許多難以預(yù)測(cè)的潛在瑕疵。傳統(tǒng)的存儲(chǔ)器BIST方案會(huì)利用March或其它算法重復(fù)簡單的測(cè)試序列來偵測(cè)大部分的寄存器故障。在一種存儲(chǔ)器BIST方法中,DUT中的狀態(tài)機(jī)自身能產(chǎn)生和分析那些測(cè)試存儲(chǔ)器中的每一個(gè)地址所需用到的測(cè)試向量,免去了外部 ATE機(jī)的測(cè)試工作。另一種方法,則是讓片上處理器來測(cè)試存儲(chǔ)器,其缺點(diǎn)在于通常得等到DUT設(shè)計(jì)接近完成的時(shí)候,才能判斷出這種方法的有效性。
由于會(huì)影響芯片的面積與性能,小型存儲(chǔ)器陣列通常并不適合增加存儲(chǔ)器BIST邏輯。那些地址空間很少但端口很多的存儲(chǔ)器尤其不適合BIST。因?yàn)橄鄬?duì)于陣列大小,存儲(chǔ)器端口數(shù)量對(duì)BIST控制電路規(guī)模的影響更大,所以,可能導(dǎo)致實(shí)現(xiàn)BIST控制電路所需的門數(shù)甚至?xí)痛鎯?chǔ)器本身一樣大。同時(shí),BIST還要求所有存儲(chǔ)器的輸入引腳都有一個(gè)多路選擇器來選擇BIST信號(hào)與系統(tǒng)信號(hào)。對(duì)多端口存儲(chǔ)器而言,多路選擇電路會(huì)引起布線擁擠,并且導(dǎo)致性能的嚴(yán)重下降。
圖1:宏測(cè)試采用向量轉(zhuǎn)換的技術(shù)
圖1 宏測(cè)試采用向量轉(zhuǎn)換的技術(shù),在掃描單元與內(nèi)部宏單元,如嵌入式存儲(chǔ)器陣列之間傳遞測(cè)試向量。
嵌入式存儲(chǔ)器測(cè)試方案
考慮到BIST對(duì)小型存儲(chǔ)器陣列造成的負(fù)面影響,一個(gè)簡單的選擇便是不去測(cè)試 — 但用戶極有可能會(huì)收到瑕疵品?;蛘?,在辦公室里花更多的時(shí)間,為每一個(gè)存儲(chǔ)器陣列,手工生成完成測(cè)試算法所需的向量。好在還有一種更有效的選擇 ─ 那就是利用ATPG工具和待測(cè)組件的掃描儀單元,在每一個(gè)嵌入式存儲(chǔ)器的輸入端生成測(cè)試向量,并從輸出端得到響應(yīng)。這項(xiàng)新技術(shù),有時(shí)候被稱為“向量轉(zhuǎn)換”,或者是“宏測(cè)試”(macro testing)(見圖1)。如此一來,工程師便可以運(yùn)用一組宏向量序列,來測(cè)試獨(dú)立的嵌入式模塊(也可以稱之為宏)。一些EDA 公司可以提供有此功能的軟件工具。這些工具可以把那些為獨(dú)立的嵌入式存儲(chǔ)器(宏模塊) 所設(shè)計(jì)的宏向量自動(dòng)轉(zhuǎn)化成芯片級(jí)掃描向量,并把結(jié)果傳送到掃描單元,供作驗(yàn)證之用。
宏測(cè)試完成嵌入式模塊所需的測(cè)試不需要附加測(cè)試邏輯電路。其次,最終的嵌入式存儲(chǔ)器掃描向量還可以像標(biāo)準(zhǔn)的阻塞掃描向量一樣,具有簡單的測(cè)試協(xié)議,因此能夠減少在產(chǎn)品測(cè)試機(jī)臺(tái)上向量的調(diào)試時(shí)間。有些公司應(yīng)用宏測(cè)試技術(shù)平行測(cè)試100多個(gè)存儲(chǔ)器。如此一來,宏測(cè)試掃描向量也不過是與最長的向量長度相同。這項(xiàng)技術(shù)可用于測(cè)試任何嵌入式模塊,即便是所謂的“黑盒子”(black box)。只要在模塊的I/O端定義向量,那么這些向量便可以傳遞通過外圍的邏輯電路。
圖2:流水線處理能夠讓連續(xù)的讀/寫操作在連續(xù)的時(shí)鐘周期內(nèi)完成
圖2 流水線處理能夠讓連續(xù)的讀/寫操作在連續(xù)的時(shí)鐘周期內(nèi)完成,提供全速存儲(chǔ)器BIST功能。
嵌入式存儲(chǔ)器中的時(shí)序故障
如同一般的隨機(jī)邏輯,嵌入式存儲(chǔ)器也需要測(cè)試靜態(tài)故障和“實(shí)速”(at-speed)故障。由于存儲(chǔ)器BIST通常在系統(tǒng)時(shí)鐘下運(yùn)行,因此也被稱之為實(shí)速存儲(chǔ)器BIST。然而,即使BIST控制邏輯利用系統(tǒng)時(shí)鐘來設(shè)定測(cè)試序列,卻需要數(shù)個(gè)時(shí)序周期去完成單獨(dú)的讀/寫操作。因此,實(shí)速存儲(chǔ)器BIST電路雖然采用系統(tǒng)時(shí)鐘頻率,其實(shí)并無法如同芯片在正常模式運(yùn)作下那樣,執(zhí)行讀寫周期。運(yùn)用流水線(pipelining)讀寫操作,則可產(chǎn)生較為有效的測(cè)試,稱之為“全速”(full-speed) 存儲(chǔ)器BIST(見圖2)。簡言之,便是在連續(xù)的時(shí)鐘周期里,執(zhí)行連續(xù)(back-to-back)的讀寫操作,如同在正常系統(tǒng)操作模式下的存儲(chǔ)器一般。
對(duì)于大型存儲(chǔ)器而言,測(cè)試那些與速度相關(guān)的故障時(shí),全速存儲(chǔ)器BIST其實(shí)是個(gè)不錯(cuò)的選擇。但是對(duì)于小型或時(shí)序要求很高的存儲(chǔ)器而言,同樣的測(cè)試方法可能會(huì)有問題。宏測(cè)試工具要把每組功能性向量轉(zhuǎn)換成掃描向量,所以每組向量的測(cè)試速度則必然變慢。不僅如此,有些嵌入式存儲(chǔ)器完全同步,并使用與掃描鏈相同的時(shí)鐘信號(hào)。當(dāng)時(shí)鐘信號(hào)觸發(fā)其模塊時(shí),掃描單元上先前的設(shè)定值便會(huì)被新值所取代。如此一來,便無法傳遞模塊輸出端的期待值。因此,傳統(tǒng)的宏測(cè)試方式無法適用于不具有門控時(shí)鐘的同步存儲(chǔ)器。
不過,同步宏測(cè)試可以解決這個(gè)問題。簡言之,便是執(zhí)行連續(xù)的全速測(cè)試,而不需要重復(fù)載入掃描鏈。同步宏測(cè)試會(huì)決定掃描單元上用來產(chǎn)生第一個(gè)宏向量的值,并載入掃描鏈。同時(shí),也會(huì)決定用來產(chǎn)生第二個(gè)宏向量的值,并且在掃描單元的輸入端以管道方式傳輸。當(dāng)掃描鏈被載入時(shí),不同的時(shí)鐘信號(hào)即可以實(shí)速觸發(fā)。如此一來,好幾組的全速向量便被傳送到模塊。全速測(cè)試可以不受干擾地應(yīng)用于設(shè)計(jì)中的幾乎任一模塊。不僅如此,全速測(cè)試只用到功能邏輯電路,而非測(cè)試邏輯電路,因此,可以執(zhí)行更接近實(shí)際狀況的全速測(cè)試。
結(jié)語
在實(shí)際測(cè)試中總是得面臨測(cè)試工具的成本,測(cè)試開發(fā)時(shí)間,測(cè)試機(jī)臺(tái)的時(shí)間,測(cè)試向量的調(diào)試時(shí)間,以及測(cè)試覆蓋率之間的考量與抉擇。宏測(cè)試是可以有效地對(duì)那些與日俱增的小型嵌入式模塊進(jìn)行靜態(tài)與實(shí)速故障測(cè)試的工具。它甚至可以應(yīng)用到較大的存儲(chǔ)器,透過芯片的功能邏輯,自動(dòng)執(zhí)行全速測(cè)試。