TW201525742A - 用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路 - Google Patents

用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路 Download PDF

Info

Publication number
TW201525742A
TW201525742A TW103136792A TW103136792A TW201525742A TW 201525742 A TW201525742 A TW 201525742A TW 103136792 A TW103136792 A TW 103136792A TW 103136792 A TW103136792 A TW 103136792A TW 201525742 A TW201525742 A TW 201525742A
Authority
TW
Taiwan
Prior art keywords
tuple
ecd
performance metric
tuples
sub
Prior art date
Application number
TW103136792A
Other languages
English (en)
Inventor
Trent Lorne Mcconaghy
Joel Cooper
Jeffrey Dyck
Megan Marsh
Original Assignee
Solido Design Automation Inc
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 Solido Design Automation Inc filed Critical Solido Design Automation Inc
Publication of TW201525742A publication Critical patent/TW201525742A/zh

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一種電腦實施的方法,當電路結構的變化分析層級地構成巢狀迴路時,快速分析處理效果、電壓、溫度、及其它變化。方法具有二主步驟:第一,其有層級地產生處理點以及將它們插入元組的展開清單,其中,各元組含有來自迴路層級中各層的點。第二,借助於模型化以將元組排序來模擬,其有效率地辨識及模擬失敗元組。藉由使用本方法,設計者不必在各別及每一統計處理點或PVT角落模擬全部電路設計,而節省可觀的時間或計算資源。

Description

用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路
本揭示大致上關於電路設計。更特別地,本揭示關於在統計處理變化、電壓變化及溫度變化之下設計電路。特別有利於例如記憶體行及記憶體陣列等層級組織電路的驗證、以及有利於具有大數目的電壓/溫度(VT)角落之電路的靜態分析。
處理變化、及電壓和溫度變化是會使積體電路的性能、電力、面積、及產能變差之不可控制的因素。為了設計具有可接受的功率、性能、面積及產能之電路,電路設計者必須以積極的時程來管理大電路上的這些變化。「變化感知」工具係幫助設計者達成這些目的,且包含蒙地卡羅(Monte Carlo)取樣器、以及很多更進階的工具。
目前可取得的變化感知設計工具無法處理:(a)統計處理變化,(b)電路作業環境的電壓、溫度、及其它 未受控因素(「環境變化」),(c)超大型電路,通常是層級組織的,(d)具有很低的故障機率之電路,以及(e)數佰、數仟或更多的電壓及溫度(VT)角落。
因此,需要改良變化感知設計。
在第一態樣中,提供電腦實施的方法,以辨識ECD的失敗,ECD界定眾多子電路,各子電路是相同的,ECD與全區處理變數相關連,各子電路與子電路處理變數相關連,各子電路與性能度量相關連,性能度量係取決於全區處理變數以及取決於子電路處理變數,ECD具有取決於性能度量之失敗度量,全區處理變數與全區處理變數的機率分佈相關連,子電路處理變數與子電路處理變數的機率分佈相關連。電腦實施的方法包括:從全區處理變數的機率分佈產生全區處理點組;從子電路處理變數的機率分佈產生子電路處理點組;藉由合併全區處理點組的各點與子電路處理點組的各點,產生元組集合,各元組包括一全區處理點及一第一子電路處理點;在選取的元組,模擬子電路中之一以取得模擬資料,非模擬的元組是餘留元組;根據模擬資料,對各選取的元組,計算子電路的模擬性能度量值;根據模擬的性能度量值,視全區處理變數及子電路處理變數的作用而建立性能度量的模型;根據模型,計算用於各餘留的元組之模型化的性能度量值;視模型化的性能度量值之作用而排序餘留的元組以取得排序的餘留元組; 藉由下述,計算多個ECD失敗:選取預定數目的排序餘留元組以取得被選取的排序餘留元組,被選取的排序餘留元組比未被選取的排序餘留元組中的任何元組具有更差的模型化性能度量值;在被選取的排序餘留元組模擬子電路以取得增加的模擬資料;視增加的模擬資料之作用,對各被選取的排序餘留元組,計算子電路性能度量的性能度量值;比較被選取的排序餘留元組中的各元組的性能度量值與性能度量的目標值;以及,當被選取的排序餘留元組的性能度量值未符合性能度量的目標值時,使ECD失敗次數增量一;以及,顯示多個ECD失敗中至少之一以及評估的ECD產能,評估的ECD產能是ECD失敗的次數的函數。
在第二態樣中,提供電腦實施的方法,以辨識ECD的失敗,ECD與全區處理變數、環境變數、及性能度量相關連,性能度量係取決於處理變數以及環境變數,環境變數與預定角落系列相關連,處理變數具有機率分佈。電腦實施的方法包括:從處理變數的機率分佈產生處理點組;藉由合併處理點組的各點與各預定角落,產生元組集合,各元組包括處理點組中之一處理點及一預定角落;在選取的元組,模擬ECD以取得模擬資料,非模擬的元組是餘留元組;根據模擬資料,對各選取的元組,計算模擬性能度量值;根據模擬的性能度量值,視處理變數及環境變數的作用而建立性能度量的模型;根據模型,計算用於各餘留的元組之模型化的性能度量值;視模型化的性能度量值 之作用而排序餘留的元組以取得排序的餘留元組;藉由下述,計算多個ECD失敗:選取預定數目的排序餘留元組以取得被選取的排序餘留元組,被選取的排序餘留元組比未被選取的排序餘留元組中的任何元組具有更差的模型化性能度量值;在被選取的排序餘留元組模擬ECD以取得增加的模擬資料;視增加的模擬資料之作用,對各被選取的排序餘留元組,計算性能度量值;比較各被選取的排序餘留元組的性能度量值與性能度量的目標值;以及,當被選取的排序餘留元組的性能度量值未符合性能度量的目標值時,使ECD失敗次數增量一;以及,顯示多個ECD失敗中至少之一以及評估的ECD產能,評估的ECD產能是ECD失敗的次數的函數。
審視配合附圖之下述特定實施例的說明,習於此技藝者將清楚本揭示的其它態樣及特點。
20‧‧‧電路設計
22‧‧‧處理變數
24‧‧‧環境變數
30‧‧‧性能度量
參考附圖,僅為舉例地說明本揭示的實施例。
圖1顯示電路設計的方塊圖。
圖2顯示根據本揭示的電腦實施方法之實施例的流程圖。
圖3顯示根據本揭示的電腦實施方法之另一實施例的流程圖。
圖4顯示根據圖3的電腦實施方法之排序的元組。
圖5顯示記憶體陣列的層級組織實例。
圖6顯示根據本揭示的電腦實施的方法之又另一實施例。
圖7顯示根據圖6的電腦實施的方法之排序的元組。
圖8顯示根據本揭示的電腦實施的方法之另外實施例。
一般而言,本揭示於在統計處理變化之下及在電壓和溫度變化之下分析電路。對於例如記憶體行及記憶體陣列等層級組織電路之驗證是特別有利的,以及對於具有大數目的電壓/溫度(VT)角落之電路統計分析是特別有利的。方法具有二主要步驟:第一,其有層級地產生處理點及/或VT點組,以及將它們插入元組的展開清單,其中,各元組含有來自迴路層級中各層的點。第二,藉由模型化成將元組排序來模擬,其有效率地辨識及模擬失敗元組。
圖1顯示代表(ECD)20的方塊圖,ECD 20與處理變數22及環境變數24相關連。處理變數22本質上是隨機的及與製造ECD時涉及的處理步驟有關。舉例而言,這些變數包含最終影響ECD的電特徵及性能度量之閘極氧化物厚度、基底摻雜濃度、片電阻、遷移率、及裝置長度和寬度的波動。各處理變數具有說明處理變數分佈之相關連分佈。ECD具有與其相關連的說明「n」處理變數之n維度分佈。分佈可為高斯形狀或是任何其它適當形狀。環境變數24包含ECD操作所需的環境條件。環境變數的 實例包含電壓、溫度、電阻/電容器寄生、功率設定、等等。ECD 20也具有預定角落26的集合,說明ECD應符合規格之極端環境點。ECD 20也顯示為具有性能度量30,性能度量30可為處理變數22及環境變數24的函數。性能度量的實例包含功率消耗、讀取電路、增益、等等。
圖2顯示根據本揭示的實施例之辨識ECD失敗之電腦實施方法。在動作40,產生ECD的處理點組。藉由處理變數的機率分佈之取樣(例如蒙地卡羅(Monte Carlo)取樣),達成此點。機率分佈將具有等於處理變數的數目之維度。
在動作42,產生元組集合,各元組包括在動作40產生的處理點,以及ECD的環境預定角落(請參見圖1的代號26)。產生的元組之總數等於在動作40產生的處理點之數目乘以環境角落的數目之乘積。
在動作44,在被選取之動作44產生的選取的元組,模擬ECD。被選取的元組的數目小於元組總數。舉例而言,元組數目的範圍從10-100。元組的選取可以根據元組的處理變數值及/或環境角落值。舉例而言,元組的選取可以根據小於臨界值的處理變數值(機率值)。替代地,在其它實施例中,元組的選取可以根據圍繞環境角落點的平均值均等地散佈之環境角落點。使用例如SPICE電路模擬器(SPICE:積體電路為重點的模擬程式)等任何適當的模擬程式,執行ECD的模擬。在動作46,對在動作44 模擬的各元組,計算ECD的性能度量值。性能度量與必須符合的目標性能度量值相關連,以便ECD通過測試,否則,ECD失敗。ECD典型地將具有相關連的性能度量系列,以及,為了ECD通過測試,ECD必須使所有性能度量符合它們的各別目標性能度量值。
在動作48,根據在動作46取得的性能度量值,建立視處理變數及環境變數作用之ECD的性能度量的迴歸模型。迴歸模型可為任何適當型式,例如線性模型、多項式模型、樣條模型、高斯處理模型、神經網路、MARS模型(J.H.Friedman,Multivariate Adaptive Regression Splines,Annals of Statistics,Vol.19,No.1,1991)、快速函數抽取(FFX)模型(T.McConaghy,High-dimensional statistical modeling and analysis of custom integrated circuits,Proc.Custom Integrated Cirsuits Conference,Sept.2011)、或其組合;這些都在本揭示的範圍之內。
在動作50,視模型的作用而將在動作48中未被用於建立模型之元組排序。亦即,以模型計算各元組的性能度量值,以及,根據元組的模型化性能度量值,將元組排序。排序是相對於目標性能度量值而從最差至最佳。
動作52-60是要計算ECD失敗的次數。在動作52,選取排序的元組之批次(例如10-1000元組)。從在動作48中未被用以建立模型之元組中選取這些排序的元組。這些元組的選取是根據哪些餘留元組(未被用以建立模型的元組)具有最差的性能度量值。舉例而言,當餘留元組 從具有最差模型性能度量值開始而以遞減次序排序時,則選取前10-1000(舉例而言)。在動作54,在動作52中選取的元組,模擬ECD,以及,在動作56,計算在這些模擬的元組之ECD的性能度量值。在動作58,比較這些計算的值與目標性能度量值。在動作60,每當元組無法符合目標性能度量值時,更新ECD的失敗實例次數。
在動作62,顯示ECD失敗及/或ECD產能。這發生於操作上連接至處理器或正執行動作40-62的處理器之顯示裝置上。
在圖2中所示的方法也包含動作64,決定是否符合停止準則。當符合停止準則時,方法在動作66結束。當不符合停止準則時,方法迴歸至動作52,在動作52,選取下一批排序的餘留元組。舉例而言,假使第一批排序的餘留元組含有元組1-100時,則下一批次將包含元組101-200。停止準則的實例包含:方法的使用者停止電腦實施的方法;模擬次數(元組次數)超過模擬的臨界數目;電腦實施的方法之運行時間超過最大運行時間;ECD失敗的次數超過最大值;評估的產能之下限高於臨界值;ECD的評估的產能之上限低於臨界值;等等。選加地,接續在動作64中未符合停止準則之後,使用在動作54取得之模擬資料,更新在動作48建立的模型。在動作50,視更新的模型之作用,將當時的餘留元組排序,以及,電腦實施的方法繼續進行至動作52以及下列等等。
圖3顯示根據本揭示之辨識ECD的失敗之電腦實施 的方法之另一實施例的流程圖,在二巢狀迴路的情形中,外迴路進行蒙地卡羅取樣,以及,內迴路遮蓋VT預定角落。動作800至835執行第一主步驟,第一主步驟是要產生所有元組Tall的清單。動作870至895執行第二主步驟,以有效率地辨識及模擬失敗的元組(Tall的子集合)。
動作800將Tall初始化成為空的元組清單。在動作801,外迴路疊代遍及處理點組,其中,從說明處理變化的統計分佈取出各處理點Ai(動作805)。內迴路疊代遍及角落(動作810及815),其中,從預定的PVT角落清單取出各角落Bj。在此內迴路之內,建構含有處理點Ai及角落Bj之元組;然後,此元組加至元組Tall清單。對各角落重複此內迴路直到所有角落都被涵蓋為止,如同由動作825測試般。對各處理點重複外迴路直到所有處理點都被涵蓋為止,如同由動作835測試般。
在圖3的動作870中,以來自某些引示模擬之資料,建立初始模型。有各式各樣的方式來實施動作870。一方式是從Tall選取例如Npilot=1000、或是最遠離額定的(對於處理點的情形)或是典型的(對於PVT角落的情形)元組。然後,模擬這些Npilot元組。最後,建構迴歸模型M,迴歸模型M係將元組中所有變數(處理變數及環境變數)的聯集AUB映射至輸出V,亦即,M=AUB→V。對動作870的另一方式是從Tall中連續地取出及模擬樣本,從Tall中最遠離的額定/典型點開始,然後是次最遠點、等 等,直到符合停止準則為止(舉例而言,當發現五個失敗為止)。第二方式是建立分類器模型M,分類器模型M將元組AUB中所有的變數對映至離可行的/不可行的邊界的距離d,亦即,M=AUB→d。模型的型式可以與用於圖3的電腦實施方法相同。
在圖3的方式中,下一動作875使用模型M以從所有產生的處理點Tall選擇Nnext點。典型地,藉由使各元組運行經過模型M而達成此點,以取得輸出值V的評估。然後,將Tall中所有的元組從V的最差評估值至最佳值排序。在該清單的前方之Nnext點(不是先前被選取的)是被選取的元組Tnext。然後,動作880模擬Tnext中的各元組以產生用於各元組的輸出值Vnext。動作885以例如產能=(1.0-NF/NA)*100%來評估產能,其中,NF是具有失敗的性能規格之不同處理點的數目以及NA是處理點的總數。明確而言:即使相同處理點在一個以上的角落上失敗,則當評估產能時,其仍然僅計數為一失敗。動作890根據停止準則而決定是否停止、或繼續。停止準則的一實例是最大數目的模擬,例如10K模擬。假使其未停止,則動作895建立併入最近的模擬及先前的模擬之新模型,以及,電腦實施方法迴歸至動作875。
圖4顯示圖3的電腦實施方法的行為態樣。圖4在底部顯示所有可能的元組Tall之清單在數目上可為數佰萬或數十億。圖4的頂部顯示圖3的電腦實施方法將這些樣本(元組)排序,以致於首先模擬模型預測的最差元組(處 理點#A.722,PVT角落#B.453),接著模擬模型預測的次最差元組(處理點#A.937,PVT角落#B.192)、等等。
圖3及4顯示具有二巢狀迴路之本揭示的電腦實施方法之實施例,其中,各元組含有二點(一點是處理變數點,另一點是環境角落點)。如同下述進一步說明般,本揭示也可應用至具有二個以上的巢狀迴路之電腦實施方法,其中,各元組含有二個以上的點。
下述實施例利用例如顯示記憶體陣列440的層級組織之圖5的ECD等ECD之層級組織。在記憶體層級的最低層級是位元胞400,其固持單一位元資訊。然後,位元胞組(例如1000列的價值)組織成單一行410。在行中有其它電路,例如感測放大器(420)。行組(例如約當1000行的價值)組織成整體記憶體陣列430。在陣列層級也可有其它電路。在行中的位元胞的數目、以及在列中的位元胞的數目取決於陣列需要固持的位元數目、及其它設計選擇,例如冗餘列數目、冗餘行數目、錯誤校正的型式、位元胞拓蹼選擇、及感測放大器拓蹼選擇。雖然有如何層級地組織記憶體電路/記憶體架構之其它變異,我們仍然將使用此組織作為原型實例,而不會損失一致性。
圖5也顯示處理點樣本的層級等級。在外等級(等級A),讓我們考慮多個晶粒(例如5000)之製造。這數量上達到整個陣列440有5000個複製品。裡面的一層是層B,在此層中,我們一次考慮一行410。一或更多裡面層是層C,在此層中,我們一次考慮一位元胞400。如同將 簡述般,層A、B、及C可用以形成蒙地卡羅取樣的三個巢狀迴路。我們甚至考慮四個巢狀迴路層D,在層D中,我們將考慮跨越>1 PVT角落之效果。
圖6是根據本揭示之辨識ECD的失敗之電腦實施的方法的另一實施例之流程圖。參考圖5的ECD,說明圖6的電腦實施的方法,其具有四個巢狀迴路,以及各元組均含有四個點。最外迴路對製造陣列440進行蒙地卡羅取樣,次內迴路對行410進行蒙地卡羅取樣(感測放大器420),下一內迴路對位元胞400進行蒙地卡羅取樣,以及,最內迴路涵蓋PVT角落。動作1000至1035執行第一主步驟以產生所有元組Tall的清單。動作1070至1095執行第二主步驟,以有效率地辨識及模擬失敗的元組(Tall的子集合)。圖6的行為類似於圖4的行為,但是現在各元組具有四個點而非二個點除外。
重要地,基於速度原因,在動作1070及1080的模擬不需要在整個陣列440的層級(亦即,整個ECD不需要被模擬),但是,取代地可以是在更小、更快速模擬的電路(ECD的子電路),以足夠的準確度捕捉Ai、Bj、Ck及Dl的效果。舉例而言,以單一位元胞及單一感測放大器(位元胞及感測放大器界定子電路),在網路連線表上模擬,這在單一核心上可能僅耗費0.5 s來模擬。關於特定實例,可以在含有位元胞及感測放大器之網路連線表上模擬讀取操作,以及,假使讀取操作成功時,輸出「1」之「bitcell_read_success_at_PVT」值,假使不成功,則 輸出「0」。在本實例中,讀取操作是子電路的(ECD的)性能度量,ECD根據子電路的性能度量之性能度量值而通過或失敗。替代地,模擬可以是在5或10位元胞的小組上,僅以一位元胞依據Dl而變(在本實例中,5或10位元胞界定ECD的子電路)。替代地,模擬可以是整個行(整個行是ECD的子電路),以僅一位元胞根據Dl而變。如同習於此技藝者將瞭解般,這些選項中的各選項在速度與準確度之間不同地取捨。
圖7顯示圖6的發明之行為態樣。圖7在底部顯示數目上可為數佰萬或數十億所有可能的元組Tall之清單。圖7在頂部顯示本發明將這些元組排序,以致於首先模擬模型預測的最差元組(點#A.722、點#B.453、點#C.941、點#D.909),接著模擬模型預測的次最差元組(點#A.937、點#B.192、點#C.441、點#D.869)、等等。
圖6的電腦實施方法典型上將僅需要數千個模擬以分析數以百萬或十億計的元組。其準確地捕捉統計變化。其良好地比例化至大數目的處理變數(10K或更多)。此外,與圖6的先前技術方式不同,圖6的電腦實施方式對>1 PVT角落工作。最後,由於其將它的模擬著重於最可能是最差情形之元組,所以,其自然地操作大數目的處理點或是大數目的PVT角落。因此,與先前技術的方式不同,本發明能夠處理實施方式中所提出的五種挑戰。
圖8是根據本揭示之辨識ECD的失敗之電腦實施方法的另一實施例之流程圖。討論的ECD界定相同的眾多 子電路。亦即,ECD具有多個子電路實例。ECD與全區處理變數相關連以及各子電路與子電流處理變數相關連。 各子電路與取決於全區處理變數及子電路處理變數之性能度量相關連。ECD具有取決於性能度量的失敗準則。亦即,假使子電路的性能度量無法符合目標性能度量值,則ECD失敗。全區處理變數與機率分佈相關連,以及,子電路處理變數與各機率分佈相關連。
在動作1100,產生全區處理點組。藉由取樣(例如,使用蒙地卡羅取樣)全區處理點的機率分佈,可達成此點。
在動作1102,產生子電路處理點組。藉由取樣(例如,使用蒙地卡羅取樣)子電路處理點的機率分佈,可達成此點。
在動作1104,藉由合併在動作1000產生的全區處理點組的各點與在動作1102產生的子電路點組的各點,產生元組集合。產生之元組的總數等於在動作1100產生的全球處理點的數目乘以在動作1102產生的子電路處理點的數目之乘積。
在動作1106,在動作44產生的的選取的元組模擬子電路。所選取的元組數目小於全部元組的數目。舉例而言,元組的數目範圍從10-100。元組的選取可以根據元組的全區處理變數值及/或子電路處理變數。舉例而言,元組的選取可以根據低於臨界值的全區處理變數值(機率值)。替代地,元組的選取可以根據在各別臨界值之下的 子電路處理變數值。使用例如SPICE電路模擬器等任何適當的模擬程式,實施子電路的模擬。在動作1108,對在動作1106模擬之各元組,計算子電路的性能度量值。性能度量與目標性能度量值相關連,ECD(及子電路)通過測試必須符合目標性能度量值,否則,ECD失敗。
在動作1110,根據在動作1108取得的性能度量值,建立視處理變數及環境變數而作用之子電路的性能度量的迴歸模型。迴歸模型可為任何適當型式,例如線性模型、多項式模型、樣條模型、高斯處理模型、神經網路、MARS模型(J.H.Friedman,Multivariate Adaptive Regression Splines,Annals of Statistics,Vol.19,No.1,1991)、快速函數抽取(FFX)模型(T.McConaghy,High-dimensional statistical modeling and analysis of custom integrated circuits,Proc.Custom Integrated Cirsuits Conference,Sept.2011)、或其組合;這些都在本揭示的範圍之內。
在動作1112,視模型的作用而將在動作1110建立模型時未被使用的元組排序。亦即,以模型計算各元組的性能度量,以及,根據它們的模型性能度量值而將元組排序。排序是相對於目標性能度量而從最差性能度量值至最佳性能度量值。
動作1114-1122是要計算ECD失敗的數目。在動作1114,選取排序的元組之批次(例如10-1000元組)。從在動作1110中未被用以建立模型之元組中選取這些排序 的元組。這些元組的選取是根據哪些餘留元組(未被用以建立模型的元組)具有最差的性能度量值。舉例而言,當餘留元組從具有最差模型性能度量值開始而以遞減次序排序時,則選取前10-1000(舉例而言)。在動作1116,在動作1114中選取的元組,模擬子電路,以及,在動作1118,計算電路的性能度量值。在動作1120,比較這些計算的值與目標性能度量值。在動作1122,每當元組無法符合目標性能度量值時,更新ECD的失敗實例次數。
在動作1124,顯示ECD失敗及/或ECD產能。這發生於操作上連接至處理器或正執行動作40-62的處理器之顯示裝置上。
在圖8中所示的方法也包含動作1126,決定是否符合停止準則。當符合停止準則時,方法在動作1128結束。當不符合停止準則時,方法迴歸至動作1114,在動作1114,選取下一批排序的餘留元組。舉例而言,假使第一批排序的餘留元組含有元組1-100時,則下一批次將包含元組101-200。停止準則的實例包含:方法的使用者停止電腦實施的方法;模擬次數(元組次數)超過模擬的臨界數目;電腦實施的方法之運行時間超過最大運行時間;ECD失敗的次數超過最大值;評估的產能之下限高於臨界值;ECD的評估的產能之上限低於臨界值;等等。選加地,接續在動作1126中未符合停止準則之後,使用在動作1118取得之模擬資料,更新在動作1110建立的模型。在動作1112,視更新的模型之作用,將當時的餘留 元組排序,以及,電腦實施的方法繼續進行至動作1114以及下列等等。
如同習於此技藝者將瞭解般,圖8所示之電腦實施的方法可以修改以致不僅考慮全區處理變數及子電路處理變數也考慮預定的環境角落(例如VT角落)。這些預定的環境角度將在動作1104進入播放,在動作1104中將產生均包含增加的項目之元組,增加的項目為環境角落。導因於預定環境角度的考慮之元組的總數等於產生用於與子電路處理變數合併之全區處理變數的元組之數目乘以預定的環境角度之數目。
配置成根據本揭示以執行電腦實施方法之變化感知設計工具,可被用以對中度至大數目的PVT角落,執行三Σ分析(1000-5000蒙地卡羅樣本);以小至大數目的PVT角度,執行高Σ分析(1M-1G或更多蒙地卡羅取樣);執行記憶體陣列或行的分析,而無PVT變化;以及,以小至大數目的PVT角落,執行記憶體陣列或行的分析。習知技術之變化感知設計工具無法有效率地執行上述列出的舉例說明的情形。
藉由產生ECD的處理點/或環境角落的元組及藉由將這些元組排序,本揭示允許快速評估ECD。本揭示也能解決迄今為止太複雜及/或太耗時而無法處理的問題。
在上述說明中,為了說明,揭示眾多細節以助於完整瞭解實施例。但是,習於此技藝者將清楚不一定需要這些特定細節。舉例而言,未提供此處所述的實施例是否實施 成為軟體常式、硬體電路、韌體、或其組合之特定細節。
揭示之實施例可以表示成儲存在機器可讀取的媒體(也稱為電腦可讀取的媒體、處理器可讀取的媒體、或是具有電腦可讀取的程式碼實施於其中之電腦可使用的媒體)中的電腦程式產品。電腦可讀取的媒體可為任何適當的實體的、非暫時的媒體,包含磁性、光學、或電的儲存媒體,包括碟片、光碟唯讀記憶體(CD-ROM)、記憶體裝置(依電性或非依電性)、或類似的儲存機制。機器可讀取的媒體含有當執行時會促使處理器執行根據揭示的實施例之方法中的動作之各式各樣的指令集、碼序列、組態資訊、或其它資料。習於此技藝者將瞭解實施所述的實施所需的其它指令及操作也儲存在機器可讀取的媒體上。儲存於機器可讀取的媒體上的指令可由處理器、電腦(數位電腦)或其它適當的處理裝置執行,且可與電路協調以執行所需工作。
上述實施例僅為舉例說明。在不悖離僅由後附的申請專利範圍界定之範圍之下,習於此技藝者可對特定實施例實施替代、修改及變化。

Claims (19)

  1. 一種辨識電路設計(ECD)的失敗之電腦實施的方法,該ECD界定眾多子電路,各子電路是相同的,該ECD與全區處理變數相關連,各子電路與子電路處理變數相關連,各子電路與性能度量相關連,該性能度量係取決於該全區處理變數以及取決於該子電路處理變數,該ECD具有取決於該性能度量之失敗度量,該全區處理變數與該全區處理變數的機率分佈相關連,該子電路處理變數與該子電路處理變數的機率分佈相關連,該電腦實施的方法包括:從該全區處理變數的機率分佈產生全區處理點組;從該子電路處理變數的機率分佈產生子電路處理點組;藉由合併該全區處理點組的各點與該子電路處理點組的各點,產生元組集合,各元組包括一全區處理點及一第一子電路處理點;在選取的元組,模擬該眾多子電路中之一以取得模擬資料,非模擬的元組是餘留元組;根據該模擬資料,對各選取的元組,計算該子電路的模擬性能度量值;根據該模擬的性能度量值,視該全區處理變數及該子電路處理變數的作用而建立該性能度量的模型;根據該模型,計算用於各餘留元組之模型化的性能度量值; 視該模型化的性能度量值之作用而排序該餘留元組以取得排序的餘留元組;藉由下述,計算多個ECD失敗:選取預定數目的排序餘留元組以取得被選取的排序餘留元組,該被選取的排序餘留元組比未被選取的排序餘留元組中的任何元組具有更差的模型化性能度量值;在該被選取的排序餘留元組,模擬該子電路以取得增加的模擬資料;視該增加的模擬資料之作用,對各個該被選取的排序餘留元組,計算該子電路性能度量的性能度量值;比較各個該被選取的排序餘留元組中的性能度量值與性能度量的目標值;以及,當被選取的排序餘留元組的性能度量值未符合該性能度量的目標值時,使ECD失敗次數增量一;以及,顯示該多個ECD失敗中至少之一以及評估的ECD產能,該評估的ECD產能是該ECD失敗的次數的函數。
  2. 如申請專利範圍第1項之電腦實施的方法,其中,從該全區處理變數的機率分佈產生全區處理點組包含取樣該全區處理變數的機率分佈。
  3. 如申請專利範圍第1或2項之電腦實施的方法,其中,從該子電路處理變數的機率分佈產生子電路處理點組包含取樣該子電路處理變數的機率分佈。
  4. 如申請專利範圍第1及2項中任一項之電腦實施的方法,其中,在該被選取的元組模擬該子電路的性能度量 之前為選取該被選取的元組。
  5. 如申請專利範圍第4項之電腦實施的方法,其中,選取該被選取的元組包含選取具有低於預定臨界值的全區處理變數機率之元組以及選取具有低於另一預定臨界值的子電路處理變數機率之元組等二選取中之至少一者。
  6. 如申請專利範圍第1及2項中任一項之電腦實施的方法,其中,該評估的ECD產能也是全區處理點的總數之函數。
  7. 如申請專利範圍第1及2項中任一項之電腦實施的方法,其中,該模型是迴歸模型,該迴歸模型包含線性模型、多項式模型、樣條模型、高斯處理模型、神經網路、多變值適應迴歸樣條模型、及快速函數抽取模型中至少之一。
  8. 如申請專利範圍第1及2項中任一項之電腦實施的方法,其中,該電腦實施的方法具有停止準則,當未符合該停止準則時,該電腦實施的方法又包括:從尚未被選取的該排序的餘留元組中選取增加數目的排序的餘留元組,以取得增加的被選取的排序的餘留元組,該增加的被選取的排序的餘留元組比尚未被選取的排序的餘留元組中的任意元組具有更差的模型性能度量值;在該增加的被選取的排序的餘留元組,模擬該子電路以取得補充的模擬資料;視該補充的模擬資料之作用,計算用於各個該增加的被選取的排序的餘留元組之該子電路的性能度量值; 比較用於該增加的被選取的排序的餘留元組之各個該子電路的性能度量值與目標性能度量值;當該增加的被選取的排序的餘留元組的性能度量值未符合該目標性能度量值時,將ECD失敗的次數增量一。
  9. 如申請專利範圍第8項之電腦實施的方法,其中,該停止準則包含下述至少之一:模擬次數超過各別的最大值、該電腦實施的方法之運行時間超過最大運行時間限度、ECD失敗的次數超過各別最大值、該ECD的評估產能之下限超過各別臨界值、以及該ECD的評估產能之上限低於各別臨界值。
  10. 如申請專利範圍第8項之電腦實施的方法,其中,從尚未被選取的該排序的餘留元組選取該增加數目的排序的餘留元組之前,根據該增加的模擬資料更新該模型。
  11. 一種辨識電路設計(ECD)的失敗之電腦實施的方法,該ECD與處理變數、環境變數、及性能度量相關連,該性能度量係取決於該處理變數以及該環境變數,該環境變數與預定角落系列相關連,該處理變數具有機率分佈,該電腦實施的方法包括:從該處理變數的機率分佈產生處理點組;藉由合併該處理點組的各點與各預定角落,產生元組集合,各元組包括該處理點組中之一處理點及一預定角落;在選取的元組,模擬該ECD以取得模擬資料,非模 擬的元組是餘留元組;根據該模擬資料,對各個該選取的元組,計算模擬性能度量值;根據該模擬的性能度量值,視該處理變數的作用及該環境變數的作用而建立性能度量的模型;根據該模型,計算用於各餘留的元組之模型化的性能度量值;視模型化的性能度量值之作用而排序該餘留元組以取得排序的餘留元組;藉由下述,計算多個ECD失敗:選取預定數目的排序餘留元組以取得被選取的排序餘留元組,該被選取的排序餘留元組比未被選取的排序餘留元組中的任何元組具有更差的模型化性能度量值;在該被選取的排序餘留元組,模擬該ECD以取得增加的模擬資料;視該增加的模擬資料之作用,對各個該被選取的排序餘留元組,計算性能度量值;比較各個該被選取的排序餘留元組的性能度量值與性能度量的目標值;以及,當該被選取的排序餘留元組的性能度量值未符合該性能度量的目標值時,使ECD失敗次數增量一;以及,顯示多個ECD失敗中至少之一以及評估的ECD產能,該評估的ECD產能是該ECD失敗的次數的函數。
  12. 如申請專利範圍第10項之電腦實施的方法,其中,從該處理變數的機率分佈產生處理點組包含取樣該處理變數的機率分佈。
  13. 如申請專利範圍第11或12項之電腦實施的方法,其中,在該被選取的元組模擬該ECD的性能度量之前為選取該被選取的元組。
  14. 如申請專利範圍第11及12項中任一項之電腦實施的方法,其中,選取該被選取的元組包含選取具有低於預定臨界值的處理變數機率之元組。
  15. 如申請專利範圍第11及12項中任一項之電腦實施的方法,其中,該評估的ECD產能也是處理點的總數之函數。
  16. 如申請專利範圍第11及12項中任一項之電腦實施的方法,其中,該模型是迴歸模型,該迴歸模型包含線性模型、多項式模型、樣條模型、高斯處理模型、神經網路、多變值適應迴歸樣條模型、及快速函數抽取模型中至少之一。
  17. 如申請專利範圍第11及12項中任一項之電腦實施的方法,其中,該電腦實施的方法具有停止準則,當未符合該停止準則時,該電腦實施的方法又包括:從尚未被選取的該排序的餘留元組中選取增加數目的排序的餘留元組,以取得增加的被選取的排序的餘留元組,該增加的被選取的排序的餘留元組比尚未被選取的排序的餘留元組中的任意元組具有更差的模型性能度量值; 在該增加的被選取的排序的餘留元組,模擬該ECD以取得補充的模擬資料;視該補充的模擬資料之作用,計算用於各個該增加的被選取的排序的餘留元組之該ECD的性能度量值;比較用於該增加的被選取的排序的餘留元組之各個該ECD的性能度量值與目標性能度量值;當該增加的被選取的排序的餘留元組的性能度量值未符合該目標性能度量值時,將ECD失敗的次數增量一。
  18. 如申請專利範圍第17項之電腦實施的方法,其中,該停止準則包含下述至少之一:模擬次數超過各別的最大值、該電腦實施的方法之運行時間超過最大運行時間限度、ECD失敗的次數超過各別最大值、該ECD的評估產能之下限超過各別臨界值、以及該ECD的評估產能之上限低於各別臨界值。
  19. 如申請專利範圍第17項之電腦實施的方法,其中,從尚未被選取的該排序的餘留元組選取該增加數目的排序的餘留元組之前,根據該增加的模擬資料更新該模型。
TW103136792A 2013-10-24 2014-10-24 用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路 TW201525742A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361895051P 2013-10-24 2013-10-24

Publications (1)

Publication Number Publication Date
TW201525742A true TW201525742A (zh) 2015-07-01

Family

ID=52992096

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103136792A TW201525742A (zh) 2013-10-24 2014-10-24 用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路

Country Status (3)

Country Link
US (1) US10331823B2 (zh)
TW (1) TW201525742A (zh)
WO (1) WO2015058310A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI699712B (zh) * 2017-05-19 2020-07-21 美商谷歌有限責任公司 用於執行神經網路運算之方法及系統及相關非暫時性機器可讀儲存裝置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102578644B1 (ko) * 2017-08-30 2023-09-13 삼성전자주식회사 반도체 집적회로의 수율 예측 장치, 및 이를 이용한 반도체 장치 제조 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1563966A (zh) 2004-03-25 2005-01-12 杭州电子工业学院 一种基于核估计的集成电路成品率测定方法
US7493574B2 (en) * 2006-02-23 2009-02-17 Cadence Designs Systems, Inc. Method and system for improving yield of an integrated circuit
US8155938B2 (en) 2008-03-28 2012-04-10 Carnegie Mellon University Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems
US9483602B2 (en) * 2010-10-27 2016-11-01 Solido Design Automation Inc. Method and system for identifying rare-event failure rates

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI699712B (zh) * 2017-05-19 2020-07-21 美商谷歌有限責任公司 用於執行神經網路運算之方法及系統及相關非暫時性機器可讀儲存裝置
US11157794B2 (en) 2017-05-19 2021-10-26 Google Llc Scheduling neural network processing

Also Published As

Publication number Publication date
WO2015058310A1 (en) 2015-04-30
US10331823B2 (en) 2019-06-25
US20160275223A1 (en) 2016-09-22

Similar Documents

Publication Publication Date Title
TWI559156B (zh) 識別稀有事件故障率的方法與系統
US8601416B2 (en) Method of circuit design yield analysis
TWI782067B (zh) 預測半導體積體電路的良率的裝置及使用所述裝置製造半導體元件的方法
US8001493B2 (en) Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions
EP2234026A1 (en) Method and system for analyzing performance metrics of array type circuits under process variability
US8826202B1 (en) Reducing design verification time while maximizing system functional coverage
CN107729589B (zh) 一种基于多起始点重要性采样技术的快速计算sram失效概率的方法
US10713405B2 (en) Parameter generation for semiconductor device trapped-charge modeling
Wang et al. High-dimensional and multiple-failure-region importance sampling for SRAM yield analysis
US10803218B1 (en) Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems
US20090259453A1 (en) Method of modeling SRAM cell
TW201525742A (zh) 用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路
CN113111620A (zh) 一种半导体电路良率预测方法及装置
JP4871194B2 (ja) パラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体
US8676547B2 (en) Parameter extraction method
US8301431B2 (en) Apparatus and method for accelerating simulations and designing integrated circuits and other systems
TWI824233B (zh) 具有漏電流中的統計變化之動態隨機存取記憶體通路電晶體的設計
Tsiligiannis et al. SRAM soft error rate evaluation under atmospheric neutron radiation and PVT variations
Jiang et al. Performance prediction of large-scale 1S1R resistive memory array using machine learning
US20170169147A1 (en) Adaptive High Sigma Yield Prediction
Rana et al. SSFB: A highly-efficient and scalable simulation reduction technique for SRAM yield analysis
US20240232487A1 (en) High performance monte carlo circuit simulation
US20240232486A1 (en) Using surrogate netlists for variation analysis of process variations
Shoniker Accelerated verification of integrated circuits against the effects of process, voltage and temperature variations
Zhang et al. SRAM yield-per-area optimization under spatially-correlated process variation