KR20230159424A - 감소된 블록 모델 뷰의 온-더-플라이 생성 - Google Patents

감소된 블록 모델 뷰의 온-더-플라이 생성 Download PDF

Info

Publication number
KR20230159424A
KR20230159424A KR1020237031779A KR20237031779A KR20230159424A KR 20230159424 A KR20230159424 A KR 20230159424A KR 1020237031779 A KR1020237031779 A KR 1020237031779A KR 20237031779 A KR20237031779 A KR 20237031779A KR 20230159424 A KR20230159424 A KR 20230159424A
Authority
KR
South Korea
Prior art keywords
word
level
objects
design
analysis system
Prior art date
Application number
KR1020237031779A
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 KR20230159424A publication Critical patent/KR20230159424A/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
    • 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
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design
    • 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
    • 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

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)

Abstract

워드-레벨 설계 모델이 메모리에 로딩될 수 있다. 다음으로, IC 설계 분석 시스템에 의해 이용되지 않는 워드-레벨 설계 모델에서의 객체들을 포함하는 마스킹 계층이 생성될 수 있다. 다음으로, 마스킹 계층은 감소된 블록 모델 뷰를 온-더-플라이로 IC 설계 분석 시스템에 제공하기 위해 이용될 수 있다.

Description

감소된 블록 모델 뷰의 온-더-플라이 생성
발명자들: Mahantesh D. Narwade, Soumen Ghosh, Mark Roizman, Vijaya V. Varkey, Abhinav Singla, 및 Rajarshi Mukherjee
관련 출원
본 출원은 2021년 3월 24일자로 출원된 미국 가출원 제63/165,624호의 이익을 주장하며, 그 내용은 모든 목적을 위해 그 전체가 본 명세서에 참고로 포함된다.
기술분야
본 개시내용은 전자 설계 자동화(electronic design automation)(EDA) 시스템에 관한 것이다. 더 구체적으로, 본 개시내용은 감소된 블록 모델 뷰(reduced block model view)를 온-더-플라이(on-the-fly)로 생성하기 위한 시스템 및 방법에 관한 것이다.
프로세스 기술에서의 진보들 및 컴퓨팅 및 저장에 대한 증가하는 요구는 IC 설계들의 크기 및 복잡성의 증가를 촉진하였다. 크고 복잡한 IC 설계들을 분석하고 디버깅하기 위해 이용되는 IC 설계 툴들의 성능 및 용량을 개선하는 것이 바람직하다.
본 명세서에 설명된 실시예들은 IC 설계 분석 시스템에 대해 감소된 블록 모델 뷰를 온-더-플라이로 생성하는 것을 특징으로 할 수 있다. IC 설계 분석 시스템들의 예들은, 제한적인 것은 아니지만, 클록-도메인-크로싱(clock-domain-crossing)(CDC) 분석 시스템, 리셋-도메인-크로싱(reset-domain-crossing)(RDC) 분석 시스템, 저전력(low-power)(LP) 분석 시스템, 또는 구조적 분석 시스템(structural analysis system)을 포함한다. 워드-레벨 설계 모델(word-level design model)이 메모리에 로딩될 수 있다. 다음으로, IC 설계 분석 시스템에 의해 이용되지 않는 워드-레벨 설계 모델에서의 객체들을 포함하는 마스킹 계층(masking layer)이 생성될 수 있다. 다음으로, 마스킹 계층은 감소된 블록 모델 뷰를 온-더-플라이로 IC 설계 분석 시스템에 제공하기 위해 이용될 수 있다.
본 명세서에 설명된 일부 실시예들에서, 워드-레벨 설계 모델에서의 접속 정보에 대한 요청이 IC 설계 분석 시스템으로부터 수신될 수 있다. 다음으로, 접속 정보가 워드-레벨 설계 모델 및 마스킹 계층에 기초하여 결정될 수 있다. 다음으로, 접속 정보는 IC 설계 분석 시스템에 제공될 수 있다.
본 명세서에 설명된 일부 실시예들에서, 마스킹 계층은 입력 및 출력 포트들로부터 워드-레벨 순회들(word-level traversals)을 수행함으로써 워드-레벨 설계 모델에서의 객체들의 서브세트를 먼저 식별하고, 그 후 객체들의 서브세트에 있지 않은 객체들을 마스킹 계층에 추가함으로써 생성될 수 있다.
본 명세서에 설명된 일부 실시예들에서, 입력 및 출력 포트들로부터 워드-레벨 순회들을 수행하는 것은 포트로부터 제1 레벨 순차 레지스터(sequential register)로의 경로에서 객체들을 식별하는 것을 포함할 수 있다.
본 명세서에 설명된 일부 실시예들에서, 입력 및 출력 포트들로부터 워드-레벨 순회들을 수행하는 것은 제1 CDC 동기화 회로에 접속된 제1 포트 및 제2 CDC 동기화 회로에 접속된 제2 포트를 선택하는 것을 포함할 수 있다. 다음으로, 순차 레지스터에서 수렴하는, 제1 포트로부터의 제1 경로 및 제2 포트로부터의 제2 경로에서의 객체들이 식별될 수 있다.
본 명세서에 설명된 일부 실시예들에서, 워드-레벨 설계 모델에서의 객체들의 서브세트를 식별하는 것은 워드-레벨 설계 모델의 상이한 블록들에서의 객체들을 병렬로 식별하고, 그 후 워드-레벨 설계 모델의 상이한 블록들에서 식별된 객체들을 집계하는 것을 포함할 수 있다. 본 명세서에 설명된 일부 실시예들에서, IC 설계는 시스템 온 칩(system on a chip)(SoC) 설계일 수 있고, 감소된 블록 모델 뷰는 SoC 설계에서의 최상위-레벨 뷰에 대응할 수 있고, 워드-레벨 설계 모델의 상이한 블록들은 SoC 설계의 최상위-레벨 뷰에서의 상이한 블록들에 대응할 수 있다.
본 개시내용은 아래에 주어지는 상세한 설명 및 첨부 도면들에 기초하여 이해될 수 있다. 도면들은 예시의 목적들을 위한 것이고, 본 개시내용의 범위를 제한하지 않는다. 더욱이, 도면들이 반드시 축척대로 그려져 있는 것은 아니다.
도 1은 본 명세서에 설명된 일부 실시예들에 따른, IC 설계의 워드-레벨 데이터 모델을 도시한다.
도 2는 본 명세서에 설명된 일부 실시예들에 따른, IC 설계의 워드-레벨 데이터 모델에 대한 액세스를 제공하는 액세스 계층을 도시한다.
도 3a는 본 명세서에 설명된 일부 실시예들에 따른, 온-더-플라이 블록 감소를 도시한다.
도 3b는 본 명세서에 설명된 일부 실시예들에 따른, 온-더-플라이 블록 감소를 도시한다.
도 4는 본 명세서에 설명된 일부 실시예들에 따른, 온-더-플라이 블록 감소를 이용하는 설계 흐름을 도시한다.
도 5는 본 명세서에 설명된 일부 실시예들에 따른, 온-더-플라이 블록 감소를 이용하는 설계 흐름을 도시한다.
도 6은 본 명세서에 설명된 일부 실시예들에 따른, 감소된 블록 모델 뷰를 제공하기 위한 프로세스를 도시한다.
도 7은 본 명세서에 설명된 일부 실시예들에 따른, 분석을 위한 객체들을 식별하는 워드-레벨 순회들을 도시한다.
도 8은 본 명세서에 설명된 일부 실시예들에 따른, 온-더-플라이 블록 모델 감소를 병렬로 수행하기 위한 프로세스를 도시한다.
도 9는 본 명세서에 설명된 일부 실시예들에 따른, IC의 설계, 검증, 및 제조를 위한 예시적인 흐름을 도시한다.
도 10은 본 명세서에서 개시된 일부 실시예들에 따른, 머신으로 하여금 본 명세서에 논의된 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 컴퓨터 시스템의 예시적인 머신을 도시한다.
계층적 설계 방법에서, 다수의 인스턴스화(instantiation)를 갖는 IC 블록은 한 번 설명될 수 있고, IC 설계에서의 다수의 인스턴스화는 단일 IC 블록 설명을 참조할 수 있다. 평탄화된 설계에서, 각각의 인스턴스화에 대해 IC 블록의 전체 설명이 중복될 수 있다. 평탄화된 SoC 설계에 대해 사인-오프(sign-off)를 수행하는 것은 계산적으로 매우 많은 비용이 들거나 심지어 실행불가능할 수 있다. 따라서, 사인-오프 동안, 계층적 설계 방법이 채택될 수 있다. 계층적 설계 방법을 이용하는 것은 또한 사용자들에게 TAT(turn-around-time)의 상당한 개선을 도울 수 있다.
전형적인 계층적 설계 방법에서, 시스템은 하위 레벨, 더 작은, 독립적인 설계 유닛들(IC 블록들이라고도 알려짐)을 정의할 수 있고, IC 블록 레벨에서 원하는 설계 목표들을 달성하기 위해 최적화 및/또는 검증을 수행할 수 있다. 다음으로, 시스템은 계층구조에서의 상위 레벨에서(예를 들어, 설계의 최상위 레벨에서) 최적화 및/또는 검증이 수행될 때 각각의 IC 블록에 대한 대표(감소된) 블록 모델을 생성하여 그 전체 로직 뷰를 대체할 수 있다. 이들 감소된 블록 모델들은, 감소된 블록 모델들이 더 높은 계층구조 레벨들에서 IC 설계 동작들을 수행하는 데 필요한 정보만을 포함할 수 있기 때문에, 전체 IC 블록 모델보다 크기가 훨씬 더 작다(예를 들어, 이들은 더 적은 저장 공간을 이용함).
감소된 블록 모델들은 IC 블록들의 설계를 담당하는 사용자들에 의해 수동으로 생성될 수 있다. 사용자는 감소된 모델을 생성하는 것을 잊을 수 있거나 감소된 모델을 생성하는 것을 지연시킬 수 있으며, 이는 설계 흐름의 추가 반복들을 야기하고, IC 설계의 사인-오프를 위해 이용되는 시간의 양을 증가시킬 수 있다. 추가적으로, 설계 제약들의 변경들은 감소된 블록 모델들과 사인-오프 동안에 이용되기를 원하는 실제 모델들 사이의 불일치들을 유발할 수 있으며, 이는 설계 흐름의 추가적인 반복들을 초래할 수 있다. 예로서, 파라미터화된 블록을 고려한다. 파라미터화된 블록이 IC 설계에서 인스턴스화되는 상이한 파라미터 조합들은 감소된 블록 모델을 생성하고 있는 사용자에게 알려지지 않을 수 있다. 그 결과, 생성된 감소된 블록 모델들은 최상위 레벨에서 사인-오프를 위해 이용되는 모든 파라미터 조합들을 커버하지 않을 수 있다.
따라서, 감소된 블록 모델들을 생성하기 위한 전형적인 접근법들의 도전과제들은, 제한적인 것은 아니지만, (1) 감소된 모델들을 생성하기 위한 IC 블록 팀들에 대한 심한 의존성, (2) 에러가 발생하기 쉽고 많은 양의 시간을 이용할 수 있는 수동 감소된 블록 모델 생성, (3) 블록 레벨 설계 팀은 블록 레벨 검증 동안 블록 감소된 모델들을 생성할 필요가 있을 수 있다는 것, (4) 감소된 블록 모델들은 시간에 따라 변할 수 있는 블록 제약들 및 가정들에 기초하여 생성될 수 있다는 것, (5) 블록 레벨 및 SoC 레벨에서의 가정들 사이의 임의의 차이들은 추가적인 반복들 및 시간을 야기할 수 있다는 것, (6) 설계에 대한 제한된 액세스를 제공하는 제삼자 벤더 지적 재산(IP) 블록들에 대해, 제삼자로부터 올바른 감소된 블록 모델을 획득하는 데 필요한 시간의 양이 높을 수 있다는 것, (7) 파라미터화된 블록들에 대해 감소된 블록 모델들이 생성될 필요가 있을 수 있다는 것, 및 (8) 파라미터화된 블록들에 대해, SoC 레벨에서 이용되는 모든 파라미터 조합들에 대한 감소된 블록 모델들을 생성하기 위해 추가적인 반복들이 이용될 수 있는 것을 포함한다.
SoC 설계 크기 및 복잡성이 증가함에 따라, 생성된 감소된 블록 모델들이 부정확하고/하거나 불완전하기 때문에 사인-오프를 수행하는 데 많은 양의 시간이 걸릴 수 있다. 더욱이, IC 블록에 대한 감소된 블록 모델이 이용가능하지 않거나 불완전한 경우, IC 설계 분석 시스템은 분석을 수행하지 못할 수 있다. 그러한 IC 설계 분석 시스템은 정적 검증(예를 들어, CDC 검증)을 포함한다. 따라서, 감소된 블록 모델들을 생성하기 위한 시스템들 및 기술들이 필요하다.
본 명세서에 설명된 일부 실시예들은 사인-오프 동안에 이용되는 IC 설계 분석 시스템의 분석 결과에 영향을 주지 않는 블록 설계 콘텐츠를 동적으로 식별하고 마스킹할 수 있고, 그에 의해 마스킹된 콘텐츠가 분석 동안에 불필요하게 분석되는 것을 방지한다. 본 명세서에 설명된 실시예들에서, 감소된 블록 모델들의 생성은 블록 레벨과 최상위 레벨 SoC 설계 팀들 사이의 제로/최소 데이터 교환 의존성을 달성하기 위해 최상위 레벨 실행 동안 온-더-플라이로 수행될 수 있다. 본 명세서에 설명된 실시예들은 일관성 없는 감소된 블록 모델들에 의해 야기되는 도전과제들뿐만 아니라 누락된 감소된 블록 모델 문제 둘 다를 해결한다. 일부 실시예들에서, 블록 모델 감소는 블록 인스턴스들의 로직 콘텐츠를 분석하고, IC 설계 분석 시스템의 결과들에 영향을 미치지 않는 로직 요소들을 식별함으로써 달성될 수 있다.
본 명세서에 설명된 실시예들의 이점들 및 특징들은, 제한적인 것은 아니지만, (1) 사인-오프 동안 IC 설계 시스템들의 품질 및 성능을 개선하는 것, (2) 사인-오프에 소비되는 시간의 양을 감소시키는 것(그 이유는, 누락된 또는 불완전한 감소된 블록 모델들을 수동으로 생성하는 데 시간이 소비되지 않기 때문임), (3) SoC 레벨 분석을 위해 관련없는 로직을 마스킹함으로써 블록 설계 콘텐츠를 온-더-플라이로 동적으로 감소시키는 것, (4) 블록 레벨 실행들에 대한 의존성이 없는 것(그 이유는, 온-더-플라이 로직 감소가 설계 요소들이 IC 설계 시스템에 의해 보여지는 것을 마스킹하는 것에 의해 메모리 내의 감소된 블록 모델들을 생성하기 때문임), (5) 디스크 판독/기입 동작들이 없는 것(감소된 블록 모델들의 기입 및 링킹을 요구하는 다른 기술들과는 다름), (6) 사인-오프를 목표로 하는 최종 SoC 제약들을 이용하여 SoC 실행의 일부로서 블록 감소가 수행되는 것, (7) 블록 레벨과 SoC 레벨 사이의 제약 설정들에서의 차이들이 SoC 사인-오프를 방지하지 않는 것, (8) 모델들이 누락되는 블록 인스턴스들만을 분석하는 데 블록 감소가 이용될 수 있는 것(예를 들어, 블록 레벨 실행에서 어떠한 블록 모델도 생성되지 않은 파라미터 조합들을 갖는 파라미터화된 IP/블록 인스턴스들에 대해), 및 (9) 감소된 블록들을 추가로 최적화하기 위해 선택적 동작들이 수행될 수 있는 것(예를 들어, 전체 블록 설계가 SoC 레벨 실행에 대한 블록 감소를 안내하기 위해 필요한 객체 세트들과 함께 블록 실행 동안 이용될 수 있고, SoC 실행 동안 전체 설계 모델이 SoC 설계를 로딩하기 위한 컴파일/정교화 시간을 절약하기 위해 직접 링크될 수 있고; 또한, 블록 실행 동안 저장된 객체 세트는 로직 감소를 안내하고 가속화하는 데 이용될 수 있고, 임의의 설계 및 제약 변경들 없이 후속 SoC 실행을 위해 이용될 모델들로서 감소된 블록 인스턴스들을 절약하기 위한 능력이 추가될 수 있음)을 포함한다.
감소된 블록 모델이라는 용어는 주어진 분석을 수행하는 데 이용되는 현재의 설계 범위에서의 객체들(예를 들어, 조합 게이트들 및/또는 순차 레지스터들)을 지칭할 수 있다. 감소된 블록 모델에 포함되는 객체들은 IC 설계 분석 시스템에 의존할 수 있다. 예를 들어, 동일한 클록 소스에 의해 클록킹되는 레지스터들 사이의 타이밍 경로들은 CDC 분석 시스템의 목적들을 위해 무시(즉, 마스킹)될 수 있다. 따라서, CDC 분석 시스템에 대한 감소된 블록 모델은 그러한 무시된 객체들을 포함하지 않을 수 있다. RDC 분석 시스템의 경우, 임의의 클록 도메인 경계를 넘지 않는 리셋 신호는 무시될 수 있다. LP 분석 시스템의 경우, 전력 모드를 결정하는 데 이용되지 않는 로직은 무시될 수 있다. Lint 체크들의 경우, 규칙들의 세트(예를 들어, 대입문(assignment statement)에서의 2개의 변수들의 폭이 동일한 것을 보장하는 폭 매칭 규칙)를 체크하는 데 이용되지 않는 객체들은 무시될 수 있다. "마스킹된 객체"라는 용어는 IC 설계 분석 시스템으로부터 무시되거나 마스킹되는 객체를 지칭할 수 있다.
도 1은 본 명세서에 설명된 일부 실시예들에 따른 IC 설계의 워드-레벨 데이터 모델을 도시한다.
IC 설계(100)는 레지스터들 reg1 및 reg2를 포함하는 워드-레벨 데이터 모델이다. 워드-레벨 데이터 모델에서의 객체들은 단일 비트에 반대되는 것으로서 데이터의 전체 워드를 나타낼 수 있다. 예를 들어, reg1의 입력 포트 D1은 워드, 예를 들어, 256 비트를 나타낼 수 있다. 마찬가지로, 포트들 Q1, D2 및 Q2도 각각 256 비트를 나타낸다. 워드-레벨 신호 경로에서의 객체들의 수는 신호 경로가 비트-블라스팅(bit-blasted)될 때 실질적으로(예를 들어, 256x) 증가할 수 있다. 비트-블라스팅(bit-blasted)이라는 용어는 워드에서의 각각의 비트에 대해 개별 신호 및/또는 회로를 생성하는 것을 지칭한다. 예를 들어, IC 설계(100)가 비트-블라스팅되면, 레지스터 reg1은 256개의 순차적 요소들에 의해 대체될 수 있고, reg2는 256개의 순차적 요소들에 의해 대체될 수 있다(이는, reg1[0], reg1[1], ..., reg1[255], reg2[0], ..., reg2[255]로 지칭될 수 있음). 추가적으로, 신호 경로(102)는 reg1에서의 비트와 reg2에서의 비트 사이의 256개의 별개의 신호 경로들에 의해 대체될 수 있다.
본 명세서에 설명된 일부 실시예들은 객체들(예를 들어, 레지스터 reg1 또는 reg2)이 워드-레벨 폭을 가질 수 있고(예를 들어, 레지스터들 reg1 또는 reg2가 256의 폭을 가질 수 있음), 하나의 워드-레벨 신호 경로가 다수의 비트들을 표현하는 데 이용될 수 있는 워드-레벨 데이터 모델을 이용한다. 본 명세서에 설명된 실시예들은 워드-레벨 설계 모델 상에서의 워드-레벨 순회를 허용한다. 워드-레벨 순회는 비트-레벨 순회보다 상당히 더 빠를 수 있다. 워드-레벨 설계 모델이라는 용어는 전체 IC 설계의 워드-레벨 데이터 모델을 지칭할 수 있다.
도 2는 본 명세서에 설명된 일부 실시예들에 따른 IC 설계의 워드-레벨 데이터 모델에 대한 액세스를 제공하는 액세스 계층을 도시한다.
일부 실시예들은 IC 설계의 워드-레벨 데이터 모델(202)에 대한 액세스를 제공하는 액세스 계층(204)으로서 구현될 수 있다. 애플리케이션들 #1 내지 #N은 액세스 계층(204)을 통해 워드-레벨 데이터 모델(202)에 액세스할 수 있다. 애플리케이션들의 예로는 CDC 분석 시스템들, RDC 분석 시스템들, LP 분석 시스템들, 및 Lint 분석 시스템들이 포함되지만, 이들로 제한되지 않는다.
액세스 계층(204)은 애플리케이션들 #1 내지 #N에 대해 온-더-플라이로 감소된 블록 모델들을 생성할 수 있다. 액세스 계층(204)은 애플리케이션이 워드-레벨 데이터 모델(202)에 액세스하려고 시도할 때 감소된 블록 모델들을 생성할 수 있다. 액세스 계층(204)은 프로세서에 의해 실행되는 저장 매체 상에 저장된 명령어들의 세트에 의해 구현될 수 있다. 일부 실시예들에서, 액세스 계층(204)은 프로세스/스레드-안전 분석 기반구조(process/thread-safe analysis infrastructure)를 지원할 수 있다. 구체적으로, 액세스 계층(204)은 프로세스/스레드-안전 분석 구조를 지원하는데, 그 이유는 액세스 계층(204)이 상이한 프로세스들 및/또는 스레드들에서 병렬로 실행할 수 있는 애플리케이션들 #1 내지 #N에 대한 동시 액세스를 제공할 수 있고, 저장 매체(예를 들어, 메모리 또는 디스크)에 저장될 수 있는 동일한 워드-레벨 데이터 모델(202)을 동시에 분석할 수 있기 때문이다. 액세스 계층(204)은 애플리케이션 프로그래밍 인터페이스를 애플리케이션들 #1 내지 #N에 제공할 수 있다. 애플리케이션 프로그래밍 인터페이스는 질의(query) 및 순회 루틴들을 포함할 수 있지만 이에 제한되지 않는 액세스 루틴들의 세트를 호출하는 데 이용될 수 있다. 루틴들은 온-더-플라이로 생성되는 감소된 블록 모델들에 기초하여 결과들을 반환할 수 있다.
구체적으로, 액세스 계층(204)은 무시되도록 마킹되는 설계 객체들을 무시할 수 있다. 즉, 액세스 계층(204)은 감소된 블록 모델에 있지 않은 객체들의 가시성을 제거하기 위해 비파괴 메커니즘(즉, 기본 데이터 모델을 수정하지 않는 메커니즘)을 이용할 수 있다. 구체적으로, 워드-레벨 데이터 모델(202)로부터 객체들을 제거하는 대신에, 액세스 계층(204)은 워드-레벨 데이터 모델(202) 상에 마스킹 계층을 적용할 수 있다. 애플리케이션들 #1 내지 #N은 워드-레벨 데이터 모델(202)에서의 설계 객체들에 직접 액세스하지 않을 수 있고, 마스크 계층을 통해 보이는 설계 객체들에만 액세스할 수 있다. 즉, 워드-레벨 데이터 모델(202)에서의 마스크-아웃된 객체들은 애플리케이션들 #1 내지 #N에 보이지 않고, 이는 애플리케이션들에 의해 처리되는 객체들의 수를 감소시킨다.
도 3a는 본 명세서에 설명된 일부 실시예들에 따른 온-더-플라이 블록 감소를 도시한다.
IC 블록 모델(302)은 IC 블록의 전체 로직 상세를 포함할 수 있다. 마스킹 계층(306)은 IC 블록 모델(302)에서의 객체들의 세트를 마스킹하는 데 이용될 수 있다. 애플리케이션들에 의해 보여지는 감소된 IC 블록 모델(304)은 마스킹되지 않은 IC 블록 모델(302)에서의 객체들을 포함할 수 있다. 예를 들어, IC 블록 모델(302)은 도 2의 워드-레벨 데이터 모델(202)에 대응할 수 있고, 도 2의 액세스 계층(204)은 마스킹 계층(306)을 IC 블록 모델(302)에 적용할 수 있고, 그에 의해 감소된 IC 블록 모델(304)이 도 2의 애플리케이션들 #1 내지 #N에 의해 보여지게 한다.
도 3b는 본 명세서에 설명된 일부 실시예들에 따른 온-더-플라이 블록 감소를 도시한다.
워드-레벨 블록 모델(350)은 레지스터들(352 및 358), 및 게이트들(354 및 356)을 포함할 수 있다. 워드-레벨 블록 모델이라는 용어는 IC 블록에 대한 워드-레벨 데이터 모델을 지칭할 수 있다. 도 3b에서의 각각의 접속은 워드, 예를 들어, 256 비트를 나타낼 수 있다. 게이트(354)는 액세스 계층(예를 들어, 도 2의 액세스 계층(204))에 의해 "무시될" 것으로서 마킹될 수 있다. 예를 들어, IC 블록 모델(350)에서의 게이트(354)와 연관된 무시 플래그는, 게이트(354)가 무시되어야 한다는 것을 나타내기 위해 참(TRUE)으로 설정될 수 있다.
애플리케이션들(예를 들어, 애플리케이션들 #1 내지 #N)은 요청들 또는 질의들을 이용함으로써 워드-레벨 블록 모델로부터의 데이터에 액세스할 수 있다. 예를 들어, 애플리케이션은 IC 블록에 대한 네트리스트(netlist)를 요청할 수 있거나, 주어진 포트에 접속되는 모든 객체들을 요청할 수 있다. 애플리케이션에 의해 이루어진 요청들 또는 질의들은 액세스 계층에 의해 서비스될 수 있다. 액세스 계층은 온-더-플라이로 생성되는 감소된 블록 모델에 기초하여 애플리케이션에 대한 응답을 제공할 수 있다. 예를 들어, 애플리케이션이 워드-레벨 블록 모델(350)의 네트리스트를 요청한다면, 액세스 계층은 레지스터들(352 및 358), 및 게이트(356)를 포함하는 네트리스트로 응답할 수 있다. 게이트(354)가 "무시될" 것으로서 마킹되어 있기 때문에 액세스 계층은 응답에 게이트(354)를 포함하지 않을 수 있다. 마찬가지로, 애플리케이션이 레지스터(352)의 출력 포트에 접속되어 있는 객체들에 질의한다면, 게이트(354)가 "무시될" 것으로 마킹되어 있기 때문에 액세스 계층은 게이트(356)를 포함하지만 게이트(354)를 포함하지 않는 응답을 제공할 수 있다.
본 명세서에 설명된 실시예들은 정적 사인-오프 시스템들에 의해 이용될 수 있다. 정적 사인-오프 시스템은 설계를 시뮬레이션하지 않고 설계에서의 문제들을 식별할 수 있다. 정적 사인-오프 시스템을 이용하여 수행될 수 있는 사인-오프 동작들의 예들은 CDC 검증 사인-오프, RDC 검증 사인-오프, 및 LP 검증 사인-오프를 포함할 수 있지만, 이에 제한되지 않는다. CDC 검증 사인-오프에서, 정적 사인-오프 시스템은 설계를 분석하여 CDC 회로에서의 문제들을 식별할 수 있다. RDC 검증 사인-오프에서, 정적 사인-오프 시스템은 설계를 분석하여 RDC 회로에서의 문제들을 식별할 수 있다. LP 검증 사인-오프에서, 정적 사인-오프 시스템은 설계를 분석하여 LP 회로에서의 문제들을 식별할 수 있다.
도 4는 본 명세서에 설명된 일부 실시예들에 따른 온-더-플라이 블록 감소를 이용하는 설계 흐름을 도시한다. 제약들(402) 및 IC 설계(404)는 설계 데이터 로딩 모듈(406)에 의해 메모리에 로딩되고 워드-레벨 데이터 모델(408)로서 저장될 수 있다. 설계 데이터 로딩 모듈(406)은 프로세서에 의해 실행되는 저장 매체 상에 저장된 명령어들의 세트에 의해 구현될 수 있다. 제약들(402)은 IC 설계(404)에서의 상이한 블록 인스턴스들에 대한 파라미터 값들을 포함할 수 있지만, 이에 제한되지는 않는다. 액세스 계층(410)은 워드-레벨 데이터 모델(408)을 처리하는 것에 기초하여 마스킹 계층(412)을 생성할 수 있다. 그 다음, 툴 분석(tool analysis)(414)이 설계(404) 상에서 수행될 수 있다. 구체적으로, 툴 분석(414)은 감소된 블록 모델을 분석 툴에 제시할 수 있는 마스킹 계층(412)을 통해 워드-레벨 데이터 모델(408)에 액세스할 수 있다. 툴 분석(414)의 결과들은 데이터 모델(416)에 저장될 수 있고, 보고들(reports)(420)을 생성할 수 있는 메시지 인터페이스(418)에 제공될 수 있다. 디버그 툴(debug tool)(422)은 보고들(420)을 이용하여 디버깅 동작들을 수행할 수 있다.
도 5는 본 명세서에 설명된 일부 실시예들에 따른 온-더-플라이 블록 감소를 이용하는 설계 흐름을 도시한다.
제약들(502) 및 IC 설계(504)는 설계 데이터 로딩 모듈(506)에 의해 메모리에 로딩되고 워드-레벨 데이터 모델(508)로서 저장될 수 있다. 워드-레벨 데이터 모델(508)에 대해 클록-리셋 분석(clock-reset analysis)(510)이 수행될 수 있고, 클록 리셋 정보(512)가 저장될 수 있다. 다음으로, 액세스 계층(514)은 워드-레벨 데이터 모델(508) 및 클록 리셋 정보(512)를 처리하는 것에 기초하여 마스킹 계층(516)을 생성할 수 있다. 클록-리셋 분석(510)은 클록 도메인들을 교차하는 리셋 신호들의 동기화를 체크할 수 있고, 클록-리셋 정보(512)는 클록 도메인들을 교차하는 리셋 신호들에 관한 정보 및/또는 리셋 신호들과 연관된 로직을 포함할 수 있다. 그 다음, CDC 분석(518)이 설계(504) 상에서 수행될 수 있다. 구체적으로, CDC 분석(518)은 CDC 분석(518)에 감소된 블록 모델을 제시할 수 있는 마스킹 계층(516)을 통해 워드-레벨 데이터 모델(508)에 액세스할 수 있다. CDC 분석(518)의 결과는 CDC 데이터 모델(520)에 저장되고, 보고들(524)을 생성할 수 있는 메시지 인터페이스(522)에 제공될 수 있다. 디버그 툴(526)은 보고들(524)을 이용하여 디버깅 동작들을 수행할 수 있다.
도 6은 본 명세서에 설명된 일부 실시예에 따른 감소된 블록 모델 뷰를 제공하기 위한 프로세스를 도시한다. (602에서) IC 설계를 나타내는 워드-레벨 설계 모델이 메모리에 로딩될 수 있다. 워드-레벨 설계 모델은 주어진 IC 설계 분석 시스템에 의해 이용되는 전체 설계 데이터 및 선택적으로 메타데이터를 포함할 수 있다. 예를 들어, CDC 분석 시스템의 경우, 메타데이터는 동기화 회로에 접속되는 입력 포트들의 세트를 포함할 수 있지만 이에 제한되지 않는 CDC 특정 메타데이터를 포함할 수 있다. 메타데이터는 온-더-플라이 블록 감소를 위해 이용될 수 있다.
다음으로, (604에서) IC 설계 분석 시스템에 의해 이용되지 않는 워드-레벨 블록 모델에서의 객체들을 포함하는 마스킹 계층이 생성될 수 있다. 예를 들어, 각각의 IC 설계 분석 시스템은 분석을 수행할 때 객체들의 서브세트를 이용할 수 있다. 구체적으로, 규칙들의 세트는 주어진 IC 설계 분석 시스템에 의해 이용되는 객체들의 서브세트를 식별하도록 정의될 수 있다. 객체들의 서브세트는 워드-레벨 블록 모델에서 식별될 수 있고, 워드-레벨 블록 모델에서의 나머지 객체들은 마스킹 계층에 추가될 수 있다. 객체들의 서브세트는 입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 식별될 수 있다. 순회의 정도 및 깊이는 감소된 블록 모델이 생성되는 분석의 타입, 및 입력 또는 출력 포트의 타입을 포함할 수 있지만, 이에 제한되지 않는 다수의 요인들에 의존할 수 있다.
워드-레벨 순회에서, 각각의 순회 동작은 전체 워드에 대한 순회 홉(traversal hop)을 수행한다. 예를 들어, 제1 세트의 128 비트(예를 들어, reg[0] 내지 reg[127]) 피드 객체 B1의 입력 및 제2 세트의 128 비트(예를 들어, reg[128] 내지 reg[255]) 피드 객체 B2의 입력인 256-비트 워드를 저장하는 레지스터를 고려한다. 이 예에서, 단일 순회 동작은 (1) 레지스터 및 객체 B1의 제1 128 비트와, (2) 레지스터 및 객체 B2의 제2 128 비트 사이의 접속성을 결정할 것이다. 반면, 비트-레벨 데이터 모델에서의 비트-레벨 순회는 동일한 결과를 달성하기 위해 256개의 별도의 순회 동작들을 이용할 것이다. 본 명세서에 설명된 일부 실시예들은 비트-레벨 순회들보다 실질적으로 더 빠른 워드-레벨 순회들을 이용함으로써 감소된 워드-레벨 블록 모델을 온-더-플라이로 생성할 수 있다.
도 7은 본 명세서에 설명된 일부 실시예에 따른 분석을 위한 객체들을 식별하는 워드-레벨 순회를 도시한다.
워드-레벨 블록 모델(702)은 입력 포트들(704, 706 및 708)을 포함할 수 있다. 각각의 입력 포트는 데이터의 워드를 수신할 수 있다. 포트들(704 및 706) 상에서 수신된 데이터는 클록 도메인 경계를 넘을 수 있다. 예를 들어, 포트들(704 및 706) 상에서 수신된 데이터는 워드-레벨 블록 모델(702)에서 신호를 수신하기 위해 이용되는 클록 신호와 상이한 클록 신호를 이용하여 송신될 수 있다. 동기화 회로들(710 및 712)은 2개의 클록 도메인들 사이에서 동기화하는 데 이용될 수 있다. 예를 들어, 동기화 회로는 직렬로 결합된 2개의 레지스터들을 포함할 수 있으며, 제1 레지스터는 송신기의 클록 신호를 이용하여 클록킹되고, 제2 레지스터는 수신기의 클록 신호를 이용하여 클록킹된다. 워드-레벨 블록 모델(702)은 순차 레지스터들(722, 724 및 726), 조합 게이트들(728 및 730), 및 로직 클라우드들(714, 716 및 720)을 포함할 수 있다. 로직 클라우드는 일반적으로 하나 이상의 조합 게이트 및/또는 순차 레지스터를 포함할 수 있다.
본 명세서에 설명된 일부 실시예들에서, 입력 포트로부터의 워드-레벨 팬아웃 순회(word-level fanout traversal)가 제1 레벨 순차 레지스터 객체들에 도달할 때까지 수행될 수 있다. 추가적으로, 워드-레벨 팬인 순회(word-level fanin traversal)가 제1 레벨 순차 레지스터 객체들에 도달할 때까지 출력 포트로부터 수행될 수 있다. 제1 레벨 순차 레지스터들까지 수집된 객체들은 IC 설계 분석 시스템(예를 들어, CDC 분석)에 의해 이용되는 객체들로서 마킹될 수 있다. 예를 들어, 워드-레벨 팬 순회는 포트(708)로부터 제1 레벨 순차 레지스터인 순차 레지스터(724)까지 수행될 수 있다. 이 워드-레벨 팬 순회에서 수집된 객체들은 게이트들(728 및 730), 및 순차 레지스터(724)를 포함한다.
CDC 분석 시스템은 2개의 클록 도메인들 사이의 동기화 회로를 검증할 수 있다. CDC 분석 시스템은 경로들이 수렴할 때까지 동기화 경로들에서 객체들을 이용할 수 있다. 즉, 워드-레벨 순회들은 동기화 회로들을 포함하는 입력 포트들에 대한 제1 레벨 순차 레지스터에 도달할 때 종료되지 않을 수 있다.
본 명세서에 설명된 일부 실시예들에서, 잠재적인 제어 경로 동기화기들이 식별되고 수집될 수 있으며, 이는 사용자 정의 동기화기 인스턴스들의 입력 포트들 및 출력 포트들을 포함할 수 있지만, 이에 제한되는 것은 아니다. 그 다음, 각각의 잠재적 제어 경로 동기화기 포트에 대해, CDC 수렴 체크들에 대해 명시된 주어진 순차적 깊이까지 워드-레벨 팬아웃 순회가 수행될 수 있다. 구체적으로, 2개보다 많은 시작 포인트가 수렴하는 순차 레지스터까지의 객체들이 분석에서 이용되는 객체들로서 수집될 수 있다. 본 명세서에 설명된 일부 실시예들에서, 워드-레벨 팬아웃 순회는 CDC 데이터 동기화기 체크들을 위해 명시된 바와 같은 주어진 순차적 깊이까지 수행될 수 있다. 구체적으로, 비동기화된 데이터 전송인 순차 레지스터까지의 객체들은 분석에 이용되는 객체들로서 수집될 수 있다.
예를 들어, 포트들(704 및 706)은 이들 포트들이 동기화 회로들(710 및 712)과 결합되기 때문에 식별될 수 있다. 다음으로, 워드-레벨 팬아웃 순회가 경로들이 순차 레지스터에서 수렴할 때까지 포트들(704 및 706)로부터 수행될 수 있다. 예를 들어, 포트들(704 및 706)로부터의 경로들은 순차 레지스터(722)에서 수렴한다. 따라서, 이들 2개의 경로들에서의 모든 객체들은 CDC 분석을 위해 수집될 수 있다. 수집된 객체들은 다수의 레벨의 순차 레지스터들을 포함할 수 있다. CDC 분석을 위해 수집되지 않은 객체들은 마스크 계층에 포함될 수 있고, 예를 들어, 이들 객체들은 "무시될" 것으로 마킹될 수 있다. 마스크 계층에서의 객체들은 CDC 분석 시스템이 워드-레벨 블록 모델(702)에 액세스할 때 CDC 분석 시스템에 가시적이지 않다.
본 명세서에 설명된 일부 실시예들에서, 마킹된 각각의 순차 레지스터에 대해, 레지스터들의 클록 및 리셋-트리 네트워크 객체들은 분석에 이용되는 객체들로서 수집될 수 있다.
본 명세서에서 설명된 일부 실시예들에서, 블록 모델 감소는 상이한 블록들에 대해 병렬로 수행될 수 있다. 구체적으로, 액세스 계층(예를 들어, 도 2의 액세스 계층(204))은 다수의 블록들에 대해 병렬로 온-더-플라이 블록 모델 감소를 수행할 수 있다.
도 8은 본 명세서에 설명된 일부 실시예들에 따른 온-더-플라이 블록 모델 감소를 병렬로 수행하기 위한 프로세스를 도시한다.
개별 프로세스들 및/또는 스레드들을 이용함으로써 다수의 블록 모델들이 병렬로 감소될 수 있다. 예를 들어, 블록 #1 감소(802) 내지 블록 #N 감소(804)는 병렬로 수행될 수 있다. 각각의 블록 감소 프로세스 및/또는 스레드에서, 상이한 타입들의 객체들이 또한 병렬로 처리될 수 있다. 예를 들어, 포트들, CDC 로직, 및 클록 리셋 네트워크(CRN) 로직은 감소된 블록 모델에 보유되기를 원하는 객체들을 식별하기 위해 블록 #1 감소(802)에 의해 병렬로 처리될 수 있다. 나머지 객체들(즉, 감소된 블록 모델에서 보유되기를 원하지 않는 객체들)은 "무시될" 것으로 마킹될 수 있고, 마스크 객체들(806)에 포함될 수 있다. 마찬가지로, 각각의 블록 감소 프로세스 또는 스레드는 마스크 객체들을 병렬로 결정할 수 있다. 예를 들어, 블록 #1 감소(802)가 마스크 객체들(806)을 결정하고 있는 동안, 블록 #N 감소(804)는 마스크 객체들(808)을 병렬로 결정할 수 있다. 다음으로, 상이한 블록들로부터의 마스크 객체들을 조합하여 전체 워드-레벨 설계에 대한 마스크 객체들의 세트(810)를 획득할 수 있다. 이어서, 마스크 객체들(810)의 세트를 이용하여, 감소된 블록 모델을 온-더-플라이로 생성할 수 있다.
도 6을 참조하면, (612에서) 감소된 블록 모델 뷰가 그 후 마스킹 계층을 이용하여 온-더-플라이로 제공될 수 있다. 감소된 블록 모델 뷰는 마스킹 계층에 있지 않은 객체들을 포함한다. IC 설계 분석 시스템은 마스킹 계층에 있지 않은 객체들에만 액세스할 수 있다. 온-더-플라이라는 용어는, 애플리케이션(예를 들어, IC 설계 분석 시스템)이 워드-레벨 설계 모델에 액세스하려고 시도할 때 감소된 블록 모델 뷰가 생성된다는 사실을 지칭한다. 감소된 블록 모델 뷰는 디스크에 저장되지 않을 수 있고; 대신에, 감소된 블록 모델 뷰는 메모리에 저장되고 IC 설계 분석 시스템이 실행을 완료하면 삭제될 수 있다. 구체적으로, (606에서) 워드-레벨 설계 모델에서의 접속 정보에 대한 요청이 IC 설계 분석 시스템으로부터 수신될 수 있다. 예를 들어, 도 3의 레지스터(352)의 출력에서의 접속 정보에 대한 요청이 수신될 수 있다. 레지스터(352)는 마스킹 계층에 있지 않다. 레지스터(352)가 마스킹 계층에 있었다면, 레지스터(352)는 IC 설계 분석 시스템에 보이지 않았을 것이고 IC 설계 분석 시스템은 레지스터(352)의 출력에 대한 접속 정보를 요청할 수 없을 것이다. (608에서) 접속 정보는 워드-레벨 설계 모델 및 마스킹 계층에 기초하여 결정될 수 있다. 예를 들어, 게이트(354)는 게이트(354)가 마스킹 계층에 있기 때문에 무시될 수 있다. 따라서, 레지스터(352)의 출력에서의 접속 정보는 게이트(356)를 포함하지만 게이트(354)를 포함하지 않을 수 있다. 다음으로, (610에서) 접속 정보는 IC 설계 분석 시스템에 제공될 수 있다. IC 설계 분석 시스템은 워드-레벨 설계 모델에서 마스킹된 객체들을 보지 못할 수 있다. 추가적으로, IC 설계 분석 시스템은 본 명세서에 설명된 실시예들을 이용하도록 수정될 필요가 없을 수 있다.
도 9는 본 명세서에 설명된 일부 실시예들에 따른 IC의 설계, 검증, 및 제조를 위한 예시적인 흐름(900)을 도시한다. EDA 프로세스들(912)(약어 "EDA"는 "전자 설계 자동화(Electronic Design Automation)"를 지칭함)은 집적 회로를 나타내는 설계 데이터 및 명령어들을 변환하고 검증하는 데 이용될 수 있다. 이러한 프로세스들 각각은 다수의 모듈들 또는 동작들로서 구조화되고 가능해질 수 있다.
흐름(900)은 설계자에 의해 공급되는 정보, EDA 프로세스들(912)을 이용하여 변환되고 검증되는 정보를 갖는 제품 아이디어(product idea)(910)의 생성으로 시작할 수 있다. 설계가 완료될 때, 설계는 테이프 아웃(taped-out)되고(934), 이는 집적 회로에 대한 아트워크(artwork)(예를 들어, 기하학적 패턴들)가 마스크 세트를 제조하기 위해 제조 설비에 전송될 때, 이후 집적 회로를 제조하기 위해 이용된다. 테이프 아웃 후에, 반도체 다이가 제조되고(936), 패키징 및 어셈블리(938)가 수행되어, 제조된 IC 칩(940)을 생성한다.
회로 또는 전자 구조체에 대한 사양들은 로우-레벨 트랜지스터 재료 레이아웃들로부터 하이-레벨 서술 언어들까지의 범위일 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL 또는 OpenVera와 같은 하드웨어 서술 언어(hardware description language)("HDL")를 이용하여 회로들 및 시스템들을 설계하기 위해 하이-레벨의 표현이 이용될 수 있다. HDL 서술은 로직-레벨 레지스터 전송 레벨("RTL") 서술, 게이트-레벨 서술, 레이아웃-레벨 서술, 또는 마스크-레벨 서술로 변환될 수 있다. 더 구체적인 서술인 각각의 더 낮은 표현 레벨은 설계 서술에 더 많은 상세를 추가한다. 더 구체적인 서술들인 더 낮은 표현 레벨들은 컴퓨터에 의해 생성되거나, 설계 라이브러리로부터 도출되거나, 다른 설계 자동화 프로세스에 의해 생성될 수 있다. 더 상세한 서술들을 명시하기 위한 더 낮은 표현 언어 레벨에서의 사양 언어(specification language)의 예는 SPICE("Simulation Program with Integrated Circuit Emphasis")이다. 각각의 표현 레벨에서의 서술들은 그 계층의 대응하는 툴들(예를 들어, 정식 검증 툴)에 의해 이용하기에 충분한 상세들을 포함한다.
시스템 설계(914) 동안, 제조될 집적 회로의 기능이 명시된다. 설계는 전력 소비, 성능, 면적(물리적 및/또는 코드 라인들), 및 비용의 감소 등과 같은 원하는 특성들을 위해 최적화될 수 있다. 설계를 상이한 타입들의 모듈들 또는 컴포넌트들로 파티셔닝하는 것은 이 단계에서 발생할 수 있다.
본 명세서에 설명된 일부 실시예들은 로직 설계 및 기능 검증(916) 동안 이용될 수 있다. 로직 설계 및 기능 검증(916) 동안, 회로에서의 모듈들 또는 컴포넌트들은 하나 이상의 서술 언어로 명시되고, 사양이 기능 정확도에 대해 체크된다. 예를 들어, 회로의 컴포넌트들은 설계되는 회로 또는 시스템의 사양의 요건들에 매칭되는 출력들을 생성하도록 검증될 수 있다. 기능적 검증은 시뮬레이터들 및 다른 프로그램들, 예컨대, 테스트벤치 발생기들(testbench generators), 정적 HDL 체커들, 및 공식 검증기들을 이용할 수 있다. 일부 실시예들에서, '에뮬레이터들(emulators)' 또는 '프로토타이핑 시스템들(prototyping systems)'로 지칭되는 컴포넌트들의 특수 시스템들은 기능적 검증의 속도를 높이는 데 이용된다.
테스트를 위한 합성 및 설계(918) 동안, HDL 코드는 네트리스트로 변환된다. 일부 실시예들에서, 네트리스트는 그래프 구조일 수 있으며, 그래프 구조의 에지들은 회로의 컴포넌트들을 나타내고, 그래프 구조의 노드들은 컴포넌트들이 어떻게 상호접속되는지를 나타낸다. HDL 코드 및 네트리스트 둘 다는, 제조될 때, 집적 회로가 특정된 설계에 따라 수행하는 것을 검증하기 위해 EDA 제품에 의해 이용될 수 있는 계층적 제조 물품들이다. 네트리스트는 타겟 반도체 제조 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 집적 회로는 집적 회로가 사양의 요건들을 만족시키는지를 검증하기 위해 테스트될 수 있다.
네트리스트 검증(920) 중에, 네트리스트는 타이밍 제약들의 준수 및 HDL 코드와의 대응에 대해 체크된다. 설계 계획(922) 동안, 집적 회로에 대한 전체 플로어 플랜(floor plan)이 구성되고 타이밍 및 최상위-레벨 라우팅을 위해 분석된다.
레이아웃 또는 물리적 구현(924) 동안, 물리적 배치(트랜지스터들 또는 커패시터들과 같은 회로 컴포넌트들의 포지셔닝) 및 라우팅(다수의 전도체들에 의한 회로 컴포넌트들의 접속)이 발생하고, 특정 로직 기능들을 가능하게 하기 위한 라이브러리로부터의 셀들의 선택이 수행될 수 있다. 본 명세서에서 이용될 때, 용어 '셀'은 부울 로직 기능(Boolean logic function)(예를 들어, AND, OR, NOT, XOR) 또는 (플립플롭 또는 래치와 같은) 저장 기능을 제공하는 트랜지스터들, 다른 컴포넌트들 및 상호접속들의 세트를 지정할 수 있다. 본 명세서에서 이용될 때, 회로 '블록'은 둘 이상의 셀을 지칭할 수 있다. 셀 및 회로 블록 둘 다는 모듈 또는 컴포넌트라고 지칭될 수 있고, 물리적 구조들 및 시뮬레이션들 둘 다로서 인에이블된다. 파라미터들은 크기와 같은 ('표준 셀들'에 기초하여) 선택된 셀들에 대해 지정되고, EDA 제품들에 의한 이용을 위해 데이터베이스에서 액세스가능하게 된다.
분석 및 추출(926) 동안, 회로 기능은 레이아웃 레벨에서 검증되고, 이는 레이아웃 설계의 정제(refinement)를 허용한다. 물리적 검증(928) 동안, DRC 제약들, 전기적 제약들, 리소그래피 제약들과 같은 제조 제약들이 올바르고, 회로 기능이 HDL 설계 사양과 일치하도록 보장하기 위해 레이아웃 설계가 체크된다. 해상도 향상(930) 동안, 레이아웃의 기하학적 구조는 회로 설계가 제조되는 방법을 개선하도록 변환된다.
테이프 아웃 동안, 데이터는 리소그래피 마스크들의 생성을 위해 (적절한 경우에 리소그래피 향상들이 적용된 후에) 이용되도록 생성된다. 마스크 데이터 준비(932) 동안, '테이프 아웃' 데이터는 완성된 집적 회로들을 생성하는 데 이용되는 리소그래피 마스크들을 생성하는 데 이용된다.
(도 10의 컴퓨터 시스템(1000)과 같은) 컴퓨터 시스템의 저장 서브시스템은 본 명세서에서 설명되는 EDA 제품들의 일부 또는 전부에 의해 이용되는 프로그램들 및 데이터 구조들, 및 라이브러리에 대한 셀들의 개발을 위해 그리고 라이브러리를 이용하는 물리적 및 로직적 설계를 위해 이용되는 제품들을 저장하는 데 이용될 수 있다.
도 10은 머신으로 하여금 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 컴퓨터 시스템(1000)의 예시적인 머신을 도시한다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷에서 다른 머신들에 접속(예를 들어, 네트워킹)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 능력으로, 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서, 또는 클라우드 컴퓨팅 기반구조 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.
머신은 개인용 컴퓨터(PC), 태블릿 PC, 셋-탑 박스(set-top box)(STB), PDA(Personal Digital Assistant), 셀룰러 전화, 웹 기기(web appliance), 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 머신에 의해 취해질 액션들을 명시하는 명령어들의 세트(순차적 또는 다른 방식)를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신이 예시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하기 위해 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합을 포함하는 것으로 간주되어야 한다.
예시적인 컴퓨터 시스템(1000)은, 버스(1030)를 통해 서로 통신하는, 처리 디바이스(1002), 메인 메모리(1004)(예를 들어, ROM(read-only memory), 플래시 메모리, SDRAM(synchronous DRAM)과 같은 DRAM(dynamic random access memory)), 정적 메모리(1006)(예를 들어, 플래시 메모리, SRAM(static random access memory) 등), 및 데이터 저장 디바이스(1018)를 포함한다.
처리 디바이스(1002)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 프로세서를 나타낸다. 보다 구체적으로, 처리 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(1002)는 또한 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(1002)는 본 명세서에 설명된 동작들 및 단계들을 수행하기 위한 명령어들(1026)을 실행하도록 구성될 수 있다.
컴퓨터 시스템(1000)은 네트워크(1020)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(1008)를 더 포함할 수 있다. 컴퓨터 시스템(1000)은 또한, 비디오 디스플레이 유닛(1010)(예를 들어, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(1012)(예를 들어, 키보드), 커서 제어 디바이스(1014)(예를 들어, 마우스), 그래픽 처리 유닛(1022), 신호 생성 디바이스(1016)(예를 들어, 스피커), 그래픽 처리 유닛(1022), 비디오 처리 유닛(1028), 및 오디오 처리 유닛(1032)을 포함할 수 있다.
데이터 저장 디바이스(1018)는, 본 명세서에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 하나 이상의 세트의 명령어들(1026) 또는 소프트웨어가 저장되어 있는 (비일시적 컴퓨터 판독가능 매체라고도 알려진) 머신 판독가능 저장 매체(1024)를 포함할 수 있다. 명령어들(1026)은 또한, 컴퓨터 시스템(1000)에 의한 그 실행 동안에, 완전히 또는 적어도 부분적으로, 메인 메모리(1004) 내에 및/또는 처리 디바이스(1002) 내에 상주할 수 있고, 메인 메모리(1004)와 처리 디바이스(1002)는 또한 머신 판독가능 저장 매체를 구성한다.
일부 구현들에서, 명령어들(1026)은 본 개시내용에 대응하는 기능을 구현하기 위한 명령어들을 포함한다. 머신 판독가능 저장 매체(1024)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "머신 판독가능 저장 매체"라는 용어는 하나 이상의 세트의 명령어들을 저장하는 단일 매체 또는 다수의 매체들(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)을 포함하는 것으로 간주되어야 한다. "머신 판독가능 저장 매체"라는 용어는 또한, 머신에 의한 실행을 위한 한 세트의 명령어들을 저장 또는 인코딩할 수 있고 머신 및 처리 디바이스(1002)로 하여금 본 개시내용의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 간주될 것이다. 따라서, "머신 판독가능 저장 매체"라는 용어는 고체 상태 메모리들, 광학 매체들 및 자기 매체들을 포함하지만 이에 제한되지는 않는 것으로 간주될 것이다.
이전의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 및 심볼 표현들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자가 그들의 작업의 본질을 본 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 이용되는 방식들이다. 알고리즘은 원하는 결과를 초래하는 동작들의 시퀀스일 수 있다. 동작들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 그러한 양들은 저장, 결합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 그러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 항목들, 숫자들 등으로 지칭될 수 있다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되고 이들 양들에 적용되는 편리한 라벨들일 뿐이라는 점을 명심해야 한다. 본 개시내용으로부터 명백한 바와 같이, 구체적으로 달리 언급되지 않는 한, 설명 전반에 걸쳐, 특정 용어들이 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작하고 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭한다는 것이 이해된다.
본 개시내용은 또한 본 명세서에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 의도된 목적을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스에 결합되는, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함하는 임의의 타입의 디스크, ROM(read-only memory)들, RAM(random access memory)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하기에 적합한 임의의 타입의 매체들과 같은, 그러나 이에 제한되지 않는, 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
본 명세서에 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치에 관련되지 않는다. 다양한 다른 시스템들이 본 명세서의 교시들에 따라 프로그램들과 함께 이용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것으로 판명될 수 있다. 또한, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들이 본 명세서에 설명된 바와 같은 개시내용의 교시들을 구현하기 위해 이용될 수 있다는 것이 이해될 것이다.
본 개시내용은 본 개시내용에 따른 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하는 데 이용될 수 있는 명령어들이 저장되어 있는 머신 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능(예를 들어, 컴퓨터 판독가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등과 같은 머신(예를 들어, 컴퓨터) 판독가능 저장 매체를 포함한다.
전술한 개시내용에서, 개시내용의 구현예들은 그 특정 예시적인 구현예들을 참조하여 설명되었다. 다음의 청구항들에 개시된 바와 같은 본 개시내용의 구현들의 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 명백할 것이다. 본 개시내용이 단일 시제에서의 일부 요소들을 언급하는 경우, 하나 초과의 요소가 도면들에 묘사될 수 있고 유사한 요소들은 유사한 번호들로 라벨링된다. 따라서, 본 개시내용 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 방법으로서,
    집적 회로(IC) 설계를 나타내는 워드-레벨 설계 모델을 메모리에 로딩하는 단계;
    프로세서에 의해, IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 마스킹 계층을 생성하는 단계; 및
    상기 마스킹 계층을 이용하여 감소된 블록 모델 뷰를 온-더-플라이로 상기 IC 설계 분석 시스템에 제공하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 마스킹 계층을 이용하여 상기 감소된 블록 모델 뷰를 온-더-플라이로 상기 IC 설계 분석 시스템에 제공하는 단계는,
    상기 IC 설계 분석 시스템으로부터 상기 워드-레벨 설계 모델에서의 접속 정보에 대한 요청을 수신하는 단계;
    상기 워드-레벨 설계 모델 및 상기 마스킹 계층에 기초하여 상기 접속 정보를 결정하는 단계; 및
    상기 접속 정보를 상기 IC 설계 분석 시스템에 제공하는 단계를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 상기 마스킹 계층을 생성하는 단계는,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 객체들의 서브세트를 식별하는 단계; 및
    상기 객체들의 서브세트에 있지 않은 객체들을 상기 마스킹 계층에 추가하는 단계를 포함하는, 방법.
  4. 제3항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 단계는, 포트로부터 제1 레벨 순차 레지스터로의 경로에서 객체들을 식별하는 단계를 포함하는, 방법.
  5. 제3항에 있어서,
    입력 포트 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 단계는,
    제1 클록 도메인 크로싱(CDC) 동기화 회로에 접속된 제1 포트를 선택하는 단계;
    제2 CDC 동기화 회로에 접속된 제2 포트를 선택하는 단계; 및
    순차 레지스터에서 수렴하는, 상기 제1 포트로부터의 제1 경로 및 상기 제2 포트로부터의 제2 경로에서의 객체들을 식별하는 단계를 포함하는, 방법.
  6. 제3항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 단계는,
    상기 워드-레벨 설계 모델의 상이한 블록들에서의 객체들을 병렬로 식별하는 단계; 및
    상기 객체들의 서브세트를 획득하기 위해 상기 워드-레벨 설계 모델의 상기 상이한 블록들에서 식별된 상기 객체들을 집계하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 IC 설계는 시스템 온 칩(SoC) 설계이고, 상기 감소된 블록 모델 뷰는 상기 SoC 설계에서의 최상위-레벨 뷰에 대응하고, 상기 워드-레벨 설계 모델의 상기 상이한 블록들은 상기 SoC 설계의 상기 최상위-레벨 뷰에서의 상이한 블록들에 대응하는, 방법.
  8. 제1항에 있어서,
    상기 IC 설계 분석 시스템은 클록-도메인-크로싱(CDC) 분석 시스템, 리셋-도메인-크로싱(RDC) 분석 시스템, 저전력(LP) 분석 시스템, 또는 구조적 분석 시스템 중의 하나인, 방법.
  9. 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    집적 회로(IC) 설계를 나타내는 워드-레벨 설계 모델을 메모리에 로딩하고;
    IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 마스킹 계층을 생성하고;
    상기 마스킹 계층을 이용하여 감소된 블록 모델 뷰를 온-더-플라이로 상기 IC 설계 분석 시스템에 제공하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    상기 마스킹 계층을 이용하여 상기 감소된 블록 모델 뷰를 온-더-플라이로 상기 IC 설계 분석 시스템에 제공하는 것은,
    상기 IC 설계 분석 시스템으로부터 상기 워드-레벨 설계 모델에서의 접속 정보에 대한 요청을 수신하는 것;
    상기 워드-레벨 설계 모델 및 상기 마스킹 계층에 기초하여 상기 접속 정보를 결정하는 것; 및
    상기 접속 정보를 상기 IC 설계 분석 시스템에 제공하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제9항에 있어서,
    IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 상기 마스킹 계층을 생성하는 것은,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 객체들의 서브세트를 식별하는 것; 및
    상기 객체들의 서브세트에 있지 않은 객체들을 상기 마스킹 계층에 추가하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은, 포트로부터 제1 레벨 순차 레지스터로의 경로에서 객체들을 식별하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제11항에 있어서,
    입력 포트 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은,
    제1 클록 도메인 크로싱(CDC) 동기화 회로에 접속된 제1 포트를 선택하는 것;
    제2 CDC 동기화 회로에 접속된 제2 포트를 선택하는 것; 및
    순차 레지스터에서 수렴하는, 상기 제1 포트로부터의 제1 경로 및 상기 제2 포트로부터의 제2 경로에서의 객체들을 식별하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제11항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은,
    상기 워드-레벨 설계 모델의 상이한 블록들에서의 객체들을 병렬로 식별하는 것; 및
    상기 객체들의 서브세트를 획득하기 위해 상기 워드-레벨 설계 모델의 상기 상이한 블록들에서 식별된 상기 객체들을 집계하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제9항에 있어서,
    상기 IC 설계 분석 시스템은 클록-도메인-크로싱(CDC) 분석 시스템, 리셋-도메인-크로싱(RDC) 분석 시스템, 저전력(LP) 분석 시스템, 또는 구조적 분석 시스템 중의 하나인, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 장치로서,
    명령어들을 저장하는 메모리; 및
    상기 메모리와 결합되고 상기 명령어들을 실행하는 프로세서를 포함하고,
    상기 명령어들은 실행될 때 상기 프로세서로 하여금,
    집적 회로(IC) 설계를 나타내는 워드-레벨 설계 모델을 상기 메모리에 로딩하고;
    IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 마스킹 계층을 생성하고;
    상기 IC 설계 분석 시스템으로부터 상기 워드-레벨 설계 모델에서의 접속 정보에 대한 요청을 수신하고;
    상기 워드-레벨 설계 모델 및 상기 마스킹 계층에 기초하여 상기 접속 정보를 결정하고;
    상기 접속 정보를 상기 IC 설계 분석 시스템에 제공하게 하는, 장치.
  17. 제16항에 있어서,
    상기 IC 설계 분석 시스템에 의해 이용되지 않는 상기 워드-레벨 설계 모델에서의 객체들을 포함하는 상기 마스킹 계층을 생성하는 것은,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 객체들의 서브세트를 식별하는 것; 및
    상기 객체들의 서브세트에 있지 않은 객체들을 상기 마스킹 계층에 추가하는 것을 포함하는, 장치.
  18. 제17항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은, 포트로부터 제1 레벨 순차 레지스터로의 경로에서 객체들을 식별하는 것을 포함하는, 장치.
  19. 제17항에 있어서,
    입력 포트 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은,
    제1 클록 도메인 크로싱(CDC) 동기화 회로에 접속된 제1 포트를 선택하는 것;
    제2 CDC 동기화 회로에 접속된 제2 포트를 선택하는 것; 및
    순차 레지스터에서 수렴하는, 상기 제1 포트로부터의 제1 경로 및 상기 제2 포트로부터의 제2 경로에서의 객체들을 식별하는 것을 포함하는, 장치.
  20. 제17항에 있어서,
    입력 및 출력 포트들로부터 워드-레벨 순회들을 수행함으로써 상기 워드-레벨 설계 모델에서의 상기 객체들의 서브세트를 식별하는 것은,
    상기 워드-레벨 설계 모델의 상이한 블록들에서의 객체들을 병렬로 식별하는 것; 및
    상기 객체들의 서브세트를 획득하기 위해 상기 워드-레벨 설계 모델의 상기 상이한 블록들에서 식별된 상기 객체들을 집계하는 것을 포함하는, 장치.
KR1020237031779A 2021-03-24 2022-03-23 감소된 블록 모델 뷰의 온-더-플라이 생성 KR20230159424A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163165624P 2021-03-24 2021-03-24
US63/165,624 2021-03-24
PCT/US2022/021544 WO2022204281A1 (en) 2021-03-24 2022-03-23 Generating a reduced block model view on-the-fly

Publications (1)

Publication Number Publication Date
KR20230159424A true KR20230159424A (ko) 2023-11-21

Family

ID=81326955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031779A KR20230159424A (ko) 2021-03-24 2022-03-23 감소된 블록 모델 뷰의 온-더-플라이 생성

Country Status (5)

Country Link
US (1) US20220327266A1 (ko)
EP (1) EP4315148A1 (ko)
KR (1) KR20230159424A (ko)
CN (1) CN117043782A (ko)
WO (1) WO2022204281A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204201B1 (en) * 2016-06-30 2019-02-12 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for verifying an electronic design using hierarchical clock domain crossing verification techniques

Also Published As

Publication number Publication date
EP4315148A1 (en) 2024-02-07
CN117043782A (zh) 2023-11-10
WO2022204281A1 (en) 2022-09-29
US20220327266A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
US11836641B2 (en) Machine learning-based prediction of metrics at early-stage circuit design
US11922106B2 (en) Memory efficient scalable distributed static timing analysis using structure based self-aligned parallel partitioning
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
US12032894B2 (en) System and method for synchronizing net text across hierarchical levels
US20220327272A1 (en) Real time view swapping (rtvs) in a mixed signal simulation
US11556676B2 (en) Scalable formal security verification of circuit designs
US20220198120A1 (en) Clock aware simulation vector processor
US11416661B2 (en) Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow
US11120184B2 (en) Satisfiability sweeping for synthesis
US11087059B2 (en) Clock domain crossing verification of integrated circuit design using parameter inference
US20220327266A1 (en) Generating a reduced block model view on-the-fly
US12014127B2 (en) Transforming a logical netlist into a hierarchical parasitic netlist
US20240086602A1 (en) Clock relationship based re-convergence analysis
US11947885B1 (en) Low-power static signoff verification from within an implementation tool
US20230083003A1 (en) Optical path tracing in an optical circuit design
US11663384B1 (en) Timing modeling of multi-stage cells using both behavioral and structural models
US20230214574A1 (en) Extended regular expression matching in a directed acyclic graph by using assertion simulation
US20240354477A1 (en) Constant, equal, or opposite registers or ports detection during logic synthesis
US11080450B1 (en) Calculating inductance based on a netlist
US20220398372A1 (en) Dynamic clock tree planning using feedtiming cost
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits
US20230126888A1 (en) Computation of weakly connected components in a parallel, scalable and deterministic manner
US20230072923A1 (en) Supervised machine learning based memory and runtime prediction using design and auxiliary constructs
US20240320406A1 (en) Identifying rtl code that can be a source of verification complexity for downstream equivalence checkers and generating recommendations to improve runtime of equivalence checkers
US20230016865A1 (en) Diagnosis of inconsistent constraints in a power intent for an integrated circuit design