KR100998798B1 - 통계적 타이밍 분석에서의 임계 예상 시스템 및 방법 - Google Patents

통계적 타이밍 분석에서의 임계 예상 시스템 및 방법 Download PDF

Info

Publication number
KR100998798B1
KR100998798B1 KR1020087014021A KR20087014021A KR100998798B1 KR 100998798 B1 KR100998798 B1 KR 100998798B1 KR 1020087014021 A KR1020087014021 A KR 1020087014021A KR 20087014021 A KR20087014021 A KR 20087014021A KR 100998798 B1 KR100998798 B1 KR 100998798B1
Authority
KR
South Korea
Prior art keywords
timing
edge
cutset
circuit
function block
Prior art date
Application number
KR1020087014021A
Other languages
English (en)
Other versions
KR20080075868A (ko
Inventor
블라디미르 졸로토브
찬드라몰리 비스웨스와리아
나테산 벤트카테스와란
진전 시옹
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20080075868A publication Critical patent/KR20080075868A/ko
Application granted granted Critical
Publication of KR100998798B1 publication Critical patent/KR100998798B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Complex Calculations (AREA)

Abstract

회로의 타이밍 그래프의 에지의 임계 확률을 결정하는 방법이 개시된다. 본 방법은 타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프(directed acyclic timing graph)를 형성하는 단계, 상기 회로의 통계적 타이밍을 수행하는 단계, 관심있는 각각의 에지에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋(cutset)을 정의하는 단계, 상기 컷셋에서 각각의 에지에 대하여 에지 슬랙(edge slack)을 결정하는 단계, 상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하는 단계 및 상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하는 단계를 포함한다. 회로의 타이밍 그래프의 에지의 임계 확률을 결정하는 시스템도 또한 개시된다.

Description

통계적 타이밍 분석에서의 임계 예상 시스템 및 방법{SYSTEM AND METHOD OF CRITICALITY PREDICTION IN STATISTICAL TIMING ANALYSIS}
본 발명은 디지털 집적 회로의 설계 자동화에 관한 것이다. 보다 상세하게는, 지연 변동(delay variation)의 존재시 디지털 회로의 통계적 정적 타이밍 분석에 관한 것이다.
집적 회로 기술의 각각의 계속되는 세대에 따라 변동성(variability)이 비례하여 증가하는 것으로 보인다. 이러한 변동성의 근원으로는 예를 들어, 제조 변동, 디바이스 피로(fatigue), (온도 및 전원 전압과 같은) 환경적 변동 및 위상 잠금 루프(PLL) 변동을 포함한다. 이러한 변동의 존재시, 각각의 신호 전파 아크(예를 들어, 타이밍 아크)의 임계(criticality), 즉 관심있는 신호 전파 아크를 통하여 가는 임계 경로를 갖는 집적 회로(예를 들어, 칩)의 제조 확률을 아는 것이 바람직하다. 이러한 능력으로부터 테스트, 타이밍 보고, 및 회로 최적화를 포함하여 다양한 응용에 이로울 수 있다.
종래 기술의 "결정론적(deterministic)" 타이밍 방법은 고정된 프로세스 커머(comer) 또는 "경우(case)"에 타이밍을 수행한다. 따라서, 회로 지연의 확률 분포 및 신호 전파 아크의 임계를 예상하는 것이 어려울 수 있다. 또한, 결정론적 타 이밍 방법에서는 임계 경로가 고유하며, 따라서 임계 경로는 최적화 방법에 있어서 개선을 위한 명백한 목표가 된다. 통계적 타이밍에서, 각각의 경로 및 각각의 에지(edge)는 임계가 되는 어떤 비음수(non-negative) 확률을 갖는 것으로 관찰된다. 크기 순서대로 이들 에지 임계 확률을 예상하여 집적 회로의 수동 또는 자동 최적화를 안내하는 것이 바람직하다.
임계 확률을 예상하는 종래 기술의 방법으로는 상관관계(correlation)를 제대로 고려할 수 없으며 비효율적인 문제점을 겪는다. 임계를 계산하는 하나의 방식은, 소정의 확률 분포를 충족시키는 프로세스 파라미터의 수많은 랜덤 조합을 생성한 다음, 반복되는 결정론적 타이밍 분석을 수행하여 프로세스 파라미터의 각각의 개별 조합에 대해 임계 타이밍 아크를 검출함으로써, 직접(straightforward) 방식으로 몬테-카를로(Monte-Carlo) 시뮬레이션을 적용하는 것이다. 특정 에지가 가장 임계적인 경로 상에 있는 회로의 비율이 그 에지의 임계 확률이다. 그러나, 이 접근법은 너무 많은 결정론적 타이밍 분석을 필요로 하기 때문에 계산적으로 매우 비효율적일 수 있다.
파라미터화된 통계적 정적 분석을 사용하는 또 다른 종래 기술의 방법은 그 명칭이 "디지털 회로의 확률적 임계 예상 시스템 및 방법(System and Method for Probabilistic Criticality Prediction of Digital Circuits)"인 미국 공개 특허 출원번호 제2005/0066298호에 기재되어 있다. 그러나, 이 접근법은 암시적으로 "기밀 확률(tightness probability)"이 독립 확률인 것으로 가정한다. 이러한 가정은, 기밀 확률이 신호 전파 경로의 재수렴(reconvergence) 및 공통의 글로벌 변동원에 대한 의존성 둘 다로 인해 강하게 상관될 수 있어, 임계 확률의 부적확한 예상을 초래할 수 있기 때문에 단점을 갖는다.
따라서, 상기 언급된 문제점들을 극복하기 위한 필요성이 존재한다.
본 발명의 양상은 디지털 회로에서의 임계 예상을 위한 시스템 및 방법에 관한 것이다. 구체적으로, 본 발명의 양상은 파라미터화된 통계적 정적 타이밍 분석(SSTA) 중에 타이밍 그래프의 각각의 에지의 임계 확률을 계산하는 방법을 개시한다.
본 발명은 회로의 타이밍 그래프의 에지의 임계 확률을 결정하는 방법을 제공한다. 본 방법은 타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프(directed acyclic timing graph)를 형성하는 단계, 상기 회로의 통계적 타이밍을 수행하는 단계, 관심있는 각각의 에지에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋(cutset)을 정의하는 단계, 상기 컷셋에서 각각의 에지에 대하여 에지 슬랙(edge slack)을 결정하는 단계, 상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하는 단계, 및 상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하는 단계를 포함한다.
본 발명은 회로의 통계적 타이밍 분석에서 임계를 예상하는 시스템을 더 제공하며, 본 시스템은 타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프를 형성하는 수단, 상기 회로의 통계적 타이밍을 수행하는 수단, 상기 타이밍 그래프의 각각의 레벨에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋을 정의하는 수단, 상기 컷셋에서 각각의 에지에 대하여 에지 슬랙을 결정하는 수단, 상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하는 수단, 및 상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하는 수단을 포함한다.
본 발명은 또한 회로의 타이밍 특성을 최적화하기 위한 애플리케이션의 배치 방법을 제공하며, 본 방법은 타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프를 형성하고, 상기 회로의 통계적 타이밍을 수행하고, 관심있는 각각의 에지에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋을 정의하고, 상기 컷셋에서 각각의 에지에 대하여 에지 슬랙을 결정하고, 상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하고, 상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하도록 동작가능한 컴퓨터 기반구조를 제공하는 단계를 포함한다.
본 발명의 바람직한 실시예는 다음의 첨부 도면을 참조하여 아래에 설명된다.
도 1은 본 발명의 실시예에 따라 통계적 정적 타이밍 분석 시스템의 개략 블록도이다.
도 2는 타이밍 아크의 임계에 의해 구동되는 회로 최적화 시스템의 개략도이다.
도 3은 도 1 및 도 2에 대하여 기재된 용어를 설명하기 위해 제공된 디지털 회로의 예이다.
도 4는 도 3에 도시된 예시적인 회로를 모델링하는 타이밍 그래프를 도시한 다.
도 5는 도 3에 도시된 디지털 회로에 대하여 타이밍 아크의 임계 및 타이밍 그래프의 신호 전파 경로를 도시하는 개략도이다.
도 6은 도 5에 도시된 바와 같이 타이밍 아크를 통하여 가는 경로의 임계 영역을 갖는 변동 공간을 도시한다.
도 7은 타이밍 그래프의 예시적인 컷셋을 도시한다.
도 8은 도 4에 도시된 예인 타이밍 그래프에 대하여 타이밍 그래프의 컷셋을 계산하는 방법 흐름도이다.
도 9는 예시적인 타이밍 그래프의 컷셋의 계산을 도시한다.
도 10은 타이밍 아크를 통하여 가는 모든 경로의 최대 지연의 계산을 도시한다.
도 10a는 도 4에 도시된 예인 타이밍 그래프의 에지의 임계 확률을 결정하기 위한 상위 레벨 방법 흐름도이다.
도 11은 타이밍 아크의 임계를 계산하는 흐름도이다.
도 12는 N개의 1차 선형 모델의 기밀 확률을 계산하는 흐름도이다.
도 13은 일 세트의 1차 모델에 대한 이진 분할 트리의 예를 도시한다.
도 14는 도 13에 도시된 예인 이진 분할 트리를 사용하여 N개의 1차 모델에 대한 기밀 확률을 계산하는 흐름도이다.
도 15는 도 13에 도시된 예인 분할 트리를 횡단하고 기밀 확률을 계산하기 위한 흐름도이다.
도 16은 본 발명의 다양한 양상을 구현하는 컴퓨터 시스템이다.
본 발명의 양상은 디지털 회로의 통계적 타이밍 분석에 있어서 신호 전파 아크(signal propagation arc)의 임계를 예상하는 시스템 및 방법을 설명한다. 신호 전파 아크의 임계는 아크가 임계인 확률(즉, 타이밍 아크가 타이밍 임계적 신호 전파 경로에 속하는 칩의 제조 확률)이다.
도 1은 본 발명의 실시예에 따라 통계적 정적 타이밍 분석 시스템(100)의 개략 블록도이다. 시스템(100)은 대안으로 여기에 툴(100)로서 칭한다. 시스템(100)은 복수의 입력(110, 120, 130, 140)을 수신하도록 구성된다. 제1 입력은 분석될 회로의 구조를 나타내는 회로 네트리스트(netlist)(110)이다. 제2 입력은 일 세트의 타이밍 단정(assertion)(120)(예를 들어, 타이밍 제약)이다. 타이밍 단정(120)은 통상적으로 일차(primary) 입력에서의 도달 시간, 일차 출력에서의 요구되는 도달 시간, 클럭의 위상에 대한 정보, 및 일차 출력에 의해 구동되는 외부 로드의 상세사항을 포함한다. 타이밍 단정(120)은 결정론적 수 또는 독립 확률 분포 또는 상관된 확률 분포 또는 임의의 이들 조합의 형태로 이루어질 수 있다.
제3 입력은 타이머가 게이트 또는 와이어의 지연을 지연-모델 변수(예를 들어, 입력 슬루(slew) 또는 상승/하강 시간 및 출력 로드)의 함수 뿐만 아니라 변동원의 함수로서 결정할 수 있게 해주는 일 세트의 파라미터화된 지연 모델(130)이다. 예를 들어, 그 명칭이 "디지털 회로의 통계적 타이밍 분석 시스템 및 방법(System and Method for Statistical Timing Analysis of Digital Circuits)"인 공개된 미국 특허 출원번호 제2005-0065765호에 기재된 바와 같은 1차 선형 모델(first-order linear model)이 지연을 결정하는 데 사용될 수 있다. 시스템(100)은 변동원의 통계치(140)에 대한 정보를 수신하도록 구성된다. 변동원(140)은 통상적으로 각각의 변동원에 대하여 평균값 및 표준 편차를 갖는 변동원의 리스트를 포함한다.
확률적 또는 통계적 정적 타이밍 모듈(150)은 입력(110, 120, 130, 140)을 수신하여, 회로의 모든 노드에서 도달 및 요구 시간(예를 들어, 출력(160))의 파라미터화된 1차 모델(160)이 달린 회로의 타이밍 그래프를 생성하도록 구성된다. 파라미터화된 1차 모델(160)은 1차 선형 모델의 형태일 수 있다. 도달 및 요구 시간의 파라미터화된 모델이 달린 타이밍 그래프(160)는 타이밍 아크의 임계를 계산하도록 구성되는 유닛(170)에 의해 수신된다. 유닛(170)은 타이밍 아크의 임계(180)를 계산한다. 타이밍 아크의 임계(180)는 제조된 칩에서 타이밍 아크의 임계 확률을 나타낸다. 예를 들어, 타이밍 아크 A의 임계는 타이밍 아크 A가 타이밍-임계적 신호 전파 경로 상에 있는 칩의 제조 확률을 제공한다.
도 2는 본 발명의 실시예에 따라 타이밍 아크의 임계에 의해 구동되는 회로 최적화 시스템(200)의 개략도이다. 시스템(200)은 회로 최적화 모듈(240) 및 정적 타이밍 분석기(250)를 포함한다. 회로 최적화 모듈(240)은 입력으로서 회로 네트리스트(210), 일 세트의 타이밍 단정, 파라미터화된 지연 모델(220) 및 최적화 목표 및 제약(230)을 수신하도록 구성된다.
회로 네트리스트(210)는 최적화될 회로의 구조를 나타낸다.
일 세트의 파라미터화된 지연 모델(220)은 정적 타이밍 분석기(250)가 게이트 또는 와이어의 지연을 지연-모델 변수(예를 들어, 입력 슬루 또는 상승/하강 시간 및 출력 로드)의 함수 뿐만 아니라 변동원의 함수로서 결정할 수 있게 해준다. 예를 들어, 그 명칭이 "디지털 회로의 통계적 타이밍 분석 시스템 및 방법(System and Method for Statistical Timing Analysis of Digital Circuits)"인 공개된 미국 특허 출원번호 제2005-0065765호에 기재된 바와 같은 1차 선형 모델이 지연을 결정하는 데 사용될 수 있다.
최적화 제약(230)은 예를 들어, 타이밍 제약, 누설 및 스위칭 전력 제약, 신호 슬로프 제약, 영역 제약 및 잡음 제약을 포함할 수 있다.
최적화 목표(230)는 최적화기(240)가 달성하기 원하는 목표를 규정한다. 예를 들어, 최적화 목표는 칩 영역 또는 전력을 최소화하는 것, 제조 수율 또는 성능을 최대화하는 것 등일 수 있다.
회로 최적화기(240)는 다양한 입력을 수용하여, 네트리스트 또는 데이터베이스의 형태일 수 있는 최적화된 회로(260)를 생성한다. 최적화된 회로(260)는 최적화 목표(230)에 의해 규정된 특성을 포함하고, 최적화 제약(230)을 충족시킨다. 최적화된 회로(260)는 네트리스트(210)에 의해 규정된 회로와 다를 수 있다. 예를 들어, 그 차이는 그 셀의 사이즈나 유형, 또는 토폴로지에 관한 것일 수 있다.
최적화 중에, 최적화기(240)는 정적 타이밍 분석기(250)와 상호동작하여 회로 타이밍 특성을 추정한다. 또한, 최적화기(240)는 타이밍 아크 임계의 계산기(250)와 상호동작하여, 회로의 셀의 셀 사이즈, 셀 유형 또는 기타 최적화 변환 을 변경하기 위한 후보로서 회로의 적합한 셀을 선택한다. 최적화는 불연속 또는 연속형으로 이루어질 수 있으며, 특정 맞춤화 회로 설계가 라이브러리 셀로 구성되거나 구성되지 않을 수 있음을 이해하여야 한다. 당해 기술 분야에 통상적인 기술을 가진 자라면, 이들 다양한 최적화 시나리오에 적용될 수 있는 본 발명의 변형을 생성할 수 있을 것이다.
타이밍 아크의 임계를 계산하기 위해, 본 명세서를 통하여 적합한 경우에 다음의 정의가 사용된다.
디지털 시스템은 통상적으로 각각의 클럭 사이클 또는 "틱(tick)"에서 일부 계산을 수행하는 회로에 기반하여 동작한다. 특정 클럭 사이클에서, 회로에 인가되는 입력에 따라, 소정의 신호가 스위칭되지 않거나, 한번 스위칭되거나, 다수회 스위칭될 수 있다. 각각의 클럭 사이클 내에서, 시스템의 각각의 매 신호에 대하여, 올바른 타이밍(예를 들어, 초기(early) 모드 도달 시간 또는 "초기 도달 시간(early arrival time)", 및 말기(late) 모드 도달 시간 또는 "말기 도달 시간(late arrival time)")을 보장하는 것이 바람직하다.
초기 모드 도달 시간은 신호가 가능하면 스위칭(예를 들어, 이전의 클럭 사이클 동안 있었던 안정된 논리 상태로부터 변경)될 수 있는 가장 이른 시간으로서 정의된다. 초기 모드 도달 시간은 현재 클럭 사이클 동안 논리 값이 변경되거나 스위칭되기 전에 이전 사이클이 "안정되었고(settled down)" 올바른 로직 값이 기록되었음을 보장한다. 신호가 스위칭될 수 있으며 원하는 바에 따라 회로 기능을 여전히 유지할 수 있게 되는 가장 이른 시간은 "초기 요구 시간(early required time)"으로 칭한다.
말기 모드 도달 시간은 신호가 스위칭을 정지하여 안정적으로 되는 가장 늦은 시간으로서 정의된다. 이는 회로가 클럭 사이클 제약을 충족시키도록 바람직한 시간에 그 기능을 완료하였음을 보장한다. 회로의 올바른 기능수행이 가능하도록 신호가 그 최종 안정적 논리 상태에서 스위칭을 정지하여 안정적으로 되는 것이 바람직한 가장 늦은 시간은 "말기 요구 시간(late required time)"으로 칭한다.
말기 모드에서, 요구 시간과 도달 시간 사이의 대수차는 "말기 타이밍 슬랙(late timing slack)"으로서 정의된다. 마찬가지로, 초기 모드에서, 도달 시간과 요구 시간 사이의 대수차는 "초기 타이밍 슬랙(early timing slack)"으로 칭한다.
타이머는 타이밍 그래프를 통하여 타이밍 값들의 "전방향 전파(forward propagation)"에 의해 도달 시간을 계산하고, 요구 시간은 타이밍 그래프를 통하여 타이밍 값들의 "역방향 전파(backward propagation)"에 의해 계산된다.
간결하게 하기 위하여, 본 발명의 설명은 말기 모드 타이밍 정량 계산(예를 들어, 말기 도달 시간 및 말기 요구 시간)에 한정된다. 그러나, 본 발명의 임계를 계산하는 기술 및 방법은 초기 모드 타이밍 정량(예를 들어, 초기 도달 시간 및 초기 요구 시간)에 확장될 수 있음은 명백할 것이다.
타이밍 그래프는 디지털 회로의 모델이다. 타이밍 그래프의 정점(vertex)은 타이밍 그래프에 의해 모델링된 회로의 노드에 대응한다. 타이밍 그래프의 아크 또는 "타이밍 아크"는 정점들을 연결한다. 타이밍 아크가 방향이 정해지고, 하나의 회로 노드로부터 다른 노드로의 신호 전파를 모델링한다. 각각의 타이밍 아크에 전 파 지연이 할당된다. 지연은 타이밍 아크의 최초 정점으로부터 그 종착 정점까지의 신호 전파 시간과 동일하다. 타이밍 그래프의 두 개의 노드는 특별한 의미, 즉 모든 신호가 시작되는 소스(source) 노드 및 모든 회로 신호의 종착지인 싱크(sink) 노드를 가질 수 있다. 하나의 일차 입력 및 하나의 출력을 갖는 회로의 경우, 소스 노드는 회로의 일차 입력이고, 싱크 노드는 회로의 일차 출력이다. 복수의 일차 입력 및 출력을 갖는 회로의 경우, 소스 및 싱크 노드는 분석 중에 편의상 회로의 실제 노드에 추가적으로 도입된다. 따라서, 소스 노드는 회로의 모든 일차 입력에 연결되고, 싱크 노드는 회로의 모든 일차 출력에 연결된다.
최소 타이밍 슬랙을 갖는 정점들을 갖는 타이밍 그래프의 경로가 임계 경로로서 정의된다. 예를 들어, 회로가 더 높은 속도에서 작동하도록 설계되는 경우, 임계 경로를 통한 신호 전파도 더 빠르게 형성되어야 할 수 있다. 본 발명자는 임계 경로에 속하는 타이밍 아크를 임계적이라고 할 때에 비임계(non-critical) 경로의 속도를 높이는 것이 회로를 더 빠르게 동작시키는 데 기여하지 않을 수 있다는 것을 발견하였다. 회로는 선택 임계 아크의 지연을 감소시킴으로써 더 빠르게 동작하도록 설계될 수 있다. 비임계 아크의 지연의 작은 변경은 회로 성능에 영향을 미치는 것으로 보이지 않는다. 따라서, 회로 최적화에 대하여, 회로의 임계 타이밍 아크를 식별하는 것이 바람직하다. 집적 회로의 효율적인 제조 테스트를 위하여, 칩의 임계 타이밍 아크를 아는 것이 유용하다. 배치, 라우팅, 버퍼 삽입 및 물리적 합성과 같은 전자기기 설계 자동화의 다른 영역에서도 타이밍 아크의 임계를 아는 것으로부터 이득을 얻을 수 있다.
도 3은 도 1 및 도 2에 대하여 기재된 용어를 설명하기 위해 제공되는 샘플디지털 회로의 예이다. 디지털 회로(300)는 게이트(320, 350 및 370)를 갖는다. 회로(300)는 일차 입력(310, 340 및 360) 및 일차 출력(330 및 380)을 갖는다.
도 4는 도 3에 도시된 샘플 회로(300)를 모델링하는 타이밍 그래프(400)를 도시한다. 타이밍 그래프(400)는 소스 노드(440) 및 싱크 노드(455)를 포함한다. 노드(410, 430, 490)는 도 3의 일차 회로 입력(310, 340 및 360)에 대응한다. 노드(420 및 485)는 도 3의 일차 출력(330 및 380)에 대응한다. 노드(420, 480 및 485)는 도 3의 게이트(320, 350 및 370)의 출력에 대응한다. 아크(425, 460, 475)는 각각 소스 노드(440)를 노드(410, 430, 490)에 연결하는 타이밍 아크이다. 아크(435 및 470)는 노드(420, 485)를 싱크 노드(455)에 연결하는 타이밍 아크이다. 신호는 타이밍 아크에 할당된 지연에 따라 모든 타이밍 아크를 통하여 소스 노드(440)로부터 싱크 노드(455)로 전파한다.
모든 게이트 전파 지연이 결정론적 값인 경우의 실시예에서, 모든 도달 및 요구 시간도 역시 결정론적 값이다. 그러나, 제조 및/또는 환경적 변동성이 모델링되는 경우, 타이밍 아크의 지연은 그들 대응하는 확률 분포 함수로 설명되는 랜덤 변수로서 고려되어야 한다. 그 다음, 통계적 타이밍 분석이 도달 시간, 요구 시간 및 타이밍 슬랙의 확률 분포를 계산하는 데 사용되어야 한다.
파라미터화된 통계적 정적 타이밍 분석(SSTA)은 회로 분석 및 최적화에 유용하다. 이 기술에 따르면, 게이트 지연은 1차 선형 모델로서 표현된다:
Figure 112008041657454-pct00001
(1)
여기서,
Figure 112008041657454-pct00002
는 평균값이고,
Figure 112008041657454-pct00003
는 글로벌 파라미터
Figure 112008041657454-pct00004
의 변동이고,
Figure 112008041657454-pct00005
이며, 여기서
Figure 112008041657454-pct00006
Figure 112008041657454-pct00007
의 평균값이고,
Figure 112008041657454-pct00008
는 파라미터 변동
Figure 112008041657454-pct00009
에 대한 게이트 지연의 민감도(sensitivity)이고,
Figure 112008041657454-pct00010
는 게이트 지연의 비상관(uncorrelated) 변동에 관련된 랜덤 변수이고,
Figure 112008041657454-pct00011
는 비상관 변동
Figure 112008041657454-pct00012
에 대한 게이트 지연의 민감도이다.
식 (1)에 나타낸 표현을 사용하여, 파라미터화된 SSTA는 동일한 1차 선형 모델의 형태로 동일한 파라미터의 함수로서 회로 타이밍 특성(예를 들어, 도달 및 요구 도달 시간, 지연, 타이밍 슬랙)의 통계적 근사치를 계산한다.
파라미터화된 통계적 STA는 경로 기반이거나 블록 기반일 수 있다. 경로 기반의 통계적 STA는 각각의 신호 전파 경로를 개별적으로 분석하고, 모든 경로 지연의 확률적 최대치로서 회로 지연의 확률 분포를 계산한다. 보통, 이는 비효율적인 계산 절차인, 모든 신호 전파 경로의 셈 및 파라미터 변동 공간의 적분을 요구한다.
파라미터화된 SSTA의 또 다른 기술은 블록 기반의 SSTA이다. 이 기술에서, 신호 도달 시간 및 신호 요구 도달 시간은, 도달 시간이 결정론적 STA에 의해 전파될 때와 마찬가지의 형식으로, 그들 위상(topological) 순서대로 각각의 회로 노드에 대하여 프로세스 파라미터의 함수로서 계산된다. 블록 기반의 SSTA를 사용하여, 타이밍 분석은 증분식(incremental) 연산으로서 수행될 수 있고, 이에 의해 회로의 변경이 구현된 후에 효율적으로 타이밍을 문의할 수 있다.
블록 기반의 STA는 도달 시간을 게이트 지연만큼 증분하고 최악의 경우의 도달 시간을 계산함으로써 각각의 회로 노드에서 도달 시간을 계산한다. 도달 시간을 게이트 지연만큼 증분하는 것은 게이트 입력으로부터 그 출력까지 신호를 전파하는 것에 대응한다. 이 연산은 게이트 입력에서의 도달 시간 및 게이트 지연의 합산에 의해 수행된다. 최악의 경우의 도달 시간의 계산은 게이트의 입력에 도달하는 신호로부터 최악의 경우의 신호를 선택한다. 최악의 신호는 타이밍 분석 유형에 따라 가장 늦은 신호 또는 가장 이른 신호일 수 있다.
타이밍 아크의 임계를 계산하는 제안된 방법은, 타이밍 아크의 임계가 도 5 및 도 6에서 도시된 바와 같이 타이밍 아크를 통하여 가는 모든 신호 전파 경로의 임계의 합산임을 발견한 본 발명자에 의해 이루어진 관찰에 기초한다.
도 5는 샘플 타이밍 그래프의 신호 전파 경로 및 타이밍 아크의 임계를 도시하는 개략도이다. 구체적으로, 도 5는 소스 노드(515) 및 싱크 노드(530)를 갖는 타이밍 그래프(500)를 도시한다. 타이밍 그래프(500)로부터, 최초 정점(535) 및 종착 정점(550)을 갖는 임의의 타이밍 아크(540)가 선택된다. 경로(520, 545 및 565)는 소스 노드(515)로부터 타이밍 아크(540)의 최초 노드(535)로 연장한다. 경로(525, 555 및 560)는 타이밍 아크(540)의 종착 노드(550)로부터 싱크 노드(530)로 연장한다. 타이밍 아크(540)를 통하여 가는 다양한 경로는 경로(520, 545 및 565), 타이밍 아크(540) 자체, 및 경로(525, 555 및 560)의 모든 가능한 조합이다. 타이밍 그래프(500)의 점 표시된 영역은 단순화를 위해 명시적으로 도시되지 않은 타이밍 그래프의 더 많은 노드 및 아크를 나타낸다.
각각의 경로의 지연은 식 (1)의 1차 선형 모델로 표시될 수 있다. 두 개의 경로 Sk 및 Sj와 그들 지연의 1차 선형 모델을 고려하자:
Figure 112008041657454-pct00013
(2)
Figure 112008041657454-pct00014
여기서,
Figure 112008041657454-pct00015
는 지연의 평균값이고,
Figure 112008041657454-pct00016
는 파라미터
Figure 112008041657454-pct00017
의 변동이고,
Figure 112008041657454-pct00018
이며, 여기서
Figure 112008041657454-pct00019
Figure 112008041657454-pct00020
의 평균값이고,
Figure 112008041657454-pct00021
는 파라미터 변동
Figure 112008041657454-pct00022
에 대한 경로의 지연의 민감도이고,
Figure 112008041657454-pct00023
는 경로 지연의 비상관 변동에 관련된 랜덤 변수이고,
Figure 112008041657454-pct00024
는 각각 비상관 변동
Figure 112008041657454-pct00025
에 대한 경로 지연의 민감도이다. 다음과 같은 경우가 아니라면, 지연
Figure 112008041657454-pct00026
Figure 112008041657454-pct00027
(랜덤 변수로 고려됨)이 동일한 정확한 값을 가질 확률은 0이다.
Figure 112008041657454-pct00028
(3)
그러면, 두 경로
Figure 112008041657454-pct00029
Figure 112008041657454-pct00030
중 적어도 하나가 임계일 확률은 각각의 경로가 임계일 개별 확률의 합이다:
Figure 112008041657454-pct00031
(
Figure 112008041657454-pct00032
또는
Figure 112008041657454-pct00033
가 임계) =
Figure 112008041657454-pct00034
(
Figure 112008041657454-pct00035
가 임계) +
Figure 112008041657454-pct00036
(
Figure 112008041657454-pct00037
가 임계) (4)
식 (3)이 유효한 경우, 경로
Figure 112008041657454-pct00038
Figure 112008041657454-pct00039
는 동일한 지연을 가질 수 있다. 그러면, 경로
Figure 112008041657454-pct00040
Figure 112008041657454-pct00041
중 하나가 임계인 경우, 다른 하나도 임계이다. 임계값은 식 (5)에 나타낸 바와 같이, 각각의 경로
Figure 112008041657454-pct00042
Figure 112008041657454-pct00043
에 할당될 수 있다.
Figure 112008041657454-pct00044
(
Figure 112008041657454-pct00045
가 임계) =
Figure 112008041657454-pct00046
(
Figure 112008041657454-pct00047
가 임계) =
Figure 112008041657454-pct00048
(
Figure 112008041657454-pct00049
또는
Figure 112008041657454-pct00050
가 임계)/2 (5)
식 (4)도 또한 식 (5)에 대하여 유효한 것을 알 수 있다.
식 (5)에 나타낸 개념은 한 쌍의 경로로부터 임의의 수의 경로까지 확장될 수 있다. 즉, 일 세트의 경로
Figure 112008041657454-pct00051
중 적어도 하나의 경로가 임계인 확률은 이들 경로의 각각이 임계일 개별 확률의 합과 동일하다:
Figure 112008041657454-pct00052
=
Figure 112008041657454-pct00053
Figure 112008041657454-pct00054
(
Figure 112008041657454-pct00055
가 임계) (6)
이로부터, 타이밍 아크의 임계는 도 6에 도시된 바와 같이 그 아크를 통하여 가는 모든 경로의 임계의 합이라는 것이 바로 이어진다.
도 6은 도 5의 샘플 타이밍 그래프에 도시된 바와 같이 타이밍 아크를 통하여 가는 경로의 임계 영역을 갖는 변동 공간을 도시한다. 구체적으로, 도 6은 두 개의 샘플 파라미터 변동의 공간(610), 즉 유효 채널 길이 Leff 및 트랜지스터 임계치 Vth의 공간(610)을 개략적으로 도시한다. 공간(610)은 -3σ에서 3σ까지 Leff 및 Vth의 변동을 커버한다. 공간(610)의 각각의 점은 Leff 및 Vth의 하나의 조합에 대응 한다. 다각형(615, 620, 625, 630, 635, 640, 645, 650, 655)은 타이밍 그래프(500)의 타이밍 아크(540)(도 5)를 통하여 가는 경로가 임계인 프로세스 파라미터 조합의 영역을 나타낸다. 다각형 영역의 각각은 아크(540)를 통하여 가는 9개의 경로 중 하나에 대응한다. 도 5의 타이밍 그래프는 예시적인 것이며, 본 발명의 양상의 보다 나은 이해를 위한 설명을 위해 도시된 것임은 명백할 것이다. 바람직한 실시예에서, 다각형 영역은 서로 접하기만 할 수 있으며, 경로 지연이 서로 다른 프로세스 파라미터의 선형 함수이기 때문에 교차하지는 않는다. 모든 다각형(615, 620, 625, 630, 635, 640, 645, 650, 655)의 합집합은, 아크(540)를 통하여 가는 경로 중 적어도 하나가 임계이면 타이밍 아크가 임계이기 때문에, 타이밍 아크(540)가 임계인 프로세스 파라미터 조합의 영역이 된다.
타이밍 아크 임계의 계산은 타이밍 그래프의 컷셋에 속하는 일 세트의 타이밍 아크가 고려된다면 단순화될 수 있다. 연결된 그래프의 컷셋은, 그래프로부터 그 컷셋의 삭제로 인해 두 개의 연결되지 않은 컴포넌트로 컷팅되는 것인, 임의의 세트의 아크로서 정의된다. 컷셋의 임의의 적절한 서브세트가 그 자체가 컷셋이 되지 않도록, 적절한(또는 최소) 컷셋이 컷셋이 된다.
타이밍 아크 임계의 계산을 단순화하기 위해, 타이밍 그래프를 두 부분, 즉 하나는 소스 정점을 포함하고 다른 하나는 싱크 정점을 포함하는 두 부분으로 분리하는 적절한 컷셋만 고려하자. 또한, 다음 특성을 충족시키는 컷셋만 고려하자:
컷셋 C가 타이밍 그래프를 두 개의 컴포넌트 F 및 G로 나누는데, 컴포넌트 F는 소스 정점을 포함하고, 컴포넌트 G는 싱크 정점을 포함하도록 나누는 경우, 임 의의 컷셋 아크의 최초 정점은 컴포넌트 F에 속하고, 임의의 컷셋 아크의 종착 정점은 컴포넌트 G에 속한다. 즉, 모든 컷셋 아크의 아크는 소스 정점을 포함하는 컴포넌트로부터 싱크 정점을 포함하는 컴포넌트로 향하게 된다. 단순화를 위하여, 적절한 컷셋은 다음의 설명에서 "컷셋"으로 칭한다.
타이밍 그래프는 방향성 비순환 그래프(DAG)이고, DAG의 정점들은 항상 위상적으로 분류될 수 있다(예를 들어, DAG는 각각의 아크가 하위 인덱스를 갖는 정점으로부터 상위 인덱스를 갖는 정점으로 가도록 순서화됨).
타이밍 그래프가 컷셋 C를 갖는 경우, 타이밍 그래프의 소스 정점으로부터 싱크 정점으로 가는 임의의 경로는 컷셋 C에 속하는 아크를 갖고, 그렇지 않은 경우에는, 소스 및 싱크 정점은 그래프의 서로 다른 컴포넌트에 속할 수 없다.
소스 정점으로부터 싱크 정점으로의 임의의 경로는 컷셋에 속하는 하나의 아크만 갖는다. 경로가 컷셋 아크를 통하여 가면, 경로는 싱크 정점을 갖는 컴포넌트에 도달하고 소스 정점을 갖는 컴포넌트에 되돌아올 수 없다. 그러므로, 이 경로는 컷셋의 또 다른 아크를 통하여 갈 수 없다. 따라서, 동일한 컷셋의 두 개의 타이밍 아크 a 및 b가 동시에 임계인 확률(즉, 둘 다의 타이밍 아크가 임계인 칩의 제조 확률)은, 아크가 그것들을 통하여 가는 서로 다른 세트의 경로를 갖기 때문에 0인 것으로 결론지을 수 있다.
타이밍 그래프의 임의의 컷셋에 대하여, 타이밍 아크의 임계의 합은 그 합이 칩의 모든 경로의 임계의 합을 나타내기 때문에 항상 1이다.
소정의 컷셋 C의 임의의 타이밍 아크
Figure 112008041657454-pct00056
에 대하여, 이 타이밍 아크를 통하 여 가는 모든 경로의 최대 지연의 1차 선형 모델
Figure 112008041657454-pct00057
이 알려져 있다고 가정하자. 그러면, 이들 모든 1차 모델
Figure 112008041657454-pct00058
의 통계적 최대치로서 타이밍 그래프의 최대 지연
Figure 112008041657454-pct00059
의 1차 모델은 다음과 같이 계산될 수 있다:
Figure 112008041657454-pct00060
(7)
여기서, 최대치는 컷셋 C의 모든 타이밍 아크에 걸쳐 통계적 방식으로 계산되고,
Figure 112008041657454-pct00061
는 컷셋에서 에지의 수이다.
타이밍 아크
Figure 112008041657454-pct00062
를 통하여 가는 경로의 최대 지연
Figure 112008041657454-pct00063
이 소스 정점으로부터 싱크 정점으로의 임의의 다른 경로의 지연보다 더 큰 확률
Figure 112008041657454-pct00064
은 정확하게 이 타이밍 아크
Figure 112008041657454-pct00065
의 임계가 된다. 이 확률
Figure 112008041657454-pct00066
은 식 (7)에서의 통계적 최대치의 계산에 있어서 지연
Figure 112008041657454-pct00067
에 대응하는 기밀 확률과 동일하다.
따라서, 타이밍 아크 임계의 계산에 대하여, 타이밍 그래프의 컷셋, 각각의 타이밍 아크를 통하여 가는 일 세트의 경로의 최대 지연의 1차 모델, 및 1차 선형 모델의 형태로 표현된 이들 최대 지연의 기밀 확률을 계산하는 것이 바람직하다.
도 7은 타이밍 그래프의 예시적인 컷셋을 도시한다. 구체적으로, 도 7은 타이밍 그래프(700)의 컷셋(780)의 예를 개략적으로 도시한다. 타이밍 그래프(700)는 소스 노드(735) 및 싱크 노드(750)를 갖는다. 컷셋(780)은 자신의 최초 노드(725, 725 및 760)로부터 자신의 종착 노드(740, 755 및 755)로 각각 가는 타이밍 아크(730, 785 및 765)를 포함한다. 일 세트의 경로(715)는 소스 노드(735)로부터 노드(725)로 간다. 일 세트의 경로(720)는 노드(740)로부터 싱크 노드(750)로 간다. 일 세트의 경로(770)는 소스 노드(735)로부터 노드(760)로 간다. 일 세트의 경로(775)는 노드(755)로부터 싱크 노드(750)로 간다.
도 8은 도 4에 도시된 예인 타이밍 그래프에 대하여 타이밍 그래프의 컷셋을 계산하는 방법 흐름도이다. 구체적으로, 도 8은 타이밍 그래프의 컷셋을 구성하는 방법(800)을 나타낸다. 컷셋은 많은 다양한 방식으로 구성될 수 있으며, 여기에 설명된 본 발명의 개념은 컷셋이 구성되는 방법에 관계없이 적용가능함을 이해하여야 한다. 방법(800)으로의 입력은 타이밍 그래프이고, 출력은 타이밍 그래프의 모든 타이밍 아크를 커버하는 일 세트의 컷셋이다.
시작 블록(810)은 기능 블록(815)에 제어를 전달한다.
단계 815에서, 기능 블록(815)은 타이밍 그래프를 레벨화(levelize)한다. 레벨화는 모든 타이밍 아크가 하위 레벨의 정점으로부터 상위 레벨의 정점으로 가도록, 타이밍 그래프의 일 세트 V의 정점들을 서브세트(레벨) V1, V2, ..., Vn으로 나누는 것으로 정의된다. 레벨화는 결정론적 및 통계적 타이밍 분석 둘 다에 사용되고, 타이밍 분석기(도 2에 도시된 타이밍 분석기(255))의 일부이다. 단계 815는 정적 타이밍 분석 툴의 적절한 기능 블록을 호출함으로써 또는 정적 타이밍 분석 툴에 의해 구축되는 레벨화된 타이밍 그래프에 직접 접근함으로써 구현될 수 있다. 그 다음, 단계 820이 수행된다.
단계 820에서, 엠프티(empty) 세트 C0이 구성된다. 이어서, 단계 825가 수행된다. 단계 825에서, 레벨의 카운터 i가 값 1로 초기화되고, 변수 n은 타이밍 그래 프의 레벨의 수와 동일한 것으로 설정된다. 그 다음, 방법은 단계 830으로 이동한다.
단계 830에서, 컷셋 Ci가 계산된다. 컷셋 Ci -1이 고려되고, 그로부터 레벨 Vi의 정점으로 오는 모든 아크가 삭제된다. 또한, 레벨 Vi의 정점으로부터 가는 모든 아크는 다음 공식을 따라 결과적인 컷셋에 추가된다:
Ci = Ci -1 -{Vi의 정점으로 오는 아크}+{Vi의 정점으로부터 가는 아크} (8)
그 다음, 방법은 단계 835로 이동한다.
단계 835는 레벨의 카운터 i를 1만큼 증분하고, 단계 840에 제어를 전달한다.
단계 840는 레벨의 카운터 i가 타이밍 그래프의 레벨의 수 n보다 작은지의 여부를 판정한다. 카운터 i가 n보다 작은 경우, 판정 블록(840)은 타이밍 그래프의 다음 컷셋을 계산하기 위해 기능 블록(830)에 제어를 전달한다. 그렇지 않은 경우에는, 단계 840은 종료 블록(845)에 제어를 전달한다.
도 9는 예시적인 타이밍 그래프의 컷셋의 계산을 도시한다. 구체적으로, 도 9는 소스 노드(926) 및 싱크 노드(956)를 갖는 타이밍 그래프(900)의 예에 대한 컷셋의 계산을 설명한다. 설명을 위해, 타이밍 그래프(900)의 하나의 레벨(903) 및 두 개의 컷셋(980 및 983)이 도시되어 있다. 레벨(903)은 정점(930 및 976)을 포함한다. 정점(903)은 인입(incoming) 아크(906) 및 인출(outgoing) 아크(910 및 940)를 갖는다. 정점(976)은 인입 타이밍 아크(946) 및 인출 타이밍 아크(970)를 갖는 다. 컷셋(980)은 타이밍 아크(906, 936 및 946)를 포함한다. 컷셋(983)은 타이밍 아크(910, 940, 936 및 970)를 포함한다. 도 9는 방법(800)이 타이밍 그래프(900)의 레벨(903)을 처리할 때의 스냅샷을 도시한다. 방법(800)은 컷셋(980)으로부터 컷셋(983)으로 전이(transition)한다. 방법은 아크(906, 936 및 946)를 갖는 컷셋(980)을 고려함으로써 컷셋(983)을 계산하고, 레벨(903)의 정점(930, 976)으로 오는 아크(906 및 946)를 컷셋(980)으로부터 제거하고, 레벨(903)의 정점(930, 976)으로부터 나가는 아크(910, 940 및 970)를 추가함으로써, 새로운 컷셋 {936, 910, 940, 970}을 생성한다.
도 10은 타이밍 그래프의 타이밍 아크를 통하여 가는 모든 경로의 최대 지연의 계산을 도시한다. 에지를 통하여 가는 모든 경로의 최대 지연은 그 에지의 에지 슬랙으로 부른다. 구체적으로, 도 10은 소스 정점(1015) 및 싱크 정점(1035)을 갖는 타이밍 그래프(1000)를 개략적으로 도시한다. 임의로 선택된 타이밍 아크(1040)를 통하여 가는 경로의 최대 지연의 1차 모델의 계산이 도시된다. 타이밍 아크(1040)는 최초 정점(1025) 및 종착 정점(1030)을 갖는다. 일 세트의 경로(1020)는 소스 정점(1015)으로부터 선택된 타이밍 아크(1040)의 최초 정점(1025)으로 간다. 일 세트의 경로(1045)는 선택된 타이밍 아크(1040)의 종착 정점(1030)으로부터 타이밍 그래프의 싱크 정점(1035)으로 간다. 타이밍 그래프(1000)에 도시된 점 표시된 영역은 명백하게 도시되지 않은 타이밍 그래프의 더 많은 노드 및 에지를 나타낸다.
파라미터화된 통계적 타이밍 분석이 1차 선형 모델의 형태로 그리고 정적 타 이밍 분석에서의 도달 및 요구 시간의 정의로부터 도달 및 요구 시간을 계산하였다고 가정하면, 타이밍 아크(1040)의 최초 정점(1025)에서의 도달 시간 TAT ,I은 정확하게 소스 정점(1015)으로부터 최초 정점(1025)까지의 신호 전파의 최대 지연인 것으로 결론지을 수 있다. 한편, 타이밍 아크(1040)의 종착 정점(1030)에서의 요구 시간 TRAT ,T은 정확하게 정점(1030)으로부터 싱크 정점(1035)까지의 신호 전파의 최대 지연이지만 음수 부호를 취한 것이다. 단순화를 위해, 소스 정점(1015)에서의 도달 시간 및 싱크 정점(1035)에서의 요구 시간은 0으로 설정된다고 가정한다. 타이밍 아크(1040)를 통하여 가는 일 세트의 경로의 최대 지연 DS는 소스 정점(1015)으로부터 타이밍 아크(1040)의 최초 정점(1025)까지의 최대 지연 D1 더하기 타이밍 아크(1040) 자체의 지연 Da 더하기 타이밍 아크(1040)의 종착 정점(1030)으로부터 싱크 정점(1035)까지의 최대 지연 DT이다:
DS = D1 + Da + DT (9)
이 지연은 통계적 정적 타이밍 분석에 의해 계산된 도달 및 요구 시간의 값에 관하여 표현될 수 있다:
DS = TAT ,I + Da - TRAT ,T (10)
식 (9) 및 (10)에서의 합산 및 감산은 통계적 방식으로 수행되는 것으로 이해하여야 한다.
상기로부터 알 수 있듯이, 타이밍 그래프의 임의의 타이밍 아크를 통하여 가 는 모든 경로의 최대 지연, 즉 임의의 타이밍 아크의 에지 슬랙은 통계적 타이밍 분석의 결과로부터 효율적으로 용이하게 계산될 수 있다.
도 10a는 도 4에 도시된 예인 타이밍 그래프의 에지의 임계 확률을 결정하기 위한 상위 레벨 방법 흐름도이다.
단계 1051에서, 타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프가 형성되고, 회로의 통계적 타이밍이 수행된다. 그 다음, 방법은 단계 1052로 이동한다.
단계 1052에서, 관심있는 각각의 에지에 대하여, 타이밍 그래프를 복수의 부분들로 나누는 컷셋이 정의된다. 그 다음, 단계 1053이 수행된다.
단계 1053에서, 컷셋에서 관심있는 각각의 에지에 대하여 에지 슬랙이 결정된다. 그 다음, 단계 1054가 수행된다.
단계 1054에서, 컷셋에서 모든 에지 슬랙의 통계적 최대치가 결정된다. 그 다음, 단계 1055가 수행된다.
단계 1055에서, 단계 1054의 통계적 최대치 연산으로부터 각각의 에지의 에지 임계 확률이 추정된다.
도 11은 도 9에 도시된 예인 타이밍 그래프에 대하여 타이밍 아크의 임계를 계산하는 방법(1100) 흐름도이다. 시작 블록(1110)은 기능 블록(1115)에 제어를 전달한다.
기능 블록(1115)은 타이밍 그래프의 각각의 정점에 대하여 도달 및 요구 도달 시간을 계산하는 파라미터화된 통계적 타이밍 분석을 수행한다. 기능 블 록(1115)은 기능 블록(1120)에 제어를 전달한다.
기능 블록(1120)은 타이밍 그래프에 포함된 모든 타이밍 아크를 커버하는 타이밍 그래프의 컷셋을 구성한다. 이는 예를 들어, 방법(800)에 의해 행해질 수 있다. 다른 적합한 방법이 사용될 수 있다. 컷셋은 한번에 모두 구성된 다음 처리될 수 있거나, 한번에 하나씩 구성 및 처리될 수 있다. 기능 블록(1120)은 기능 블록(1125)에 제어를 전달한다.
기능 블록(1125)은 변수 M을 기능 블록(1120)에 의해 구성된 컷셋의 수와 동일하게 설정한다. 기능 블록(1125)은 기능 블록(1130)에 제어를 전달한다.
기능 블록(1130)은 컷셋의 카운터 i를 1로 초기화하고, 기능 블록(1135)에 제어를 전달한다.
기능 블록(1135)은 기능 블록(1120)에 의해 구성된 일 세트의 컷셋으로부터 i번째 컷셋 Ci를 선택한다. 기능 블록(1135)은 기능 블록(1140)에 제어를 전달한다.
기능 블록(1140)은 N을 컷셋 Ci에서의 타이밍 아크의 수와 동일하게 설정하고, 기능 블록(1145)에 제어를 전달한다.
기능 블록(1145)은 현재 컷셋에서의 아크의 카운터 j를 1로 초기화하고, 기능 블록(1150)에 제어를 전달한다.
기능 블록(1150)은 컷셋 Ci으로부터 j번째 타이밍 아크 eij를 선택하고, 기능 블록(1155)에 제어를 전달한다.
기능 블록(1155)은 타이밍 아크 eij의 최초 및 종착 정점 vimit ,i,j 및 vterm ,i,j 을 찾고, 기능 블록(1160)에 제어를 전달한다.
기능 블록(1160)은 타이밍 아크 eij을 통하여 가는 일 세트의 모든 경로의 최대 지연 Dij(즉, eij의 에지 슬랙)의 1차 선형 모델을 다음과 같이 계산한다:
Figure 112008041657454-pct00068
(12)
여기서,
Figure 112008041657454-pct00069
는 정점 vimit ,i,j에서의 도달 시간이고,
Figure 112008041657454-pct00070
는 타이밍 아크 eij의 지연이고,
Figure 112008041657454-pct00071
는 정점 vterm ,i,j에서의 요구 시간이다.
기능 블록(1160)은 기능 블록(1165)에 제어를 전달한다.
기능 블록(1165)은 타이밍 아크의 카운터 j를 1만큼 증분하고, 판정 블록(1170)에 제어를 전달한다.
판정 블록(1170)은 j의 현재 값이 현재 컷셋 Ci에서의 타이밍 아크의 수인 N보다 크지 않은지의 여부를 판정한다. j가 N 이하인 경우, 판정 블록(1170)은 기능 블록(1150)에 제어를 전달한다. 그렇지 않은 경우에는, 판정 블록(1170)은 기능 블록(1175)에 제어를 전달한다.
기능 블록(1175)은 일 세트의 1차 모델 {Di ,1, Di ,2, ..., Di ,N}에 대하여 기밀 확률 Pi ,1, Pi ,2, ..., Pi ,N을 계산한다. 예를 들어, Pi ,1은 Di ,1이 {Di ,1, Di ,2, ..., Di,N}의 최대치인 확률이다. 이 계산은 여러 방식으로 행해질 수 있다. 가능한 방식 중 하나는 몬테-카를로 기술을 사용하는 것이다. 기밀 확률의 몬테-카를로 계산은, 타이밍 그래프의 깊이와 동일한 컷셋의 수만큼의 횟수만 적용되면 되기 때문에 효율적일 수 있다. 기능 블록(1175)은 기능 블록(1180)에 제어를 전달한다.
기능 블록(1180)은 현재 컷셋 Ci의 타이밍 아크 ei ,1, ei ,2, ..., ei ,N의 임계를 기능 블록(1175)에 의해 계산된 기밀 확률 Pi ,1, Pi ,2, ..., Pi ,N과 동일하게 설정한다. 기능 블록(1180)은 기능 블록(1185)에 제어를 전달한다.
기능 블록(1185)은 컷셋의 카운터 i를 1만큼 증분하고, 판정 블록(1190)에 제어를 전달한다.
판정 블록(1190)은 i의 현재 값이 컷셋의 수 M보다 크지 않은지의 여부를 판정한다. i의 현재 값이 M 이하인 경우, 판정 블록(1190)은 다음 컷셋을 처리하도록 기능 블록(1135)에 제어를 전달한다. 그렇지 않은 경우에는, 판정 블록(1190)은 종료 블록(1190)에 제어를 전달한다.
분리된 방법 800 및 1100에 의해 상기 설명한 바와 같이 타이밍 그래프의 컷셋의 계산과 타이밍 아크의 임계의 계산을 분리할 필요가 없을 수 있다. 방법 800, 1100은 컷셋에 속하는 타이밍 아크의 임계가 그 컷셋의 구성 직후에 계산되도록 조합될 수 있다.
도 12는 소정의 N개의 1차 선형 모델 m1, m2, ..., mN의 기밀 확률을 계산하기 위한 알고리즘(1200)의 블록도를 도시한다. 이들 1차 선형 모델은 예를 들어, 지연, 도달 또는 요구 시간의 모델일 수 있다. 에지 임계의 계산에 대하여, 그것들은 통상적으로 컷셋에서 모든 에지의 에지 슬랙이다.
알고리즘(1200)의 시작 블록(1205)은 기능 블록(1210)에 제어를 전달한다.
기능 블록(1210)은 N을 소정의 1차 통계적 모델의 수와 동일하게 설정하고, 기능 블록(1215)에 제어를 전달한다.
기능 블록(1215)은 1차 선형 모델의 카운터 i를 1로 초기화하고, 기능 블록(1220)에 제어를 전달한다.
기능 블록(1220)은 모델 mi를 제외한 모든 소정의 1차 선형 모델의 통계적 최대치를 계산한다. 이는 N-1개의 1차 선형 모델 m1, m2, ..., mi -1, mi +1, ..., mN의 통계적 최대치를 계산하는 것을 의미한다. 계산의 결과는 에지 i의 상보(complement) 에지 슬랙으로 부르는 1차 모델 mmax가 된다. 기능 블록(1220)은 기능 블록(1225)에 제어를 전달한다.
기능 블록(1225)은 1차 에지 슬랙 모델 mi이 기능 블록(1220)에 의해 계산된 1차 상보 에지 슬랙 모델 mmax보다 더 큰 기밀 확률 P를 계산한다. 기능 블록(1225)은 기능 블록(1230)에 제어를 전달한다.
기능 블록(1230)은 1차 모델 mi의 기밀 확률 Pi를 기능 블록(1225)에 의해 계산된 P의 값과 동일하게 설정하고, 기능 블록(1235)에 제어를 전달한다.
기능 블록(1235)은 1차 선형 모델의 카운터 i를 1만큼 증분하고, 판정 블록(1240)에 제어를 전달한다.
판정 블록(1240)은 i가 소정의 1차 모델의 수인 M보다 크지 않은지의 여부를 판정한다. i의 현재 값이 N 이하인 경우, 판정 블록(1240)은 기능 블록(1220)에 제어를 전달한다. 그렇지 않은 경우에는, 기능 블록(1245)에 제어를 전달한다.
기능 블록(1245)은 1차 선형 모델 m1, m2, ..., mN의 기밀 확률 P1, P2, ..., PN의 합 S를 계산하고, 기능 블록(1250)에 제어를 전달한다. 이론적으로, S는 1.0과 동일해야 하지만, 수의 반올림 또는 기타 근사화로 인해 1.0과 동일하지 않을 수 있다.
기능 블록(1250)은 기밀 확률 Pi를 S로 나눔으로써 각각의 기밀 확률 Pi의 값을 정규화(normalize)한다. 이러한 정규화는 기밀 확률의 합이 1임을 보장함으로써 계산의 정확도를 향상시킬 수 있다. 기능 블록(1250)은 종료 블록(1255)에 제어를 전달한다.
방법(1200)은 이진 통계적 최대치 연산의 O(N2) 적용을 요구할 수 있다. 다른 실시예에서, 임계는, 소정의 세트의 1차 선형 모델을 2, 4, 8, ..., 2logN 요소를 갖는 서브세트의 계층적 내포형 시스템(hierarchical nested system)으로 분할하고; 이 계층적 분할의 이진 분할 트리를 구축하고; 2개의 요소를 갖는 서브세트로부터 시작한 후 4개의 요소를 갖는 서브세트 등에 대하여 진행하는 등의 방식으로 각각의 서브 세트에 대하여 통계적 최대치를 선계산(precomputing)하고; 이진 분할 트리를 횡단하며 이 횡단 중에 상보적인 서브세트에 대한 통계적 최대치 및 요구되는 기밀 확률을 계산함으로써, 선형 시간 O(N)으로 계산될 수 있다.
일반성을 잃지 않고, 간결화를 위해, 임계가 계산되기를 원하는 1차 선형 모델 m1, m2, ..., mN의 수 N는 2의 제곱수인 것으로 가정한다:
Figure 112008041657454-pct00072
(13)
도 13은 일 세트의 8개의 1차 선형 모델 {m1, m2, m3, m4, m5, m6, m7, m8}의 계층적 밸런스 분할에 대하여 순서화된 이진 트리(1300)를 도시한다. 트리는 소정의 1차 선형 모델 {m1, m2, m3, m4, m5, m6, m7, m8}을 개략적으로 나타내는 루트(root) 노드(1303) 및 리프(leaf) 노드(1333, 1335, 1338, 1340, 1343, 1345, 1348, 1350)를 갖는다. 일 세트의 리프 노드는 제1 분할 레벨에서 서브세트(1323, 1325, 1328, 1330)로 분할된다. 트리 노드(1313, 1315, 1318, 1320)는 이들 서브세트 {{m1, m2}, {m3, m4}, {m5, m6}, {m7, m8}}에 대응한다. 일 세트의 제1 레벨의 서브세트는 제2 레벨의 두 개의 서브세트(1355, 1360)으로 분할된다. 트리 노드(1305, 1310)는 제2 레벨의 이들 서브세트 {{{m1, m2}, {m3, m4}}, {{m5, m6}, {m7, m8}}}에 대응한다.
도 14는 소정의 N개의 1차 에지 슬랙 선형 모델에 대하여 기밀 확률을 계산하기 위한 흐름도(1400)의 블록도를 도시한다. 본 발명자는 소정의 1차 에지 슬랙 모델의 수가 2의 제곱수인 것으로 가정하였지만, 본 방법은 명백하게 임의의 수의 1차 에지 슬랙 모델에 적응될 수 있다.
시작 블록(1405)은 기능 블록(1410)에 제어를 전달한다.
기능 블록(1410)은 N을 기밀 확률이 계산되기 원하는 소정의 1차 선형 에지 슬랙의 수와 동일하게 설정한다. 기능 블록(1410)은 기능 블록(1415)에 제어를 전달한다.
기능 블록(1415)은 분할 트리에서의 레벨의 수를 다음과 같이 계산한다:
Figure 112008041657454-pct00073
(14)
계산은 소정의 1차 모델의 수가 2의 제곱수(예를 들어, N은 2의 제곱수)라는 가정으로 인해 정확하다. 그러나, 방법(1400)은 임의의 수의 1차 모델을 처리하도록 확장될 수 있다. 기능 블록(1415)은 기능 블록(1420)에 제어를 전달한다.
기능 블록(1420)은 분할 트리의 리프(예를 들어, 최하위) 레벨을 구축하고, 소정의 1차 선형 모델에 대응하여 순서화된 세트의 리프 노드를 구성한다. 기능 블록(1420)은 기능 블록(1425)에 제어를 전달한다.
기능 블록(1425)은 분할 레벨의 카운터(예를 들어, 분할 트리 레벨) i를 1로 설정하고, 기능 블록(1430)에 제어를 전달한다.
기능 블록(1430)은 현재의 분할 레벨에서 서브세트의 수(예를 들어, 분할 트리의 현재 레벨 상의 노드)를 M=N/2로 설정하고, 기능 블록(1435)에 제어를 전달한다.
기능 블록(1435)은 현재의 분할 레벨에서 서브세트의 카운터 j를 1로 초기화하고, 기능 블록(1440)에 제어를 전달한다.
기능 블록(1440)은 분할의 i번째 레벨의 j번째 서브세트를 다음과 같이 구성한다:
Figure 112008041657454-pct00074
(15)
이 서브세트 Si ,j는 이전의 분할 레벨로부터 두 개의 서브세트 Si -1,2j-1, Si -1, 2j를 그에 포함시킴으로써 구성된다. 서브세트 Si -1,2j-1, Si -1, 2j는 이전의 분할 레벨에서 서브세트의 순서에 따라 취해진다. 기능 블록(1440)은 기능 블록(1445)에 제어를 전달한다.
기능 블록(1445)은 구성된 서브세트 Si ,j의 1차 선형 모델 mi ,j를 계산하고, 그것을 이 서브세트에 할당한다. 이 1차 모델 mi ,j는, 서브세트 Si ,j를 구성하는 데 사용되는 서브세트 Si -1,2j-1, Si -1,2j에 대응하여 1차 선형 모델 mi -1,2j-1, mi -1,2j의 통계적 최대치를 계산함으로써, 계산된다. 1차 선형 모델 mi ,j는 서브세트 Si ,j에 포함되는 모든 1차 선형 모델의 통계적 최대치의 1차 선형 모델이다. 기능 블록(1445)은 기능 블록(1450)에 제어를 전달한다.
기능 블록(1450)은 서브세트의 카운터 j의 현재 값을 1만큼 증분하고, 판정 블록(1455)에 제어를 전달한다.
판정 블록(1455)은 j가 현재의 분할 레벨에서 서브세트의 수인 M보다 크지 않은지의 여부를 판정한다. j가 현재의 분할 레벨에서 서브세트의 수 이하인 경우, 판정 블록(1455)은 현재의 분할 레벨 상에 다음 서브세트를 구성하도록, 기능 블록(1440)에 제어를 전달한다. 그렇지 않은 경우에는, 제어는 기능 블록(1460)에 전달된다.
기능 블록(1460)은 i번째 분할 레벨에 대응하여 분할 트리의 i번째 레벨을 구성한다. 이러한 구성은 서브세트의 구성 중에 행해질 수 있다. 그러나, 바람직한 실시예에서, 본 발명자는 보다 명료하게 하기 위하여 트리 노드의 구성을 서브세트의 구성과 분리하였다. 기능 블록(1460)은 기능 블록(1465)에 제어를 전달한다.
기능 블록(1465)은 분할 레벨의 카운터 i를 1만큼 증분하고, 기능 블록(1470)에 제어를 전달한다.
기능 블록(1470)은 다음의 분할 레벨에서 서브세트의 수 M을 M=M/2으로서 계산하고, 판정 블록(1475)에 제어를 전달한다.
판정 블록(1475)은 i가 분할 레벨의 수 n보다 작은지의 여부를 판정한다. i가 n보다 작은 경우, 판정 블록(1475)은 다음의 분할 레벨을 구성하도록, 기능 블록(1435)에 제어를 전달한다. 그렇지 않은 경우에는, 제어는 기능 블록(1480)에 전달된다.
기능 블록(1480)은 트리에 루트 노드를 추가함으로써 분할 트리의 구성을 완료하고, 기능 블록(1483)에 제어를 전달한다.
기능 블록(1483)은 루트 노드의 우측 자식에 대응하는 서브세트의 1차 선형 모델 mright와 동일하게 루트 노드의 좌측 자식에 상보 1차 선형 모델 m1, compl을 할당한다. 이 상보 모델은 좌측 자식에 대응하는 서브세트에 상보적인 서브세트의 통계적 최대치의 1차 선형 모델과 동일하다. 기능 블록(1483)은 기능 블록(1485)에 제어를 전달한다.
기능 블록(1485)은 루트 노드의 좌측 자식에 대응하는 서브세트의 1차 선형 모델 mleft과 동일하게 루트 노드의 우측 자식에 상보 1차 선형 모델 mr , coml을 할당한다. 이 상보 모델은 우측 좌식에 대응하는 서브세트에 상보적인 서브세트의 통계적 최대치의 1차 선형 모델과 동일하다. 기능 블록(1485)은 기능 블록(1488)에 제어를 전달한다.
기능 블록(1488)은 상부로부터 하부로 분할 트리의 좌측 서브트리를 횡단하고, 그 리프 노드에 대하여 기밀 확률을 계산한다. 횡단 방법(1500)은 도 15에 대하여 아래에 설명된다. 기능 블록(1488)은 기능 블록(1490)에 제어를 전달한다.
기능 블록(1490)은 상부로부터 하부로 분할 트리의 우측 서브트리를 횡단하고, 그 리프 노드에 대하여 기밀 확률을 계산한다. 기능 블록(1490)은 종료 블록(1495)에 제어를 전달한다.
도 15는 분할 서브트리를 횡단하고 그 리프 노드에 대응하는 1차 모델의 기밀 확률을 계산하는 방법 흐름도(1500)를 도시한다. 방법(1500)은 되부름(recursive) 구조를 갖는다. 즉, 방법은 하위 레벨 서브트리를 횡단하기 위해 자신을 호출한다. 방법(1500)은 분할 서브트리의 노드에 대응하는 서브세트에 상보적인 서브세트를 고려한다. 방법(1500)은 상보적인 서브세트의 요소의 통계적 최대치의 1차 선형 모델을 계산한다. 상보적인 서브세트의 1차 선형 모델은 상보 1차 선형 모델 또는 상보 에지 슬랙으로 부른다.
방법(1500)은 서브트리의 루트가 방법(1500)을 호출하기 전에 할당된 상보 1 차 모델을 갖는다고 가정한다. 이는 방법(1500)을 호출하는 방법(1400)에 의해 또는 되부름 방식으로 자신을 호출하기 전의 방법(1500)에 의해 행해질 수 있다.
시작 블록(1505)은 판정 블록(1510)에 제어를 전달한다.
판정 블록(1510)은 루트 노드의 자식 노드가 리프인지의 여부를 판정한다. 자식 노드가 리프인 경우, 판정 블록(1510)은 리프 노드를 처리하도록, 기능 블록(1515)에 제어를 전달한다. 그렇지 않은 경우에는, 기능 블록(1535)에 제어를 전달한다.
기능 블록(1515)은 루트 노드의 상보 모델 mroot , compl 및 우측 리프 노드의 1차 모델 mleaf , right의 통계적 최대치로서 좌측 상보 1차 선형 모델 m1, compl을 계산한다. 기능 블록(1515)은 기능 블록(1520)에 제어를 전달한다.
기능 블록(1520)은 좌측 리프 노드의 1차 선형 모델 mleaf , left 및 좌측 상보 1차 모델 ml , compl의 이진 기밀 확률로서 좌측 리프 노드의 1차 모델 mleaf , left에 대한 기밀 확률을 계산한다. 기능 블록(1420)은 기능 블록(1425)에 제어를 전달한다.
기능 블록(1525)은 루트 노드의 상보 모델 mroot , compl 및 좌측 리프 노드의 1차 모델 mleaf , left의 통계적 최대치로서 우측 상보 1차 선형 모델 mr , compl을 계산한다. 기능 블록(1525)은 기능 블록(1530)에 제어를 전달한다.
기능 블록(1530)은 우측 리프 노드의 1차 모델 mleaf , right 및 우측 상보 1차 선형 모델 mr , compl의 이진 기밀 확률로서 우측 리프 노드의 1차 선형 모델 mleaf , right에 대한 기밀 확률을 계산한다. 기능 블록(1530)은 종료 블록(1555)에 제어를 전달한다.
기능 블록(1535)은 루트 노드의 상보 모델 mroot , comp 및 루트 노드의 우측 자식에 대응하는 서브세트의 1차 선형 모델 mright의 통계적 최대치로서 좌측 자식 노드에 대한 상보 1차 선형 모델 ml , coml을 계산한다. 기능 블록(1535)은 기능 블록(1540)에 제어를 전달한다.
기능 블록(1540)은 루트 노드의 상보 모델 mroot , comp 및 루트 노드의 좌측 자식에 대응하는 서브세트의 1차 선형 모델 mleft의 통계적 최대치로서 우측 자식 노드에 대한 상보 1차 선형 모델 mr , comp를 계산한다. 기능 블록(1540)은 기능 블록(1545)에 제어를 전달한다.
기능 블록(1545)은 상부로부터 하부로 분할 트리의 좌측 서브트리를 횡단하고, 그 리프 노드에 대한 기밀 확률을 계산한다. 횡단은 방법(1500)을 되부름 방식으로 호출함으로써 수행된다. 기능 블록(1545)은 기능 블록(1550)에 제어를 전달한다.
기능 블록(1550)은 상부로부터 하부로 분할 트리의 후측 서브트리를 횡단하고, 그 리프 노드에 대하여 기밀 확률을 계산한다. 횡단은 알고리즘(1500)을 되부름 방식으로 호출함으로써 수행된다. 기능 블록(1550)은 종료 블록(1555)에 제어를 전달한다.
본 방법은 효율적이며 고유 상관관계(inherent correlation)를 제대로 고려한다. 회로의 성능에 영향을 미치는 모든 변동원이 마찬가지로 고려된다. 수동이든 자동 기술이든지, 최적화, 레이아웃, 버퍼 삽입 및 라우팅과 같은 다양한 설계 작업 중에 결과적인 임계 확률이 활용된다.
도 16은 본 발명의 다양한 양상을 구현하기 위한 컴퓨터 시스템이다.
컴퓨터 시스템(1600)은 컴퓨터 기반구조(1602)에 제공된다. 컴퓨터 시스템(1600)은 본 발명의 교시를 수행할 수 있는 임의의 유형의 컴퓨터 시스템을 나타내는 것으로 의도된다. 예를 들어, 컴퓨터 시스템(1600)은 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 핸드헬드 디바이스, 서버, 컴퓨터 클러스터 등일 수 있다. 사용자(1604)가 컴퓨터 시스템(1600)에 직접 액세스할 수 있거나, 네트워크(1606)(예를 들어, 인터넷, 광역 네트워크(WAN), 로컬 영역 네트워크(LAN), 가상 사설 네트워크(VPN) 등)를 통해 컴퓨터 시스템(1600)과 통신하는 컴퓨터 시스템을 운영할 수 있음을 인식하여야 한다. 후자의 경우, 컴퓨터 시스템(1600)과 사용자 운영 컴퓨터 시스템 사이의 통신은 다양한 유형의 통신 링크의 임의의 조합을 통하여 발생할 수 있다. 예를 들어, 통신 링크는 유선 및/또는 무선 전송 방법의 임의의 조합을 이용할 수 있는 어드레스가능한 접속을 포함할 수 있다. 인터넷을 통하여 통신이 발생하는 경우, 종래의 TCP/IP 소켓 기반의 프로토콜에 의해 접속성이 제공될 수 있고, 인터넷에 대한 접속성을 확립하는 데 인터넷 서비스 프로바이더가 사용될 수 있다.
컴퓨터 시스템(1600)은 프로세싱 유닛(1608), 메모리(1610), 버스(1612), 및 입력/출력(I/O) 인터페이스(1614)를 포함하는 것으로 도시되어 있다. 또한, 컴퓨터 시스템(1600)은 외부 디바이스/리소스(1616) 및 하나 이상의 저장 시스템(1618)과 통신하는 것으로 도시되어 있다. 일반적으로, 프로세싱 유닛(1608)은 메모리(1610) 및/또는 저장 시스템(들)(1618)에 저장된, 예를 들어 에지 임계를 계산하기 위한 컴퓨터 프로그램 코드를 실행한다. 컴퓨터 프로그램 코드를 실행하는 동안, 프로세싱 유닛(1608)은 메모리(1610), 저장 시스템(들)(1618) 및/또는 I/O 인터페이스(1614)에 대하여 데이터를 판독 및/또는 기록할 수 있다. 버스(1612)는 컴퓨터 시스템(1600)에서 각각의 컴포넌트 사이의 통신 링크를 제공한다. 외부 디바이스/리소스(1616)는 사용자가 컴퓨터 시스템(1600)과 상호동작할 수 있게 해주는 임의의 디바이스(예를 들어, 키보드, 포인팅 디바이스, 디스플레이(예를 들어, 디스플레이(1620), 프린터 등) 및/또는 컴퓨터 시스템(1600)이 하나 이상의 다른 컴퓨팅 디바이스와 통신할 수 있게 해주는 임의의 디바이스(예를 들어, 네트워크 카드, 모델 등)를 포함할 수 있다.
컴퓨터 기반구조(1602)는 본 발명을 위해 구현하기 위해 사용될 수 있는 다양한 유형의 컴퓨터 기반구조를 단지 설명하기 위한 것이다. 예를 들어, 일 실시예에서, 컴퓨터 기반구조(1602)는 본 발명의 다양한 프로세스 단계를 수행하도록 네트워크(예를 들어, 네트워크(1606))를 통해 통신하는 둘 이상의 컴퓨팅 디바이스(예를 들어, 서버 클러스터)를 포함할 수 있다. 또한, 컴퓨터 시스템(1600)은 본 발명의 실시에 사용될 수 있는 수많은 유형의 컴퓨터 시스템을 단지 나타내기 위한 것으로, 그 각각은 수많은 조합의 하드웨어/소프트웨어를 포함할 수 있다. 예를 들 어, 프로세싱 유닛(1608)은 단일 프로세싱 유닛을 포함할 수 있고, 또는 하나 이상의 장소에서, 예를 들어 클라이언트 및 서버 상에 하나 이상의 프로세싱 유닛에 걸쳐 분산될 수 있다. 마찬가지로, 메모리(1610) 및/또는 저장 시스템(들)(1618)은 하나 이상의 물리적 장소에 상주하는 다양한 유형의 데이터 저장장치 및/또는 전송 매체의 임의의 조합을 포함할 수 있다. 또한, I/O 인터페이스(1614)는 하나 이상의 외부 디바이스/리소스(1616)와 정보를 교환하기 위한 임의의 시스템을 포함할 수 있다. 또한, 도 16에 도시되지 않은 하나 이상의 추가 컴포넌트(예를 들어, 시스템 소프트웨어, 통신 시스템, 캐시 메모리 등)가 컴퓨터 시스템(1600)에 포함될 수 있다는 것을 이해하여야 한다. 하지만, 컴퓨터 시스템(1600)이 핸드헬드 디바이스 등을 포함하는 경우, 하나 이상의 외부 디바이스/리소스(1616)(예를 들어, 디스플레이(1620)) 및/또는 하나 이상의 저장 시스템(들)(1618)이 도시된 바와 같이 외부가 아니라 컴퓨터 시스템(1600)에 포함될 수 있다는 것을 이해하여야 한다.
저장 시스템(들)(1618)은 본 발명에 따라 정보에 대해 저장공간을 제공할 수 있는 임의의 유형의 시스템(예를 들어, 데이터베이스)일 수 있다. 이에 대하여, 저장 시스템(들)(1618)은 자기 디스크 드라이브 또는 광학 디스크 드라이브와 같은 하나 이상의 저장 디바이스를 포함할 수 있다. 다른 실시예에서, 저장 시스템(들)(1618)은 예를 들어 로컬 영역 네트워크(LAN), 광역 네트워크(WAN) 또는 저장 영역 네트워크(SAN)(도시되지 않음)에 걸쳐 분산된 데이터를 포함할 수 있다.
또한, 도시되지 않았지만, 사용자(1604)에 의해 운영되는 컴퓨터 시스템은 컴퓨터 시스템(1600)에 대하여 상기 설명한 것들과 유사하게 컴퓨터화된 컴포넌트 를 포함할 수 있다.
여기에 제공된 본 발명의 설명은 최대 연산에 중점을 맞추었지만, 당 기술 분야에 통상적인 지식을 가진 자라면, 본 발명의 교시를 최소 연산에 적용할 수 있다는 것을 인식해야 한다. 또한, 여기에 제공된 본 발명의 설명은 가장 늦은 도달 시간의 계산에 중점을 맞추었지만, 당 기술 분야에 통상적인 지식을 가진 자라면, 본 발명의 교시를 가장 이른 도달 시간의 계산에 적용할 수 있음을 인식해야 한다. 또한, 여기에 제공된 본 발명의 설명은 조합형 회로에 중점을 맞추었지만, 당 기술 분야에 통상적인 지식을 가진 자라면, 본 발명의 교시를 순차적 회로에 적용할 수 있음을 인식해야 한다. 추가적으로, 여기에 제공된 본 발명의 설명은 게이트 지연이 분리가능한 기능인 경우에 중점을 맞추었지만, 당 기술 분야에 통상적인 지식을 가진 자라면, 게이트 지연은 분리가능하지 않은 기능인 경우에 적용할 수 있음을 인식 해야 한다.

Claims (11)

  1. 회로의 타이밍 그래프의 에지의 임계 확률을 결정하는 방법으로서,
    타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프(directed acyclic timing graph)를 형성하는 단계;
    상기 회로의 통계적 타이밍을 수행하는 단계;
    관심있는 각각의 에지에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋(cutset)을 정의하는 단계;
    상기 컷셋에서 각각의 에지에 대하여 에지 슬랙(edge slack)을 결정하는 단계;
    상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하는 단계; 및
    상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하는 단계를 포함하는 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  2. 청구항 1에 있어서,
    상기 복수의 부분들 중 제1 부분은 상기 타이밍 그래프의 소스(source) 노드를 포함하고, 상기 복수의 부분들 중 제2 부분은 상기 타이밍 그래프의 싱크(sink) 노드를 포함하는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  3. 청구항 2에 있어서,
    상기 컷셋은 에지를 포함하고, 상기 에지의 소스 노드는 상기 타이밍 그래프의 현재 레벨보다 작은 레벨에 있는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  4. 청구항 2에 있어서,
    상기 컷셋은 에지를 포함하고, 상기 에지의 싱크 노드는 상기 타이밍 그래프의 현재 레벨보다 더 큰 레벨에 있는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  5. 청구항 1에 있어서,
    상기 추정하는 단계는 컷셋에서 모든 에지의 에지 슬랙의 최대치의 기밀 확률(tightness probability)로서 각각의 에지의 에지 임계 확률을 결정하는 단계를 포함하는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  6. 청구항 1에 있어서,
    상기 회로의 성능에 영향을 미치는 변동원이 동시에 고려되는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  7. 청구항 1에 있어서,
    상기 추정하는 단계는 분할 트리 데이터 구조를 사용함으로써 행해지는 것인 회로 타이밍 그래프의 에지 임계 확률 결정 방법.
  8. 회로의 타이밍 특성을 최적화하는 방법으로서,
    청구항 1 내지 청구항 7 중 어느 한 항의 방법에 따라 타이밍 그래프의 에지의 임계 확률을 결정하는 단계; 및
    상기 임계 확률을 사용하여 회로의 타이밍 특성의 최적화를 안내하는 단계를 포함하는 회로의 타이밍 특성 최적화 방법.
  9. 회로의 통계적 타이밍 분석에서 임계를 예상하는 시스템으로서,
    타이밍되는 회로에 대응하는 방향성 비순환 타이밍 그래프를 형성하는 수단;
    상기 회로의 통계적 타이밍을 수행하는 수단;
    상기 타이밍 그래프의 각각의 레벨에 대하여, 상기 타이밍 그래프를 복수의 부분들로 나누는 컷셋을 정의하는 수단;
    상기 컷셋에서 각각의 에지에 대하여 에지 슬랙을 결정하는 수단;
    상기 컷셋에서 모든 에지 슬랙의 통계적 최대치를 계산하는 수단; 및
    상기 통계적 최대치로부터 각각의 에지의 에지 임계 확률을 추정하는 수단을 포함하는 회로의 통계적 타이밍 분석의 임계 예상 시스템.
  10. 청구항 1 내지 청구항 7 중 어느 한 항에 따른 방법의 모든 단계를 수행하기 위한 명령어를 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  11. 청구항 8항에 따른 방법의 모든 단계를 수행하기 위한 명령어를 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
KR1020087014021A 2005-12-16 2006-12-12 통계적 타이밍 분석에서의 임계 예상 시스템 및 방법 KR100998798B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/303,792 2005-12-16
US11/303,792 US7437697B2 (en) 2005-12-16 2005-12-16 System and method of criticality prediction in statistical timing analysis

Publications (2)

Publication Number Publication Date
KR20080075868A KR20080075868A (ko) 2008-08-19
KR100998798B1 true KR100998798B1 (ko) 2010-12-06

Family

ID=37708166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014021A KR100998798B1 (ko) 2005-12-16 2006-12-12 통계적 타이밍 분석에서의 임계 예상 시스템 및 방법

Country Status (6)

Country Link
US (1) US7437697B2 (ko)
EP (1) EP1969502B1 (ko)
JP (1) JP5004965B2 (ko)
KR (1) KR100998798B1 (ko)
CN (1) CN101317178B (ko)
WO (1) WO2007068690A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774294B2 (ja) * 2005-12-26 2011-09-14 富士通株式会社 集積回路レイアウト装置、その方法及びプログラム
US7480880B2 (en) * 2006-02-21 2009-01-20 International Business Machines Corporation Method, system, and program product for computing a yield gradient from statistical timing
JP4734141B2 (ja) * 2006-02-28 2011-07-27 富士通株式会社 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析方法、および遅延解析装置
US7698674B2 (en) * 2006-12-01 2010-04-13 International Business Machines Corporation System and method for efficient analysis of point-to-point delay constraints in static timing
US8151229B1 (en) * 2007-04-10 2012-04-03 Cadence Design Systems, Inc. System and method of computing pin criticalities under process variations for timing analysis and optimization
US7861199B2 (en) * 2007-10-11 2010-12-28 International Business Machines Corporation Method and apparatus for incrementally computing criticality and yield gradient
JP5076832B2 (ja) * 2007-11-22 2012-11-21 富士通株式会社 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
US8799840B1 (en) 2008-02-14 2014-08-05 Cadence Design Systems, Inc. Branch and bound techniques for computation of critical timing conditions
US7844933B2 (en) * 2008-05-01 2010-11-30 International Business Machines Corporation Methods of optimizing timing of signals in an integrated circuit design using proxy slack values
US8056035B2 (en) 2008-06-04 2011-11-08 International Business Machines Corporation Method and system for analyzing cross-talk coupling noise events in block-based statistical static timing
US8028260B1 (en) * 2008-10-14 2011-09-27 Altera Corporation Determination of most critical timing paths in digital circuits
US9098661B1 (en) * 2008-12-10 2015-08-04 The Mathworks, Inc. Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US8141025B2 (en) * 2009-01-15 2012-03-20 International Business Machines Corporation Method of performing timing analysis on integrated circuit chips with consideration of process variations
WO2010092825A1 (ja) * 2009-02-13 2010-08-19 パナソニック株式会社 回路解析方法
US8122404B2 (en) * 2009-02-19 2012-02-21 International Business Machines Corporation Performing a statistical timing abstraction for a hierarchical timing analysis of VLSI circuits
US8781792B2 (en) * 2009-10-31 2014-07-15 International Business Machines Corporation Yield computation and optimization for selective voltage binning
CN102231130B (zh) * 2010-01-11 2015-06-17 国际商业机器公司 计算机系统性能分析方法和装置
US8266565B2 (en) * 2010-01-29 2012-09-11 International Business Machines Corporation Ordering of statistical correlated quantities
US8365116B2 (en) 2010-12-06 2013-01-29 University Of Utah Research Foundation Cycle cutting with timing path analysis
US8615727B2 (en) * 2010-12-16 2013-12-24 Synopsys, Inc. Simultaneous multi-corner static timing analysis using samples-based static timing infrastructure
US9235675B2 (en) * 2011-04-01 2016-01-12 Taiwan Semiconductor Manufacturing Company, Ltd. Multidimensional monte-carlo simulation for yield prediction
KR20130111061A (ko) * 2012-03-30 2013-10-10 한국전자통신연구원 이진 분할 트리를 이용한 영상 인코딩 방법
US8977998B1 (en) * 2013-02-21 2015-03-10 Altera Corporation Timing analysis with end-of-life pessimism removal
US9342639B1 (en) * 2015-02-17 2016-05-17 International Business Machines Corporation Method of hierarchical timing closure of VLSI circuits using partially disruptive feedback assertions
KR102398596B1 (ko) 2015-06-15 2022-05-16 삼성전자주식회사 집적 회로의 수율 예측 방법 및 집적 회로의 설계 최적화 방법
US9760664B2 (en) * 2015-07-07 2017-09-12 International Business Machines Corporation Validating variation of timing constraint measurements
US9690899B2 (en) * 2015-08-13 2017-06-27 International Business Machines Corporation Prioritized path tracing in statistical timing analysis of integrated circuits
US9600617B1 (en) * 2015-09-01 2017-03-21 International Business Machines Corporation Automated timing analysis
US9865486B2 (en) 2016-03-29 2018-01-09 Globalfoundries Inc. Timing/power risk optimized selective voltage binning using non-linear voltage slope
US10318686B2 (en) 2016-10-11 2019-06-11 Intel Corporation Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US9767239B1 (en) 2016-10-20 2017-09-19 International Business Machines Corporation Timing optimization driven by statistical sensitivites
JP6787045B2 (ja) * 2016-10-31 2020-11-18 富士通株式会社 検証支援プログラム、検証支援方法、および情報処理装置
CN108228919A (zh) * 2016-12-09 2018-06-29 厦门紫光展锐科技有限公司 一种集成电路接口的时序生成方法及装置
CN108733832B (zh) * 2018-05-28 2019-04-30 北京阿可科技有限公司 有向无环图的分布式存储方法
US10747924B2 (en) * 2018-07-16 2020-08-18 Taiwan Semiconductor Manufacturing Company Ltd. Method for manufacturing integrated circuit with aid of pattern based timing database indicating aging effect
WO2022125978A1 (en) * 2020-12-11 2022-06-16 Synopsys, Inc. Machine learning delay estimation for emulation systems
CN114239444B (zh) * 2021-12-21 2023-08-29 东南大学 一种基于块的电路延时模型的建立方法
CN114818570B (zh) * 2022-03-11 2024-02-09 西北工业大学 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法
CN117574820A (zh) * 2024-01-15 2024-02-20 中科亿海微电子科技(苏州)有限公司 一种增量时序分析方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243954A1 (en) 2003-05-29 2004-12-02 International Business Machines Corporation Method, apparatus, and program for block-based static timing analysis with uncertainty

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365463A (en) 1990-12-21 1994-11-15 International Business Machines Corporation Method for evaluating the timing of digital machines with statistical variability in their delays
JP2002279012A (ja) * 2000-11-22 2002-09-27 Matsushita Electric Ind Co Ltd 遅延分布計算方法、回路評価方法およびフォールスパス抽出方法
US6637014B2 (en) * 2001-03-06 2003-10-21 Nec Corporation Crosstalk mitigation method and system
US20040002844A1 (en) * 2002-06-27 2004-01-01 Jess Jochen A.G. System and method for statistical modeling and statistical timing analysis of integrated circuits
US7111260B2 (en) 2003-09-18 2006-09-19 International Business Machines Corporation System and method for incremental statistical timing analysis of digital circuits
US7428716B2 (en) * 2003-09-19 2008-09-23 International Business Machines Corporation System and method for statistical timing analysis of digital circuits
US7086023B2 (en) 2003-09-19 2006-08-01 International Business Machines Corporation System and method for probabilistic criticality prediction of digital circuits
US7350171B2 (en) * 2005-11-17 2008-03-25 Lizheng Zhang Efficient statistical timing analysis of circuits

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243954A1 (en) 2003-05-29 2004-12-02 International Business Machines Corporation Method, apparatus, and program for block-based static timing analysis with uncertainty

Also Published As

Publication number Publication date
EP1969502B1 (en) 2012-08-01
US7437697B2 (en) 2008-10-14
KR20080075868A (ko) 2008-08-19
EP1969502A1 (en) 2008-09-17
JP2009519528A (ja) 2009-05-14
CN101317178B (zh) 2010-07-21
WO2007068690A1 (en) 2007-06-21
CN101317178A (zh) 2008-12-03
US20070143722A1 (en) 2007-06-21
JP5004965B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
KR100998798B1 (ko) 통계적 타이밍 분석에서의 임계 예상 시스템 및 방법
US9652576B2 (en) Detailed placement with search and repair
JP3836715B2 (ja) リーク低減制御を論理回路に挿入するシステム及び方法
US8112728B1 (en) Early timing estimation of timing statistical properties of placement
US8645882B2 (en) Using entropy in an colony optimization circuit design from high level synthesis
US8296712B2 (en) Method and apparatus for improving the interconnection and multiplexing cost of circuit design from high level synthesis using ant colony optimization
Sun et al. Correlated multi-objective multi-fidelity optimization for HLS directives design
US8201121B1 (en) Early estimation of power consumption for electronic circuit designs
Witschen et al. CIRCA: Towards a modular and extensible framework for approximate circuit generation
Grewal et al. Automatic flow selection and quality-of-result estimation for FPGA placement
Vaverka et al. Evolving component library for approximate high level synthesis
JP2008015747A (ja) 統計的タイミング解析の悲観的誤差を評価する方法
Siddavaatam et al. Grey wolf optimizer driven design space exploration: a novel framework for multi-objective trade-off in architectural synthesis
US8296713B2 (en) Method and apparatus for synthesizing pipelined input/output in a circuit design from high level synthesis
Mrazek et al. EvoApproxLib: Extended library of approximate arithmetic circuits
US9798843B2 (en) Statistical timing using macro-model considering statistical timing value entry
Chang et al. DTOC: integrating Deep-learning driven Timing Optimization into the state-of-the-art Commercial EDA tool
Brayton et al. An integrated technology mapping environment
Balaskas et al. Variability-aware approximate circuit synthesis via genetic optimization
Xie Bicriterion discrete equilibrium network design problem
Bommu et al. Retiming-based factorization for sequential logic optimization
Meng et al. HEDALS: Highly Efficient Delay-driven Approximate Logic Synthesis
Gunter et al. A Machine Learning Approach for Predicting the Difficulty of FPGA Routing Problems
Rodriguez et al. A hypergraph model and associated optimization strategies for path length-driven netlist partitioning
Acebrón A probabilistic linear solver based on a multilevel Monte Carlo method

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
LAPS Lapse due to unpaid annual fee