DFT設計緒論

2021-09-05 09:36:28 字數 4622 閱讀 3711

原文新增鏈結描述

dft設計的主要目的是為了將defect-free的晶元交給客戶。

產品質量,通常使用parts per million(ppm)來衡量。

但是隨著ic從ssi到vlsi的發展,在test上花銷的時間越來越多,test的quality卻很難提高,這使得dft的engineer不斷的發展著dft的技術。

dft engineer面對的第乙個問題是設計內部的狀態的可測試性問題。在1970-2023年間,提出了ad hoc等可測試性設計的方法。

可以提高乙個design的可測試性,但是對於sequential的電路還是很難進行atpg的產生。

對於combinational的電路,有很多atpg的演算法可以用來進行test pattern的生成,但是對於sequential的電路卻很難。

後來帶有直接外部訪問的storage elements的提出,才解決了sequential的可測性與可觀性。這樣的cell叫做scan cells。

scan design是目前為止,使用最多的structure的dft方法,通過將多個storage element連線為多個shift register來實現。

乙個design中,所有的storage element都做了scan inserting,這樣的design叫做full-scan design;

乙個design中,大多數的(超過98%)的storage element做了scan inserting,這樣的design叫做almost full-scan design。

一些不用sdff替代的cell,可能是不想要在scan mode下被改變的register,本身就是shift register的暫存器(包括sync ff)

timing非常critical的path等。

乙個design中,一些storage element做了scan inserting,並且使用了sequential的atpg,這樣的design叫做partial-scan design。

其中的storage element主要為了break sequential feedback來選擇,從90年代起,隨著沈亞微公尺技術的發展,full_scan逐漸代替

partial_scan成為主流。

每乙個dff的d端值,可以表示為某些dff的q值和組合邏輯的函式來得到,di=f(qx, input)。在se為1的情況下,所有的qx都有了確定的值。

如果整個chip的input pad也是固定值,那每乙個dff的d端值一定是可以計算出來的。

一些analog和ram類的輸出訊號,著這種會進行bypass處理,保證di是乙個確定值。如果沒有相應的mux,那tmax計算出的di為不確定值。

相應dff在移位出scan chain的時候,對應的cycle應該進行mask處理。

這些hardblock如果沒有bypass處理,會影響test coverage。

為了提高fault coverage,一些scan design rules必須被遵循。除了scan_design外,還有built_in self_test(bist)和test compression

也得到了很廣泛的應用。

而近幾年,dft的測試開始從netlist轉向rtl level來減小test development的時間,以及testable的code。

scan register的替換,帶來的area increased,大約在15%

compression logic帶來的area increased,大約在1%

bist logic帶來的area increased,大約在2%–5%

defect的model型別有:

stuck at

transition

path delay

bridge test

iddq

針對晶元的三大部分,我們dft工程師手裡有三**寶

bscan技術-- 測試io pad,主要實現工具是mentor-bsdarchit,sysnopsy-bsd compiler

mbist技術-- 測試mem, 主要實現工具是mentor的mbistarchitect 和 tessent mbist

atpg 技術-- 測試std-logic, 主要實現工具是:產生atpg使用mentor的 testkompress 和synopsys tetramax;

插入scan chain主要使用synopsys 的dft compiler/cadence的rtl compiler

mentor的工具更新為tessent平台,包括工具:tessent fastscan tessent memorybist

tessent testkompress tessent logicbist

tessent scan

tessent diagnosis

insert scan:

雖然教科書會介紹很多種dft drc,但是在實際設計中95%的工作在修復scan_clk和scan_reset的drc violation

修復clk/reset violation 的方法主要是用dc插入mux ,目的是使在scan_mode下clk和reset被晶元scan_clk和scan_reset pad控制。

同時,scan_clk和scan_reset pad會用於ate給晶元施加激勵

插入scan時,dft compiler必須修復的drc violations 類別為d1/d2/d3/d9

做全片級的dft設計時,需要在scan_in,scan_out,scan_reset,scan_clk的io pad 的oen/ie/ren端插入mux,控制pad的輸入和輸出方向

atpg patterns產生和**

所有的模擬模組,例如pll,por等,一般設定為black-box,無法用atpg測試其內部

晶元clk,power,reset的控制暫存器,一般不會放到scan_chain上,以免在測試時由於暫存器的動作,改變晶元工作狀態

考慮power domain的開關,一般必須保證在scan測試時,所有power domain都開啟,每個數字標準單元都能測試到。

如果有模擬的io pad,一般必須在產生pattern時mask掉,因為他們不是數字的,atpg工具無法控制它們

業界一般使用dc插入occ (on chip clocking)模組,實現at-speed scan測試電路

mbist工具

目前使用較多的是mbistarchi,但是tessent mbist以後會成為主流。原因是mentor公司2023年已經宣布mbistarchi將不再提供技術支援,

而且tessent mbist技術更為先進。

所有的mbist設計應該考慮diagnose,加入diagnose電路,方便診斷mem故障,這會在晶元量產時大大提高成品率。

由於arm與mentor有合作,coretex-a9以上的arm核具有share-bus介面,可以很好支援tessent mbist,

就能夠實現arm核心的mem的高速測試和訪問,也提高了arm cpu的效能。

tessent mbist會使用jtap,只占用tck/tms/tdo/tdi/trst五個pad,比mbistarich使用更少的pad資源

bscan 工具

所有的模擬io,一般無法用bscan來測試,不要加上bscan_cells

所有需要測試的數字pad的oen/ie/ren 在bscan_mode下,需要插mux來控制

所有需要測試的數字pad的pu/pd 在bscan_mode下,一般需要插mux來控制,保證在bscan_mode下,

pu和pd=0,才能使bscan highz測試**通過

所有jtag的強制要求指令如idcode,exist必須在bscan電路中實現,特別是bypass

chip中的test mode可以分為analog(bist),function,bist,scan,io

yield:良率 (number of acceptable parts)/(total number of parts fabricated)

icg_mode,在shift時,設定為1,capture時,根據atpg的情況來判斷。

icc_bypass,用在ac stuck at model下的測試,相比較於dc stuck at,低頻clock的clock define點不同,可以不需要在修

timing,而如果沒有ac stuck at,一些經過同一低頻clock,不同occ clock的邏輯,可能是非同步的,但是在dc mode

在被作為同步,designer需要為此修很多timing,增加buffer。

ac mode下,會有很多低頻的clock mux,用於測試不同的邏輯。

FFT與DFT,以及DFT程式

由於dft演算法太慢,fft是更加快速的演算法。import numpy as np f0,f1 0.5,2 最高頻率為f1 t 1 f0 取樣時間為最低頻率對應的週期 fs m f1 取樣頻率為最高頻率的m倍 dt 1 fs 取樣間隔 生產取樣訊號 t np.arange 0,t,dt y 3 2...

DFT,可測試性設計 概念理解

工程會接觸dft。需要了解dft知識,但不需要深入。三種基本的測試 概念來自參考文件 1.邊界掃瞄測試 boundary scan test。測試目標是io pad,利用jtag介面互連以方便測試。jtag介面,實現不同晶元之間的互連。這樣可以形成整個系統的可測試性設計。2.內建自測試bist 個人...

《工業設計史》 緒論

工業設計的文化特徵 它的變化反映著時代的物質生產和科學技術的水平,也體現了一定的社會意識形態的狀況,並與社會的政治 經濟 文化 藝術等方面有密切關係 繼承與變革 工業設計受傳統設計文明的影響 階段定義 特點開始標誌 1設計的萌芽階段製作工具有了明確的目的性和一定程度的標準化舊石器時代,原始人類製作石...