KR20200145672A - 분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링 - Google Patents

분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링 Download PDF

Info

Publication number
KR20200145672A
KR20200145672A KR1020200060355A KR20200060355A KR20200145672A KR 20200145672 A KR20200145672 A KR 20200145672A KR 1020200060355 A KR1020200060355 A KR 1020200060355A KR 20200060355 A KR20200060355 A KR 20200060355A KR 20200145672 A KR20200145672 A KR 20200145672A
Authority
KR
South Korea
Prior art keywords
clock
design
features
clock gate
values
Prior art date
Application number
KR1020200060355A
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 삼성전자주식회사
Publication of KR20200145672A publication Critical patent/KR20200145672A/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/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/35Delay-insensitive circuit design, e.g. asynchronous or self-timed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G06F30/3312Timing analysis
    • 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/396Clock trees
    • 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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/08Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명의 실시 예에 따르면, 집적 회로의 클록 게이트 타이밍 모델링 방법에 있어서, 적어도 2 개의 설계 특징들의 측정 값들 및 클록 게이트 타이밍의 대응하는 측정 값들을 갖는 데이터 셋 생성하는 단계, 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위해 분석 프레임 워크를 데이터 셋에 적용하는 단계, 집적 회로의 클록 트리에 대한 설계 특징들의 값들을 측정하는 단계; 및 설계 특징들이 데이터 셋의 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 집적 회로의 클록 트리에 대한 클록 게이트 타이밍의 예측된 값들을 생성하는 단계를 포함한다.

Description

분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링{CLOCK GATE LATENCY MODELING BASED ON ANALYTICAL FRAMEWORKS}
본 발명은 일반적으로 집적 회로들의 클록 게이트 타이밍 모델링에 관한 것으로, 보다 구체적으로는 클록 트리 빌드(build)들로부터 획득된 트레이닝 데이터 셋(Dataset)들에 기초하여 타이밍 예측들을 생성하는 방법들 및 장치들에 관한 것이다.
클록 트리는 집적 회로 전체에 걸쳐 다양한 서브-시스템 및 소자의 동작을 동기화하기 위해 집적 회로에 클록 신호를 분배하는데 사용된다. 클록 트리는 클록 소스에서 사용 지점까지의 지연인 레이턴시(latency, 대기 시간)을 최소화하고, 집적 회로의 여러 지점에서 클록 도달 시간들 사이의 차이 인 스큐(skew)를 최소화하는 균등화 과정을 통해 설계된다. 설계 과정에서 클록 트리의 많은 변수들은 일반적으로 클록 트리의 타이밍 요구 사항과 제약 조건을 충족시키기 위해 여러 번의 반복을 통해 조정된다. 타이밍 요구 사항 및 제약 조건의 목표가 충족되면 디자인이 타이밍 종결(Timing Closure)을 달성했다고 한다.
클록 트리는 전형적으로 집적 회로의 면적 및 전력 예산의 상당 부분을 소비한다. 예를 들어, 클록 트리는 총 칩 전력의 30 ~ 40 %를 소비할 수 있다. 집적 회로에서 클록 트리에 의해 소비되는 전력량을 감소시키기 위해, 클록 게이팅(Clock Gating)으로 알려진 기술이 사용될 수 있다. 클록 게이팅은 클록 트리의 일부분과 클록 트리의 그 부분에 의해 클록되거나 제어되는 동기화 로직 소자들을 비활성화한다.
본 발명의 목적은 전력 소비 및 칩 면적 증가 없이, 클록 타이밍 종결을 달성하는 방법 및 시스템을 제공하는데 있다.
집적 회로의 클록 게이트 타이밍 모델링 방법은 적어도 2 개의 설계 특징들의 측정 값들 및 클록 게이트 타이밍의 대응하는 측정 값들을 갖는 데이터 셋을 생성하는 단계, 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위해 분석 프레임 워크를 데이터 셋에 적용하는 단계, 집적 회로의 클록 트리에 대한 설계 특징들의 값들을 측정하는 단계, 및 데이터 셋의 설계 특징들이 데이터 셋의 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 집적 회로의 클록 트리에 대한 클록 게이트 타이밍의 예측된 값들을 생성하는 단계를 포함할 수 있다. 집적 회로의 클록 트리는 제 2 클록 트리 및 제 2 빌드의 일부이고, 데이터 셋 생성하는 단계는 제 1 빌드의 일부로 제 1 클록 트리를 구성하는 단계, 제 1 클록 트리의 설계 특징들의 값들을 측정하는 단계, 및 제 1 클록 트리의 클록 게이트 타이밍의 대응하는 값들을 측정하는 단계를 포함할 수 있다.
설계 특징들 및 클록 게이트 타이밍의 값들은 제 1 클록 트리의 물리적 합성 후에 측정될 수 있다. 클록 게이트 타이밍의 예측된 값들을 제 2 클록 트리의 모델에 적용될 수 있다. 클록 게이트 타이밍의 예측된 값들은 제 2 클록 트리의 물리적 합성 전에 제 2 클록 트리의 모델에 적용될 수 있다. 데이터 셋에 분석 프레임 워크를 적용하는 단계는 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 계수들을 결정하는 단계를 포함할 수 있다. 계수들은 개별적인 설계 특징들에 의해 결정될 수 있다. 계수들은 설계 특징들의 조합들에 의해 결정될 수 있다. 설계 특징들의 다른 조합들은 다른 빌드를 위해 사용될 수 있다. 계수들은 특징들의 조합들의 다른 순열에 의해 결정될 수 있다. 설계 특징들의 다른 순열이 다른 빌드를 위해 사용될 수 있다. 분석 프레임 워크는 기계 학습을 포함할 수 있다. 기계 학습은 신경망을 사용할 수 있다. 신경망은 데이터 셋에 대해 훈련될 수 있다. 분석 프레임 워크는 휴리스틱을 포함할 수 있다. 클록 게이트 타이밍의 값들은 레이턴시 값들을 포함할 수 있다. 집적 회로의 클록 트리는 클록 게이트 활성화 경로들을 포함할 수 있다. 설계 특징들은 클록 게이트의 로직 레벨, 클록 게이트의 트랜지티브 팬-아웃의 경계 박스 영역, 클록 소스로부터 클록 게이트의 거리, 클록 게이트부터 클록 게이트의 트랜지티브 팬-아웃의 경계 박스의 중간 지점까지의 거리 중 하나 이상을 포함할 수 있다. 방법은 분석 프레임 워크에 하나 이상의 조정을 적용하는 단계를 더 포함할 수 있다. 하나 이상의 조정들은 클록 게이트에 대한 공정 기술, 클록 게이트 또는 클록 트리에 사용되는 표준 셀 라이브러리, 클록 게이트의 배치, 클록 게이트의 라우팅, 집적 회로를 위한 클록 트리를 설계에 사용되는 툴, 집적 회로를 위한 클록 트리를 분석하는데 사용되는 방법, 집적 회로의 클록 트리에 대한 제약, 다중 소스 클록 트리에 대한 클록 소스의 수 중 하나 이상을 포함할 수 있다.
집적 회로의 클록 게이트 모델링 방법은 제 1 빌드의 일부로서 제 1 클록 트리를 구성하는 단계, 제 1 클록 트리의 설계 특징들의 값들을 측정하고, 제 1 클록 트리의 클록 게이트의 클록 게이트 타이밍의 대응하는 값들을 측정함으로써 제 1 데이터 셋을 생성하는 단계, 및 계수들을 생성하기 위해 분석 프레임 워크를 데이터 셋에 적용하는 단계를 포함할 수 있다. 방법은 계수들을 생성하기 위해 분석 프레임 워크를 제 1 데이터 셋에 반복적으로 적용하는 단계를 더 포함할 수 있다. 방법은 추가 빌드의 일부로서 추가 클록 트리들을 구성하는 단계, 추가 클록 트리들의 설계 특징들의 값들을 측정하여 추가 데이터 셋들을 생성하는 단계, 추가 클록 트리들의 클록 게이트들의 클록 게이트 타이밍의 대응하는 값들을 측정하는 단계, 계수들 생성을 위하여 추가 데이터 셋에 분석 프레임 워크를 적용하는 단계를 포함할 수 있다. 방법은 계수들을 생성하기 위해 분석 프레임 워크를 추가 데이터 셋들에 반복적으로 적용하는 단계를 더 포함할 수 있다. 설계 특징들 및 클록 게이트 타이밍의 값들은 제1 클록 트리의 물리적 합성 후에 측정될 수 있다. 방법은 집적 회로의 클록 트리에 대한 설계 특징들의 값을 측정하는 단계, 계수들과 및 계수들을 생성하는데 사용된 하나 이상의 동일한 설계 특징들 측정된 값들에 기초하여 집적 회로의 클록 트리에 대한 클록 게이트 타이밍의 예측된 값들을 생성하는 단계를 더 포함할 수 있다. 분석 프레임 워크는 기계 학습을 구현할 수 있다.
분석 플랫폼을 포함하는 집적 회로의 클록 게이트 타이밍 모델링 위한 시스템은 적어도 2 개의 설계 특징들의 측정 값들 및 제 1 클록 트리 빌드에 대한 클록 게이트 타이밍의 대응하는 측정 값들을 갖는 데이터 셋에 분석 프레임 워크를 적용하도록 구성된 분석 플랫폼을 포함할 수 있다. 분석 프레임 워크는 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 계수들을 생성하고, 계수들 및 계수들을 생성하는데 사용된 하나 이상의 동일한 설계 특징들의 측정된 값들에 기초하여 제 2 클록 트리 빌드에 대한 클록 게이트 타이밍의 예측된 값들을 생성할 수 있다. 시스템은 설계 특징들의 조합을 선택하도록 구성된 사용자 인터페이스를 포함할 수 있다. 사용자 인터페이스는 설계 특징들의 조합의 순열을 선택하도록 구성될 수 있다. 분석 플랫폼은 클록 게이트 타이밍의 예측된 값들을 EDA 플랫폼의 클록 트리 구성 워크 플로우에 제공하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 클록 트리 빌드로부터 획득된 트레이닝 데이터 셋(Dataset)에 기초하여 타이밍을 예측하는 방법 및 시스템을 제공된다.
도면은 반드시 축척대로 도시 된 것은 아니며 유사한 구조 또는 기능의 요소는 일반적으로 도면 전체에 걸쳐 예시적인 목적을 위해 유사한 참조 번호로 표시된다. 도면은 본 명세서에 기술된 다양한 실시 예의 설명을 용이하게 하도록 의도된다. 도면은 본 발명의 모든 측면을 설명하지 않으며 청구 범위의 범위를 제한하지 않는다. 첨부 도면은 본 발명의 예시적인 실시 예를 예시하고, 상세한 설명과 함께 본 발명의 실시 예를 설명하는 역할을 한다.
도 1은 집적 클록 게이트와 관련된 타이밍 문제를 예시할 수 있는 종래의 클록 트리의 일부의 회로도이다.
도 2는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하는 방법의 실시 예를 도시한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 트레이닝 프로세스의 입력/출력 흐름을 도시한다.
도 4는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 예측 프로세스의 입력/출력 흐름을 도시한다.
도 5는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 트레이닝 프로세스의 일 실시예의 입력/출력 흐름을 도시한다.
도 6은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 예측 프로세스의 또 다른 실시예의 입력/출력 흐름을 도시한다.
도 7은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 시스템의 블록도이다.
도 8은 본 발명의 실시 예에 따른 임의의 방법 및 프로세스에서 사용하기 위해 설계 특징들의 다양한 순열(배열) 및 조합들이 어떻게 선택될 수 있는지를 도시한다.
도 9는 본 발명의 실시 예에 따른 트레이닝 프로세스에서 사용하기 위해 측정될 수 있는 예시적인 설계 특징들을 도시한 클록 트리의 일부의 예시적인 실시 예를 도시한다.
도 10은 본 발명의 실시 예에 따른 설계 특징들의 측정된 값들 및 클록 게이트 레이턴시들의 대응하는 측정 값들을 나타내는 데이터 셋을 도시한다.
도 11은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 워크 플로우의 보다 상세한 예시적인 실시 예의 흐름도이다.
도 12는 종래 기술 및 본 발명의 실시 예에 따른 하나 이상의 기술에 의해 획득될 수 있는 상대적인 결과의 예를 도시한다.
도 13 및 도 14는 본 발명의 실시 예에 따른 심층 신경망의 다중 반복을 사용하여 획득될 수 있는 상대적인 결과의 예를 도시한다.
도 15는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 도시한다.
클록 트리의 일부 및 이들이 제어하는 동기화 논리 회로를 비활성화하기 위해, 클록 게이팅은 전형적으로 ICG(Integrated Clock Gates)라 불리는 클록 게이트 회로를 사용함으로써 구현될 수 있다. 도 1을 참조하면, 클록 트리의 일부는 버퍼들의 스트링(10)을 포함하는 제 1 분기를 포함할 수 있다. 제1 분기는 제 1 클록 신호(CLK1)에 응답하여 플립플롭(FF1, 12)으로 도시 된 동기화 회로 소자를 클록킹할 수 있다. 클록 트리의 제 2 분기는 제 1 클록 버퍼들의 스트링(16)과 제 2 클록 버퍼들의 스트링(18) 사이에 연결된 ICG(14)를 포함할 수 있다. 제 2 분기는 제 2 클록 신호(CLK2)에 응답하여 플립플롭(FF2, 20)으로 도시 된 동기화 회로 소자를 클록킹할 수 있다. 제 1 및 제 2 클록 신호 (CLK1, CLK2)는 직접 또는 다른 분기를 통해 공통 소스 클록으로부터 도출될 수 있으며, 도 1의 목적을 위해 효과적으로 동기화되는 것으로 간주될 수 있다.
상술한 바와 같이, 클록 트리는 클록 트리의 각 분기를 통한 레이턴시를 동일하게 하려는 균등화 과정을 통해 설계될 수 있어서, 클록 신호의 천이가 클록에 의하여 동기화되는 각 동기화 회로 소자에서 본질적으로 동일한 시간에 도달하게 한다. FF1(12) 및 FF2(20)와 같은 일반적인 동기화 로직 소자들에 대한 클록 타이밍을 수렴 또는 균형을 맞추는 것이 비교적 간단 할 수 있는데, FF1(12) 및 FF2(20)은 대부분의 다른 동기화 로직 소자들과 동시에 클록킹되는 것을 오직 필요로 할 수 있는 위치들, 즉 전체 클록 사이클(즉, 정상 클록 엣지들)의 종단에 있을 수 있다. 집적 회로는 일반적으로 전자 설계 자동화(Electronic Design Automation; EDA) 플랫폼에서 설계될 수 있다. 전자 설계 자동화(EDA) 플랫폼은 타이밍 분석을 위한 다양한 툴, 클록 트리 합성(Clock Tree Synthesis; CTS) 및 클록 신호를 FF1(12) 및 FF2(20)과 같은 일반적인 로직 소자에 클록 신호를 구성하고 동기화하는 데 능한 많은 다른 기능을 포함할 수 있다.
그러나, ICG(14)의 타이밍은 수렴하기가 더 어려울 수 있다. 왜냐하면, 정상 클록 엣지들 사이에서 발생하는 시간에 클록킹 될 필요가 있기 때문이다. 예를 들어, 도 1의 ICG(14)는 활성화 신호(EN)에 의해 제어될 수 있다. 활성화 신호(EN)는 일반적인 클록 엣지에서 FF1(12)의 출력에서 비롯되고, 조합 로직(22)을 통해 전파되어 정상 클록 엣지들 사이에 있을 수 있는 시간에 ICG(14)의 활성화 신호(EN) 입력으로 도달 할 수 있다. 더욱이, 제 2 분기점에서 제2 클록 신호(CLK2)에 상대적으로 가깝게 위치한 ICG(14)의 위치로 인해, 클록 신호는 버퍼들의 스트링(10) 전체를 포함하는 제 1 분기점을 통한 전체 경로로 전파되는 FF1(12)에 도달하는 클록 신호보다 상당히 빨리 ICG(14)에 도달할 수 있다. 따라서, 클록 게이트 활성화 셋업 타이밍은 수렴하기 어려울 수 있다. 클록 레이턴시가 상당히 클 수 있는 다중 소스 CTS (Multi-Source CTS; MSCTS) 및 단일 포인트 CTS의 경우 특히 클록 게이트 활성화 셋업 타이밍이 수렴하기 어려울 수 있다. EDA 플랫폼에서 사용 가능한 툴은 이러한 어려움을 효과적으로 처리하지 못할 수 있다. 클록 트리 레이턴시를 위한 정확한 모델링 툴이 없기 때문에 이러한 문제가 악화될 수 있다.
클록 게이트 레이턴시를 모델링 위한 하나의 일반적인 기술은 일괄 ICG 전이 팬-아웃(bracketed ICG transitive fan-outs)에 기초한 간단한 룩-업 테이블(look-up table)을 사용하는 것이다. 예를 들어, 룩-업 테이블은 종단 지점 팬 아웃이 1-49 인 클록 게이트에 대해 레이턴시 0.92ns, 50-99의 팬 아웃에 대해 레이턴시 0.82ns, 100-499의 팬 아웃의 경우 레이턴시 0.72ns, 500-1999의 팬 아웃의 경우 레이턴시 0.65ns, 2000-9999의 팬 아웃의 경우 레이턴시 0.58ns, 10000-19999의 팬 아웃에 대해 레이턴시 0.46ns, 20000 이상의 팬 아웃의 경우 레이턴시 0.4 ns 지정할 수 있다. 그러나 이러한 수치는 대부분의 경우 지나치게 낙관적이거나 비관적 일 수 있으며 매우 정확한 경우는 거의 없다.
클록 게이트 활성화 경로 타이밍을 고정 하기위한 다른 일반적인 툴 및 기술은 ECO(Engineering Change Order) 모드 동안 다수의 반복을 요구할 수 있으며, 이는 전형적인 물리적 설계 흐름(physical design flow)에서 늦을 수 있고 따라서 설계 완료에 부정적인 영향을 미칠 수 있다.
다른 기술은 클록 게이트를 복제하는 것이다. 클록 게이트를 클록 트리 더 아래로 밀어내어 일반 로직 셀에 더 가까워지면서, 클록 타이밍이 수렴하기 쉽게 레이턴시 타이밍 문제가 덜 심각할 수 있다. 그러나 이 기술은 활성화 타이밍이 더욱 위태로워질 수 있다. 더욱이, 복제된 클록 게이트 셀은 더 많은 전력 및 칩 면적을 소비하여 더 큰 라우팅 혼잡을 초래할 수 있다.
다른 기술은 클록 게이트 레이턴시를 평가하기 위해 시험 CTS 실행을 이용하는 것이다. 그러나 이 기술은 더 많은 런타임이 필요할 수 있으며 이는 설계 완료에 부정적인 영향을 줄 수 있다.
기존의 모델링 기술을 이용하면, CTS 이후까지 클록 게이트 활성화 타이밍 경로를 수렴하려는 시도가 불가능 할 수 있다. CTS 이후 시점에서는 이용 가능한 로직 재구성의 범위가 제한될 수 있고, 클록 경로는 불변이 될 수 있으며, 클록 게이트 활성화 경로를 수렴하는 것이 너무 늦을 수 있다. 따라서, 클록 게이트 레이턴시를 보다 정확하게 모델링하는 능력을 갖는 것은 클록 설계자가 초기에 임계 클록 게이트 활성화 경로를 조기에 식별할 수 있게 할 수 있다. 이 시기는 예를 들어, EDA 플랫폼의 최적화 툴이 로직 재구성 및 기타 기술을 통해 클록 게이트 경로를 더 잘 최적화할 수 있는 때인 최초의 물리적 합성과 같은 가능한 이른 시기이다.
도 2는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 방법의 실시 예를 도시 한 흐름도이다. 시작인 110 단계에서, 제 1 클록 트리 빌드(구축)에 대한 적어도 두 개의 설계 특징들의 측정 값들 및 클록 게이트 타이밍의 대응하는 측정 값들을 포함하는 데이터 셋을 생성할 수 있다. 예를 들어, 가능한 설계 특징들은 클록 게이트의 논리 레벨, 트랜지티브 팬-아웃(transitive fanout), 트랜지티브 팬-아웃의 경계 박스(bounding box) 영역, 가장 가까운 클록 분배 종단과의 거리, 및 클록 게이트로부터 경계 박스의 중간지점까지의 거리와 같은 전기적, 물리적, 또는 타이밍 특징들을 포함할 수 있다. 예를 들어, 클록 게이트 타이밍은 ICG에 대한 레이턴시일 수 있다. 112 단계에서, 제 1 빌드의 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위해 분석 프레임 워크는 데이터 셋에 적용될 수 있다. 예를 들어, 분석 프레임 워크는 신경망 및 기타 휴리스틱(heuristics)과 같은 기계 학습을 포함할 수 있다. 114 단계에서, 물리적 합성을 위한 모델링의 대상일 수 있는 제 2 클록 트리 빌드에 대한 설계 특징들의 값들을 측정할 수 있다. 116 단계에서, 제 2 빌드에 대한 클록 게이트 타이밍의 예측된 값들은 제 1 빌드의 설계 특징들이 제 1 빌드의 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 생성될 수 있다. 118 단계에서, 클록 게이트 타이밍의 예측된 값들은 제 2 빌드를 위한 클록 트리를 모델링하기 위해 사용될 수 있다. 클록 게이트 타이밍의 예측된 값들을 사용하는 모델은 예를 들어, 물리적 최적화, 타이밍 종결 및/또는 RTL(Register Transfer Level) 피드백을 구동하기 위해 사용될 수 있다.
도 3은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 트레이닝 프로세스의 입력/출력 흐름을 도시한다. 도 3을 참조하면, 분석 프레임 워크(126)는 하나 이상의 데이터 셋들(120)을 분석할 수 있다. 데이터 셋들(120) 각각은 하나 이상의 클록 트리 빌드에 대한 적어도 2 개의 설계 특징들의 측정 값들(122) 및 레이턴시와 같은 클록 게이트 타이밍의 대응하는 측정 값들(124)을 포함할 수 있다. 이 분석에 기초하여, 분석 프레임 워크(126)는 하나 이상의 계수들(128)을 생성할 수 있다. 동일하거나 다른 빌드에서 클록 게이트 타이밍의 예측을 생성하기 위하여, 계수들(128)은 위와 같은 빌드에서 클록 게이트의 측정된 특징들에 적용될 수 있다. 분석 프레임 워크(126)는 하나 이상의 클록 트리 빌드의 설계 특징들이 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위하여 임의의 유형의 프로세스를 구현할 수 있다. 여기에는 트리 검색, 문제 단순화 등과 같은 휴리스틱을 포함한 학습 기술과 신경망 (예를 들어, 심층 신경망, 컨볼루션 신경망), 결정 트리 등의 기계 학습 기술이 포함될 수 있다.
분석 프레임 워크(126)는 하드웨어, 소프트웨어 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 예를 들어, EDA 플랫폼은 전용 워크 스테이션, (클라우드 기반) 서비스로서 소프트웨어, 또는 임의의 구성의 조합으로 실현될 수 있고, 분석 프레임 워크(126)는 EDA 플랫폼에서의 툴의 일부로서 구현될 수 있다. 예시적인 실시 예에서, 분석 프레임 워크(126)는 본 발명에서 설명된 기능들 중 임의의 것을 수행하기 위해 데이터를 수신, 분석, 생성 및/또는 출력하는 하드웨어 및/또는 소프트웨어의 임의의 조합을 사용하여 EDA 플랫폼과 별개의 시스템으로서 구현될 수 있다. 분석 프레임 워크(126)에 의해 사용되거나 생성된 데이터 셋, 계수 및 임의의 다른 데이터는 사용자에 의해 수동으로, EDA 플랫폼으로의 인티그래이션(Integration)에 의해 자동으로, 또는 이들의 조합에 의해 처리될 수 있다. 이들은 인터커넥트(interconnect)의 임의의 형태를 통한 데이터 스트림(data stream)뿐만 아니라 자기, 고체 상태 등을 포함한 임의의 매체상의 파일과 같은 임의의 적합한 형태를 취할 수 있다.
예시적인 실시 예에서, 분석 프레임 워크(126)는 계수 및/또는 그 결과를 점진적으로 개선 또는 정제하기 위해 반복적인 방식으로 동작 할 수 있다. 반복은 더 넓은 범위의 입력 값들을 포함하는 결과를 생성하기 위해 사용자 또는 자동화된 프로세스에 의해 제공될 수 있는 상이한 데이터 셋에 기초할 수 있다. 예를 들어, 반복은 또한 동일한 데이터 셋에 기초할 수 있는데, 더 좁은 범위의 입력 값에 대해 결과인 계수들을 더 정제하기 위해 각 반복에서 파라미터를 개선할 수 있다.
계수들은 본 발명의 실시예에 따라 매우 광범위한 형태로 생성될 수 있다. 예를 들어, 계수들은 수학적인 계수들의 (1 차원) 리스트로서 구현될 수 있으며, 여기서 각각의 계수들은 클록 트리 특징의 대응하는 측정된 값들에 곱해 질 수 있고, 그 곱의 결과는 다중 출력 값들로 사용되거나 추후에 예측 작업을 위한 단일 최종 값을 제공하기 위해 합산될 수 있다. 다른 예로써, 계수들은 계수들의 다차원 매트릭스로서 구현될 수 있다. 계수들의 다차원 매트릭스는 클록 트리 특징들의 측정된 값들에 중간 값과의 다양한 조합으로 곱해질 수 있다. 이러한 곱의 중간 값은 최종 값으로 사용되거나 다양한 합산 연산을 통해 결합되어 하나 이상의 최종 결과를 제공할 수 있다. 계수들은 또한 다른 유형들의 계수들과 함께 또는 대안으로 작동하는 다른 덜 선형적이고 덜 수학적이고 더 질적 인 형태를 취할 수 있다. 예를 들어, 계수들은 불(Boolean) 형식을 가질 수 있다. 특정 상황에서 특정 다른 입력들 또는 설계 특징들을 무시하거나, 현재 또는 미래의 분석에서 사용되는 특징들의 특정 조합 및/또는 순열을 지시하거나 제안하기 위해서, 불 형식은 나중의 예측 연산을 지시할 수 있다. 따라서, 예시적인 실시 예에서, 계수들은 임의의 정보의 형식을 취할 수 있다. 이 정보의 형식은 설계 특징들의 측정된 값들과 설계 특징들이 클록 게이트 타이밍에 미치는 영향 사이의 관계에 대해 배운 것을 클록 게이트 타이밍에 대한 예측을 하기위한 정보를 사용할 수 있는 프로세스에 전달하는데 유용할 수 있다.
도 4는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 예측 프로세스의 입력/출력 흐름을 도시한다. 도 4를 참조하면, 예측 프레임 워크(134)는 클록 게이트에 대한 예측된 타이밍 값들(136)을 생성하기 위해 설계 특징들의 하나 이상의 측정된 값들(132)에 계수들(130)을 적용할 수 있다. 계수들(130)은 도 3의 분석 프레임 워크(126)에 의해 생성된 계수들(128) 일 수 있거나, 또는 임의의 다른 적합한 소스를 통해 얻어질 수 있다. 예측된 타이밍 값들(136)은 대상 클록 트리에 대한 설계 흐름의 임의의 지점에서 클록 게이트를 모델링하는데 사용될 수 있다.
예측 프레임 워크(134)는 계수들(130)을 설계 특징들의 측정된 값들(132)에 적용하기 위해 임의의 적절한 공식, 방정식, 논리, 프로세스, 방법 등을 사용할 수 있다. 예시적인 실시 예에서, 클록 게이트들에 대한 예측된 타이밍 값들(136)을 점진적으로 개선 또는 정제하기 위하여, 예측 프레임 워크(134)는 반복적인 방식을 수행할 수 있다. 예를 들어 반복은 사용자 또는 자동화된 프로세스에 의해 제공될 수 있는 계수들의 상이한 셋에 기초할 수 있다.
예시적인 실시 예에서, 계수들의 상이한 셋을 생성 또는 이전에 생성된 계수들의 셋들을 개선 및/또는 정제하기 위하여, 예측된 타이밍 값들(136)의 사용으로 인한 클록 게이트의 임의의 물리적 설계의 측정된 타이밍 값들은 도 3의 트레이닝 프로세스에 대한 입력 데이터 셋들(120)로 사용될 수 있다.
도 3의 실시 예와 같이, 도 4의 예측 프레임 워크(134)는 하드웨어, 소프트웨어 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 계수들(130), 설계 특징들의 측정 값들(132) 및 예측 프레임 워크(134)에 의해 사용되거나 생성된 임의의 다른 데이터는 임의의 형태의 인터커넥트를 통한 데이터 스트림뿐만 아니라 자기, 고체 상태 등을 포함하는 임의의 매체상의 파일과 같은 임의의 적절한 형태를 취할 수 있다.
도 5는 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 트레이닝 프로세스의 또 다른 실시예의 입력/출력 흐름을 도시한다. 도 5의 실시 예는 도 3의 실시 예와 유사하지만, 분석 프레임 워크(126)에 또는 분석 프레임 워크(126)를 통해 적용될 수 있는 조정들(127)을 추가할 수 있다. 조정들(127)은 설계 특징들에 영향을 미치는 임의의 인자들과 설계 특징들이 생성된 계수들에 미칠 수 있는 효과에 기초할 수 있다. 예를 들어, 조정들(127)은 임의의 클록 게이트를 제조하는데 사용될 수 있는 공정 기술; 클록 게이트에 사용될 수 있는 표준 셀 라이브러리 (예를 들어, 상이한 클록 버퍼 설계는 다른 것보다 빠르거나 느릴 수 있음), 배치 및/또는 라우팅 세부 사항 (예를 들어, 금속선의 전기적 및/또는 물리적 특성); 트레이닝 빌드 및/또는 대상 빌드에서 클록 트리를 설계하는데 사용될 수 있는 타이밍 또는 다른 툴 (예를 들어, 컴파일러, 정적 타이밍 분석기 등); 클록 트리를 구축 및/또는 분석하는데 사용되는 방법 (예를 들어, 클록 트리 합성(CTS), 다중 소스 CTS (MSCTS), 클록 메시 등); 제약 (예를 들어, 임의의 버퍼는 최대 4 개의 다른 버퍼를 구동 할 수 있음); 다중 소스 클록 트리에 대한 클록 소스의 개수; 및 디자인 특징 및/또는 그 특징들의 타이밍에 영향을 줄 수 있는 다른 소자를 포함할 수 있다. 조정들(127)의 또 다른 예는 분석을 위한 입력 및/또는 계수들로 사용하기 위해서 설계 특징들의 조합 및/또는 순열을 선택하는 것을 포함할 수 있다.
분석 프레임 워크(126)를 통해 조정들(127)을 적용하는 것에 더하여, 또는 대안으로, 조정들(127)의 일부 또는 전부는 적어도 2 개의 설계 특징들의 측정 값들(122) 및 클록 게이트 타이밍의 대응하는 측정 값들(124)을 포함하는 데이터 셋들(120)에 직접 적용될 수 있다. 조정들(127)은 또한 계수들(128)에 직접 적용될 수 있다. 조정들(127)은 사용자에 의해 수동으로, EDA 플랫폼으로의 인티그레이션에 의하여 자동으로, 또는 이들의 조합에 의해 처리될 수 있다. 이들은 임의의 형태의 인터커넥트를 통한 데이터 스트림뿐만 아니라 자기, 고체 상태 등을 포함한 임의의 매체상의 파일과 같은 임의의 적합한 형태를 취할 수 있다.
도 6은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 예측 프로세스의 또 다른 실시예에 대한 입력/출력 흐름을 도시한다. 도 6의 실시 예는 도 4의 실시 예와 유사 할 수 있지만, 예측 프레임 워크(134)에 또는 예측 프레임 워크(134)를 통해, 및/또는 계수들 (130) 또는 예측된 클록 게이트 타이밍(136)에 직접 적용될 수 있는 조정들(135)을 추가할 수 있다. 조정들(135)은 설계 특징들에 영향을 미치는 임의의 인자들과 설계 특징들이 생성된 계수들에 대하여 가지는 효과에 기초할 수 있다. 조정들(135)은 도 5의 트레이닝 프로세스와 관련하여 상술된 임의의 예들을 포함할 수 있다. 조정들(135)은 사용자에 의해 수동으로, EDA 플랫폼의 인티그레이션에 의해 자동으로, 또는 이들의 조합으로 처리될 수 있다. 이들은 임의의 형태의 인터커넥트를 통한 데이터 스트림뿐만 아니라 자기, 고체 상태 등을 포함한 임의의 매체상의 파일과 같은 임의의 적합한 형태를 취할 수 있다.
도 7은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 시스템의 블록도이다. 예를 들어, 도 7의 시스템은 본 발명에서 설명된 방법 중 임의의 것 또는 모두를 구현하기 위해 사용될 수 있다.
도 7의 시스템은 분석 프레임 워크(126) 및 예측 프레임 워크(134)를 구현하기 위해 사용될 수 있는 분석 플랫폼(138)을 포함할 수 있다. 사용자 인터페이스(140)는 클록 설계자가 예를 들어, 배치(batch) 모드, 대화형(interactive) 모드 또는 이들의 조합에서 명령들(146)을 입력할 수 있게 할 수 있다. 사용자 인터페이스(140)는 또한 설계자가 트레이닝 및/또는 예측 프로세스에 사용하기 위해 특징들의 순열 및/또는 조합들(142)을 선택하고, 상술한 임의의 조정 들(144)을 입력 및/또는 수정할 수 있게 한다. 예를 들어, 상이한 빌드들에 대해 설계 특징들의 상이한 순열 및 조합이 사용될 수 있다. 분석 플랫폼(138)은 계수들을 생성하기위한 입력으로서, 후술하는 바와 같이 EDA 플랫폼에 의해 제공될 수 있는 과거(historical) 데이터 셋들(150)을 사용할 수 있다. 부가적 또는 대안으로, 데이터 셋들(150)은 임의의 적합한 형태로 사용자에 의해 제공될 수 있다. 사용자 분석 플랫폼(138) 및 사용자 인터페이스(140) 중 하나 또는 둘 모두는 하드웨어, 소프트웨어 또는 이들의 임의의 적절한 조합으로 구현될 수 있다.
도 7은 임의의 또는 모든 소자 및/또는 워크 플로우가 구현될 수 있는 EDA 플랫폼(148)과 관련하여 도시되어 있지만, 본 발명의 실시 예는 임의의 특정 플랫폼에서의 구현으로 제한되지 않는다. EDA 플랫폼(148)은 플로어 플래닝, 파티셔닝, 배치, 클록 트리 합성, 라우팅, 타이밍 분석 등을 포함하는 물리적 설계를 위한 일반적인 기능을 수행할 수 있는 집적 회로 설계 툴을 포함할 수 있다. 일부 구현들에서, 도 7에 도시 된 분석 플랫폼(138) 및/또는 입력/출력 흐름은 EDA 플랫폼(148)과 별개로 수행될 수 있다. 또 다른 구현들에서, 도 7의 분석 플랫폼(138)의 일부 또는 전부 및/또는 입력/출력 흐름뿐만 아니라 본 발명에서 설명된 방법, 워크 플로우, 프로세스 등의 일부 또는 모두는 EDA 플랫폼(148)의 하나 이상의 툴 또는 임의의 다른 적절한 설계 플랫폼 및/또는 툴에 통합될 수 있다.
도 8은 본 발명의 실시 예에 따른 임의의 방법 및 프로세스에서 사용하기 위해 설계 특징들의 다양한 순열 및 조합들이 어떻게 선택될 수 있는지를 도시한다. 하나 이상의 트레이닝 프로세스동안 계수들을 생성하기 위해 트레이닝 데이터 셋들에서 사용하기 위해, 사용자에 의해 설계 특징들의 순열 및 조합들이 수동으로 선택될 수 있다. 새로운 클록 트리를 구축할 때 사용을 위하여, 사용자가 수동으로 설계 특징들의 순열 및 조합들을 선택할 수 있다. 트레이닝 중에 사용된 설계 특징들의 순열 및 조합들은 모델링 위해 학습된 계수들을 사용하는 후속 빌드 중에 사용된 순열 및 조합들과 반드시 동일할 필요는 없을 수 있다. 예를 들어, 결과의 내부 분석, 결과에 대한 사용자로부터의 피드백, 및 다양한 빌드에 대해 다소 중요 할 수 있는 특징들과 관련된 사용자로부터의 입력 등에 기초하여, 설계 특징들의 순열 및 조합들은 또한 분석 플랫폼(138)에서의 하나 이상의 프로세스에 의해 자동으로 선택될 수 있다.
도 9는 본 발명의 실시 예에 따른 트레이닝 프로세스에서 사용하기 위해 측정될 수 있는 예시적인 설계 특징들을 도시한 클록 트리의 일부의 예시적인 실시 예를 도시한다. 이 예에서, H-트리 토폴로지를 사용하는 클록 분배 네트워크(170)는 클록 신호를 클록 소스로부터 종단들(172A, 172B, 172C 및 172D)로 분배할 수 있다. 클록 분배 네트워크(170)의 종단들은 로컬 클록 트리에 대한 로컬 클록 소스 또는 탭 포인트(tap point)로서 사용될 수 있다. 로컬 클록 트리는 집적 회로 칩의 디바이스 레벨에서 클록 신호를 사용 지점으로 분배할 수 있다. 도 9는 제 1 클록 게이트(174), 제 1 클록 게이트(174)의 하류에 배열된 제 2 클록 게이트(176), (각각 3 개의 플립플롭을 포함하는) 3 개의 레지스터들(178, 180 및 182)(이들 모두는 제 2 클록 게이트(176)의 하류이며, 그리고 제 2 클록 게이트(176)로 부터의 팬 아웃일 수 있음)을 포함하는 로컬 클록 트리의 일부를 도시한다. 경계 박스(184)는 클록킹이 제 2 클록 게이트(176)에 의해 제어되는 3 개의 레지스터 그룹(178, 180 및 182)을 포함하며, 모든 클록 싱크들(clock sinks)에 의해 점유 될 수 있는 영역을 도시한다.
도 9에 도시 된 로컬 클록 트리의 일부는 신호 경로들에 버퍼 및/또는 인버터와 같은 다른 구성 소자들을 포함할 수 있다. 예를 들어 로컬 클록 소스 (172D)와 제 1 클록 게이트(174) 사이, 제 1 클록 게이트(174)와 제 2 클록 게이트(176) 사이, 및 제 2 클록 게이트(176)와 3 개의 레지스터들(178, 180 및 182)사이뿐만 아니라 경계 박스(184) 내의 임의의 다른 게이트 동기화 회로 소자들 사이에 버퍼 스트링이 존재할 수 있다. 그러나, 이들 추가된 소자들은 도면 세부 사항에 의해 가려지는 것을 방지하기 위해 도시되지 않았다.
이 예시적인 실시 예에서, 제 2 클록 게이트(176)의 다음 특징들은 제 2 클록 게이트(176)의 타이밍에 대한 그 특징들의 영향을 결정하기 위해 측정될 수 있다.
(1) 클록 게이트의 논리(로직) 레벨. 이 예에서, 로컬 클록 소스(172D)와 클록 게이트(176) 사이에 하나의 로직 레벨(클록 게이트 (174))이 있기 때문에 로직 레벨은 2일 수 있다.
(2) 클록 게이트의 트랜지티브 팬-아웃. 트랜지티브 팬-아웃은 전형적으로 다른 레벨들의 로직을 직접 또는 간접적으로 통해 클록 게이트(176)에 의해 제어되는 클록 신호를 수신하는 (동기화 된) 모든 클록 회로 소자의 총 수를 포함할 수 있다. 이 예에서, 팬-아웃은 9로 표시될 수 있다. (세 개의 레지스터 178, 180 및 182 각각에 3 개의 플립플롭)
(3) 클록 게이트의 팬-아웃 콘(cone)을 둘러싸는 경계 박스(184)의 영역. 이것은 클록 게이트(176)에 의해 다른 레벨들의 로직을 직접 또는 간접적으로 통해 클록 게이트(176)에 의해 제어되는 클록 신호를 수신하는 (동기화 된) 모든 클록 회로 소자에 의해 점유된 집적 회로 칩 영역의 측정치 일 수 있다.
(4) 로컬 클록 소스(172D)로부터 클록 게이트(176)까지의 거리. 도 9에서 화살표(186)가 직선으로 도시되어 있지만, 예시적인 실시 예에서 이것은 로컬 클록 소스(172D)로부터 클록 게이트(176) 사이의 맨해튼 거리(Manhattan distance)로서 실현될 수 있다. 맨해튼 거리는 서로 직각으로 정렬된 직선 구간을 포함하는 경로를 따라 측정되는 두 지점 사이의 거리 일 수 있는데, 이는 집적 회로에서의 배선이 그러한 직각 경로를 따라 배치되는 경향이 있기 때문이다. 대안으로, 유클리드 거리 또는 다른 거리가 사용될 수 있다.
(5) 화살표(188)로 도시 된 바와 같이, 클록 게이트(176)로부터 클록 게이트의 팬-아웃 콘을 둘러싸는 경계 박스(184)의 중간 점까지의 거리. 거리는 또한 도 9에 직선으로 도시되어 있지만, 예시적인 실시 예에서, 이것은 클록 게이트(176)와 경계 박스(184)의 중간 점 사이의 맨해튼 거리로서 실현될 수 있다. 대안으로, 유클리드 거리 또는 다른 거리를 사용할 수 있다.
도 10은 본 발명의 실시 예에 따른 설계 특징들의 측정된 값들 및 클록 게이트 레이턴시들의 대응하는 측정 값들을 나타내는 데이터 셋을 도시한다. 테이블의 각 행은 왼쪽 열에 표시된 바와 같이 하나의 클록 게이트에 대한 예시적인 값들을 제공할 수 있다. 도 10에 도시 된 예시적인 값들은 단지 예시를 위한 것이며 어떠한 물리적 또는 시뮬레이션된 클록 트리에서 측정된 실제 값들을 나타내지 않을 수 있다. 예를 들어, 제1 특징은 트랜지티브 팬-아웃 일 수 있고, 제 2 특징은 경계 박스 영역일 수 있고, 제3 특징은 로직 레벨일 수 있고, 제4 특징은 로컬 클록 소스로부터 게이트까지의 맨해튼 거리일 수 있고, 제5 특징은 게이트에서 경계 상자의 중간 점까지의 맨해튼 거리일 수 있다. 대안으로 유클리드 거리 또는 다른 거리 일 수 있다. 거리 및 면적의 단위는, 예를 들어, 나노 미터(nm) 및 제곱 나노 미터(nm2) 일 수 있고, 시간 단위는, 예를 들어 피코 초(ps) 일 수 있지만, 본 발명은 이런 단위 또는 예시적인 값으로 한정되지 않는다.
도 11은 본 발명의 실시 예에 따른 집적 회로의 클록 게이트 타이밍을 모델링하기 위한 워크 플로우의 보다 상세한 예시적인 실시 예의 흐름도이다. 도 11의 좌측의 제 1 빌드 프로세스는 트레이닝 빌드라고 지칭될 수 있고, 우측의 제 2 빌드는 모델링 빌드라고 지칭될 수 있다. 트레이닝 빌드는 게이트 클록 트리의 물리적 설계(합성)를 위한 일반적인 프로세스를 포함할 수 있다. 190 단계에서, 실리콘 컴파일 프로세스는 논리 회로 설계를 논리 함수들 그룹 및 클록 트리를 갖는 플로우-플랜을 포함하는 물리적 레이아웃으로 변환할 수 있다. 192 단계에서, 점증적인 컴파일 프로세스는 설계자가 전체 설계를 재 합성하지 않고도 설계의 일부를 수정할 수 있게 한다. 194 단계에서, 매크로, 표준 셀 및 다른 회로 소자는 집적 회로 플로우-플랜의 블록 및 다른 파티션 내의 위치에 배치될 수 있다. 196 단계에서, 로컬 클록 구축 프로세서 동안, 로컬 클록 트리는 글로벌 또는 더 상위 레벨 클록 분배 네트워크(이는 로컬 클록 트리에 대한 클록 소스로서 사용됨)의 종단으로부터 집적 회로의 디바이스 레벨에서의 사용 지점으로 클록 신호를 분배하도록 구성될 수 있다. 로컬 클록 트리는 예를 들어, CTS를 사용하여 구성될 수 있다, CTS는 로컬 클록 신호의 레이턴시 및 스큐를 최소화하기 위한, 로컬 클록 트리의 구축 및 균형화를 위한 공통 프로세스일 수 있다. 198 단계에서, 장치 레벨 구성 소자의 물리적 단자들 사이에 전도성 선(trace)들을 라우팅함으로써 나머지 모든 연결이 완료될 수 있다.
대안으로 또는 병행하여, 212 단계에서 방법은 통상의 워크 플로우로부터 분기될 수 있고, 트레이닝 빌드에서 다양한 특징들 및 클록 게이트의 대응하는 타이밍을 측정함으로써 하나 이상의 데이터 셋이 생성될 수 있다. 예시적인 실시 예에서, 타이밍은 레이턴시 일 수 있지만, 다른 타이밍 값이 사용될 수 있다. 구현 세부 사항에 따라 임의의 수의 클록 게이트에 대해 측정이 수집될 수 있다. 예를 들어, 어떤 상황에서는 모든 클록 게이트에 대해 측정을 수행하여 보다 정확한 트레이닝을 초래할 수 있는 큰 데이터 셋을 제공하는 것이 유리할 수 있다. 다른 상황에서, 전략적으로 선택된 게이트들에 대해서만 측정치를 수집하는 것이 유리할 수 있다. 그 게이트들은, 계수들을 생성하는데 요구되는 계산 또는 다른 처리의 양을 감소시키기 위해 데이터 셋의 크기를 감소시키면서도 다른 클록 게이트들의 대표 샘플을 제공하도록 선택될 수 있다.
214 단계에서, 설계 특징들이 제 1 빌드에 기초한 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위해, 분석 프레임 워크가 하나 이상의 데이터 셋에 적용될 수 있다. 상술한 바와 같이, 분석 프레임 워크는 임의의 특정한 트레이닝 또는 학습 프로세스로 제한되지 않으며 신경망 및/또는 다른 휴리스틱과 같은 기계 학습 기술의 사용을 포함할 수 있다. 예시적인 실시 예에서, 분석 프레임 워크는 심층 신경망으로서 구현될 수 있다. 심층 신경망은 하나 이상의 데이터 셋을 트레이닝하고, 트레이닝 반복 사이에서 사용자에 의해 수정될 수 있는 하이퍼-파라미터에 기초한 각각의 특징에 대한 선형 계수들을 계산하도록 구성될 수 있다.
214 단계에서 계수들을 생성한 후, 도 11의 방법은 다른 일반적인 제 2 빌드를 가로챌 수 있는데, 제 2 빌드에서 클록 게이트를 모델링하기 위한 계수들을 사용하기 위해서이다. 제 2 빌드는 202 단계(컴파일), 204 단계(점증적 컴파일), 206 단계(배치), 208 단계(로컬 클록 합성) 및 210 단계(라우팅)를 포함할 수 있으며, 이는 제 1 빌드에서의 대응하는 프로세스와 유사 할 수 있다.
계수들 및 모델링 결과는 제 2 빌드의 임의의 지점에서 사용될 수 있지만, 208 단계(로컬 클록 트리 합성) 이전의 임의의 지점에서 이들을 사용하는 것이 더 유리할 수 있다. 계수들 및 모델링 결과는 특히 202 단계(컴파일)와 204 단계(점증적 컴파일) 사이에 예측된 클록 게이트 타이밍을 사용하는 것이 특히 유리할 수 있다. 예측된 클록 게이트 타이밍의 이점을 이용하여, 설계자는 204 단계(점증적 컴파일)에서 설계의 관련 부분만을 변경할 수 있기 때문이다. 도 11은 216 및 218 단계들이 제 2 빌드의 202 단계와 204 단계 사이에 삽입된 것을 도시하지만, 본 발명은 이에 한정되는 것은 아니며, 제 2 빌드의 다른 프로세스 사이에 삽입되거나 다른 프로세스와 결합될 수 있다.
216 단계에서, 제 2 빌드에서의 임의의 또는 모든 클록 게이트의 특징들이 측정될 수 있다. 본 발명에서 설명된 것들 중 임의의 것을 포함하는 임의의 특징들이 각각의 게이트에 대해 측정될 수 있다. 더욱이, 설계자는 클록 게이트 타이밍의 예측된 값들을 생성하기 위해 계수들을 적용할 특징들의 임의의 순열 또는 조합을 선택할 수 있으며, 예시적인 실시 예에서 클록 게이트 레이턴시 일 수 있다.
218 단계에서, 214 단계에서 생성된 계수들은 216 단계에서 측정된 설계 특징들의 값들에 적용되어 제 2 빌드에서 클록 게이트들의 예측된 레이턴시 값들을 생성할 수 있다. 이 예측된 레이턴시 값들은 제 2 빌드 동안 동적으로 (즉석에서) 적용될 수 있으며, 이는 클록 게이트들의 예측된 타이밍 값들을 사용하는 204 단계로 계속될 수 있다.
도 12는 일반적인 기술 및 본 발명의 실시 예에 따른 하나 이상의 기술에 의해 획득될 수 있는 상대 결과의 예를 도시한다. 도 12의 그래프에서, 제1 점선(230)은 트랜지티브 팬-아웃의 묶은(일괄한)값에 기초하여 클록 게이트 레이턴시를 추정하는 일반적인 방법을 사용하여, 하부 축을 따라 표시된 다양한 게이트들에 사용된 레이턴시 값들(ps)을 도시한다. 실선(232)은 동일한 게이트에 대해 측정된 실제 레이턴시 값들을 도시하고, 제2 점선(234)은 상술된 심층 신경망의 단일 반복을 사용하여 계산된 레이턴시 값들을 도시한다. 도 12 및 도 13에 도시된 값들은 예시를 위한 것이며 물리적 또는 시뮬레이션 된 구현으로부터의 실제 값들을 나타내지 않을 수 있다.
도 13 및 도 14는 도 12와 관련하여 위에서 언급된 심층 신경망의 다중 반복을 사용하여 획득될 수 있는 상대적인 결과의 예를 도시한다. 도 13의 선들(232 및 234)은 본질적으로 도 12의 선들과 동일 할 수 있다. 그 차이를 증폭시키기 위해 다른 수직 스케일로 도시되어 있다. 실선(232)은 바닥을 따라 표시된 게이트에 대해 측정된 실제 레이턴시 값들을 도시하고, 점선(234)은 심층 신경망의 단일 반복을 사용하여 계산된 레이턴시 값들을 도시한다. 도 14를 참조하면, 실선(232)은 실제 레이턴시 값들을 다시 도시하고, 점선(236)은 심층 신경망을 2 회 반복한 후에 계산된 레이턴시 값들을 도시한다.
도 11의 방법의 많은 지점에서, 조정 인자들이 적용될 수 있다. 예를 들어, 상술한 조정 인자들을 포함하는, 임의의 조정 인자들은 212 단계에서 제 1 빌드의 타이밍 및/또는 설계 특징들의 측정된 값들 및/또는 프로세스에 적용될 수 있다. 조정 인자들은 214 단계에서 생성된 계수들 및/또는 프로세스에 적용될 수 있다. 조정 인자들은 216 단계에서 설계 특징들의 측정된 값들에 적용될 수 있다. 조정 인자들은 218 단계에서 예측된 클록 게이트 타이밍 및/또는 프로세스에 적용될 수 있다. 예를 들어, 조정들은 설계자 또는 다른 사용자에 의해 수동으로, 분석 프레임 워크(126) 및/또는 예측 프레임 워크(134) 또는 이들의 임의의 조합에 의해 자동으로 적용될 수 있다.
도 11의 방법의 많은 지점에서, 특징들의 서브 셋은 더 빠르고 간단한 계수 계산, 레이턴시 예측 등을 위해 사용되도록 선택될 수 있다. 예를 들어, 서브 셋은 설계자 또는 다른 사용자에 의해 수동으로, 도 7의 분석 플랫폼(138)에 의해 자동으로 또는 이들의 임의의 조합에 의해 선택될 수 있다.
따라서, 실시 예 및 구현 세부 사항에 따라, 본 발명의 실시예는 물리적 최적화, 타이밍 종결, RTL 피드백 및/또는 클록 게이트를 위한 물리적 합성의 다른 측면을 구동 할 수 있는 클록 게이트 타이밍을 예측하기 위한 효율적이고 정확한 방법을 제공할 수 있다. 예를 들어, 점선(220) 내에 둘러싸인 도 11의 방법의 일부는 워크 플로우의 어떤 중단도 거의 없이 결과를 개선하기 위해 제 2 빌드의 다른 일박적인 워크 플로우에 통합될 수 있다. 더욱이, 본 발명의 실시 예는 설계 워크 플로우에서 비교적 초기에 구현될 수 있는 솔루션을 제공할 수 있기 때문에, 클록 게이트 활성화 타이밍을 수렴하는 프로세스에서 지연을 거의 또는 전혀 발생시키지 않을 수 있다.
실시 예 및 구현 세부 사항에 따라, 도 11의 방법은 하나 이상의 트레이닝 빌드로부터 post-CTS 데이터를 트레이닝하여 임의의 디자인의 다른 빌드에 대한 클록 게이트 레이턴시 pre-CTS를 예측하기위한 계수들을 생성하는 학습 프로세스를 구현할 수 있다. 이 프로세스는 동적 및/또는 반복적으로 구현될 수 있다. 예를 들어, 제 1 빌드는 분석 프레임 워크에 의해 생성된 계수들을 개선 또는 정제하기 위해 사용될 수 있는 더 많은 트레이닝 데이터 셋을 점진적으로 생성하도록 자체적으로 계속 실행되도록 설정될 수 있다. 더욱이, 동일한 물리적 블록의 과거 데이터를 사용하여 데이터 셋들을 생성하는 데 더 적합한 클록 게이트의 전기적 또는 물리적 특징을 측정함으로써, 본 발명의 실시 예는 클록 게이트의 다른 타이밍 또는 레이턴시를 예측하는데 사용될 수 있다.
도 15는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 도시한다. 도 15의 시스템(300)은 본 발명에서 설명된 방법 및/또는 장치 중 임의의 것 또는 전부를 구현하는 데 사용될 수 있다. 시스템(300)은 중앙 처리 장치(CPU)(302), 메모리(304), 스토리지(306), 사용자 인터페이스(308), 네트워크 인터페이스(310) 및 전원(312)을 포함할 수 있다. 프레임워크 로직(307)은 본 명세서에 기술된 측정들, 데이터 셋들, 계수들, 값들, 조정들, 분석 프레임 워크, 예측 프레임 워크, 예측된 타이밍 값들 및 다른 특징들을 구현하는 로직을 포함할 수 있다. 다른 실시 예에서, 시스템은 임의의 구성요소들을 생략하거나, 임의의 구성요소들 중 복제물 또는 임의의 추가적인 구성요소를 포함할 수 있다. 시스템은 본 발명에 기술된 임의의 방법 및/또는 장치를 구현하기위한 임의의 다른 유형의 구성요소들을 포함할 수 있다.
CPU(302)는 임의의 수의 코어, 캐시, 버스 및/또는 상호 접속 인터페이스 및/또는 제어기를 포함할 수 있다. 메모리(304)는 동적 및/또는 정적 RAM, 비 휘발성 메모리(예를 들어, 플래시 메모리) 등의 임의의 배열을 포함할 수 있다. 스토리지(306)는 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 및/또는 데이터 저장 장치 또는 이들의 조합의 임의의 다른 유형을 포함 할 수 있다. 사용자 인터페이스(308)는 키보드, 마우스, 모니터, 비디오 캡처 또는 전송 장치, 마이크, 스피커 터치 스크린 등과 같은 임의의 유형의 휴먼 인터페이스 장치뿐만 아니라 그러한 장치의 임의의 가상화 또는 원격 버전을 포함할 수 있다. 구성요소들이 인트라넷, 인터넷, 근거리 통신망, 광역 통신망 등과 같은 물리적 및/또는 논리적 네트워크를 통해 통신할 수 있도록, 네트워크 인터페이스(310)는 이더넷, Wi-Fi, 블루투스, 또는 임의의 다른 컴퓨터 네트워킹 구성을 통해 통신하는 어댑터 또는 다른 장치를 포함할 수 있다. 전원 (312)은 AC 또는 DC 전원으로부터 전력을 수신하고 이를 시스템 (300)의 구성요소에 의해 사용하기에 적합한 임의의 형태로 변환할 수 있는 배터리 및/또는 전원을 포함할 수 있다.
시스템(300)의 임의의 또는 모든 구성요소는 시스템 버스(301)를 통해서 상호 연결된다. 시스템 버스(301)는 다양한 인터페이스를 총괄적으로 참조할 수 있다. 인터페이스는 전력 버스, 어드레스 및 데이터 버스를 포함하는 다양한 인터페이스, SATA(Serial AT Attachment)과 같은 고속 인터커넥트, PCI(Peripheral Component Interconnect), PCI-e(Peripheral Component Interconnect Express), SMB(System Management Bus) 및 구성요소가 한 위치에서 로컬로 작동하거나 다른 위치사이에 분산되어 있는 구성요소 들이 함께 작동할 수 있는 기타 유형의 인터페이스를 포함할 수 있다.
시스템(300)은 또한 다양한 칩셋, 인터페이스, 어댑터, 글루-로직, 프로그래머블 또는 비-프로그래밍이 가능한 로직-디바이스 또는 어레이와 같은 임베디드 컨트롤러, ASIC(application specific integrated circuit), 임베디드 (embedded) 컴퓨터, 스마트 카드 등, 시스템(300)의 다양한 구성요소가 함께 작동하여 본 발명에서 설명된 모든 방법 및/또는 장치 중 임의의 것을 구현할 수 있도록 구성된 것을 포함할 수 있다. 시스템 (300)의 임의의 구성요소는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 일부 실시 예에서, 임의의 또는 모든 구성요소들은 가상화 된 형태 및/또는 예를 들어 데이터 센터 내에서 자원의 유연한 프로비저닝을 통해 클라우드 기반 구현으로 실현될 수 있거나 또는 다수의 데이터 센터에 걸쳐 분산될 수 있다.
본 발명의 실시 예와 관련하여 설명된 방법 또는 알고리즘 및 기능의 블록 또는 단계는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 시스템을 포함하여 이 둘의 조합으로 직접 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 유형의 비-일시적 컴퓨터 판독 가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 이를 통해 전송될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), 플래시 메모리, ROM(Read Only Memory), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 레지스터, 하드 디스크, 이동식 디스크, CD-ROM 또는 다른 형태의 저장 매체에 있을 수 있다.
본 개시 및 청구 범위에서 "제 1"및 "제 2"와 같은 용어의 사용은 이들이 수정하는 것을 구별하기위한 것일 뿐이며, 문맥 상 명백하지 않으면 어떠한 공간적 또는 시간적 순서도 나타내지 않을 수 있다. 전술 한 다양한 세부 사항 및 실시 예는 본 특허 개시의 본 발명의 원리에 따라 추가 실시 예를 생성하도록 조합될 수 있다. 본 발명의 실시 예는 본 발명의 개념을 벗어나지 않으면서 배열 및 상세하게 수정될 수 있기 때문에, 이러한 변경 및 수정은 다음의 청구 범위의 범주 내에 속하는 것으로 간주된다.

Claims (10)

  1. 집적 회로의 클록 게이트 타이밍 모델링 방법에 있어서,
    적어도 2 개의 설계 특징들의 측정 값들 및 클록 게이트 타이밍의 대응하는 측정 값들을 갖는 데이터 셋을 생성하는 단계;
    상기 설계 특징들이 상기 클록 게이트 타이밍에 어떻게 영향을 미치는지를 결정하기 위해 분석 프레임 워크를 상기 데이터 셋에 적용하는 단계;
    상기 집적 회로의 클록 트리에 대한 설계 특징들의 값들을 측정하는 단계; 및
    상기 데이터 셋의 상기 설계 특징들이 상기 데이터 셋의 상기 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 상기 집적 회로의 상기 클록 트리에 대한 클록 게이트 타이밍의 예측된 값들을 생성하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 집적 회로의 상기 클록 트리는 제 2 클록 트리 및 제 2 빌드의 일부이고,
    상기 데이터 셋 생성하는 단계는
    제 1 빌드의 일부로 제 1 클록 트리를 구성하는 단계;
    상기 제 1 클록 트리의 설계 특징들의 값들을 측정하는 단계; 및
    상기 제 1 클록 트리의 클록 게이트 타이밍의 대응하는 값들을 측정하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 설계 특징들 및 클록 게이트 타이밍의 상기 값들은 상기 제 1 클록 트리의 물리적 합성 후에 측정되는 것 인 방법.
  4. 제 2 항에 있어서,
    클록 게이트 타이밍의 상기 예측된 값들을 상기 제 2 클록 트리의 모델에 적용하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    클록 게이트 타이밍의 상기 예측된 값들은 상기 제 2 클록 트리의 물리적 합성 전에 상기 제 2 클록 트리의 모델에 적용되는 방법.
  6. 제 1 항에 있어서,
    상기 데이터 셋에 분석 프레임 워크를 적용하는 단계는 상기 설계 특징들이 상기 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 계수들을 결정하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 계수들은 개별적인 설계 특징들에 의해 결정되는 방법.
  8. 집적 회로의 클록 게이트 모델링 방법에 있어서,
    제 1 빌드의 일부로서 제 1 클록 트리를 구성하는 단계;
    상기 제 1 클록 트리의 설계 특징들의 값들을 측정하고, 상기 제 1 클록 트리의 클록 게이트들의 클록 게이트 타이밍의 대응하는 값들을 측정함으로써 제 1 데이터 셋을 생성하는 단계; 및
    계수들을 생성하기 위해 분석 프레임 워크를 상기 제 1 데이터 셋에 적용하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 집적 회로의 클록 트리에 대한 설계 특징들의 값들을 측정하는 단계; 및
    상기 계수들과 및 상기 계수들을 생성하는데 사용된 하나 이상의 동일한 설계 특징들 측정된 값들에 기초하여 상기 집적 회로의 상기 클록 트리에 대한 클록 게이트 타이밍의 예측된 값들을 생성하는 단계를 더 포함하는 방법.
  10. 집적 회로의 클록 게이트 타이밍 모델링을 위한 시스템에 있어서,
    상기 시스템은 분석 플랫폼을 포함하고, 상기 분석 플랫폼은
    적어도 2 개의 설계 특징들의 측정 값들 및 제 1 클록 트리 빌드에 대한 클록 게이트 타이밍의 대응하는 측정 값들을 갖는 데이터 셋에 분석 프레임 워크를 적용하고, 상기 분석 프레임 워크는 상기 설계 특징들이 상기 클록 게이트 타이밍에 어떻게 영향을 미치는지에 기초하여 계수들을 생성하고,
    상기 계수들 및 상기 계수들을 생성하는데 사용된 하나 이상의 동일한 설계 특징들의 측정된 값들에 기초하여 제 2 클록 트리 빌드에 대한 클록 게이트 타이밍의 예측된 값들을 생성하도록 구성된 시스템.
KR1020200060355A 2019-06-19 2020-05-20 분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링 KR20200145672A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962863860P 2019-06-19 2019-06-19
US62/863,860 2019-06-19
US16/664,792 US11042678B2 (en) 2019-06-19 2019-10-25 Clock gate latency modeling based on analytical frameworks
US16/664,792 2019-10-25

Publications (1)

Publication Number Publication Date
KR20200145672A true KR20200145672A (ko) 2020-12-30

Family

ID=74038265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200060355A KR20200145672A (ko) 2019-06-19 2020-05-20 분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링

Country Status (2)

Country Link
US (1) US11042678B2 (ko)
KR (1) KR20200145672A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114303150A (zh) * 2019-09-10 2022-04-08 美商新思科技有限公司 集成电路设计中的机器学习驱动的预测
US11681842B2 (en) * 2020-12-08 2023-06-20 Synopsys, Inc. Latency offset in pre-clock tree synthesis modeling
CN113792520B (zh) * 2021-09-23 2024-06-14 西安紫光国芯半导体有限公司 布局布线方法、装置、同步电路以及集成电路芯片

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718523B2 (en) * 2001-07-05 2004-04-06 International Business Machines Corporation Reduced pessimism clock gating tests for a timing analysis tool
KR20040046284A (ko) 2002-11-26 2004-06-05 삼성전자주식회사 클럭트리 합성방법 및 클럭트리 합성효과의 예측방법
US7162706B2 (en) * 2004-03-05 2007-01-09 Picocraft Design Systems, Inc. Method for analyzing and validating clock integration properties in circuit systems
US7913210B2 (en) 2007-05-02 2011-03-22 Cadence Design Systems, Inc. Reducing critical cycle delay in an integrated circuit design through use of sequential slack
US7882461B2 (en) * 2007-05-29 2011-02-01 Magma Design Automation, Inc. Method for optimized automatic clock gating
US8572418B2 (en) * 2009-03-12 2013-10-29 Qualcomm Incorporated Moving clock gating cell closer to clock source based on enable signal propagation time to clocked storage element
CN102169515B (zh) 2010-02-26 2014-04-16 国际商业机器公司 一种专用集成电路中时钟树延迟时间的估计方法和系统
US8635579B1 (en) 2012-12-31 2014-01-21 Synopsys, Inc. Local clock skew optimization
US9058451B2 (en) 2013-03-05 2015-06-16 Synopsys, Inc. Automatic synthesis of complex clock systems
WO2014153543A1 (en) 2013-03-21 2014-09-25 Synopsys, Inc. Dynamic power driven clock tree synthesis (cts)
US9607122B2 (en) 2014-01-30 2017-03-28 Mentor Graphics Corporation Timing driven clock tree synthesis
US10489542B2 (en) * 2018-04-24 2019-11-26 Nvidia Corp. Machine learning based post route path delay estimator from synthesis netlist
US11112819B2 (en) * 2018-08-28 2021-09-07 Microchip Technology Incorporated Method of clock gate analysis for improved efficiency of electronic circuitry system designs and related systems, methods and devices

Also Published As

Publication number Publication date
US11042678B2 (en) 2021-06-22
US20200401669A1 (en) 2020-12-24

Similar Documents

Publication Publication Date Title
US8839171B1 (en) Method of global design closure at top level and driving of downstream implementation flow
US10354042B2 (en) Selectively reducing graph based analysis pessimism
US20070276645A1 (en) Power modelling in circuit designs
Choi et al. HLScope+: Fast and accurate performance estimation for FPGA HLS
KR20200145672A (ko) 분석적인 프레임워크에 기초한 클록 게이트 대기시간 모델링
Papa et al. Physical synthesis with clock-network optimization for large systems on chips
US8112728B1 (en) Early timing estimation of timing statistical properties of placement
TWI689833B (zh) 調整用於靜態時序分析的時序降額的方法與電腦設備
US11836641B2 (en) Machine learning-based prediction of metrics at early-stage circuit design
US9298872B2 (en) Apportioning synthesis effort for better timing closure
US9443050B2 (en) Low-voltage swing circuit modifications
US11755797B2 (en) System and method for predicting performance, power and area behavior of soft IP components in integrated circuit design
US9646122B2 (en) Variable accuracy parameter modeling in statistical timing
CN104239595B (zh) 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置
US20150199460A1 (en) Custom circuit power analysis
US20230342531A1 (en) Methods and apparatus for profile-guided optimization of integrated circuits
US10740520B2 (en) Pessimism in static timing analysis
US20220129611A1 (en) Method to Compute Timing Yield and Yield Bottleneck using Correlated Sample Generation and Efficient Statistical Simulation
US10248746B1 (en) Method and apparatus for estimating ideal power of an integrated circuit design
US11636246B2 (en) Systems and methods for predicting and managing power and energy use of semiconductor devices
US11263379B2 (en) Hierarchical clock tree implementation
US20170235868A1 (en) Static Timing Analysis with Improved Accuracy and Efficiency
US10963610B1 (en) Analyzing clock jitter using delay calculation engine
Raghunathan et al. High-level macro-modeling and estimation techniques for switching activity and power consumption
US10540464B1 (en) Critical path aware voltage drop analysis of an integrated circuit