TWI559156B - 識別稀有事件故障率的方法與系統 - Google Patents

識別稀有事件故障率的方法與系統 Download PDF

Info

Publication number
TWI559156B
TWI559156B TW100139139A TW100139139A TWI559156B TW I559156 B TWI559156 B TW I559156B TW 100139139 A TW100139139 A TW 100139139A TW 100139139 A TW100139139 A TW 100139139A TW I559156 B TWI559156 B TW I559156B
Authority
TW
Taiwan
Prior art keywords
points
remaining points
model
circuit design
performance metrics
Prior art date
Application number
TW100139139A
Other languages
English (en)
Other versions
TW201237647A (en
Inventor
崔特 麥康諾伊
喬爾 庫柏
傑佛瑞 迪克
凱爾 費雪
Original Assignee
索力托自動化設計股份有限公司
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
Application filed by 索力托自動化設計股份有限公司 filed Critical 索力托自動化設計股份有限公司
Publication of TW201237647A publication Critical patent/TW201237647A/zh
Application granted granted Critical
Publication of TWI559156B publication Critical patent/TWI559156B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

識別稀有事件故障率的方法與系統 相關申請案之參考
本發明申請案係以2011年10月27日提出之美國專利臨時申請案第61/407,230號一案主張優先權,在此並完整引用其內容做為參考。
本發明係關於預估在被變異(variation)影響效能的設計(例如電路設計)中的故障率(failure rate),其中變異至少有部分係以機率分布模型化,而不符合規格的機率遠比通過的機率要低。更特別地,本發明係關於在高良率半導體設計中預估故障率。
記憶體、客製化數位電路,以及其他類型的電路的良率會直接影響到使用該電路的晶片的效益,因此非常重要。所以,對設計者來說,在生產這些電路前能夠估計它們的良率是很重要的。在先前技術中,故障率只不過是良率的另一面。也就是說,設計的故障率是沒有通過規格的取樣設計的比例,而良率通過規格的設計的比例。
為了要估計電路設計(electrical circuit design,ECD)的故障率,通常ECD的某些變數的數值變異模型(model of statistical variation)就會派上用場。數值變異模型可包括隨機變數的機率分布(probability distribution)。舉例來說,ECD的每一個裝置可具有描述該裝置的n個製程變數(process variable)之n維高斯分布(Gaussian distribution),像是氧化物厚度、基板摻雜濃度等。接著,ECD分布模型(機率分布)就是這些裝置的分布的聯集。從分布中抽取一隨機點,加上ECD的架構和裝置尺寸(長度、寬度等),可以得到ECD的「實例(instance)」,實例為可以製造的單一晶片(裸晶)的模型(或者是整個晶片設計中的區塊或「細胞格」)。
ECD的實例的效能通常是透過電路模擬來估計。其效能可透過各種環境點,舉例來說,不同的溫度來估計。如果每個環境點的效能都能符合規格的話,表示ECD的實例可行。效能,或稱為效能度量(performance metrics),可包括消耗電力、讀取的電流等。
一個針對某一ECD預估故障率的簡單已知方法是使用蒙地卡羅(Monte Carlo)取樣與模擬,如第1圖所示。在開始102所使用的輸入包括ECD的一圖示,以及會影響到ECD的變數的機率分布。實例是ECD(標稱設計(nominal design))與特定變異(製程隨機性)所組成,可由SPICE電路模擬器(SPICE是特別為積體電路的模擬程式)或其類似者進行模擬。在步驟104,數個實例係抽取自ECD的機率分布。每個實例會經由模擬106,用以決定是否可行(也就是決定其是否符合預先決定的效能度量規格)。在所有N個樣本都被模擬後,此一操作通常會在108結束。結果會在使用者顯示器上顯示110,包括故障率,其為不可行實例(infeasible instance)與總實例數的比例。
當找到不可行實例(故障率)的機率與找到可行實例的機率相比是在同一數量級或二以內,根據第1圖的蒙地卡羅流程來預估故障率是不花費什麼成本的。舉例來說,如果故障率(p f )是0.10,那麼良率是0.90,不用花費什麼成本就可預估。如果要預估一個還不錯的準確度的故障率,一個合理的基本原則是有足夠的樣本以取得大概10個故障,而樣本數越多越準確。在以上的範例中,p f =0.10,因此可得到N=10/0.10=100個樣本。以具有現代模擬軟體的現代CPU來運算,100個蒙地卡羅樣本通常只要數分鐘到數小時的時間就可以模擬完成,這是很合理的。1000個蒙地卡羅樣本通常很合理,而對於某些快速模擬電路來說,10,000個樣本也很合理。
然而,如果實例失敗的機率變得相當小,如果使用第1圖所示的方法,就需要非常多的蒙地卡羅樣本來預估故障率。舉例來說,如果p f =1.0e-6(百萬分之一),則所需的蒙地卡羅樣本數為N=10/1e-6=1000萬個蒙地卡羅樣本。在此情形下,對於目前的電腦來說,模擬此ECD需要非常大量的運算資源,才能夠在合理的時間內(例如數小時)內取得結果。如果對一給定的電路來說,p f =1.0e-9(10億分之一),則所需的蒙地卡羅樣本數為N=10/1e-9=100億個蒙地卡羅樣本。要模擬這麼大數目的樣本在要求的時間內是不可能做到的。
在某些現代的電路中,如此低的p f 是很常見的。這類電路像是記憶體電路,其中在單一晶片上的位元格(bitcell)重複數百萬或數十億次(Mbit或Gbit),所以每一個位元格應該相當可靠(具有很小的p f ),所以整體記憶體具有合理的良率,而支援電路系統,像是也常常重複的感測放大器(sense amp),也需要非常可靠。此外,數位電子產品具有許多數位標準細胞格,所以每一格都應該非常可靠,而整體良率也會不錯。
由於模擬1千萬或10億個蒙地卡羅樣本所耗費的成本相當不合理,因此也有人探討其他預估故障率的方法。
有種方法是先進行較少數目的蒙地卡羅樣本(1萬至100萬)的模擬,針對分布的尾部建構一個模型,然後外推尾部以便找出尾部是否有超過可行性界限(一特定效能度量的通過/失敗界限)。可惜的是,這個方法非常耗費運算資源,而外推(extrapolation)也相當不準確。
另一種方法是建構ECD的分析模型,然後從該模型抽取一龐大數目的樣本,或者是藉由分析積分該模型以推導故障率。可惜的是,其結果也有可能非常不準確。此外,此一方法需要曠日費時的人工,對於每一個不同的電路圖式都必須重複處理,而每一個新的製程節點也可能需要修正。
另一組方法是利用分類或迴歸模型(regression model)。其中心想法是以模型評估樣本的可行性要比模擬快很多。此種方法的其中一種(A. Singhee等人在2008年3月28日所提出的美國專利申請案第20090248387號,題為「取樣與預測複雜電子裝置、電路以及系統的稀有事件的方法與設備(Method and apparatus for sampling and predicting rare events in complex electronic devices,circuits and systems)」)是從分布中抽取蒙地卡羅樣本,然後以可行/不可行分類器取代模擬,其前提是可信賴其可行性預測。另一種方法(J. Wang、S. Yaldiz、X. Li,L. Pileggi在2009年6月的ACM/IEEE設計自動化會議公報上發表的「SRAM參數故障分析(SRAM Parametric Failure Analysis)」)適應地建立了一個分段線性模型(piecewise-linear model);它從線性迴歸模型開始,然後每一次迭代(iteration)會選擇具有已知模型化錯誤或不確定性的較高機率隨機點,加以模擬,然後在模型中加入另一段。又另一個方法(C. Gu與J. Roychowdhury在亞洲與南太平洋設計自動化會議2008公報第754至761頁提出的「一種應用於SRAM細胞格與環型振盪器之有效全非線性可知變數的非蒙地卡羅良率預測程序(An efficient,fully nonlinear,variability-aware non-Monte-Carlo yield estimation procedure with applications to SRAM cells and ring oscillators)」)採用類似的方法,但是使用分類模型而非迴歸模型。採用模型為基礎的方法的一般問題是必須信賴模型,如果模型不正確,那麼結果就會不正確。這些方法都只有用6到12個變數的小問題示範過,對於50或150或更多變數要建立可靠的模型就困難得多。
另一額外的方法是使用馬可夫鏈蒙地卡羅(Markov Chain Monte Carlo,MCMC)。這個方法是由著名的Metropolis-Hastings演算法(由N. Metropolis、A.W. Rosenbluth、M.N. Rosenbluth、A.H. Teller、E. Teller等人於1953年在化學物理期刊21(6),第1087頁至1092頁所提出的「採用高速運算機器的狀態運算等式(Equations of State Calculations by Fast Computing Machines)」)所推導出來。在數值取樣的MCMC方法中(由Y. Kanoria、S. Mitra,以及A. Montanari在2010年3月歐洲設計自動化與測試公報所提出的「使用馬可夫鏈蒙地卡羅的數值靜態時序分析(Statistical Static Timing Analysis using Markov Chain Monte Carlo)」),取樣分布係適應地向稀有事件傾斜,而在樣本鏈上的每一接續樣本係根據臨限(threshold)隨機地使用或拒用。可惜的是,實際上很難可靠地達到穩定「充分混合(well-mixed)」的MCMC樣本鏈,特別是對於非MCMC專家(也就是工具使用者)來說更是如此。
另一組方法使用重要性取樣(importance sampling)。一個代表性的例子是R. Joshi等人於2008年4月16日提出的美國專利申請號第2008/0195325號,題為「有效預測細胞格陣列的故障率之系統與電腦程式(System and Computer Program for Efficient Cell Failure Rate Estimation in Cell Arrays)」一案。在重要性取樣中,分布係向稀有不可行取樣偏移,如同MCMC一般。但是與MCMC不同的是,重要性取樣使用每一個樣本。重要性取樣在預估故障率時,根據每一個樣本在取樣分布上的密度,並與實際分布的密度比較,藉以給予權重。在一些用於電路分析的最具潛力重要性取樣方法中,會計算「中心(centers)」,然後用於重要性取樣,而這些中心是高斯分布的平均。在R. Joshi等人所發表的內容中,計算中心的方法是針對每一製程參數,在[-6,+6]的範圍的標準偏差(standard deviation)內從均勻分布抽取樣本,然後保持前30不可行樣本。而另一個方法(由M. Qazi、M. Tikekar、L. Dolecek、D. Shah,以及A. Chandrakasan在2010年3月歐洲設計自動化與測試公報所提出「用於SRAM良率分析的高效率模型減少技術:迴圈平坦化與球面取樣(Loop Flattening & Spherical Sampling: Highly Efficient Model Reduction Techniques for SRAM Yield Analysis)」)是利用球面取樣(spherical sampling)技術。這二種方法都只有在6至12個變數的小問題上面示範過。可惜的是,它們在處理高維度(隨機變數)上的效果不彰,因為所選取的中心不太可能發生,所以權重太小而不足以影響故障率的預估,使得預估過於樂觀,例如,預估p f 為1.0e-200,而實際上應該是1.0e-8附近。在實際的電路良率預估問題上,可能會有100、1000,或更多的隨機變數,因此,重要性取樣不能被視為預估失敗率的合理解決方法。重要性取樣系統的另一缺點是電路設計者在使用此工具時缺乏資訊透明度--設計者很難評估改變的分布的特性,還有分布是否有恰當地沿著最高機率的可行性界線進行取樣。
因此,有必要改進ECD的故障率的預估。
本發明的一個目的是消除或減緩先前工具和方法在預估具有低故障或然率之ECD故障率時的至少一個缺點。
在本發明的一實施例中,一組N個蒙地卡羅樣本(點)係抽取自描述變異的隨機分布。接著,隨機選擇該等樣本的一子集,而N init 個樣本的子集係以一線路模擬器模擬以量測每一樣本的一效能值。接著,建立一迴歸模型,使用該等N init 個製程點作為訓練輸入,而該等對應的N init 個效能值作為訓練輸出。候選的蒙地卡羅樣本係來自該等N個蒙地卡羅樣本中還沒有被模擬的。每一候選係以該模型模擬以獲得預測效能值,而該等樣本係以該等預測效能值的遞增(或遞減)順序排列。接著候選樣本係以該順序進行模擬。也就是說,係由最差輸出候選開始模擬。該迴歸模型與排序可定期更新,以下將進一步討論。該樣本與該模擬在有已找到所有故障的充分信賴下將立即停止。
替代地,N個蒙地卡羅或準蒙地卡羅樣本係抽取自描述變異的隨機分布。接著,針對每一個效能(輸出),建立一迴歸模型,將變異參數映對至效能,然後從模擬器取得每一個給定樣本(點)的給定效能值的回饋。候選的蒙地卡羅樣本係來自該等N個蒙地卡羅樣本中還沒有被模擬的。針對每一個迴歸模型(每一個輸出),每一個候選樣本係以該模型模擬以獲得預測效能值,而該等樣本係以該等預測效能值(對於該輸出)的遞增(或遞減)順序排列。這些順序會以交插的方式合併為單一順序。接著會以該順序開始模擬候選樣本。此外,非候選點(不在該組N個蒙地卡羅樣本)或排序在後的候選點(在該組中但是沒有排在前面的點)的模擬也可以自動完成,舉例來說,以便提升排序模型的品質。迴歸模型和排序可定期更新。該樣本與該模擬在有已找到所有故障的充分信賴下將立即停止。
本發明與先前技術相較下的主要優點是,儘管本發明是用模型化來了解問題空間(為了效率之故),但是它不像其他模型化方法需要高模型準確性。本發明僅使用模型來排序樣本,而非用模型決定樣本是否可行或不可行。如果用模型來決定可行性需要非常好的模型準確性,在高維度問題中是很難達到的。
根據本發明的型態,係提供一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件故障之方法,該ECD具有與其相關之製程變數與效能度量,該等效能度量係由該等製程變數決定,該等製程變數具有一機率分布。該方法包含:由該等製程變數的該機率分布產生一組的點(可稱為製程點);由該組的點選出一子集的點;針對該子集點的每一點模擬該ECD以取得模擬資料;根據該模擬資料,計算該子集點的每一點的一效能度量之一數值,用以取得一組效能度量值,該效能度量具有一與其相關之目標值;根據該組效能度量值與用於該子集點的每一點之該等製程變數的數值,建立該效能度量的一模型為該等製程變數的一函數;根據該模型,排列該組的點之剩餘點,以取得排序的剩餘點,該等排序的剩餘點具有一與其相關的次序;以及根據該等排序的剩餘點的該次序,藉由遞迴地重複以下動作(a)至(d),直到符合一停止條件為止,以顯示電路設計故障的一數目之一計數,用以取得電路設計故障的一顯示計數:(a)模擬一排序的剩餘點以取得該排序的剩餘點之模擬資料;(b)根據該排序的剩餘點之該模擬資料,計算該排序的剩餘點的該效能度量之一數值;(c)比較該排序的剩餘點的該效能度量之該數值與該目標值;以及(d)如果該排序的剩餘點的該效能度量之該數值不符合該目標值,增加ECD故障的該顯示計數。
在本發明的又另一型態中,係提供一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件發生之方法,該ECD具有與其相關之製程變數與效能度量,該效能度量係由該等製程變數決定,該等製程變數具有一機率分布,該方法包含:由該等製程變數的該機率分布產生一組的點;由該組的點選出一子集的點;針對該子集點的每一點模擬該ECD以取得模擬資料;根據該模擬資料,計算該子集點的每一點的一效能度量之一數值,用以取得一組效能度量值;根據該組效能度量值與用於該子集點的每一點之該等製程變數的數值,建立該效能度量的一模型為該等製程變數的一函數;根據該模型,排列該組的點之剩餘點,以取得排序的剩餘點,該等排序的剩餘點具有一與其相關的次序;以及根據該等排序的剩餘點的該次序,藉由遞迴地重複以下動作(a)至(c),直到符合一停止條件為止,以顯示該效能度量的該等數值的一分布的圖,用以取得該顯示的圖:(a)模擬一排序的剩餘點以取得該排序的剩餘點之模擬資料;(b)根據該排序的剩餘點之該模擬資料,計算該排序的剩餘點的該效能度量之一數值;以及(c)將該排序的剩餘點的該效能度量之該數值加入該效能度量的該等數值的該分布的圖。
在本發明的又另一型態中,係提供一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件發生之方法,該ECD具有與其相關之製程變數與效能度量,該效能度量係由該等製程變數決定,該等製程變數具有一機率分布,該方法包含:由該等製程變數的該機率分布產生一組的點;由該組的點選出一子集的點;針對該子集點的每一點模擬該電路設計以取得模擬資料;根據該模擬資料,針對該電路設計的一或更多個效能度量,計算該子集點的每一點的該一或更多個效能度量之一數值,用以取得一或更多組效能度量值;根據該一或更多組效能度量值以及該子集點的每一點的該等製程變數之該等數值,建立該一或更多個效能度量的每一個的一模型為該等製程變數的一函數;針對該一或更多個效能度量的每一個的輸出值的每一個預先建立的興趣區,根據該一或更多個效能度量的每一個的該模型,排列該組的點之剩餘點以取得多組排序的剩餘點,多組排序的剩餘點的一數目係等於預先建立的興趣區的一數目,輸出值的每一個預先建立的興趣區具有與其相關的一目標值;交插該等組的排序的剩餘點,以取得一排序交插的組的點,該排序交插的組的點具有一次序;針對輸出值的每一個預先建立的興趣區,根據該排序交插的組的點的該次序,藉由遞迴地重複以下動作(a)至(d),直到符合一停止條件為止,以顯示ECD故障的一數目之一計數,用以取得ECD故障的一顯示計數:(a)模擬該排序交插的組中的一點;(b)計算該排序交插的組中的該點的該效能度量之一數值;(c)比較該排序交插的組中的該點的該效能度量之該數值和與其相關的目標值;以及(d)如果該排序交插的組中的該點的該效能度量之該數值不符合其相關的目標值,增加該等電路設計故障的該顯示計數。
熟悉此技藝者在檢視本發明的特定實施例的敘述,並參考附屬圖表後,應可了解本發明的其他型態和特點。
一般來說,本發明提供一種用以識別會受到隨機變異影響(也就是其設計變數會受到隨機變異影響,也可稱為製程變異)的ECD的故障和故障率之方法與系統。
本發明提供一種用以預估具有低故障率的ECD的故障率之系統與方法。第2圖所示為本發明的方法/系統之示範方塊圖。
第2圖從步驟202開始。本發明的一個輸入是代表一設計(一組裝置如何連接,還有裝置大小如長、寬,以及電阻),以及一描述可影響電路效能的變異之機率分布。用類似SPICE的電路模擬器,可以模擬一設計與一特定變異樣本(抽取自變異分布的點)的組合。在模擬設計與變異樣本的組合時,可得到效能值(效能度量值)的一向量。以下討論僅以一個效能度量來決定故障率。之後將會討論到以多個效能度量來決定故障率。
在步驟204,一組N個蒙地卡羅(Monte Carlo)樣本(點)係抽取自描述ECD的變異的隨機分布。一般來說,ECD的每個裝置具有與其相關的變異,而該變異可利用裝置的製程變數的機率分布加以描述(因為它們符合分布,製程變數為隨機的變數)。一組所有機率分布(每個裝置一個分布)可定義ECD的整體機率分布。
製程變數的性質為隨機的,並且與ECD製造的步驟有關。此種變數可包括,舉例來說,閘氧化物厚度、基板摻雜濃度、薄片電阻(sheet resistance)、遷移率,以及裝置長寬的變動,最後都可以影響ECD的電氣特性和效能度量。
接下來,在步驟206,從N個樣本中隨機選擇一組N init 個樣本的子集,而再步驟208,ECD係以該組N init 個樣本的子集模擬(利用線路模擬器)以取得每一樣本的某一效能度量(同一效能度量)的數值。接著,在步驟210,針對該效能度量建立一迴歸模型,使用N init 個點為訓練輸入(training input),而對應的N init 個效能值為訓練輸出。
任何合適的迴歸模型都可用於本發明。舉例來說,迴歸模型可包括線性模型、多項式模型、曲線模型、高斯程序模型、類神經網路、MARS模型(J.H. Friedman於1991年統計年報(Annals of Statistics)第19卷第一冊所發表之多變異調適迴歸曲線(Multivariate Adaptive Regression Splines))、快速函數萃取(FFX,fast function extraction)模型(T. McConaghy於2011年9月客製化積體電路會議公報(Custom Integrated Circuits Conference)所提出之客製化積體電路的高維度統計模型化與分析(High-dimensional statistical modeling and analysis of custom integrated circuits)),或者以上的組合,這些均包含在本發明的範疇內。舉例來說,比較器(comparator)的頻寬(BW)可為製程變數'x'的多項式函數:BW=1.71e7-4.57e5*xcm1,m1,lint*xcm1,m2,lint+5.23e4*x2 cm1,m1,lint+4.80e4*x2 cm1,m2,lint;其中像是xcm1,m1,lint係電晶體M1在電流鏡CM1上的長度變異。
在步驟212,還沒模擬的候選蒙地卡羅樣本會以迴歸模型模擬以取得預測的效能值,以及同樣在212,候選樣本係以預測的效能值的遞增(或遞減)順序排列。如果想要將輸出最大化,也就是效能度量,例如增益(gain),那麼最差情形數值為最小值,所以樣本係以遞增排序。反過來說,如果想要將效能度量(例如電力消耗)最小化,那麼樣本會以遞減順序排列。在另一範例中,則有可能要針對位元格(bitcell),找出低於一預先決定數值的位元格電流。在此情形下,樣本(排序的樣本)可以用它們的預先決定數值的位元格電流的遞減值排列。第3圖係關於一位元格的電流的範例,並且根據迴歸模型以預測的位元格電流的函數表示蒙地卡羅樣本的機率分布函數。在此範例中,位元格電流規格具有一最大可允許值,因此,樣本係由高預測電流排列至低預測電流。順序中前9個樣本係標示為1-9。
在第2圖的步驟214,開始以所決定的順序模擬排序的候選樣本。樣本可以用每Norder的大小成批模擬。當模擬結果回來時,可以用,舉例來說,模擬輸出值、那些模擬不符合規格、所得到的故障次數、假設所有故障都已找到的預估故障率,諸如此類等等的方式,輸出至使用者顯示器220。故障率可以用(故障次數)/(總樣本數N)來預估。如果在步驟216已找到所有故障,那麼系統會在步驟218停止。在此可自動決定是否找到所有故障,或者是由使用者根據顯示器所顯示的資訊來決定。如果系統沒有在218停止,那麼流程可重新回到步驟210。迴歸模型可利用剛剛從模擬得到的額外資料重新訓練,而剩下的候選樣本會在步驟212重新排列,然後在步驟214模擬。此一迴圈可繼續至找到所有故障為止。一旦找到所有故障,系統可於步驟218停止。
以下將示範本發明應用於5個不同的高良率(低p f )問題:三種ECD,一個具有單一輸出,而二個各具有二個輸出。ECD為一位元格和一感測放大器等代表性記憶體電路,還有一正反器,其為代表性數位標準電路格。這些電路具有合理的裝置大小;舉例來說,它們通過標稱的規格,並具有其良率接近目標良率的合理可能。裝置模型為現代的45nm製程,具有每個裝置大約5-10個本地製程變數(local process variable)。位元格具有30個製程變數,感測放大器具有125個製程變數,而正反器具有180個製程變數。第4圖所示為一示範的位元格的電路圖。第5圖所示為示範的感測放大器的電路圖。
測試方法如下:對於每個問題來說,N個蒙地卡羅樣本(隨機樣本)係抽取自測試對象ECD的(製程變數的)機率分布,利用所有的隨機樣本以線路模擬器模擬該ECD。這些模擬形成所謂的「黃金(golden)」結果,以便測試/比較本發明的方法。在這些測試例子中,輸出規格可設定N個樣本中有x個沒通過規格(x可為,比如說100)。對位元格來說,輸出規格為位元格電流,對於感測放大器來說是感測放大器功率與感測放大器延遲,而對於正反器來說,是電壓輸出和電流輸出。
在第2圖中的示範方法,抽取(或產生)的蒙地卡羅樣本數目Ngen=N,使用的隨機種子(random seed)和前述用來產生蒙地卡羅樣本的「黃金」結果是一樣的。第2圖的方法會進行20000次模擬,而規格會設定為Ngen個樣本有100個會故障,對於位元格來說,N=150萬,感測放大器為100萬,而正反器為100萬。
第6圖所示為以20000個蒙地卡羅樣本的樣本數的函數來表示所計算的位元格電流。計算是以線路模擬器模擬位元格以取得模擬資料,然後用模擬資料來計算位元格電流。較低曲線500是未排序的蒙地卡羅樣本,上曲線502是根據位元格電流的迴歸模型所排列的蒙地卡羅樣本。曲線504是本發明在符合理論值的情況下之「理想」曲線;因此,此一「理想」曲線可拿來與本發明比較。此一「理想」曲線504所示為以遞減的位元格電流的函數排序蒙地卡羅樣本所得的電流:也就是說,取得150萬個蒙地卡羅樣本的位元格電流,並且以遞減的位元格電流的函數排序。迴歸模型並沒有用來推導曲線504。在曲線504上只有二萬個蒙地卡羅樣本。根據定義,理想的排列順序是單一遞減的,符合曲線504所顯示的結果。蒙地卡羅樣本曲線500的表現行為是隨機的。如果沒有偏差(bias),蒙地卡羅樣本(點)輸出值會分散在整個範圍內,因此,僅單獨對蒙地卡羅樣本模擬,要很久才能找到最差情形數值。
曲線502具有從最差情形數值開始一路向下的趨勢,並且包含某些雜訊。此一趨勢顯示曲線502有抓到製程變數和輸出數值之間的一般關係。雜訊顯示迴歸模型具有一些誤差,這是在預料中的。模型化誤差越小,雜訊越小,而第2圖中的本發明就越快找到故障。以大約2000個樣本來說,如506所示,曲線502的較低範圍數值是向上跳的,那是因為用來預估位元格電流的模型是在該點重建,因此從該點開始的排序變得比較準確。該模型係利用已模擬的(經由線路模擬)蒙地卡羅樣本加以重建:一開始模擬的資料係用以建構原始迴歸模型,而後來模擬的係用以取得最高2000個樣本數的位元格電流資料。在一些情形下,像是大約10,500個樣本,如508所示,第2圖所示的方法預測有些點可能會具有極高數值,但是在模擬中它們卻具有極低數值,這是可接受的,因為本發明並不需要讓每個預測的樣本都在誤差容忍度內。反而是看本發明的方法能夠多快找到最差情形。
第6圖的曲線502能夠清楚地看到本方法的行為,並能夠了解到本發明在尋找故障上的能力。雜訊區的寬度顯示在推斷一給定規格值(效能度量值)的所有故障是否都已找到時,要給予多大的邊際(margin)。圖中清楚的趨勢顯示該方法正確地運作,通常可描繪出分布的尾部,在本例中,即位元格電流的分布。
本方法在尋找故障時的效力是根據目標規格(目標效能度量值)而定。正確的設定(設定ECD問題)一般可包括在所產生的樣本數中只有少於100個不符合規格的故障。如果故障數較多的話,那麼ECD不是不符合目標良率,就是針對目標良率產生了太多的樣本。同樣地,如果沒有找到符合目標規格的故障,那麼設計本身不是設定的邊際過大,或者是沒有產生足夠的樣本以驗證良率。所以,本示範方法只需要找出最多100個故障以符合規格,因此可容忍有明顯的順序誤差,但是仍然在可接受的模擬預算內。在如第7圖所示的位元格範例中,本發明在前5000個預測的樣本內找到前100個故障。要注意的是,對包含100個故障的150萬蒙地卡羅樣本來說,蒙地卡羅模擬通常不會在5000個樣本找到一個故障。
位元格的例子示範了本發明的其中一個優勢,也就是對於順序預測誤差的彈性。排序模型並不需要完全準確,才能在高良率分布的最尾端以合理的模擬數目提出準確的蒙地卡羅和SPICE(線路模擬器)結果。
第8圖所示為以20000個蒙地卡羅樣本的樣本數的函數來表示所計算的感測放大器功率輸出。計算是以線路模擬器模擬感測放大器以取得模擬資料,然後用模擬資料來計算感測放大器電流。較低曲線520是未排序的蒙地卡羅樣本,上曲線522是根據感測放大器輸出功率的迴歸模型所排列的蒙地卡羅樣本。「理想」曲線524所示為以遞減的感測放大器輸出功率的函數適當地排序100萬個蒙地卡羅樣本所得的感測放大器輸出功率。在曲線524僅顯示出前20000個樣本。第9圖所示已模擬的蒙地卡羅樣本數的函數所表示的故障數目。第8圖與第9圖(與感測放大器相關)的一般行為係與第6圖和第7圖(與位元格相關)的行為類似;然而,在感測放大器的情形中,在前1000個樣本(見第9圖)就已經找到所有100個故障。排序模型的功效可參考第8圖,其中曲線522所顯示的雜訊量顯然低於曲線520的雜訊。因此,感測放大器的範例說明第2圖的示範方法如何以較佳的排序模型獲得效率。圖中僅顯示出感測放大器排序模型具有比位元格排序模型要低的誤差。不過本發明的方法在較高的誤差上仍可找到位元格的所有故障突顯了本發明因應較高模型誤差的彈性。
第10圖與第11圖說明第2圖的方法如何應用於感測放大器的延遲輸出。該輸出具有雙模態分布,大多數的樣本值約為0.1e-9 s(0.1ns),而故障樣本具有大約1.5e-9s的數值。在本例中規格係設定於兩者之間。在100萬個蒙地卡羅樣本中,有61個故障樣本(不像先前例子中有100個)。第10圖所示為本發明的方法在前9000個樣本找到所有故障。本方法在較前面的樣本找到故障的頻率最高,接著頻率會遞減。可了解的是,在第10圖的輸出針對樣本的範例中,排序模型有發揮作用,因為在曲線600中,故障的頻率在一開始的地方比較高,然後會降下來。此外也可看到本方法能夠找出所有的故障,因為在相當大範圍的樣本中沒有找到新的故障(也就是從第9000個到15000個樣本)。圖中也同時顯示理想曲線602與隨機取樣曲線604。第11圖進一步示範此一行為,其中可看到本方法所用的HSMC(High-Sigma Monte Carlo)蒙地卡羅模擬在9000個樣本內可找到所有61個故障,而大多數的故障都可以在前1000個樣本內找到。
第12圖與第13圖顯示在正反器的Vh輸出與HSMC行為的關係。在曲線610,根據本方法,所得到的輸出與樣本之間的對照結果接近理想,在少於500個樣本的狀態下就可以找到所有100/100個故障。612為理想曲線,未排序的蒙地卡羅曲線則如614所示。
可以注意到的是曲線610的雜訊在圖上相對於取樣區域(曲線614)來說,看起來很小。在此,雜訊量也是證明樣本排序模型有效的良好指標。
第14圖與第15圖所示為本發明應用在正反器的Id電流輸出的行為。如第14圖所示,曲線620係透過第2圖的示範方法取得,其偏向極大值,並具有相當高的雜訊。這意味著所採用的基本模型有抓到整體的趨勢,但是在針對個別趨勢方面具有相當明顯的誤差。但是儘管有誤差,該方法在尋找故障時仍具有合理的效率。同樣在第14圖有理想曲線622,以及隨機選擇樣本所組成的曲線624。第15圖所示為經過20000次模擬後,本方法在100個故障中找到26個。
第14圖與第15圖所顯示的結果示範了本發明在執行時如何自我驗證,即使是使用較差的排序模型,本方法仍舊可以產生有用的結果。在此種情形下,使用者/設計者可清楚地知道本方法沒有在20000個模擬內產生可靠的結果。因此,使用者必需選擇要執行額外的模擬以取得額外的資料,利用其他技術來補強驗證,比如說100萬個蒙地卡羅之後加上外推,或者是重要性取樣,或者是增加邊際以便納入不確定性。使用者也可針對在此所發現的高sigma值邊角(造成故障的製程點),於後續的迭代(iteration)中予以避免。更精確地說,有些造成故障的製程點可作為「邊角(corner)」,在流程中,使用者迭代地改變裝置尺寸,利用線路模擬器模擬這些「邊角」以取得回饋;設計者一旦滿意這些邊角的表現,就可以重新執行本方法以找出新設計的故障率。
在重複迭代中,本方法的一關鍵優勢是能夠評估輸出和樣本收斂曲線的品質,因此不會造成誤解。
第16圖所示為根據本發明的一替代方法/系統實施例之方塊圖。與第2圖比較,替代方法包含更為廣泛的實施方式的選擇。不過二個實施例的相同點在於:一組隨機抽取的樣本會經由排序以便將焦點放在失敗的例子,然後以該順序模擬直到找到所有故障為止。
接下來將討論第16圖的流程。流程從步驟302開始。系統具有如第2圖的先前實施例所述之相同輸入。接著,在步驟304,從描述ECD的製程變異的隨機分布中抽取一組N個樣本(點)。這些樣本可利用蒙地卡羅取樣(也可稱為擬隨機取樣),或準蒙地卡羅取樣(Quasi Monte Carlo,QMC),後者與蒙地卡羅取樣類似之處在於其自機率分布抽取無偏差的樣本(unbiased sample)。QMC不同之處在於其針對在隨機可變空間內產生具有「較佳伸展(better spread)」(較低差異)的樣本,對於相同樣本數來說,在統計預估上所產生的變異較小。QMC取樣技術可包括Halton序列(J. Halton於1960年Numerische Mathematik,2:84-90所提出的以特定準隨機序列點評估多維度積分的效率(On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals.))、Hammersley序列(J. Hammersley於1960年紐約科技學院年報(Annals of NY Academy of Science)86:844-874所提出的以蒙地卡羅方法解決多變數問題(Monte Carlo methods for solving multivariate problems.)),以及諸如此類等等。
在第16圖的步驟306,建立初始的樣本排序模型。每一個感興趣的輸出(效能度量),或替代地每一個輸出的目標(例如遞增順序的最小目標,遞減順序的最大目標,或二者都有)都會建構有一個模型。每一個模型的輸入為變異機率分布的隨機變數。每一個模型的輸出為其模型化的效能值(效能度量值)。模型可以第2圖所示的方法建構,其中包括隨機地選擇N個蒙地卡羅或準蒙地卡羅樣本的子集,加以模擬,並且針對每一效能度量建立一迴歸模型。替代地,在建構模型時可忽略N個蒙地卡羅或準蒙地卡羅樣本,另外創造一組在輸入空間的任何地方的輸入點,模擬這些點,並且建構將這些輸入點映對至模擬的效能值之模型。替代地,每一個模型可以調適的方式加以建構:先選擇一些初始樣本並加以模擬,建構迴歸模型,然後選擇讓迴歸模型具有最高不確定性的新樣本作為輸入點(舉例來說,在高斯程序模型的預測中最高的變異),接著再模擬這些樣本。這個選擇樣本、模擬,然後量測不確定性的週期會一直重複到達成一目標誤差為止。除了將不確定性模型化之外,也可使用其他的準則,像是預測值與模型化不確定性值的加權組合。在任何例子中,在步驟306結束時,會有一組將變異輸入參數映對至效能輸出的迴歸模型。
第16圖流程接著進至步驟308。候選的蒙地卡羅樣本係選自N個蒙地卡羅樣本中還沒有被模擬的。在步驟308,一組Nnext的樣本係以下列方式選擇。針對每一個迴歸模型,每一個候選樣本係以模型模擬以取得預測的效能值,而樣本係以預測的效能值的遞增(遞減)順序排列。每一個輸出(或者是在一輸出中有一個以上的興趣區的情形下,為每一個目標)一個順序所形成的這些順序,會合併為單一順序(例如透過交插(interleaving))。
舉例來說,在有三個目標的例子中,目標1可為ECD的最大功率,目標2為ECD的最低功率,而目標3為ECD的增益。在此範例中,目標1與目標2為功率的分布函數在相對二端的二個興趣區。第17A圖、17B圖,以及17C圖將目標1、2、3以樣本數的函數表示。如果目標1的排序樣本為:s505、s10、s1、s3...,目標2為:s12、s9、s10、s2...,目標3為:s7、s5、s8、s11...,那麼,交插的樣本會是s505、s12、s7、s10、s9、s5、s1、s10、s8、s3、s2、s11等。然而,由於樣本s10出現二次,因此不需要模擬二次,並且可以從交插的樣本清單內刪除。
此外,也可以針對非候選點或排序較後的樣本進行模擬。舉例來說,讓模型具有最多差的新樣本可選為輸入點。這麼做可以讓模型持續改善具有最高不確定性的區域。或者,可隨機選取一些候選點而不加上偏差(而非有排序的偏差)。這麼做可以讓演算法更能達到預期的「最差情形」收斂,就像是「混合」重要性取樣,其藉由從實際分布抽取一部分的樣本,以達到預期的「最差情形」收斂。第一次排序的候選樣本加上額外的點,就成為所選擇的Nnext個樣本。
在第16圖的步驟310,模擬Nnext個樣本。在步驟312,如果有已經找到所有故障的充分信賴或符合另一個停止準則時,取樣和模擬動作就會停止。其他的停止準則包括超過最大執行時間、超過最大樣本數,或者是以目前的模擬結果來看,已經證實或否定可以到達目標良率。
在第16圖的步驟314,利用更新的模擬資料可重新建立一些迴歸模型。這通常是在現有模型在預測輸出值和模擬的輸出值比較有相當大的誤差,而使得預測順序有誤差的情形下進行。
在第16圖,模擬與模型化的結果會被輸出至使用者顯示器318和儲存媒體320,像是一資料庫。在一些情形下,結果會先輸出至儲存媒體,然後傳遞給顯示器。如第2圖所示,顯示器318可顯示模擬的輸出值,有哪些模擬沒通過規格,以及假設已找到所有故障的預估故障率。故障率也可包括上與下信賴區間的預估,舉例來說,以二項式分布的Wilson預估(E.B. Wilson在1927年的美國統計協會年報第22卷209-212頁所發表的可能性推論、接續法則,以及統計推論(Probable inference,the law of succession,and statistical inference,Journal of the American Statistical Association))來計算,或者是其他合適類型的預估。顯示器可顯示每一個輸出或目標的故障率,以及所有輸出的累積(整體故障率)。顯示器可顯示針對每一輸出或整體來說,所有故障都已找到的信賴的預估。顯示器可顯示針對每一輸出或目標(最小、或最大,或二者)來說,模擬輸出值與預測的樣本數之間的關係圖。或者,其可在模擬輸出值與樣本數的圖中顯示模型預測輸出值、模型預測上限(model-predicted upper bound),以及模型預測下限。顯示器也可顯示針對每一輸出和目標的實際樣本數與預測的樣本數的關係圖。顯示器可顯示針對每一輸出和目標的實際與預測的樣本數之間的關聯。顯示器可顯示截至目前為止的所有樣本值的頻率圖,針對一給定的輸出與目標以不同顏色強調預測的最差情形數值。顯示器可以顯示每一輸出、或每一輸出與目標的製程參數之輸出值的靈敏度。顯示器可顯示計算過的曲線尾部的分布;可計算分布的方法可包括極大值理論(Extreme Value Theory),並且建立一個1維模型(1d model),將效能值映對至輸出分位數值(output quantile value)。顯示器可計算每一輸出的分布,不僅是尾部,並予以顯示。連接顯示器的系統可讓使用者選擇任何未通過規格的點,並且將這些點匯出,以便用於其他工具。顯示器可以輸出尾部的目標百分位數值(例如1e-6th和1-1e-6th)計算代表性的隨機點,顯示這些點和它們的輸出值,並且將這些點匯出,以便用於其他工具。
還有另一類似第16圖的替代實施例,其不同點在於每個樣本(變異點)會在一組「最差情形邊角(worst case corner)」上模擬。這些邊角可針對不能控制的變數像是溫度、負載、電源供應電壓,以及像是FF/SS/等模型組所找到的統計變異等建立模型。(CMOS裝置模型的整體製程變數可用來模型化一NMOS元件,並具有高速、低速,或典型行為,及PMOS元件其也可以具有快速、低速,或典型行為。CMOS裝置接著可以在,舉例來說,高速NMOS/高速PMOS(Fast-NMOS/Fast-PMOS,FF)、高速NMOS/低速PMOS(Fast-NMOS/Slow-PMOS,FS)、低速NMOS/高速PMOS(Slow-NMOS/Fast-PMOS,SF)、低速NMOS/低速PMOS(Slow-NMOS/Slow-PMOS,SS)或典型NMOS/典型PMOS(Typical-NMOS/Typical-PMOS,TT)等整體效能邊角上分析。這些整體效能邊角係設計用來歸類一數位電路的速度與功率等關鍵效能特性)。一旦樣本有用這些邊角模擬過後,得到最差情形數值,並且用於模型和其他地方。最差情形運算子(worst-case operator)在目標為最小值時最低(遞增順序),在目標為最大值時最高(遞增順序)。使用者顯示可包括在所有最差情形邊角上顯示結果。
第16圖是進一步的替代實施例,只不過考慮到最差情形時,會有其他不可控制的變異參數,而且它們係作為迴歸模型的額外輸入變數。這些參數可包括溫度、負載、電源供應電壓,以及像是FF/SS/等等的模型組。在第16圖,步驟306係從「最壞情況」變異空間和隨機變異空間的聯集內抽取輸入點,並且建構可以將隨機與最壞情況參數映對至輸出的模型。
本發明的實施例已藉由電路系統(ECD)加以說明。然而,熟悉此技藝者應可了解,本說明書也可應用在電路系統以外的系統。舉例來說,金融系統和天氣系統,還有其他系統,也可以使用在此所述的方法與系統。
在先前的敘述中,為了解釋本發明,因此有提出各種細節,以便完整地了解實施例。然而,熟悉此技藝者應該了解這些特定細節並非必要條件,在其他實例中,已知的電路結構和電路係以方塊圖的形式表示,以免混淆本發明。舉例來說,在此所述的實施例不會特別標明是以軟體程序、硬體電路、韌體,或其他的組合來實施。
本說明書的實施例可以用儲存在機器可讀媒體(或者是電腦可讀媒體、處理器可讀媒體,或具有一電腦可讀程式碼於其上實施之電腦可用媒體)的電腦程式產品來代表。機器可讀媒體可為任何適合的實體非暫態媒體,包括磁性、光學,或電氣儲存媒體,例如磁碟片、光碟唯讀記憶體(CD-ROM)、記憶體裝置(揮發性或非揮發性),或類似的儲存機制。機器可讀媒體可包含不同組的指令、碼序列、組態資訊,或其他資料,在被執行時,可以讓處理器執行如本說明書的實施例所述之方法。熟悉此技藝者應可了解,需用來實施所述型態的其他指令和操作也可儲存在此機器可讀媒體內。儲存在機器可讀媒體內的指令可由處理器或其他合適的處理裝置來執行,並可與電路系統界接以完成所述的任務。第18圖所示為一電腦可讀媒體1000,其上記錄有電腦可用來執行的指令1010,以便實施本說明書的方法。
前述的實施例僅用作舉例。熟悉此技藝者應可在不悖離附屬的申請專利範圍所定義的本發明範疇的情況下,對特定實施力進行各種變更、修改,以及變化。
110...使用者顯示器
220...使用者顯示器
500...下曲線
502...上曲線
504...理想曲線
506...樣本
508...樣本
520...下曲線
522...上曲線
524...理想曲線
610...上曲線
612...理想曲線
614...下曲線
1000...電腦可讀媒體
1010...指令
以下將配合附屬的圖表,藉由範例來說明本發明的實施例。
第1圖所示為預估故障率的先前技術方法;
第2圖所示為本發明的一實施例之方塊圖;
第3圖所示為一位元格電路的位元格電流的分布;
第4圖所示為一位元格電路圖;
第5圖所示為一感測放大器電路圖;
第6圖所示為第4圖的位元格電路圖的輸出電流值的圖;
第7圖所示為第4圖的位元格電路的故障數以樣本數的函數來表示的圖;
第8圖所示為第5圖的感測放大器的感測放大器輸出功率值的圖;
第9圖所示為第5圖的感測放大器的故障數以樣本數的函數來表示的圖;
第10圖所示為第5圖的感測放大器的延遲圖;
第11圖所示為第5圖的感測放大器的故障數以樣本數的函數來表示的圖;
第12圖所示為一正反器電路的Vh值(高電位電壓);
第13圖所示為第12圖的正反器電路的故障數以樣本數的函數來表示的圖;
第14圖所示為Id電流值以正反器電路的樣本數為函數的圖;
第15圖所示為第14圖的正反器電路的故障數以樣本數的函數來表示的圖;
第16圖所示為本發明的另一實施例之方塊圖;
第17A圖至17C所示為目標值以樣本數的函數來表示的通用圖;
第18圖所示為一非暫態實體電腦可讀媒體,其上記錄有電腦可用來執行的指令,以便實施本說明書的方法。
220...使用者顯示器

Claims (18)

  1. 一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件故障之方法,該電路設計具有與其相關之製程變數與效能度量,該等效能度量係由該等製程變數決定,該等製程變數具有一機率分布,該方法包含:由該等製程變數的該機率分布產生一組的點;由該組的點選出一子集的點;針對該子集點的每一點模擬該電路設計以取得模擬資料;根據該模擬資料,計算該子集點的每一點的一效能度量之一數值,用以取得一組效能度量值,該效能度量具有一與其相關之目標值;根據該組效能度量值與用於該子集點的每一點之該等製程變數的數值,建立該效能度量的一模型為該等製程變數的一函數;根據該模型,針對該組的點之剩餘點取得各自的模型化效能度量值,以及排列該剩餘點為其各自的模型化效能度量值的函數,以取得一組排序的剩餘點;以及從來自該組排序的剩餘點的所選排序的剩餘點開始,藉由遞迴地重複以下動作(a)至(e),直到符合一停止條件為止,以顯示電路設計故障的一數目之一計數,用以取得電路設計故障的一顯示計數: (a)模擬該所選排序的剩餘點以取得該所選排序的剩餘點之模擬資料;(b)根據該所選排序的剩餘點之該模擬資料,計算該所選排序的剩餘點的該效能度量之一數值;(c)比較該所選排序的剩餘點的該效能度量之該數值與該目標值;(d)如果該所選排序的剩餘點的該效能度量之該數值不符合該目標值,增加電路設計故障的該顯示計數;以及(e)在動作(a)至(e)的下一遞迴中,使用該組排序的剩餘點中的該下一排序的剩餘點為該所選交插排序的剩餘點。
  2. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該等剩餘點係與該子集的點有區別。
  3. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該組的點之一點總數係以該電路設計的一目標良率來決定。
  4. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該電路設計的一故障率或一良率係根據電路設計故障的數目,以及該組的點之一點總數而預估。
  5. 如申請專利範圍第4項所述之非暫態實體的電腦可讀媒體,其中該方法更包含自動地決定是否有找到所有的電路設計故障。
  6. 如申請專利範圍第4項所述之非暫態實體的電腦可讀媒體,其中該方法更包含針對該電路設計的該故障率或該良率決定一信賴區間。
  7. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該模型為一迴歸模型,其包括一線性模型、一多項式模型、一平滑曲線模型、一高斯程序模型、一神經網路、一多元適應性雲形迴歸模型,以及一快速函數萃取模型的至少其中之一。
  8. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中在動作(a)至(d)重覆一次後,根據所有的模擬點重建該模型,以取得一重建的模型,以及,尚未被模擬的該等點會根據該重建的模型被重新排列。
  9. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,更包含顯示一圖,該圖包括一顯示被模擬的點的該效能度量的該等數值之曲線,以被模擬的該等點的一次序為一函數。
  10. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該方法更包含顯示一圖,該圖包括該效能度量的一機率分布的一曲線。
  11. 如申請專利範圍第10項所述之非暫態實體的電腦可讀媒體,其中該曲線顯示該效能度量的一機率分布的至少一個極端部分。
  12. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中該方法更包含在一由該等製程變數所定義 的空間內取得額外的點,該等額外的點係於該組的點之外。
  13. 如申請專利範圍第12項所述之非暫態實體的電腦可讀媒體,其中該方法更包含:在該等額外的點模擬該電路設計以取得額外的模擬資料;根據該額外模擬資料,計算額外的效能度量值;以及根據該等額外的效能度量值修改該模型。
  14. 如申請專利範圍第12項所述之非暫態實體的電腦可讀媒體,其中該方法更包含:預估該模型的一誤差或不確定性,以取得一預估的誤差或不確定性;以及根據該預估的誤差或不確定性取得該等額外的點。
  15. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中顯示電路設計故障的該數目之該計數包括在一圖中顯示電路設計故障的該數目之該計數。
  16. 如申請專利範圍第1項所述之非暫態實體的電腦可讀媒體,其中由該等製程變數的該機率分布產生該組的點包括對該等製程變數的該機率分布取樣。
  17. 一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件發生之方法,該電路設計具有與其相關之製程變數與效能度量,該效能度量係由該等製程變數決定,該等製程變數具有一機率分布,該方法包 含:由該等製程變數的該機率分布產生一組的點;由該組的點選出一子集的點;針對該子集點的每一點模擬該電路設計以取得模擬資料;根據該模擬資料,計算該子集點的每一點的一效能度量之一數值,用以取得一組效能度量值;根據該組效能度量值與用於該子集點的每一點之該等製程變數的數值,建立該效能度量的一模型為該等製程變數的一函數;根據該模型,針對該組的點之剩餘點取得各自的模型化效能度量值,以及排列該剩餘點為其各自的模型化效能度量值的函數,以取得一組排序的剩餘點;以及從來自該組排序的剩餘點的所選排序的剩餘點開始,藉由遞迴地重複以下動作(a)至(d),直到符合一停止條件為止,以顯示該效能度量的該等數值的一分布的圖,用以取得該顯示的圖:(a)模擬該所選排序的剩餘點以取得該所選排序的剩餘點之模擬資料;(b)根據該所選排序的剩餘點之該模擬資料,計算該所選排序的剩餘點的該效能度量之一數值;(c)將該所選排序的剩餘點的該效能度量之該數值加入該效能度量的該等數值的該分布的 圖;以及(d)在動作(a)至(d)的下一遞迴中,使用該組排序的剩餘點中的該下一排序的剩餘點為該所選排序的剩餘點。
  18. 一種具有其上記錄有指令之非暫態實體的電腦可讀媒體,該等指令係由一電腦執行以實施一用以識別一電路設計(ECD)的稀有事件發生之方法,該電路設計具有與其相關之製程變數與效能度量,該效能度量係由該等製程變數決定,該等製程變數具有一機率分布,該方法包含:由該等製程變數的該機率分布產生一組的點;由該組的點選出一子集的點;針對該子集點的每一點模擬該電路設計以取得模擬資料;根據該模擬資料,針對該電路設計的至少二個該效能度量,計算該子集點的每一點的該至少二個效能度量的每一個之一數值,用以取得至少二組效能度量值,各組效能度量值對應於該至少二個效能度量中對應的一個;根據該至少二組效能度量值以及該子集點的每一點的該等製程變數之該等數值,建立該至少二個效能度量的每一個的一模型為該等製程變數的一函數,該至少二個效能度量的每一個具有與其相關的至少一個目標值;針對各效能度量的目標值,根據該至少二個效能度量的每一個的該模型,針對該組的點之剩餘點取得各自的模 型化效能度量值,以及排列該剩餘點為其各自的模型化效能度量值的函數,以取得多組排序的剩餘點,多組排序的剩餘點的一數目係等於該目標值的一數目,各組排序的剩餘點的次序係依據其相關的目標值來設置;交插該等組的排序的剩餘點,以取得一組交插排序的剩餘點;從該組交插排序的剩餘點的所選交插排序的剩餘點開始,藉由遞迴地重複以下動作(a)至(e),直到符合一停止條件為止,以顯示電路設計故障的一數目之一計數,用以取得電路設計故障的一顯示計數:(a)模擬該所選交插排序的剩餘點以取得該所選交插排序的剩餘點的模擬資料;(b)根據該所選交插排序的剩餘點的該模擬資料,計算該至少二個效能度量的每一個之一計算數值;(c)比較各目標值和與其相關的效能度量的該計算數值(d)針對各目標值,如果該目標值不由其相關的效能度量的該計算數值所符合,增加該等電路設計故障的該顯示計數;以及(e)在動作(a)至(e)的下一遞迴中,使用該組交插排序的剩餘點中的該下一交插排序的剩餘點為該所選交插排序的剩餘點。
TW100139139A 2010-10-27 2011-10-27 識別稀有事件故障率的方法與系統 TWI559156B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US40723010P 2010-10-27 2010-10-27

Publications (2)

Publication Number Publication Date
TW201237647A TW201237647A (en) 2012-09-16
TWI559156B true TWI559156B (zh) 2016-11-21

Family

ID=45994472

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100139139A TWI559156B (zh) 2010-10-27 2011-10-27 識別稀有事件故障率的方法與系統

Country Status (6)

Country Link
US (1) US9483602B2 (zh)
JP (1) JP5860054B2 (zh)
KR (1) KR101904518B1 (zh)
DE (1) DE112011103563T8 (zh)
TW (1) TWI559156B (zh)
WO (1) WO2012055045A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698807B (zh) * 2016-12-21 2020-07-11 瑞典商安訊士有限公司 以類別為基礎修剪之人工類神經網路

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120046929A1 (en) * 2010-08-20 2012-02-23 International Business Machines Corporation Statistical Design with Importance Sampling Reuse
CN102760208B (zh) * 2012-07-03 2015-07-29 清华大学 基于模拟疫苗的动态人工免疫故障诊断方法
US8819605B1 (en) * 2013-03-06 2014-08-26 Oracle International Corporation Deriving effective corners for complex correlations
US8954910B1 (en) 2013-03-14 2015-02-10 Cadence Design Systems, Inc. Device mismatch contribution computation with nonlinear effects
US8813009B1 (en) * 2013-03-14 2014-08-19 Cadence Design Systems, Inc. Computing device mismatch variation contributions
US9460243B2 (en) * 2013-03-15 2016-10-04 International Business Machines Corporation Selective importance sampling
US8806418B1 (en) 2013-06-19 2014-08-12 Freescale Semiconductor, Inc. Scaled sigma sampling
US20150051869A1 (en) * 2013-08-16 2015-02-19 International Business Machines Corporation Method for relating test time and escape rate for multivariate issue
US11093851B2 (en) * 2013-09-18 2021-08-17 Infineon Technologies Ag Method, apparatus and computer program product for determining failure regions of an electrical device
WO2015058310A1 (en) * 2013-10-24 2015-04-30 Solido Design Automation Inc. Method and system of fast nested-loop circuit verification for process and environmental variation and hierarchical circuits
US9753895B2 (en) * 2014-02-28 2017-09-05 Taiwan Semiconductor Manufacturing Co., Ltd. Method for process variation analysis of an integrated circuit
US10452793B2 (en) 2014-08-26 2019-10-22 International Business Machines Corporation Multi-dimension variable predictive modeling for analysis acceleration
US10387596B2 (en) * 2014-08-26 2019-08-20 International Business Machines Corporation Multi-dimension variable predictive modeling for yield analysis acceleration
CN105447222B (zh) * 2014-09-22 2018-09-25 台湾积体电路制造股份有限公司 用于集成电路的工艺变化分析的方法
US20160116527A1 (en) * 2014-10-27 2016-04-28 Qualcomm Incorporated Stochastic and topologically aware electromigration analysis methodology
US9524365B1 (en) * 2014-12-23 2016-12-20 Cadence Design Systems, Inc. Efficient monte carlo flow via failure probability modeling
WO2016133523A1 (en) * 2015-02-19 2016-08-25 Hewlett Packard Enterprise Development Lp Post-sampling conflict detection
US9836564B1 (en) * 2015-04-09 2017-12-05 Cadence Design Systems, Inc. Efficient extraction of the worst sample in Monte Carlo simulation
US10565657B2 (en) 2015-10-02 2020-02-18 Engie Storage Services Na Llc Methods and apparatuses for risk assessment and insuring intermittent electrical systems
US20170099056A1 (en) * 2015-10-02 2017-04-06 Green Charge Networks Llc Demand reduction risk modeling and pricing systems and methods for intermittent energy generators
US9805158B1 (en) * 2015-11-16 2017-10-31 Cadence Design Systems, Inc. Efficient extraction of K-sigma corners from Monte Carlo simulation
US9928131B2 (en) * 2015-12-17 2018-03-27 General Electric Company System and method for detection of rare failure events
US10204200B2 (en) * 2016-06-29 2019-02-12 Oracle International Corporation Variation-aware design analysis
US11340977B2 (en) 2017-01-11 2022-05-24 International Business Machines Corporation Predictive analytics for failure detection
US10776548B1 (en) * 2017-03-28 2020-09-15 Cadence Design Systems, Inc. Parallel Monte Carlo sampling for predicting tail performance of integrated circuits
US11003737B2 (en) 2017-04-12 2021-05-11 Samsung Electronics Co., Ltd. Generic high-dimensional importance sampling methodology
US10999652B2 (en) 2017-05-24 2021-05-04 Engie Storage Services Na Llc Energy-based curtailment systems and methods
JP6874238B2 (ja) * 2017-06-30 2021-05-19 日本電気株式会社 光学系設計支援システム、光学系設計支援方法および光学系設計支援プログラム
US10658841B2 (en) 2017-07-14 2020-05-19 Engie Storage Services Na Llc Clustered power generator architecture
KR102578644B1 (ko) 2017-08-30 2023-09-13 삼성전자주식회사 반도체 집적회로의 수율 예측 장치, 및 이를 이용한 반도체 장치 제조 방법
DE102019106996A1 (de) 2018-03-26 2019-09-26 Nvidia Corporation Darstellen eines neuronalen netzwerks unter verwendung von pfaden innerhalb des netzwerks zum verbessern der leistung des neuronalen netzwerks
US11507846B2 (en) * 2018-03-26 2022-11-22 Nvidia Corporation Representing a neural network utilizing paths within the network to improve a performance of the neural network
US10853550B1 (en) 2018-07-03 2020-12-01 Cadence Design Systems, Inc. Sampling selection for enhanced high yield estimation in circuit designs
EP3850495A1 (en) * 2018-09-11 2021-07-21 Technische Universität Wien Computer-implemented method and electronic device for detecting influential components in a netlist representing an electrical circuit
KR102103578B1 (ko) * 2018-11-28 2020-04-23 (주)밸류파인더스 몬테카를로 유전자 알고리즘을 사용한 포트폴리오 자산 선택방법
CN111584063B (zh) * 2019-02-15 2023-11-10 宏碁股份有限公司 不同分组集合下的评估统计效能的方法
WO2020182992A1 (en) 2019-03-14 2020-09-17 Xenergic Ab High-dimensional multi-distributed importance sampling for circuit yield analysis
US11487917B2 (en) * 2019-04-22 2022-11-01 Autodesk, Inc. Automatic design of mechanical assemblies using estimation of distribution algorithm
US10852351B1 (en) 2019-05-30 2020-12-01 International Business Machines Corporation Iterative approach to determine failure threshold associated with desired circuit yield in integrated circuits
US10891415B1 (en) 2019-06-05 2021-01-12 Cadence Design Systems, Inc. Method, system, and product for generating radial bump patterns
US10762166B1 (en) 2019-06-07 2020-09-01 International Business Machines Corporation Adaptive accelerated yield analysis
US10878156B1 (en) * 2019-12-27 2020-12-29 Silvaco France Probabilistic simulation method of a microelectronic device
WO2021168231A1 (en) * 2020-02-21 2021-08-26 Synopsys, Inc. Automatic test pattern generation (atpg) for parametric faults
CN111553611B (zh) * 2020-05-08 2023-05-23 中国科学院微电子研究所 一种获取设计良率的方法及装置
US11036908B1 (en) 2020-06-08 2021-06-15 Apex Semiconductor Techniques for simulation-based timing path labeling for multi-operating condition frequency prediction
EP4292009A1 (en) * 2021-03-12 2023-12-20 Siemens Industry Software Inc. Variability characterization with truncated ordered sample simulation
US11774498B2 (en) * 2021-06-07 2023-10-03 International Business Machines Corporation Multi-rate sampling for hierarchical system analysis
CN113433913B (zh) * 2021-07-06 2023-03-24 上海新氦类脑智能科技有限公司 系统监测模型生成及监测方法、处理器芯片以及工业系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060203581A1 (en) * 2005-03-10 2006-09-14 Joshi Rajiv V Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions
US20080195325A1 (en) * 2006-03-14 2008-08-14 Joshi Rajiv V System and computer program for efficient cell failure rate estimation in cell arrays
US20090248387A1 (en) * 2008-03-28 2009-10-01 Carnegie Mellon University Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems
TW201009368A (en) * 2008-07-21 2010-03-01 Synopsys Inc Test design optimizer for configurable scan architectures

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892366B1 (en) * 2001-08-28 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for performing extraction using a model trained with Bayesian inference via a Monte Carlo method
JP5176895B2 (ja) * 2008-11-18 2013-04-03 富士通株式会社 Sram形状パラメータ等の多目的最適化設計支援装置、方法、及びプログラム
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
JP2011113291A (ja) * 2009-11-26 2011-06-09 Fujitsu Semiconductor Ltd 半導体装置の動作シミュレーション方法、測定データ取得方法、及び回路設計方法
US8195427B2 (en) * 2009-12-23 2012-06-05 Cadence Design Systems, Inc. Methods and systems for high sigma yield estimation using reduced dimensionality
JP5482562B2 (ja) * 2010-08-17 2014-05-07 富士通株式会社 回路性能見積装置、回路性能見積方法及び回路性能見積プログラム
US20140173535A1 (en) * 2012-12-17 2014-06-19 International Business Machines Corporation Analysis of chip-mean variation and independent intra-die variation for chip yield determination

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060203581A1 (en) * 2005-03-10 2006-09-14 Joshi Rajiv V Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions
US20080195325A1 (en) * 2006-03-14 2008-08-14 Joshi Rajiv V System and computer program for efficient cell failure rate estimation in cell arrays
US20090248387A1 (en) * 2008-03-28 2009-10-01 Carnegie Mellon University Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems
TW201009368A (en) * 2008-07-21 2010-03-01 Synopsys Inc Test design optimizer for configurable scan architectures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698807B (zh) * 2016-12-21 2020-07-11 瑞典商安訊士有限公司 以類別為基礎修剪之人工類神經網路

Also Published As

Publication number Publication date
WO2012055045A3 (en) 2012-06-21
TW201237647A (en) 2012-09-16
US9483602B2 (en) 2016-11-01
KR20140024252A (ko) 2014-02-28
WO2012055045A2 (en) 2012-05-03
DE112011103563T5 (de) 2013-08-22
KR101904518B1 (ko) 2018-10-04
JP5860054B2 (ja) 2016-02-16
DE112011103563T8 (de) 2013-11-21
JP2013542526A (ja) 2013-11-21
US20130226544A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
TWI559156B (zh) 識別稀有事件故障率的方法與系統
US7243320B2 (en) Stochastic analysis process optimization for integrated circuit design and manufacture
US10514973B2 (en) Memory and logic lifetime simulation systems and methods
US8155938B2 (en) Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems
US8005660B2 (en) Hierarchical stochastic analysis process optimization for integrated circuit design and manufacture
US10387596B2 (en) Multi-dimension variable predictive modeling for yield analysis acceleration
US10713405B2 (en) Parameter generation for semiconductor device trapped-charge modeling
US7630852B1 (en) Method of evaluating integrated circuit system performance using orthogonal polynomials
US8813009B1 (en) Computing device mismatch variation contributions
WO2016030938A1 (ja) シミュレーションシステム、及びシミュレーション方法
US20040236559A1 (en) Statistical approach for power estimation
US10331823B2 (en) Method and system of fast nested-loop circuit verification for process and environmental variation and hierarchical circuits
Krishnan et al. Stochastic behavioral modeling of analog/mixed-signal circuits by maximizing entropy
US20110257943A1 (en) Node-based transient acceleration method for simulating circuits with latency
Shi et al. A compact high-dimensional yield analysis method using low-rank tensor approximation
El-Adawi et al. Monte Carlo general sample classification for rare circuit events using Random Forest
Lahiouel et al. Accelerated and reliable analog circuits yield analysis using SMT solving techniques
Kanoria et al. Statistical static timing analysis using Markov chain Monte Carlo
Rosenthal et al. Drift-aware ensemble regression
Jonsson et al. Rare event simulation for electronic circuit design
JP5045319B2 (ja) エラー信号パルス幅の計算方法及びプログラム
Pendyala et al. Self similarity and interval arithmetic based leakage optimization in RTL datapaths
Kwon et al. Additive Statistical Leakage Analysis Using Exponential Mixture Model
Sabet et al. Statistical soft error rate estimation of combinational circuits using Bayesian networks
Shoniker Accelerated verification of integrated circuits against the effects of process, voltage and temperature variations