KR20220133915A - 파라미터 장애들에 대한 자동 테스트 패턴 생성(atpg) - Google Patents
파라미터 장애들에 대한 자동 테스트 패턴 생성(atpg) Download PDFInfo
- Publication number
- KR20220133915A KR20220133915A KR1020227028565A KR20227028565A KR20220133915A KR 20220133915 A KR20220133915 A KR 20220133915A KR 1020227028565 A KR1020227028565 A KR 1020227028565A KR 20227028565 A KR20227028565 A KR 20227028565A KR 20220133915 A KR20220133915 A KR 20220133915A
- Authority
- KR
- South Korea
- Prior art keywords
- design
- failure
- random variables
- model
- function
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G06N7/005—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
파라미터 장애들에 대한 자동 테스트 패턴 생성(ATPG)을 위한 시스템들 및 방법들이 설명된다. 랜덤 변수들의 랜덤 샘플에 기초하여 집적 회로(IC) 설계에 대한 측정 마진을 예측하기 위해 모델이 구성될 수 있다. 모델을 사용하여 IC 설계에 대해 고장 이벤트들의 세트가 결정될 수 있고, 여기서, 각각의 고장 이벤트는 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 랜덤 변수들의 값들의 세트에 대응할 수 있다.
Description
발명자들: Peilin Jiang, Mayukh Bhattacharya, 및 Chih Ping Antony Fan
관련 출원
본 출원은 2020년 2월 21일자로 출원된 미국 가출원 일련번호 제62/979,725호를 우선권으로 주장하고, 그의 내용은 모든 목적들을 위해 그 전체가 참조로 본원에 포함된다.
기술 분야
본 개시내용은 자동 테스트 패턴 생성(automatic test pattern generation)(ATPG)에 관한 것이다. 더 구체적으로, 본 개시내용은 파라미터 장애들에 대한 ATPG에 관한 것이다.
집적 회로(IC) 설계들을 테스트하는 것은 중요하다. 엄격한 테스트 없이 중요한 애플리케이션들에서 크고 복잡한 IC 설계들을 사용하는 것은 위험할 것이다. 아날로그 회로들에서의 장애들은 하드 장애들(파국적 장애들로 또한 알려져 있음) 및 소프트 장애들(파라미터 장애들로 또한 알려져 있음)로 분류될 수 있다. 하드 장애는, 예컨대, 연결에서의 개방 또는 2개의 연결 사이의 단락과 같이, 회로의 토폴로지를 변화시킨다. 소프트 또는 파라미터 장애는 회로 요소의 주요 파라미터에서의 변화이지만, 이러한 타입의 장애는 회로의 토폴로지를 변화시키지 않는다. 파라미터 장애들은 구성요소 파라미터들의 변동들(구성요소들의 열화 및/또는 프로세스 변동들에 의해 야기될 수 있음)에 의해 야기될 수 있고, 아날로그 회로와 연관된 하나 이상의 중요한 메트릭을 열화시킬 수 있다. 따라서, 파라미터 장애들에 대해 회로들을 테스트하는 것은 중요하다.
수치 시뮬레이션은 파라미터 장애들을 분석하기 위해 일반적으로 사용되는 기법이다. 그러나, IC 설계는 복잡할 수 있고 비선형 디바이스들을 포함할 수 있고, 이는 수치 시뮬레이션을 매우 시간 소모적으로 만들 수 있다. 더욱이, 파라미터 변동들이 연속적이기 때문에, 파라미터 조합의 수는 무한하다. 따라서, 파라미터 장애들의 철저한 분석은 불가능하다.
본원에서 설명되는 실시예들은 파라미터 장애들에 대한 ATPG를 위한 기법들 및 시스템들을 특징으로 한다. 모델은 프로세스 변수, 전압 변수, 및 온도 변수를 포함할 수 있지만 이에 제한되지는 않는 랜덤 변수들의 랜덤 샘플에 기초하여 IC 설계에 대한 측정 마진을 예측하도록 구성될 수 있다. 일부 실시예들에서, 모델은 가우시안 프로세스(GP) 모델일 수 있다. 다음으로, 모델을 사용하여 IC 설계에 대해 고장 이벤트들의 세트가 결정될 수 있고, 여기서, 각각의 고장 이벤트는 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 랜덤 변수들의 값들의 세트에 대응한다.
일부 실시예들에서, IC 설계에 대한 고장 이벤트들의 세트를 결정하는 것은, 취득 함수를 구성하는 것, 및 취득 함수를 사용함으로써 랜덤 변수들의 샘플들을 적응적으로 결정하기 위해 최적화 기법(예컨대, 베이지안 최적화(BO))을 사용하는 것을 포함할 수 있다. 취득 함수를 사용하는 것은 랜덤 변수들에 의해 정의되는 탐색 공간의 다수의 고장 구역들의 탐사를 가능하게 할 수 있다.
일부 실시예들에서, 고장 이벤트들의 세트에 기초하여 확률 밀도 함수가 결정될 수 있다. 다음으로, 확률 밀도 함수에 기초하여 가중치 함수가 결정될 수 있고, 여기서, 가중치 함수는 중요도 샘플링 프로세스와 연관될 수 있다. 이어서, IC 설계의 고장 레이트를 계산하기 위해 (결정된 가중치 함수를 이용하는) 중요도 샘플링 프로세스가 사용될 수 있다. 다음으로, IC 설계의 고장 레이트를 최대화하는 것에 기초하여 여기 파형들의 세트를 결정하기 위해 BO가 사용될 수 있다. 구체적으로, 여기 파형들의 세트 내의 각각의 여기 파형은 조각별 선형(piece-wise linear)(PWL) 함수로서 표현될 수 있고, 여기 파형들의 세트는 IC 설계에서 파라미터 장애들을 테스트하기 위해 사용될 수 있다.
본 개시내용은 아래에서 주어지는 상세한 설명 및 첨부 도면들에 기초하여 이해될 수 있다. 도면들은 예시적인 목적들을 위한 것이고, 본 개시내용의 범위를 제한하지 않는다. 게다가, 도면들은 반드시 실척대로 도시된 것은 아니다.
도 1은 본원에서 설명되는 일부 실시예들에 따른, PWL 함수를 사용하는 자극 파형의 파라미터화를 예시한다.
도 2는 본원에서 설명되는 일부 실시예들에 따른, 테스트 패턴들을 생성하기 위한 프로세스를 예시한다.
도 3은 본원에서 설명되는 일부 실시예들에 따른, 고장 레이트를 계산하기 위한 프로세스를 예시한다.
도 4는 본원에서 설명되는 일부 실시예들에 따른, 여기 파형들을 생성하기 위한 프로세스를 예시한다.
도 5는 본원에서 설명되는 일부 실시예들에 따른, 집적 회로의 설계, 검증, 및 제작을 위한 예시적인 흐름을 예시한다.
도 6은 본원에서 개시되는 일부 실시예들에 따른 컴퓨터 시스템의 예시적인 머신을 예시하고, 그 내부에서, 머신으로 하여금 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있다.
도 1은 본원에서 설명되는 일부 실시예들에 따른, PWL 함수를 사용하는 자극 파형의 파라미터화를 예시한다.
도 2는 본원에서 설명되는 일부 실시예들에 따른, 테스트 패턴들을 생성하기 위한 프로세스를 예시한다.
도 3은 본원에서 설명되는 일부 실시예들에 따른, 고장 레이트를 계산하기 위한 프로세스를 예시한다.
도 4는 본원에서 설명되는 일부 실시예들에 따른, 여기 파형들을 생성하기 위한 프로세스를 예시한다.
도 5는 본원에서 설명되는 일부 실시예들에 따른, 집적 회로의 설계, 검증, 및 제작을 위한 예시적인 흐름을 예시한다.
도 6은 본원에서 개시되는 일부 실시예들에 따른 컴퓨터 시스템의 예시적인 머신을 예시하고, 그 내부에서, 머신으로 하여금 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있다.
본 개시내용의 양태들은 파라미터 장애들에 대한 ATPG에 관한 것이다. 디지털 회로의 경우, ATPG는 디지털 테스트 패턴들의 세트, 즉, 입력들의 세트에 대한 "0" 및 "1" 값들의 할당을 생성할 수 있다. 아날로그 회로의 경우, 파라미터 장애들에 대한 ATPG는 원하는 테스트 커버리지를 달성하기 위해 아날로그 회로의 입력들의 세트에 적용될 수 있는 여기 파형들을 생성할 수 있다.
파라미터 장애들에 대한 일부 ATPG 기법들은 계산적으로 비효율적이고 강건하지 않다. 구체적으로, 일부 ATPG 기법들은 수치 시뮬레이터를 너무 많이 호출할 수 있고, 이는 계산적으로 비용이 많이 들 수 있다. 더욱이, 일부 ATPG 기법들은 다수의 고장 구역들을 핸들링하는 것이 가능하지 않다.
본원에서 설명되는 실시예들은 선택된 시점들에서의 진폭들이 구성가능한(즉, 이러한 진폭들이 변경될 수 있는) PWL 함수로서 여기 파형(즉, 테스트 패턴)을 표현할 수 있다. 하나 이상의 측정치가 정상 범위들을 초과하는(즉, 하나 이상의 임계치를 위반하는) 발생들의 퍼센티지로서 정의될 수 있는 고장 레이트는 이러한 진폭들을 변경함으로써 증가될 수 있고, 이는 ATPG의 강건성을 보장할 수 있다.
측정치들(예컨대, 지연 값들)은 SPICE(Simulation Program with Integrated Circuit Emphasis)와 같은 시뮬레이터를 사용함으로써 수치적으로 계산될 수 있는 응답들(예컨대, 여기 파형이 입력으로서 적용될 때 아날로그 회로에 의해 생성되는 응답)로부터 획득될 수 있다. 계산 효율을 개선하기 위해, 일부 실시예들은 프로세스, 전압, 및 온도(PVT) 변수들을 측정 마진으로 맵핑하기 위해 대리 모델(surrogate model)(또는 메타 모델)을 구성하고, 이는 시뮬레이터에 대해 이루어지는 호출의 수를 감소시키는 것을 가능하게 한다.
본원에서 설명되는 실시예들의 이점들은, (1) 파라미터 장애들에 대한 ATPG의 계산 효율을 상당히 증가시키는 것(즉, 원하는 테스트 커버리지에 대한 여기 파형들을 생성하기 위해 사용되는 계산 리소스들의 양을 상당히 감소시키는 것에 의해 이루어짐), (2) 파라미터 장애들에 대한 ATPG의 강건성을 상당히 증가시키는 것, 및 (3) 파라미터 장애들에 대한 ATPG에서 다수의 고장 구역들을 핸들링하는 것을 포함하지만 이에 제한되지는 않는다.
일부 실시예들은 대리 모델을 구축하기 위해 GP를 사용할 수 있는데, 그 이유는 GP가 작은 트레이닝 세트로 높은 예측 정확도를 제공할 수 있기 때문이다. 취득 함수를 최적화함으로써 다음의 샘플들의 위치들을 적응적으로 결정하는 BO 방식은 적은 수의 샘플을 사용하여 고장 구역들의 경계를 결정하기 위해 사용될 수 있다. 취득 함수는 다수의 고장 구역들을 탐사하는 것을 가능하게 하도록 수정될 수 있다.
대리 모델이 생성되고 피팅되면, 시뮬레이터(이는 계산적으로 고가일 수 있음)를 사용하는 대신에 대리 모델을 사용하여 고장 경우들이 결정될 수 있다. 대리 모델을 사용하여 결정된 고장 경우들로부터 확률 밀도 함수가 구성될 수 있다.
다음으로, 고장 레이트를 계산하기 위해 중요도 샘플링 방식이 사용될 수 있다. 구체적으로, 확률 밀도 함수로부터 가중치 함수가 결정될 수 있고, 고장 레이트를 결정하기 위해 시뮬레이터가 사용될 수 있다. 아래의 수학식 (9)를 참조하여 설명되는 바와 같이, 원래의 확률 밀도 함수는 p(X)이고, 새로운 확률 밀도 함수는 q(X)이고, 가중치 함수는 p(X)/q(X)이다. 중요도 샘플링은 적은 수의 샘플을 사용하여 양호한 적분 정확도를 보장할 수 있다. 구성된 밀도 함수는 본원에서 설명되는 실시예들이 다수의 고장 구역들을 핸들링하는 것을 가능하게 할 수 있다.
BO의 다른 계층은 위에서 설명된 프로세스들에 대한 호출의 감소된 수로 고장 레이트를 사용하여(예컨대, 고장 레이트를 최대화하여) PWL 함수에서 시점들의 진폭들을 결정하기 위해 사용될 수 있다. 이러한 기법들은 강건성 및 계산 효율을 제공하기 위해 함께 사용될 수 있다.
S는 자극을 표시하고, P는 PVT 변수들을 표시하고, M은 관심 결과(예컨대, 지연)의 측정치를 표시하고, Mt는 고장을 검출하기 위한 측정치 M의 임계치를 표시하고, 즉, 측정치가 Mt와 비교될 때 고장이 결정된다. 고장을 검출하기 위한 조건은 파라미터에 따라 결정된다. 구체적으로, 파라미터에 따라, (1) 측정치가 임계치 초과이거나, (2) 측정치가 임계치 미만이거나, (3) 측정치가 허용가능 값들의 범위 밖에 있거나, 또는 (4) 측정치가 허용불가능 값들의 범위 내에 있는 경우, 고장이 발생한 것으로 정의될 수 있다. 고장 레이트는 FR(S, P, Mt)로 쓸 수 있다. 파라미터 장애들에 대한 ATPG는 여기를 최적화함으로써 고장 레이트를 최대화하는 것을 목적으로 하는 최적화 문제로서 공식화될 수 있고, 즉, 이는 다음과 같다.
결함성 IC 설계가 고장나게 할 가능성이 없는 테스트 패턴은 유용하지 않다. 따라서, 수학식 (1)은 생성되기를 원하는 테스트 패턴들이 고장 레이트를 최대화하는 것들인 것, 즉, 이러한 테스트 패턴들이 결함성 IC 설계가 고장나게 할 가능성이 있다는 것을 명시한다. X가 D차원 랜덤 PVT 변수들에 의해 스패닝된 파라미터 공간 내의 특정 포인트인 것으로 가정한다. 파라미터 공간 내의 상이한 포인트들은 상이한 확률들로 발생할 수 있다. 파라미터 공간 내의 주어진 포인트에 대해, IC 설계는 고장날 수 있거나 또는 고장나지 않을 수 있다. 공식적으로, X에 대한 확률 밀도 함수는 p(X)로서 표시될 수 있고, 고장 레이트 Pf는 다음과 같이 정의될 수 있다:
수학식 (2)에서의 적분은 전형적으로 처리하기 어렵다. 따라서, 몬테카를로(MC) 기반 기법들이 다음과 같이 고장 레이트 Pf를 추정하기 위해 사용될 수 있다:
수학식 (3)에서, 는 MC 기법에 의해 생성되는 N개의 샘플을 평균화함으로써 계산되는 고장 레이트에 대한 추정치이다. N 값들이 큰 경우, 추정되는 고장 레이트는 실제 고장 레이트에 접근하고, 즉, 이다. MC 기반 기법들에서, 샘플들은 반복적으로 수집되고, 회로 성능은 트랜지스터 레벨 시뮬레이션들을 사용하여 반복적으로 평가된다. 더욱이, 추정치가 매우 정확한 것을 보장하기 위해 다수(즉, 큰 N 값)의 샘플들이 사용될 수 있다. 따라서, MC 기반 기법들은 계산적으로 고가일 수 있다.
본원에서 설명되는 일부 실시예들은 PVT 변수들을 회로 성능 결과들로 맵핑하기 위한 대리 모델 및 수학식 (2)에서의 적분을 정확하게 평가하기 위한 적응적 중요도 샘플링 방식을 사용함으로써, 고장 레이트를 효율적이고 정확하게 계산할 수 있다.
구체적으로, 일부 실시예들은 PVT 변수들을 회로 성능으로 맵핑하기 위한 대리 모델을 구축하기 위해 GP를 사용할 수 있다. 트레이닝 세트 {(X1, -g(X1)), (X2, -g(X2)), ..., (Xn, -g(Xn))}(여기서, g(X) = (M(X) - Mt)2는 측정 마진임)가 주어지면, 하이퍼파라미터들을 사용하여 함수로 표현될 수 있는 GP의 통계적 모멘트들이 트레이닝 세트로부터 학습될 수 있다. 측정 마진은 고장의 레벨 또는 정도에 대응할 수 있다. 예컨대, 지연의 경우, 고장의 레벨 또는 정도는 네거티브 슬랙(negative slack)에 의해 측정될 수 있고, 예컨대, -5의 슬랙은 -1의 슬랙보다 더 나쁜 고장이다. 이어서, 주어진 파라미터 구성 X에 대한 측정의 예상되는 값 및 표준 편차, 즉, μ(X) 및 σ(X)가 획득될 수 있다.
주어진 X에 대한 측정 마진(예컨대, 고장이 발생하는 정도)을 예측 또는 추정하기 위해 GP 모델이 사용될 수 있다. 예컨대, GP 모델은 네거티브 슬랙을 예측 또는 추정하기 위해 사용될 수 있다. 표기법 g(X)는 수치 시뮬레이터(예컨대, SPICE)에 의해 계산되는 바와 같은 실제 측정 마진을 표현하기 위해 사용되고, 표기법 는 GP 모델에 의해 예측 또는 추정되는 측정 마진을 표현하기 위해 사용된다. 측정 마진의 경계는 다음의 최적화 문제를 해결함으로써 결정될 수 있다:
적은 수의 샘플로 높은 정확도를 제공하기 위해, 취득 함수를 최대화함으로써 다음의 샘플 위치를 선택하기 위해 적응적 방식이 사용될 수 있고, 예컨대, 이는 다음과 같다.
수학식 (5)에서, 는 에 대한 취득 함수이다. 취득 함수는 반복적 최적화 프로세스가 최적의 값을 향해 빠르게 이동하게 허용하는 함수일 수 있다. 예컨대, 수학식 (4)에서의 Xborder는 Xborder에 반복적으로 도달하기 위해 취득 함수를 사용하는 반복적 프로세스를 사용함으로써 결정될 수 있다. 수학식 (5)에서의 값 Xnext는 취득 함수를 사용함으로써 각각의 반복에서 결정되는 "다음의" X 값이다. X가 높은 차원을 가질 수 있기 때문에, 원래의 차원 탐색 공간에 임베딩된 낮은 차원 부분 공간들의 이산 세트에 대한 최대화를 사용하는 취득 함수를 사용하는 수정된 BO가 사용될 수 있다(이는 아래에서 더 상세히 설명됨).
다수의 고장 구역들이 있을 때, 수학식 (5)에서 나타낸 취득 함수가 사용되는 경우, 새로운 샘플들이 고장 구역들 중 하나에 트랩핑될 수 있다. 일부 실시예들에서, 취득 함수는 다음과 같이 수정될 수 있다:
일부 실시예들에서, 취득 함수는 다음과 같이 수정될 수 있다("D"는 아래에서 나타낸 수학식 (6.2)에서 상수임):
수학식들 (6.1) 및 (6.2)에서 나타낸 취득 함수에 대한 수정들은 다음의 샘플이 기존의 샘플들로부터 가능한 멀리 떨어지게 할 수 있고, 이는 실시예들이 단일 고장 구역에 트랩핑되는 것을 피할 수 있게 할 수 있고, 실시예들이 다른 고장 구역들을 탐사하는 것을 허용할 수 있다.
대리 모델을 사용하여 다수의 샘플들이 생성될 수 있고, 고장 경우들/이벤트들은 임계치 T를 사용하여 결정될 수 있고, 즉, 이는 다음과 같다.
다음으로, 이어서, 확률 밀도 함수가 다음과 같이 구성될 수 있다:
이어서, 다음과 같이 중요도 샘플링을 사용하여 고장 레이트가 발견될 수 있다:
수학식 (9)에서, p(X)는 수학식 (2)를 참조하여 설명된 바와 같은 X의 확률 분포이고, q(X)는 수학식 (8)을 사용하여 계산되고, 함수 p(X)/q(X)는 중요도 샘플링에 사용되는 가중치 함수이다. 중요도 샘플링은 2개의 분포 사이의 차이를 고려하기 위해 가중치 함수(위의 예의 p(X)/q(X))와 함께 제2 분포(위의 예의 q(X))를 사용함으로써 제1 분포(위의 예의 p(X))에 기초하여 샘플들을 생성하는 기법을 지칭한다. 구체적으로, 수학식 (9)에서의 적분은 다음과 같이 MC를 사용하여 평가될 수 있다:
여기서, 높은 정확도를 제공하는 수학식 (10)에서의 샘플의 수(n)는 동등하게 높은 정확도를 제공할 수학식 (3)에서의 샘플들(N)보다 상당히 더 작다. I(Xi)를 평가할 때, M(Xi)를 생성하기 위해 시뮬레이터가 사용될 수 있는데, 그 이유는 샘플의 수가 수학식 (3)에서보다 상당히 더 적기 때문이다. 시뮬레이터를 사용하는 것은 대리 모델을 사용하는 것보다 더 높은 레벨의 정확도를 제공한다. 추가적으로, 적응적 샘플링 방식을 사용하는 것은 다수의 고장 구역들(그들이 존재하는 경우)이 탐사되는 것을 보장한다.
도 1은 본원에서 설명되는 일부 실시예들에 따른, PWL 함수를 사용하는 자극 파형의 파라미터화를 예시한다.
X 축은 시간에 대응할 수 있고, Y 축은 관심 양, 예컨대, 전압 또는 전류에 대응할 수 있다. PWL 함수는 시점들 ti에서의 진폭들 ai에 의해 지정될 수 있고, 여기서, i = 1, 2, ..., m이다. 진폭 값들, 즉, ai는 파라미터 장애들에 대한 ATPG 동안에 결정되어야 하는 파라미터들일 수 있다. 다른 파라미터화 기법들, 예컨대, 가중된 기저 함수들의 중첩이 또한 사용될 수 있고, 여기서, 기저 함수들의 계수들은 파라미터 장애들에 대한 ATPG 동안 결정되어야 하는 파라미터들이다.
고장 레이트 계산 함수에 대해 이루어지는 호출의 수를 최소화하기 위해, BO가 활용될 수 있다. 구체적으로, 데이터 세트 {(A1, FR1), (A2, FR2), ..., (An, FRn)}이 주어지면, A = {a1, a2, ..., am}을 FR로 맵핑하기 위해 GP 모델이 먼저 개발될 수 있다. 이어서, 다음과 같이 취득 함수를 최대화함으로써 다음의 포인트 Anext가 결정될 수 있다:
자극을 파라미터화하기 위해 PWL 함수가 사용되는 경우, 시점의 수는 클 수 있다. 이러한 상황들에서, 원래의 공간의 낮은 차원 부분 공간에 대해 BO가 수행될 수 있고, 부분 공간의 차원은 BO가 스텝핑함에 따라 증가될 수 있다. 또한, 취득 함수가 낮은 차원에 적응하도록 수정될 수 있다.
예컨대, 파라미터들이 정규화되고, 탐색 공간이 = [-1, 1]D이고, 함수 y = f(x)가 파라미터들 x ∈ 를 y로 맵핑하는 것으로 가정한다. GP를 구축하기 위해 다음의 의사코드가 사용될 수 있다.
D0 = [-1, 1]d를 구성하기 위해 초기 포인트들을 샘플링하고, D0을 사용하여 GP를 구축한다.
t = 1, 2, ..., Nstep에 대해(for),
yt = f(xt)를 계산한다.
for 루프를 종료한다.
도 2는 본원에서 설명되는 일부 실시예들에 따른, 테스트 패턴들을 생성하기 위한 프로세스를 예시한다. 샘플들의 세트가 수신될 수 있고, 여기서, 각각의 샘플은 PWL 함수의 선택된 시점들에서의 진폭들을 포함한다(202). 예컨대, 각각의 샘플은 시점들 ti에서의 진폭들 ai의 세트를 포함할 수 있고, 여기서, i = 1, 2, ..., m이다. 다음으로, 샘플들에 대한 고장 레이트가 계산될 수 있다(204). GP 모델이 고장 레이트 계산들에 기초하여 피팅될 수 있다(206). 다음으로, 프로세스는 충분한 샘플들이 수집되었는지를 체크할 수 있고(208), 예컨대, 프로세스는 수집된 샘플의 수가 샘플의 임계 수 초과인지를 결정할 수 있다. 충분한 샘플들이 수집된 경우("예" 분기), 수집된 샘플들이 테스트 패턴으로서 제공될 수 있다(212). 다른 한편으로, 충분한 샘플들이 수집되지 않은 경우("아니오" 분기), 프로세스는 취득 함수를 최대화함으로써 다음의 샘플을 선택하고(210), 고장 레이트를 계산하는 것(204)으로 루프백할 수 있다.
도 3은 본원에서 설명되는 일부 실시예들에 따른, 고장 레이트를 계산하기 위한 프로세스를 예시한다. 도 3에 예시된 프로세스는 샘플들에 대한 고장 레이트들을 계산하는 프로세스 블록(204)을 구현하기 위해 사용될 수 있다.
샘플이 수신될 수 있고, 이는 PWL 함수의 선택된 시점들에서의 진폭들을 포함한다(302). 예컨대, 각각의 샘플은 시점들 ti에서의 진폭들 ai의 세트를 포함할 수 있고, 여기서, i = 1, 2, ..., m이다. 다음으로, 랜덤 프로세스 변수들의 랜덤 샘플들이 수집된다(304). 구체적으로, PVT 변동들이 랜덤 변수들로서 모델링될 수 있고, 이러한 랜덤 변수들의 확률 분포들이 랜덤 PVT 변동들을 샘플링하기 위해 사용될 수 있다. 랜덤 샘플들에 대한 회로 성능을 계산하기 위해 회로가 시뮬레이트될 수 있다(306). 구체적으로, 랜덤 샘플들(예컨대, 랜덤 프로세스, 전압, 및 온도 값들)을 사용하여 정의되는 조건들 하에서 회로의 거동을 시뮬레이트하기 위해 SPICE가 사용될 수 있다. 일반적으로, 회로의 임의의 거동은 시뮬레이션을 사용하여 측정될 수 있다. 예컨대, 일부 실시예들에서, 입력 천이와 출력 천이 사이의 지연이 시뮬레이션을 사용하여 측정될 수 있다.
다음으로, 랜덤 샘플들(예컨대, 랜덤 PVT 샘플들) 및 회로 성능(예컨대, 지연)은 GP 모델을 피팅하기 위해 사용될 수 있다(308). 308에서 사용되는 GP 모델은 206에서 사용되는 GP 모델과 별개이다. 프로세스는 충분한 샘플들이 수집되었는지를 체크할 수 있고(310), 예컨대, 프로세스는 수집된 샘플의 수가 샘플의 임계 수 초과인지를 결정할 수 있다.
충분한 샘플들이 수집된 경우("예" 분기), GP 모델을 사용하여 측정 마진들을 계산하고 고장 이벤트들을 검출하기 위해, 수집된 샘플들이 사용될 수 있다(314). 다음으로, 프로세스는 고장 이벤트들에 기초하여 중요도 샘플링을 위한 가중치 함수를 구성할 수 있다(316). 이어서, 프로세스는 중요도 샘플링을 사용하여 고장 레이트를 평가할 수 있고, 여기서, 고장 이벤트들은 시뮬레이션을 사용하여 결정될 수 있다(318).
다른 한편으로, 충분한 샘플들이 수집되지 않은 경우("아니오" 분기), 프로세스는 취득 함수를 최적화함으로써 다음의 샘플을 선택하고(312), 다음의 샘플에 기초하여 회로를 시뮬레이트하는 것(306)으로 루프백할 수 있다.
도 4는 본원에서 설명되는 일부 실시예들에 따른, 여기 파형들을 생성하기 위한 프로세스를 예시한다.
랜덤 변수들의 랜덤 샘플에 기초하여 IC 설계에 대한 측정 마진을 예측하기 위해 모델이 구성될 수 있다(402). 일부 실시예들에서, 랜덤 변수들은 프로세스 변수, 전압 변수, 및 온도 변수를 포함할 수 있다. 일부 실시예들에서, 모델은 GP 모델일 수 있다.
다음으로, 모델을 사용하여 IC 설계에 대해 고장 이벤트들의 세트가 결정될 수 있고, 여기서, 각각의 고장 이벤트는 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 랜덤 변수들의 값들의 세트에 대응할 수 있다(404). 예컨대, 특정 PVT 코너(랜덤 변수들의 값들의 세트)는 총 네거티브 슬랙(메트릭)이 음이 되게 할 것으로(즉, 임계치 제로를 위반하게 할 것으로) 예상될 수 있다. 일부 실시예들은 취득 함수를 구성하는 것, 및 취득 함수를 사용함으로써 랜덤 변수들의 샘플들을 적응적으로 결정하기 위해 최적화 기법(예컨대, BO)을 사용하는 것에 의해, IC 설계에 대한 고장 이벤트들의 세트를 결정할 수 있다. 취득 함수를 사용하는 것은 랜덤 변수들에 의해 정의되는 탐색 공간의 다수의 고장 구역들의 탐사를 가능하게 할 수 있다.
고장 이벤트들의 세트에 기초하여 확률 밀도 함수가 결정될 수 있다(406). 다음으로, 확률 밀도 함수에 기초하여 가중치 함수가 결정될 수 있고, 여기서, 가중치 함수는 중요도 샘플링 프로세스와 연관될 수 있다(408). 이어서, IC 설계의 고장 레이트를 계산하기 위해 중요도 샘플링 프로세스가 사용될 수 있다(410). 다음으로, IC 설계의 고장 레이트를 최대화하는 것에 기초하여 여기 파형들의 세트를 결정하기 위해 최적화 기법(예컨대, BO)이 사용될 수 있다(412). 여기 파형들의 세트 내의 각각의 여기 파형은 PWL 함수로서 표현될 수 있고, 여기 파형들의 세트는 IC 설계에서 파라미터 장애들을 테스트하기 위해 사용될 수 있다.
도 5는 본원에서 설명되는 일부 실시예들에 따른, 집적 회로의 설계, 검증, 및 제작을 위한 예시적인 흐름(500)을 예시한다. EDA 프로세스들(512)(약어 "EDA"는 "전자 설계 자동화(Electronic Design Automation)"를 지칭함)은 집적 회로를 표현하는 설계 데이터 및 명령어들을 변환 및 검증하기 위해 사용될 수 있다. 이러한 프로세스들 각각은 다수의 모듈들 또는 동작들로서 구조화 및 인에이블될 수 있다.
흐름(500)은 설계자에 의해 공급되는 정보를 갖는 제품 아이디어(510)의 생성으로 시작될 수 있고, 정보는 EDA 프로세스들(512)을 사용하여 변환 및 검증된다. 설계가 완성될 때, 설계는 테이프 아웃되고(534), 이는, 마스크 세트를 제조하기 위해 제작 설비로 집적 회로에 대한 아트워크(artwork)(예컨대, 기하학적 패턴들)가 전송되는 시점이고, 그 마스크 세트는 집적 회로를 제조하기 위해 추후에 사용된다. 테이프 아웃 후에, 반도체 다이가 제작되고(536), 제조된 IC 칩(540)을 생성하기 위해 패키징 및 조립(538)이 수행된다.
회로 또는 전자 구조에 대한 사양들은 낮은 레벨 트랜지스터 재료 레이아웃들로부터 높은 레벨 설명 언어들에 이르는 범위에 있을 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL, 또는 OpenVera와 같은 하드웨어 설명 언어("HDL")를 사용하여 회로들 및 시스템들을 설계하기 위해 높은 표현 레벨이 사용될 수 있다. HDL 설명은 논리 레벨 레지스터 전송 레벨("RTL") 설명, 게이트 레벨 설명, 레이아웃 레벨 설명, 또는 마스크 레벨 설명으로 변환될 수 있다. 더 상세한 설명인 각각의 더 낮은 표현 레벨은 설계 설명에 더 많은 세부사항을 추가한다. 더 상세한 설명들인 더 낮은 표현 레벨들은 컴퓨터에 의해 생성될 수 있거나, 설계 라이브러리로부터 도출될 수 있거나, 또는 다른 설계 자동화 프로세스에 의해 생성될 수 있다. 더 상세한 설명들을 지정하기 위한 더 낮은 표현 레벨 언어에서의 명세 언어의 예는 SPICE(이는 "Simulation Program with Integrated Circuit Emphasis"를 나타냄)이다. 각각의 표현 레벨에서의 설명들은 그 계층의 대응하는 툴들(예컨대, 형식 검증 툴)이 사용하기에 충분한 세부사항들을 포함한다.
시스템 설계(514) 동안, 제조될 집적 회로의 기능성이 지정된다. 설계는 전력 소비, 성능, 면적(물리적 및/또는 코드 라인들), 및 비용들의 감소 등과 같은 원하는 특성들에 대해 최적화될 수 있다. 상이한 타입들의 모듈들 또는 구성요소들로의 설계의 분할이 이 스테이지에서 발생할 수 있다.
논리적 설계 및 기능 검증(516) 동안, 회로 내의 모듈들 또는 구성요소들은 하나 이상의 설명 언어들로 지정되고, 사양이 기능 정확성에 대해 체크된다. 예컨대, 회로의 구성요소들은 설계되고 있는 회로 또는 시스템의 사양의 요건들과 매칭하는 출력들을 생성하도록 검증될 수 있다. 기능 검증은 테스트벤치 생성기들, 정적 HDL 체커들, 및 형식 검증기들과 같은 시뮬레이터들 및 다른 프로그램들을 사용할 수 있다. 일부 실시예들에서, "에뮬레이터들" 또는 "프로토타이핑 시스템들"로 지칭되는 구성요소들의 특수 시스템들이 기능 검증의 속도를 높이기 위해 사용된다.
테스트를 위한 합성 및 설계(518) 동안, HDL 코드는 네트리스트로 변환된다. 일부 실시예들에서, 네트리스트는 그래프 구조일 수 있고, 여기서, 그래프 구조의 에지들은 회로의 구성요소들을 표현하고, 그래프 구조의 노드들은 구성요소들이 어떻게 상호연결되는지를 표현한다. HDL 코드와 네트리스트 둘 모두는 집적 회로가 제조될 때 지정된 설계에 따라 수행하는지를 검증하기 위해 EDA 제품에 의해 사용될 수 있는 계층적 제조 물품들이다. 네트리스트는 타겟 반도체 제조 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 집적 회로는 집적 회로가 사양의 요건들을 만족시키는지를 검증하기 위해 테스트될 수 있다.
네트리스트 검증(520) 동안, 네트리스트는 타이밍 제약들에 대한 순응성(compliance) 및 HDL 코드에 대한 대응성(correspondence)에 대해 체크된다. 설계 계획(522) 동안, 집적 회로에 대한 전체 플로어 플랜(floor plan)이 구성되고, 타이밍 및 최상위 레벨 라우팅에 대해 분석된다.
레이아웃 또는 물리적 구현(524) 동안, 물리적 배치(트랜지스터들 또는 커패시터들과 같은 회로 구성요소들을 위치시키는 것) 및 라우팅(다수의 전도체에 의한 회로 구성요소들의 연결)이 발생하고, 특정 논리 함수들을 가능하게 하기 위한 라이브러리로부터의 셀들의 선택이 수행될 수 있다. 본원에서 사용되는 바와 같이, '셀'이라는 용어는 부울 논리 함수(예컨대, AND, OR, NOT, XOR) 또는 저장 기능(이를테면, 플립플롭 또는 래치)을 제공하는 트랜지스터들, 다른 구성요소들, 및 상호연결들의 세트를 지정할 수 있다. 본원에서 사용되는 바와 같이, 회로 '블록'은 2개 이상의 셀을 지칭할 수 있다. 셀과 회로 블록 둘 모두는 모듈 또는 구성요소로 지칭될 수 있고, 물리적 구조들과 시뮬레이션들 둘 모두로 인에이블된다. 크기와 같은 파라미터들이 선택된 셀들에 대해('표준 셀들'에 기초하여) 지정되고, EDA 제품들에 의한 사용을 위해 데이터베이스에서 액세스가능하게 된다.
분석 및 추출(526) 동안, 회로 기능이 레이아웃 레벨에서 검증되고, 이는 레이아웃 설계의 정밀화를 가능하게 한다. 물리적 검증(528) 동안, 레이아웃 설계는 DRC 제약들, 전기적 제약들, 리소그래피 제약들과 같은 제조 제약들이 정확하고 회로부 기능이 HDL 설계 사양과 매칭하는 것을 보장하기 위해 체크된다. 해상도 향상(530) 동안, 레이아웃의 기하형상은 회로 설계가 제조되는 방법을 개선하기 위해 변환된다.
테이프 아웃 동안, 리소그래피 마스크들의 생성을 위해 (적절한 경우 리소그래피 향상들이 적용된 후에) 사용될 데이터가 생성된다. 마스크 데이터 준비(532) 동안, '테이프 아웃' 데이터는 완성된 집적 회로들을 생성하기 위해 사용되는 리소그래피 마스크들을 생성하는 데 사용된다.
컴퓨터 시스템(이를테면, 도 6의 컴퓨터 시스템(600))의 저장 서브시스템은 본원에서 설명되는 EDA 제품들 중 일부 또는 전부에 의해 사용되는 프로그램들 및 데이터 구조들, 및 라이브러리에 대한 셀들의 개발 및 라이브러리를 사용하는 물리적 및 논리적 설계를 위해 사용되는 제품들을 저장하는 데 사용될 수 있다.
도 6은 컴퓨터 시스템(600)의 예시적인 머신을 예시하고, 그 내부에서, 머신으로 하여금 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 익스트라넷, 및/또는 인터넷에서 다른 머신들에 연결(예컨대, 네트워킹)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있거나, 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있거나, 또는 클라우드 컴퓨팅 기반구조 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.
머신은 개인용 컴퓨터(PC), 태블릿 PC, STB(set-top box), 개인용 디지털 어시스턴트(PDA), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 머신에 의해 행해질 액션들을 지정하는 명령어들의 세트를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 머신일 수 있다. 추가로, 단일 머신이 예시되어 있지만, "머신"이라는 용어는 또한, 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하도록 명령어들의 세트(또는 다수의 세트)를 개별적으로 또는 집합적으로 실행하는 머신들의 임의의 콜렉션을 포함하는 것으로 이해될 것이다.
예시적인 컴퓨터 시스템(600)은 프로세싱 디바이스(602), 메인 메모리(604)(예컨대, 판독 전용 메모리(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(DRAM), 이를테면 동기식 DRAM(SDRAM), 정적 메모리(606)(예컨대, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(618)를 포함하고, 이들은 버스(630)를 통해 서로 통신한다.
프로세싱 디바이스(602)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 프로세서를 표현한다. 더 구체적으로, 프로세싱 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세싱 디바이스(602)는 또한, 하나 이상의 특수 목적 프로세싱 디바이스, 이를테면, 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등일 수 있다. 프로세싱 디바이스(602)는 본원에서 설명되는 동작들 및 단계들을 수행하기 위한 명령어들(626)을 실행하도록 구성될 수 있다.
컴퓨터 시스템(600)은 네트워크(620)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(608)를 더 포함할 수 있다. 컴퓨터 시스템(600)은 또한, 비디오 디스플레이 유닛(610)(예컨대, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(612)(예컨대, 키보드), 커서 제어 디바이스(614)(예컨대, 마우스), 그래픽 프로세싱 유닛(622), 신호 생성 디바이스(616)(예컨대, 스피커), 그래픽 프로세싱 유닛(622), 비디오 프로세싱 유닛(628), 및 오디오 프로세싱 유닛(632)을 포함할 수 있다.
데이터 저장 디바이스(618)는 머신 판독가능 저장 매체(624)(비일시적 컴퓨터 판독가능 매체로 또한 알려져 있음)를 포함할 수 있고, 그 머신 판독가능 저장 매체(624) 상에, 본원에서 설명되는 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 소프트웨어 또는 명령어들(626)의 하나 이상의 세트가 저장된다. 명령어들(626)은 또한, 컴퓨터 시스템(600)에 의한 이들의 실행 동안 프로세싱 디바이스(602) 및/또는 메인 메모리(604) 내에 완전히 또는 적어도 부분적으로 상주할 수 있고, 메인 메모리(604) 및 프로세싱 디바이스(602)는 또한, 머신 판독가능 저장 매체들을 구성한다.
일부 구현들에서, 명령어들(626)은 본 개시내용에 대응하는 기능성을 구현하기 위한 명령어들을 포함한다. 머신 판독가능 저장 매체(624)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "머신 판독가능 저장 매체"라는 용어는 명령들의 하나 이상의 세트들을 저장한 단일 매체 또는 다수의 매체들(예컨대, 중앙 집중형 또는 분산형 데이터베이스 및/또는 연관된 캐시들 및 서버들)을 포함하는 것으로 이해되어야 한다. "머신 판독가능 저장 매체"라는 용어는 또한, 머신에 의한 실행을 위해 명령어들의 세트를 저장 또는 인코딩할 수 있고, 머신 및 프로세싱 디바이스(602)로 하여금 본 개시내용의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 이해될 것이다. 따라서, "머신 판독가능 저장 매체"라는 용어는 솔리드 스테이트 메모리들, 광학 매체들, 및 자기 매체들을 포함하지만 이에 제한되지는 않는 것으로 이해될 것이다.
이전의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 기호 표현들 및 알고리즘들과 관련하여 제시되었다. 이러한 알고리즘 설명들 및 표현들은, 데이터 프로세싱 기술분야들의 통상의 기술자에 의해, 이들의 작업의 내용을 관련 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 사용되는 방식들이다. 알고리즘은 원하는 결과를 발생시키는 동작들의 시퀀스일 수 있다. 동작들은 물리적인 양들의 물리적인 조작들을 요구하는 동작들이다. 이러한 양들은 저장, 조합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 이러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 항들, 숫자들 등으로 지칭될 수 있다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관될 것이고, 그리고 단지 이들 양들에 적용되는 편리한 표시들일 뿐이라는 것이 유념되어야 한다. 구체적으로 달리 명시되지 않는 한, 본 개시내용으로부터 명백한 바와 같이, 본 설명 전체에 걸쳐, 특정 용어들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현된 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내의 물리적 양들로서 유사하게 표현된 다른 데이터로 조작 및 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭하는 것으로 이해된다.
본 개시내용은 또한, 본원의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 특별히 구성될 수 있거나, 또는 그 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 컴퓨터 판독가능 저장 매체, 이를테면, 플로피 디스크들, 광학 디스크들, CD-ROM들 및 자기 광학 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하는 데 적합한 임의의 타입의 매체들(그러나 이에 제한되지는 않음)에 저장될 수 있고, 이들 각각은 컴퓨터 시스템 버스에 커플링된다.
본원에서 제시되는 알고리즘들 및 디스플레이들은 임의의 특정한 컴퓨터 또는 다른 장치에 본질적으로 관련되지 않는다. 다양한 다른 시스템들이 본원의 교시들에 따라 프로그램들과 함께 사용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것으로 입증될 수 있다. 추가하여, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 본원에서 설명되는 바와 같은 본 개시내용의 교시들을 구현하기 위해, 다양한 프로그래밍 언어들이 사용될 수 있다는 것이 인식될 것이다.
본 개시내용은 본 개시내용에 따라 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하기 위해 사용될 수 있는 명령어들이 저장된 머신 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예컨대, 머신 판독가능(예컨대, 컴퓨터 판독가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등과 같은 머신(예컨대, 컴퓨터) 판독가능 저장 매체를 포함한다.
전술된 개시내용에서, 본 개시내용의 구현들은 그의 특정 예시적인 구현들을 참조하여 설명되었다. 다음의 청구항들에서 제시되는 바와 같은 본 개시내용의 구현들의 범위로부터 벗어나지 않으면서, 다양한 수정들이 본 개시내용에 대해 이루어질 수 있다는 것이 자명할 것이다. 본 개시내용이 단수의 의미로 일부 요소들을 언급하는 경우, 하나 초과의 요소가 도면들에 도시될 수 있고, 유사한 요소들은 유사한 번호들로 레이블링된다. 따라서, 본 개시내용 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (20)
- 방법으로서,
랜덤 변수들의 랜덤 샘플에 기초하여 집적 회로(IC) 설계에 대한 측정 마진을 예측하기 위한 모델을 구성하는 단계; 및
프로세서에 의해, 상기 모델을 사용하여 상기 IC 설계에 대한 고장 이벤트들의 세트를 결정하는 단계
를 포함하고,
각각의 고장 이벤트는 상기 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 상기 랜덤 변수들의 값들의 세트에 대응하는, 방법. - 제1항에 있어서,
상기 랜덤 변수들은 프로세스 변수, 전압 변수, 및 온도 변수를 포함하는, 방법. - 제1항에 있어서,
상기 모델은 가우시안 프로세스 모델인, 방법. - 제1항에 있어서,
상기 IC 설계에 대한 고장 이벤트들의 세트를 결정하는 단계는,
취득 함수를 구성하는 단계; 및
상기 취득 함수를 사용함으로써 상기 랜덤 변수들의 샘플들을 적응적으로 결정하기 위해 최적화 기법을 사용하는 단계
를 포함하는, 방법. - 제4항에 있어서,
상기 취득 함수는 상기 랜덤 변수들에 의해 정의되는 탐색 공간의 다수의 고장 구역들의 탐사를 가능하게 하는, 방법. - 제1항에 있어서,
상기 고장 이벤트들의 세트에 기초하여 확률 밀도 함수를 결정하는 단계를 더 포함하는, 방법. - 제6항에 있어서,
상기 확률 밀도 함수에 기초하여 가중치 함수를 결정하는 단계 ― 상기 가중치 함수는 중요도 샘플링 프로세스와 연관됨 ―; 및
상기 IC 설계의 고장 레이트를 계산하기 위해 상기 중요도 샘플링 프로세스를 사용하는 단계
를 더 포함하는, 방법. - 제7항에 있어서,
상기 IC 설계의 상기 고장 레이트를 최대화하는 것에 기초하여 여기 파형들의 세트를 결정하기 위해 최적화 기법을 사용하는 단계를 더 포함하는, 방법. - 제8항에 있어서,
상기 여기 파형들의 세트 내의 각각의 여기 파형은 조각별 선형 함수(piece-wise linear function)로서 표현되고,
상기 방법은 상기 여기 파형들의 세트를 사용하여 상기 IC 설계에서 파라미터 장애들을 테스트하는 단계를 더 포함하는, 방법. - 시스템으로서,
명령어들을 저장한 메모리; 및
상기 메모리와 커플링되고 상기 명령어들을 실행하기 위한 프로세서
를 포함하고,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금,
랜덤 변수들의 랜덤 샘플에 기초하여 집적 회로(IC) 설계에 대한 측정 마진을 예측하기 위한 모델을 구성하고,
상기 모델을 사용하여 상기 IC 설계에 대한 고장 이벤트들의 세트를 결정하게 하고,
각각의 고장 이벤트는 상기 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 상기 랜덤 변수들의 값들의 세트에 대응하는, 시스템. - 제10항에 있어서,
상기 랜덤 변수들은 프로세스 변수, 전압 변수, 및 온도 변수를 포함하는, 시스템. - 제10항에 있어서,
상기 모델은 가우시안 프로세스 모델인, 시스템. - 제10항에 있어서,
상기 IC 설계에 대한 고장 이벤트들의 세트를 결정하는 것은,
취득 함수를 구성하는 것; 및
상기 취득 함수를 사용함으로써 상기 랜덤 변수들의 샘플들을 적응적으로 결정하기 위해 최적화 기법을 사용하는 것
을 포함하는, 시스템. - 제13항에 있어서,
상기 취득 함수는 상기 랜덤 변수들에 의해 정의되는 탐색 공간의 다수의 고장 구역들의 탐사를 가능하게 하는, 시스템. - 제10항에 있어서,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금 상기 고장 이벤트들의 세트에 기초하여 확률 밀도 함수를 결정하게 하는, 시스템. - 제15항에 있어서,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금,
상기 확률 밀도 함수에 기초하여 가중치 함수를 결정하고 ― 상기 가중치 함수는 중요도 샘플링 프로세스와 연관됨 ―,
상기 IC 설계의 고장 레이트를 계산하기 위해 상기 중요도 샘플링 프로세스를 사용하게 하는, 시스템. - 제16항에 있어서,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금, 상기 IC 설계의 상기 고장 레이트를 최대화하는 것에 기초하여 여기 파형들의 세트를 결정하기 위해 최적화 기법을 사용하게 하는, 시스템. - 제17항에 있어서,
상기 여기 파형들의 세트 내의 각각의 여기 파형은 조각별 선형 함수로서 표현되고,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금 상기 여기 파형들의 세트를 사용하여 상기 IC 설계에서 파라미터 장애들을 테스트하게 하는, 시스템. - 비일시적 컴퓨터 판독가능 매체로서,
저장된 명령어들을 포함하고,
상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
랜덤 변수들의 랜덤 샘플에 기초하여 집적 회로(IC) 설계에 대한 측정 마진을 예측하기 위한 모델을 구성하고,
상기 모델을 사용하여 상기 IC 설계에 대한 고장 이벤트들의 세트를 결정하게 하고,
각각의 고장 이벤트는 상기 IC 설계에 대한 메트릭이 임계치를 위반하게 할 것으로 예상되는 상기 랜덤 변수들의 값들의 세트에 대응하는, 비일시적 컴퓨터 판독가능 매체. - 제19항에 있어서,
상기 랜덤 변수들은 프로세스 변수, 전압 변수, 및 온도 변수를 포함하는, 비일시적 컴퓨터 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062979725P | 2020-02-21 | 2020-02-21 | |
US62/979,725 | 2020-02-21 | ||
PCT/US2021/018754 WO2021168231A1 (en) | 2020-02-21 | 2021-02-19 | Automatic test pattern generation (atpg) for parametric faults |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220133915A true KR20220133915A (ko) | 2022-10-05 |
Family
ID=74870908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227028565A KR20220133915A (ko) | 2020-02-21 | 2021-02-19 | 파라미터 장애들에 대한 자동 테스트 패턴 생성(atpg) |
Country Status (4)
Country | Link |
---|---|
US (1) | US11669667B2 (ko) |
KR (1) | KR20220133915A (ko) |
CN (1) | CN115151910A (ko) |
WO (1) | WO2021168231A1 (ko) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809459A (en) * | 1996-05-21 | 1998-09-15 | Motorola, Inc. | Method and apparatus for speech excitation waveform coding using multiple error waveforms |
US6922819B2 (en) * | 2003-01-29 | 2005-07-26 | International Business Machines Corporation | System and method of optimal waveform shaping |
US7643665B2 (en) | 2004-08-31 | 2010-01-05 | Semiconductor Insights Inc. | Method of design analysis of existing integrated circuits |
US7457729B2 (en) * | 2005-01-11 | 2008-11-25 | Verigy (Singapore) Pte. Ltd. | Model based testing for electronic devices |
US8713025B2 (en) * | 2005-03-31 | 2014-04-29 | Square Halt Solutions, Limited Liability Company | Complete context search system |
TW200907733A (en) * | 2007-06-27 | 2009-02-16 | Cadence Design Systems Inc | Robust design using manufacturability models |
KR101904518B1 (ko) * | 2010-10-27 | 2018-10-04 | 솔리도 디자인 오토메이션 인코퍼레이티드 | 희귀 불량 현상을 식별하기 위한 방법 및 시스템 |
US9977855B2 (en) | 2011-09-14 | 2018-05-22 | Toshiba Memory Corporation | Method of wiring layout, semiconductor device, program for supporting design of wiring layout, and method for manufacturing semiconductor device |
JP2013061575A (ja) | 2011-09-14 | 2013-04-04 | Toshiba Corp | 配線レイアウトの設計方法、半導体装置及び配線レイアウトの設計を支援するプログラム |
WO2014194161A2 (en) * | 2013-05-30 | 2014-12-04 | President And Fellows Of Harvard College | Systems and methods for performing bayesian optimization |
US10452793B2 (en) * | 2014-08-26 | 2019-10-22 | International Business Machines Corporation | Multi-dimension variable predictive modeling for analysis acceleration |
GB2559344A (en) * | 2017-01-31 | 2018-08-08 | Aceaxis Ltd | Intermodulation test method and apparatus |
US20180349158A1 (en) * | 2017-03-22 | 2018-12-06 | Kevin Swersky | Bayesian optimization techniques and applications |
US11379726B2 (en) * | 2018-11-02 | 2022-07-05 | Intuit Inc. | Finite rank deep kernel learning for robust time series forecasting and regression |
US10963802B1 (en) * | 2019-12-19 | 2021-03-30 | Sas Institute Inc. | Distributed decision variable tuning system for machine learning |
US11673584B2 (en) * | 2020-04-15 | 2023-06-13 | Baidu Usa Llc | Bayesian Global optimization-based parameter tuning for vehicle motion controllers |
CA3177392A1 (en) * | 2020-10-04 | 2022-04-07 | Strong Force Iot Portfolio 2016, Llc | Industrial digital twin systems and methods with echelons of executive, advisory and operations messaging and visualization |
-
2021
- 2021-02-19 WO PCT/US2021/018754 patent/WO2021168231A1/en active Application Filing
- 2021-02-19 CN CN202180014619.6A patent/CN115151910A/zh active Pending
- 2021-02-19 KR KR1020227028565A patent/KR20220133915A/ko unknown
- 2021-02-19 US US17/180,013 patent/US11669667B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN115151910A (zh) | 2022-10-04 |
US20210264087A1 (en) | 2021-08-26 |
WO2021168231A1 (en) | 2021-08-26 |
US11669667B2 (en) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
US20210073456A1 (en) | Machine-learning driven prediction in integrated circuit design | |
KR20220041117A (ko) | 인공 신경망에 의해 예측된 고장 모드들에 기초한 레티클 향상 기법 레시피들의 적용 | |
KR20220143809A (ko) | 레지스터 전송 레벨 벡터로의 글리치 전력 분석 | |
US20220138496A1 (en) | Power estimation using input vectors and deep recurrent neural networks | |
US11022634B1 (en) | Rail block context generation for block-level rail voltage drop analysis | |
US20240169135A1 (en) | Reinforcement learning (rl) based chip design optimization using trained graph convolutional networks (gcn) for ultra-fast cost function calculation | |
US20230260591A1 (en) | Transforming local wire thru resistances into global distributed resistances | |
US11494539B2 (en) | Dynamic random-access memory pass transistors with statistical variations in leakage currents | |
US20220198120A1 (en) | Clock aware simulation vector processor | |
US11893332B2 (en) | Global mistracking analysis in integrated circuit design | |
US11531797B1 (en) | Vector generation for maximum instantaneous peak power | |
US11334698B2 (en) | Cell-aware defect characterization by considering inter-cell timing | |
KR20220133915A (ko) | 파라미터 장애들에 대한 자동 테스트 패턴 생성(atpg) | |
KR20220084049A (ko) | 리소그래피 모델 파라미터들에 기초한 결함률 예측 | |
US20240232486A1 (en) | Using surrogate netlists for variation analysis of process variations | |
US20220335187A1 (en) | Multi-cycle test generation and source-based simulation | |
US20230334211A1 (en) | System for making circuit design changes | |
US11829692B1 (en) | Machine-learning-based design-for-test (DFT) recommendation system for improving automatic test pattern generation (ATPG) quality of results (QOR) | |
US20230072923A1 (en) | Supervised machine learning based memory and runtime prediction using design and auxiliary constructs | |
US20230066423A1 (en) | Accounting for steady state noise in bit response superposition based eye diagram simulation | |
US20240281581A1 (en) | Library scaling for circuit design analysis | |
US20230359796A1 (en) | Determining aging effects for a circuit design | |
US20220398372A1 (en) | Dynamic clock tree planning using feedtiming cost | |
CN118191569A (zh) | 用以增加模拟电路缺陷检测覆盖范围的自动测试图案生成 |