KR102089082B1 - 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법 - Google Patents

클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102089082B1
KR102089082B1 KR1020180049407A KR20180049407A KR102089082B1 KR 102089082 B1 KR102089082 B1 KR 102089082B1 KR 1020180049407 A KR1020180049407 A KR 1020180049407A KR 20180049407 A KR20180049407 A KR 20180049407A KR 102089082 B1 KR102089082 B1 KR 102089082B1
Authority
KR
South Korea
Prior art keywords
clock
neural network
cells
input
network
Prior art date
Application number
KR1020180049407A
Other languages
English (en)
Other versions
KR20190125099A (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 KR1020180049407A priority Critical patent/KR102089082B1/ko
Priority to US16/121,110 priority patent/US20190332934A1/en
Publication of KR20190125099A publication Critical patent/KR20190125099A/ko
Application granted granted Critical
Publication of KR102089082B1 publication Critical patent/KR102089082B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)

Abstract

클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치는, 본 개시의 예시적 실시예에 따라, 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 획득하는 전처리기, 복수의 샘플 클락 네트워크들의 복수에 대응하는 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하고, 적어도 하나의 인공 신경망으로부터 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 신경망 인터페이스, 및 적어도 하나의 출력 파라미터에 기초하여 클락 네트워크의 소비 전력을 계산하는 전력 계산기를 포함할 수 있다.

Description

클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법{APPARATUS AND METHOD FOR MANUFACTURING INTEGRATED CIRCUIT INCLUDING CLOCK NETWORK}
본 개시의 기술적 사상은 클락 네트워크에 관한 것으로서, 자세하게는 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법에 관한 것이다.
집적 회로에서 클락 네트워크 또는 클락 트리는 클락 생성기에 의해서 생성된 클락 신호를 전달할 수 있다. 클락 신호는 일정하거나 가변적인 주기로 진동하는 신호로서 스큐(skew), 지터(jitter), 듀티(duty) 등과 같은 특성을 가질 수 있고, 집적 회로의 성능은 클락 신호의 특성에 좌우될 수 있다. 클락 네트워크는 반복적으로 진동하는 클락 신호에 기인하여 높은 소비 전력을 가질 수 있고, 예컨대 클락 네트워크의 소비 전력은 집적 회로의 소비 전력의 약 40%이상일 수 있다.
집적 회로를 제조하기 위한 과정, 예컨대 집적 회로를 설계하는 과정에서 클락 네트워크가 확정된 후 클락 네트워크의 소비 전력을 계산하거나 측정하는 경우, 클락 네트워크가 확정되기 전 과정에서는 클락 네트워크의 소비 전력을 알 수 없기 때문에, 집적 회로에 포함된 블록들은 불필요한 전력 마진을 포함하도록 설계될 수 있고, 집적 회로의 최적화된 성능이 달성되지 아니할 수 있다. 또한, 집적 회로의 재설계에 의한 오버헤드를 가중시킴으로써 집적 회로의 설계 시간이 현저하게 연장될 수 있고, 집적 회로의 출시 시기(time-to-market)가 지연될 수 있다. 이에 따라, 집적 회로를 제조하기 위한 과정에서 클락 네트워크가 확정되기 전에 클락 네트워크의 소비 전력을 정확하게 추정하는 것이 요구될 수 있다.
본 개시의 기술적 사상은 클락 네트워크를 포함하는 집적 회로를 제조하기 위하여 클락 네트워크의 소비 전력을 정확하게 추정하는 장치 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따라 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치는, 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 획득하는 전처리기, 복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하고, 적어도 하나의 인공 신경망으로부터 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 신경망 인터페이스, 및 적어도 하나의 출력 파라미터에 기초하여 클락 네트워크의 소비 전력을 계산하는 전력 계산기를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 장치는 집적 회로를 정의하는 출력 데이터를 생성하는 출력 데이터 생성기를 더 포함할 수 있고, 출력 데이터는 집적 회로를 제조하는데 사용되는 마스크에 대한 정보를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 전력 계산기는, 클락 네트워크의 버퍼 셀들의 총 캐패시턴스 및 클락 게이팅 셀들의 캐패시턴스들을 계산하는 캐패시턴스 계산기, 총 캐패시턴스 및 캐패시턴스들에 기초하여, 클락 네트워크의 스위칭 전력을 계산하는 스위칭 전력 계산기, 및 입력 천이 시간 및 총 캐패시턴스 및 캐패시턴스들에 기초하여, 클락 네트워크의 버퍼 셀들 및 클락 게이팅 셀들의 내부 전력을 계산하는 내부 전력 계산기를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 스위칭 전력 계산기는, 집적 회로의 기능 시뮬레이션 결과로부터 클락 게이팅 셀들이 인에이블된 활성 구간들에 대한 정보를 획득하고, 캐패시턴스들 및 활성 구간들에 기초하여 클락 게이팅 셀들에 의한 스위칭 전력들을 계산할 수 있다.
본 개시의 예시적 실시예에 따라, 내부 전력 계산기는, 집적 회로의 기능 시뮬레이션 결과로부터 클락 게이팅 셀들이 인에이블된 활성 구간들에 대한 정보를 획득하고, 캐패시턴스들 및 활성 구간들에 기초하여 클락 게이팅 셀들의 내부 전력을 계산할 수 있다.
본 개시의 기술적 사상의 일측면에 따라 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 방법은, 복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계, 적어도 하나의 인공 신경망으로부터 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 단계, 및 적어도 하나의 출력 파라미터에 기초하여 클락 네트워크의 소비 전력을 계산하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 집적 회로를 제조하기 위한 방법은, 집적 회로를 정의하는 출력 데이터를 생성하는 단계, 및 출력 데이터에 기초하여 제작된 적어도 하나의 마스크를 사용하여 집적 회로를 제조하는 단계를 더 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 적어도 하나의 입력 파라미터는, 목표 스큐(skew), 싱크 천이(sink transition) 시간, 면적, 이용률(utilization factor), 종횡비(aspect ratio) 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제1 입력 파라미터를 포함할 수 있고, 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계는, 제1 입력 파라미터 및 입력 네트리스트에서의 클락 게이팅 셀들의 개수를 제1 인공 신경망에 제공하는 단계를 포함할 수 있고, 적어도 하나의 출력 파라미터를 수신하는 단계는, 클락 게이팅 셀들의 추정된 개수를 포함하는 적어도 하나의 출력 파라미터를 제1 인공 신경망으로부터 수신하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 적어도 하나의 입력 파라미터는, 목표 스큐, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀들의 싱크 개수들의 평균 중 적어도 하나를 포함하는 제2 입력 파라미터를 포함할 수 있고, 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계는, 제2 입력 파라미터 및 클락 게이팅 셀들의 추정된 개수를 제2 인공 신경망에 제공하는 단계를 포함할 수 있고, 적어도 하나의 출력 파라미터를 수신하는 단계는, 버퍼 셀들의 추정된 개수를 포함하는 적어도 하나의 출력 파라미터를 제2 인공 신경망으로부터 수신하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률 및 종횡비 중 적어도 하나를 포함하는 제3 입력 파라미터를 포함할 수 있고, 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계는, 제3 입력 파라미터, 클락 게이팅 셀들의 추정된 개수 및 버퍼 셀들의 추정된 개수를 제3 인공 신경망에 제공하는 단계를 포함할 수 있고, 적어도 하나의 출력 파라미터를 수신하는 단계는, 버퍼 셀들의 추정된 와이어 부하들(wire loads)을 포함하는 적어도 하나의 출력 파라미터를 제3 인공 신경망으로부터 수신하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제4 입력 파라미터를 포함할 수 있고, 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계는, 제4 입력 파라미터 및 클락 게이팅 셀들의 추정된 개수를 제4 인공 신경망에 제공하는 단계를 포함할 수 있고, 적어도 하나의 출력 파라미터를 수신하는 단계는, 클락 게이팅 셀들의 추정된 와이어 부하(wire load)를 포함하는 적어도 하나의 출력 파라미터를 제4 인공 신경망으로부터 수신하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 소비 전력을 계산하는 단계는, 클락 네트워크의 버퍼 셀들의 소비 전력을 계산하는 단계를 포함할 수 있고, 버퍼 셀들의 소비 전력을 계산하는 단계는, 버퍼 셀들의 총 캐패시턴스를 계산하는 단계, 총 캐패시턴스 및 양의 공급 전압에 기초하여 버퍼 셀들에 의한 스위칭 전력을 계산하는 단계, 및 총 캐패시턴스 및 입력 천이 시간에 기초하여 버퍼 셀들의 내부 전력을 계산하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라, 소비 전력을 계산하는 단계는, 클락 네트워크의 클락 게이팅 셀들의 소비 전력을 계산하는 단계를 포함할 수 있고, 클락 게이팅 셀들의 소비 전력을 계산하는 단계는, 클락 게이팅 셀들의 캐패시턴스들을 계산하는 단계, 집적 회로의 기능 시뮬레이션 결과로부터 클락 게이팅 셀들이 인에이블된 활성 구간들을 획득하는 단계, 및 캐패시턴스들 및 활성 구간들에 기초하여 클락 게이팅 셀들에 의한 스위칭 전력들 및 클락 게이팅 셀들의 내부 전력들을 계산하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라 적어도 하나의 프로세서에 의해서 실행시 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 동작들을 수행하도록 프로그램 명령어들을 저장하는 비일시적 저장 매체로서, 동작들은, 복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계, 적어도 하나의 인공 신경망으로부터 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 단계, 및 적어도 하나의 출력 파라미터에 기초하여 클락 네트워크의 소비 전력을 계산하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라 동작들은, 집적 회로를 정의하는 출력 데이터를 생성하는 단계, 및 출력 데이터로부터 집적 회로를 제조하는데 사용되는 적어도 하나의 마스크를 제작하기 위한 데이터를 추출하는 단계를 더 포함할 수 있다.
본 개시의 예시적 실시예에 따라 클락 네트워크의 소비 전력을 계산하는 단계는, 집적 회로의 기능 시뮬레이션 결과로부터 클락 네트워크의 클락 게이팅 셀들이 인에이블된 활성 구간들을 획득하는 단계, 및 활성 구간들에 기초하여, 클락 게이팅 셀들에 의한 스위칭 전력들 및 클락 게이팅 셀들의 내부 전력들을 계산하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따라 집적 회로를 제조하기 위한 장치 및 방법에 의하면, 클락 네트워크의 소비 전력은 낮은 계산 복잡도로서 정확하게 추정될 수 있다.
또한, 본 개시의 예시적 실시예에 따라 집적 회로를 제조하기 위한 장치 및 방법에 의하면, 인공 신경망을 사용함으로써 클락 네트워크에 대한 초기 정보로부터 클락 네트워크의 소비 전력을 추정하는데 필요한 파라미터들이 생성될 수 있고, 집적 회로를 제조하기 위한 과정의 초기 단계에서 클락 네트워크의 소비 전력이 추정될 수 있다.
또한, 본 개시의 예시적 실시예에 따라 집적 회로를 제조하기 위한 장치 및 방법에 의하면, 집적 회로를 제조하기 위한 과정의 초기 단계에서 클락 네트워크의 소비 전력이 정확하게 추정됨으로써, 집적 회로를 설계하는데 걸리는 시간을 현저하게 단축시킬 수 있고, 최적의 성능을 가지는 집적 회로가 조기에 제조될 수 있다.
도 1은 본 개시의 예시적 실시예에 따라 집적 회로를 제조하기 위한 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 인공 신경망의 예시를 나타내는 도면이다.
도 3은 본 개시의 예시적 실시예에 따른 집적 회로를 제조하기 위한 방법을 나타내는 순서도이다.
도 4는 본 개시의 예시적 실시예에 따라 클락 네트워크의 소비 전력을 추정하는 방법을 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 클락 네트워크의 예시를 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 신경망 시스템의 예시를 나타내는 블록도이다.
도 7은 본 개시의 예시적 실시예에 따라 도 1의 전력 계산기의 예시를 나타내는 블록도이다.
도 8 및 도 9는 본 개시의 예시적 실시예들에 따라 클락 네트워크의 소비 전력을 계산하는 방법들을 나타내는 순서도들이다.
도 10은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 저장 매체를 도시하는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 개시의 예시적 실시예에 따라 집적 회로를 제조하기 위한 장치(100)를 나타내는 블록도이다. 도 1에 도시된 바와 같이, 장치(100)는 신경망 시스템(200)과 통신할 수 있고, 신경망 시스템(200)에 포함된 적어도 하나의 인공 신경망(artificial neural network)(ANN)을 사용하여 집적 회로에 포함되는 클락 네트워크에 의해서 소비되는 전력을 추정할 수 있다. 본 명세서에서, 집적 회로에 포함되고 그 소비 전력이 추정되는 클락 네트워크는 대상(object) 클락 네트워크로서 지칭될 수도 있다.
인공 신경망(ANN)은, 동물의 두뇌를 구성하는 생물학적 신경망에 착안된 컴퓨팅 시스템 또는 컴퓨팅 시스템에 의해서 수행되는 방법을 지칭할 수 있다. 인공 신경망(ANN)은, 규칙-기반(rule-based) 프로그래밍과 같이 미리 정의된 조건에 따라 작업을 수행하는 고전적인 알고리즘과 달리, 다수의 샘플들(또는 예시들)을 고려함으로써 작업을 수행하는 것을 학습할 수 있다. 인공 신경망(ANN)은 인공 뉴런(neuron)(또는 뉴런)들이 연결된 구조를 가질 수 있고, 뉴런들간 연결은 시냅스(synapse)로 지칭될 수 있다. 뉴런은 수신된 신호를 처리할 수 있고, 처리된 신호를 시냅스를 통해서 다른 뉴런에 전송할 수 있다. 뉴런의 출력은 "액티베이션(activation)"으로 지칭될 수 있다. 뉴런 및/또는 시냅스는 변동할 수 있는 가중치(weight)를 가질 수 있고, 가중치에 따라 뉴런에 의해서 처리된 신호의 영향력이 증가하거나 감소할 수 있다. 특히 개개의 뉴런에 관련된 가중치는 바이어스(bias)로서 지칭될 수 있다. 인공 신경망(ANN)의 예시는 도 2를 참조하여 후술될 것이다.
신경망 시스템(200)에 포함된 적어도 하나의 인공 신경망(ANN)은 복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들에 의해서 학습될 수 있다. 복수의 네트리스트들은, 샘플 클락 네트워크를 위한 클락 트리 합성(clock tree synthesis; CTS)에 사용되는 집적 회로의 네트리스트, 즉 사전-CTS(pre-CTS) 네트리스트 및 클락 트리 합성(CTS)이 완료된 후 집적 회로의 네트리스트, 즉 사후-CTS(post-CTS) 네트리스트를 포함할 수 있다. 사전-CTS 네트리스트는 집적 회로의 논리 합성 또는 배치(placement) 이후 획득되는 게이트-레벨(gate-level) 네트리스트일 수 있다. 사후-CTS 네트리스트는 클락 트리 합성(CTS)에 의해서 클락 네트워크에 포함되는 버퍼 셀(예컨대, 도 5의 B61 등) 및 클락 게이팅 셀(예컨대, 도 5의 C61)을 정의할 수 있고, 셀들을 상호 연결하는 와이어들을 정의할 수 있다. 와이어는 금속층의 패턴과 같은 전도성 패턴을 포함할 수 있고, 상이한 층들의 전도성 패턴들을 상호연결하는 비아(via)를 포함할 수도 있다. 일부 실시예들에서, 사전-CTS 네트리스트는 적어도 하나의 클락 게이팅 셀을 정의할 수도 있고, 사후-CTS 네트리스트는 클락 트리 합성(CTS)에 의해서 클락 게이팅 셀이 추가되거나 제거됨으로써, 사전-CTS 네트리스트와 상이한 수의 클락 게이팅 셀들을 정의할 수 있다.
복수의 샘플 클락 네트워크들의 복수의 파라미터들은, 샘플 클락 네트워크의 요건들(requirements)을 정의하는 파라미터(또는 설계 파라미터)를 포함할 수 있다. 예를 들면, 복수의 파라미터들은 클락 신호의 목표 스큐(skew) 및 천이 시간 제약(transition time constraint)을 포함할 수도 있고, 칩의 전체 면적(area), 이용률(utilization factor), 종횡비(aspect ratio)를 포함할 수도 있다.
후술되는 바와 같이, 집적 회로의 클락 네트워크, 즉 대상 클락 네트워크의 소비 전력을 추정하기 위하여, 신경망 시스템(200)(또는 적어도 하나의 인공 신경망(ANN))에 제공되는 입력 데이터(IN)는 대상 클락 네트워크의 사전-CTS 네트리스트 및 적어도 하나의 파라미터를 포함할 수 있는 한편, 신경망 시스템(200)(또는 적어도 하나의 인공 신경망(ANN))이 제공하는 출력 데이터(OUT)는 대상 클락 네트워크를 정의하는 정보, 예컨대 사후-CTS 네트리스트에 포함되는 정보의 적어도 일부를 포함할 수 있다. 이에 따라, 클락 네트워크에 대한 초기 정보로부터 대상 클락 네트워크의 소비 전력을 추정하는데 필요한 대상 클락 네트워크의 구조에 대한 데이터가 적어도 하나의 인공 신경망(ANN)을 사용하여 추정될 수 있고, 추정된 데이터로부터 대상 클락 네트워크의 소비 전력이 계산될 수 있다. 이에 따라, 대상 클락 네트워크의 추정된 소비 전력은 높은 정확도를 가질 수 있다. 실험 결과는 본 개시의 예시적 실시예들에 따라 추정된 소비 전력이 최대 3.6%의 오차 및 평균 2.1%의 오차를 가지는 것을 보여준다.
장치(100)는 본 개시의 예시적 실시예들에 따라 집적 회로를 제조하기 위하여 대상 클락 네트워크의 소비 전력을 추정하는 임의의 시스템일 수 있다. 일부 실시예들에서, 장치(100)는 적어도 하나의 프로세서 및 메모리를 포함하는 컴퓨팅 시스템일 수 있다. 비제한적인 예시로서, 장치(100)는 데스크탑 컴퓨터, 서버 등과 같은 고정형(stationary) 컴퓨팅 시스템뿐만 아니라, 랩탑 컴퓨터, 스마트 폰 등과 같은 휴대용(mobile) 컴퓨팅 시스템일 수도 있다. 도 1에 도시된 바와 같이, 장치(100)는 신경망 인터페이스(120), 전처리기(140) 및 전력 계산기(160)를 포함할 수 있고, 신경망 인터페이스(120), 전처리기(140) 및 전력 계산기(160) 각각은 논리 합성을 통해서 구현되는 로직 블록, 프로세서에 의해서 수행되는 소프트웨어 블록 또는 이들의 조합으로 구현될 수 있다. 일부 실시예들에서, 신경망 인터페이스(120), 전처리기(140) 및 전력 계산기(160) 각각은, 프로세서에 의해서 실행되는 복수의 명령어들의 집합으로서 프로시저로서 지칭될 수 있고, 프로세서에 의해서 엑세스 가능한 메모리에 저장될 수 있다.
신경망 인터페이스(120)는 신경망 시스템(200)과 통신할 수 있고, 장치(100)의 다른 구성요소들, 즉 전처리기(140) 및 전력 계산기(160)에 신경망 시스템(200)과의 통신을 제공할 수 있다. 예를 들면, 신경망 인터페이스(120)는 전처리기(140)로부터 제공되는 입력 데이터(IN)를 신경망 시스템(200)에 제공할 수 있고, 신경망 시스템(200)으로부터 수신되는 출력 데이터(OUT)를 전력 계산기(160)에 제공할 수도 있다. 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 일부 실시예들에서 장치(100)는 적어도 하나의 인공 신경망(ANN)을 내부에 포함할 수 있고, 신경망 인터페이스(120)는 생략될 수 있다.
전처리기(140)는 대상 클락 네트워크의 네트리스트(또는 대상 클락 네트워크를 포함하는 네트리스트) 및 적어도 하나의 파라미터를 획득할 수 있고, 획득된 네트리스트 및 적어도 하나의 파라미터를 포함하는 입력 데이터(IN)를 신경망 인터페이스(120)를 통해서 신경망 시스템(200)에 제공할 수 있다. 일부 실시예들에서, 전술된 바와 같이, 입력 데이터(IN)에 포함되는 네트리스트는 대상 클락 네트워크의 사전-CTS 네트리스트일 수 있고, 입력 데이터(IN)에 포함되는 적어도 하나의 파라미터는 대상 클락 네트워크의 요건들을 정의하는 파라미터를 포함할 수 있다. 전처리기(140)는, 일부 실시예들에서 장치(100)의 외부로부터 대상 클락 네트워크의 네트리스트 및 적어도 하나의 파라미터를 수신할 수도 있고, 일부 실시예들에서 장치(100)에 포함된 저장소에 저장된 대상 클락 네트워크의 네트리스트 및 적어도 하나의 파라미터를 독출할 수도 있다. 본 명세서에서, 입력 데이터(IN)에 포함된 네트리스트는 입력 네트리스트로서 지칭될 수 있고, 입력 데이터(IN)에 포함된 적어도 하나의 파라미터는 입력 파라미터로서 지칭될 수 있다.
전력 계산기(160)는 신경망 인터페이스(120)로부터 출력 데이터(OUT)를 수신할 수 있고, 출력 데이터(OUT)에 기초하여 대상 클락 네트워크의 소비 전력을 계산할 수 있다. 일부 실시예들에서, 전술된 바와 같이, 출력 데이터(OUT)는 대상 클락 네트워크의 사후-CTS 네트리스트에 포함되는 정보의 적어도 일부로서 적어도 하나의 파라미터를 포함할 수 있다. 전력 계산기(160)는 출력 데이터(OUT)에 포함된 적어도 하나의 파라미터에 기초하여 낮은 계산 복잡도로서 소비 전력을 정확하게 계산할 수 있다. 본 명세서에서, 출력 데이터(OUT)에 포함된 적어도 하나의 파라미터는 출력 파라미터로서 지칭될 수 있다. 전력 계산기(160)의 예시는 도 7 등을 참조하여 후술될 것이다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 인공 신경망(ANN)의 예시를 나타내는 도면이다. 도 1을 참조하여 전술된 바와 같이, 도 2의 인공 신경망(ANN')은 복수의 샘플 클락 네트워크들에 대응하는 정보들에 의해서 학습될 수 있고, 도 2에 도시된 바와 같이, 입력 데이터(IN')로부터 출력 데이터(OUT')를 생성할 수 있다.
도 2를 참조하면, 인공 신경망(ANN')은 복수의 레이어들(L1, L2, L3, ..., Ln)을 포함할 수 있고, 레이어의 출력은 적어도 하나의 채널을 통해서 후속하는 레이어에 입력될 수 있다. 예를 들면, 제1 레이어(L1)는 입력 데이터(IN')를 처리함으로써 복수의 채널들(CH11...CH1x)을 통해서 제2 레이어(L2)에 출력을 제공할 수 있고, 제2 레이어(L2) 역시 복수의 채널들(CH21...CH2y)을 통해서 제3 레이어(L3)에 출력을 제공할 수 있다. 최종적으로, 제n 레이어(Ln)는 출력 데이터(OUT')를 출력할 수 있고, 출력 데이터(OUT')는 입력 데이터(IN')와 관계된 적어도 하나의 값을 포함할 수 있다. 복수의 레이어들(L1, L2, L3, ..., Ln) 각각의 출력들이 전달되는 채널들의 개수는 동일하거나 상이할 수 있다. 예를 들면, 제2 레이어(L2)의 채널들(CH21...CH2y)의 개수 및 제3 레이어(L3)의 채널들(CH31...CH3z)의 개수는 동일할 수도 있고 상이할 수도 있다.
도 3은 본 개시의 예시적 실시예에 따른 집적 회로를 제조하기 위한 방법을 나타내는 순서도이다. 도 3에 도시된 바와 같이, 집적 회로를 제조하기 위한 방법은 클락 네트워크(또는 대상 클락 네트워크)의 소비 전력을 추정하는 단계 S330을 포함할 수 있고, 추정된 소비 전력은 논리 합성 단계(S310) 및/또는 배치 및 라우팅 수행 단계(S320)에서 사용될 수 있다. 예를 들면, 도 3의 단계 S330은 도 1의 장치(100)에 의해서 수행될 수 있다.
셀 라이브러리(D32)는 복수의 셀들에 관한 정보, 예컨대 기능 정보, 특성 정보, 레이아웃 정보 등을 포함할 수 있다. 셀(cell)은 집적 회로에 포함되는 레이아웃의 단위로서, 집적 회로는 다수의 다양한 셀들을 포함할 수 있다. 일부 실시예들에서, 셀들은 표준 셀(standard cell)로서 지칭될 수 있고, 미리 정해진 규격을 준수하는 구조, 예컨대 일정한 높이를 가질 수 있고 대향하는 경계에 한 쌍의 파워 레일들을 포함할 수 있다.
클락 네트워크는 셀 라이브러리(D32)에 저장된 셀들, 예컨대 버퍼 셀(예컨대, 도 5의 B61) 및 클락 게이팅 셀(예컨대, 도 5의 C61)을 포함할 수 있다. 버퍼 셀은 입력 신호를 반전 증폭 또는 비반전 증폭함으로써 출력 신호를 생성할 수 있다. 클락 게이팅 셀은 활성화된 인에이블 신호에 응답하여 입력 신호를 증폭함으로써 출력 신호를 생성할 수 있는 한편, 비활성화된 인에이블 신호에 응답하여 입력 신호를 증폭하지 아니할 수 있고, 예컨대 비활성화된 출력 신호를 생성할 수 있다. 클락 게이팅 셀은 집적 회로의 동작 모드 또는 저전력 모드에서 전력 소비를 감소시키기 위하여, 디스에이블되는 블록에 공급되는 클락 신호를 차단하는데 사용될 수 있다. 클락 네트워크의 예시는 도 5를 참조하여 후술될 것이다.
단계 S310에서, RTL 데이터(D31)로부터 네트리스트 데이터(D33)를 생성하는 논리 합성이 수행될 수 있다. 예를 들면, 반도체 설계 툴(예컨대, 논리 합성 툴)은, 비제한적인 예시로서 VHDL(VHSIC Hardware Description Language) 및 Verilog와 같은 HDL(Hardware Description Language)로서 작성된 RTL 데이터(D31)로부터 표준 셀 라이브러리(D32)를 참조하여 논리 합성을 수행함으로써, 비트스트림(bitstream) 또는 네트리스트를 포함하는 네트리스트 데이터(D33)를 생성할 수 있다. 네트리스트 데이터(D33)는 집적 회로를 정의하는 데이터로서 지칭될 수 있다. 도 3에 도시된 바와 같이, 단계 S310은 단계 S312를 포함할 수 있고, 단계 S312에서 클락 트리 합성(CTS)이 수행될 수 있다.
클락 트리 합성(CTS)은 RTL 데이터(D31)에 따라 기능 블록들이 합성된 이후 수행될 수 있다. 일부 실시예들에서, 클락 트리 합성(CTS) 전에, 즉 기능 블록들이 합성되는 과정에서, 단계 S330에서 클락 네트워크의 소비 전력을 추정하는 동작이 수행될 수 있고, 추정된 소비 전력에 기초하여 기능 블록들이 합성될 수 있다. 예를 들면, 단계 S330에서 사전-CTS 네트리스트 및 적어도 하나의 파라미터에 기초하여 클락 네트워크의 소비 전력이 추정될 수 있다. 일부 실시예들에서, 클락 트리 합성(CTS)이 완료된 후, 단계 S330에서 합성된 클락 네트워크의 소비 전력을 추정하는 동작이 수행될 수 있다. 예를 들면, 단계 S330에서 사후-CTS 네트리스트에 기초하여 클락 네트워크의 소비 전력이 추정될 수 있다. 비록 도 3에 도시되지 아니하였으나, 일부 실시예들에서, 단계 S330에서 클락 네트워크의 소비 전력을 추정하는 동작이 수행될 때 셀 라이브러리(D32)가 참조될 수 있다.
단계 S320에서, 네트리스트 데이터(D33)로부터 레이아웃 데이터(D34)를 생성하는 배치 및 라우팅(Place & Routing; P&R)이 수행될 수 있다. 레이아웃 데이터(D34)는, 예컨대 GDSII와 같은 포맷을 가질 수 있고, 셀들 및 셀들을 전기적으로 상호연결하는 와이어들의 기하학적 정보를 포함할 수 있다. 이에 따라, 네트리스트 데이터(D33)와 유사하게, 레이아웃 데이터(D34)는 집적 회로를 정의하는 데이터로서 지칭될 수 있다. 일부 실시예들에서, 클락 네트워크에 포함된 셀들이 배치되고 라우팅되는 과정에서, 단계 S330에서 클락 네트워크의 소비 전력을 추정하는 동작이 수행될 수 있다. 예를 들면, 라우팅에 따라 생성된 와이어에 의한 부하 캐패시턴스에 기초하여 클락 네트워크의 소비 전력이 추정될 수 있다.
단계 S340에서, OPC(Optical Proximity Correction)가 수행될 수 있다. OPC는 집적 회로를 제조하기 위한 반도체 공정에 포함되는 포토리소그래피(photolithography)에서 빛의 특성에 기인하는 굴절 등의 왜곡 현상을 보정함으로써 원하는 모양의 패턴을 형성하기 위한 작업을 지칭할 수 있다. 레이아웃 데이터(D34)로부터 적어도 하나의 마스크를 제작하기 위한 데이터가 추출될 수 있고, 추출된 데이터에 OPC가 적용됨으로써 마스크상의 패턴이 결정될 수 있다. 일부 실시예들에서, 집적 회로의 레이아웃은 단계 S340에서 제한적으로 변형될 수 있다. 단계 S340에서 집적 회로의 레이아웃을 제한적으로 변형하는 것은, 집적 회로의 구조를 최적화하기 위한 후처리로서, 디자인 폴리싱(design polishing)으로 지칭될 수 있다.
단계 S350에서, 마스크를 제작(making)하는 동작이 수행될 수 있다. 예를 들면, 레이아웃 데이터(D34)에 OPC를 적용함에 따라 복수의 층들에 형성된 패턴들을 형성하기 위하여 마스크상의 패턴들이 정의될 수 있고, 복수의 층들 각각의 패턴들을 형성하기 위한 적어도 하나의 마스크(또는, 포토마스크)가 제작될 수 있다.
단계 S360에서, 집적 회로를 제조(manufacturing)하는 동작이 수행될 수 있다. 예를 들면, 단계 S350에서 제작된 적어도 하나의 마스크를 사용하여 복수의 층들이 패터닝됨으로써 집적 회로가 제조될 수 있다. 도 3에 도시된 바와 같이, 단계 S360은 단계들(S361, S362)을 포함할 수 있다.
단계 S361에서, FEOL(front-end-of-line) 공정이 수행될 수 있다. FEOL은 집적 회로 제조 과정에서 개별 소자들, 예컨대 트랜지스터, 캐패시터, 저항 등을 기판에 형성하는 과정을 지칭할 수 있다. 예를 들면, FEOL은 웨이퍼를 평탄화(planarization)하고 세정(cleaning)하는 단계, 트랜치(trench)를 형성하는 단계, 웰(well)을 형성하는 단계, 게이트(gate) 라인을 형성하는 단계, 소스 및 드레인을 형성하는 단계 등을 포함할 수 있다. FEOL 공정에 의해서 형성되는 부분은 FEOL 영역으로서 지칭될 수 있고, 예컨대 활성 영역, 확산 영역, 게이트 라인, 컨택 등을 포함할 수 있다.
단계 S362에서, BEOL(back-end-of-line) 공정이 수행될 수 있다. BEOL은 집적 회로 제조 과정에서 개별 소자들, 예컨대 트랜지스터, 캐패시터, 저항 등을 상호연결하는 과정을 지칭할 수 있다. 예를 들면, BEOL은 게이트, 소스 및 드레인 영역을 실리사이드화(silicidation)하는 단계, 유전체를 부가하는 단계, 평탄화 단계, 홀을 형성하는 단계, 금속층을 부가하는 단계, 비아를 형성하는 단계, 패시베이션(passivation)층을 형성하는 단계 등을 포함할 수 있다. BEOL 공정에 의해서 형성되는 부분은 BEOL 영역으로서 지칭될 수 있고, 예컨대 비아, 금속층 패턴 등을 포함할 수 있다. 그 다음에, 집적 회로는 반도체 패키지에 패키징될 수 있고, 다양한 어플리케이션들의 부품으로서 사용될 수 있다.
도 4는 본 개시의 예시적 실시예에 따라 클락 네트워크의 소비 전력을 추정하는 방법을 나타내는 순서도이다. 도 4에 도시된 바와 같이, 클락 네트워크의 소비 전력을 추정하는 방법은 복수의 단계들(S410, S420, S430)을 포함할 수 있다. 일부 실시예들에서, 도 4의 복수의 단계들(S410, S420, S430)은 도 3의 단계 S330에 포함될 수 있고, 도 1의 장치(100)에 의해서 수행될 수 있다. 이하에서, 도 4는 도 1을 참조하여 설명될 것이다.
단계 S410에서, 입력 네트리스트 및 입력 파라미터를 인공 신경망에 제공하는 동작이 수행될 수 있다. 예를 들면, 장치(100)의 전처리기(140)는 입력 네트리스트 및 입력 파라미터를 획득할 수 있고, 입력 네트리스트 및 입력 파라미터를 포함하는 입력 데이터(IN)를 신경망 인터페이스(120)를 통해서 신경망 시스템(200)의 적어도 하나의 인공 신경망(ANN)에 제공할 수 있다. 인공 신경망에 제공되는 입력 네트리스트 및 입력 파라미터의 예시는 도 5 및 도 6을 참조하여 후술될 것이다.
단계 S420에서, 인공 신경망으로부터 출력 파라미터를 수신하는 동작이 수행될 수 있다. 출력 파라미터는 인공 신경망이 단계 S410의 입력 네트리스트 및 입력 파라미터에 응답하여 생성한 값을 포함할 수 있다. 예를 들면, 신경망 인터페이스(120)는 단계 S410에서 제공된 입력 데이터(IN)에 대응하는 출력 데이터(OUT)를 신경망 시스템(200)의 적어도 하나의 인공 신경망(ANN)으로부터 수신할 수 있고, 출력 데이터(OUT)를 전력 계산기(160)에 제공할 수 있다. 인공 신경망으로부터 제공되는 출력 파라미터의 예시는 도 5 및 도 6을 참조하여 후술될 것이다.
단계 S430에서, 클락 네트워크의 소비 전력을 계산하는 동작이 수행될 수 있다. 예를 들면, 전력 계산기(160)는 전처리기(140)가 획득한 정보, 즉 입력 네트리스트 및 입력 파라미터의 적어도 일부 및 출력 파라미터에 기초하여 클락 네트워크의 소비 전력을 계산할 수 있다. 일부 실시예들에서, 전력 계산기(160)는 클락 네트워크에 포함된 버퍼 셀에 기인하는 소비 전력 및 클락 게이팅 셀에 기인하는 소비 전력을 각각 계산함으로써 클락 네트워크의 소비 전력을 계산할 수 있다. 일부 실시예들에서, 전력 계산기(160)는 클락 네트워크의 스위칭 전력 및 클락 네트워크에 포함된 셀들의 내부 전력을 각각 계산함으로써 클락 네트워크의 소비 전력을 계산할 수 있다. 단계 S430에 대한 예시는 도 8 및 도 9를 참조하여 후술될 것이다.
도 5는 본 개시의 예시적 실시예에 따른 클락 네트워크의 예시를 나타내는 도면이다. 도 5를 참조하면, 클락 네트워크는 클락 생성기(61)를 포함할 수 있고, 복수의 버퍼들(B61 내지 B64), 복수의 클락 게이팅 셀들(C61, C62) 및 복수의 싱크들(S61 내지 S64)을 포함할 수 있다. 클락 네트워크는, 도 5에 도시된 바와 같이 트리 구조를 가질 수 있고, 클락 트리로서 지칭될 수도 있다. 클락 트리에서 가장 하위 레벨에 있는 구성요소, 즉 복수의 싱크들(S61 내지 S64)은, 플립플롭, 래치 등과 같이 클락 신호를 수신하는 셀들을 지칭할 수 있다. 도 5의 클락 네트워크는 본 개시의 예시적 실시예들을 설명하기 위한 예시이며, 본 개시의 예시적 실시예들이 도 5에 도시된 클락 네트워크에 제한되지 아니하는 점이 유의된다.
클락 생성기(61)는 일정하거나 가변적인 주기로 진동하는 클락 신호를 생성할 수 있다. 예를 들면, 클락 생성기(61)는 오실레이터, PLL(Phase Locked Loop), DLL(Delayed Locked Loop) 중 적어도 하나를 포함할 수 있다. 클락 생성기(61)가 생성한 클락 신호는 복수의 싱크들(S61 내지 S64)에 도달할 때까지 상이한 경로들을 통과할 수 있고, 이에 따라 클락 신호가 상이하게 지연될 수 있다. 또한, 클락 신호는 다양한 원인들에 의해서 왜곡될 수 있다. 이러한 클락 신호의 지연 및 왜곡 등을 보상하기 위하여 클락 네트워크는 클락 신호를 증폭하기 위하여 복수의 버퍼들(B61 내지 B64) 및 복수의 클락 게이팅 셀들(C61, C62)을 포함할 수 있고, 복수의 버퍼들(B61 내지 B64) 및 복수의 클락 게이팅 셀들(C61, C62)은 셀 라이브러리(예컨대, 도 3의 D32)에 정의될 수 있다.
복수의 버퍼들(B61 내지 B64)은 상위 레벨의 구성요소로부터 수신된 클락 신호를 증폭함으로써 하위 레벨의 구성요소로 클락 신호를 제공할 수 있다. 복수의 버퍼들(B61 내지 B64)은 집적 회로에 전력이 공급되고 클락 생성기(61)에 의해서 클락 신호가 생성되는 동안, 클락 신호를 비반전 또는 반전 증폭할 수 있다.
복수의 클락 게이팅 셀들(C61 내지 C62)은 인에이블 신호들(EN1, EN2)을 각각 수신할 수 있다. 예를 들면, 제1 클락 게이팅 셀(C61)은 제1 인에이블 신호(EN1)를 수신할 수 있고, 활성화된 제1 인에이블 신호(EN1)에 응답하여 제1 버퍼 셀(B61)로부터 제공된 클락 신호를 증폭하여 제1 싱크들(S61)에 제공할 수 있다. 다른 한편으로, 제1 클락 게이팅 셀(C61)은 비활성화된 제1 인에이블 신호(EN1)에 응답하여 제1 버퍼 셀(B61)로부터 제공된 클락 신호에 무관하게, 일정한 레벨(예컨대, 로우 레벨)을 가지는 신호를 제1 싱크들(S61)에 제공할 수 있다. 이에 따라, 제1 인에이블 신호(EN1)가 비활성화되는 경우, 제1 싱크들(S61)에서 클락 신호의 천이에 따라 소비되는 전력이 절감될 수 있다. 또한, 비활성화된 제1 인에이블 신호(EN1)에 응답하여 제1 클락 게이팅 셀(C61)이 클락 신호를 증폭하지 아니하므로, 제1 클락 게이팅 셀(C61)에 의한 전력 소모 역시 감소할 수 있다. 이에 따라, 클락 네트워크의 소비 전력은 클락 게이팅 셀들의 인에이블 여부에 좌우될 수 있고, 후술되는 바와 같이, 집적 회로의 시뮬레이션을 통해서 클락 게이팅 셀이 인에이블되는 활성 구간들이 획득되고, 획득된 활성 구간들에 기초하여 클락 네트워크의 소비 전력이 정확하게 계산될 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 신경망 시스템(200)의 예시를 나타내는 블록도이다. 도 6에 도시된 바와 같이, 신경망 시스템(200')은 제1 내지 제4 인공 신경망(ANN1 내지 ANN4)을 포함할 수 있고, 도 1을 참조하여 전술된 바와 같이, 제1 내지 제4 인공 신경망(ANN1 내지 ANN4) 각각은 복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들에 의해서 학습될 수 있다. 이하에서, 도 6은 도 5의 클락 네트워크를 참조하여 설명될 것이다.
제1 인공 신경망(ANN1)은 제1 입력 데이터(IN1)로부터 제1 출력 데이터(OUT1)를 생성할 수 있다. 예를 들면, 제1 입력 데이터(IN1)는, 클락 네트워크의 목표 스큐(target skew), 싱크 천이(sink transition) 시간, 면적, 이용률(utilization factor), 종횡비(aspect ratio) 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 파라미터(제1 입력 파라미터)를 포함할 수 있다. 또한, 제1 입력 데이터(IN1)는 입력 네트리스트에서의 클락 게이팅 셀의 개수를 포함할 수 있다. 목표 스큐(skew)는 클락 네트워크에서 제공되는 클락 신호들의 스큐 요건에 대응할 수 있다. 싱크 천이 시간 제약은, 클락 네트워크의 싱크들의 입력에서 요구되는 클락 신호의 천이 시간(예컨대, 상승 시간, 하강 시간)에 대응할 수 있다. 면적, 이용률 및 종횡비는 클락 네트워크를 집적 회로에서 구현하는데 필요한 물리적 요건들에 각각 대응할 수 있다. 클락 게이팅 셀의 싱크 개수는 하나의 클락 게이팅 셀에 의해서 클락 게이팅되는 싱크들의 개수에 대응할 수 있다.
제1 출력 데이터(OUT1)는 클락 게이팅 셀들의 개수를 포함할 수 있고, 제1 출력 데이터(OUT1)에 포함된 클락 게이팅 셀들의 개수는 클락 네트워크에 포함된 클락 게이팅 셀들의 추정된 개수일 수 있다. 제1 인공 신경망(ANN1)은 복수의 샘플 클락 네트워크들에 대응하는 제1 입력 데이터(IN1) 및 제1 출력 데이터(OUT1)에 의해서 학습된 상태이므로, 제1 인공 신경망(ANN1)은 클락 네트워크에 대응하는 제1 입력 데이터(IN1)에 따른 제1 출력 데이터(OUT1)를 생성할 수 있다.
제2 인공 신경망(ANN2)은 제2 입력 데이터(IN2)로부터 제2 출력 데이터(OUT2)를 생성할 수 있다. 예를 들면, 제2 입력 데이터(IN2)는, 클락 네트워크의 목표 스큐, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀들의 싱크 개수들의 평균 중 적어도 하나를 포함하는 파라미터(제2 입력 파라미터)를 포함할 수 있다. 또한, 제2 입력 데이터(IN2)는 제1 출력 데이터(OUT1)에 포함된, 클락 게이팅 셀의 추정된 개수를 포함할 수 있다. 제2 출력 데이터(OUT2)는 버퍼 셀들의 개수를 포함할 수 있고, 제2 출력 데이터(OUT2)에 포함된 버퍼 셀들의 개수는 클락 네트워크에 포함된 버퍼 셀들의 추정된 개수일 수 있다. 제2 인공 신경망(ANN2)은 복수의 샘플 클락 네트워크들에 대응하는 제2 입력 데이터(IN2) 및 제2 출력 데이터(OUT2)에 의해서 학습된 상태이므로, 제2 인공 신경망(ANN2)은 클락 네트워크에 대응하는 제2 입력 데이터(IN2)에 따른 제2 출력 데이터(OUT2)를 생성할 수 있다.
제3 인공 신경망(ANN3)은 제3 입력 데이터(IN3)로부터 제3 출력 데이터(OUT3)를 생성할 수 있다. 예를 들면, 제3 입력 데이터(IN3)는, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률 및 종횡비 중 적어도 하나를 포함하는 파라미터(제3 입력 파라미터)를 포함할 수 있다. 또한, 제3 입력 데이터(IN3)는 제1 출력 데이터(OUT1)에 포함된, 클락 게이팅 셀의 추정된 개수를 포함할 수 있고, 제2 출력 데이터(OUT2)에 포함된, 버퍼 셀의 추정된 개수를 포함할 수 있다. 제3 인공 신경망(ANN3)은 복수의 샘플 클락 네트워크들에 대응하는 제3 입력 데이터(IN3) 및 제3 출력 데이터(OUT3)에 의해서 학습된 상태일 수 있고, 이에 따라 제3 인공 신경망(ANN3)은 클락 네트워크에 대응하는 제3 입력 데이터(IN3)에 따른 제3 출력 데이터(OUT3)를 생성할 수 있다.
제4 인공 신경망(ANN4)은 제4 입력 데이터(IN4)로부터 제4 출력 데이터(OUT4)를 생성할 수 있다. 예를 들면, 제4 입력 데이터(IN4)는, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률 및 종횡비 중 적어도 하나를 포함하는 파라미터(제4 입력 파라미터)를 포함할 수 있다. 또한, 제4 입력 데이터(IN4)는 제1 출력 데이터(OUT1)에 포함된, 클락 게이팅 셀의 추정된 개수를 포함할 수 있다. 제4 인공 신경망(ANN4)은 복수의 샘플 클락 네트워크들에 대응하는 제4 입력 데이터(IN4) 및 제4 출력 데이터(OUT4)에 의해서 학습된 상태일 수 있고, 이에 따라 제4 인공 신경망(ANN4)은 클락 네트워크에 대응하는 제4 입력 데이터(IN4)에 따른 제4 출력 데이터(OUT4)를 생성할 수 있다.
도 7은 본 개시의 예시적 실시예에 따라 도 1의 전력 계산기(160')의 예시를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 도 7의 전력 계산기(160')는 도 1의 신경망 인터페이스(120)로부터 수신된 출력 데이터(OUT)에 기초하여 클락 네트워크의 소비 전력을 계산할 수 있다. 도 7에 도시된 바와 같이, 전력 계산기(160')는 캐패시턴스 계산기(162), 스위칭 전력 계산기(164) 및 내부 전력 계산기(166)를 포함할 수 있다. 이하에서, 도 7은 도 5의 클락 네트워크를 참조하여 설명될 것이다.
캐패시턴스 계산기(162)는 클락 네트워크에 포함된 셀들의 캐패시턴스들을 계산할 수 있다. 본 명세서에서, 클락 네트워크에 포함된 셀의 캐패시턴스는, 셀에서 출력되는 클락 신호가 경험하는 캐패시턴스를 포함할 수 있다. 예를 들면, 도 5의 제1 버퍼 셀(B61)의 캐패시턴스는, 제1 버퍼 셀(B61) 및 제1 클락 게이팅 셀(C61)을 상호연결하는 와이어의 캐패시턴스, 제1 클락 게이팅 셀(C61)의 입력 캐패시턴스, 제1 버퍼 셀(B61) 및 제3 버퍼 셀(B63)을 상호연결하는 와이어의 캐패시턴스, 제3 버퍼 셀(B63)의 입력 캐패시턴스를 포함할 수 있다. 캐패시턴스 계산기(162)에 의해서 계산된 캐패시턴스들은 스위칭 전력 계산기(164) 및 내부 전력 계산기(166)에 제공될 수 있다.
일부 실시예들에서, 캐패시턴스 계산기(162)는 클락 네트워크에 포함된 버퍼 셀들의 총 캐패시턴스를 계산할 수 있다. 도 5를 참조하여 전술된 바와 같이, 버퍼 셀들은 클락 신호가 제공되는 동안 클락 신호를 증폭할 수 있으므로, 버퍼 셀들에 의한 소비 전력, 예컨대 스위칭 전력 및 내부 전력은 항상 발생할 수 있다. 이에 따라, 클락 네트워크에 포함된 버퍼 셀들의 총 캐패시턴스가 버퍼 셀들에 의한 소비 전력을 계산하는데 사용될 수 있다. 예를 들면, 버퍼 셀들의 총 캐패시턴스 C_BUFTOT는 아래 [수학식 1]과 같이 계산될 수 있다.
Figure 112018042356609-pat00001
[수학식 1]에서, C_BUFWIRE는 버퍼 셀들의 와이어 부하 캐패시턴스들을 나타내고, C_BUFIN은 버퍼 셀들의 입력 캐패시턴스들을 나타내고, C_CGCIN은 클락 게이팅 셀들의 입력 캐패시턴스들을 나타내며, C_SINKIN은 싱크의 입력 캐패시턴스를 나타낸다.
일부 실시예들에서, 캐패시턴스 계산기(162)는 클락 네트워크에 포함된 클락 게이팅 셀들 각각의 캐패시턴스를 계산할 수 있다. 도 5를 참조하여 전술된 바와 같이, 클락 게이팅 셀들은 인에이블 신호들에 따라 클락 신호를 선택적으로 증폭할 수 있으므로, 일부 실시예들에서 클락 게이팅 셀들 각각의 캐패시턴스들이 개별적으로 계산될 수 있다. 예를 들면, 도 5의 제1 클락 게이팅 셀(C61)의 캐패시턴스 C_CGC1는 아래 [수학식 2]와 같이 계산될 수 있다.
Figure 112018042356609-pat00002
[수학식 2]에서, N_SINKCGC1은 제1 클락 게이팅 셀(C61)로부터 클락 신호가 공급되는 싱크들, 즉 제1 싱크들(S61)의 개수를 나타내고, C_SINKIN은 싱크의 입력 캐패시턴스를 나타내고, C_CGC1WIRE는 제1 클락 게이팅 셀(C61)의 와이어 부하 캐패시턴스, 즉, 제1 클락 게이팅 셀(C61) 및 제1 싱크들(S61)을 상호연결하는 와이어의 캐패시턴스를 나타낸다.
일부 실시예들에서, 클락 네트워크에 포함된 클락 게이팅 셀들 각각은 동일한 캐패시턴스를 가지는 것으로 가정될 수 있고, 이에 따라 계산 복잡도가 감소할 수 있다. 예를 들면, 클락 게이팅 셀의 캐패시턴스 C_CGC는 아래 [수학식 3]과 같이 계산될 수 있다.
Figure 112018042356609-pat00003
[수학식 3]에서, AVG(N_SINGCGC)는 클락 게이팅 셀들 각각으로부터 클락 신호가 공급되는 싱크들의 개수들의 평균을 나타내고, C_CGCTOT는 클락 게이팅 셀의 총 와이어 부하 캐패시턴스를 나타내고, N_CGC는 클락 네트워크에 포함된 클락 게이팅 셀들의 개수를 나타낸다.
스위칭 전력 계산기(164)는 클락 네트워크의 스위칭 전력을 계산할 수 있다. 일부 실시예들에서, 스위칭 전력 계산기(164)는 캐패시턴스 계산기(162)에서 계산된 캐패시턴스들에 기초하여 클락 네트워크의 스위칭 전력을 계산할 수 있다. 예를 들면, 클락 네트워크의 셀의 캐패시턴스가 C이고, 셀에 공급되는 양의 공급 전압이 V인 경우, 셀에 의한 스위칭 전력 PS은 아래 [수학식 4]과 같이 계산될 수 있다.
Figure 112018042356609-pat00004
[수학식 4]에서 f는 클락 신호의 주파수를 나타낸다. 이에 따라, 버퍼 셀들에 의한 스위칭 전력 P_BUFS은 아래 [수학식 5]와 같이 계산될 수 있다.
Figure 112018042356609-pat00005
도 5를 참조하여 전술된 바와 같이, 클락 게이팅 셀에 의한 소비 전력은 인에이블 신호에 좌우될 수 있다. 일부 실시예들에서, 스위칭 전력 계산기(164)는, 집적 회로를 기능 시뮬레이션함으로써 생성된 결과로부터 클락 게이팅 셀이 인에이블된 활성 구간에 대한 정보를 획득할 수 있다. 예를 들면, 제1 클락 게이팅 셀(C61)에 의한 스위칭 전력 P_CGC1S은 아래 [수학식 6]과 같이 계산될 수 있다.
Figure 112018042356609-pat00006
또한 일부 실시예들에서, 일정한 기간에서 제1 클락 게이팅 셀(C61)의 활성 구간, 즉 제1 인에이블 신호(EN1)가 활성화되는 구간이 차지하는 비율이 r1인 경우, 제1 클락 게이팅 셀(C61)에 의한 스위칭 전력 P_CGC1S은 아래 [수학식 7]와 같이 계산될 수 있다.
Figure 112018042356609-pat00007
일부 실시예들에서, [수학식 6] 및 [수학식 7]의 C_CGC1은 [수학식 3]의 C_CGC로 대체될 수도 있다.
내부 전력 계산기(166)는 클락 네트워크의 셀들 내부에서 소비되는 전력, 즉 내부 전력을 계산할 수 있다. 일부 실시예들에서, 내부 전력 계산기(166)는 클락 네트워크의 셀들을 정의하는 셀 라이브러리를 참조할 수 있고, 셀 라이브러리는 셀의 내부 전력에 대한 정보를 포함할 수 있다. 예를 들면, 셀 라이브러리는 다양한 조건들에 대응하는 내부 전력을 정의할 수 있다. 예를 들면, 셀 라이브러리는 입력 신호의 천이 시간, 셀의 부하 캐패시턴스 및 내부 전력으로 구성된 항목을 포함하는 룩업(lookup) 테이블을 포함할 수도 있고, 입력 신호의 천이 시간 및 셀의 부하 캐패시턴스를 인자들로서 가지는 함수를 정의할 수도 있다. 일부 실시예들에서, 내부 전력 계산기(166)는 도 1의 전처리기(140)로부터 클락 신호의 목표 천이 시간(또는 천이 시간 제약)을 수신할 수 있고, 목표 천이 시간을 셀의 내부 전력을 계산하기 위한 입력 신호의 천이 시간으로서 사용할 수 있다. 또한, 내부 전력 계산기(160)는 캐패시턴스 계산기(162)에 의해서 계산된 캐패시턴스들 중 셀의 부하 캐패시턴스를 사용할 수 있다. 이에 따라, 내부 전력 계산기(166)는 클락 네트워크에 포함된 셀들의 내부 전력들을 계산할 수 있다.
스위칭 전력 계산기(164)와 유사하게, 내부 전력 계산기(166)는 집적 회로를 기능 시뮬레이션함으로써 생성된 결과로부터 클락 게이팅 셀이 인에이블된 활성 구간에 대한 정보를 획득할 수 있다. 이에 따라, 일정한 기간에서 제1 클락 게이팅 셀(C61)에 의한 내부 전력 P_CGC1I는 아래 [수학식 8]과 같이 계산될 수 있다.
Figure 112018042356609-pat00008
[수학식 8]에서, P_CGCREF는 셀 라이브러리를 참조하여 획득된, 인에이블된 제1 클락 게이팅 셀(C61)의 내부 전력을 나타낼 수 있다. 스위칭 전력 계산기(164)에 의해서 계산된 스위칭 전력 및 내부 전력 계산기(166)에 의해서 계산된 내부 전력을 합산함으로써 클락 네트워크의 전력이 계산될 수 있다.
도 8 및 도 9는 본 개시의 예시적 실시예들에 따라 클락 네트워크의 소비 전력을 계산하는 방법들을 나타내는 순서도들이다. 구체적으로, 도 8은 클락 네트워크에 포함된 버퍼 셀들에 의한 소비 전력을 계산하는 예시를 나타내고, 도 9는 클락 네트워크에 포함된 클락 게이팅 셀들에 의한 소비 전력을 계산하는 예시를 나타낸다. 도 8의 단계 S800에 의해서 계산된 버퍼 셀들에 의한 소비 전력 및 단계 S900에 의해서 계산된 클락 게이팅 셀들에 의한 소비 전력을 합산함으로써 클락 네트워크의 소비 전력이 계산될 수 있다. 예를 들면, 도 8의 단계 S800 및 도 9의 단계 S900은 도 1의 전력 계산기(160)에 의해서 수행될 수 있다. 이하에서, 도 8 및 도 9에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 8을 참조하면, 버퍼 셀들에 의한 소비 전력을 계산하는 단계 S800은, 복수의 단계들(S810, S820, S830)을 포함할 수 있다. 단계 S810에서, 버퍼 셀들의 총 캐패시턴스를 계산하는 동작이 수행될 수 있다. 도 5 및 도 7 등을 참조하여 전술된 바와 같이, 버퍼 셀들은 클락 신호가 제공되는 동안 클락 신호를 증폭할 수 있으므로, 버퍼 셀들에 의한 소비 전력은 항상 발생할 수 있고, 이에 따라 버퍼 셀들의 총 캐패시턴스가 버퍼 셀들에 의한 소비 전력을 계산하는데 사용될 수 있다. 예를 들면, 버퍼 셀들의 총 캐패시턴스는 [수학식 1]과 같이 계산될 수 있다.
단계 S820에서, 버퍼 셀들의 스위칭 전력을 계산하는 동작이 수행될 수 있다. 예를 들면, 버퍼 셀들의 스위칭 전력은, [수학식 4]와 같이, 단계 S810에서 계산된 총 캐패시턴스, 양의 공급 전압 및 클락 신호의 주파수에 기초하여 계산될 수 있다.
단계 S830에서, 셀 라이브러리(D81)를 참조하여 버퍼 셀들의 내부 전력을 계산하는 동작이 수행될 수 있다. 셀 라이브러리(D81)는 버퍼 셀들의 내부 전력들에 대한 정보를 포함할 수 있고, 내부 전력을 결정하는 인자, 예컨대 입력 신호의 천이 시간 및 버퍼 셀의 부하 캐패시턴스를 사용하여 버퍼 셀들 각각의 내부 전력이 계산될 수 있다. 이에 따라, 단계 S820에서 계산된 버퍼 셀들의 스위칭 전력 및 단계 S830에서 계산된 버퍼 셀들의 내부 전력을 합산함으로써 클락 네트워크의 버퍼 셀들에 의한 소비 전력이 계산될 수 있다.
도 9를 참조하면, 클락 게이팅 셀들에 의한 소비 전력을 계산하는 단계 S900은, 복수의 단계들(S910, S920, S930)을 포함할 수 있다. 단계 S910에서, 클락 게이팅 셀들의 캐패시턴스들을 계산하는 동작이 수행될 수 있다. 도 5 및 도 7 등을 참조하여 전술된 바와 같이, 클락 게이팅 셀들 각각은 인에이블 신호들에 따라 클락 신호를 선택적으로 증폭할 수 있으므로, 클락 게이팅 셀들 각각의 캐패시턴스들이 개별적으로 계산될 수 있다. 예를 들면, 클락 게이팅 셀의 캐패시턴스는 [수학식 2]와 같이 계산될 수 있다. 또한, 일부 실시예들에서, 클락 네트워크에 포함된 클락 게이팅 셀들 각각이 동일한 캐패시턴스를 가지는 것으로 가정될 수도 있고, 예컨대 클락 게이팅 셀들의 캐패시턴스들은 [수학식 3]과 같이 동일하게 계산될 수도 있다.
단계 S920에서, 클락 게이팅 셀들의 활성 구간을 획득하는 동작이 수행될 수 있다. 예를 들면, 클락 네트워크를 포함하는 집적 회로가 기능 시뮬레이션될 수 있고, 이에 따라 클락 게이팅 셀들에 입력되는 인에이블 신호들이 시뮬레이션된 결과가 획득될 수 있다. 활성화된 인에이블 신호에 따라 인에이블된 클락 게이팅 셀의 활성 구간이 획득될 수 있고, 클락 게이팅 셀들 각각의 활성 구간들은 상호 동일할 수도 있고 상이할 수도 있다. 이와 같이, 클락 게이팅 셀들의 활성 구간에 기초하여 클락 게이팅 셀들에 의한 소비 전력이 계산됨으로써, 클락 네트워크의 소비 전력은 정확하게 추정될 수 있다.
단계 S930에서, 셀 라이브러리(D91)를 참조하여 클락 게이팅 셀들의 스위칭 전력 및 내부 전력을 계산하는 동작이 수행될 수 있다. 클락 게이팅 셀의 스위칭 전력 및 내부 전력은, 단계 S920에서 획득된 활성 구간에서 발생할 수 있고, 이에 따라 주어진 기간에서 클락 게이팅 셀들에 의한 스위칭 전력 및 내부 전력이 정확하게 추정될 수 있다. 예를 들면, 클락 게이팅 셀의 스위칭 전력은, [수학식 6] 및 [수학식 7]과 같이, 단계 S920에서 획득된 활성 구간, 단계 S910에서 계산된 클락 게이팅 셀의 캐패시턴스, 양의 공급 전압 및 클락 신호의 주파수에 기초하여 계산될 수 있다. 또한, 클락 게이팅 셀의 내부 전력은 셀 라이브러리(D91)를 참조하여 계산될 수 있고, 예컨대 [수학식 8]과 같이, 단계 S920에서 획득된 활성 구간 및 인에이블된 제1 클락 게이팅 셀(C61)의 내부 전력에 기초하여 계산될 수 있다. 이에 따라, 단계 S930에서 계산된 클락 게이팅 셀들의 스위칭 전력 및 내부 전력을 합산함으로써 클락 네트워크의 클락 게이팅 셀들에 의한 소비 전력이 계산될 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템(300)을 나타내는 블록도이다. 일부 실시예들에서, 도 1의 장치(100)는 도 10의 컴퓨팅 시스템(300)으로 구현될 수 있다. 도 10에 도시된 바와 같이, 컴퓨팅 시스템(300)은 메모리(310), 프로세서(330), 스토리지(350), 입출력 장치들(370) 및 통신 접속들(390)을 포함할 수 있다. 컴퓨팅 시스템(300)에 포함된 구성요소들은, 예컨대 버스를 통해서 상호 통신가능하게 연결될 수 있다.
메모리(310)는 프로그램(312), 셀 라이브러리(314) 및 결과 데이터(316)를 포함할 수 있다. 일부 실시예들에서, 프로그램(312), 셀 라이브러리(314) 및 결과 데이터(316)는 스토리지(350)에 저장될 수 있고, 스토리지(350)에 저장된 프로그램(312), 셀 라이브러리(314) 및 결과 데이터(316) 중 적어도 일부가 메모리(310)에 로딩될 수도 있다. 메모리(310)는, 비제한적인 예시로서, SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory)와 같은 휘발성 메모리를 포함할 수도 있고, 플래시 메모리(flash memory) 등과 같은 비휘발성 메모리를 포함할 수도 있다.
프로그램(312)은 프로세서(330)로 하여금 본 개시의 예시적 실시예들에 따른 집적 회로를 제조하기 위한 방법의 적어도 일부를 수행하도록 할 수 있다. 예를 들면, 프로그램(312)은 프로세서(330)에 의해서 실행가능한(executable) 복수의 명령어들(instructions)을 포함할 수 있고, 프로그램(312)에 포함된 복수의 명령어들이 프로세서(330)에 의해서 실행됨으로써 집적 회로를 제조하기 위한 방법의 적어도 일부가 수행될 수 있다.
셀 라이브러리(314)는 집적 회로에 포함된 셀들을 정의하는 정보를 포함할 수 있고, 예컨대 클락 네트워크에 포함되는 버퍼 셀 및 클락 게이팅 셀에 대한 정보를 포함할 수 있다. 프로그램(312)은 셀 라이브러리(314)에 포함된 정보를 참조함으로써 집적 회로를 제조하기 위한 방법의 적어도 일부를 수행할 수 있다.
결과 데이터(316)는 프로세서(330)에 의해서 처리된 데이터 및/또는 컴퓨팅 시스템(300)의 외부로부터 수신된 데이터를 포함할 수 있다. 예를 들면, 결과 데이터(316)는 도 3의 네트리스트 데이터(D33) 및 레이아웃 데이터(D34) 중 적어도 일부를 포함할 수 있다. 일부 실시예들에서, 결과 데이터(316)는 도 1의 인공 신경망(ANN)으로부터 제공되고 클락 네트워크를 정의하는 출력 데이터(OUT)를 포함할 수도 있고, 클락 네트워크의 추정된 소비 전력에 대한 정보를 포함할 수도 있다.
프로세서(330)는 임의의 명령어 세트(예컨대, IA-32(Intel Architecture-32), 64 비트 확장 IA-32, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64 등)을 실행할 수 있는 적어도 하나의 코어를 포함할 수 있다. 프로세서(330)는 시스템 메모리(310)에 저장된 명령어들을 실행할 수 있으며, 프로그램(312)을 실행함으로써 집적 회로를 제조하기 위한 방법 중 적어도 일부를 수행할 수 있다.
스토리지(350)는 컴퓨팅 시스템(300)에 공급되는 전력이 차단되더라도 저장된 데이터를 소실하지 아니할 수 있다. 예를 들면, 스토리지(350)는 EEPROM(non-volatile memory such as an Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성 메모리를 포함할 수도 있고, 자기 테이프, 광학 디스크, 자기 디스크와 같은 저장 매체를 포함할 수도 있다. 일부 실시예들에서, 스토리지(350)는 컴퓨팅 시스템(300)으로부터 탈착 가능할 수도 있다. 일부 실시예들에서, 스토리지(350)는 프로그램 언어로 작성된 파일을 저장할 수 있고, 파일로부터 컴파일러 등에 의해서 생성된 프로그램(312) 또는 그것의 적어도 일부가 시스템 메모리(310)로 로딩될 수도 있다.
일부 실시예들에서, 스토리지(350)는 프로세서(330)에 의해서 처리될 데이터 및/또는 프로세서(330)에 의해서 처리된 데이터를 저장할 수 있다. 예를 들면, 스토리지(350)는 도 1의 입력 데이터(IN) 및/또는 출력 데이터(OUT)를 저장할 수도 있고, 집적 회로를 제조하기 위한 방법이 수행되는 중에 생성된 데이터, 예컨대 클락 네트워크의 추정된 소비 전력 등을 저장할 수도 있다.
입출력 장치들(370)은 키보드, 포인팅 장치 등과 같은 입력 장치를 포함할 수 있고, 디스플레이 장치, 프린터 등과 같은 출력 장치를 포함할 수 있다. 예를 들면, 사용자는 입출력 장치들(370)을 통해서, 프로세서(330)에 의한 프로그램(312)의 실행을 트리거할 수도 있고, 도 1의 입력 데이터(IN)를 입력할 수도 있고, 도 1의 출력 데이터(OUT) 및/또는 추정된 소비 전력 등을 확인할 수도 있다.
통신 접속들(390)은 컴퓨팅 시스템(300) 외부의 네트워크에 대한 액세스를 제공할 수 있다. 예를 들면, 네트워크는 다수의 컴퓨팅 시스템들 및 통신 링크들을 포함할 수 있고, 통신 링크들은 유선 링크들, 광학 링크들, 무선 링크들 또는 임의의 다른 형태의 링크들을 포함할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 저장 매체(400)를 도시하는 블록도이다. 도 11에 대한 설명 중 도 10에 대한 설명과 중복되는 내용은 생략될 것이다. 저장 매체(400)는 컴퓨터에 명령어들 및/또는 데이터를 제공하는데 사용되는 동안 컴퓨터에 의해 독출될 수 있는 임의의 저장 매체를 포함할 수 있다. 예를 들면, 저장 매체(400)는 디스크, 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 등과 같은 자기 또는 광학 매체, RAM, ROM, 플래시 메모리 등과 같은 휘발성 또는 비휘발성 메모리, USB 인터페이스를 통해서 엑세스 가능한 비휘발성 메모리, 그리고 MEMS(microelectromechanical systems) 등을 포함할 수 있다. 저장 매체(400)는 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.
도 11을 참조하면, 저장 매체(400)는 컴퓨터로 읽을 수 있는 비일시적인(non-transitory) 저장 매체로서, 셀 라이브러리(410), 네트리스트 데이터(420), 프로그램(430) 및 레이아웃 데이터(440)를 포함할 수 있다. 비록 도 11에서, 셀 라이브러리(410), 네트리스트 데이터(420), 프로그램(430) 및 레이아웃 데이터(440)는 하나의 저장 매체(400)에 저장된 것으로 도시되었으나, 일부 실시예들에서 상이한 저장 매체들에 각각 저장될 수도 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치로서,
    상기 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 획득하도록 구성된 전처리기;
    복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 상기 입력 네트리스트 및 상기 적어도 하나의 입력 파라미터를 제공하고, 상기 적어도 하나의 인공 신경망으로부터 상기 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하도록 구성된 신경망 인터페이스; 및
    상기 적어도 하나의 출력 파라미터에 기초하여 상기 클락 네트워크의 소비 전력을 계산하도록 구성된 전력 계산기를 포함하고,
    상기 적어도 하나의 입력 파라미터는, 목표 스큐(skew), 싱크 천이(sink transition) 시간, 면적, 이용률(utilization factor), 종횡비(aspect ratio) 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제1 입력 파라미터를 포함하고,
    상기 신경망 인터페이스는, 상기 제1 입력 파라미터 및 상기 입력 네트리스트에서의 클락 게이팅 셀들의 개수를 제1 인공 신경망에 제공하고, 클락 게이팅 셀들의 추정된 개수를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제1 인공 신경망으로부터 수신하도록 구성된 것을 특징으로 하는 장치.
  2. 청구항 1에 있어서,
    상기 집적 회로를 정의하는 출력 데이터를 생성하도록 구성된 출력 데이터 생성기를 더 포함하고,
    상기 출력 데이터는 상기 집적 회로를 제조하는데 사용되는 마스크에 대한 정보를 포함하는 것을 특징으로 하는 장치.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 적어도 하나의 입력 파라미터는, 목표 스큐, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀들의 싱크 개수들의 평균 중 적어도 하나를 포함하는 제2 입력 파라미터를 포함하고,
    상기 신경망 인터페이스는, 상기 제2 입력 파라미터 및 상기 클락 게이팅 셀들의 추정된 개수를 제2 인공 신경망에 제공하고, 상기 적어도 하나의 출력 파라미터를 수신하는 단계는, 버퍼 셀들의 추정된 개수를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제2 인공 신경망으로부터 수신하도록 구성된 것을 특징으로 하는 장치.
  5. 청구항 4에 있어서,
    상기 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률 및 종횡비 중 적어도 하나를 포함하는 제3 입력 파라미터를 포함하고,
    상기 신경망 인터페이스는, 상기 제3 입력 파라미터, 상기 클락 게이팅 셀들의 추정된 개수 및 상기 버퍼 셀들의 추정된 개수를 제3 인공 신경망에 제공하고, 버퍼 셀들의 추정된 와이어 부하들(wire loads)을 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제3 인공 신경망으로부터 수신하도록 구성된 것을 특징으로 하는 장치.
  6. 청구항 1에 있어서,
    상기 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제4 입력 파라미터를 포함하고,
    상기 신경망 인터페이스는, 상기 제4 입력 파라미터 및 상기 클락 게이팅 셀들의 추정된 개수를 제4 인공 신경망에 제공하고, 클락 게이팅 셀들의 추정된 와이어 부하(wire load)를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제4 인공 신경망으로부터 수신하도록 구성된 것을 특징으로 하는 장치.
  7. 청구항 1에 있어서,
    상기 전력 계산기는,
    상기 클락 네트워크의 버퍼 셀들의 총 캐패시턴스 및 클락 게이팅 셀들의 캐패시턴스들을 계산하는 캐패시턴스 계산기;
    상기 총 캐패시턴스 및 상기 캐패시턴스들에 기초하여, 상기 클락 네트워크의 스위칭 전력을 계산하는 스위칭 전력 계산기; 및
    입력 천이 시간 및 상기 총 캐패시턴스 및 상기 캐패시턴스들에 기초하여, 상기 클락 네트워크의 상기 버퍼 셀들 및 상기 클락 게이팅 셀들의 내부 전력을 계산하는 내부 전력 계산기를 포함하는 것을 특징으로 하는 장치.
  8. 청구항 7에 있어서,
    상기 스위칭 전력 계산기는, 상기 집적 회로의 기능 시뮬레이션 결과로부터 상기 클락 게이팅 셀들이 인에이블된 활성 구간들에 대한 정보를 획득하고, 상기 캐패시턴스들 및 상기 활성 구간들에 기초하여 상기 클락 게이팅 셀들에 의한 스위칭 전력들을 계산하도록 구성된 것을 특징으로 하는 장치.
  9. 청구항 7에 있어서,
    상기 내부 전력 계산기는, 상기 집적 회로의 기능 시뮬레이션 결과로부터 상기 클락 게이팅 셀들이 인에이블된 활성 구간들에 대한 정보를 획득하고, 상기 캐패시턴스들 및 상기 활성 구간들에 기초하여 상기 클락 게이팅 셀들의 내부 전력을 계산하도록 구성된 것을 특징으로 하는 장치.
  10. 컴퓨터에 의해 수행되는 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 방법으로서,
    복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 상기 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계;
    상기 적어도 하나의 인공 신경망으로부터 상기 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 단계; 및
    상기 적어도 하나의 출력 파라미터에 기초하여 상기 클락 네트워크의 소비 전력을 계산하는 단계를 포함하고,
    상기 소비 전력을 계산하는 단계는, 상기 클락 네트워크의 버퍼 셀들의 소비 전력을 계산하는 단계를 포함하고,
    상기 버퍼 셀들의 소비 전력을 계산하는 단계는,
    상기 버퍼 셀들의 총 캐패시턴스를 계산하는 단계;
    상기 총 캐패시턴스 및 양의 공급 전압에 기초하여 상기 버퍼 셀들에 의한 스위칭 전력을 계산하는 단계; 및
    상기 총 캐패시턴스 및 입력 천이 시간에 기초하여 상기 버퍼 셀들의 내부 전력을 계산하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  11. 청구항 10에 있어서,
    상기 집적 회로를 정의하는 출력 데이터를 생성하는 단계; 및
    상기 출력 데이터에 기초하여 제작된 적어도 하나의 마스크를 사용하여 상기 집적 회로를 제조하는 단계를 더 포함하는 집적 회로를 제조하기 위한 방법.
  12. 청구항 10에 있어서,
    상기 적어도 하나의 입력 파라미터는, 목표 스큐(skew), 싱크 천이(sink transition) 시간, 면적, 이용률(utilization factor), 종횡비(aspect ratio) 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제1 입력 파라미터를 포함하고,
    상기 입력 네트리스트 및 상기 적어도 하나의 입력 파라미터를 제공하는 단계는, 상기 제1 입력 파라미터 및 상기 입력 네트리스트에서의 클락 게이팅 셀들의 개수를 제1 인공 신경망에 제공하는 단계를 포함하고,
    상기 적어도 하나의 출력 파라미터를 수신하는 단계는, 클락 게이팅 셀들의 추정된 개수를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제1 인공 신경망으로부터 수신하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 입력 파라미터는, 목표 스큐, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀들의 싱크 개수들의 평균 중 적어도 하나를 포함하는 제2 입력 파라미터를 포함하고,
    상기 입력 네트리스트 및 상기 적어도 하나의 입력 파라미터를 제공하는 단계는, 상기 제2 입력 파라미터 및 상기 클락 게이팅 셀들의 추정된 개수를 제2 인공 신경망에 제공하는 단계를 포함하고,
    상기 적어도 하나의 출력 파라미터를 수신하는 단계는, 버퍼 셀들의 추정된 개수를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제2 인공 신경망으로부터 수신하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  14. 청구항 13에 있어서,
    상기 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 버퍼 천이 시간 제약, 면적, 이용률 및 종횡비 중 적어도 하나를 포함하는 제3 입력 파라미터를 포함하고,
    상기 입력 네트리스트 및 상기 적어도 하나의 입력 파라미터를 제공하는 단계는, 상기 제3 입력 파라미터, 상기 클락 게이팅 셀들의 추정된 개수 및 상기 버퍼 셀들의 추정된 개수를 제3 인공 신경망에 제공하는 단계를 포함하고,
    상기 적어도 하나의 출력 파라미터를 수신하는 단계는, 버퍼 셀들의 추정된 와이어 부하들(wire loads)을 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제3 인공 신경망으로부터 수신하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  15. 청구항 12에 있어서,
    상기 적어도 하나의 입력 파라미터는, 싱크 천이 시간 제약, 면적, 이용률, 종횡비 및 클락 게이팅 셀의 싱크 개수 중 적어도 하나를 포함하는 제4 입력 파라미터를 포함하고,
    상기 입력 네트리스트 및 상기 적어도 하나의 입력 파라미터를 제공하는 단계는, 상기 제4 입력 파라미터 및 상기 클락 게이팅 셀들의 추정된 개수를 제4 인공 신경망에 제공하는 단계를 포함하고,
    상기 적어도 하나의 출력 파라미터를 수신하는 단계는, 클락 게이팅 셀들의 추정된 와이어 부하(wire load)를 포함하는 상기 적어도 하나의 출력 파라미터를 상기 제4 인공 신경망으로부터 수신하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  16. 삭제
  17. 청구항 10에 있어서,
    상기 소비 전력을 계산하는 단계는, 상기 클락 네트워크의 클락 게이팅 셀들의 소비 전력을 계산하는 단계를 포함하고,
    상기 클락 게이팅 셀들의 소비 전력을 계산하는 단계는,
    상기 클락 게이팅 셀들의 캐패시턴스들을 계산하는 단계;
    상기 집적 회로의 기능 시뮬레이션 결과로부터 상기 클락 게이팅 셀들이 인에이블된 활성 구간들을 획득하는 단계; 및
    상기 캐패시턴스들 및 상기 활성 구간들에 기초하여 상기 클락 게이팅 셀들에 의한 스위칭 전력들 및 상기 클락 게이팅 셀들의 내부 전력들을 계산하는 단계를 포함하는 것을 특징으로 하는 집적 회로를 제조하기 위한 방법.
  18. 적어도 하나의 프로세서에 의해서 실행시 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 동작들을 수행하도록 프로그램 명령어들을 저장하는 비일시적 저장 매체로서, 상기 동작들은,
    복수의 샘플 클락 네트워크들에 대응하는 복수의 네트리스트들 및 복수의 파라미터들로부터 학습된 적어도 하나의 인공 신경망에 상기 클락 네트워크를 포함하는 입력 네트리스트 및 적어도 하나의 입력 파라미터를 제공하는 단계;
    상기 적어도 하나의 인공 신경망으로부터 상기 클락 네트워크를 정의하는 적어도 하나의 출력 파라미터를 수신하는 단계; 및
    상기 적어도 하나의 출력 파라미터에 기초하여 상기 클락 네트워크의 소비 전력을 계산하는 단계를 포함하고,
    상기 클락 네트워크의 소비 전력을 계산하는 단계는,
    상기 집적 회로의 기능 시뮬레이션 결과로부터 상기 클락 네트워크의 클락 게이팅 셀들이 인에이블된 활성 구간들을 획득하는 단계; 및
    상기 활성 구간들에 기초하여, 상기 클락 게이팅 셀들에 의한 스위칭 전력들 및 상기 클락 게이팅 셀들의 내부 전력들을 계산하는 단계를 포함하는 것을 특징으로 하는 비일시적인 저장 매체.
  19. 청구항 18에 있어서,
    상기 동작들은,
    상기 집적 회로를 정의하는 출력 데이터를 생성하는 단계; 및
    상기 출력 데이터로부터 상기 집적 회로를 제조하는데 사용되는 적어도 하나의 마스크를 제작하기 위한 데이터를 추출하는 단계를 더 포함하는 것을 특징으로 하는 비일시적인 저장 매체.
  20. 삭제
KR1020180049407A 2018-04-27 2018-04-27 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법 KR102089082B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180049407A KR102089082B1 (ko) 2018-04-27 2018-04-27 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법
US16/121,110 US20190332934A1 (en) 2018-04-27 2018-09-04 Apparatus and method for manufacturing integrated circuit including clock network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180049407A KR102089082B1 (ko) 2018-04-27 2018-04-27 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190125099A KR20190125099A (ko) 2019-11-06
KR102089082B1 true KR102089082B1 (ko) 2020-04-23

Family

ID=68292385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180049407A KR102089082B1 (ko) 2018-04-27 2018-04-27 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US20190332934A1 (ko)
KR (1) KR102089082B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681842B2 (en) * 2020-12-08 2023-06-20 Synopsys, Inc. Latency offset in pre-clock tree synthesis modeling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085232A (ja) 2001-09-10 2003-03-20 Sanyo Electric Co Ltd 集積回路装置のクロック系電力見積り方法
JP2009140222A (ja) * 2007-12-06 2009-06-25 Fujitsu Ltd Lsiの電力見積方法及びその装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2910723B2 (ja) * 1997-04-09 1999-06-23 日本電気株式会社 半導体集積回路の設計支援方法及びその方法を用いたシステム及びその方法を記録した記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085232A (ja) 2001-09-10 2003-03-20 Sanyo Electric Co Ltd 集積回路装置のクロック系電力見積り方法
JP2009140222A (ja) * 2007-12-06 2009-06-25 Fujitsu Ltd Lsiの電力見積方法及びその装置

Also Published As

Publication number Publication date
KR20190125099A (ko) 2019-11-06
US20190332934A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
JP7234370B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
JP6971320B2 (ja) ニューラルネットワークに基づいた回路設計の物理合成
JP5306122B2 (ja) 集積回路設計中の製造の影響の高速シミュレーションを行なうための装置、方法及びコンピュータ・プログラム
Guo et al. A timing engine inspired graph neural network model for pre-routing slack prediction
US9830415B2 (en) Standard cell library, method of using the same, and method of designing semiconductor integrated circuit
JP4728203B2 (ja) 半導体回路のレイアウト方法、プログラム、設計支援システム
Mishra et al. MO-PSE: Adaptive multi-objective particle swarm optimization based design space exploration in architectural synthesis for application specific processor design
US20180261590A1 (en) Integrated circuit and computer-implemented method of manufacturing the same
US11727185B2 (en) System for designing semiconductor device
US11030383B2 (en) Integrated device and method of forming the same
Kashfi et al. Multi-objective optimization techniques for VLSI circuits
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
KR102416490B1 (ko) 와이어의 공정 변이를 고려한 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
TWI604691B (zh) 改善電路效能及/或良率之不確定性感知互連設計
US11748548B2 (en) Hierarchical clock tree implementation
KR102089082B1 (ko) 클락 네트워크를 포함하는 집적 회로를 제조하기 위한 장치 및 방법
Agnesina et al. A general framework for VLSI tool parameter optimization with deep reinforcement learning
US9292648B1 (en) Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit
US10878155B2 (en) System and method for estimating leakage power of circuit design at early stage
US10496764B2 (en) Integrated circuit buffering solutions considering sink delays
US11681848B2 (en) On-the-fly multi-bit flip flop generation
US9721051B2 (en) Reducing clock skew in synthesized modules
US8407632B2 (en) Detecting dose and focus variations during photolithography
US9785736B2 (en) Connectivity-aware layout data reduction for design verification
JP2006024004A (ja) 半導体集積回路の動作検証システム及びその動作検証方法

Legal Events

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