KR102424907B1 - Drc 데크 검증을 위한 테스트 레이아웃들의 자동 생성 - Google Patents

Drc 데크 검증을 위한 테스트 레이아웃들의 자동 생성 Download PDF

Info

Publication number
KR102424907B1
KR102424907B1 KR1020177032654A KR20177032654A KR102424907B1 KR 102424907 B1 KR102424907 B1 KR 102424907B1 KR 1020177032654 A KR1020177032654 A KR 1020177032654A KR 20177032654 A KR20177032654 A KR 20177032654A KR 102424907 B1 KR102424907 B1 KR 102424907B1
Authority
KR
South Korea
Prior art keywords
layout
polygon
layouts
test
slack
Prior art date
Application number
KR1020177032654A
Other languages
English (en)
Other versions
KR20180016354A (ko
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 KR20180016354A publication Critical patent/KR20180016354A/ko
Application granted granted Critical
Publication of KR102424907B1 publication Critical patent/KR102424907B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31704Design for test; Design verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules

Abstract

DRC 데크를 검증하기 위한 테스트 레이아웃의 자동 생성을 위한 컴퓨터 구현 방법. 상기 방법은 복수의 폴리곤 파라미터들(W1, H1)에 의해 정의되는 하나 이상의 폴리곤 형상들(P1)을 포함하는 제1 레이아웃(L1)을 수신하는 단계를 포함한다. 폴리곤 파라미터들(W1, H1) 상의 부등식 제한조건들(C)을 포함하는 디자인 룰들(R1, R2)이 수신된다. 제2 레이아웃(L2)은 제1 레이아웃(L1)의 폴리곤 파라미터들(W1) 중 적어도 하나에 대한 값의 랜덤 변화(ΔW12)를 적용함으로써 계산된다. 제한조건들에 의해 정의되는 하나 이상의 파라미터 경계들(B1, B2)에 관한 폴리곤 파라미터들(W1, H1)의 각 슬랙(S1, S2)이 최소화 될 때까지 상기 제2 레이아웃(L2)의 폴리곤 파라미터들(W1, H1)의 값을 변화시킴으로써 제3 레이아웃(L3)이 계산된다. 제3 레이아웃(L3)은 후보 테스트 레이아웃으로서 저장될 수 있다.

Description

DRC 데크 검증을 위한 테스트 레이아웃들의 자동 생성{Automatic generation of test layouts for verifying a DRC deck}
본 발명은 집적 회로의 디자인 검증을 위한 컴퓨터-이용 테스팅에 관한 것으로, 보다 구체적으로는 디자인 룰 체킹 데크의 검증을 위한 테스트 레이아웃들의 자동 생성 방법에 관한 것이다.
본 발명은 집적 회로의 디자인 검증을 위한 컴퓨터-이용 테스팅에 관한 것으로, 보다 구체적으로는 디자인 룰 체킹 데크의 검증을 위한 테스트 레이아웃들의 자동 생성 방법에 관한 것이다.
DRC(Design Rule Checking)는 집적 회로의 레이아웃 디자인이 디자인 룰이라는 일련의 권장 파라미터들을 충족시키는지 여부를 결정하는데 사용되는 전자 설계 자동화(Electronic Design Automation, EDA)의 영역이다. 일반적인 집적 회로에서의 복잡성 및 회로 부분들의 수 때문에, DRC 프로세스는 일반적으로 CAD 소프트웨어 또는 보다 구체적으로 DRC 소프트웨어를 사용하여 수행된다. DRC 소프트웨어의 예로는 Mentor Graphics
Figure 112017111704196-pct00001
의 Calibre
Figure 112017111704196-pct00002
가 있다. 일반적으로, 디자인 룰들은 특정 제조 공정에만 적용되고, 제조 공정의 다양성을 고려하여 충분한 마진을 보장하기 위해, 예를 들어 특정 기하 및 연결 제한을 지정할 수 있다. 특정 프로세스에 대한 디자인 룰의 세트는 DRC 데크(DRC deck), DRC 런-세트(DRC run-set) 또는 룰 데크(rule deck)라고 한다. 일반적인 DRC 데크는 수백에서 수천 개의 디자인 룰 체크를 실행하기 위한 지침을 포함할 수 있다. 예를 들어, DRC 데크는 제조될 집적 회로를 나타내는 폴리곤 형상을 정의하는 레이아웃 다자인 파일에 대한 디자인 룰 체크를 실행하는 방법을 프로세서에 지시하는 명령 언어 입력 파일을 포함할 수 있다.
DRC 데크의 구현을 검증하기 위해, 테스트 레이아웃들의 모음은 디자인 룰 체크를 통과할 것으로 예상되는 케이스들 -소위 말하는 '통과 케이스들(pass cases)', 그리고 디자인 룰 체크에 실패할 것으로 예상되는 케이스들 -소위 '실패 케이스들(fail cases)'로 구성될 필요가 있다. 예를 들어, 디자인 룰의 특정 요구 사항(제한조건)이 올바르게 구현되었는지 여부를 테스트하려는 경우, 적어도 하나의 실패 케이스와 그 요구 사항에 대한 적어도 하나의 통과 케이스를 생성하는 것이 유용하다. 하지만, 디자인 룰 데크에서 특징을 나타내는 에지 및 형상의 유효한 토폴로지들의 수는 파라미터 값들의 조합의 수와 마찬가지로, 그 수와 함께 매우 빠르게 증가하기 때문에, 테스트 레이아웃들 또는 패턴들의 양이 상당히 커질 수 있다는 것을 알 수 있다. 테스트 레이아웃들의 수동 생성은 레이아웃들을 만드는 임무를 가진 사람의 상상력, 전문 지식 및 근면함에 의해 제한된다. 따라서, 컴퓨터를 사용하여 테스트 레이아웃들을 자동 생성하는 것이 바람직하다.
예를 들어, 미국 특허 제 8,875,064 호는 자동화된 디자인 룰 체크(DRC) 테스트 케이스 생성을 설명하고, 이러한 방법은 집적 회로 다자인에서 에러 마커의의 좌표를 추출하는 단계, 상기 좌표를 사용하여 에러 폴리곤을 생성하는 단계, 상기 에러 폴리곤을 터치하는 디자인에서 폴리곤을 선택하는 단계, 선택된 다각형을 둘러싸는 직사각형을 식별하는 단계, 및 상기 직사각형 내에 포함 된 디자인의 데이터에 기초하여 테스트 케이스를 생성하는 단계를 포함한다. 불행히도, 공지된 방법은 특정 DRC 데크의 룰들을 커버하기에 적합하지 않을 수 있는 집적 회로 디자인의 에러 마커들에 의존한다.
따라서, 특히 DRC 데크를 검증하는데 특히 관련이 있는 테스트 레이아웃들을 제공하기 위해, DRC 데크를 검증하기 위한 테스트 레이아웃의 자동 생성을 개선하는 것이 바람직하다.
본 발명의 일 측면은 DRC 데크를 검증하기위한 테스트 레이아웃의 자동 생성을 위한 컴퓨터-구현 방법을 제공한다. 예를 들어, DRC 데크는 선택된 제조 공정으로의 회로 디자인의 적합성 검증을 위한 설계 룰 검사를 포함한다. 상기 방법은 복수의 폴리곤 파라미터들에 의해 정의된 하나 이상의 폴리곤 형상들을 포함하는 제1 레이아웃을 수신하는 단계를 포함한다. 예를 들어, 하나 이상의 폴리곤 형상들은 회로 디자인의 하나 이상의 레이어들에서의 회로 부분들을 나타낸다. 상기 방법은 상기 폴리곤 파라미터들에 대한 하나 이상의 제한조건들을 포함하는 디자인 룰들을 수신하는 단계를 포함한다. 예를 들어, 제한조건은 제한조건 충족 여부에 따라 파라미터들에 대해 실행 가능 영역 및 실행 불가능 영역 간에 폴리곤 파라미터들에 대한 파라미터 경계를 정의한다. 상기 방법은 제1 레이아웃의 적어도 하나의 폴리곤 파라미터들에 대한 값의 랜덤 변화를 적용함으로써 제2 레이아웃을 계산하는 단계를 포함한다. 상기 방법은 하나 이상의 파라미터 경계에 관한 폴리곤 파라미터들의 각 슬랙 또는 마진이 최소화될 때까지 제2 레이아웃의 폴리곤 파라미터들의 값을 변경함으로써 제3 레이아웃을 계산하는 단계를 포함한다. 상기 방법은 상기 제3 레이아웃을 상기 DRC 데크의 검증을 위한 후보 테스트 레이아웃으로서 저장하는 단계를 포함한다. 예를 들어, 후보 테스트 레이아웃들은 디자인 룰들을 만족하는지 여부에 따라 통과 케이스 또는 실패 케이스로 저장될 수 있다.
테스트 레이아웃이 완전한 방식으로 생성될 때, 그러한 레이아웃의 수는 기하 급수적으로 증가하여 실용적이지 못하다는 것이 현재 인식되고 있다. 반면에, 테스트 레이아웃들이 그것들의 수를 제한하는 등의 제한된 방식으로 생성되는 경우, 예를 들어 몇몇 공간이나 너비에 범위를 넣음, 중요한 통과 및 실패 케이스를 놓치기 쉽기 때문에, 테스트된 디자인 룰들에 대해 나쁜 커버리지를 야기한다. 본 방법을 사용하면 기본적으로 레이아웃들을 랜덤 방식으로 완전하게 생성할 수 있지만, 랜덤 레이아웃들은 디자인 룰을 테스트하기에 가장 관심있는 레이아웃에 순차적으로 최적화된다. 효과적으로, 모든 가능한 레이아웃들과 토폴로지들의 세트를 랜덤 방식으로 반복적으로 샘플링할 수 있고, 최적화 후에, 최소 마진(슬랙(slack))으로 디자인 룰 체크를 통과하거나 실패하기 때문에 관심있는 레이아웃만이 테스트 레이아웃들의 모음에 추가된다. 랜덤 생성에만 의존하는 방법들에 비해 이러한 방법의 장점은 상대적으로 적은 수의 테스트 레이아웃들로 이미 우수한 커버리지를 획득할 수 있다는 것이다. 최적화에만 의존하는 방법들에 비해 이러한 방법의 장점은 랜덤 샘플링이 사전에 예상되지 않은 레이아웃들에 대해서도 커버리지를 증가시킬 수 있다는 것이다. 또한, 커버리지는 프로그램의 런타임에 따라 증가하고, 충분한 시간이 주어지면 100%에 접근한다. 물론, 커버리지가 넓을수록 더 많은 수의 테스트 레이아웃들이 필요하지만, 그 수는 랜덤 생성만을 기초로 하는 방법처럼 '익스플로드(explode)'하지 않다.
본 방법은 디자인 룰 테스트에 보다 유용하도록 편향된 솔루션 또는 레이아웃들을 생성할 수 있다. 예를 들어, 관심있는 케이스는 제한조건에 따라 요구되는 값으로부터 1 단위(최소 그리드 거리) 이상 벗어나는 공간을 갖는 경우일 수 있다. 요구되는 값과 더 큰 차이가 있는 경우는, 추가 커버리지가 작거나 거의 없으므로 안전하게 무시될 수 있다는 것을 알 수 있다. 본 발명의 일 측면에 따르면, 생성된 테스트 레이아웃들의 수는 테스트에 관심있는 것으로 간주되는 제한조건의 경계에 가까운 테스트 것들에 대하여 레이아웃의 선택을 바이어 싱함으로써 최소화된다. 그러한 경계의 경우 에지 위치들의 작은 변화 -일반적으로 1 단위-는 테스트된 측면을 본질적으로 달라지게 한다. 예를 들어, 상기 측면이 최소 거리 요구 사항일 경우, 에지가 1 단위로 두 번 이동하면 요구 사항의 상태가 최소 슬랙을 갖는 이행에서 최소 슬랙을 갖는 요구 사항을 만족시키지 않는 정확한 준수 상태로 바뀔 수 있다.
폴리곤 파라미터들을 랜덤화하는 단계에서, 토폴로지 랜덤화뿐만 아니라 거리 무작위 화를 모두 포함함으로써, 특히 관심있는 경우에 효과적으로 도달할 수 있음을 알 수 있다. 토폴로지 랜덤 화에서, 폴리곤 형상들의 에지의 수 또는 시퀀스가 변경될 수 있고, 이것은 가능한 다른 디자인 룰들이 적용될 수 있음을 의미한다. 예를 들어, 거리 체크는 두개의 형상들이 나란히 놓여 있는지 또는 서로 위에 놓여 있는지 여부에 따라 다를 수 있다. 거리 랜덤화에서, 폴리곤 형상들의 에지는 제한조건들의 경계에 관한 거리를 변화시킬 수 있고, 이것은 토폴로지 내에서 상이한 경계 케이스들을 발견하게 할 수있다. 거리 변화는 또한 통과 및 실패 사이를 교차할 수도 있고, 이것은 디자인 룰들을 테스트하기 위해 모두 관심있는 것이다. 또한, 토폴로지 변화 또는 거리 변화 사이의 선택 자체가 랜덤화되어 관심있는 레이아웃들의 수, 다시 말해 상이한 제한조건에 대한 통과/실패의 경계 사례를 효과적으로 샘플링 할 수 있다. 상이한 토폴로지들에서 후보 테스트 레이아웃을 신속하게 발견하기 위해, 랜덤 선택을 토폴로지 랜덤화의 선택으로 편향시키는 것이 바람직하다.
슬랙을 최소화하면서, 특정 토폴로지 내에서 거리 최소화에 중점을 두는 것이 바람직하다. 이러한 방식에서, 그것은 최소화하면서 동시에 상이한 디자인 룰이 적용되는 것을 방지할 수 있다. 예를 들어, 폴리곤 파라미터들이 토폴로지 보존을 위한 제한조건의 경계를 넘지 않도록 방지할 수 있다. 파라미터의 슬랙을 최소화하는 것은, 예를 들어 필드 최적화 문제들로 알려진 소위 슬랙 변수의의 추가를 통해 부등식 제한조건들(inequality constraints)을 평등으로 변환함으로써 수행될 수있다. 예를 들어, 제한조건은 파라미터 값들의 함수인 슬랙 변수로서 공식화될 수 있다. 예를 들어, 슬랙 변수가 양수인 경우, 이것은 제한조건이 충족됨(실행 가능 영역)을 의미한다. 일반적으로 슬랙 변수가 음수인 경우, 이것은 제한조건이 충족되지 않음(실행 불가능)을 의미한. 하지만, 본 방법에서 그러한 불가능 영역들은 또한 실패한 경우에 대한 관심있는 테스트 레이아웃일 수 있다. 슬랙 변수의 절대 값을 최소화함으로써, 통과 또는 실패 사이의 교차 측면에있는 테스트 레이아웃을 찾기 위해 파라미터들이 수정될 수 있다. 일반적으로, 레이아웃은 멀티플 슬랙 변수들의 최소화를 통해 관심있는(경계선) 테스트로 최적화 될 수 있다. 적절한 테스트 레이아웃에 대한 빠른 커버리지를 위해, 최저 초기 슬랙을 최소화하는 것을 우선으로 하는 것이 바람직하다. 다른 슬랙 변수들은 또한 낮은 순서에서 높은 순서로 처리될 수 있고, 예를 들어 이전 슬랙 변수가 최소화된 후에 결정될 수 있다. 추가적인 제한조건으로서, 다음 슬랙 변수를 최소화할 때, 임의의 이전 슬랙 변수들을 그것들의 최소값에 고정하는데 유리할 수 있다.
이러한 절차는 디자인 룰들의 다양한 측면들을 테스트하기 위한 멀티플 테스트 레이아웃들을 생성하도록 반복될 수 있다. 새롭게 발견된 레이아웃들과 이전에 발견된 것과 같이 동일한 레이아웃들 사이의 비율을 추적함으로써, 커버리지가 충분하다고 판단되는 경우, 반복을 중단할지 여부를 결정할 수 있다. 예를 들어, 생성된 레이아웃들의 10% 미만이 이전에 생성된 레이아웃들과 고유하게 다른 경우, 유용한 레이아웃의 상당 부분이 발견되었다고 판단할 수 있다. 후보 레이아웃들을 또한 고유한 관련 케이스, 예를 들어 디자인 룰들의 임의의 조합의 통과 및 실패를 한 번만 테스트 하는 케이스만 유지하도록 필터링될 수 있다. 예를 들어, 서로 최소로만 상이한, 통과 케이스 및 실패 케이스를 갖는 한 쌍의 레이아웃들은 디자인 룰의 경계선 경우를 정확하게 테스트하는데 관심있을 수 있다. 예를 들어, 통과 레이아웃은 하나의 그리드 (최소) 거리만큼 다른 에지 위치 쉬프터에 의해 실패한 레이아웃과 다를 수 있다.
각 반복마다 새로운 시드 레이아웃을 수신하거나, 또는 동일한 시드가 사용될 수 있다. 새로운 시드 레이아웃은 이전에 발견된 레이아웃들에 기초할 수 있다. 이것은 이전에 발견된 레이아웃이 이미 경계선의 경우이므로 하나의 파라미터 값을 변경함으로써, 새로운 레이아웃이 적어도 하나 이상의 제한조건의 경계들 중 일부에 근접할 확률이 증가한다는 이점이 있다. 최종 발견된 레이아웃을 다음 반복을 위한 시드로 사용함으로써, 레이아웃들은, 예를 들어 초기 시드 레이아웃과 다른 토폴로지의 관점에서 추가로 이동할 수있는 파라미터 공간을 통과하는 랜덤 경로에 의해 발견 될 수 있다. 물론 조합도 가능하다. 새로운 고유한 레이아웃들을 찾는 성공률에 따라 이전에 발견된 레이아웃들에서 시드 레이아웃의 선택을 편향하는 것도 가능하다. 예를 들어, 특정 시드 레이아웃이 더 고유한 테스트 레이아웃을 찾는 관점에서 고갈되면, 해당 시드 레이아웃은 덜 자주 발생하도록 편향될 수 있다.
본 개시의 제2 측면은 DRC 데크를 검증하기 위한 테스트 레이아웃들의 자동 생성을 위한 컴퓨터 시스템을 제공하고, 상기 컴퓨터 시스템은 메모리 및 상기 메모리에 결합된 하나 이상의 프로세서를 포함하며, 상기 메모리는 실행시 하나 이상의 프로세서에 의해 본원에 설명된 하나 이상의 방법을 포함하는 동작을 수행하도록 하는 명령들의 세트를 포함한다.
본 발명의 제3 측면은 컴퓨터 프로그램으로 부호화된 비-일시적 컴퓨터 저장 매체를 제공하고, 상기 컴퓨터 프로그램은 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들이 제1항 내지 제12항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하도록 하는 명령들의 세트를 포함한다.
본 방법 및 시스템은 궁극적으로 집적 회로의 제조에 이르는 설계 및 생산 공정에서의 적용을 발견할 수 있음을 알 것이다. 하나의 응용에서, 본 발명은 본원에 설명된 테스트 레이아웃들의 자동화된 생성을 포함하는 DRC 데크를 검증하고 테스트 레이아웃들을 사용하여 DRC 데크를 검증하는 방법을 제공한다. 추가 응용에서, 본 발명은 본원에 설명된 바와 같이 DRC 데크의 검증을 포함하고, 검증된 DRC 데크로 회로 디자인을 검증하는 단계를 포함하는 회로 디자인을 검증하기 위한 방법을 제공한다. 추가 응용에서, 본 발명은 회로를 제조하는 방법을 제공하고, 이러한 방법은 본원에 설명된 회로 디자인을 검증하는 단계 및 검증된 회로 디자인을 제조하는 단계를 포함한다. DRC 데크의 검증에 의해, DRC 데크는 회로를 제조하기 위해 증가된 수율을 야기할 수 있는 회로 디자인를 효과적으로 검증하기데 더 신뢰할 수 있다.
본 발명의 장치, 시스템 및 방법의 이들 및 다른 특징, 측면 및 이점은 다음의 설명, 첨부된 청구 범위 및 첨부 도면으로부터 더 잘 이해될 것이다:
도 1a는 파라미터 공간에서 테스트 레이아웃들을 생성하는 경로를 계략적으로 도시한다;
도 1b는 테스트 레이아웃의 생성 동안의 중간 레이아웃들을 개략적으로 도시한다;
도 2a는 디자인 룰들을 통과하는 제1 랜덤 생성된 레이아웃 내의 두 개의 폴리곤 형상들을 개략적으로 도시한다;
도 2b는 최적화 후의 도 2a의 랜덤 레이아웃으로부터 유도된 제1 테스트 레이아웃을 개략적으로 도시한다;
도 3a는 디자인 룰들을 실패한 제2 랜덤 생성된 레이아웃 내의 두 개의 폴리곤 형상들을 개략적으로 도시한다;
도 3b는 최적화 후의도 3a의 랜덤 레이아웃으로부터 유도된 제2 테스트 레이아웃을 개략적으로 도시한다;
도 4a는 디자인 룰을 통과하지만 도 2a와는 상이한 토폴로지를 갖는 제3의 랜덤 생성된 레이아웃 내의 두 개의 폴리곤 형상들을 개략적으로 도시한다;
도 4b는 최적화 후의도 4a의 랜덤 레이아웃으로부터 유도된 제3 테스트 레이아웃을 개략적으로 도시한다;
도 5a는 제1 폴리곤 형상 및 제2 폴리곤 형상의 코너 포인트의 상이한 위치를 묘사함으로써 후보 테스트 레이아웃을 개략적으로 도시한다;
도 5b는 후보 테스트 레이아웃을 개략적으로 도시한다;
도 6a는 예시적인 디자인 룰을 개략적으로 도시한다;
도 6b는 도 6a의 디자인 룰의 구현을 검증하기 위한 테스트 레이아웃들을 개략적으로 도시한다;
도 7a는 디자인 룰의 또 다른 예시를 개략적으로 도시한다;
도 7b는 도 7a의 디자인 룰의 구현을 검증하기 위한 테스트 레이아웃을 개략적으로 도시한다;
도 8은 테스트 레이아웃들을 생성하는 방법을 포함하는 흐름도를 개략적으로 도시한다;
도 9는 테스트 레이아웃이 DRC 데크를 검증하는데 사용될 수 있는 예시적인 방법을 개략적으로 도시한다.
달리 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어들(기술 및 과학 용어들 포함)은 설명 및 도면의 문맥에서 읽을 시, 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 몇몇 경우들에서, 잘 알려진 장치 및 방법의 상세한 설명은 본 시스템 및 방법의 설명을 모호하게하지 않도록 생략될 수있다. 본원에서 사용되는 단수 형태 "하나(a)", "하나(an)"및 "상기(the)"는 문맥 상 다르게 지시하지 않는 한 복수 형태를 포함한다. 용어"및/또는(and/or)"은는 하나 이상의 관련된 목록 항목의 임의의 및 모든 조합을 포함한다. "포함한다(comprises)" 및/또는 "포함하는(comprising)"이라는 용어는 명시된 특징의 존재를 나타내지만 하나 이상의 다른 특징의 존재 또는 추가를 배제하지 않는 것으로 이해될 것이다. 구조들 또는 컴포넌트들 간의 연결이 기술될 때, 이러한 연결은 달리 명시되지 않는 한, 직접 또는 중간 구조들 또는 컴포넌트들을 통해 확립될 수 있음을 이해할 것이다. 도면에서, 시스템 및 컴포넌트의 절대 및 상대적 크기는 명확하게하기 위해 과장될 수 있다. 실시예는 본 발명의 가능한 이상적인 실시예 및 중간 구조의 개략도 및/또는 단면도를 참조하여 설명될 수 있다. 설명 및 도면에서, 동일한 번호는 동일한 요소를 지칭한다.
도 1a는 두 개의 파라미터들(H1 및 W1)에 걸친 파라미터 공간을 개략적으로 도시한다. 본 명세서에 설명되는 레이아웃들의 랜덤화 및 최적화는, 예를 들어 폴리곤 파라미터의 파라미터 공간을 통한 경로에 의해 예시될 수 있다. 도 1b는 상이한 레이아웃 L1 내지 L3에 대한 폴리곤 파라미터 H1 및 W1의 상이한 값에 따른 폴리곤 형상 P1을 개략적으로 도시한다.
도 1a에 도시 된 실시 예에 따르면, 파라미터 공간은 통과 영역 "P"(흰색 배경)과 실패 영역 "F"(사선 패턴)으로 분할된다. 통과 영역 "P"에 속하는 파라미터 공간 내의 점은 디자인 룰들(R1, R2)의 제한조건들(C)의 조합을 만족시킨다. 실패 영역 "F"에 속하는 파라미터 공간에서의 점은 디자인 룰들(R1 및 R2) 중 하나 이상을 만족시키지 못한다. 예를 들어, 디자인 룰들(R1, R2)은 디자인 룰 체크들의 더 큰 세트 또는 검증될 DRC 데크의 서브 세트, 다시 말해 테스트 레이아웃이 생성될 서브 세트와 동일 할 수 있다.
도 1b에 도시된 실시예에 따르면, 이러한 경우의 파라미터는 레이아웃에서 폴리곤(P1)의 높이(H1) 및 폭(W1)을 나타낸다. 디자인 룰(R1)에 따르면, 폴리곤(P1)의 폭은 0.01과 0.04 사이이거나 0.10보다 커야한다. 디자인 룰(R2)은 비슷하지만 폴리곤(P1)의 높이(H1)에 대해 유사하다. 디자인 룰은 다수의 제한 "C"의 로직 또는 부울 조합을 포함할 수 있다는 것을 알 수 있다. 기호 "&"는 부울 "AND"연산을 나타내고 기호 "|"는 다른 제한조건의 요구 사항 사이의 부울 "OR"연산을 나타낸다. 디자인 룰들(R1 및 R2)은 또한 예를 들어 R1및 R2가 모두 만족하는 부울 연산자에 의해 조합될 수 있다.
일 측면에 따르면, 본 발명은 DRC 데크를 검증하기 위한 테스트 레이아웃들의 자동 생성을 위한 컴퓨터 구현 방법을 제공한다. 일 실시예에서, 상기 방법은 시드 레이아웃이라고도 하는 제 1 레이아웃(L1)을 수신하는 단계를 포함한다. 일 실시예에서, 시드 레이아웃은 GDS 포맷으로 기술되며, 여기서 변경될 폴리곤 형상들이 주어진다. 유효한 시작 토폴로지가 있는 한, 형상들의 가장자리의 정확한 위치는 그리 중요하지 않다. 예를 들어 임의의 초기 파라미터를 사용하여, 초기 시드 레이아웃 자체가 자동으로 생성될 수도 있다. 대안적으로 이전에 저장된 레이아웃을 시드로 사용하거나 초기 시드를 수동으로 만들 수 있다. 일 실시예에서, 레이아웃(L1)은 복수의 폴리곤 파라미터들(W1, H1)에 의해 정의되는 폴리곤 형상(P1)을 포함한다. 예를 들어, 폴리곤 형상(P1)은 회로 디자인의 하나 이상의 레이어들에서 회로 부분을 나타낸다.
일 실시예에서, 이러한 방법은 폴리곤 파라미터들(W1, H1) 상에 제한조건들(C)을 포함하는 디자인 룰들(R1, R2)을 수신하는 단계를 포함한다. 각각의 디자인 룰은 폴리곤 파라미터들(W1, H1)에 대한 하나 이상의 제한조건들(C)를 포함할 수있다. 일반적으로, 제한조건들 중 적어도 일부는 부등식 제한조건들이고, 예를 들어 하나 이상의 파라미터들에 대해 허용되는 값들의 개방(open-ended) 범위를 별도로 또는 조합하여 정의하는 방정식으로 표현된다. 물론, 디자인 룰은 다른 제한조건들을 포함할 수도있고, 예를 들어 가변 폴리곤 파라미터들 중 하나를 정의하거나 제거하는 데 사용된다.
제한조건들(C)은 가능한 제한조건이 유지되는 실행 가능 영역과 제한조건이 만족되지 않는 실행 불가능한 영역 사이의 다각형 파라미터들(W1, H1)에 대한 파라미터 공간에서 각각의 파라미터 경계들(B1, B2)(본 도면에서 점선으로 표시됨)를 정의하는데 사용될 수 있다. 예를 들어, 부등식 제한조건(예를 들어, A<B, A≤B, A>B, A≥B)의 경우 파라미터 공간에 일반적으로 실행 가능 영역이 존재하고, 여기서 부등식 제한조건은, 부등식 제한조건이 만족되지 않는 실행 불가능 영역으로부터 파라미터 경계에 의해 분리되어 유지된다.
파라미터 경계는 부등식 제한조건이 사인(sign)보다 크거나 작은지(">" 또는 "<") 또는 사인과 더 크거나 더 작은 기호("≥" 또는 "≤")를 포함하는지에 따라 실행 가능 또는 실행 불가능 영역 중 하나에 포함될 수 있다. 또 다른 예시로서, 등식 제한조건의 경우 실행 가능 영역과 파라미터 경계는 하나의 라인에서 일치할 수 있지만 실행 불가능 영역은 파라미터 경계를 제외한 모든 곳에서 일치할 수 있다.
일 실시예에서, 파라미터 경계들(B1, B2)은 폴리곤 파라미터(W1, H1)가 하나 이상의 디자인 룰들(R1, R2)을 통과 ("P") 및 실패("F")하는 사이를 교차하는 부분 집합으로서 더 정의된다. 각 제한조건 "C"의 실행 가능 영역은 전형적으로 하나 이상의 디자인 룰들에서 따르는 통과/실패 영역과 동일하지 않음을 알 수 있다. 예를 들어, 제한조건들 중 하나(예를 들어, W1≤0.04)에 대해 영역이 실행 가능할 수 있고, 또 다른 제한 조건(예를 들어, W1≥0.10)에 대해 실행 불가능할 수 있다. 논리적 "OR" 연산을 사용하여 제한조건을 결합함으로써, 어느 제한조건의 실행 가능 영역이 디자인 룰에 정의된 조합에 대해 실행 가능할 수 있다. 반대로, 논리적 "AND" 연산을 사용하여 제한조건을 결합함으로써, 두 제한조건이 모두 충족되는 경우에만 조합 영역을 실행할 수 있다.
따라서, 파라미터 경계들(B1, B2)은 하나 이상의 디자인 룰에 따라 각각의 제한조건에 대해 개별적으로 또는 이들의 부울 조합으로 정의될 수 있다. 일 실시예에서, 파라미터 경계들은 레이아웃에서 토폴로지(예를 들어, 시퀀스 또는 에지들의 수)를 보존하는 제한조건들을 포함한다. 상이한 유형의 제한조건들 각각에 대해 파라미터 경계들(B1, B2)를 정의함으로써, 최적화는 예를 들어 디자인 룰의 일부로서 정의될 수 있는 제조 가능 제한조건(manufacturability constraint) 및/또는 위상 제한조건(topological constraint)에 관한 슬랙의 최소화를 포함 할 수 있다. 에 관하여, 토폴로지 제한조건들(topology constraints)은 제조 가능 제한조건들과는 별도로 제공 될 수도 있고, 여기서 제조 가능 제한조건들의 세트는 특정 토폴로지에 대해 정의되거나 제조 가능 제한조건(예를 들어, 거리 체크)이 상이한 토폴로지들에 대해 자동으로 유도된다. 디자인 룰들 자체도 부울 연산자로 결합될 수 있다. 예를 들어, 디자인 룰들은 분리적으로 또는 결합적으로 조합될 수 있다. 현재 관심있는 테스트 레이아웃이 특히 검사될 거의 경계와 토폴로지 변경에서 발생할 수 있다는 것이 발견되었다.
일 실시예에서, 이러한 방법은 제1 레이아웃 (L1)의 폴리곤 파라미터(W1) 중 적어도 하나에 값의 랜덤 변화(ΔW12)를 적용하여 제2 레이아웃(L2)을 계산하는 단계를 포함한다. 한 번에 최대 하나의 폴리곤 파라미터를 랜덤으로 변화시킴으로써, 임의의 다른 파라미터가 어떤 경우에는 여전히 최적인, 다시 말해 그들의 각각의 파라미터 경계 근처에 있기 때문에 랜덤화 후에 최적화된 레이아웃을 다시 찾는 것이 더 쉬울 수 있다. 한 번에 두 개 이상의 파라미터들을 랜덤으로 변경하면 상이한 토폴로지들을 더 빨리 얻을 수 있다. 물론 조합도 가능하다.
일 실시예에서, 적어도 하나의 폴리곤 파라미터(W1)의 값의 랜덤 변화(ΔW12)는 랜덤 생성된 수에 기초하여 폴리곤 파라미터(W1)를 수정하는 것을 포함한다. 다른 실시예 또는 추가 실시예에서, 랜덤 변화(ΔW12)는 폴리곤 파라미터(W1)의 값을 미리 선택된 범위에서 선택된 랜덤 넘버로 가산, 감산, 승산 또는 나눗셈하는 것을 포함한다. 또 다른 또는 추가적인 실시예에서, 미리 선택된 범위는 제2 레이아웃(L2)의 스케일에 기초한다. 일 실시예에서, 미리 선택된 범위는 파라미터 경계들(B1, B2)에 대한 제2 레이아웃(L2)의 근접성에 기초한다.
일 실시예에서, 폴리곤 파라미터들(W1, H1)은 랜덤 변화(ΔW12)의 결과로서 실행 가능 영역과 실행 불가능 영역 사이에서 하나 이상의 파라미터 경계들(B1, B2)을 교차하도록 또는 그 반대로 허용된다. 다시 말해, 제2 레이아웃(L2)은 예를 들어 폴리곤 형상에 대한 상이한 시퀀스 및/또는 에지의 수들을 갖는 제1 레이아웃(L1)과 상이한 토폴로지를 가질 수 있다.
일 실시예에서, 제1 레이아웃의 랜덤 변경은 토폴로지 랜덤화(ΔT1) 및/또는 거리 랜덤화를 포함할 수 있다. 토폴로지 랜덤화에서, 폴리곤 파라미터의 랜덤 변경은 제1 레이아웃(L1)과 비교되는 제2 레이아웃(L2) 내의 폴리곤 형상들(P1, P2)의 에지 또는 시퀀스를 변경한다. 거리 랜덤화에서, 폴리곤 파라미터의 임의의 변경은 제1 레이아웃과 비교하여 제2 레이아웃에서 형상들의 에지들 사이의 거리가 변경한다. 일 실시예에서, 제2 레이아웃(L2)을 계산할 때, 적어도 토폴로지 랜덤화 및 거리 랜덤화로부터 랜덤 선택이 이루어진다.
일 실시예에서, 이러한 방법은 하나 이상의 파라미터 경계들(B1, B2)가 최소화되는 것에 관한 폴리곤 파라미터들(W1, H1)의 각각의 슬랙(S1, S2)까지 제2 레이아웃(L2)의 폴리곤 파라미터들(W1, H1)의 값을 변화시킴으로써 제3 레이아웃(L3)을 계산하는 단계를 포함한다. 다시 말해, 제한조건에 대한 폴리곤 파라미터들의 마진이 최소화된다. 일 실시예에서, 슬랙은 파라미터 경계로부터 그리드 간격(DRC 프로그램의 해상도) 이하로 최소화된다.
일 실시예에서, 제한조건의 슬랙(S1, S2)은 각각의 부등식 제한조건에 폴리곤 파라미터들(W1, H1)의 값을 채우고, 슬랙(S1, S2)을 제한조건 방정식의 좌변과 우변 사이의 값의 차이와 동일하게 설정함으로써 계산된다. 파라미터들이 제한조건의 실행 가능 또는 실행 불가능 영역에 있을 수 있으므로, 슬랙의 절대 값을 최소화하는 것이 유리할 수 있다. 이것은 파라미터가 여전히 관심있는 테스트 레이아웃인 파라미터 경계의 '불가능(wrong)'쪽에 있을 수도 있다는 점을 고려한다.
일 실시예에서, 최소화하기 전에, 복수의 제한조건의 각각의 초기 슬랙들(S1, S2)이 계산되고; 최소화 단계는 가장 낮은 초기 슬랙(S1)을 최소화하기 위해 가장 낮은 초기 슬랙(S1)을 갖는 제한조건에서 폴리곤 파라미터들(H1)을 변화 시키도록 바이어 싱된다. 일 실시예에서, 슬랙들(S1, S2)은 가장 낮은 초기 슬랙(S1)으로 시작하여 순서대로 최소화된다; 슬랙들을 재 계산하고; 제1 최소화 이후에 다음으로 가장 낮은 슬랙(S2)을 최소화한다.
일 실시예에서, 폴리곤 파라미터들(W1, H1)은 제2 레이아웃(L2)과 제3 레이아웃(L3) 사이의 슬랙(S1, S2)을 최소화하면서 파라미터 경계들(B1, B2)의 전부 또는 일부를 교차하는 것이 방지된다. 이러한 방식으로, 레이아웃의 토폴로지는 여전히 파라미터 경계를 향해 최적화하면서 보존될 수 있다. 또 다른 실시예 또는 추가 실시 예에서, 슬랙을 최소화함으로써 제3 레이아웃(L3)을 계산할 때, 폴리곤 파라미터들(W1, H1)은 하나 이상의(예를 들어, 모든) 디자인 룰들(R1, R2)의 제한조건의 경계를 넘는 것이 방지된다. 이러한 방법으로 레이아웃은 통과 케이스 "P"에서 실패 케이스 "F"로 또는 그 반대로 문자를 변경하지 않는다. 예를 들어, 슬랙 변수들(S1, S2)의 최소화는 매개 변수 경계 B1, B2를 교차하는 것을 방지하는 수정된 제한조건의 영향을 받을 수 있다. 일 실시예에서, 디자인 룰들(R1, R2)의 하나 이상의 제한조건은 실행 가능하고 실행 불가능한 영역을 반전시킴으로써 수정 될 수 있다. 일 실시예에서, 수정된 제한 조건은 제2 레이아웃(L2)의 폴리곤 파라미터들(W1, H1)이 수정된 부등식 제한조건을 만족시킬 때까지 디자인 룰들(R1, R2)의 제한조건(C) 중 하나 이상을 반전시킴으로써 유도된다.
일 실시예에서, 이러한 방법은 DRC 데크의 검증을 위한 후보 테스트 레이아웃으로서의 제3 레이아웃(L3)을 저장하는 단계를 포함한다. 예를 들어, 제3 레이아웃은 메모리 또는 디스크, 또는 임의의 다른 가능한 로컬 또는 원격 저장 매체에 저장될 수 있다. 또 다른 실시예에서, 제3 레이아웃(L3)의 폴리곤 파라미터들(W1, H1)에 대한 값이 수신되는 모든 디자인 룰들(R1, R2)을 만족 시키는 경우 통과 케이스 "P"로 저장되거나, 또는 그렇지 않으면 실패 케이스 "F"로 저장된다. 물론 통과 및 실패 케이스로 분류는 나중에 수행될 수 있다.
일 실시예에서, 상기 방법은 예를 들어, 후보 테스트 레이아웃들(L3)을 다음 반복에서 수신된 새로운 시드 레이아웃으로 취함으로써 수행될 수 있다. 따라서, 제2 반복에서, 동일 또는 다른 하나 이상의 폴리곤 파라미터를 랜덤을로 변경하는 단계를 포함할 수 있다. 예를 들어, 도 1a에 도시된 바와 같이, 레이아웃(L3)으로부터 파라미터 값(H1)의 랜덤 변화(ΔW34)에 의해 레이아웃(L4)가 계산된다. 랜덤화된 레이아웃(L4)는 이후 파라미터 경계(B3)에 대한 슬랙을 최소화함으로써 레이아웃(L5)에 최적화된다. 그리고 이러한 과정은 L6에서 L9의 레이아웃들을 생성하기 위해 반복될 수 있다.
여기에 설명된 폴리곤 형상은 각각의 회로 부분을 나타낼 수 있다. 회로 부분을 포함하는 레이아웃 데이터는 집적 회로의 레이아웃을 나타낼 수 있다. 집적 회로는 상이한 회로 레이어들의 멀티-레이어 스택에 포함될 수 있다. 레이아웃 데이터는 집적 회로의 레이어들 내의 물리적 구조들과 매칭하는 데이터 레이어들의 회로 부분들을 포함할 수 있다. 대안으로 또는 추가적으로, 레이아웃 데이터는 예를 들어 부울 조합 및/또는 물리 레이어들 및 구조들의 OPC와 같은 다른 유도로 인해 생성되는 유도된 데이터 레이어에서의 회로 부분을 포함할 수 있다. 회로 부분은, 예를 들어 폴리곤 형상, 다시 말해 그 원주 내에서 표면을 형성하는 연결된 선분으로 이루어진 형상에 의해 레이아웃 데이터에 표현될 수 있다. 하나의 정의에 따르면, 원은 또한 폴리곤 형상으로 간주될 수 있다. 하지만, 예를 들어 디자인 룰 체크 프로세스의 측면에서의 계산으로부터, 회로 부분들은 예를 들어 직사각형, 삼각형 또는 이들의 조합인 직선 세그먼트를 포함하는 폴리곤 형상으로 표현되는 것이 바람직 할 수있다. 레이아웃 데이터는 지정된 전기 및/또는 광학 기능을 갖는 회로의 전송된 레이아웃을 나타내는 형상의 에지 및/또는 필링(filling)에 의해 회로 부분을 정의할 수있다. 레이아웃은 예를 들어, 마스크 및/또는 증착을 이용하여 형성된다. 증착 물질은 예를 들어, 금속, 반도체 또는 절연체를 포함 할 수 있다. 상이한 회로 부분은 상이한 재료를 포함 할 수 있다.
도 2a는 레이아웃(L2)의 제1 실시예에서 두 개의 폴리곤 형상들(P1 및 P2)을 개략적으로 도시한다. 폴리곤 형상들(P1, P2)은 예를 들어, 그 각각의 에지의 좌표들(Xn 및 Yn)(n = 1,2,3,4)에 의해 계산된다. 또한 도면에서 제조 가능성의 이유로 제2 폴리곤 형상(P2)에 의해 점유되어서는 안 되는 제1 폴리곤 형상(P1) 주위의 해칭된(hatched) 영역이 도시된다.
일 실시예에서, 제한은 선택된 제조 공정으로 집적 회로 디자인의 준수를 검증하기 위해, 하나 이상의 폴리곤 형상들(P1, P2)의 에지들(X1, X2) 사이의 최소 거리(D)를 정의하는 제조 가능성(DRC) 제한 조건들(Cm)을 포함한다. 일 실시예에서, 제한조건은 하나 이상의 폴리곤 형상들(P1, P2)의 상대적인 레이아웃을 보존하기 위해, 하나 이상의 다각형 형상들(P1, P2)의 시퀀스 및/또는 에지들의 수(Y0,Y1,Y2)를 정의하는 토폴로지 제한조건들(Ct)을 포함한다. 본 실시예에서, 디자인 룰(R1)은 토폴로지 제한조건들(Ct)에 의해 설정된 범위 내에서 적용되는 제조 가능 제한조건(Cm)의 부울 조합을 포함한다. 또 다른 또는 추가 실시예에서, (현재 디자인 룰(R1)의 일부가 아닌), 제한조건들은 하나 이상의 폴리곤 형상들(P1, P2)의 존재 또는 특성을 보존하기위한 하나 이상의 폴리곤 형상들(P1, P2)의 최소 단위들을 정의하기 위해, 예를 들어 X1-X0> 0, Y1-Y0>인 형상 제한조건들을 포함한다. 형상 제한조건은 또한 폴리곤 형상의 고정된 단위를 설정하기 위한 등식 제한조건들일 수 있다. 따라서, 본원에서 사용되는 디자인 룰들은 예를 들어, 제조 가능 제한조건, 토폴로지 제한조건 및/또는 형상 제한조건의 조합을 포함 할 수는 것으로 이해될 것이다. 또한 다른 제한조건들이 포함될 수 있다.
도 2b는 최적화 후에 도 2a의 레이아웃으로부터 유도된 제1 테스트 레이아웃(L3)을 개략적으로 도시한다.
일 실시예에서, 제3 레이아웃(L3)의 계산은 폴리곤 파라미터들(Xn, Yn)의 함수로서 디자인 룰(R1)의 제한조건 중 하나 이상의 슬랙 변수들(S1, S2, S3)를 계산하는 단계을 포함한다. 예를 들어, 슬랙 변수는 변수를 동등한 것으로 변환하도록 부등식 제한조건에 추가되는 변수로 정의될 수 있다. 등식 제한조건의 경우, 제한조건을 충족시키기 위해 방정식의 한쪽에 추가되는 변수를 슬랙 변수로 정의 할 수 있다. 따라서, 등식 제한조건이 이미 만족되면, 슬랙은 제로로 정의될 수있다; 등식 제한조건이 만족되지 않으면, 다시 말해 파라미터들이 실행 불가능 영역에 있다면, 상기 슬랙은 등식 제한조건이 얼마나 만족되는지에 대한 척도로 고려될 수있다.
이러한 경우에, 디자인 룰(R1)을 형성하는 각각의 부등식 제한조건은 방정식의 좌변에 각각의 변수(Sn)를 부가함으로써 등식 방정식으로 변환된다. 방정식은 예를 들어 S1 = D - (X2-X1)인 파라미터들의 함수로서 슬랙 변수를 표현하도록 재배치될 수있다. 슬랙 변수는 파라미터들이 제한조건을 충족시키는지 여부에 따라 양수 또는 음수가 될 수 있다. 대안적으로 부등식 제한조건이 충족되지 않을 때 반전되는 경우, 항상 슬랙 변수가 양수가 될 수 있다.
추가 실시예에서, 제3 레이아웃(L3)의 계산은 하나 이상의 슬랙 변수들(S1, S2)의 절대 값을 최소화하기 위해 제2 레이아웃(L2)의 폴리곤 파라미터들(Xn, Yn)의 값을 변화시키는 단계를 포함한다. 본 실시예에서, 슬랙 변수(S1)는 제조 가능 제한조건 Cm : X2-X1> D에 따라 통과 케이스와 실패 케이스 사이의 경계를 교차하는 것을 의미할 수 있기 때문에 슬랙 변수(S1)는 정확히 제로(zero)일 수 없다는 것을 알 수 있다. L2의 토폴로지의 제한조건 내에서의 S1의 최소값은 예를 들어, 디자인 툴의 해상도에 따른 최소 그리드 거리일 수 있다. 이러한 경우의 슬랙(S2 및 S3)은 상호 역이라는 것을 알 수 있다. 일 실시예에서, 슬랙(S3)의 최소화는 이전에 최소화된 슬랙(S1 및 S2)를 고정으로 유지함으로써 제한된다. 이러한 경우, 슬랙(S3)은 최소 슬랙(S2)의 제한조건에 의해 허용되는한 최소이다. 최소화 순서는 최적화되지 않은 레이아웃(L2)에서의 슬랙의 절대 값에 기초할 수 있다.
도 3a는 레이아웃(L2)의 제2 실시예에서 두 개의 폴리곤 형상들(P1 및 P2)을 개략적으로 도시한다. 실시예는 도 2a의 것과 유사하지만, 이러한 경우 폴리곤 형상(P2)은 디자인 룰(R1)에 따라 폴리곤 형상(P1)으로부터 최소 허용 거리(D) 내에 있다. 따라서, 디자인 룰(R1)의 제조 제한조건(Cm)은 만족되지 않고, 레이아웃은 실패 케이스를 구성한다. 도 2a와의 또 다른 차이점은 폴리곤 형상(P2)이 초기에는 토폴로지 제한조건들(Ct)의 경계(B2)보다 경계(B3)에 더 가깝다는 것이다.
도 3b는 최적화 후에 도 3a의 레이아웃으로부터 유도된 제2 테스트 레이아웃(L3)을 개략적으로 도시한다. 도 2B를 참조하여 설명된 것과 유사하게, 슬랙 변수들(S1, S2, S3)은 디자인 룰(R1)의 제한조건들로부터 유도될 수 있다. 하지만, 이러한 경우 제1 제한조건(Cm)이 만족되지 않기 때문에, 슬랙 변수(S1)이 방정식의 우변에 추가된다. 대안적으로, 슬랙 변수가 음수 값을 갖는 것으로 허용되는 경우, 슬랙 변수가 좌변에 추가될 수 있다. 이러한 경우에, 예를 들어 슬랙 변수(S1)의 절대 값을 최소화할 수 있다. 슬랙 변수의 최소화 후에, 폴리곤(P2)은 디자인 룰(R1)에 따라 여전히 실패 테스트 케이스인 경계(B1)에 정확히 존재한다는 것을 알 수 있다. 이러한 경우, 폴리곤(P2)은 경계(B3)를 향해 중력을 가하게되고, 예를 들어 이것은 경계 B2 (초기 최저 슬랙)보다 초기에 가깝기 때문이다.
도 4a는 레이아웃(L2)의 제3 실시예에서 두 개의 폴리곤 형상들(P1, P2)을 개략적으로 도시한다. 제2 폴리곤 형상(P2)이 제1 폴리곤 형상(P1) 다음으로 더 이상 존재하지 않기 때문에, 상이한 디자인 룰(R1')(또는 동일한 디자인 준수의 서브 룰)이 작용할 수 있음을 주목해야 한다. 이러한 경우, 디자인 룰(R1')은 폴리곤 형상들 사이의 최소 거리(D)를 나타내는 커브 경계(B1) 때문에 다소 복잡해진다. 이러한 예시에 의해, 제한조건은 하나 이상의 멀티플 폴리곤 파라미터들의 비선형 텀들(non-linear terms)을 포함할 수 있음이 증명된다. 일 실시예에서, 슬랙의 최소화는 선형 또는 비선형 최적화기에 의해 수행된다.
일 실시예에서, 제조 가능 제한조건(Cm)(예를 들어, 테스트에서의 룰 내의 거리 체크)과 관련된 슬랙은 토폴로지 제한조건들(Ct)과 관련된 슬랙 전에 최소화된다. 또한, 임의의 시작 레이아웃에서 두 개의 슬랙 방정식이 동일한 값을 갖는 경우, 슬랙 우선 순위의 최소 절대 값을 갖는 방정식을 제공하는 것이 바람직하다.
도 4b는 최적화 후에 도 4a의 레이아웃으로부터 유도된 제3 테스트 레이아웃(L3)을 개략적으로 도시한다. 이러한 경우, 슬랙 변수(S1)는 제2 폴리곤 형상(P2)가 경계(B1) 바로 외측, 예를 들어 최소 그리드 거리까지 최소화된다. 이러한 경계에서, 슬랙 변수들(S2 및 S3)은 슬랙 변수(S1)을 다시 증가 시키거나 이러한 경우 허용되지 않는 경계(B1)를 교차하지 않고 더 이상 최소화될 수 없다.
도 5a는 제1 폴리곤 형상(P1)과 제2 폴리곤 형상(P2)의 코너 포인트(P2c)의 상이한 위치를 나타냄으로써 후보 테스트 레이아웃(Lc)을 개략적으로 도시한다. 후보 테스트 레이아웃들(Lc)은 예를 들어 본원에 설명된 방법의 반복되는 단계들에 의해 생성된다. 도 5b는 최소 마진에 의한 통과 및 실패 케이스를 포함하는 후보 테스트 레이아웃을 개략적으로 도시한다.
일 실시예에서, 저장된 후보 테스트 레이아웃들(Lc)은 최종 테스트 레이아웃 세트(Lx)를 생성하도록 필터링되고, 여기서 상기 필터링은 후보 테스트 레이아웃의 쌍(La, Lb)의 일부인 경우에만 테스트 레이아웃을 수용하는 단계를 포함하고, 임의의 폴리곤 형상의 에지는 한 쌍의 후보 테스트 레이아웃들(La, Lb) 사이에 최대 하나의 최소 그리드 거리에 의해 이동되고, 여기서 상기 쌍은 디자인 룰들(R1, R2)의 통과(P) 및 실패(F) 케이스 모두를 유지한다. 예를 들어, 도 5a에서 검은 원으로 표시된 후보 테스트 레이아웃이 유지되는 동안, 흰색 원으로 표시된 후보 테스트 레이아웃은 필터링될 수 있다.
도 6a는 도 1a 및 도 1b를 참조하여 논의된 것과 유사한 디자인 룰(R1)을 개략적으로 도시한다. 디자인 룰은 너비(W)만 표시하지만 형상이 90도만큼 회전할 경우 높이에도 적용할 수 있다.
도 6b는 도 6a의 디자인 룰의 구현을 검증하기 위한 테스트 레이아웃들(Lx)을 개략적으로 도시한다. 테스트 레이아웃(Lx)는 자동으로 왼쪽에 실패 케이스로 정렬되고 오른쪽에 통과 케이스로 정렬된다. 예를 들어, 복수의 형상을 갖는 일체형 레이아웃은 DRC 데크를 체크하는데 사용될 수 있고, 여기서 데크에 따른 통과 실패 위치들의 표시는 테스트 레이아웃들과 일치해야 한다.
도 7a는 디자인 룰의 또 다른 예시를 개략적으로 도시한 것으로, 다소 복잡하다. 이러한 실시예에서, 디자인 룰은 두 개의 입력 레이어들의 "OR" 유도 레이어의 형상을 검사한다. OR 유도 레이어의 폴리곤이 다리 길이가 0.05 이상인 T-형 또는 Z-형("지그재그")인 경우, 레이아웃이 디자인 규칙을 통과한 것으로 간주된다. 모든 다른 레이아웃들은 실패 케이스로 간주된다.
일 실시예에서, 레이아웃들은 멀티플 레이어들의 폴리곤 형상을 정의하고, 하나 이상의 디자인 룰들은 두 개이상의 멀티플 레이어들 중 로직 조합, 예를 들어 AND, OR, NOT인 유도된 레이어에 대한 제한조건들에 의해 정의된다.
많은 디자인 룰은 정의에서 "유도 레이어들(derived layers)"를 사용한다. 유도 레이어는 부울 및 크기 연산들을 기초로 원래 레이어가 아닌 다른 레이어의 레이아웃에서 형상을 정의한다. 예를 들어 유도 레이어는 두 개의 원본 레이어의 "AND"일 수 있고, 이것은 이러한 레이어의 형상이 두 원본 레이어의 두 형상이 겹치는 부분에만 존재한다는 것을 의미한다. 유사하게, 원래 레이어에서 형상을 늘리거나 줄임으로써 유도 레이어의 형상을 정의할 수 있다. 이러한 연산들의 임의의 조합이 가능하다. 유도 레이어의 형상이 원래 형상처럼 토폴로지 변경의 영향을 받을 수 있다. 그것들은 사라지거나, 또는 크기가 조정되는 경우 완전히 병합될 수 있다. 예를 들어, 너무 작은 원래 형상으로 시작하는 형상이 축소되면 유도 레이어에서 형상이 생성되지 않는다. 본 발명에서의 접근은 유도 레이어들을 우수한 방식의 처리를 가능하게한다. 시드 레이아웃의 레이아웃을 임의로 변경한 후에, 유도 레이어들이 적절한 방식으로 생성될 수 있다. 이후 다음 유도 레이어의 에지들에 대해 토폴로지 보존 제한조건을 원래 형상과 동일한 방식으로 만들 수 있다. 또한 관심있는 레이아웃에 대한 후속 최적화도 동일한 접근 방식을 취한다. 이로 인해 결과 패턴이 생성되고, 유도 레이어에 형상이 있거나 포함되지 않은 테스트를 포함하여 유도 레이어의 토폴로지 변경이 테스트된다. 유도 레이어와 관련된 방정식을 유지하는 토폴로지는 일반 토폴로지 방정식과 동일한 방식으로 최적화될 수 있으므로 유도 레이어의 경계 케이스도 제공될 것이다.
도 7b는 도 7a의 디자인 룰의 구현을 검증하기 위한 테스트 레이아웃을 개략적으로 도시한다. 테스트 레이아웃의 수는 이미 상당히 광범위하고 수동적으로 유도되는 것은 사실상 불가능하다.
도 8은 테스트 레이아웃을 생성하는 방법을 포함하는 흐름도를 개략적으로 도시한다.
일 실시예에서, 상기 방법은 상기 폴리곤 파라미터들에 의해 정의되는 레이아웃을 수신하는 단계(단계 101); 적어도 상기 폴리곤 파라미터들의 값을 랜덤으로 변경하는 단계(단계 102); 하나 이상의 파라미터 경계들에 관한 폴리곤 파라미터들의 슬랙을 최소화하는 단계(단계 103); 결과 레이아웃을 DRC 데크를 검증하기 위한 또 다른 후보 테스트 레이아웃(L3)으로서 저장하는 단계(단계 104)를 포함한다. 일 실시예에서, 단계(iteration)의 후보 테스트 레이아웃은 이전 단계들의 저장된 레이아웃들에 대해 체크되고(단계 105), 새로 발견된 고유 테스트 레이아웃에 대한 이미 이전에 발견된 테스트 레이아웃들의 수가 미리-설정된 비율 미만으로 떨어지면 단계들의 반복이 중지된다.
일 실시예에서, 제1 단계에 뒤 따르는 적어도 하나의 단계에 대해, 수신된(단계 100에서 선택된) 레이아웃은 이전 단계의 최종 저장된 레이아웃이다. 또 다른 또는 추가적인 실시예에서, 제1 단계에 뒤 따르는 적어도 하나의 단계에 대해, 수신된(단계 100에서 선택된) 레이아웃은 제1 단계 동안 수신된 초기 레이아웃이다. 또 다른 또는 추가적인 실시예에서, 적어도 하나의 반복에 대해, 수신된 레이아웃(101)은 이전 단계 동안 저장된 후보 테스트 레이아웃들(Lx) 중 하나로부터 랜덤으로 선택된다.
일 측면에 따르면, 본 발명은 단계100 내지 단계106에 따른 테스트 레이아웃(Lx)의 자동화된 생성을 포함하는 DRC 데크를 검증하는 방법을 제공하며; 및 단계(107)에 따른 테스트 레이아웃들(Lx)을 사용하여 DRC 데크를 검증하는 단계를 포함한다. 또 다른 측면에 따르면, 본 발명은 단계 100 내지 단계 107에 따른 DRC 데크를 검증하는 단계; 및 단계 108에 따른 검증된 DRC 데크로 회로 디자인(Ld)을 검증하는 단계를 포함한다. 또 다른 측면에 따르면, 회로를 제조하는 방법을 제공하는 본 발명은 단계 100 단계 108에 따른 회로 디자인(Ld)을 검증하는 단계; 및 단계 109에 따른 회로(Lm)를 제조하는 단계를 포함한다.
본 발명의 측면들은, 예를 들어 DRC 데크를 검증하기 위한 테스트 레이아웃들(Lx)의 자동 생성을 위한 컴퓨터 시스템에서 구현될 수 있다. 일 실시예에서, 컴퓨터 시스템은 메모리; 및 상기 메모리에 커플링된 하나 이상의 프로세서를 포함하고, 상기 메모리는 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서들이 본원에 설명된 것과 같은 방법을 포함하는 동작들을 수행하도록 하는 명령들의 세트를 포함한다.
본 발명의 측면들은 예를 들어 컴퓨터 프로그램에 의해 부호화된 비-일시적 컴퓨터 저장 매체로 구현될 수 있고, 상기 컴퓨터 프로그램은 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들이 이 본원에 설명된 것과 같은 방법을 포함하는 동작들을 수행하도록 하는 명령들의 세트를 포함한다.
도 9는 테스트 레이아웃들(Lx)이 DRC 데크를 검증하기 위해 어떻게 사용될 수 있는지 예시를 개략적으로 도시한다. 일 실시예에서, 단계 107에서 테스트 레이아웃들(Lx)은 DRC 데크로 하여금 DRC 데크가 영역 "F" 내의 모든 실패 케이스를 실제로 발견하고 테스트 레이아웃들(Lx)의 영역 "P"에서 실패 케이스를 나타내지 않는지를 검증하도록 한다. 일 실시예에서, 회로 디자인(Ld)은 단계 108에서 검증된 DRC 데크로 검증된다. 이것은 검증된 회로 디자인(Ld')가 획득질 때까지, 예를 들어 변경된 높이(H), 폭(W) 및/또는 거리(D)를 갖는 회로의 재디자인을 야기한다. 일 실시예에서, 검증된 회로 디자인(Ld')은 단계 109에서 제조되어(M) 제조된 회로(Lm)가 된다. 제조된 회로(Lm)는 예를 들어 에지의 라운딩, 약간의 변위 및/또는 폴리곤 형상들의 재조정에 의해 디자인된 회로(Ld')로부터 유도될 수 있음을 알 수 있다. 하지만, 편차는 회로의 성능에 영향을 미치지 않도록 허용 오차 내에 있어야 한다.
상술된 설명으로부터, 본 방법은 복수의 가능한 생성된 테스트 레이아웃 중에서 임의로 선택된 것들의 제한된 수를 사용하는 "몬테 카를로(Monte Carlo)"생성 방법과 다르다는 것을 알 수 있을 것이다. 테스트 레이아웃 생성에서, 종종 관심있는 포인트 및/또는 에지 사이의 제한된 거리의 수가 있다. 이러한 모든 거리에 대해 일련의 이산 값을 사용할 수 있고, 가능한 테스트 레이아웃의 총 수는 이러한 모든 범위의 데카르트 곱(Cartesian product)일 수 있다. 이것은 거대한 숫자일 수 있기 때문에, 데카르트 곱의 값을 랜덤으로 취함으로써 세트가 감소한다. 현재의 접근법에서 주목할만한 이점은, 모든 값(몇몇 그리드에 대한)이 시도되고 있기 때문에, 사용자가 어떤 거리가 관심있는지를 표시할 필요가 없고, (따라서 사용자가 관심있는 거리를 입력하는 것을 잊어 버릴 수 있는 에러의 기회도 없음) 또한 범위를 나타낼 필요가 없다는 것이다. 관심있는 케이스는 임의로 생성된 각 레이아웃에 적용되는 최적화 단계에 의해 선택된다. 한 가지 이점은 이러한 모든 것이 자동화될 수 있고, 관심있는 케이스가 누락될 가능성이 제거된다는 것이다.
마지막으로, 상기 논의는 단지 본 시스템 및/또는 방법의 예시일 뿐이며, 임의의 특정 실시예 또는 실시예의 그룹으로 첨부된 청구 범위를 한정하는 것으로 해석되어서는 안 된다. 따라서, 명세서 및 도면은 예시적인 방식으로 간주되어야하며 첨부된 청구 범위의 범위를 제한하려는 것이 아니다. 첨부된 청구 범위를 해석함에있어서, "포함하는"이라는 단어는 주어진 청구항에 열거된 것 이외의 다른 요소 또는 행위의 존재를 배제하지 않는다는 것으로 이해해야한다; 단어에 선행하는 "하나(a)"또는 "하나(an)"이라는 단어는 복수의 그러한 요소의 존재를 배제하지 않는다; 청구 범위 내의 모든 참조 부호는 그 범위를 제한하지 않는다; 여러 "수단들(means)"은 동일하거나 다른 항목(들) 또는 구현된 구조 또는 기능으로 나타낼 수 있다. 개시된 장치들 또는 그 일부는 임의적으로 달리 언급되지 않는한 함께 결합되거나 다른 부분들로 분리될 수 있다. 특정 방법들이 서로 다른 주장에서 인용된다는 단순한 사실만으로 이러한 방법들의 조합이 유리하게 사용될 수 없음을 나타내지는 않는다. 특히, 청구 범위의 모든 작동 조합은 본질적으로 개시된 것으로 간주된다.

Claims (14)

  1. DRC 데크를 검증하기 위한 테스트 레이아웃들(Lx)의 자동 생성을 위한 컴퓨터 구현 방법에 있어서,
    복수의 폴리곤 파라미터들(W1, H1)에 의해 정의되는 하나 이상의 폴리곤 형상들(P1)을 포함하는 제1 레이아웃(L1)을 수신하는 단계 -상기 하나 이상의 폴리곤 형상들(P1)은 회로 다자인의 하나 이상의 레이어들의 회로 부분들을 나타냄-;
    상기 폴리곤 파라미터들(W1, H1)에 대한 제한조건들(C)을 포함하는 디자인 룰들(R1, R2)을 수신하는 단계 -각 제한조건은 상기 제한조건을 유지하는 실행 가능 영역과 상기 제한조건이 만족되지 않는 실행 불가능한 영역 사이에서 상기 폴리곤 파라미터들(W1, H1)에 대한 파라미터 공간에서의 각각의 파라미터 경계(B1, B2)를 정의함-;
    상기 제1 레이아웃(L1)의 폴리곤 파라미터들(W1) 중 적어도 하나에 대한 값의 랜덤 변화(ΔW12)를 적용함으로써 제2 레이아웃(L2)을 계산하는 단계;
    하나 이상의 파라미터 경계들(B1, B2)에 관한 폴리곤 파라미터들(W1, H1)의 각 슬랙(S1, S2)이 최소화 될 때까지 상기 제2 레이아웃(L2)의 폴리곤 파라미터들(W1, H1)의 값을 변화시킴으로써 제3 레이아웃(L3)을 계산하는 단계; 및
    상기 제 3 레이아웃(L3)을 상기 DRC 데크를 검증하기 위한 후보 테스트 레이아웃으로서 저장하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 제2 레이아웃(L2)을 계산하는 단계에서, 랜덤 선택은 적어도
    폴리곤 파라미터(W1)의 변화(ΔT1)가 상기 제1 레이아웃(L1)와 비교하여 상기 제2 레이아웃(L2)에서의 상기 폴리곤 형상들(P1, P2)의 에지의 수 또는 시퀀스를 변경하는 토폴로지 랜덤화; 또는
    폴리곤 파라미터(W1)의 변화(ΔW12)가 상기 제1 레이아웃과 비교하여 상기 제2 레이아웃에서의 형상들의 에지들 간의 거리를 변경하는 거리 랜덤화로부터 생성되는
    방법.
  3. 제1항에 있어서,
    상기 폴리곤 파라미터들은, 상기 제2 레이아웃(L2)으로부터 상기 제3 레이아웃(L3)을 획득하기 위해 상기 슬랙(S1, S2)을 최소화하는 동시에 적어도 상기 파라미터 경계의 서브세트를 넘는 것을 방지하는
    방법.
  4. 제1항에 있어서,
    상기 제3 레이아웃(L3)을 계산하는 단계는,
    상기 폴리곤 파라미터(W1, H1)의 함수로서 상기 디자인 룰들(R1, R2)의 제한조건 중 하나 이상의 슬랙 변수들(S1, S2)을 계산하는 단계; 및
    상기 하나 이상의 슬랙 변수들(S1, S2)의 절대 값을 최소화하는 방향으로 상기 제2 레이아웃(L2)의 폴리곤 파라미터들(W1, H1)의 값들을 변경하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서,
    최소화 전에, 복수의 제한조건들의 각각의 초기 슬랙들(S1, S2)이 계산되고;
    상기 최소화는, 먼저 최저 초기 슬랙(S1)을 최소화하기 위해 최저 초기 슬랙(S1)을 갖는 제한조건에서 상기 폴리곤 파라미터(H1)를 변화 시키도록 바이어싱되는
    방법.
  6. 제1항에 있어서,
    상기 폴리곤 파라미터들(W1, H1)에 의해 정의되는 레이아웃을 수신하는 단계(101);
    상기 폴리곤 파라미터들(W1, H1)의 적어도 하나의 값을 랜덤으로 변경하는 단계(102);
    하나 이상의 파라미터 경계들(B1, B2)에 관한 상기 폴리곤 파라미터들(W1, H1)의 슬랙을 최소화하는 단계(103); 및
    결과 레이아웃을 추가 후보 테스트 레이아웃(Lx)으로서 저장하는 단계(104)의 반복되는 단계들(repeated iterations)을 포함하는
    방법.
  7. 제1항에 있어서,
    상기 후보 테스트 레이아웃의 단계는 이전 단계들의 저장된 레이아웃들에 대하여 체크되고, 상기 단계들의 반복은 이미 이전에 발견된 비-고유 테스트 레이아웃들에 대한 새로 발견된 고유 테스트 레이아웃들의 수가 미리 설정된 비율 이하로 떨어지는 경우 중지되는
    방법.
  8. 제1항에 있어서,
    후보 테스트 레이아웃들을 찾고 저장하는 단계의 복수의 단계들 이후에, 상기 저장된 후보 테스트 레이아웃들(Lc)은 최종 테스트 레이아웃 세트(Lx)를 생성하도록 필터링되고, 상기 필터링하는 단계는 후보 테스트 레이아웃들(La, Lb)의 근접 쌍의 부분이 아닌 경우에만 테스트 레이아웃을 제거하는 단계를 포함하고, 폴리곤 형상의 에지는 최대 후보 테스트 레이아웃들(La, Lb)의 근접 쌍 사이의 최소 그리드 거리까지 이동되고, 상기 근접 쌍은 디자인 룰들(R1, R2)의 성공(P) 및 실패(F) 케이스를 모두 포함하는
    방법.
  9. 제1항에 있어서,
    적어도 하나의 단계에 대하여, 수신된(101) 상기 제1 레이아웃은 이전 단계 동안 저장된 상기 후보 테스트 레이아웃들(Lx) 중 하나로부터 랜덤으로 선택되는
    방법.
  10. 제1항에 있어서,
    상기 레이아웃들(L1, L2, L3)은 멀티플 레이어들의 폴리곤 형상을 정의하고, 상기 디자인 룰들 중 하나 이상은 두 개 이상의 멀티플 레이어들의 부울 조합인 유도된 레이어 상의 제한조건들에 의해 정의되는
    방법.
  11. 제1항에 있어서,
    상기 제한조건들은 선택된 제조 공정(M)을 갖는 집적 회로 디자인(Ld)의 준수 검증을 위해 상기 하나 이상의 폴리곤 형상(P1, P2)의 에지들(X1, X2) 사이의 최소 거리(D)를 정의하는 제조 용이성 제한 조건들(X2-X1=D)을 포함하고, 상기 파라미터 경계(B1, B2)는 상기 디자인 룰들(R1, R2)의 성공 영역(P)과 불합격 영역(F) 사이의 교차점을 나타내는
    방법.
  12. 제1항에 있어서,
    상기 제한조건들은 하나 이상의 폴리곤 형상들(P1, P2)의 상대적인 레이아웃을 보존하기 위해 시퀀스 및/또는 에지들(Y0, Y1, Y2)의 수를 정의하는 토폴로지 제한조건들(Y1-Y0>0, Y2-Y1>0)을 포함하고, 상기 파라미터 경계(B1, B2)는 상기 폴리곤 형상들(P1, P2)의 상이한 토폴로지들 사이의 교차점을 나타내는
    방법.
  13. DRC 데크를 검증하기 위한 테스트 레이아웃들(Lx)의 자동 생성을 위한 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리에 커플된 하나 이상의 프로세서
    를 포함하고,
    상기 메모리는 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 제1항 내지 제12항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하도록 하는 명령들의 세트를 포함하는
    시스템.
  14. 컴퓨터 프로그램으로 부호화된 비-일시적 컴퓨터 저장 매체에 있어서,
    상기 컴퓨터 프로그램은 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들이 제1항 내지 제12항 중 어느 한 항에 따른 방법을 포함하는 동작들을 수행하도록 하는 명령들의 세트를 포함하는
    비-일시적 컴퓨터 저장 매체.
KR1020177032654A 2015-04-15 2015-04-15 Drc 데크 검증을 위한 테스트 레이아웃들의 자동 생성 KR102424907B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2015/052734 WO2016166571A1 (en) 2015-04-15 2015-04-15 Automatic generation of test layouts for verifying a drc deck

Publications (2)

Publication Number Publication Date
KR20180016354A KR20180016354A (ko) 2018-02-14
KR102424907B1 true KR102424907B1 (ko) 2022-07-22

Family

ID=53276926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177032654A KR102424907B1 (ko) 2015-04-15 2015-04-15 Drc 데크 검증을 위한 테스트 레이아웃들의 자동 생성

Country Status (5)

Country Link
US (1) US10628549B2 (ko)
KR (1) KR102424907B1 (ko)
CN (1) CN107743619B (ko)
TW (1) TWI708140B (ko)
WO (1) WO2016166571A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169523B2 (en) * 2015-08-27 2019-01-01 International Business Machines Corporation Timing constraints formulation for highly replicated design modules
US10628544B2 (en) * 2017-09-25 2020-04-21 International Business Machines Corporation Optimizing integrated circuit designs based on interactions between multiple integration design rules
US11093683B2 (en) * 2018-10-31 2021-08-17 Taiwan Semiconductor Manufacturing Co., Ltd. Test pattern generation systems and methods
US10909297B1 (en) * 2019-08-15 2021-02-02 Taiwan Semiconductor Manufacturing Company Limited Deterministic system for device layout optimization
GB2595443A (en) * 2020-05-01 2021-12-01 Hackrod Virtual engineering
US11847398B2 (en) 2021-05-21 2023-12-19 International Business Machines Corporation Automatic generation of ground rule verification macros
CN113642286B (zh) * 2021-08-12 2023-10-24 长鑫存储技术有限公司 测试图形的验证方法、装置、设备及存储介质
US11675960B2 (en) * 2021-11-01 2023-06-13 X Development Llc Machine learning based layout nudging for design rule compliance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157153A1 (en) 2005-12-30 2007-07-05 Croffie Ebo H Yield-limiting design-rules-compliant pattern library generation and layout inspection
US20080109772A1 (en) 2006-10-24 2008-05-08 Pokorny William F Method and system of introducing hierarchy into design rule checking test cases and rotation of test case data
US20150324510A1 (en) 2014-05-06 2015-11-12 International Business Machines Corporation Generic design rule checking (drc) test case extraction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005036207A1 (de) * 2005-08-02 2007-02-22 X-Fab Semiconductor Foundries Ag Verfahren zum Entwurf von integrierten Schaltungen
US8307321B2 (en) * 2009-03-20 2012-11-06 Taiwan Semiconductor Manufacturing Company, Ltd. Method for dummy metal and dummy via insertion
US9213798B2 (en) * 2011-05-19 2015-12-15 Sage Design Automation Ltd Method, system and computer program product of checking an integrated circuit layout for instances of a reference pattern
KR101937851B1 (ko) * 2012-06-27 2019-04-10 삼성전자 주식회사 반도체 집적 회로, 그 설계 방법 및 제조방법
US9158883B2 (en) * 2012-08-08 2015-10-13 Taiwan Semiconductor Manufacturing Company, Ltd. System for designing a semiconductor device, device made, and method of using the system
EP2728499A1 (en) 2012-10-31 2014-05-07 NP Komplete Technologies B.V. Design rule checking
US8850374B2 (en) * 2012-11-06 2014-09-30 Taiwan Semiconductor Manufacturing Company, Ltd. Method of reducing parasitic mismatch
US8832623B1 (en) * 2013-03-15 2014-09-09 Taiwan Semiconductor Manufacturing Company Limited Universal design layout compliance
US8875064B2 (en) 2013-03-15 2014-10-28 International Business Machines Corporation Automated design rule checking (DRC) test case generation
US9916412B2 (en) * 2013-04-01 2018-03-13 Nxp Usa, Inc. Automatic generation of test layouts for testing a design rule checking tool

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157153A1 (en) 2005-12-30 2007-07-05 Croffie Ebo H Yield-limiting design-rules-compliant pattern library generation and layout inspection
US20080109772A1 (en) 2006-10-24 2008-05-08 Pokorny William F Method and system of introducing hierarchy into design rule checking test cases and rotation of test case data
US20150324510A1 (en) 2014-05-06 2015-11-12 International Business Machines Corporation Generic design rule checking (drc) test case extraction

Also Published As

Publication number Publication date
WO2016166571A1 (en) 2016-10-20
CN107743619A (zh) 2018-02-27
TW201706845A (zh) 2017-02-16
US10628549B2 (en) 2020-04-21
TWI708140B (zh) 2020-10-21
KR20180016354A (ko) 2018-02-14
US20180107781A1 (en) 2018-04-19
CN107743619B (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
KR102424907B1 (ko) Drc 데크 검증을 위한 테스트 레이아웃들의 자동 생성
US10311190B2 (en) Virtual hierarchical layer patterning
US8595662B1 (en) Methods, systems, and articles of manufacture for implementing a physical design of an electronic circuit with automatic snapping
US7861195B2 (en) Process for design of semiconductor circuits
US10817637B2 (en) System and method of designing integrated circuit by considering local layout effect
US9898567B2 (en) Automatic layout modification tool with non-uniform grids
JP2013149286A (ja) レイアウト設計データの増分分析
US20190354655A1 (en) Methods, systems, and computer program products for generating semiconductor circuit layouts
US8423920B2 (en) Method of forming photomask by collecting verification data based on a layout of contour patterns
US20080216045A1 (en) Mask data processing method for optimizing hierarchical structure
US9563737B1 (en) Method, system, and computer program product for checking or verifying shapes in track patterns for electronic circuit designs
US20150082262A1 (en) Dynamically generating jog patches for jog violations
KR102387459B1 (ko) 반도체 소자의 패턴 형성 방법
TW201214183A (en) Method and apparatus for automated validation of semiconductor process recipes
JP2010160543A (ja) 半導体装置のレイアウトパターンのレイアウト検証装置、レイアウト検証プログラム及びレイアウト検証方法
Mandad et al. Exact constraint satisfaction for truly seamless parametrization
US8972907B1 (en) Layout correcting method, recording medium and design layout correcting apparatus
US9754067B2 (en) Method of checking the layout integrity
US8732638B1 (en) Verifying proper representation of semiconductor device fingers
US10452806B1 (en) Generating a colored track pattern of non-uniform width from a sparse set of tracks
Kang et al. Combination of rule and pattern based lithography unfriendly pattern detection in OPC flow
US11270049B2 (en) Internal channel network detections for 3D printing
Zito et al. Alternative Flowcharts for a Mathematical Analysis of Logic
JP2002183238A (ja) 密集性の判定方法、密集性の検証を行うコンピュータプログラムを記録した記録媒体および検証装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant