上回書說到SA0和SA1的測試方法。
這種測試方法是建立在一個(gè)前提上的,就是我們可以任意改變輸入信號的邏輯值。如果這個(gè)輸入正好就是整個(gè)芯片的輸入還好辦,直接在芯片外部改變即可。但很多時(shí)候我們需要測試芯片內(nèi)部的各個(gè)邏輯單元,它們的輸入就會(huì)是在芯片內(nèi)部,不那么好調(diào)整了,這可咋辦呢?
這個(gè)時(shí)候人們就想到了芯片中的重要元件——寄存器。如果我們給寄存器存儲(chǔ)相應(yīng)的測試的邏輯值,讓這些reg的存儲(chǔ)的數(shù)據(jù)作為我們DFT測試的輸入,不就可以達(dá)到控制輸入信號的目的了嗎?但這種方法有一定局限性,這樣我們的DFT測試輸入位置必須保證是時(shí)序邏輯中寄存器的輸出pin才行,接收輸出信號就還是用探針就可以,沒有太多限制。
這樣的輸入限制有可能會(huì)導(dǎo)致我們無法完全測試出所有combinational cell的問題,但DFT工程師還是可以控制輸入信號測很多次,來盡可能多的覆蓋到能測的cell。DFT測試中有一個(gè)測試覆蓋率的概念,一般都會(huì)要求到90%以上。
然而使用reg來作為測試輸入又帶來了新的問題,那就是我如何給這些reg灌進(jìn)我想要的值呢?要知道芯片在正常工作時(shí)reg之間是會(huì)互相影響的,我們很難控制在某一個(gè)時(shí)刻,很多個(gè)reg都正好輸出我們想要的某個(gè)邏輯值組(一般DFT工程師稱這種輸入邏輯組叫pattern,比如上篇提到的例子里,11、10就是不同的兩個(gè)pattern),怎么辦呢?
為了DFT測試,我們要對芯片進(jìn)行大刀闊斧的改革!我們要把芯片中所有的正常reg全部升級!升級后的reg在可以正常工作的同時(shí),還要支持一種模式,這種模式可以讓我們直接控制每個(gè)reg寄存的值。
但是我們不可能把每個(gè)reg都接一根net到整個(gè)芯片的port,那port數(shù)量就太多了,根本不現(xiàn)實(shí)。如何只用控制一個(gè)port就能控制所有reg的值呢?別忘了,我們要控制的是寄存器,是被時(shí)鐘控制的,時(shí)鐘每跳變一次,信號往后傳輸一次,那么人們就想到把所有reg都串起來,后一個(gè)reg的輸入是前一個(gè)reg的輸出,我們只需要往第一個(gè)reg的輸入一個(gè)個(gè)灌值就行了。
比如三個(gè)reg串起來,我們想要一個(gè)101的pattern,就在第一個(gè)時(shí)鐘周期給第一個(gè)reg灌進(jìn)去1,三個(gè)reg狀態(tài)是1xx;下個(gè)時(shí)鐘周期灌0,狀態(tài)變?yōu)?1x,第三個(gè)周期灌1,狀態(tài)變?yōu)?01.這就是我們想要的pattern,在這個(gè)時(shí)刻進(jìn)行測試即可。
這里的reg的輸入輸出就是不同于電路的輸入輸出了,就是別的pin,稱為SI和SO,控制信號SE,我們把這個(gè)串稱為掃描鏈(scan chain)。
并且芯片工作的時(shí)鐘很快,DFT測試的時(shí)候相對就很慢,我們就需要一個(gè)專門的慢速時(shí)鐘用來測試,相應(yīng)的這個(gè)慢速時(shí)鐘和正常的時(shí)鐘要經(jīng)過一個(gè)選擇器接到reg上。
而后DFT工程師就要生成各個(gè)pattern了,最終把這一串值一個(gè)一個(gè)送到ATE機(jī)臺(tái)完成測試。呼~寫了這么多只講完了DC mode,但還有AC mode沒講...就是說我們上文提到的測試不涉及電路transition的問題,如果某個(gè)cell transition比預(yù)期的要慢,也會(huì)發(fā)生錯(cuò)誤,這也得測才行,因此就不能用慢速時(shí)鐘了,得用常速時(shí)鐘才行,相應(yīng)的測試方法更加復(fù)雜了。
-
寄存器
+關(guān)注
關(guān)注
31文章
5325瀏覽量
120052 -
DFT
+關(guān)注
關(guān)注
2文章
224瀏覽量
22681 -
時(shí)鐘芯片
+關(guān)注
關(guān)注
2文章
245瀏覽量
39851
發(fā)布評論請先 登錄
相關(guān)推薦
評論