KR20210108546A - 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법 - Google Patents

반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법 Download PDF

Info

Publication number
KR20210108546A
KR20210108546A KR1020200023061A KR20200023061A KR20210108546A KR 20210108546 A KR20210108546 A KR 20210108546A KR 1020200023061 A KR1020200023061 A KR 1020200023061A KR 20200023061 A KR20200023061 A KR 20200023061A KR 20210108546 A KR20210108546 A KR 20210108546A
Authority
KR
South Korea
Prior art keywords
power
models
generating
floor plans
bump
Prior art date
Application number
KR1020200023061A
Other languages
English (en)
Inventor
남승기
손정일
문성욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200023061A priority Critical patent/KR20210108546A/ko
Priority to US17/018,262 priority patent/US11144699B2/en
Priority to CN202110214625.8A priority patent/CN113378506A/zh
Publication of KR20210108546A publication Critical patent/KR20210108546A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/38Circuit design at the mixed level of analogue and digital signals
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/18Chip packaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명은 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법에 관한 것이다. 본 발명의 방법은, 복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들을 생성하는 단계, 상기 복수의 플로어 플랜들로부터 복수의 전력 모델들을 생성하는 단계, 그리고 상기 복수의 전력 모델들 중에서 시스템 요구들을 만족하는 적어도 하나의 전력 모델을 선택함으로써, 상기 복수의 플로어 플랜들 중 하나에 대응하는 레이아웃을 선택하는 단계를 포함한다.

Description

반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법{METHOD IMPLEMENTED ON A COMPUTER SYSTEM EXECUTING INSTRUCTIONS FOR SEMICONDUCTOR DESIGN SIMULATION}
본 발명은 반도체 설계에 관한 것으로, 더 상세하게는 사용자 편의성 및 전력 특성들이 향상된 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법에 관한 것이다.
반도체 장치를 설계하는 과정은, 회로 블록들의 배치를 나타내는 플로어 플랜(floor plan)을 결정하는 단계, 범프들 및 볼들의 위치들을 결정하는 단계, 범프 및 볼들의 위치들에 기반하여 전력 모델을 추출하는 단계, 전력 모델을 테스트하여 시스템 요구들을 만족하는지 분석하는 단계를 포함한다.
분석하는 단계에서 반도체 장치의 전력 모델이 시스템 요구들을 만족하지 않으면, 범프 및 볼들의 위치들을 다시 결정하고, 전력 모델이 다시 추출되고, 그리고 전력 모델이 다시 테스트될 수 있다.
반도체 장치의 설계 시에, 플로어 플랜을 결정하는 것은 경험에 기반하여 수행된다. 따라서, 반도체 장치의 플로어 플랜은 최적이 아닐 수 있으며, 플로어 플랜에 기반한 반도체 장치의 특성들 또한 최적이 아닐 수 있다.
본 발명의 목적은 다양한 플로어 플랜들을 생성하고, 이들에 기반하여 전력 모델들을 생성하고, 전력 모델들 중 하나를 선택하는 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법을 제공하는 데에 있다.
반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 본 발명의 실시 예에 따른 방법은, 복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계, 상기 복수의 플로어 플랜들로부터 복수의 전력 모델들을 생성하는 단계, 그리고 상기 복수의 전력 모델들 중에서 시스템 요구들(system requirements)을 만족하는 적어도 하나의 전력 모델을 선택함으로써, 상기 복수의 플로어 플랜들 중 하나에 대응하는 레이아웃을 선택하는 단계를 포함한다.
반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 본 발명의 실시 예에 따른 방법은, 복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계, 상기 복수의 회로 블록들로부터 복수의 전력 범프 및 볼 모델들을 생성하는 단계, 그리고 상기 복수의 전력 범프 및 볼 모델들로부터 복수의 보드 전력 모델들을 생성하는 단계를 포함한다.
반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 본 발명의 실시 예에 따른 방법은, 복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계, 그리고 상기 복수의 회로 블록들로부터 복수의 전력 범프 모델들을 생성하는 단계를 포함한다.
본 발명에 따르면, 플로어 플랜의 생성 또한 컴퓨터 시스템으로 구현된 도구를 통해 자동적으로 또는 부분-자동적으로 수행된다. 따라서, 사용자 편의성이 향상될 수 있다. 또한, 다양한 플로어 플랜들에 기반한 전력 모델들 중에서 적어도 하나가 선택되므로, 전력 특성들이 향상될 수 있다.
도 1은 본 발명의 실시 예에 따른 반도체 설계 시스템을 보여준다.
도 2는 컴퓨터 시스템으로 구현된 도 1의 반도체 시뮬레이션을 위한 방법을 보여준다.
도 3은 복수의 전력 범프 및 볼 모델들을 생성하는 단계의 예를 보여준다.
도 4는 도 3의 복수의 플로어 플랜들을 생성하는 단계의 예를 보여준다.
도 5는 도 4의 방법에 기반하여 복수의 플로어 플랜들이 생성되는 예를 보여준다.
도 6은 도 3의 복수의 전력 범프 맵들을 생성하는 단계의 예를 보여준다.
도 7은 도 6의 방법에 기반하여 예시적인 전력 범프 맵이 생성되는 예를 보여준다.
도 8은 도 3의 복수의 범프 연결 맵들을 생성하는 단계의 예를 보여준다.
도 9는 도 8의 방법에 기반하여 예시적인 범프 연결 맵이 생성되는 예를 보여준다.
도 10은 연결이 존재하는 메쉬와 연결이 존재하지 않는 메쉬를 다른 색들로 표시한 전력 연결 맵의 예를 보여준다.
도 11은 도 3의 복수의 전력 볼 맵들을 생성하는 단계의 예를 보여준다.
도 12는 도 11의 방법에 기반하여 예시적인 전력 볼 맵이 생성되는 예를 보여준다.
도 13은 도 3의 복수의 수평 전력 모델을 생성하는 단계의 예를 보여준다.
도 14는 도 13의 방법에 기반하여 예시적인 수평 전력 모델이 생성되는 예를 보여준다.
도 15는 도 3의 복수의 수직 전력 모델을 생성하는 단계의 예를 보여준다.
도 16은 도 15의 방법에 기반하여 예시적인 수직 전력 모델이 생성되는 예를 보여준다.
도 17은 도 3의 전력 범프 및 볼 모델을 생성하는 단계에 의해 생성된 예시적인 전력 범프 및 볼 모델을 보여준다.
도 18은 복수의 온-칩 전력 모델들을 생성하는 단계의 예를 보여준다.
도 19는 복수의 보드 전력 모델들을 생성하는 단계의 예를 보여준다.
도 20은 반도체 패키지가 실장되는 보드의 예를 보여준다.
도 21은 보드의 유효한 인덕턴스의 예를 보여준다.
도 22는 도 2의 시스템 전력 분석을 수행하는 단계의 예를 보여준다.
도 23은 도 22의 전력 시나리오들을 생성하는 단계의 예를 보여준다.
도 24는 도 23의 방법에 의해 생성된 전력 시나리오의 예를 보여준다.
도 25는 도 22의 왓-이프 조건들을 생성하는 단계의 예를 보여준다.
도 26은 도 2의 시스템 전력 분석을 수행하는 단계의 예를 보여준다.
도 27은 반도체 설계 시스템에 의해 생성된 시스템 전력 모델의 예를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 반도체 설계 시스템(100)을 보여준다. 도 1을 참조하면, 반도체 설계 시스템(100)은 버스(110), 프로세서(120), 주 메모리(130), 스토리지(140), 모뎀(150), 부착 가능하고 탈착 가능한 스토리지(160), 그리고 사용자 인터페이스(170)를 포함한다.
버스(110)는 반도체 설계 시스템(100)의 구성 요소들 사이에 채널을 제공한다. 프로세서(120)는 반도체 설계 시스템(100)을 제어하고, 반도체 설계를 위한 시뮬레이션을 수행할 수 있다. 예를 들어, 프로세서(120)는 스토리지(140)에 저장된 명령들(141)을 실행함으로써 시뮬레이션을 위한 도구(tool)를 실행할 수 있다.
명령들(141) 중 적어도 일부는 반도체 설계를 위해 기계 학습에 기반하여 학습된 알고리즘을 포함할 수 있다. 반도체 설계 시스템(100)은 알고리즘에 대응하는 적어도 일부의 명령들을 실행함으로써, 반도체 설계 시뮬레이션을 위한 단계들 중 적어도 일부를 수행할 수 있다.
프로세서(120)는 스토리지(140)에 저장된 데이터(Data)를 참조하여, 반도체 설계를 위한 시뮬레이션을 수행할 수 있다. 데이터(Data)는 반도체 설계에 필요한 다양한 정보들을 포함하는 라이브러리들, 사용자 인터페이스(170)를 통해 사용자가 입력한 반도체 설계를 위한 정보들을 등을 포함할 수 있다.
주 메모리(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)은 네트워크(220)를 통해 외부의 장치(210)(예를 들어, 서버)와 유선 또는 무선으로 통신할 수 있다. 예를 들어, 명령들(141) 또는 데이터(142)는 외부의 장치(210)로부터 모뎀(150)을 통해 다운로드 콘텐츠(DLC)로서 스토리지(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)를 통해 반도체 설계 시스템(100)에 설치될 수 있다. 데이터(142)는 모뎀(150)을 통해 전달되거나, 부착 가능하고 탈착 가능한 스토리지(160)를 통해 전달되거나, 또는 사용자 인터페이스(170)를 통해 입력될 수 있다.
아래에서, 반도체 설계 시스템(100)이 수행하는 다양한 방법들이 단계들로 설명된다. 설명되는 단계들 중 적어도 하나는 생략될 수 있다. 생략된 적어도 하나의 단계는 외부의 다른 장치에 의해 수행되거나 또는 사용자에 의해 수행될 수 있다. 예시적으로, 반도체 설계 시스템(100)이 수행하는 다양한 방법들이 단계들 중 적어도 하나는 기계 학습을 이용하여 학습된 알고리즘을 이용하여 수행될 수 있다.
아래에서, '범프' 및 '볼'의 용어들이 사용된다. '범프'는 웨이퍼 상에 반도체 다이들을 제조할 때 함께 제조되며, 반도체 다이를 반도체 패키지의 기판에 실장하는데 사용될 수 있다. '볼'은 반도체 패키지의 제조 과정에서 제조되며, 반도체 패키지를 외부의 다른 장치에 실장하는데 사용될 수 있다. '볼'의 사이즈는 '범프'의 사이즈보다 클 수 있다.
아래에서, '라이브러리'의 용어가 사용된다. '라이브러리'는 반도체 장치의 설계의 시뮬레이션을 위해 필요한 다양한 정보들의 집합일 수 있다. '라이브러리'는 데이터(142)에 포함되거나 또는 외부의 장치(210)로부터 네트워크(220) 및 모뎀(150)을 통해 반도체 설계 시스템(100)에 전달될 수 있다.
아래에서, 별도로 명시적으로 언급되지 않으면, 반도체 설계 시스템(100)이 사용(또는 참조)하는 다양한 정보들은 사용자로부터 사용자 인터페이스(170)를 통해 입력되거나, 부착 가능한 그리고 탈착 가능한 스토리지(160)를 통해 전달되거나, 또는 외부의 장치(210)로부터 네트워크(220) 및 모뎀(150)을 통해 전달될 수 있다.
도 2는 컴퓨터 시스템으로 구현된 도 1의 반도체 설계 시스템(100)을 위한 방법을 보여준다. 도 1 및 도 2를 참조하면, S110 단계에서, 반도체 설계 시스템(100)은 복수의 플로어 플랜들의 복수의 전력 범프 및 볼 모델들을 생성할 수 있다.
S120 단계에서, 반도체 설계 시스템(100)은 각 전력 범프 및 볼 모델을 위한 복수의 온-칩 전력 모델들을 생성할 수 있다. S130 단계에서, 반도체 설계 시스템(100)은 복수의 보드 전력 모델들을 생성할 수 있다.
S140 단계에서, 반도체 설계 시스템(100)은 복수의 전력 범프 및 볼 모델들, 복수의 온-칩 전력 모델들, 그리고 복수의 보드 전력 모델들로부터 시스템 전력 모델들을 생성하고, 시스템 전력 모델들에 대한 시스템 전력 분석들을 수행할 수 있다.
S150 단계에서, 반도체 설계 시스템(100)은 시스템 요구들을 만족하는 적어도 하나의 전력 모델을 제공(예를 들어, 표시)할 수 있다.
본 발명의 실시 예에 따르면, 플로어 플랜들의 생성, 전력 범프 및 볼 모델들의 생성, 온-칩 전력 모델들의 생성, 보드 전력 모델들의 생성, 시스템 모델들의 생성, 그리고 시스템 전력 분석들이 하나의 도구를 통해 수행될 수 있다. 따라서, 사용자 편의성이 향상된다.
또한, 본 발명의 실시 예에 따르면, 다양한 플로어 플랜들로부터 시스템 전력 모델들이 생성되고, 그리고 시스템 전력 분석들이 수행된다. 다양한 플로어 플랜들이 고려되므로, S150 단계에서 제공되는 적어도 하나의 시스템 전력 모델은 더 향상된 전력 특성들을 가질 수 있다.
도 3은 복수의 전력 범프 및 볼 모델들을 생성하는 단계(S110 단계)의 예를 보여준다. 도 1 및 도 3을 참조하면, S210 단계에서, 반도체 설계 시스템(100)은 복수의 플로어 플랜들을 생성할 수 있다. 복수의 플로어 플랜들은 회로 블록들을 서로 다르게 배치하도록 구성될 수 있다. 회로 블록들은 정해진 기능들을 수행하기 위한 정해진 설계들을 포함할 수 있다. 회로 블록들은 통상적으로 IP(Intellectual Property)라 불릴 수 있다.
S220 단계에서, 반도체 설계 시스템(100)은 각 플로어 플랜에 대한 전력 범프 맵을 생성할 수 있다. 즉, S220 단계에서, 복수의 플로어 플랜들에 각각 대응하는 복수의 전력 범프 맵들이 생성될 수 있다. 복수의 전력 범프 맵들은 복수의 플로어 플랜들 상에 생성되며, 복수의 플로어 플랜들을 각각 포함하는 것으로 여겨질 수 있다.
S230 단계에서, 반도체 설계 시스템(100)은 전력 범프 맵의 전력 범프들의 전력 연결 맵들을 생성할 수 있다. 즉, S230 단계에서, 복수의 전력 범프 맵들에 각각 대응하는 복수의 전력 연결 맵들이 생성될 수 있다. 복수의 전력 연결 맵들은 복수의 전력 범프 맵들 상에 생성되며, 복수의 전력 범프 맵들(그리고 복수의 플로어 플랜들)을 각각 포함하는 것으로 여겨질 수 있다.
S240 단계에서, 반도체 설계 시스템(100)은 각 플로어 플랜에 대한 복수의 전력 볼 맵들을 생성할 수 있다. 즉, S240 단계에서, 복수의 전력 연결 맵들로부터 복수의 전력 연결 맵들보다 더 많은 수의 전력 볼 맵들이 생성될 수 있다. 복수의 전력 볼 맵들은 각 전력 연결 맵에서 전력 볼들의 수 및 위치들을 가변함으로써 생성될 수 있다.
복수의 전력 볼 맵들은 복수의 전력 연결 맵들 상에 생성되며, 복수의 전력 볼 맵들의 각각은 대응하는 플로어 플랜, 대응하는 전력 범프 맵, 그리고 대응하는 전력 연결 맵들을 포함하는 것으로 여겨질 수 있다.
S250 단계에서, 반도체 설계 시스템(100)은 복수의 수평 전력 모델들을 생성할 수 있다. 복수의 수평 전력 모델들의 각각은, 복수의 전력 볼 맵들 중 대응하는 전력 볼 맵에서, 전력 범프들 및 전력 볼들 사이를 연결하는 수평 방향의 연결들의 저항 및 인덕턴스(또는 커패시턴스) 성분들의 모델들을 포함할 수 있다.
S260 단계에서, 반도체 설계 시스템(100)은 복수의 수직 전력 모델들을 생성할 수 있다. 복수의 수직 전력 모델들의 각각은, 복수의 전력 볼 맵들 중 대응하는 전력 볼 맵에서, 전력 범프들 및 전력 볼들 사이를 연결하는 수직 방향의 연결들의 저항 및 인덕턴스(또는 커패시턴스) 성분들의 모델들을 포함할 수 있다.
S270 단계에서, 반도체 설계 시스템(100)은 복수의 전력 볼 맵들, 복수의 수평 전력 모델들, 그리고 복수의 수직 전력 모델들에 기반하여 복수의 범프 및 볼 모델들을 생성할 수 있다. 복수의 범프 및 볼 모델들의 각각은 복수의 플로어 플랜들 중 대응하는 플로어 플랜에 기반할 수 있다.
복수의 범프 및 볼 모델들의 각각은 복수의 수평 전력 모델들 중 대응하는 수평 전력 모델, 그리고 복수의 수직 전력 모델들 중 대응하는 수직 전력 모델에 기반할 수 있다. 즉, 복수의 범프 및 볼 모델들의 각각은 복수의 플로어 플랜들 중 대응하는 플로어 플랜이 선택된 때의 전력 범프들 및 전력 볼들 사이의 전력 모델들(예를 들어, 저항, 인덕턴스, 또는 커패시턴스의 성분들로 표현되는)을 포함할 수 있다.
도 4는 도 3의 복수의 플로어 플랜들을 생성하는 단계(S210 단계)의 예를 보여준다. 도 5는 도 4의 방법에 기반하여 복수의 플로어 플랜들이 생성되는 예를 보여준다. 도 1, 도 4 및 도 5를 참조하면, S211 단계에서, 반도체 설계 시스템(100)은 회로 블록들 및 연관된 전력 범프 맵들의 정보(IN) 수신할 수 있다.
예를 들어, 정보(IN)는 사용자에 의해 사용자 인터페이스(170)를 통해 반도체 설계 시스템(100)에 입력될 수 있다. 또는, 정보(IN)는 모뎀(150)을 통해 외부의 장치로부터 반도체 설계 시스템(100)에 전달되거나, 부착 가능한 그리고 탈착 가능한 스토리지(160)에 의해 반도체 설계 시스템(100)에 전달될 수 있다.
예시적으로, 반도체 설계의 시뮬레이션을 위해, 정보(IN)로서 제1 내지 제7 회로 블록들(CB1~CB7)이 입력될 수 있다. 예를 들어, 제1 내지 제7 회로 블록들(CB1~CB7) 중에서 제5 회로 블록(CB)은 연관된 범프 맵을 갖고, 나머지 회로 블록들은 연관된 범프 맵을 갖지 않을 수 있다. 정보(IN)는 제1 내지 제7 회로 블록들(CB1~CB7)의 각각에 대한 전력 소비 정보, 기능 정보 등과 같은 다양한 정보들을 더 포함할 수 있다.
예시적으로, 정보(IN)는 제1 내지 제7 회로 블록들(CB1~CB7)에 대한 식별 정보를 포함할 수 있다. 반도체 설계 시스템(100)은 회로 블록들의 전력 정보, 기능 정보 등과 같은 다양한 정보를 포함하는 라이브러리로부터 연관된 정보들을 획득할 수 있다.
S212 단계에서, 반도체 설계 시스템(100)은 복수의 회로 블록들의 배치의 규칙들(constraints)을 수신할 수 있다. 규칙들은 사용자 인터페이스(170)를 통해 반도체 설계 시스템(100)에 입력될 수 있다. 또는, 규칙들은 모뎀(150)을 통해 외부의 장치로부터 반도체 설계 시스템(100)에 전달되거나, 부착 가능한 그리고 탈착 가능한 스토리지(160)에 의해 반도체 설계 시스템(100)에 전달될 수 있다.
예시적으로, 규칙들은 면적에 따른 배치 순서를 포함할 수 있다. 규칙들은 제1 내지 제7 회로 블록들(CB1~CB7) 중에서 사이즈가 큰 회로 블록으로부터 사이즈가 작은 회로 블록의 순서로 배치할 것을 규정할 수 있다. 또는 규칙들은 제1 내지 제7 회로 블록들(CB1~CB7) 중에서 문턱보다 큰 사이즈들을 갖는 회로 블록들을 상기 문턱 이하의 사이즈들을 갖는 회로 블록들보다 먼저 배치할 것을 규정할 수 있다.
규칙들은 외부의 장치와 통신하도록 구성되는 인터페이스를 외곽에 배치할 것을 규정할 수 있다. 예를 들어, 제2 회로 블록(CB2)은 외부의 장치와 통신하도록 구성되는 인터페이스일 수 있다. 또는, 규칙들은 직렬화기 및 역직렬화기의 회로 블록을 외곽에 배치할 것을 규정할 수 있다.
규칙들은 제1 내지 제7 회로 블록들(CB1~CB7) 중에서 가장 많은 전력을 소비하는 회로 블록을 중앙에 배치할 것을 규정할 수 있다. 규칙들은 규칙들에 의해 정해진 특정한 회로 블록들을 규칙들에 의해 정해진 특정한 거리보다 가깝게 배치할 것을 규정할 수 있다.
S213 단계에서, 반도체 설계 시스템(100)은 회로 블록들의 복수의 플로어 플랜들을 생성할 수 있다. 반도체 설계 시스템(100)은 생성된 복수의 플로어 플랜들을 사용자 인터페이스(170)를 통해 표시할 수 있다.
규칙들은 표시의 우선 순위를 더 규정할 수 있다. 예를 들어, 규칙들은 복수의 플로어 플랜들에 우선 순위들을 부여하되, 총 사이즈가 작을수록 더 높은 우선 순위를 부여할 것을 규정할 수 있다. 또한, 규칙들은 복수의 플로어 플랜들을 우선 순위에 기반하여 사용자 인터페이스(170)의 표시 장치(174)를 통해 표시할 것을 규정할 수 있다.
예를 들어, 반도체 설계 시스템(100)은 복수의 플로어 플랜들 중에서 우선 순위가 더 높은 플로어 플랜을 더 먼저(또는 좌측에 또는 상단에) 표시할 수 있다. 반도체 설계 시스템(100)은 복수의 플로어 플랜들 중에서 우선 순위가 더 낮은 플로어 플랜을 더 나중에(또는 우측에 또는 하단에) 표시할 수 있다.
규칙들은 플로어 플랜들의 폐기에 대해 규정할 수 있다. 규칙들은 총 사이즈가 문턱보다 큰 플로어 플랜들을 폐기하고, 그리고 총 사이즈가 문턱 이하인 플로어 플랜들을 복수의 플로어 플랜들로 생성하고 그리고 표시할 것을 규정할 수 있다.
도 5에서, 도구(300)에 의해 정보(IN)로부터 제1 내지 제n 플로어 플랜들(FP1~FPn)(n은 양의 정수)이 생성될 수 있다. 규칙들에 기반하여, 고전력을 소비하는 제5 회로 블록(CB5)은 중앙에 배치될 수 있다. 인터페이스의 기능을 수행하는 제2 회로 블록(CB2)은 외곽에 배치도리 수 있다.
S214 단계에서, 반도체 설계 시스템(100)은 수정이 요청되는지 판단할 수 있다. 예를 들어, 사용자에 의해 사용자 인터페이스(170)를 통해 적어도 하나의 플로어 플랜의 수정이 입력된 때에, 수정이 요청된 것으로 판단될 수 있다. 수정은 제1 내지 제7 회로 블록들(CB1~CB7) 중 적어도 하나의 위치 또는 방향에 대한 수정, 또는 규칙들에 대한 수정(규칙들 중 적어도 하나의 추가, 삭제, 변경 등)을 포함할 수 있다.
S215 단계에서, 반도체 설계 시스템(100)은 사용자에 의해 요청된 수정을 적어도 하나의 플로어 플랜에 반영할 수 있다.
도 6은 도 3의 복수의 전력 범프 맵들을 생성하는 단계(S220 단계)의 예를 보여준다. 도 7은 도 6의 방법에 기반하여 예시적인 전력 범프 맵(BMPk1)이 생성되는 예를 보여준다.
도 1, 도 6 및 도 7을 참조하면, S221 단계에서, 반도체 설계 시스템(100)은 정보(IN)와 연관되어 설명된 다양한 방법들 중 하나를 통해 전력 범프 피치의 정보를 수신할 수 있다.
S222 단계에서, 반도체 설계 시스템(100)은 전력 범프 피치에 기반하여 복수의 전력 범프들(BUMP)을 배치할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 전력이 아닌 다른 신호들을 위해 지정된 공간들을 제외한 공간, 그리고 제5 회로 블록(CB5)과 같이 범프 맵을 갖는 회로 블록의 공간을 제외한 공간에 전력 범프들(BUMP)을 배치할 수 있다.
전력 범프들의 배치가 금지된 공간에 대한 정보는 정보(IN)의 일부로서 수신될 수 있다. 또는, 전력 범프들의 배치가 금지된 공간에 대한 정보는 정보(IN)에 기반하여 라이브러리로부터 획득될 수 있다.
S223 단계에서, 반도체 설계 시스템(100)은 배치(assignment) 라이브러리가 존재하는지 판단할 수 있다. 배치 라이브러리가 존재하면, S224 단계에서, 반도체 설계 시스템(100)은 배치 라이브러리에 기반하여 복수의 접지 범프들을 배치할 수 있다. 배치 라이브러리가 존재하지 않으면, S225 단계에서, 반도체 설계 시스템(100)은 각 전력 범프(BUMP)에 하나의 접지 범프를 배치할 수 있다. 반도체 설계 시스템(100)은 전력 범프 맵들을 사용자 인터페이스(170)를 통해 표시할 수 있다.
S226 단계에서, 반도체 설계 시스템(100)은 수정이 요청되는지 판단할 수 있다. 예를 들어, 사용자에 의해 사용자 인터페이스(170)를 통해 적어도 하나의 전력 범프 맵의 수정이 입력된 때에, 수정이 요청된 것으로 판단될 수 있다.
S227 단계에서, 반도체 설계 시스템(100)은 사용자에 의해 요청된 수정을 적어도 하나의 전력 범프 맵에 반영할 수 있다.
도 8은 도 3의 복수의 전력 연결 맵들을 생성하는 단계(S230 단계)의 예를 보여준다. 도 9는 도 8의 방법에 기반하여 하나의 범프 맵(BMPk1)에 대응하는 연결 맵(BMPk2)이 생성되는 예를 보여준다.
도 1, 도 8 및 도 9를 참조하면, S231 단계에서, 반도체 설계 시스템(100)은 전력 연결 맵들에 대한 규칙들을 수신할 수 있다. 규칙들은 정보(IN)를 참조하여 언급된 다양한 방법들 중 하나를 통해 수신될 수 있다. 규칙들은 메쉬의 사이즈 및 단위 거리에 대한 정보를 포함할 수 있다.
S232 단계에서, 반도체 설계 시스템(100)은 규칙들에 기반하여 메쉬들을 생성할 수 있다. 반도체 설계 시스템(100)은 규칙에서 정해진 단위 거리 이하의 간격을 갖는 전력 범프들을 모두 연결할 수 있다. 또한, 반도체 설계 시스템(100)은 규칙에서 정해진 바에 따라, 단위 거리 이하의 간격에 이웃한 전력 범프가 존재하지 않는 고입된 전력 범프를 가장 가까운 전력 범프와 연결할 수 있다.
예시적으로, 도 9에 도시된 바와 같이, 메쉬의 사이즈는 범프 피치와 동일하게 정해질 수 있지만, 메쉬의 사이즈는 이에 한정되지 않는다. 또한, 단위 거리는 하나의 메쉬로 정해질 수 있지만, 단위 거리는 이에 한정되지 않는다.
S233 단계에서, 반도체 설계 시스템(100)은 규칙들에 기반하여 연결들(CNT)을 추가하여 전력 연결 맵들을 생성할 수 있다. S234 단계에서, 반도체 설계 시스템(100)은 메쉬 구조에 기반하여 전력 연결 맵들을 표시할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 반도체 설계 시스템(100)은 메쉬들 상의 연결들을 사용자 인터페이스를 통해 표시할 수 있다.
다른 예로서, 반도체 설계 시스템(100)은 도 10에 도시된 바와 같이 메쉬들 중에서 연결들(CNT)이 존재하는 메쉬들을 '1'로 표시하고, 연결들(CNT)이 존재하지 않는 메쉬들을 '0'으로 표시할 수 있다. 반도체 설계 시스템(100)은 메쉬들 상에서 '1'과 '0'을 다른 색들로 표시하는 전력 연결 맵(BMPk3)을 표시할 수 있다.
S235 단계에서, 반도체 설계 시스템(100)은 수정이 요청되는지 판단할 수 있다. 예를 들어, 사용자에 의해 사용자 인터페이스(170)를 통해 적어도 하나의 전력 연결 맵의 수정이 입력된 때에, 수정이 요청된 것으로 판단될 수 있다.
S236 단계에서, 반도체 설계 시스템(100)은 사용자에 의해 요청된 수정을 적어도 하나의 전력 연결 맵에 반영할 수 있다.
도 11은 도 3의 복수의 전력 볼 맵들을 생성하는 단계(S240 단계)의 예를 보여준다. 도 12는 도 11의 방법에 기반하여 예시적인 전력 볼 맵(BMk)이 생성되는 예를 보여준다.
도 1, 도 11 및 도 12를 참조하면, S241 단계에서, 반도체 설계 시스템(100)은 정보(IN)와 연관되어 설명된 다양한 방법들 중 하나를 통해 규칙들을 수신할 수 있다. 규칙들은 전력 볼 피치, 전력 볼들의 최소값 및 최대값, 전력 볼들이 배치될 수 없는 영역에 대한 정보 등과 같은 다양한 정보들을 포함할 수 있다.
S242 단계에서, 반도체 설계 시스템(100)은 전력 볼 피치에 기반하여 복수의 전력 볼들이 배치될 수 있는 위치들을 검출할 수 있다. 도 12에서, 전력 볼 피치는 두 개의 메쉬들에 대응하고, 그리고 전력 볼들이 배치될 수 있는 위치들은 제1 볼들(BALL1)과 같이 두꺼운 원의 형태로 표시된다.
S243 단계에서, 반도체 설계 시스템(100)은 다양한 전력 볼 맵들을 할당하여 복수의 전력 볼 맵들을 생성할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 전력 볼들의 수를 변경(최대값 및 최소값의 범위 내에서)하거나, 또는 전력 볼들의 위치들을 변경함으로써, 하나의 전력 연결 맵으로부터 복수의 전력 볼 맵들을 생성할 수 있다.
전력 볼들의 수 및 위치들을 가변함으로써, 다양한 전력 특성들이 전력 볼 맵들에 포함될 수 있다. 도 12에서, 제1 볼들(BALL1) 중에서 실제 전력 볼들이 배치되는 볼들은 사선으로 채워진 제2 볼들(BALL2)로 표시된다.
S244 단계에서, 반도체 설계 시스템(100)은 수정이 요청되는지 판단할 수 있다. 예를 들어, 사용자에 의해 사용자 인터페이스(170)를 통해 적어도 하나의 전력 볼 맵의 수정이 입력된 때에, 수정이 요청된 것으로 판단될 수 있다.
S245 단계에서, 반도체 설계 시스템(100)은 사용자에 의해 요청된 수정을 적어도 하나의 전력 볼 맵에 반영할 수 있다.
예시적으로, 메쉬들의 사이즈들은 전력 범프들의 범프 피치 및 전력 볼들의 볼 피치에 기반하여 정해질 수 있다. 메쉬들의 사이즈들은 전력 범프들의 범프 피치 및 전력 볼들의 볼 피치의 최대공약수에 대응할 수 있다.
도 13은 도 3의 복수의 수평 전력 모델을 생성하는 단계(S250 단계)의 예를 보여준다. 도 14는 도 13의 방법에 기반하여 예시적인 수평 전력 모델이 생성되는 예를 보여준다. 예시적으로, 하나의 전력 볼 맵에 대응하는 수평 전력 모델이 생성되는 예가 도 13 및 도 14에 도시된다.
도 1, 도 13 및 도 14를 참조하면, S251 단계에서, 반도체 설계 시스템(100)은 수평 계층을 선택할 수 있다. 예를 들어, 수평 계층은 전력 범프들 및 전력 볼들을 서로 연결하는 적어도 하나의 수평 연결을 포함할 수 있다. 수평 연결은 플로어 플랜의 평면과 평행한 방향으로 신장되는 연결들일 수 있다.
예를 들어, 수평 계층은 도 9의 전력 연결 맵(BMPk2)을 포함할 수 있다. 반도체 설계 시스템(100)은 도 9의 전력 연결 맵(BMPk2)의 정보를 도 10의 메쉬들에 기반한 매트릭스의 형태로 관리할 수 있다.
반도체 설계 시스템(100)은 수평 계층들 각각에 대해 도 10에 도시된 바와 같은 메쉬들에 기반한 매트릭스를 생성할 수 있다. 반도체 설계 시스템(100)은 수직 계층들 각각에서 연결이 존재하는 메쉬와 연결이 존재하지 않는 메쉬들을 구분할 수 있다.
S252 단계에서, 반도체 설계 시스템(100)은 선택된 수평 계층에서 수평 연결을 선택할 수 있다. 예를 들어, 도 10의 매트릭스의 정보에서, '1'에 대응하는 메쉬가 선택될 수 있다.
S253 단계에서, 반도체 설계 시스템(100)은 검출된 수평 연결에 전력 모델을 할당할 수 있다. S254 단계에서, 선택된 계층의 마지막 메쉬에 전력 모델이 할당될 때까지, S252 단계 및 S253 단계가 반복될 수 있다.
S255 단계에서, 마지막 수평 계층의 전력 모델이 획득될 때까지, 다른 수평 계층들에 대해 S252 단계 및 S253 단계가 반복될 수 있다. 예를 들어, 다른 수평 계층들은 수평 연결들을 포함하는 재배선 층들(RDL)(ReDistribution Layers)일 수 있다.
예시적으로, 도 14에 도시된 바와 같이, 전력 범프들(BUMP)을 연결하는 각 메쉬에 존재하는 연결들은 동일한 길이들을 가지므로, 동일한 제1 저항(R1) 및 제1 인덕턴스(L1)로 모델링될 수 있다. 또한, 다른 수평 계층들에서 하나의 메쉬에 존재하는 연결 또한 동일한 제1 저항(R1) 및 제1 인덕턴스(L1)로 모델링될 수 있다.
예시적으로, 제1 저항(R1) 및 제1 인덕턴스(L1)는 패키지의 종류에 선택되는 결정되는 라이브러리를 참조하여 획득되거나, 또는 알려진 수학식들을 이용하여 획득될 수 있다.
도 15는 도 3의 복수의 수직 전력 모델을 생성하는 단계(S260 단계)의 예를 보여준다. 도 16은 도 15의 방법에 기반하여 예시적인 수직 전력 모델이 생성되는 예를 보여준다. 예시적으로, 하나의 전력 볼 맵에 대응하는 수직 전력 모델이 생성되는 예가 도 15 및 도 16에 도시된다.
도 1, 도 15 및 도 16을 참조하면, S261 단계에서, 반도체 설계 시스템(100)은 수직 계층을 선택할 수 있다. 예를 들어, 수직 계층은 전력 범프(BUMP)들 및 전력 볼들(BALL)을 서로 연결하는 적어도 하나의 수직 연결(예를 들어, 적어도 하나의 비아(VIA1, VIA2, VIA3 중 적어도 하나))을 포함할 수 있다. 수직 연결은 플로어 플랜의 평면과 수직한 방향으로 신장되는 연결들일 수 있다.
반도체 설계 시스템(100)은 수직 계층들 각각에 대해 도 10에 도시된 바와 같은 메쉬들에 기반한 매트릭스를 생성할 수 있다. 반도체 설계 시스템(100)은 수직 계층들 각각에서 연결이 존재하는 메쉬와 연결이 존재하지 않는 메쉬들을 구분할 수 있다.
S262 단계에서, 반도체 설계 시스템(100)은 선택된 수직 계층에서 수직 연결을 선택할 수 있다. 예를 들어, 도 10에 도시된 것과 같은 메쉬들에 기반한 매트릭스에서, '1'에 대응하는 메쉬가 선택될 수 있다.
S263 단계에서, 반도체 설계 시스템(100)은 검출된 수직 연결에 전력 모델을 할당할 수 있다. S264 단계에서, 선택된 계층의 마지막 메쉬에 전력 모델이 할당될 때까지, S262 단계 및 S263 단계가 반복될 수 있다.
S265 단계에서, 마지막 수직 계층의 전력 모델이 획득될 때까지, 다른 수직 계층들에 대해 S262 단계 및 S263 단계가 반복될 수 있다.
예시적으로, 도 16에 도시된 바와 같이, 전력 범프들(BUMP)을 연결하는 각 메쉬에 존재하는 연결들은 제2 저항(R2) 및 제2 인덕턴스(L2)로 모델링될 수 있다. 수직 연결들(비아들(VIA1, VIA2, VIA3 중 적어도 하나))의 각각의 높이 및 두께(또는 단면적)에 따라, 제2 저항들(R2) 및 제2 인덕턴스들(L2)은 서로 다르게 모델링될 수 있다.
예시적으로, 제2 저항(R2) 및 제2 인덕턴스(L2)는 패키지의 종류에 의해 결정되는 라이브러리를 참조하여 획득되거나, 또는 알려진 수학식들을 이용하여 획득될 수 있다.
도 17은 도 3의 전력 범프 및 볼 모델을 생성하는 단계(S270 단계)에 의해 생성된 예시적인 전력 범프 및 볼 모델을 보여준다. 도 1 및 도 17을 참조하면, 도 13 및 도 14를 참조하여 설명된 과정들을 통해, 전력 범프들 및 전력 볼들 사이의 수평 계층들이 메쉬들에 기반한 매트릭스를 이용하여 수평 전력 모델들로 모델링 된다.
또한, 도 15 및 도 16을 참조하여 설명된 과정들을 통해, 전력 범프들 및 전력 볼들 사이의 수직 계층들이 메쉬들에 기반한 매트릭스를 이용하여 수직 전력 모델들로 모델링 된다. 수직 전력 모델들 및 수직 전력 모델들은 동일한 사이즈의 매트릭스들에 기반한다.
따라서, 수평 전력 모델들 및 수직 전력 모델들로부터, 전력 범프들 및 전력 볼들 사이를 연결하는 복수의 전력 범프 및 볼 모델들이 생성될 수 있다. 예시적으로, 도 17에 도시된 바와 같이, 복수의 전력 범프 및 볼 모델들은 SPICE를 이용하여 넷리스트(NL)의 형태로 모델링될 수 있다.
도 18은 복수의 온-칩 전력 모델들을 생성하는 단계(S120 단계)의 예를 보여준다. 도 1 및 도 18을 참조하면, S121 단계에서, 반도체 설계 시스템(100)은 플로어 플랜들에 포함된 복수의 회로 블록들 중 하나의 회로 블록(CB)을 선택할 수 있다.
S122 단계에서, 반도체 설계 시스템(100)은 선택된 회로 블록의 온-칩 커패시턴스 및 온-칩 저항을 수신할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 라이브러리로부터 또는 사용자로부터 온-칩 커패시턴스 및 온-칩 저항을 수신할 수 있다. 예를 들어, 온-칩 커패시턴스 및 온-칩 저항은 전력 범프에서 바라볼 때에 각 회로 블록에서 보여지는 커패시턴스 및 저항을 포함할 수 있다.
S123 단계에서, 반도체 설계 시스템(100)은 온-칩 저항 및 온-칩 커패시턴스를 선택된 회로 블록(CB)에 할당할 수 있다. S124 단계에서, 반도체 설계 시스템(100)은 마지막 회로 블록에 온-칩 저항 및 온-칩 커패시턴스가 할당될 때까지, S121 단계 내지 S123 단계를 반복할 수 있다.
도 3 내지 도 18의 방법들이 수행되면, 반도체 장치의 패키지 레벨의 전력 모델들이 획득될 수 있다. 예시적으로, 반도체 설계의 목적에 따라, 반도체 설계 시스템(100)은 도 3 내지 도 17의 전력 범프 및 볼 모델들의 생성들만을 수행할 수도 있고, 그리고 도 18의 패키지 레벨의 전력 모델의 생성까지 수행할 수도 있다.
도 19는 복수의 보드 전력 모델들을 생성하는 단계(S130 단계)의 예를 보여준다. 도 20은 반도체 패키지(410)가 실장되는 보드(400)의 예를 보여준다. 도 1, 도 19 및 도 20을 참조하면, 반도체 패키지(410)의 전력 볼(PB) 및 접지 볼(GB)은 보드(400)의 전력 비아(PV) 및 접지 비아(GV)와 연결될 수 있다.
반도체 패키지(410)는 보드(400)의 상면에 실장될 수 있다. 보드(400)의 하면에서, 전력 비아(PV) 및 접지 비아(GV)는 디커플링 커패시터(DEC)에 연결될 수 있다. 전력 비아(PV)는 실선으로 표시된 전력 선들(PL) 및 제6 인덕터(L6)를 통해 PMIC(420)(Power Management Integrated Circuit)으로부터 전력을 수신할 수 있다. 전력 비아(PV)의 특정 위치의 전압은 피드백 선(FL)을 통해 PMIC(420)에 전달될 수 있다.
전력 비아(PV)는 제3 저항(R3) 및 제3 인덕턴스(L3)로 모델링될 수 있다. 접지 비아(GV)는 제4 저항(R4) 및 제4 인덕턴스(L4)로 모델링될 수 있다. 디커플링 커패시터(DEC)는 커패시턴스(C), 제5 저항(R5) 및 제5 인덕턴스(L5)로 모델링될 수 있다. 전력 비아의 높이 및 두께(또는 단면적)에 따라, 제3 저항(R3) 및 제3 인덕턴스(L3)가 모델링될 수 있다.
접지 비아(GV)는 파선으로 표시된 접지 선들(GL)을 통해 PMIC(420)로부터 접지 전압을 수신할 수 있다. 접지 비아의 높이 및 두께(또는 단면적)에 따라, 제4 저항(R4) 및 제4 인덕턴스(L4)가 모델링될 수 있다. 비아들 및 디커플링 커패시터의 전력 모델들은, 예를 들어 라이브러리를 참조하여 모델링될 수 있다.
도 21은 보드(400)의 유효한 인덕턴스의 예를 보여준다. 도 1, 도 19, 도 20 및 도 21을 참조하면, 보드(400)의 인덕턴스는 디커플링 커패시터(DEC)와 연관된 인덕턴스의 총 합인 커패시터 인덕턴스(LC), 전력 비아(PV)와 연관된 인덕턴스의 총 합이며 반도체 패키지(410)의 전력 볼(PB)에 연결되는 비아 인덕턴스(LV), 그리고 전력 비아(PV)와 PMIC(420) 사이의 인덕턴스의 총 합이며 PMIC(420)에 연결되는 라인 인덕턴스(LL)로 모델링될 수 있다.
예시적으로, 라인 인덕턴스(LL)는 커패시터 인덕턴스(LC) 및 비아 인덕턴스(LV)보다 작으며 무시될 수 있다. 즉, 보드(400)의 인덕턴스는 커패시터 인덕턴스(LC) 및 비아 인덕턴스(LV)의 합으로 모델링될 수 있다.
예시적으로, 보드 전력 모델은 제3 저항(R3), 제3 인덕턴스(L3), 커패시턴스(C), 제5 저항(R5), 그리고 제5 인덕턴스(L5)가 직렬 연결된 형태일 수 있다. 비아 인덕턴스(LV)는 제3 인덕턴스(L3)에 대응하고, 커패시터 인덕턴스(LC)는 제5 인덕턴스(L5)에 대응할 수 있다.
상술된 바와 같이, 보드(400)의 전력 모델은 비아를 중심으로 구성된다. 따라서, 반도체 설계 시스템(100)은 보드(400)의 전력 비아들 각각에 대한 전력 모델을 생성할 수 있다.
S131 단계에서, 반도체 설계 시스템(100)은 보드(400)의 비아들 중에서 하나의 전력 비아를 선택할 수 있다. S132 단계에서, 반도체 설계 시스템(100)은 선택된 비아와 연관된 디커플링 커패시터(DEC)의 정보 및 보드(400)의 정보(또는 보드(400)의 비아의 정보)에 기반하여, 선택된 비아의 전력 모델을 생성할 수 있다. 예를 들어, 디커플링 커패시터(DEC)의 정보 및 보드(400)의 정보는 라이브러리로부터 획득될 수 있다.
S133 단계에서, 반도체 설계 시스템(100)은 모든 전력 비아들의 전력 모델들이 생성될 때까지, S131 단계 및 S132 단계를 반복할 수 있다. S131 단계 및 S133 단계는 각 반도체 패키지의 전력 모델에 대해 수행될 수 있다. 반도체 패키지의 전력 모델들에 대응하는 보드 전력 모델들을 결합하여, 반도체 패키지가 실장된 보드 레벨의 전력 모델들, 즉 시스템 전력 모델들이 획득될 수 있다.
도 22는 도 2의 시스템 전력 분석을 수행하는 단계(S140 단계)의 예를 보여준다. 도 1 및 도 22를 참조하면, S310 단계에서, 반도체 설계 시스템(100)은 반도체 패키지가 동작하는 전력 시나리오들을 생성할 수 있다.
S320 단계에서, 반도체 설계 시스템(100)은 각 보드 모델에 대한 왓-이프(what-if) 조건들을 설정할 수 있다. S330 단계에서, 반도체 설계 시스템(100)은 전력 시나리오들 및 왓-이프 조건들에 기반하여 시스템 전력 분석을 수행할 수 있다. 예를 들어, S330 단계는 도 2의 S140 단계에 대응(포함되거나 동일)할 수 있다.
도 23은 도 22의 전력 시나리오들을 생성하는 단계(S310 단계)의 예를 보여준다. 도 1 및 도 23을 참조하면, S311 단계에서, 반도체 설계 시스템(100)은 복수의 회로 블록들 중 하나의 회로 블록(CB)을 선택할 수 있다. S312 단계에서, 반도체 설계 시스템(100)은 회로 블록(CB)의 최대 전력 및 유휴 전력을 수신할 수 있다.
S313 단계에서, 반도체 설계 시스템(100)은 활성 상태 및 유휴 상태의 사이의 천이 시나리오들을 전력 시나리오들로 생성할 수 있다. S314 단계에서, 모든 회로 블록들의 천이 시나리오들이 생성될 때까지, 반도체 설계 시스템(100)은 S311 단계 내지 S313 단계를 반복할 수 있다.
예시적으로, 도 23에서 회로 블록들의 각각에 대해 전력 시나리오가 생성되는 것으로 설명되지만, 반도체 패키지의 전체의 시스템 전력 모델에 대해 하나의 동일한 전력 시나리오가 생성될 수 있다.
도 24는 도 23의 방법에 의해 생성된 전력 시나리오의 예를 보여준다. 도 24에서, 가로 축은 시간을 가리키고, 세로 축은 전류(I)를 가리킨다. 도 1 및 도 24를 참조하면, 반도체 설계 시스템(100)은 반도체 패키지(또는 회로 블록)가 전류가 흐르지 않는 오프 상태(Off)로부터, 제1 전류(I1)가 흐르는 유휴 상태(Idle)로 진입하는 전력 시나리오를 생성할 수 있다.
또한, 반도체 설계 시스템(100)은 유휴 상태(Idle)로 진입한 후에, 제2 전류(I2)가 흐르는 활성 상태(Active)와 유휴 상태(Idle)의 사이를 M 사이클들 동안 천이하는 전력 시나리오를 생성할 수 있다. 또한, 반도체 설계 시스템(100)은 M 사이클들의 이후에 오프 상태(Off)로 천이하는 전력 시나리오를 생성할 수 있다.
예시적으로, 반도체 설계 시스템(100)은 시스템 전력 모델 또는 회로 블록들의 각각에 대해 둘 이상의 서로 다른 전력 시나리오들을 생성할 수 있다. 둘 이상의 서로 다른 전력 시나리오들은 연속적으로 수행되어 하나의 전력 시나리오인 것과 같이 보여질 수도 있다. 즉, 전력 시나리오는 서로 다른 패턴으로 천이하는 둘 이상의 구간들을 포함하는 것으로 해석될 수 있다.
도 25는 도 22의 왓-이프 조건들을 생성하는 단계(S320 단계)의 예를 보여준다. 도 1 및 도 25를 참조하면, S321 단계에서, 반도체 설계 시스템(100)은 천이의 클럭 사이클들의 수를 설정할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 유휴 상태로부터 활성 상태로 진입하는데 소모되는 클럭 사이클들의 수를 설정할 수 있다.
클럭 사이클들의 수가 증가할수록, 시스템 전력 모델의 전력 무결성이 증가하고, 그리고 시스템 성능이 향상될 수 있다. 클럭 사이클들의 수가 감소할수록, 시스템 전력 모델의 전력 무결성이 감소하고, 그리고 시스템 성능이 하락할 수 있다.
S322 단계에서, 반도체 설계 시스템(100)은 디커플링 커패시터들의 수를 결정할 수 있다. S323 단계에서, 반도체 설계 시스템(100)은 디커플링 커패시터들의 커패시턴스들을 설정할 수 있다. S322 단계 및 S323 단계를 통해, 시스템 전력 모델의 전력 보드 모델의 디커플링 커패시터와 연관된 파라미터들으 조절될 수 있다.
도 26은 도 2의 시스템 전력 분석을 수행하는 단계(S140 단계)의 예를 보여준다. 도 1 및 도 26을 참조하면, S141 단계에서, 반도체 설계 시스템(100)은 복수의 시스템 전력 모델들을 생성할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 SPICE 덱(Deck)을 이용하여 시스템 전력 모델들을 생성할 수 있다.
반도체 설계 시스템(100)은 POP(Package-on-Package), 인터포저를 구비한 2.5D 패키지, 3D 패키지 등과 같은 다양한 패키지들에 대한 기준 SPICE 덱(Deck)을 템플릿(Template)의 형태로 포함할 수 있다. 반도체 설계 시스템(100)은 패키지의 종류를 선택하고, 그리고 일부 파라미터들을 수정함으로써 시스템 전력 모델을 용이하게 생성할 수 있다.
도 27은 반도체 설계 시스템(100)에 의해 생성된 시스템 전력 모델(500)의 예를 보여준다. 도 1, 도 20 및 도 27을 참조하면, 시스템 전력 모델(500)은 전압 소스(510), 보드 임피던스(520), 범프 및 볼 임피던스(530), 온-칩 임피던스(540), 그리고 전류 싱크(550)를 포함할 수 있다.
전압 소스(510)는 PMIC(420)가 공급하는 전원 전압과 동일한 전원 전압일 수 있다. 보드 임피던스(520)는 보드 전력 모델의 임피던스일 수 있다. 범프 및 볼 임피던스(530)는 전력 범프 및 볼 모델의 임피던스일 수 있다. 온-칩 임피던스(540)는 회로 블록들의 온-칩 커패시턴스 및 온-칩 저항을 포함할 수 있다. 전류 싱크(550)는 전력 시나리오에 따라 전류를 소비할 수 있다. 범프 노드(BN)는 전력 범프에 대응할 수 있다. 범프 노드(BN)의 전압은 전력 범프의 전압일 수 있다.
도 1, 도 26 및 도 27을 참조하면, S142 단계에서, 반도체 설계 시스템(100)은 복수의 시스템 전력 모델들 중에서 하나의 시스템 전력 모델(500)을 선택할 수 있다. S143 단계에서, 반도체 설계 시스템(100)은 전력 시나리오에 기반하여 잡음 분석을 수행할 수 있다. 예를 들어, 반도체 설계 시스템(100)은 전력 시나리오에 따라 전류 싱크(550)가 전류를 소비하는 동안 범프 노드(BN)의 전압의 변화를 관찰할 수 있다.
S144 단계에서, 반도체 설계 시스템(100)은 잡음이 문턱값보다 작은지 판단할 수 있다. 잡음이 문턱값보다 작으면, S145 단계에서, 반도체 설계 시스템(100)은 선택된 시스템 전력 모델(500)이 시스템 요구를 만족하는 것으로 판단할 수 있다. 잡음이 문턱값보다 작지 않으면, S146 단계에서, 반도체 설계 시스템(100)은 선택된 시스템 전력 모델(500)이 시스템 요구를 만족하지 않는 것으로 판단할 수 있다.
반도체 설계 시스템(100)은 판단의 결과를 저장할 수 있다. S147 단계에서, 반도체 설계 시스템(100)은 모든 시스템 전력 모델들에 대해 잡음 분석이 완료될 때까지, S142 단계 내지 S146 단계를 반복할 수 있다.
이후에, 도 2의 S150 단계에서 설명된 바와 같이, 반도체 설계 시스템(100)은 시스템 요구를 만족하는 적어도 하나의 시스템 전력 모델을 사용자에게 보여줄 수 있다. 사용자는 시스템 요구를 만족하는 시스템 전력 모델들 중에서 적절한 하나를 선택하고, 그리고 선택된 시스템 전력 모델에 대응하는 반도체 레이아웃을 선택할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따르면, 플로어 플랜의 변화를 반영한 시스템 전력 모델들이 생성되고, 그리고 잡음 분석이 수행된다. 따라서, 플로어 플랜들이 시스템 전력 모델들에 미치는 영향들까지 고려하여 시스템 전력 모델 및 반도체 레이아웃이 결정될 수 있다.
본 발명의 실시 예에 따르면, 플로어 플랜들의 생성, 전력 범프 맵들의 생성, 전력 연결 맵들의 생성, 전력 볼 맵들의 생성, 수평 전력 모델들의 생성, 수직 전력 모델들의 생성, 온-칩 저항 및 온-칩 커패시턴스를 포함하는 온-칩 전력 모델들의 생성, 보드 전력 모델들의 생성, 시스템 전력 모델들의 생성, 그리고 시스템 전력 모델들의 분석들이 하나의 도구를 이용하여 수행될 수 있다. 따라서, 반도체 설계를 위한 사용자의 편의성이 증대될 수 있다.
예시적으로, 반도체 설계 시스템(100)은 시간 도메인의 분석뿐 아니라 주파수 도메인의 분석 또한 수행할 수 있다. 반도체 설계 시스템(100)은 다른 시뮬레이션 도구(예를 들어, Hspice 등)와 함께 잡음 분석을 수행할 수 있고, 또는 자체적으로 잡음 분석을 수행할 수 있다.
예시적으로, 반도체 설계 시스템(100)은 FFT(Fast Fourier Transform) 및 IFFT(Inverse FFT)를 이용하여 잡음 분석을 수행할 수 있다. 반도체 설계 시스템(100)은 FFT에 기반하여 시스템 전력 모델(500)의 임피던스의 주파수 응답(Z(f))을 생성하고, 그리고 전력 시나리오의 주파수 응답(I(f))을 생성할 수 있다.
반도체 설계 시스템(100)은 임피던스의 주파수 응답(Z(f)) 및 전력 시나리오의 주파수 응답(I(f))을 곱하여(Z(f)*I(f)), 범프 노드(BN)의 전압의 주파수 응답(V(f))을 생성할 수 있다. 반도체 설계 시스템(100)은 IFFT에 기반하여 범프 노드(BN)의 전압의 시간 응답을 획득할 수 있다.
예시적으로, 반도체 설계 시스템(100)은 왓-이프 조건들을 변경하고, 복수의 시스템 전력 모델들을 생성하고, 그리고 복수의 시스템 전력 모델들의 각각의 잡음 분석을 수행하는 동작을 반복할 수 있다.
상술된 실시 예들에서, '규칙'의 용어 및 '정보'의 용어가 구별되어 사용되었다. 그러나 '규칙'의 용어 및 '정보'의 용어는 명확하게 구별되지 않고, 문맥에 따라 해석되어야 한다. 예를 들어, '규칙'은 규칙의 대상이 되는 개체가 지켜야 하는 것들에 대한 '정보'를 포함할 수 있다. '정보'는 특정한 개체가 지켜야 하는 '규칙'을 포함할 수 있다. '정보' 및 '규칙'의 용어들은 상대적인 것이며, 문맥에 따라 서로 치환되어 사용될 수 있다.
상술된 실시 예들에서, 제1, 제2, 제3 등의 용어들을 사용하여 본 발명의 기술적 사상에 따른 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 발명을 한정하지 않는다. 예를 들어, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 반도체 설계 시스템
110: 버스
120: 프로세서
130: 주 메모리
140: 스토리지
150: 모뎀
160: 부착 가능한 그리고 탈착 가능한 스토리지
170: 사용자 인터페이스

Claims (20)

  1. 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법에 있어서:
    복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계;
    상기 복수의 플로어 플랜들로부터 복수의 전력 모델들을 생성하는 단계; 그리고
    상기 복수의 전력 모델들 중에서 시스템 요구들(system requirements)을 만족하는 적어도 하나의 전력 모델을 선택함으로써, 상기 복수의 플로어 플랜들 중 하나에 대응하는 레이아웃을 선택하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    상기 복수의 회로 블록들을 사이즈가 큰 회로 블록으로부터 사이즈가 작은 회로 블록의 순서로 배치하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    상기 복수의 회로 블록들 중에서 문턱보다 큰 사이즈들을 갖는 회로 블록들을 상기 문턱 이하의 사이즈들을 갖는 회로 블록들보다 먼저 배치하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    외부의 장치와 통신하도록 구성되는 인터페이스의 회로 블록을 외곽에 배치하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    직렬화기 및 역직렬화기의 회로 블록을 외곽에 배치하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    상기 복수의 회로 블록들 중에서 가장 많은 전력을 소비하는 회로 블록을 중앙에 배치하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    상기 복수의 회로 블록들 중에서 규칙(constraint)에 의해 정해진 특정한 회로 블록들을 상기 규칙에 의해 정해진 특정한 거리보다 가깝게 배치하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    총 사이즈가 문턱보다 큰 제1 플로어 플랜들을 폐기하고, 그리고 상기 총 사이즈가 상기 문턱 이하인 제2 플로어 플랜들을 상기 복수의 플로어 플랜들로 생성하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 복수의 플로어 플랜들에 총 사이즈가 작을수록 더 높은 우선 순위를 부여하는 단계; 그리고
    상기 복수의 플로어 플랜들을 상기 우선 순위에 기반하여 표시 장치를 통해 표시하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 복수의 플로어 플랜들을 표시 장치를 통해 표시하는 단계;
    상기 복수의 플로어 플랜들 중 적어도 하나의 플로어 플랜에 대한 수정을 입력 장치를 통해 수신하는 단계; 그리고
    상기 수정을 상기 적어도 하나의 플로어 플랜에 적용하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 명령들 중 적어도 일부는 기계 학습에 기반하여 학습된 알고리즘을 포함하고,
    상기 복수의 플로어 플랜들을 생성하는 단계는 상기 알고리즘을 이용하여 수행되는 방법.
  12. 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법에 있어서:
    복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계;
    상기 복수의 회로 블록들로부터 복수의 전력 범프 및 볼 모델들을 생성하는 단계; 그리고
    상기 복수의 전력 범프 및 볼 모델들로부터 복수의 보드 전력 모델들을 생성하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 복수의 회로 블록들로부터 복수의 온-칩 전력 모델들을 생성하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서,
    상기 복수의 전력 범프 및 볼 모델들, 상기 복수의 온-칩 전력 모델들, 그리고 상기 복수의 보드 전력 모델들로부터 복수의 시스템 전력 모델들을 생성하는 단계,
    상기 복수의 시스템 전력 모델들의 전력 시나리오들을 생성하는 단계;
    상기 전력 시나리오들에 기반하여 상기 시스템 전력 모델들의 구동들을 시뮬레이션하는 단계; 그리고
    상기 시스템 전력 모델들 중에서 전력 잡음이 문턱보다 작은 적어도 하나의 시스템 전력 모델을 표시하는 단계를 더 포함하는 방법.
  15. 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법에 있어서:
    복수의 회로 블록들을 서로 다르게 배치하는 복수의 플로어 플랜들(floor plans)을 생성하는 단계; 그리고
    상기 복수의 회로 블록들로부터 복수의 전력 범프 모델들을 생성하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 복수의 플로어 플랜들을 생성하는 단계는,
    상기 복수의 회로 블록들 중에서 사전에 정의된 범프 맵을 갖는 회로 블록의 전력 범프들을 상기 사전에 정의된 범프 맵에 따라 배치하는 단계; 그리고
    상기 복수의 회로 블록들 중에서 상기 사전에 정의된 범프 맵을 갖지 않는 회로 블록의 전력 범프들을 범프 피치에 기반하여 배치하는 단계를 포함하는 방법.
  17. 제15항에 있어서,
    상기 복수의 전력 범프 모델들의 전력 범프들 중에서 규칙에 의해 정해진 거리 내에 위치한 전력 범프들을 서로 연결하여 전력 연결 맵들을 생성하는 단계;
    상기 규칙에 기반하여 전력 연결 맵들을 표시 장치를 통해 표시하는 단계;
    상기 전력 연결 맵들 중 적어도 하나에 대한 수정을 입력 장치를 통해 수신하는 단계; 그리고
    상기 수정을 상기 적어도 하나의 전력 연결 맵에 적용하는 단계를 더 포함하는 방법.
  18. 제15항에 있어서,
    상기 복수의 전력 범프 모델들로부터 복수의 전력 볼 모델들을 생성하는 단계를 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 복수의 전력 볼 모델들을 생성하는 단계는,
    상기 복수의 전력 범프 모델들로부터 전력 볼들의 배치될 수 있는 위치들을 식별하는 단계; 그리고
    상기 위치들 중에서 상기 전력 볼들이 배치되는 실제 위치들 및 상기 전력 볼들의 수를 달리하는 상기 복수의 전력 볼 모델들을 생성하는 단계를 포함하는 방법.
  20. 제18항에 있어서,
    상기 복수의 전력 범프 모델들의 전력 범프들 및 상기 전력 볼 모델들의 전력 볼들 사이의 수평 연결들을 포함하는 수평 계층들의 제1 전력 모델들을 생성하는 단계;
    상기 복수의 전력 범프 모델들의 전력 범프들 및 상기 전력 볼 모델들의 전력 볼들 사이의 수직 연결들을 포함하는 수직 계층들의 제2 전력 모델들을 생성하는 단계; 그리고
    상기 제1 전력 모델들, 그리고 상기 제2 전력 모델들로부터 복수의 전력 범프 및 볼 모델들을 생성하는 단계를 더 포함하는 방법.
KR1020200023061A 2020-02-25 2020-02-25 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법 KR20210108546A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200023061A KR20210108546A (ko) 2020-02-25 2020-02-25 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법
US17/018,262 US11144699B2 (en) 2020-02-25 2020-09-11 Method implemented on computer system executing instructions for semiconductor design simulation
CN202110214625.8A CN113378506A (zh) 2020-02-25 2021-02-25 在执行用于半导体设计仿真的指令的计算机系统上实现的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200023061A KR20210108546A (ko) 2020-02-25 2020-02-25 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법

Publications (1)

Publication Number Publication Date
KR20210108546A true KR20210108546A (ko) 2021-09-03

Family

ID=77365265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200023061A KR20210108546A (ko) 2020-02-25 2020-02-25 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법

Country Status (3)

Country Link
US (1) US11144699B2 (ko)
KR (1) KR20210108546A (ko)
CN (1) CN113378506A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102413005B1 (ko) * 2021-12-28 2022-06-27 주식회사 애자일소다 반도체 설계에서 사용자 학습 환경 기반의 강화학습 장치 및 방법
CN116341471B (zh) * 2023-03-30 2023-11-24 广西中科蓝谷半导体科技有限公司 一种半导体功率器件特性的版图结构仿真设计方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666288A (en) * 1995-04-21 1997-09-09 Motorola, Inc. Method and apparatus for designing an integrated circuit
US6292766B1 (en) * 1998-12-18 2001-09-18 Vlsi Technology, Inc. Simulation tool input file generator for interface circuitry
US7016794B2 (en) * 1999-03-16 2006-03-21 Lsi Logic Corporation Floor plan development electromigration and voltage drop analysis tool
US7818157B2 (en) * 2002-06-19 2010-10-19 LS1 Corporation Instantaneous voltage drop sensitivity analysis tool (IVDSAT)
US6952814B2 (en) 2002-11-20 2005-10-04 Sun Microsystems Inc. Method and apparatus for establishment of a die connection bump layout
US7131094B2 (en) 2003-12-12 2006-10-31 Hewlett-Packard Development Company, Lp. Method and system for automatically extracting data from a textual bump map
US7117467B2 (en) 2004-08-16 2006-10-03 Lsi Logic Corporation Methods for optimizing package and silicon co-design of integrated circuit
JP2006253187A (ja) 2005-03-08 2006-09-21 Nec Electronics Corp 電源解析方法および電源解析を実行するプログラム
WO2006100741A1 (ja) 2005-03-18 2006-09-28 Fujitsu Limited 電子パッケージ評価装置,電子パッケージ最適化装置及び電子パッケージ評価プログラムを記録したコンピュータ読取可能な記録媒体
US8392862B1 (en) * 2006-01-23 2013-03-05 Synopsys, Inc. Structures and methods for optimizing power consumption in an integrated chip design
US7596773B2 (en) * 2006-03-02 2009-09-29 Texas Instruments Incorporated Automating optimal placement of macro-blocks in the design of an integrated circuit
US7581198B2 (en) * 2006-10-07 2009-08-25 Active-Semi, Inc. Method and system for the modular design and layout of integrated circuits
JP4964685B2 (ja) * 2007-06-21 2012-07-04 ルネサスエレクトロニクス株式会社 半導体集積回路の電源変動検証装置及び方法並びにそのプログラム
JP2009140216A (ja) * 2007-12-06 2009-06-25 Nec Electronics Corp 回路解析方法、回路解析プログラム、及び回路解析装置
US8214790B2 (en) * 2009-03-04 2012-07-03 Oracle America Low RC global clock distribution
US8386229B1 (en) 2009-04-17 2013-02-26 Xilinx, Inc. Integrated circuit package component and ball grid array simulation model
KR101044293B1 (ko) 2009-10-30 2011-06-29 주식회사 엔타시스 다중 전압 도메인의 전력 배선망에서의 전원/접지 패드의 위치 및 개수를 최적화하는 방법
US8656333B1 (en) 2010-02-16 2014-02-18 Deca Technologies, Inc. Integrated circuit package auto-routing
US8914764B2 (en) 2012-06-18 2014-12-16 International Business Machines Corporation Adaptive workload based optimizations coupled with a heterogeneous current-aware baseline design to mitigate current delivery limitations in integrated circuits
KR20150000951A (ko) 2013-06-25 2015-01-06 삼성전자주식회사 전원 공급 네트워크 설계 방법
US10482210B2 (en) * 2015-01-16 2019-11-19 University Of Virginia Patent Foundation System, method, and computer readable medium for walking pads: fast power- supply pad-placement optimization
KR102426664B1 (ko) 2015-10-08 2022-07-28 삼성전자주식회사 범프 패드들을 가지는 집적 회로 및 그것을 포함하는 반도체 패키지
US10445457B1 (en) * 2016-06-30 2019-10-15 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing a physical design of an electronic design with DFM and design specification awareness
US10289796B2 (en) * 2016-12-06 2019-05-14 Synopsys, Inc. Automated place-and-route method for HBM-based IC devices
EP3333735B1 (en) * 2016-12-12 2021-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device
US10558780B1 (en) * 2017-09-30 2020-02-11 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing schematic driven extracted views for an electronic design
US10808333B2 (en) * 2018-01-08 2020-10-20 Totic Technology Inc. Method and apparatus for performing layout designs using stem cells
US20200410153A1 (en) * 2019-05-30 2020-12-31 Celera, Inc. Automated circuit generation

Also Published As

Publication number Publication date
US11144699B2 (en) 2021-10-12
CN113378506A (zh) 2021-09-10
US20210264089A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
JP7413580B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
JP6902112B2 (ja) 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法
US20220108058A1 (en) Generating integrated circuit placements using neural networks
US8839171B1 (en) Method of global design closure at top level and driving of downstream implementation flow
US8413087B1 (en) Method and mechanism for implementing region query using hierarchical grids
US8850375B2 (en) Integrated circuit design and simulation
JP5706689B2 (ja) アーキテクチャー上の物理的合成
US9330222B2 (en) Methods, systems, and articles of manufacture for implementing electronic circuit designs with electro-migration awareness
US8103996B2 (en) Method and apparatus for thermal analysis of through-silicon via (TSV)
US8713498B2 (en) Method and system for physical verification using network segment current
US9020797B2 (en) Integrated circuit simulation using analog power domain in analog block mixed signal
JP2010534375A (ja) アーキテクチャー上の物理的合成
US20130346937A1 (en) Method and apparatus to generate pattern-based estimated rc data with analysis of route information
KR20210108546A (ko) 반도체 설계 시뮬레이션을 위한 명령들을 실행하는 컴퓨터 시스템으로 구현된 방법
US9454634B1 (en) Methods, systems, and computer program product for an integrated circuit package design estimator
TW201923823A (zh) 積體電路及其設計的方法及其設計系統
TWI559161B (zh) 產生電源供應網路模型之方法,以及電源供應網路模型分析 方法與裝置
US9256707B2 (en) Trace routing according to freeform sketches
US8978003B1 (en) Method of making semiconductor device and a control system for performing the same
US20130290914A1 (en) Methods and Apparatus for Floorplanning and Routing Co-Design
CN112861466B (zh) 一种布线轨道分配方法、电子设备及计算机可读存储介质
US8407228B1 (en) Method and mechanism for maintaining existence information for electronic layout data
US10643020B1 (en) System and method to estimate a number of layers needed for routing a multi-die package
US20130191805A1 (en) Simulation Of Circuits With Repetitive Elements
Wei et al. Design and implementation of block-based partitioning for parallel flip-chip power-grid analysis