KR102611430B1 - 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법 - Google Patents

반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법 Download PDF

Info

Publication number
KR102611430B1
KR102611430B1 KR1020180071962A KR20180071962A KR102611430B1 KR 102611430 B1 KR102611430 B1 KR 102611430B1 KR 1020180071962 A KR1020180071962 A KR 1020180071962A KR 20180071962 A KR20180071962 A KR 20180071962A KR 102611430 B1 KR102611430 B1 KR 102611430B1
Authority
KR
South Korea
Prior art keywords
sets
level
polygon meshes
distance values
level sets
Prior art date
Application number
KR1020180071962A
Other languages
English (en)
Other versions
KR20200000094A (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 삼성전자주식회사
Priority to KR1020180071962A priority Critical patent/KR102611430B1/ko
Priority to US16/278,767 priority patent/US20190392100A1/en
Priority to CN201910486618.6A priority patent/CN110633483A/zh
Publication of KR20200000094A publication Critical patent/KR20200000094A/ko
Application granted granted Critical
Publication of KR102611430B1 publication Critical patent/KR102611430B1/ko

Links

Images

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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시 예에 따르면, 컴퓨터에 의해 실행된 때에 컴퓨터가 반도체 설계 시뮬레이션을 위한 방법을 수행하도록 유발하는 명령들을 저장하는 비임시의(non-transitory) 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)가 제공된다. 방법은 제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계, 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계, 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계, 그리고 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함한다.

Description

반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법{STORAGE MEDIUM INCLUDING INSTRUCTIONS FOR SEMICONDUCTOR DESIGN SIMULATION, SEMICONDUCTOR DESIGN SYSTEM, AND METHOD OF SEMICONDUCTOR DESIGN SIMULATION}
본 발명은 전기에 의한 디지털 처리에 관한 것으로, 더 상세하게는 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법에 관한 것이다.
반도체 장치를 설계할 때 다양한 도구들이 사용된다. 다양한 도구들 중 하나로 TCAD(Technology Computer Aided Design)가 사용될 수 있다. TCAD는 장치(device), 공정(process), 그리고 회로(circuit)에 대한 시뮬레이션 기능들을 지원한다.
TCAD를 이용한 시뮬레이션을 수행할 때, 반도체 장치의 재료인 반도체 물질이 폴리곤 메쉬들(polygon meshes)을 이용하여 2차원 또는 3차원 모델로 모델링될 수 있다. 생성된 모델에 대해 증착(deposition), 식각(etching), 패터닝(patterning)과 같은 다양한 공정들을 적용하면, 모델의 형태가 변화한다.
모델의 형태가 변화함에 따라, TCAD는 모델의 폴리곤 메쉬들을 다시 설정할 수 있다. 모델의 형태가 변화함에 따라 폴리곤 메쉬들이 조절되는 것은 CSG(Constructive Solid Geometry) 동작이라 물리며, 재메쉬(re-meshing) 또는 재삼각화(re-triangulation)를 통해 수행될 수 있다.
모델의 구조가 복잡할수록 폴리곤 메쉬들의 수가 증가하고, 그리고 CSG 동작의 연산량이 증가한다. 반도체 장치의 미세화가 진행되고 복잡도가 증가함에 따라, CSG 동작의 연산량을 줄일 수 있는 장치 또는 방법에 대한 요구가 제기되고 있다.
본 발명의 목적은 연산량을 줄이고 이에 따라 연산 시간을 줄이는 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따르면, 컴퓨터에 의해 실행된 때에 컴퓨터가 반도체 설계 시뮬레이션을 위한 방법을 수행하도록 유발하는 명령들을 저장하는 비임시의(non-transitory) 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)가 제공된다. 방법은 제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계, 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계, 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계, 그리고 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함한다.
본 발명의 실시 예에 따른 반도체 설계 시스템은 명령들을 저장하는 비임시의 컴퓨터-독출식 저장 매체, 그리고 명령들을 실행하여 반도체 설계 시뮬레이션을 위한 방법을 수행하도록 구성되는 프로세서를 포함한다. 방법은 제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계, 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계, 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계, 그리고 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 컴퓨터에 의해 실행된 때에 컴퓨터가 반도체 설계 시뮬레이션을 위한 방법을 수행하도록 유발하는 명령들을 저장하는 비임시의(non-transitory) 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)가 제공된다. 방법은 제1 폴리곤 메쉬들을 이용하여 제1 바디 및 제2 바디를 형성하는 단계, 제1 바디 및 제2 바디가 형성하는 제1 표면들로부터 제1 레벨 세트를 계산하는 단계, 그리고 제1 바디를 제거하고, 제2 바디의 제2 표면으로부터 제2 레벨 세트를 계산하는 단계를 포함한다.
본 발명에 따르면, CSG 동작의 폴리곤 메쉬들의 연산이 값들의 연산으로 치환된다. 연산의 복잡도가 감소하므로, 연산량이 감소하고 이에 따라 연산 시간이 감소하는 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 반도체 설계 시스템을 보여준다.
도 2는 본 발명의 실시 예에 따른 반도체 시뮬레이션 방법을 보여주는 순서도이다.
도 3은 스토리지에 저장된 데이터가 가리키는 반도체 모델의 예를 보여준다.
도 4는 반도체 모델을 형성하는 폴리곤 메쉬들의 예를 보여준다.
도 5는 도 4의 반도체 모델로부터 레벨 세트를 생성하는 방법을 보여주는 순서도이다.
도 6은 도 4의 목표 바디를 특정한 좌표계에 놓는 예를 보여준다.
도 7은 목표 바디의 격자들의 교점들에서 부호화된 거리 값들이 계산되는 예를 보여준다.
도 8은 제2축에 따른 교점들의 거리 값들이 계산되는 예를 보여준다.
도 9는 도 7 및 도 8에서 계산된 거리 값 세트들의 예를 보여준다.
도 10은 목표 바디의 외부의 교점들에서 부호화된 거리 값들이 계산된 예를 보여준다.
도 11은 목표 바디의 내부의 교점들에서 부호화된 거리 값들이 계산된 예를 보여준다.
도 12는 폴리곤 메쉬들에 의해 정의되는 반도체 모델의 예를 보여준다.
도 13은 도 12의 반도체 모델의 폴리곤 메쉬들을 레벨 세트들로 변환하는 방법의 예를 보여주는 순서도이다.
도 14는 도 12의 반도체 모델의 폴리곤 메쉬들의 제1 최종 표면들의 예를 보여준다.
도 15는 도 12의 반도체 모델에서 제5 바디를 제거한 후의 폴리곤 메쉬들의 제2 최종 표면들의 예를 보여준다.
도 16은 도 12의 반도체 모델에서 제4 및 제5 바디들을 제거한 후의 폴리곤 메쉬들의 제2 최종 표면들의 예를 보여준다.
도 17은 도 12의 반도체 모델에서 제3 내지 제5 바디들을 제거한 후의 폴리곤 메쉬들의 제4 최종 표면들의 예를 보여준다.
도 18은 도 12의 반도체 모델에서 제2 내지 제5 바디들을 제거한 후의 폴리곤 메쉬들의 제5 최종 표면들의 예를 보여준다.
도 19는 도 14 내지 도 18을 참조하여 설명된 제1 내지 제5 레벨 세트들에 대해 논리 연산을 수행하는 방법의 예를 보여주는 순서도이다.
도 20은 반도체 모델에 제1 타입의 공정이 적용되는 예를 보여준다.
도 21은 반도체 모델에 제2 타입의 공정이 적용되는 예를 보여준다.
도 22는 반도체 모델에 제3 타입의 공정이 적용되는 예를 보여준다.
도 23은 도 12의 반도체 모델에 공정이 적용되는 예를 보여준다.
도 24는 도 18의 제5 레벨 세트에 대응하는 표면들로부터 제6 바디가 추가되고 그리고 제7 바디가 제거된 제1 모델(310)을 보여준다.
도 25는 도 17의 제4 레벨 세트에 대응하는 표면들로부터 제6 바디가 추가되고 그리고 제7 바디가 제거된 제1 모델을 보여준다.
도 26은 공정 후의 제3 바디가 추가로 식별된 제2 모델의 예를 보여준다.
도 27은 도 16의 제3 레벨 세트에 대응하는 표면들로부터 제6 바디가 추가되고 그리고 제7 바디가 제거된 형태를 보여준다.
도 28은 공정 후의 제4 바디 및 제5 바디가 추가로 식별된 제3 모델의 예를 보여준다.
도 29는 도 15의 제2 레벨 세트에 대응하는 표면들로부터 제6 바디가 추가되고 그리고 제7 바디가 제거된 형태를 보여준다.
도 30은 공정 후의 제6 바디가 추가로 식별된 제4 모델의 예를 보여준다.
도 31은 도 14의 제1 레벨 세트에 대응하는 표면들로부터 제6 바디가 추가되고 그리고 제7 바디가 제거된 형태를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 반도체 설계 시스템(100)을 보여준다. 도 1을 참조하면, 반도체 설계 시스템(100)은 버스(110), 프로세서(120), 주 메모리(130), 스토리지(140), 모뎀(150), 부착 가능하고 탈착 가능한 스토리지(160), 그리고 사용자 인터페이스(170)를 포함한다.
버스(110)는 반도체 설계 시스템(100)의 구성 요소들 사이에 채널을 제공한다. 프로세서(120)는 반도체 설계 시스템(100)을 제어하고, 반도체 설계를 위한 시뮬레이션을 수행할 수 있다. 예를 들어, 프로세서(120)는 스토리지(140)에 저장된 명령들(141)을 실행함으로써 시뮬레이션을 위한 도구(tool)를 실행할 수 있다.
프로세서(120)는 스토리지(140)에 저장된 데이터(Data)를 읽음으로써, 시뮬레이션을 위한 반도체 모델을 획득할 수 있다. 프로세서(120)는 실행된 도구를 이용하여 데이터(Data)로부터 반도체 모델을 생성하고, 반도체 모델에 대해 다양한 시뮬레이션을 수행할 수 있다.
주 메모리(130)는 프로세서(120)의 동작 메모리일 수 있다. 주 메모리(130)는 스토리지(140)에 저장된 명령들(141) 및 데이터(142) 중에서 프로세서(120)가 필요로 하는 명령들 또는 데이터를 임시로 저장할 수 있다. 주 메모리(130)는 DRAM, PRAM, MRAM, RRAM과 같은 고속의 랜덤 액세스 메모리 또는 스토리지 클래스 메모리(SCM)(Storage Class Memory)를 포함할 수 있다.
스토리지(140)는 반도체 설계 시스템(100)의 보조 메모리(secondary memory)로 사용될 수 있다. 스토리지(140)는 반도체 설계 시뮬레이션을 위한 도구(tool)를 구성하는 명령들(141), 그리고 시뮬레이션의 대상인 반도체 모델을 위한 데이터(142)를 저장할 수 있다. 스토리지(140)는 HDD(Hard Disk Drive), SSD(Solid State Drive), ODD(Optical Disk Drive) 등을 포함할 수 있다.
모뎀(150)은 외부의 장치와 유선 또는 무선으로 통신할 수 있다. 예를 들어, 명령들(141) 또는 데이터(142)는 외부의 장치로부터 모뎀(150)을 통해 스토리지(140)에 저장될 수 있다. 스토리지(140)에 저장된 명령들(141) 또는 데이터(142)는 모뎀(150)을 통해 외부의 장치로 전달될 수 있다. 모뎀(150)은 이더넷(Ethernet)에 기반할 수 있다.
부착 가능하고 탈착 가능한 스토리지(160)는 휴대용 스토리지를 포함할 수 있다. 예를 들어, 명령들(141) 또는 데이터(142)는 부착 가능하고 탈착 가능한 스토리지(160)로부터 스토리지(140)로 옮겨질 수 있다. 스토리지(140)에 저장된 명령들(141) 또는 데이터(142)는 부착 가능하고 탈착 가능한 스토리지(160)로 옮겨질 수 있다. 부착 가능하고 탈착 가능한 스토리지(160)는 USB(Universal Serial Bus), SATA(Serial Advanced Technology Attachment) 등과 같은 다양한 표준들 중 하나에 기반할 수 있다.
사용자 인터페이스(170)는 터치 센서(171), 키보드(172), 마우스(173) 등과 같은 다양한 사용자 입력 인터페이스 장치들을 포함할 수 있다. 사용자 인터페이스(170)는 사용자로부터 시뮬레이션을 위한 도구의 실행 명령, 도구의 시뮬레이션 기능들을 위한 다양한 명령들을 수신할 수 있다.
사용자 인터페이스(170)는 디스플레이(174)와 같은 다양한 사용자 출력 인터페이스 장치들을 포함할 수 있다. 사용자 인터페이스(170)는 시뮬레이션의 대상인 반도체 모델, 반도체 모델에 대한 시뮬레이션의 과정 및 결과를 사용자에게 전달할 수 있다.
예시적으로, 반도체 설계 시스템(100)은 범용 컴퓨터 또는 반도체 시뮬레이션을 위한 특수 목적 컴퓨터로 구현될 수 있다. 반도체 시뮬레이션을 위한 도구는 명령들(141)의 형태로 모뎀(150)을 통해 전달되거나 부착 가능하고 탈착 가능한 스토리지(160)를 통해 전달될 수 있다. 반도체 시뮬레이션을 위한 반도체 모델은 데이터(142)의 형태로 모뎀(150)을 통해 전달되거나 부착 가능하고 탈착 가능한 스토리지(160)를 통해 전달될 수 있다.
도 2는 본 발명의 실시 예에 따른 반도체 시뮬레이션 방법을 보여주는 순서도이다. 도 2에 도시된 방법은 프로세서(120)가 스토리지(140)의 명령들(141)을 실행함에 따라 활성화되는 시뮬레이션을 위한 도구에 의해 수행될 수 있다. 도 1 및 도 2를 참조하면, S110 단계에서, 시뮬레이션을 위한 도구는 스토리지(140)에 저장된 데이터(142)로부터 제1 폴리곤 메쉬들을 생성할 수 있다. 제1 폴리곤 메쉬들은 반도체 모델을 형성할 수 있다.
S120 단계에서, 시뮬레이션을 위한 도구는 제1 폴리곤 메쉬들을 제1 레벨 세트들로 변환할 수 있다. 제1 레벨 세트들의 각각은 거리 값 세트들을 포함할 수 있다. 거리 값 세트들의 각각은 부호를 갖는 값들을 포함할 수 있다. 각 거리 값 세트의 값들의 수는 제1 폴리곤 메쉬들이 형성하는 차원들의 수에 따라 결정될 수 있다. 예를 들어, 각 거리 값 세트의 값들의 수는 차원들의 수와 동일할 수 있다.
S130 단계에서, 시뮬레이션을 위한 도구는 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성할 수 있다. 예를 들어, 시뮬레이션을 위한 도구는 제1 레벨 세트들의 각각에 대해 동일한 논리 연산을 수행할 수 있다. 논리 연산은 부울 연산(Boolean operation)을 포함할 수 있다. 논리 연산은 반도체 모델에 적용되는 공정(process)에 대응할 수 있다.
S140 단계에서, 시뮬레이션을 위한 도구는 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환할 수 있다. 제2 폴리곤 메쉬들은 공정이 적용된 반도체 모델을 형성할 수 있다. S110 단계 내지 S140 단계는 CSG(Constructive Solid Geometry) 동작을 형성할 수 있다.
본 발명의 실시 예에 따르면, 폴리곤 메쉬들에 공정을 적용하는 것은 제1 레벨 세트들의 값들을 제2 레벨 세트들의 값들로 변환하는 간단한 논리 연산에 의해 수행된다. 폴리곤 메쉬들과 연관된 연산은 제1 폴리곤 메쉬들을 생성하는 S110 단계 및 제2 폴리곤 메쉬들을 생성하는 S140 단계로 한정된다.
폴리곤 메쉬들에서 연산을 수행하는 재메쉬 또는 재삼각화는 기존의 폴리곤 메쉬들을 유지하면서, 반도체 모델의 형태 변화를 반영하여 폴리곤 메쉬들의 형태를 조절한다. 이때, 기존의 폴리곤 메쉬들이 연산에 반영되므로, 연산량이 큰 특징을 갖는다.
S110 단계 및 S140 단계는 초기 메쉬 생성(initial meshing)에 대응하며, 반도체 모델의 형태로부터 새로운 폴리곤 메쉬들을 생성한다. S140 단계에서, 제2 폴리곤 메쉬들은 S110 단계에서 생성된 제1 폴리곤 메쉬들과 독립적으로 생성될 수 있다. S110 단계 및 S140 단계는 재메쉬(re-meshing) 또는 재삼각화(re-trangulation)보다 단순한 연산들로 처리되며, 따라서 CSG 동작의 연산량이 감소하고, CSG 동작의 시간이 감소된다.
도 3은 스토리지(140)에 저장된 데이터(142)가 가리키는 반도체 모델의 예를 보여준다. 도 1 및 도 3을 참조하면, 데이터(142)는 육각형의 큰 표면들 및 삼각형의 작은 표면들을 갖는 반도체 모델을 나타낼 수 있다.
도 4는 반도체 모델을 형성하는 폴리곤 메쉬들의 예를 보여준다. 도 3 및 4를 참조하면, 반도체 모델의 바디(body)의 표면들(surfaces)을 덮는 삼각형의 폴리곤 메쉬들이 생성될 수 있다. 예시적으로, 바디는 폴리곤 메쉬들에 의해 정의되는 독립적인 표면들을 갖는 것으로 정의될 수 있다. 바디는 솔리드(solid), 객체(object), 대상(subject) 등과 같은 다양한 용어들로도 불릴 수 있으며, 한정되지 않는다.
도 5는 도 4의 반도체 모델로부터 레벨 세트를 생성하는 방법을 보여주는 순서도이다. 도 5에 도시된 방법은 프로세서(120)가 스토리지(140)의 명령들(141)을 실행함에 따라 활성화되는 시뮬레이션을 위한 도구에 의해 수행될 수 있다. 도 1, 도 4 및 도 5를 참조하면, S210 단계에서, 시뮬레이션을 위한 도구는 목표 바디를 특정한 좌표계(coordinate system)에 놓을 수 있다.
예를 들어, 시뮬레이션을 위한 도구는 목표 바디에 특정한 좌표계를 가상으로 설정할 수 있다. 특정한 좌표계의 차원들의 수는 목표 바디를 구성하는 폴리곤 메쉬들의 차원들의 수와 동일할 수 있다.
S220 단계에서, 시뮬레이션을 위한 도구는 모서리들(edges)에 따라 격자들(grids)을 생성할 수 있다. 예를 들어, 시뮬레이션을 위한 도구는 목표 바디의 폴리곤 메쉬들에 의해 형성되는 모서리들(edges)에 따라, 특정한 좌표계에 부합하는 격자들을 목표 바디의 주변에 생성할 수 있다.
S230 단계에서, 시뮬레이션을 위한 도구는 폴리곤 메쉬들에 의해 정의되는 목표 바디의 표면들(surfaces)에 격자들의 인접한 교차점들에서, 폴리곤 메쉬들의 정보를 가리키는 부호화된(signed) 거리 값들을 계산할 수 있다. S240 단계에서, 시뮬레이션을 위한 도구는 부호화된 거리 값들(또는 부호화된 거리 값 세트들)을 레벨 세트로 선택(pick)할 수 있다.
도 6은 도 4의 목표 바디를 특정한 좌표계에 놓는 예를 보여준다. 예를 들어, 목표 바디에 제1축(X), 제2축(Y) 및 제3축(Z)을 갖는 직각 좌표계(rectangular coordinate system)가 설정될 수 있다. 직각 좌표계를 따라, 목표 바디에 격자들이 형성될 수 있다. 예를 들어, 격자들은 목표 바디의 모서리들(edges)을 통과하도록 생성될 수 있다.
도 7은 목표 바디의 격자들의 교점들에서 부호화된 거리 값들이 계산되는 예를 보여준다. 예시적으로, 도면 및 설명이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 6의 목표 바디에서 하나의 큰 표면과 연관된 부호화된 거리 값들이 계산되는 예가 도 7에 도시된다.
예를 들어, 격자들의 교점들 중에서 목표 바디의 표면에 인접한 교점들에서 부호화된 거리 값들이 계산될 수 있다. 거리 값은 해당 교점과 목표 바디의 표면 사이의 거리를 나타낸다. 거리 값은 제1축(X), 제2축(Y), 그리고 제3축(Z)을 따라 계산될 수 있다. 예시적으로, 도 7에서 제1축(X)에 따른 거리 값들을 계산하는 예가 설명된다.
교점과 목표 바디 사이의 거리 값은 0 내지 1.0의 범위로 계산될 수 있다. 교점과 목표 바디의 표면이 접촉할 때, 거리 값은 0일 수 있다. 교점과 목표 바디 사이의 거리가 가장 멀 때, 예를 들어 목표 바디의 표면이 인접한 다른 교점에 접촉할 때, 거리 값은 1.0일 수 있다.
거리 값의 부호는 해당 교점이 목표 바디의 내부에 위치하는지 또는 외부에 위치하는지에 따라 결정된다. 예를 들어, 해당 교점이 목표 바디의 내부에 위치할 때, 거리 값은 음의 부호를 갖는다. 해당 교점이 목표 바디의 외부에 위치할 때, 거리 값은 양의 부호를 갖는다.
제1축(X)에 따른 제1 교점(X1)과 목표 바디의 표면 사이의 거리는 0.5일 수 있다. 제1 교점(X1)은 목표 바디의 표면들의 외부에 위치하므로, 부호는 양일 수 있다. 따라서, 제1 교점(X1)에서 제1축(X)에 따른 '0.5'의 거리 값이 계산될 수 있다.
제1축(X)에 따른 제2 교점(X2)과 목표 바디의 표면 사이의 거리는 0.5일 수 있다. 제2 교점(X2)은 목표 바디의 표면들의 내부에 위치하므로, 부호는 음일 수 있다. 따라서, 제2 교점(X2)에서 제1축(X)에 따른 '-0.5'의 거리 값이 계산될 수 있다.
마찬가지로, 제3 내지 제8 교점들(X3~X8)에서, 0.5, -0.5, 0.5, -0.5, 0.5, -0.5의 거리 값들이 각각 계산될 수 있다. 제1축(X)을 따라 목표 바디의 표면과 인접하지 않은 교점들에서 제1축(X)에 따른 거리 값들은 기본 값으로 계산될 수 있다. 예를 들어, 목표 바디의 내부의 교점의 거리 값은 음의 기본 값으로 계산되고, 목표 바디의 외부의 교점의 거리 값은 양의 기본 값으로 계산될 수 있다. 기본 값의 절대 값은 거리 값의 범위의 최대 값보다 클 수 있다.
도 8은 제2축(Y)에 따른 교점들의 거리 값들이 계산되는 예를 보여준다. 도 8을 참조하면, 제2축(Y)에 따른 제1 교점(Y1)과 목표 바디의 표면 사이의 거리는 0.5일 수 있다. 제1 교점(Y1)은 목표 바디의 표면들의 외부에 위치하므로, 부호는 양일 수 있다. 따라서, 제1 교점(Y1)에서 제2축(Y)에 따른 '0.5'의 거리 값이 계산될 수 있다.
제2축(Y)에 따른 제2 교점(Y2)과 목표 바디의 표면 사이의 거리는 0.5일 수 있다. 제2 교점(Y2)은 목표 바디의 표면들의 내부에 위치하므로, 부호는 음일 수 있다. 따라서, 제2 교점(Y2)에서 제2축(Y)에 따른 '-0.5'의 거리 값이 계산될 수 있다.
마찬가지로, 제3 내지 제24 교점들(Y3~Y24)에서, -0.5, -0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5, 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5, 0.5, -0.5의 거리 값들이 각각 계산될 수 있다.
제2축(Y)을 따라 목표 바디의 표면과 인접하지 않은 교점들에서 제2축(Y)에 따른 거리 값들은 기본 값으로 계산될 수 있다. 예를 들어, 목표 바디의 내부의 교점의 거리 값은 음의 기본 값으로 계산되고, 목표 바디의 외부의 교점의 거리 값은 양의 기본 값으로 계산될 수 있다.
도 9는 도 7 및 도 8에서 계산된 거리 값 세트들의 예를 보여준다. 도 9를 참조하면, 목표 바디의 표면에 인접한 교점들에서 제1축(X) 및 제2축(Y)에 따른 거리 값 세트들이 조합될 수 있다.
제1 교점(P1)에서, 거리 값 세트는 (far,0.5)일 수 있다. 제1 교점(P1)은 제1축(X)을 따라 기본 거리 값(far)을 갖고, 제2축(Y)을 따라 0.5의 거리 값을 갖는다. 이는 제1 교점(P1)이 제1축(X)을 따라 목표 바디와 인접하지 않으며 목표 바디의 외부에 위치하고, 제2축(Y)을 따라 목표 바디와 0.5의 거리에 있으며 목표 바디의 외부에 위치함을 나타낸다.
마찬가지로, 제2 내지 제28 교점들(P2~P28)에서, 아래의 표 1과 같이 부호화된 거리 값들이 획득될 수 있다.
교점 거리 값 교점 거리 값
P2 (0.5,far) P3 (-0.5,-0.5)
P4 (0.5,far) P5 (-0.5,-0.5)
P6 (far,0.5) P7 (-far,-0.5)
P8 (far,0.5) P9 (-far,-0.5)
P10 (far,0.5) P11 (-far,-0.5)
P12 (far,0.5) P13 (far,0.5)
P14 (-far,-0.5) P15 (far,0,5)
P16 (-0.5,-0.5) P17 (0.5,far)
P18 (-0.5,-0.5) P19 (0.5,far)
P20 (far,0.5) P21 (-far,-0.5)
P22 (far,0.5) P23 (-far,-0.5)
P24 (far,0.5) P25 (-far,-0.5)
P26 (far,0.5) P27 (far,0.5)
P28 (-fat,-0.5)
도 7 내지 도 9에서, 거리 값 세트의 거리 값들의 각각이 부호를 갖는 것으로 설명되었다. 그러나 거리 값 세트의 거리 값들의 각각은 부호를 갖지 않고 값만을 가질 수 있다. 해당 교점이 목표 바디의 내부에 위치하는지 또는 외부에 위치하는지에 따라, 거리 값 세트가 하나의 부호를 가질 수 있다.
도 7 내지 도 9를 참조하여 설명된 것과 마찬가지로, 제3축(Z)을 따른 거리 값들 또한 계산될 수 있다. 예를 들어, 즉 목표 바디와 인접한 교점들에서 제1축(X), 제2축(Y) 및 제3축(Z)에 따른 부호화된 거리 값들이 계산될 수 있다.
도 10은 목표 바디의 외부의 교점들에서 부호화된 거리 값들이 계산된 예를 보여준다. 도 6 내지 도 9를 참조하여 설명된 바와 같이, 교점이 목표 바디의 외부에 위치할 때에, 교점의 거리 값들 중 적어도 하나의 거리 값은 기본 값을 가질 수 있다. 교점의 거리 값들 또는 거리 값 세트는 양의 부호를 가질 수 있다.
도 11은 목표 바디의 내부의 교점들에서 부호화된 거리 값들이 계산된 예를 보여준다. 도 6 내지 도 9를 참조하여 설명된 바와 같이, 교점이 목표 바디의 내부에 위치할 때에, 교점의 거리 값들 중 적어도 하나의 거리 값은 범위 내의 유의미한 값을 가질 수 있다. 교점의 거리 값들 또는 거리 값 세트는 음의 부호를 가질 수 있다.
도 6 내지 도 11을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 레벨 세트는 목표 바디와 연관된 거리 값 세트들을 포함한다. 거리 값 세트는 특정한 좌표계의 차원들의 수에 해당하는 거리 값들을 포함한다. 즉, 반도체 모델을 나타내는 폴리곤 메쉬들은 다차원 거리 값들을 포함하는 거리 값 세트들로 변환된다. 따라서, 반도체 모델의 정밀한 묘사가 가능하고, 변환 과정에서 왜곡(distortion)이 발생하는 것이 방지된다.
도 12는 폴리곤 메쉬들에 의해 정의되는 반도체 모델(200)의 예를 보여준다. 도 12를 참조하면, 반도체 모델(200)은 제1 바디(201), 제2 바디(202), 제3 바디(203), 제4 바디(204), 그리고 제5 바디(205)를 포함한다. 제1 내지 제5 바디들(201~205)의 각각의 표면들은 폴리곤 메쉬들에 의해 정의될 수 있다.
도 13은 도 12의 반도체 모델의 폴리곤 메쉬들을 레벨 세트들로 변환하는 방법의 예를 보여주는 순서도이다. 도 13에 도시된 방법은 도 1의 프로세서(120)가 스토리지(140)의 명령들(141)을 실행함에 따라 활성화되는 시뮬레이션을 위한 도구에 의해 수행될 수 있다. 도 1 및 도 13을 참조하면, S310 단계에서, 시뮬레이션을 위한 도구는 변수(i)를 초기 값, 예를 들어 1로 설정할 수 있다.
S320 단계에서, 시뮬레이션을 위한 도구는 폴리곤 메쉬들에 의해 정의된 최종 표면들로부터 제n 레벨 셋을 선택할 수 있다. 최종 표면들은 반도체 모델의 겉 표면을 의미하며, 서로 다른 바디들의 표면들이 접촉하여 노출되지 않는 때에 해당 표면들은 최종 표면들로부터 제외될 수 있다.
S330 단계에서, 시뮬레이션을 위한 도구는 둘 이상의 목표 바디들이 존재하는지 판단할 수 있다. 폴리곤 메쉬들이 형성하는 반도체 모델이 둘 이상의 바디들을 포함할 때, S340 단계가 수행된다. S340 단계에서, 시뮬레이션을 위한 도구는 남아있는 목표 바디들 중에서 하나의 목표 바디를 제거하고, 그리고 변수(i)를 1만큼 증가시킬 수 있다.
시뮬레이션을 위한 도구는 S320 단계 내지 S340 단계를 반복할 수 있다. 즉, 시뮬레이션을 위한 도구는 목표 바디들을 하나씩 제거하며, 목표 바디들이 형성하는 최종 표면들의 레벨 세트들을 계산할 수 있다. S340 단계를 통해 하나의 목표 바디만 남게 되면, S320 단계에서 마지막 목표 바디의 레벨 세트가 획득될 수 있다. 이후에, S330 단계에서, 시뮬레이션을 위한 도구는 폴리곤 메쉬들을 레벨 세트들로 변환하는 동작을 종료할 수 있다.
목표 바디를 레벨 세트들로 변환할 때에, 목표 바디의 모서리들에서 왜곡이 발생할 수 있다. 하나의 목표 바디의 제1 폴리곤 메쉬들을 레벨 세트로 변환하고, 그리고 레벨 세트를 다시 제2 폴리곤 메쉬들로 변환하면, 목표 바디의 모서리들의 형태가 왜곡될 수 있다.
본 발명의 실시 예에 따른 시뮬레이션을 위한 도구는 각 목표 바디의 레벨 세트들을 계산하는 대신, 목표 바디들의 최종 표면들의 레벨 세트들을 계산할 수 있다. 각 레벨 세트에 둘 이상의 목표 바디들의 정보가 포함될 수 있다. 따라서, 레벨 세트들의 비교를 통해 변환 과정에서 발생할 수 있는 왜곡이 검출되고 그리고 복원될 수 있다.
도 14는 도 12의 반도체 모델의 폴리곤 메쉬들의 제1 최종 표면들(210)의 예를 보여준다. 도 12 및 도 14를 참조하면, 제1 최종 표면들(210)은 제1 내지 제5 바디들(201~205)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제1 최종 표면들(210)로부터 거리 값 세트들을 포함하는 제1 레벨 세트를 계산할 수 있다.
도 15는 도 12의 반도체 모델에서 제5 바디(205)를 제거한 후의 폴리곤 메쉬들의 제2 최종 표면들(220)의 예를 보여준다. 도 12 및 도 15를 참조하면, 제2 최종 표면들(220)은 제1 내지 제4 바디들(201~204)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제2 최종 표면들(220)로부터 거리 값 세트들을 포함하는 제2 레벨 세트를 계산할 수 있다.
도 16은 도 12의 반도체 모델에서 제4 및 제5 바디들(204, 205)을 제거한 후의 폴리곤 메쉬들의 제3 최종 표면들(230)의 예를 보여준다. 도 12 및 도 16을 참조하면, 제3 최종 표면들(230)은 제1 내지 제3 바디들(201~203)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제3 최종 표면들(230)로부터 거리 값 세트들을 포함하는 제3 레벨 세트를 계산할 수 있다.
도 16은 도 12의 반도체 모델에서 제4 및 제5 바디들(204, 205)을 제거한 후의 폴리곤 메쉬들의 제3 최종 표면들(230)의 예를 보여준다. 도 12 및 도 16을 참조하면, 제3 최종 표면들(230)은 제1 내지 제3 바디들(201~203)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제3 최종 표면들(230)로부터 거리 값 세트들을 포함하는 제3 레벨 세트를 계산할 수 있다.
도 17은 도 12의 반도체 모델에서 제3 내지 제5 바디들(203~205)을 제거한 후의 폴리곤 메쉬들의 제4 최종 표면들(240)의 예를 보여준다. 도 12 및 도 17을 참조하면, 제4 최종 표면들(240)은 제1 및 제2 바디들(201, 202)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제4 최종 표면들(240)로부터 거리 값 세트들을 포함하는 제4 레벨 세트를 계산할 수 있다.
도 18은 도 12의 반도체 모델에서 제2 내지 제5 바디들(202~205)을 제거한 후의 폴리곤 메쉬들의 제5 최종 표면들(250)의 예를 보여준다. 도 12 및 도 18을 참조하면, 제5 최종 표면들(250)은 제1 바디(201)에 의해 형성되는 겉표면들을 포함할 수 있다. 시뮬레이션을 위한 도구는 제5 최종 표면들(250)로부터 거리 값 세트들을 포함하는 제5 레벨 세트를 계산할 수 있다.
도 19는 도 14 내지 도 18을 참조하여 설명된 제1 내지 제5 레벨 세트들에 대해 논리 연산을 수행하는 방법의 예를 보여주는 순서도이다. 도 19에 도시된 방법은 프로세서(120)가 스토리지(140)의 명령들(141)을 실행함에 따라 활성화되는 시뮬레이션을 위한 도구에 의해 수행될 수 있다. 도 1 및 도 19를 참조하면, S410 단계에서, 시뮬레이션을 위한 도구는 변수(i)를 초기 값, 예를 들어 1로 설정할 수 있다.
S420 단계에서, 시뮬레이션을 위한 도구는 도 14 내지 도 18을 참조하여 설명된 제1 내지 제5 레벨 세트들 중에서 제i 레벨 세트를 선택할 수 있다. S430 단계에서, 시뮬레이션을 위한 도구는 목표 공정이 제1 타입의 공정인지 판단할 수 있다. 예를 들어, 제1 타입의 공정은 반도체 모델의 사이즈를 증가시킬 수 있다. 제1 타입의 공정은 새로운 바디를 추가하는 증착(deposition)일 수 있다.
목표 공정이 제1 타입의 공정이면, S440 단계에서, 시뮬레이션을 위한 도구는 연산 포인트들(operation points)에서 거리 값들의 최소 값들을 계산할 수 있다. 연산 포인트들은 공정을 적용함으로써 거리 값들이 변경되는 격자들(grids)의 교점들일 수 있다.
예를 들어, 시뮬레이션을 위한 도구는 공정이 수행된 후의 반도체 모델의 최종 표면들에 해당하는 레벨 세트, 예를 들어 목표 레벨 세트를 계산할 수 있다. 시뮬레이션을 위한 도구는 제i 레벨 세트와 목표 레벨 세트의 합집합(union)을 통해 연산 결과를 도출할 수 있다.
목표 공정이 제1 타입의 공정이 아니면, S450 단계에서, 시뮬레이션을 위한 도구는 목표 공정이 제2 타입의 공정인지 판단할 수 있다. 예를 들어, 제2 타입의 공정은 반도체 모델의 사이즈를 감소시킬 수 있다. 제1 타입의 공정은 제1 내지 제5 바디들(201~205)의 일부분을 제거하는 식각(etching)일 수 있다.
목표 공정이 제2 타입의 공정이면, S460 단계에서, 시뮬레이션을 위한 도구는 연산 포인트들(operation points)에서 거리 값들의 최대 값들을 계산할 수 있다. 예를 들어, 시뮬레이션을 위한 도구는 공정이 수행된 후의 반도체 모델의 최종 표면들에 해당하는 레벨 세트, 예를 들어 목표 레벨 세트를 계산할 수 있다. 시뮬레이션을 위한 도구는 제i 레벨 세트들과 목표 레벨 세트의 교집합(intersection)을 통해 연산 결과를 도출할 수 있다.
목표 공정이 제2 타입의 공정이 아니면, 시뮬레이션을 위한 도구는 목표 공정이 제3 타입의 공정인 것으로 판단할 수 있다. 예를 들어, 제3 타입의 공정은 반도체 모델로부터 일부를 제거할 수 있다. 제3 타입의 공정은 제1 내지 제5 바디들(201~205)의 일부분을 제거하는 패터닝(patterning)일 수 있다.
목표 공정이 제3 타입의 공정이면, S470 단계에서, 시뮬레이션을 위한 도구는 연산 포인트들(operation points)에서 제1 내지 제5 레벨 세트들의 거리 값들 및 목표 레벨 세트의 거리 값들의 반전 값들의 최소 값들을 계산할 수 있다. 예를 들어, 시뮬레이션을 위한 도구는 공정을 통해 반도체 모델로부터 제거되는 형태에 해당하는 레벨 세트, 예를 들어 목표 레벨 세트를 계산할 수 있다. 시뮬레이션을 위한 도구는 제i 레벨 세트와 목표 레벨 세트의 차이(difference)를 통해 연산 결과를 도출할 수 있다.
S440 단계, S450 단계 또는 S460 단계에서 연산 결과가 도출되면, S480 단계에서, 시뮬레이션을 위한 도구는 변수(i)가 최대 값인지 판단할 수 있다. 예를 들어, 변수(i)가 레벨 세트들의 개수에 도달하면, 변수(i)는 최대 값일 수 있다. 변수(i)가 최대 값이 아니면, S490 단계에서, 시뮬레이션을 위한 도구는 변수(i)를 1만큼 증가시킬 수 있다. 이후에, 시뮬레이션을 위한 도구는 S420 단계를 다시 수행할 수 있다. 변수(i)가 최대 값이면, 시뮬레이션을 위한 도구는 연산이 완료된 레벨 세트들을 최종 레벨 세트들로 확정할 수 있다.
상술된 바와 같이, 시뮬레이션을 위한 도구는 제1 내지 제5 레벨 세트들의 각각에 대해 동일한 공정을 적용할 수 있다. 공정은 거리 값들의 최소 값 또는 최대 값을 선택하는 단순 연산을 통해 적용된다. 따라서, CSG 동작의 연산량이 감소하고, 연산 시간이 단축된다.
도 20은 반도체 모델에 제1 타입의 공정이 적용되는 예를 보여준다. 예시적으로, 제1축(X) 및 제2축(Y)에 의해 형성되는 평면에서 제1 타입의 공정이 적용되는 예가 도 20에 도시된다. 도 20에서, 반도체 모델의 형태가 실선(A)으로 도시되고, 목표 레벨 세트에 해당하는 형태가 점선(B)으로 도시된다. 제1 타입의 공정이 적용되면, 실선(A)의 형태의 반도체 모델이 점선(B)의 형태로 변경될 수 있다.
제1 연산 포인트(OP1)에서, 실선(A)에 대한 거리 값은 (0.9,far)일 수 있다. 점선(B)에 대한 거리 값은 (0.8,far)일 수 있다. 공정이 적용된 후의 제1 연산 포인트(OP1)의 결과 값(R)은 제1축(X)에 대한 최소 값인 0.8, 그리고 제2축(Y)에 대한 최소 값인 'far'일 수 있다.
제2 연산 포인트(OP2)에서, 실선(A)에 대한 거리 값은 (-0.1,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (-0.2,-0.7)일 수 있다. 공정이 적용된 후의 제2 연산 포인트(OP2)의 결과 값(R)은 제1축(X)에 대한 최소 값인 -0.2, 그리고 제2축(Y)에 대한 최소 값인 '-0.7'일 수 있다.
제3 연산 포인트(OP3)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,0.3)일 수 있다. 공정이 적용된 후의 제3 연산 포인트(OP3)의 결과 값(R)은 제1축(X)에 대한 최소 값인 'far', 그리고 제2축(Y)에 대한 최소 값인 '0.3'일 수 있다.
제4 연산 포인트(OP4)에서, 실선(A)에 대한 거리 값은 (-far,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (-far,-0.9)일 수 있다. 공정이 적용된 후의 제4 연산 포인트(OP4)의 결과 값(R)은 제1축(X)에 대한 최소 값인 '-far', 그리고 제2축(Y)에 대한 최소 값인 '-0.9'일 수 있다.
제5 연산 포인트(OP5)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,0.1)일 수 있다. 공정이 적용된 후의 제5 연산 포인트(OP5)의 결과 값(R)은 제1축(X)에 대한 최소 값인 'far', 그리고 제2축(Y)에 대한 최소 값인 '0.1'일 수 있다.
제6 연산 포인트(OP6)에서, 실선(A)에 대한 거리 값은 (-0.1,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (-0.2,-0.9)일 수 있다. 공정이 적용된 후의 제6 연산 포인트(OP6)의 결과 값(R)은 제1축(X)에 대한 최소 값인 '-0.2', 그리고 제2축(Y)에 대한 최소 값인 '-0.7'일 수 있다.
제7 연산 포인트(OP7)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,0.3)일 수 있다. 공정이 적용된 후의 제7 연산 포인트(OP7)의 결과 값(R)은 제1축(X)에 대한 최소 값인 'far', 그리고 제2축(Y)에 대한 최소 값인 '0.3'일 수 있다.
제8 연산 포인트(OP8)에서, 실선(A)에 대한 거리 값은 (0.9,far)일 수 있다. 점선(B)에 대한 거리 값은 (0.8,far)일 수 있다. 공정이 적용된 후의 제8 연산 포인트(OP8)의 결과 값(R)은 제1축(X)에 대한 최소 값인 0.8, 그리고 제2축(Y)에 대한 최소 값인 'far'일 수 있다.
도 21은 반도체 모델에 제2 타입의 공정이 적용되는 예를 보여준다. 예시적으로, 제1축(X) 및 제2축(Y)에 의해 형성되는 평면에서 제2 타입의 공정이 적용되는 예가 도 21에 도시된다. 도 21에서, 반도체 모델의 형태가 실선(A)으로 도시되고, 목표 레벨 세트에 해당하는 형태가 점선(B)으로 도시된다. 제2 타입의 공정이 적용되면, 실선(A)의 형태의 반도체 모델이 점선(B)의 형태로 변경될 수 있다.
제1 연산 포인트(OP1)에서, 실선(A)에 대한 거리 값은 (0.9,far)일 수 있다. 점선(B)에 대한 거리 값은 (1.0,far)일 수 있다. 공정이 적용된 후의 제1 연산 포인트(OP1)의 결과 값(R)은 제1축(X)에 대한 최대 값인 1.0, 그리고 제2축(Y)에 대한 최대 값인 'far'일 수 있다.
제2 연산 포인트(OP2)에서, 실선(A)에 대한 거리 값은 (-0.1,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (0.0,0.0)일 수 있다. 공정이 적용된 후의 제2 연산 포인트(OP2)의 결과 값(R)은 제1축(X)에 대한 최대 값인 0.0, 그리고 제2축(Y)에 대한 최대 값인 0.0일 수 있다.
제3 연산 포인트(OP3)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,1.0)일 수 있다. 공정이 적용된 후의 제3 연산 포인트(OP3)의 결과 값(R)은 제1축(X)에 대한 최대 값인 'far', 그리고 제2축(Y)에 대한 최대 값인 1.0일 수 있다.
제4 연산 포인트(OP4)에서, 실선(A)에 대한 거리 값은 (-0.5,-far)일 수 있다. 점선(B)에 대한 거리 값은 (-0.5,-1.0)일 수 있다. 공정이 적용된 후의 제4 연산 포인트(OP4)의 결과 값(R)은 제1축(X)에 대한 최대 값인 -0.5, 그리고 제2축(Y)에 대한 최대 값인 -1.0일 수 있다.
제5 연산 포인트(OP5)에서, 실선(A)에 대한 거리 값은 (-far,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (-far,-0.2)일 수 있다. 공정이 적용된 후의 제5 연산 포인트(OP5)의 결과 값(R)은 제1축(X)에 대한 최대 값인 '-far', 그리고 제2축(Y)에 대한 최대 값인 -0.2일 수 있다.
제6 연산 포인트(OP6)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,0.8)일 수 있다. 공정이 적용된 후의 제6 연산 포인트(OP6)의 결과 값(R)은 제1축(X)에 대한 최대 값인 'far', 그리고 제2축(Y)에 대한 최대 값인 0.8일 수 있다.
제7 연산 포인트(OP7)에서, 실선(A)에 대한 거리 값은 (-0.1,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (0.0,0.0)일 수 있다. 공정이 적용된 후의 제7 연산 포인트(OP7)의 결과 값(R)은 제1축(X)에 대한 최대 값인 0.0, 그리고 제2축(Y)에 대한 최대 값인 0.0일 수 있다.
제8 연산 포인트(OP8)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 점선(B)에 대한 거리 값은 (far,1.0)일 수 있다. 공정이 적용된 후의 제8 연산 포인트(OP8)의 결과 값(R)은 제1축(X)에 대한 최대 값인 'far', 그리고 제2축(Y)에 대한 최대 값인 1.0일 수 있다.
제9 연산 포인트(OP9)에서, 실선(A)에 대한 거리 값은 (-0.5,-far)일 수 있다. 점선(B)에 대한 거리 값은 (-0.5,-1.0)일 수 있다. 공정이 적용된 후의 제9 연산 포인트(OP9)의 결과 값(R)은 제1축(X)에 대한 최대 값인 -0.5, 그리고 제2축(Y)에 대한 최대 값인 -1.0일 수 있다.
제10 연산 포인트(OP10)에서, 실선(A)에 대한 거리 값은 (0.9,far)일 수 있다. 점선(B)에 대한 거리 값은 (1.0,far)일 수 있다. 공정이 적용된 후의 제10 연산 포인트(OP10)의 결과 값(R)은 제1축(X)에 대한 최대 값인 1.0, 그리고 제2축(Y)에 대한 최대 값인 'far'일 수 있다.
도 22는 반도체 모델에 제3 타입의 공정이 적용되는 예를 보여준다. 예시적으로, 제1축(X) 및 제2축(Y)에 의해 형성되는 평면에서 제3 타입의 공정이 적용되는 예가 도 22에 도시된다. 도 22에서, 반도체 모델의 형태가 실선(A)으로 도시되고, 목표 레벨 세트에 해당하는 형태가 점선(B)으로 도시된다. 제3 타입의 공정이 적용되면, 실선(A)의 형태의 반도체 모델로부터 점선(B)의 형태가 제거될 수 있다.
제1 연산 포인트(OP1)에서, 실선(A)에 대한 거리 값은 (-far,-0.3)일 수 있다. 점선(B)에 대한 거리 값은 (-far,0.0)일 수 있다. 점선(B)에 대한 거리 값의 반전 값은 (far,0.0)일 수 있다. 공정이 적용된 후의 제1 연산 포인트(OP1)의 결과 값(R)은 제1축(X)에 대한 최대 값인 'far', 그리고 제2축(Y)에 대한 최대 값인 '0.0'일 수 있다.
제2 연산 포인트(OP2)에서, 실선(A)에 대한 거리 값은 (far,0.7)일 수 있다. 제2 연산 포인트(OP2)는 반도체 모델로부터 제거되는 영역에 속하며, 목표 레벨 세트의 내부에 속한 것으로 여겨질 수 있다. 따라서, 제2 연산 포인트(OP2)에서 점선(B)에 대한 거리 값은 (-far,-1.0)일 수 있다. 점선(B)에 대한 거리 값의 반전 값은 (far,1.0)일 수 있다. 공정이 적용된 후의 제2 연산 포인트(OP2)의 결과 값(R)은 제1축(X)에 대한 최대 값인 'far', 그리고 제2축(Y)에 대한 최대 값인 '1.0'일 수 있다.
도 19 내지 도 22에서, 세 가지 형태의 공정들에 따른 연산들의 예들이 설명되었다. 그러나 본 발명의 기술적 사상은 세 가지 형태의 공정들에 따른 연산들에 한정되지 않는다. 본 발명의 기술적 사상은 더 다양한 공정들 및 이들에 따른 더 다양한 연산들에 적용될 수 있다.
도 23은 도 12의 반도체 모델에 공정이 적용되는 예를 보여준다. 도 23을 참조하면, 제1 공정을 통해 제6 바디(206)가 추가될 수 있다. 제2 공정 또는 제3 공정을 통해 제7 바디(207)가 제거될 수 있다. 예시적으로, 제6 바디(206)를 추가하는 공정 및 제7 바디(207)를 제거하는 공정은 순차적으로 또는 동시에 수행될 수 있다.
도 24는 도 18의 제5 레벨 세트에 대응하는 표면들로부터 제6 바디(206)가 추가되고 그리고 제7 바디(207)가 제거된 제1 모델(310)을 보여준다. 제5 레벨 세트에 대해 도 19 내지 도 22를 참조하여 설명된 논리 연산들이 수행되면, 결과적인 레벨 세트는 도 24에 도시된 제1 모델(310)의 형태를 나타낼 수 있다.
제1 모델(310)로부터 공정 후의 제1 바디(301) 및 제2 바디(302)가 식별될 수 있다. 예를 들어, 제1 바디(301) 및 제2 바디(302)를 나타내는 레벨 세트로부터 폴리곤 메쉬들을 생성함으로서, 제1 바디(301) 및 제2 바디(302)가 식별될 수 있다.
도 25는 도 17의 제4 레벨 세트에 대응하는 표면들로부터 제6 바디(206)가 추가되고 그리고 제7 바디(207)가 제거된 형태(240')를 보여준다. 제4 레벨 세트에 대해 도 19 내지 도 22를 참조하여 설명된 논리 연산들이 수행되면, 결과적인 레벨 세트는 도 25에 도시된 형태(240')를 나타낼 수 있다. 도 25의 형태(240') 및 도 24에서 도출된 제1 모델(310)을 비교함으로써, 추가적인 바디가 식별될 수 있다.
도 26은 공정 후의 제3 바디(303)가 추가로 식별된 제2 모델(320)의 예를 보여준다. 도 24의 제1 모델(310) 및 도 25의 형태(240')를 비교하면, 제3 바디(303)에 해당하는 부분이 서로 다르고, 나머지 부분들은 동일하다. 따라서, 서로 다른 부분이 제3 바디(303)로 식별될 수 있다. 서로 다른 부분을 나타내는 거리 값 세트들로부터 폴리곤 메쉬들을 생성함으로써, 제3 바디(303)가 식별될 수 있다.
도 27은 도 16의 제3 레벨 세트에 대응하는 표면들로부터 제6 바디(206)가 추가되고 그리고 제7 바디(207)가 제거된 형태(230')를 보여준다. 제3 레벨 세트에 대해 도 19 내지 도 22를 참조하여 설명된 논리 연산들이 수행되면, 결과적인 레벨 세트는 도 27에 도시된 형태(230')를 나타낼 수 있다. 도 27의 형태(230') 및 도 26에서 도출된 제2 모델(320)을 비교함으로써, 추가적인 바디가 식별될 수 있다.
도 28은 공정 후의 제4 바디(304) 및 제5 바디(305)가 추가로 식별된 제3 모델(330)의 예를 보여준다. 도 26의 제2 모델(320) 및 도 27의 형태(230')를 비교하면, 제4 바디(304) 및 제5 바디(305)에 해당하는 부분들이 서로 다르고, 나머지 부분들은 동일하다. 따라서, 서로 다른 부분들이 각각 제4 바디(304) 및 제5 바디(305)로 식별될 수 있다. 서로 다른 부분을 나타내는 거리 값 세트들로부터 폴리곤 메쉬들을 생성함으로써, 제4 바디(304) 및 제5 바디가 식별될 수 있다.
도 29는 도 15의 제2 레벨 세트에 대응하는 표면들로부터 제6 바디(206)가 추가되고 그리고 제7 바디(207)가 제거된 형태(220')를 보여준다. 제2 레벨 세트에 대해 도 19 내지 도 22를 참조하여 설명된 논리 연산들이 수행되면, 결과적인 레벨 세트는 도 29에 도시된 형태(220')를 나타낼 수 있다. 도 29의 형태(220') 및 도 28에서 도출된 제3 모델(330)을 비교함으로써, 추가적인 바디가 식별될 수 있다.
도 30은 공정 후의 제6 바디(306)가 추가로 식별된 제4 모델(340)의 예를 보여준다. 도 28의 제3 모델(330) 및 도 29의 형태(220')를 비교하면, 제6 바디(306)에 해당하는 부분이 서로 다르고, 나머지 부분들은 동일하다. 따라서, 서로 다른 부분이 제6 바디(306)로 식별될 수 있다. 서로 다른 부분을 나타내는 거리 값 세트들로부터 폴리곤 메쉬들을 생성함으로써, 제6 바디(306)가 식별될 수 있다.
도 31은 도 14의 제1 레벨 세트에 대응하는 표면들로부터 제6 바디(206)가 추가되고 그리고 제7 바디(207)가 제거된 형태(210')를 보여준다. 제1 레벨 세트에 대해 도 19 내지 도 22를 참조하여 설명된 논리 연산들이 수행되면, 결과적인 레벨 세트는 도 31에 도시된 형태(210')를 나타낼 수 있다. 도 31의 형태(210') 및 도 30에서 도출된 제4 모델(340)을 비교함으로써, 추가적인 바디가 식별될 수 있다.
도 32는 공정 후의 제7 바디(307)가 추가로 식별된 제5 모델(350)의 예를 보여준다. 도 30의 제4 모델(340) 및 도 31의 형태(210')를 비교하면, 제7 바디(307)에 해당하는 부분이 서로 다르고, 나머지 부분들은 동일하다. 따라서, 서로 다른 부분이 제7 바디(307)로 식별될 수 있다. 서로 다른 부분을 나타내는 거리 값 세트들로부터 폴리곤 메쉬들을 생성함으로써, 제7 바디(307)가 식별될 수 있다.
상술된 바와 같이, 본 발명의 실시 예들에 따르면, 반도체 모델에 대한 공정은 최대 또는 최소를 선택하는 논리 연산을 통해 수행될 수 있다. 따라서, 반도체 모델의 복잡도에 관계없이, 공정 후의 폴리곤 메쉬들을 생성하는 것이 항상 성공할 수 있다.
또한, 논리 연산을 수행할 때에 폴리곤 메쉬들의 정합성을 고려할 필요가 없으므로, 연산 복잡도가 폴리곤 메쉬들의 수에 선형적으로 비례한다. 따라서, 병렬화가 용이하고, 다중 코어들에 연산들을 분배하는 것이 용이하다.
본 발명의 실시 예들에 따르면, 논리 연산의 오차는 폴리곤 메쉬들의 복잡도 또는 폴리곤 메쉬들이 형성하는 표면들의 복잡도와 무관하게 격자들에서 다뤄지는 수들의 오차들에 따른다. 따라서, 폴리곤 메쉬들에 대해 직접 연산을 수행할 때보다 연산 오차가 감소한다.
본 발명의 실시 예들에 따르면, 논리 연산을 수행할 때에 레벨 세트의 제1 거리 값과 목표 레벨 세트의 제2 거리 값의 차이가 문턱보다 작을 때 제1 거리 값 또는 제2 거리 값을 고정적으로 선택하도록 시뮬레이션을 위한 도구를 구성할 수 있다. 따라서, 형태의 요동(fluctuation)이 적은 연산량으로 용이하게 교정될 수 있다.
상술된 실시 예들에서, 반도체 설계와 연관하여 본 발명의 실시 예에 따른 시뮬레이션을 위한 도구가 설명되었다. 그러나 본 발명의 기술적 사상은 반도체 설계에 한정되지 않으며, 다양한 설계들 또는 모델링에 적용될 수 있다.
상술된 실시 예들에서, 블록들을 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. 블록들은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록들은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP (Intellectual Property)를 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (20)

  1. 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)에 있어서:
    제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계;
    상기 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계;
    상기 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계; 그리고
    상기 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함하는 방법을 수행하게 하는 명령들을 포함하고,
    상기 제1 폴리곤 메쉬들을 상기 제1 레벨 세트들로 변환하는 단계는:
    특정한 좌표계에 따라 상기 제1 폴리곤 메쉬들로 형성된 목표 바디(target body)를 포함하는 공간에 격자들(grids)을 형성하는 단계;
    상기 격자들의 교차점들 중 상기 목표 바디의 표면들(surfaces)에 인접한 교차점들의 거리 값들을 계산하는 단계; 그리고
    상기 거리 값들을 상기 레벨 세트들 중 하나로 선택(pick)하는 단계를 포함하고,
    상기 거리 값들은 상기 격자들의 교차점들과 상기 인접한 목표 바디의 표면들 사이의 거리를 포함하고, 그리고
    상기 인접한 교차점들의 각각에서, 상기 특정한 좌표계의 차원들의 수에 해당하는 부분 거리 값들이 상기 거리 값들의 일부로 계산되는 컴퓨터-독출식 저장 매체.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 인접한 교차점들은 상기 목표 바디의 상기 표면들의 외부에 위치한 제1 교차점들 및 상기 목표 바디의 상기 표면들의 내부에 위치한 제2 교차점들을 포함하는 컴퓨터-독출식 저장 매체.
  5. 제4항에 있어서,
    상기 제1 교차점들의 거리 값들은 양의 부호를 갖고, 그리고
    상기 제2 교차점들의 거리 값들은 음의 부호를 갖는 컴퓨터-독출식 저장 매체.
  6. 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)에 있어서:
    제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계;
    상기 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계;
    상기 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계; 그리고
    상기 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함하는 방법을 수행하게 하는 명령들을 포함하고,상기 제1 폴리곤 메쉬들을 상기 제1 레벨 세트들로 변환하는 단계는:
    특정한 좌표계에 따라 상기 제1 폴리곤 메쉬들로 형성된 목표 바디(target body)를 포함하는 공간에 격자들(grids)을 형성하는 단계;
    상기 격자들의 교차점들 중 상기 목표 바디의 표면들(surfaces)에 인접한 교차점들의 거리 값들을 계산하는 단계; 그리고
    상기 거리 값들을 상기 레벨 세트들 중 하나로 선택(pick)하는 단계를 포함하고,
    상기 거리 값들은 상기 격자들의 교차점들과 상기 인접한 목표 바디의 표면들 사이의 거리를 포함하고,
    상기 거리 값들 중 특정한 교점의 부분 거리 값들은 상기 특정한 좌표계에 따라 상기 목표 바디의 가장 인접한 표면들과의 거리들을 나타내고, 그리고
    상기 특정한 교점이 상기 목표 바디와 인접하지 않으면, 상기 특정한 교점의 부분 거리 값들은 기본 값으로 설정되는 컴퓨터-독출식 저장 매체.
  7. 제6항에 있어서,
    상기 제1 폴리곤 메쉬들을 상기 제1 레벨 세트들로 변환하는 단계는:
    상기 제1 폴리곤 메쉬들이 둘 이상의 바디들을 형성할 때, 상기 둘 이상의 바디들이 형성하는 제1 최종 표면들(final surfaces)로부터 상기 제1 레벨 세트들 중 하나의 제1 레벨 세트를 계산하는 단계를 포함하는 컴퓨터-독출식 저장 매체.
  8. 제7항에 있어서,
    상기 제1 폴리곤 메쉬들을 상기 제1 레벨 세트들로 변환하는 단계는:
    상기 둘 이상의 바디들 중 하나의 바디를 제거하고, 나머지 바디들이 형성하는 제2 최종 표면들로부터 상기 제1 레벨 세트들 중 다른 하나의 제1 레벨 세트를 계산하는 단계를 더 포함하는 컴퓨터-독출식 저장 매체.
  9. 제8항에 있어서,
    상기 방법은:
    상기 둘 이상의 바디들 중 하나의 바디만 남았을 때, 상기 하나의 바디가 형성하는 표면들로부터 상기 제1 레벨 세트들 중 마지막 제1 레벨 세트를 계산하는 단계를 더 포함하는 컴퓨터-독출식 저장 매체.
  10. 제9항에 있어서,
    상기 제1 레벨 세트들에 대해 상기 논리 연산들을 수행하여 상기 제2 레벨 세트들을 생성하는 단계에서, 상기 논리 연산들은 상기 하나의 제1 레벨 세트, 상기 다른 하나의 제1 레벨 세트, 그리고 상기 마지막 제1 레벨 세트에 대해 각각 수행되는 컴퓨터-독출식 저장 매체.
  11. 제6항에 있어서,
    상기 논리 연산들의 각각은 합집합, 교집합 및 차이 중 하나를 포함하는 컴퓨터-독출식 저장 매체.
  12. 제6항에 있어서,
    상기 논리 연산들은 상기 제1 레벨 세트들 및 목표 레벨 세트에 대해 수행되는 컴퓨터-독출식 저장 매체.
  13. 제12항에 있어서,
    상기 제1 레벨 세트들의 각각은 제1 거리 값 세트들을 포함하고, 그리고 상기 목표 레벨 세트는 제2 거리 값 세트들을 포함하고,
    상기 제1 레벨 세트들에 대해 상기 논리 연산들을 수행하여 상기 제2 레벨 세트들을 생성하는 단계는:
    상기 제1 레벨 세트들 중 특정한 제1 레벨 세트의 상기 제1 거리 값 세트들의 특정한 제1 거리 값, 그리고 상기 특정한 제1 거리 값과 연산되는 상기 제2 거리 값 세트들의 특정한 제2 거리 값 중에서 최소 값 또는 최대 값을 상기 제2 레벨 세트들 중 상기 특정한 제1 레벨 세트에 대응하는 특정한 제2 레벨 세트의 거리 값으로 계산하는 단계를 포함하는 컴퓨터-독출식 저장 매체.
  14. 제13항에 있어서,
    상기 특정한 제1 거리 값 및 상기 특정한 제2 거리 값의 차이가 문턱 값보다 작으면, 상기 특정한 제1 거리 값 및 상기 특정한 제2 거리 값 중 하나의 거리 값이 고정적으로 상기 제2 레벨 세트의 상기 거리 값으로 계산되는 컴퓨터-독출식 저장 매체.
  15. 제6항에 있어서,
    상기 제2 레벨 세트들을 상기 제2 폴리곤 메쉬들로 변환하는 단계는:
    상기 제2 레벨 세트들로부터 바디들을 식별하는 단계; 그리고
    상기 식별된 바디들에서 상기 제2 폴리곤 메쉬들을 생성하는 단계를 포함하는 컴퓨터-독출식 저장 매체.
  16. 제6항에 있어서,
    상기 제2 폴리곤 메쉬들은 상기 제1 폴리곤 메쉬들과 독립적인 컴퓨터-독출식 저장 매체.
  17. 명령들을 저장하는 비임시의 컴퓨터-독출식 저장 매체; 그리고
    상기 명령들을 실행하여 반도체 설계 시뮬레이션을 위한 방법을 수행하도록 구성되는 프로세서를 포함하고,
    상기 방법은:
    제1 폴리곤 메쉬들(polygon meshes)을 생성하는 단계;
    상기 제1 폴리곤 메쉬들을 제1 레벨 세트들(level sets)로 변환하는 단계;
    상기 제1 레벨 세트들에 대해 논리 연산들을 수행하여 제2 레벨 세트들을 생성하는 단계; 그리고
    상기 제2 레벨 세트들을 제2 폴리곤 메쉬들로 변환하는 단계를 포함하고,
    상기 제1 레벨 세트들의 각각은 제1 거리 값 세트들을 포함하고,
    상기 제1 거리 값 세트들의 각각은 상기 제1 거리 값 세트들이 생성되는 특정한 좌표계의 차원들의 수에 해당하는 거리 값들을 포함하고, 그리고
    상기 거리 값들의 각각은 양 또는 음의 부호를 갖는 반도체 설계 시스템(semiconductor design system).
  18. 삭제
  19. 컴퓨터-독출식(computer-readable) 저장 매체(storage medium)에 있어서:
    제1 폴리곤 메쉬들을 이용하여 제1 바디 및 제2 바디를 형성하는 단계;
    상기 제1 바디 및 제2 바디가 형성하는 제1 표면들로부터 제1 레벨 세트를 계산하는 단계; 그리고
    상기 제1 바디를 제거하고, 상기 제2 바디의 제2 표면으로부터 제2 레벨 세트를 계산하는 단계를 포함하는 방법을 수행하게 하는 명령들을 포함하고,
    상기 제1 레벨 세트들의 각각은 제1 거리 값 세트들을 포함하고,
    상기 제1 거리 값 세트들의 각각은 상기 제1 거리 값 세트들이 생성되는 특정한 좌표계의 차원들의 수에 해당하는 거리 값들을 포함하는 컴퓨터-독출식 저장 매체.
  20. 제19항에 있어서,
    상기 방법은:
    상기 제2 레벨 세트로부터 상기 제2 바디를 형성하는 제2 폴리곤 메쉬들을 생성하는 단계; 그리고
    상기 제2 레벨 세트와 상기 제1 레벨 세트의 차이로부터, 상기 제1 바디를 형성하는 제3 폴리곤 메쉬들을 생성하는 단계를 더 포함하는 컴퓨터-독출식 저장 매체.
KR1020180071962A 2018-06-22 2018-06-22 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법 KR102611430B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180071962A KR102611430B1 (ko) 2018-06-22 2018-06-22 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법
US16/278,767 US20190392100A1 (en) 2018-06-22 2019-02-19 Storage medium which stores instructions for a simulation method in a semiconductor design process, semiconductor design system that performs the simulation method in the semiconductor design process, and simulation method in the semiconductor design process
CN201910486618.6A CN110633483A (zh) 2018-06-22 2019-06-05 半导体设计过程中的仿真方法、存储介质和半导体设计系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180071962A KR102611430B1 (ko) 2018-06-22 2018-06-22 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법

Publications (2)

Publication Number Publication Date
KR20200000094A KR20200000094A (ko) 2020-01-02
KR102611430B1 true KR102611430B1 (ko) 2023-12-08

Family

ID=68968394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071962A KR102611430B1 (ko) 2018-06-22 2018-06-22 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법

Country Status (3)

Country Link
US (1) US20190392100A1 (ko)
KR (1) KR102611430B1 (ko)
CN (1) CN110633483A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
KR20230083552A (ko) 2021-12-03 2023-06-12 이경민 피트니스 운동 수행 데이터 중계 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7098907B2 (en) * 2003-01-30 2006-08-29 Frantic Films Corporation Method for converting explicitly represented geometric surfaces into accurate level sets
KR102399671B1 (ko) * 2014-08-26 2022-05-20 삼성전자주식회사 객체들을 모델링하는 방법 및 장치
US11762283B2 (en) * 2019-12-13 2023-09-19 Synopsys, Inc. Inverse lithography and machine learning for mask synthesis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dan Wake et al. A Hybrid Mesh Generation Method for Two and Three Dimensional Simulation of Semiconductor Processes and Devices. 7th IMR, 159-165 pages. 1998.*
Otmar Ertl et al. A fast level set framework for large three-dimensional topography simulations. Computer Physics Communications, Vol.180, 1242-1250 pages. 2009.08.*

Also Published As

Publication number Publication date
KR20200000094A (ko) 2020-01-02
US20190392100A1 (en) 2019-12-26
CN110633483A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
US7436407B2 (en) Topology determination, decomposable shape generation, and structured mesh generation
JP4662959B2 (ja) デザイン最適化のための自由形状変形(FreeFormDeformation)表現の進化的直接操作(EvolutionaryDirectManipulation)
CN104067296B (zh) 一维信号抽取的方法和装置
KR102611430B1 (ko) 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법
CN110555263B (zh) 一种用于曲壳结构优化设计的水平集拓扑优化方法
CA2852706A1 (en) Compression and decompression of a 3d modeled object
CA2711170C (en) Multi-objective optimization design support apparatus and method
US10217291B2 (en) Designing a modeled volume represented by dexels
US9129075B2 (en) Mesh generation system
CN105844067A (zh) 一种船体曲板焊接变坡口自动加工数据的获取方法
KR20150073859A (ko) Cad 기반 초기 표면 기하형상 정정
CN116227043A (zh) 一种飞行器数值模拟方法、系统、设备及计算机存储介质
CN112825199B (zh) 碰撞检测方法、装置、设备及存储介质
CN109961516B (zh) 表面获取方法、装置及非暂态电脑可读取记录媒体
CN113051796B (zh) 一种应用于增材制造的结构拓扑优化设计方法
CN103106313A (zh) 轧后件顺序重构方法
JP2008259178A (ja) 色変換装置、フィルタ処理装置、色変換方法
CN111612859A (zh) 一种基于数据降维的三维点云模型压缩方法及其实现系统
JP2007065803A (ja) 有限要素解析方法、有限要素解析装置、及びコンピュータプログラム
Shang et al. Effective re-parameterization and GA based knot structure optimization for high quality T-spline surface fitting
Xu et al. Hexahedral meshing with varying element sizes
CN104092467A (zh) 一种利用双重四元数压缩矩阵的方法
US11062071B2 (en) Method for simulating a dynamic system
CN113297764A (zh) 有限元参数化模型建模方法、系统及存储介质
CN112446004A (zh) 非结构网格dilu预条件子众核并行优化算法

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