KR20040032109A - Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system - Google Patents

Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system Download PDF

Info

Publication number
KR20040032109A
KR20040032109A KR10-2003-7016097A KR20037016097A KR20040032109A KR 20040032109 A KR20040032109 A KR 20040032109A KR 20037016097 A KR20037016097 A KR 20037016097A KR 20040032109 A KR20040032109 A KR 20040032109A
Authority
KR
South Korea
Prior art keywords
pin
cell
successor
block
list
Prior art date
Application number
KR10-2003-7016097A
Other languages
Korean (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 KR20040032109A publication Critical patent/KR20040032109A/en

Links

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/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

계층에서 블록의 조상의 정확한 배치, 라우팅, 추출, 시뮬레이션 및 검증을 달성하는 데 요구되는 모든 데이터베이스 물체(셀, 네트, 와이어, 바이어스 및 블록키지)의 세트를 그 안에 포함하는 블록 추상을 활용하는 계급 디자인 자동화 시스템에서 집적회로 디자인을 모델링하는 방법.A class that utilizes block abstractions containing within it a set of all database objects (cells, nets, wires, biases, and blockages) required to achieve accurate placement, routing, extraction, simulation, and verification of blocks in the hierarchy. How to model integrated circuit designs in design automation systems.

Description

해석 시스템 및 계층적 집적회로에서의 서브-모듈 디자인 표현{REPRESENTING THE DESIGN OF A SUB-MODULE IN A HIERARCHICAL INTEGRATED CIRCUIT DESIGN AND ANALYSIS SYSTEM}REPRESENTING THE DESIGN OF A SUB-MODULE IN A HIERARCHICAL INTEGRATED CIRCUIT DESIGN AND ANALYSIS SYSTEM}

전자적 컴퓨터 디자인(electronic computer aided design)(ECAD) 소프트웨어 시스템에서, 집적회로 디자인규격 및 구현 데이터는 데이터베이스 레코드의 세트로서 저장되어야 하고, 이러한 레코드는 소프트웨어가 구동되는 컴퓨터의 가상메모리용량에 근거한 얼마간의 유한한 최대크기를 가진다. 또한, ECAD 소프트웨어의 실행시간(execution time)은 보통 디자인크기와 더불어 증가한다. 매우 큰 집적회로 디자인을 표현하는 데이터는 너무 커서 컴퓨터의 메모리에 적합하지 않을 수 있거나, 디자인 또는 전체 디자인을 시뮬레이션하는데 요구되는 실행시간은 엄청나게 된다. 이는 특히 컴포넌트(즉, 게이트)의 수 및 집적회로내의 부수적인 연결(attendant connection)이 수백만 이상의 10 또는 100내에 있는 점에서 틀림없다.In an electronic computer aided design (ECAD) software system, integrated circuit design specifications and implementation data must be stored as a set of database records, which records some finite amount based on the virtual memory capacity of the computer on which the software is running. Has a maximum size. In addition, the execution time of the ECAD software usually increases with the design size. Data representing very large integrated circuit designs may be too large to fit in the memory of a computer, or the execution time required to simulate a design or the entire design is enormous. This is particularly true in that the number of components (ie, gates) and the attendant connections in the integrated circuit are within tens or hundreds of millions or more.

계층적 분해(decomposition) 또는 "분할(partitioning)"은 디자인을 완료하는데 요구되는 메모리 및/또는 실행시간이 제어가능하게 유지되기 위해 큰 집적회로 디자인규격의 복잡도(complexity)를 줄이는데 이용될 수 있는 기술이다. 단일 평탄 데이터베이스(single flat database)로서 디자인을 표현하는 대신에, 디자인은 종종 "블록"으로 불리는 조각들로 분할되어, 독립적으로 디자인되거나 검증될 수 있다. 계층의 소정 단일 레벨을 구비하여, 디자인규격은 한 세트의 블록 및 그러한 블록들간의 탑-레벨 상호접속(top-level interconnection)으로 이루어진다. 계층의 다중 레벨을 구비하여, 블록들은 그 자체가 보다 작은 서브-블록 및 상기 서브-블록의 상호접속으로 이루어질 수 있다.Hierarchical decomposition or "partitioning" is a technique that can be used to reduce the complexity of large integrated circuit design specifications in order to maintain controllable memory and / or runtime required to complete the design. to be. Instead of representing the design as a single flat database, the design can be divided into pieces, often referred to as "blocks," and can be designed or verified independently. With a single level of hierarchy, the design specification consists of a set of blocks and top-level interconnections between those blocks. With multiple levels of hierarchy, blocks can themselves be made up of smaller sub-blocks and the interconnection of the sub-blocks.

계층적 분해는 또한 다수의 디자이너 사이에서 디자인 프로젝트를 분할하기 위한 방법과 같이 디자인팀에 의해 조직툴(organizational tool)로서 단순하게 이용될 수 있다. 그러나, 디자인규격에서 디자인팀에 의해 생성된 이러한 논리적인 계층은 구현을 위해 디자인을 분할하는데 사용되는 물리적인 계층과 동일할 필요가 없다. 종종 논리적인 계층은 물리적인 계층보다 훨씬 더 심층적(deep)이다. 블록 평탄화 프로세스(block flattening process)는 논리적인 계층을 적절한 물리적인 계층으로 변환하는데 이용될 수 있다.Hierarchical decomposition can also be used simply as an organizational tool by the design team as a way to partition design projects among multiple designers. However, this logical layer created by the design team in the design specification does not have to be identical to the physical layer used to partition the design for implementation. Often the logical layer is much deeper than the physical layer. The block flattening process can be used to convert the logical layer into an appropriate physical layer.

종래의 계층적 디자인 프로젝트는 통상적으로 두가지 주요단계(바텀-업 검증단계(bottom-up verification step) 후의 탑-다운 블록 계획단계(top-down block planning step))로 진행된다. 만약 탑-다운 단계동안 블록 그자체가 구현된다면(즉, 각 블록이 상기 블록의 자식블록(children) 전에 구현된다면), 순서도는 탑-다운 순서도로 언급된다. 반대로, 만약 블록이 바텀-업 단계동안 구현된다면(즉, 각 블록이 상기 블록의 모든 자식블록이 완료된 후에 구현된다면), 순서도는 바텀-업순서도로 언급된다. 탑-다운 및 바텀-업 순서도는 각각 장점 및 단점을 가진다. 보편성(generality)의 손실없이, 탑-다운 순서도는 본 명세서의 나머지에서 예로 이용된다. 바텀-업 순서도는 동일한 기술을 이용하여 구현될 수 있다.Conventional hierarchical design projects typically proceed in two main stages: the top-down block planning step after the bottom-up verification step. If the block itself is implemented during the top-down phase (ie, each block is implemented before its children), the flowchart is referred to as a top-down flowchart. Conversely, if a block is implemented during the bottom-up phase (ie, each block is implemented after all the child blocks of the block are completed), the flowchart is referred to as the bottom-up flowchart. Top-down and bottom-up flowcharts have advantages and disadvantages, respectively. Without loss of generality, top-down flowcharts are used as examples in the remainder of this specification. Bottom-up flowcharts may be implemented using the same technique.

도 1은 일반적인 탑-다운 블록계획 및 구현 순서도를 나타낸다. 논리적인 계층을 물리적인 계층으로 매핑하기 위해 디자인 네트리스트(net list)를 분할하기 시작하여, 탑-레벨 블록 및 한 세트의 구현되는 서브-블록을 정의한다(S110). 그 후, 각 서브-블록에 폭 및 높이값, 및 플로어 계획에서의 배치(placement)가 할당된다(S115). 그 후, 로케이션은 네트가 서브-블록 경계를 교차하는 로케이션을 나타내는 각 서브-블록 상의 핀에 할당된다(S120). 상기 단계 후, 클록 사이클의 일부가 서브-블록 경계를 교차하는 타이밍 경로에 할당되는 것을 나타내는 각 서브-블록 핀에 신호 도착/요구되는 시간제약을 할당하는 시간 버짓팅 단계(time budgeting step)가 뒤따른다(S135).Figure 1 shows a general top-down block plan and implementation flowchart. Beginning to divide the design net list (map) to map the logical layer to the physical layer, a top-level block and a set of implemented sub-blocks are defined (S110). Then, the width and height values and the placement in the floor plan are assigned to each sub-block (S115). The location is then assigned to a pin on each sub-block that indicates the location where the net crosses the sub-block boundary (S120). After this step, a time budgeting step is followed by assigning the time constraint required for signal arrival / request to each sub-block pin indicating that a portion of the clock cycle is assigned to the timing path crossing the sub-block boundary. Follow (S135).

탑-다운 순서도의 이 지점에서, 탑-레벨 블록이 계획된 후에, 프로세스는 블록을 구현할 준비를 한다. 블록에 의해 소유되는 모든 리프-셀(표준 셀 또는 매크로)에 배치가 할당되고, 블록에 의해 소유되는 모든 네트는 라우팅된다(S140). 만약 임의의 네트가 서브-블록에 걸쳐 라우팅된다면(소위, "피드스루 네트(feedthrough net)"), 이러한 와이어는 그것들을 오버랩하는 서브-블록으로 푸시다운(push down)되고, 새로운 핀은 와이어가 서브-블록 경계를 교차하는 서브-블록상에 생성된다(S145). 그 후, 동일한 프로세스에 따라 순환적으로 서브-블록을 구현한다(S150). 이는 각 서브-블록을 탑-레벨 블록으로 취급하는 동시에, 순환적인 구현단계 110 내지 170을 수반한다.At this point in the top-down flowchart, after the top-level block is planned, the process prepares to implement the block. A batch is allocated to all leaf-cells (standard cells or macros) owned by the block, and all nets owned by the block are routed (S140). If any nets are routed across sub-blocks (so-called "feedthrough nets"), these wires are pushed down to sub-blocks that overlap them, and new pins A sub-block intersecting the sub-block boundary is generated (S145). Thereafter, the sub-block is cyclically implemented according to the same process (S150). This involves treating each sub-block as a top-level block, while at the same time carrying out recursive implementation steps 110-170.

상기 프로세스에 대해, 성공적으로 형상, 핀 로케이션, 각 블록(S115 내지 135)에 할당된 타이밍 버짓을 완료하기 위해서는 달성할 수 있는 제약을 표현해야 한다. 만약 그렇지 않으면, 시스템은 그들의 규격에 따른 몇몇 블록의 구현을 완료할 수 없을 수 있다. 이러한 경우에, 규격은 재정의될 필요가 있을 수 있고, 탑-다운 프로세스는 올바른 구현이 실현될 수 있기 전에 반복되어질 필요가 있을 수 있다. 따라서, 이들 단계에서의 고품질의 결과를 달성하는 방법은 결스태틱으로 중요하다.For the above process, to successfully complete the shape, pin location, and timing budget assigned to each block S115-135, the constraints that can be achieved must be represented. Otherwise, the system may not be able to complete the implementation of some blocks according to their specifications. In this case, the specification may need to be redefined, and the top-down process may need to be repeated before the correct implementation can be realized. Therefore, how to achieve high quality results at these steps is important statically.

순환적인 탑-다운 계획 및 구현단계가 완료될 때, 바텀-업 검증 프로세스가 시작될 수 있다. 가장 낮은-레벨 블록으로부터 탑-레벨로의 절차에서, 각 블록은 타이밍, 전기적 성능뿐만 아니라 논리적인 정확도에 대해 독립적으로 해석되고, 규격에 대해 비교된다(S155). 블록의 모든 서브-블록이 독립적으로 검증된 후, 서브-블록이 올바르다는 가정하에서 블록 그자체가 해석될 수 있다(S170).When the circular top-down planning and implementation phase is complete, the bottom-up verification process can begin. In the procedure from the lowest-level block to the top-level, each block is independently interpreted for timing, electrical performance, as well as logical accuracy, and compared against a specification (S155). After all sub-blocks of the block are independently verified, the block itself may be interpreted under the assumption that the sub-blocks are correct (S170).

본 발명은 전자회로 제조에 관한 것이다. 보다 상세하게는, 본 발명은 집적회로의 컨텐츠 및 레이아웃을 디자인하고, 검증하기 위한 시스템에 관한 것이다.The present invention relates to the manufacture of electronic circuits. More particularly, the present invention relates to a system for designing and verifying the content and layout of integrated circuits.

도 1은 일반적인 탑-다운 블록계획 및 구현 순서도를 나타내는 도면,1 is a diagram illustrating a general top-down block plan and implementation flowchart;

도 2는 본 발명의 1 이상의 실시예에 따른 계층적 디자인 프로세스를 도시한 도면,2 illustrates a hierarchical design process according to one or more embodiments of the present invention;

도 3은 본 발명의 1 이상의 실시예에 따른 추상 프로세스를 도시한 도면,3 illustrates an abstract process in accordance with one or more embodiments of the present invention;

도 4는 본 발명의 1 이상의 실시예에 따른 논리적인 쉘 라벨링 프로세스를 도시한 도면,4 illustrates a logical shell labeling process in accordance with one or more embodiments of the present invention;

도 5는 상기 라벨링 프로세스를 겪는 블록을 도시한 도면,5 shows a block undergoing the labeling process;

도 6은 도 4의 프로세스 데이터 입력단계의 요약도,6 is a summary diagram of the process data input step of FIG. 4;

도 7은 도 6의 프로세스 핀 포워드 단계의 요약도,7 is a summary diagram of the process pin forward step of FIG. 6;

도 8은 도 4의 프로세스 출력단계의 요약도,8 is a summary diagram of the process output step of FIG. 4;

도 9는 도 8에 도시된 프로세스 핀 백워드 단계의 요약도,9 is a summary diagram of the process pin backward step shown in FIG. 8;

도 10은 도 4의 프로세스 클록 입력단계의 요약도,10 is a summary diagram of the process clock input step of FIG. 4;

도 11은 도 10에 도시된 프로세스 클록 핀 포워드 단계의 요약도,11 is a summary diagram of the process clock pin forward step shown in FIG. 10;

도 12는 본 발명의 일 실시예의 물리적인 타이밍 쉘 모델을 나타내는 도면,12 illustrates a physical timing shell model of one embodiment of the present invention;

도 13은 본 발명의 1 이상의 실시예를 구현 및 적용할 수 있는 예시적인 컴퓨터 시스템을 도시한 도면이다.13 illustrates an example computer system that may implement and apply one or more embodiments of the present invention.

다양한 실시예에서, 본 발명은 블록 "추상(abstraction)"이라고 언급되는 감소된 모델의 생성 및 사용으로 이루어지고, 상기 추상은 부모블록과 연결되며, 형제블록이 올바르게 해석될 수 있는 블록의 구조 및 동작을 충분히 상세하게 캡쳐한다. 상기 추상의 목적은 계층에서 블록을 상기 블록의 조상으로 표현하는 것에 요구되는 메모리의 총량을 줄이고, 상기 블록의 부모 및 형제블록와의 관계에서 상기 블록의 각 예를 해석하는 것에 요구되는 실행시간의 총량을 줄이는 것이다.In various embodiments, the present invention consists in the creation and use of a reduced model, referred to as a block “abstraction,” wherein the abstraction is linked to a parent block and the structure of the block in which sibling blocks can be correctly interpreted and Capture the action in sufficient detail. The purpose of the abstraction is to reduce the total amount of memory required to represent a block as an ancestor of the block in the hierarchy, and the total amount of execution time required to interpret each example of the block in relation to its parent and sibling blocks. To reduce.

탑-다운 계층적 디자인 프로세스를 구현하는 한가지 방법은 도 2에 도시되고 설명된 계층적 디자인 순서도이다. 도 2에 도시된 디자인 순서도는 도 1에 도시된탑-다운 순서도를 세분화한 것으로서, 3개의 추가단계(230, 260, 265)가 있다. 상기 세분도는 바텀-업 검증단계뿐만 아니라, 탑-다운 버짓 및 블록구현 단계 시에, 그 부모 및 형제블록과의 관계에서 서브-블록을 모델링하는 방법을 고려한다. 이들 단계는 깨끗한 계층적 경계들이 위반되는 순서도내의 위치들을 나타내며, 교차-경계 해석이 필요하다. 이러한 교차-경계 해석을 관리하는 효과적인 공업기술없이, 상기 계층적 디자인 프로세스의 주된 장점(큰 집적회로를 디자인하는데 필요한 런타임 및 메모리를 줄이기 위한 그 능력)을 잃을 수도 있다.One method of implementing the top-down hierarchical design process is the hierarchical design flow chart shown and described in FIG. The design flow chart shown in FIG. 2 is a breakdown of the top-down flow chart shown in FIG. 1, with three additional steps 230, 260, and 265. The granularity considers not only the bottom-up verification step, but also the method of modeling the sub-blocks in relation to their parent and sibling blocks during the top-down budget and block implementation steps. These steps represent locations in the flowchart where clean hierarchical boundaries are violated, and cross-boundary analysis is required. Without the effective engineering to manage this cross-boundary analysis, one may lose the main advantage of the hierarchical design process (its ability to reduce the runtime and memory required to design large integrated circuits).

탑-다운 버짓팅 단계시, 일 목적은 하나 이상의 계층적 경계를 교차하는 조합적인 로직 경로를 해석하고, 클록 사이클의 어떤 부분이 상기 경로의 각각의 세그먼트에 대해 버짓팅되어야 하는지를 결정하는 것이다.In the top-down budgeting step, one purpose is to interpret a combinational logic path that crosses one or more hierarchical boundaries, and determine which portion of the clock cycle should be budgeted for each segment of the path.

탑-다운 블록구현 단계시, 블록이 위치하고 그 서브-블록들이 구현되기 전에 라우팅된다. 대부분의 경우, 배치 및 라우팅은 계층적 경계를 가로질러 공평하게 디커플링된다. 하지만, 근래의 많은 제조공정들은, 계층적 경계의 양측에 존재하는 라우팅 와이어의 상세한 지식을 요구하는 "안테나 규칙"으로 불리는 한 세트의 규칙을 따르기 위한 라우팅 와이어를 요구한다.In the top-down block implementation phase, a block is located and routed before its sub-blocks are implemented. In most cases, placement and routing are evenly decoupled across hierarchical boundaries. Many modern manufacturing processes, however, require routing wires to follow a set of rules called "antenna rules" that require detailed knowledge of the routing wires that exist on both sides of the hierarchical boundary.

바텀-업 검증 프로세스 시에는 계층적 경계를 교차하는 조합적인 로직 경로를 해석하는 것도 필요하다. 서브-블록들을 포함하는 블록을 해석할 때, 그들의 부모들을 해석하면서 서브-블록들을 재해석할 필요를 피하면서, 서브-블록들이 예비-검증되었다는 사실의 장점을 취하는 것이 바람직하다.In the bottom-up verification process, it is also necessary to resolve the combined logic paths that cross hierarchical boundaries. When interpreting a block comprising sub-blocks, it is desirable to take advantage of the fact that the sub-blocks are pre-verified, while avoiding the need to reinterpret the sub-blocks while interpreting their parents.

이를 위해, 본 발명의 소정의 실시예는, 그 부모블록과 그 형제블록들과의인터페이스가 정확하게 해석될 수 있는 충분한 상세의 블록의 동작 및 구조를 캡처하는, 블록 "추상"이라 명명되는 감소된 모델의 사용을 개시한다. 상기 추상의 목표는 계층에서의 그 조상에 대한 블록을 나타내는데 필요한 메모리의 양을 줄이고, 그 부모 및 형제블록과의 관계에서 상기 블록의 각각의 경우를 해석하는데 필요한 실행시간의 총량을 줄이는 것이다.To this end, certain embodiments of the present invention are reduced, termed block " abstract ", to capture the operation and structure of a block of sufficient detail that its parent block and its sibling blocks can be correctly interpreted. Start using the model. The goal of the abstraction is to reduce the amount of memory needed to represent a block for that ancestor in the hierarchy, and to reduce the total amount of execution time needed to interpret each case of the block in relation to its parent and sibling blocks.

상술된 바와 같이, 이 점에 대해서는, 도 1의 계층적 디자인 순서도가 추가 단계(230, 260, 265)에 의해 보충 및 강화된다. 단계 230에서, 시간 버짓팅 단계에 앞서, 각각의 서브-블록의 추상들이 버짓팅시에 사용하는데 작성된다. 상기 서브-블록은 아직 구현되지 않았기 때문에, 어떠한 물리적인 구현 데이터도 포함하지 않고, 단지 그 네트리스트 기술(netlist description)만 포함한다. 따라서, 버짓팅시에 사용된 추상은 서브-블록의 논리적인 동작만을 모델링하도록 되어 있으며, 물리적 그리고 전기적 동작의 상세는 아직 이용할 수 없다. 이러한 초기 추상은 버짓팅시에 사용된 후 폐기된다.As discussed above, in this regard, the hierarchical design flow chart of FIG. 1 is supplemented and enhanced by additional steps 230, 260, 265. In step 230, prior to the time budgeting step, the abstractions of each sub-block are created for use in budgeting. Since the sub-block has not yet been implemented, it does not contain any physical implementation data, only its netlist description. Thus, the abstraction used in budgeting is intended to model only the logical operation of the sub-blocks, and the details of the physical and electrical operations are not yet available. This initial abstraction is used at budgeting and then discarded.

시간 버짓팅, 배치 및 라우팅, 와이어 푸시다운, 블록구현 및 블록검증 후에(S235, 240, 245, 250 및 255), 각 블록에 대한 제2추상이 생성된다(S260). 현재 블록구현이 완료되는대로, 상기 추상은 논리적인 동작뿐만 아니라 물리적이고 전기적인 상세특성을 모델링하여야 한다.After time budgeting, placement and routing, wire pushdown, block implementation, and block verification (S235, 240, 245, 250, and 255), a second abstract for each block is generated (S260). As soon as the current block implementation is completed, the abstraction must model physical and electrical details as well as logical operation.

검증 프로세스가 바텀-업으로 일어나기 때문에, 블록 그자체가 검증되기 전에 블록의 모든 자식블록은 독립적으로 검증된다. 블록의 검증시, 상기 블록의 모든 서브-블록은 예를 들어, 서브-블록의 구현 및 동작의 대부분이 이미 검증되었다는 사실을 이용하는 상기 서브-블록의 추상으로 대체된다(S265). 계층적 경계를 교차하는 이러한 조합적인 로직 경로만이 검증되지 않은채 남아있다. 추상에 의해 제공되는 데이터 감소가 블록의 검증능률을 현저히 증가시키고, 계층을 통하여 상승되는 동안에 메모리요구를 감소시킬 것이다.Because the verification process occurs bottom-up, all child blocks of the block are verified independently before the block itself is verified. Upon verification of the block, all sub-blocks of the block are replaced by an abstraction of the sub-block, for example, utilizing the fact that most of the implementation and operation of the sub-block has already been verified (S265). Only these combinatorial logic paths that cross hierarchical boundaries remain unvalidated. The data reduction provided by the abstraction will significantly increase the block's verification efficiency and reduce the memory requirements while rising through the hierarchy.

단계 210, 215, 220이 각각 블록 110, 115 및 120의 동작과 유사한 반면, 모든 다른 단계 230 내지 270은 상기 단계에서 가공되지 않은(raw) 디자인 그자체보다 디자인의 추상을 다룰때 개선된다.While steps 210, 215, and 220 are similar to the operations of blocks 110, 115, and 120, respectively, all other steps 230-270 are improved when dealing with the abstraction of the design than the raw design itself in this step.

탑-다운 블록구현 순서도와 바텀-업 블록구현 순서도간의 한가지 핵심적인 차이점은, 전자에서는 블록이 그 자식블록 전에 구현되지만, 후자에서는 블록이 그 자식블록 후에 구현된다는 점이다. 도 2의 계층적 구현 순서도는 블록(265, 270)들 사이에 블록(240, 245)들을 배치하도록 수정된다. 주요 효과로는, 탑-다운 순서도에서, 탑-레벨 블록이 그 자식블록의 구현이 완료되기 전에 구현된다는 것이다. 따라서, 본 발명은 그들의 부모블록을 구현하면서, 이상적인 최적 타겟으로서 서브-블록 버짓들을 사용하도록 하는 것이다. 한편, 바텀-업 순서도에서, 블록은 그 부모 또는 형제블록의 구현이 공지되기 전에 구현되어야 한다. 따라서, 이상적인 최적 타겟으로서 그 타이밍 버짓도 사용하도록 하는 것이어야 한다.One key difference between the top-down block implementation flow chart and the bottom-up block implementation flow chart is that blocks are implemented before their child blocks in the former, while blocks are implemented after their child blocks in the latter. The hierarchical implementation flowchart of FIG. 2 is modified to place blocks 240 and 245 between blocks 265 and 270. The main effect is that in the top-down flowchart, the top-level block is implemented before the implementation of its child block is completed. Accordingly, the present invention is to implement sub-block budgets as an ideal optimal target while implementing their parent block. On the other hand, in a bottom-up flowchart, a block must be implemented before the implementation of its parent or sibling block is known. Therefore, the timing budget should also be used as an ideal optimum target.

상술된 추상장치는 단지 검증이 바텀-업으로 수행될 때의 탑-다운 구현순서도에서와 같이, 바텀-업 구현 및 검증 순서도에서 사용될 때 동일하게 적용될 수 있다. 그러나, 바텀-업 구현 순서도에서, 이상적인 버짓보다 차라리 완료된 서브-블록을 모델링하는 추상의 사용은 부모블록을 고품질로 구현되게 한다. 아래에 상세하게 묘사되는 것은 탑-다운 순서도에서 실현되는 것과 동일한 이득을 가능케하는 "역추상(inverse abstraction)" 장치이다.The abstract apparatus described above can be equally applied when used in a bottom-up implementation and a verification flowchart, just as in a top-down implementation flowchart when verification is performed in a bottom-up. However, in a bottom-up implementation flow chart, the use of abstraction to model a completed sub-block rather than an ideal budget allows the parent block to be implemented with high quality. Described in detail below are "inverse abstraction" devices that enable the same gains realized in top-down flowcharts.

블록 추상에 대한 종래의 방법은 블록의 논리적인, 물리적인, 그리고 전기적인 동작의 유사한 동작설명을 캡처하기 위한 감소된 동작모델을 신뢰한다. 이는 일반적으로 각 핀과 관련된 수학적인 모델로서 표현된다. 예를 들어, 각 핀의 논리적인 설명은 바이너리 결정 다이어그램(binary decision diagram)(BDD)와 함께 설명될 수 있다. 각 핀의 전기적인 설명은 모멘트의 고정된 수를 줄이는 선형화된 RC-네트워크(linearized RC-network)로 캡쳐될 수 있다. 현재, 핀의 안테나 파라미터를 표현하기 위해 필요한 물리적인 정보의 감소된 모델을 생성하기 위한 공지된 방법은 없다. 이런 후자의 적용을 위한 효과적인 추상의 부족(lack)은 일반적으로 각 핀에서의 다이오드 삽입(diode insertion)과 같은 회로성능을 감소시키는 구성적인 안테나 회피 기술(constructive antenna avoidance technique)을 요구한다.Conventional methods for block abstraction rely on a reduced motion model for capturing similar operational descriptions of the logical, physical, and electrical motion of the block. This is typically represented as a mathematical model associated with each pin. For example, the logical description of each pin can be described with a binary decision diagram (BDD). The electrical description of each pin can be captured in a linearized RC-network which reduces the fixed number of moments. Currently, there is no known method for generating a reduced model of the physical information needed to represent the antenna parameters of the pin. Lack of effective abstraction for this latter application generally requires a constructive antenna avoidance technique that reduces circuit performance, such as diode insertion at each pin.

아래에 묘사되는 추상장치의 사용 및 적용은 모두 서로 의존하는 타이밍 해석, 전기적 해석, 배치 및 라우팅 및 버짓팅으로의 일관되고 단일화된 접근법을 이끌어낸다. 또한, 유사한 수학적인 모델에 따른 종래의 추상장치와 달리, 완벽한 정밀도를 보증한다.The use and application of the abstract devices described below all lead to a coherent, unified approach to timing analysis, electrical analysis, placement and routing, and budgeting that depends on each other. In addition, unlike conventional abstract devices according to similar mathematical models, it guarantees perfect precision.

타이밍 해석(Timing Analysis)Timing Analysis

스태틱 타이밍 해석은 주로 래치(latch) 및/또는 플립플롭(flip-flop)사이에서 데이터 신호의 전파시간을 계산하는 것에 관한 것이다. 이러한 정보는 부모블록에서의 로직의 최적화 및 형제 및 부모외의 관계에서 자식블록(child block) 타이밍의 검증 모두에 사용된다. 만약 조합적인 로직경로가 1 이상의 계층적 경계를 교차한다면, 정확한 타이밍 해석은 경로정보가 계층의 모든 레벨을 통하여 경로의 모든 세그먼트에 대해 입수할 수 있을 때만 결정될 수 있다. 스태틱 타이밍 관점으로부터, 블록추상이 높은 레벨블록에 대해 낮은 레벨 블록의 경계에서 동일한 타이밍 특성을 나타내는 반면, 높은 레벨블록은 감소된 모델 및 완전한 모델간에 차이를 허용할 수 없다. 낮은 레벨블록에 의해 캡쳐됨에 틀림없는 타이밍 특성은 초기 입력핀(primary input pin)에서의 요구되는 회수(times) 및 초기 출력핀에서의 도착 회수(arrival times)이다.Static timing analysis is primarily concerned with calculating the propagation time of the data signal between latch and / or flip-flop. This information is used both for optimization of logic in the parent block and for verification of child block timing in sibling and non-parent relationships. If the combinatorial logic path crosses one or more hierarchical boundaries, an accurate timing interpretation can only be determined when the path information is available for all segments of the path through all levels of the hierarchy. From a static timing point of view, a block abstract exhibits the same timing characteristics at the boundary of a low level block for a high level block, while a high level block cannot tolerate a difference between a reduced model and a complete model. The timing characteristics that must be captured by the low level block are the required times on the primary input pin and the arrival times on the initial output pin.

정보의 이러한 두가지 조각은, 하나가 각 블록의 우선적인 엄격한 동작환경에서 알려졌다면, 미리 연산될 수 있다. 그러나, 검증 순서도가 바텀-업으로 진행되고 있기 때문에, 높은 레벨블록은 정확하게 이러한 정보를 제공할 수 없다. 자식블록의 입력 슬루(slew) 및 출력-로딩 정보(output-loading information)는 정확하게 알려지지 않는다. 또한, 타이밍을 제외한 것과 같은 정보는 이런 간단한 모델로 표현하기에 불가능할 수 있다.These two pieces of information can be precomputed if one is known in the stringent operating environment of each block. However, since the verification flow is going to bottom-up, a high level block cannot accurately provide this information. The input slew and output-loading information of the child blocks are not known exactly. Also, information such as timing may be impossible to represent with this simple model.

선-추출된(pre-extracted) 선형 지연 모델(linear delay model)을 가지고 또는 변화하는 슬루 및 로드값(load value)을 가져 낮은 레벨블록상에서 구동하는 다중해석으로부터 룩업 테이블(lookup table)을 구성함으로써 슬루 및 로드 효과를 모델링하는 것이 가능하다. 그러나, 이러한 감소된 모델은 다소 부정확할 것이고, 정확한 드라이버 및 리시버 로케이션 및 라우팅 토폴로지가 결정되어질 때까지 상호접속 네트워크를 정확히 모델링하기에 가능하지 않으며, 신호-의존 지연(signal-dependent delay) 또는 신호 커플링(signal coupling)(크로스토크 지연(crosstalk delay) 및 노이즈 주입(noise injection))을 설명하기에 가능하지 않다.By constructing a lookup table from multiple interpretations running on low-level blocks with a pre-extracted linear delay model or with varying slew and load values. It is possible to model the slew and rod effects. However, this reduced model will be somewhat inaccurate, not possible to accurately model the interconnect network until the correct driver and receiver location and routing topology has been determined, and not signal-dependent delay or signal coupling. It is not possible to explain the signal coupling (crosstalk delay and noise injection).

전기적 해석(Electrical Analysis)Electrical Analysis

전기적 해석은 블록 및 상기 블록의 개별적인 컴포넌트가 동작시 이상화된(idealized) 전기적 특성으로부터 벗어나지 않을 것인지를 검증하는 것에 관한 것이다. 모델링되어야 하는 영향의 두가지 예는 IR-드롭(IR-drop) 및 일렉트로마이그레이션(electromigration)을 포함한다.Electrical analysis relates to verifying that a block and its individual components will not deviate from idealized electrical properties in operation. Two examples of effects that must be modeled include IR-drop and electromigration.

전압 드롭 및 그라운드-바운스의 공급영향을 포함하는 IR-드롭은 파워 및 그라운드 분배 네트워크(distribution network)상의 비이상적인(non-ideal) 동작을 측정한다. 공급 분배 네트워크를 마크업(mark up)하는 와이어는 비제로(non-zero) 저항을 가지고, 큰 전류부하는 공급 전압이 상기 와이어를 따라 다양한 지점에서 특정 범위로부터 벗어나도록 할 수 있다. 이런 영향은 회로의 타이밍 동작에 예상되지 않은 변화를 야기할 수 있고, 극한 경우에는 동작하는 회로의 완전한 장애를 야기할 수 있다.IR-drops, including voltage drop and ground-bounce supply effects, measure non-ideal behavior on power and ground distribution networks. The wires that mark up the supply distribution network have a non-zero resistance, and large current loads can cause the supply voltage to deviate from a certain range at various points along the wire. This effect can cause unexpected changes in the timing behavior of the circuit, and in extreme cases can lead to complete failure of the circuit in operation.

일렉트로마이그레이션 장애는 또한 비이상적인 저항성의 와이어(resistive wire)에서의 높은 전류밀도로부터 발생된다. 그러나, IR-드롭과 달리, 이러한 장애는 와이어에서 전기적인 변화보다는 물리적인 변화를 야기한다. 집적회로의 수명에 걸쳐, 이러한 고전류는 그것들의 원래위치로부터 마이그레이션하는 금속원자를 발생시킬 수 있고, 이는 제조시간에서 존재하지 않았던 회로의 단락 및 개방을 일으킬 수 있다.Electromigration disturbances also result from high current densities in non-ideal resistive wires. However, unlike IR-drops, this disorder causes a physical change rather than an electrical change in the wire. Over the lifetime of integrated circuits, these high currents can generate metal atoms that migrate from their original locations, which can cause short circuits and open circuits that were not present at the time of manufacture.

만약 IR-드롭 해석이 장애를 나타낸다면, IR-드롭의 결과는 파워 분배 네트워크 디자인상의 피드백으로 사용될 수 있다. 또한, 그것은 상술된 바와 같은 타이밍 해석의 정확성을 개선시키는데 이용될 수 있다. 일렉트로마이그레이션 해석의 결과는 만약 상기 일렉트로마이그레이션이 장애를 나타낸다면, 회로 네트리스트에 대한 변화 또는 라우팅시 이용되는 와이어의 폭(저항)에서의 변화를 요구하는 회로 그자체의 구현에 영향을 끼치는데 이용될 수 있다.If the IR-drop interpretation indicates a failure, then the result of the IR-drop can be used as feedback on the power distribution network design. It can also be used to improve the accuracy of the timing interpretation as described above. The results of the electromigration analysis are used to influence the implementation of the circuit itself that requires a change to the circuit netlist or a change in the width (resistance) of the wires used in routing if the electromigration indicates a failure. Can be.

이러한 전기적 영향 모두는 회로의 각 와이어상에 보여질 수 있는 엄격한 전압 및 전류의 상세한 해석을 요구한다. 장애의 측정 및 예견에 이용되는 모델에 따라, 이러한 해석은 스태틱 또는 평균 케이스 해석일 수 있거나 다이나믹 시간-도메인에서 로직 또는 회로 시뮬레이션을 요구할 수 있다. 상기 해석이 스태틱 타이밍 해석을 구비하기 때문에, 이러한 영향은 추상에서 모델링되어야 한다.All of these electrical effects require detailed interpretation of the strict voltage and current that can be seen on each wire of the circuit. Depending on the model used to measure and predict failure, this analysis may be a static or average case analysis or may require logic or circuit simulation in a dynamic time-domain. Since the analysis has a static timing analysis, this effect must be modeled in the abstract.

배치 및 라우팅(Placement and Routing)Placement and Routing

배치는, 블록 및 서브-블록이 어떻게 상호연결되는지를 나타내는 라우팅동안 상기 블록 및 서브-블록이 집적회로상에 어떻게 물리적으로 배치되는지를 다룬다. 블록의 물리적인 배치 및 블록핀의 라우팅은 상기 블록의 물리적인 구성에 대한 최소 정보를 요구한다. 블록의 핀 형상은 라우터가 핀에 연결되도록 허용되는 한세트의 합법적인 로케이션(legal location)을 제공한다. 블록의 나머지 내부형상은 일반적으로 부모블록에서의 라우팅이 단락 회로 및 셀에 대한 디자인규칙 위반(design-rule violation) 및 블록 내부의 라우팅을 방지하는 크게 감소된 한세트의 저해물(blockage)에 의해 표현될 수 있다.Placement deals with how the blocks and sub-blocks are physically placed on the integrated circuit during routing, indicating how the blocks and sub-blocks are interconnected. Physical placement of blocks and routing of block pins requires minimal information about the physical configuration of the block. The pin shape of the block provides a set of legal locations that allow the router to connect to the pins. The remaining internal geometry of the block is usually represented by a greatly reduced set of blockages where routing in the parent block prevents design-rule violations for short circuits and cells and routing within the block. Can be.

그러나, 현재 심층의-1 미크론 미만(deep-submicron) 제조 기술(약 250 나노미터 미만의 최소 피처 사이즈를 갖는 기술)은 이런 모델에 하나의 복잡한 문제(complication)를 부가한다. 안테나-규칙 위반의 검출 및 복구는 계층적 경계에 걸쳐 구동 및 수용하는 게이트를 연결하는 와이어 토폴로지를 라우팅하는 지식 에 더하여 이들 와이어를 연결하는 모든 트랜지스터 게이트, 소스, 및 드레인(drain)의 지식을 요구한다.However, current deep-submicron manufacturing techniques (those with a minimum feature size of less than about 250 nanometers) add one complex complication to this model. Detection and repair of antenna-rule violations requires knowledge of all transistor gates, sources, and drains connecting these wires, in addition to knowledge of routing wire topologies connecting the gates that drive and receive across hierarchical boundaries. do.

버짓팅(Budgeting)Budgeting

일반적으로, 서브-블록에 대해 최적이고 달성가능한 버짓을 얻기 위해서, 스태틱 타이밍 해석은 블록의 계층적 경계를 교차하는 모든 로직 경로상에서 수행되어야 한다. 그것들이 계층에서 부모블록, 서브-블록 및 서브-블록의 형제블록의 하나에 속해있는지 아닌지 간에, 이러한 해석은 서브-블록 핀으로부터 가시되는 모든 레지스터에 영향을 주어야 한다(reach). 하나의 장점은 서브-블록 내에 포함되는 모든 조합적인 경로가 무시될 수 있어, 이러한 해석의 비용을 꽤 줄일 수 있다는 것이다.In general, in order to obtain an optimal and achievable budget for the sub-blocks, static timing analysis must be performed on all logic paths crossing the hierarchical boundaries of the blocks. Whether they belong to one of the parent blocks, sub-blocks, and sibling blocks of the sub-blocks in the hierarchy, this interpretation must reach all registers visible from the sub-block pins. One advantage is that all combinatorial paths contained within the sub-block can be ignored, which can significantly reduce the cost of this interpretation.

만약 버짓팅 단계가 스태틱 타이밍 해석뿐만 아니라 교차-경계 로직 최적화를 수행하도록 허용된다면, 최적 버짓 할당을 구현하는 것이 가능하다. 이러한 기술은, 함께 계류중인 2002년 6월 10일자의 특허출원 "Method for Generating Design Constraints for Modules in a Hierarchical Integrated Circuit Design System" (출원인의 참조번호 054355-0293259)에 개재되어 있다.If the budgeting step is allowed to perform cross-boundary logic optimization as well as static timing analysis, it is possible to implement optimal budget allocation. This technology is disclosed in the pending patent application "Method for Generating Design Constraints for Modules in a Hierarchical Integrated Circuit Design System" of June 10, 2002 (applicant's reference number 054355-0293259).

블록 추상 프로세스(Block Abstraction Process)Block Abstraction Process

아래에 서술되는 바와 같이, 본 발명의 중심저인 형태는, 상기 약술된 요건에 따르면서 요구되는 논리적 및 물리적인 데이터 감소 단계를 달성하는 블록 추상을 위한 방법이다. 주요한 아이디어는 감소된 정확도의 간략화된 수학적 모델을 구비하지 않고, 디자인 데이터 그자체의 서브세트로 디자인을 표현하는 것이다. 감소된 모델은 오리지널 모델의 카피로 이루어지지만, 버려진(discarded) 모든 중요하지 않은 정보를 구비하지 않는다. 다른 방법을 제시하는 바와 같이, 추상은 계층에서 부모 및 형제블록과의 관계에서 정확하게 블록을 모델링하는 것에 요구되는 논리적 네트리스트 및 물리적 블록구현의 추상의 요소만을 카피함으로써 만들어지고, 따라서 블록데이터의 양이 크게 감소된다.As described below, the central aspect of the present invention is a method for block abstraction that achieves the logical and physical data reduction steps required in accordance with the requirements outlined above. The main idea is not to have a simplified mathematical model of reduced accuracy, but to represent the design as a subset of the design data itself. The reduced model consists of a copy of the original model, but does not have all the non-critical information discarded. As another method suggests, the abstraction is created by copying only the elements of the abstract of the logical netlist and physical block implementation required for modeling the block correctly in relation to the parent and sibling blocks in the hierarchy, thus the amount of block data This is greatly reduced.

본 명세서의 나머지는, 안테나 규칙, 저항-콘덴서(RC) 와이어 지연, 크로스토크, 노이즈 주입, IR-드롭 및 일렉트로마이그레이션 영향과 같은 중요한 물리적인 효과를 포함하는 블록의 논리적이고 물리적인 특성을 모델링하기 위해, 계층적 블록추상에서 포함되는 논리적인 네트리스트 객체 및 물리적인 레이아웃 객체를 상세히 설명한다. 이러한 추상으로 모델링된 블록은 필수적으로 완전한 정확성을 가지는 탑-다운 또는 바텀-업 블록구현에서의 어느하나 뿐만 아니라 탑-다운 버짓팅, 바텀-업 스태틱 타이밍 및 전기적인 해석을 위해 이용될 수 있다. 이러한 정확도의 레벨은 부모 및/또는 형제블록의 독립적으로 해석될 수 없는 각 블록에서 데이터의 서브세트만을 선택적으로 계속 유지함으로써 달성될 수 있다. 계속 유지되는 데이터는 논리적인(네트리스트) 데이터, 디자인제약 및 물리적인(레이아웃) 데이터를 포함할 수 있다. 그것들에 대한 간략화되거나 최악의 경우도 고려한 모델 대신에물리적인 객체 그자체를 포함함으로써 정확도를 잃지 않는다.The remainder of this specification is to model the logical and physical characteristics of a block, including significant physical effects such as antenna rules, resistance-condenser (RC) wire delay, crosstalk, noise injection, IR-drop, and electromigration effects. To this end, the logical netlist object and the physical layout object included in the hierarchical block abstract will be described in detail. These abstractly modeled blocks can be used for top-down budgeting, bottom-up static timing and electrical analysis, as well as either in top-down or bottom-up block implementations with essentially complete accuracy. This level of accuracy can be achieved by selectively maintaining only a subset of the data in each block that cannot be independently interpreted of the parent and / or sibling blocks. Ongoing data may include logical (netlist) data, design constraints, and physical (layout) data. It does not lose its accuracy by including the physical objects themselves instead of the simplified or worst case models for them.

추상 프로세스는 도 3에 도시된 2개의 주요단계를 포함하는 것으로 간주될 수 있다. 첫째, 단계 310에 따라, 블록의 논리적인 "쉘"의 범위가 결정된다. 이는 각 경로를 따라 만날수 있는 제1래치 또는 플립플롭을 포함하는 블록의 입력 및 출력핀으로부터 조합적인 경로에 따라 도달할 수 있는 셀의 세트이다. 상기 세트는 또한 이전에 언급된 셀에 대한 정확한 용량성의 로딩 정보를 제공하기에 필요한 얼마간의 부가적인 셀을 포함해야 한다. 블록내에서 완전하게 바운스되는 레지스터인 셀은 블록의 외부 타이밍에 어떠한 영향을 줄 수 없고, 따라서, 논리적인 쉘내에 포함되지 않는다. 이러한 논리적인 쉘의 컨텐츠는 그래프 횡단법(graph traversal) 및 아래 단락에 논의되는 라벨링 알고리즘(labeling algorithm)으로 결정된다.The abstract process can be considered to include the two main steps shown in FIG. First, according to step 310, the logical range of "shells" of the block is determined. This is a set of cells that can be reached along a combined path from the input and output pins of a block that includes a first latch or flip-flop that can meet along each path. The set should also include some additional cells needed to provide accurate capacitive loading information for the previously mentioned cells. Cells that are registers that are fully bounced within a block cannot have any effect on the external timing of the block and therefore are not included in the logical shell. The content of this logical shell is determined by graph traversal and the labeling algorithm discussed in the following paragraphs.

논리적인 쉘의 컨텐츠가 결정된 후, 단계 320에서는, 추상에서 계속 유지되어야 하는 물리적인 형상의 세트가 결정된다. 이것은 크로스토크 지연 및 노이즈 주입의 영향을 모델링하는 것뿐만 아니라 논리적인 쉘에서의 네트의 저항 및 콘덴서를 모델링하는 것을 요구한다. 아래에 보여지는 바와 같이, 또한, 이러한 영향을 모델링하기 위해 논리적인 추상에서 얼마간의 추가적인 쉘을 포함하는 것이 요구될 수 있다.After the content of the logical shell is determined, in step 320 a set of physical shapes that are to be maintained in the abstract are determined. This requires modeling the effects of crosstalk delay and noise injection as well as modeling the resistance and capacitor of the net in the logical shell. As shown below, it may also be necessary to include some additional shell in the logical abstraction to model this effect.

도 4는 본 발명의 1이상의 실시예에 따르면, 논리 쉘 라벨링인 단계 310의 상세한 플로우차트이다. 논리 쉘의 콘텐트는 블록의 타이밍 그래프의 노드를 라벨링하는 알로리즘에 의해 판정된다. 타이밍 그래프는 다음 정보: 즉4 is a detailed flowchart of step 310 which is logical shell labeling, in accordance with one or more embodiments of the present invention. The content of the logical shell is determined by an algorithm that labels the nodes of the timing graph of the block. The timing graph has the following information:

(1) 네트리스트(셀들이 서로 어떻게 연결되는지의 설명)(1) netlist (description of how cells are connected to each other)

(2) 셀 라이브러리(정보가 셀을 통하여 어떻게 흐르는지의 설명): 및(2) a cell library (description of how information flows through the cell): and

(3) 타이밍 제약(클록, 타이밍 예외 및 브로큰 에지의 설명)로 부터 구성되는 다이렉트 그래프이다.(3) A direct graph constructed from timing constraints (description of clocks, timing exceptions, and broken edges).

그래프 노드는 셀 핀을, 에지는 상기 핀을 연결하는 네트를 나타낸다. 다시 말해, 라벨링의 목적은 제1핀으로부터 볼 때 전체 모델에 존재하는 쉘 모델과 동일한 타이밍 그래프를 제공하는데 필요한 셀만을 보존시키는 것이다.Graph nodes represent cell pins and edges represent nets connecting the pins. In other words, the purpose of the labeling is to preserve only the cells necessary to provide the same timing graph as the shell model present in the entire model when viewed from the first pin.

논리 쉘 라벨링은 논리 쉘내의 데이터 (논-클록) 제1인풋 핀으로부터 기원한 댑스 퍼스트 트래버셜에 의해 시작된다(블록 410). 다음으로, 제1아웃풋 핀으로부터 기원한 댑스 퍼스트 트레버셜이 수행된다(블록 420). 끝으로, 블록 430에 따라, 클록 (논-데이터) 제1입력 핀으로부터 기원한 댑스 퍼스트 트래버셜이 수행된다.Logical shell labeling begins with the Dip First Traversal originating from the data (non-clock) first input pin in the logical shell (block 410). Next, a dip first first originating from the first output pin is performed (block 420). Finally, according to block 430, the dips first traversal originating from the clock (non-data) first input pin is performed.

상기 댑스 퍼스트 트래버셜 동안 만나는 셀들은 다음의 룰에 따라 라벨이 부여된다(한 셀이 1이상의 라벨을 가지는 것이 허용된다는 것에 유의).Cells encountered during the DAPs first traversal are labeled according to the following rules (note that one cell is allowed to have more than one label).

1) 타이밍 셀:1) timing cell:

제1인풋 또는 아웃풋 핀으로부터 도달할 수 있는 셀로서 정의된다. 집합적으로, 이들 셀이 제1핀으로부터 식별가능한 타이밍 그래프를 정의한다.It is defined as a cell that can be reached from the first input or output pin. Collectively, these cells define a timing graph that is discernible from the first pin.

2) 멀티-드라이버 로드 셀:2) Multi-driver load cell:

그 자체가 타이밍 셀은 아닌, 타이밍 셀과 동일한 네트를 구동하는 셀로서 정의된다.It is not itself a timing cell, but is defined as a cell that drives the same net as the timing cell.

3) 싱크 로드 셀:3) Sink Load Cell:

구동 셀이 클록 네트워크의 일부가 아닐 경우, 그 자체가 타이밍 셀은 아닌타이밍 셀에 의하여 구동되는 셀로서 정의된다.If the driving cell is not part of a clock network, it is defined as a cell driven by a timing cell rather than a timing cell itself.

4) 클록 로드 셀:4) Clock Load Cells:

구동 셀을 제외한 싱크 로드 셀과 유사하게 클록 네트워크의 일부이다.Similar to the sink load cell except the drive cell, it is part of the clock network.

도 5는 이 라벨링 프로세스를 거치는 블록을 예시하는 도면이다. 예시되어 있는 예시적인 블록에서, 다음의 소자는 입력 시방(specication)으로 주어져 있다. 상기 블록은 1차 클록 입력 핀, 즉, CLK; 4개의 1차 데이터 입력 핀들, 즉 CG, IN0, IN1 및 IN2;와 2개의 1차 입력, 즉 OUT0 및 OUT1으로 구성되어 있다. 셀 R1, R2, R3, R4 및 R5는 레지스터(플립플롭) 소자이다. 구성요소 C1, C2, C3, C4 및 C5는 임의의 조합 로직 회로이다(연결된 셀들의 그룹). 셀 I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I14 및 I14는 개별 조합 로직 게이트의 예이다.5 is a diagram illustrating a block that goes through this labeling process. In the exemplary block illustrated, the following element is given by input specication. The block includes a primary clock input pin, CLK; It consists of four primary data input pins, CG, IN0, IN1 and IN2; and two primary inputs, OUT0 and OUT1. Cells R1, R2, R3, R4, and R5 are resistor (flip-flop) devices. Components C1, C2, C3, C4 and C5 are any combinational logic circuit (group of connected cells). Cells I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I14 and I14 are examples of separate combinational logic gates.

셀 라벨링 프로세스는 클록 핀 또는 데이터 핀으로서 모든 셀 핀을 식별할 수 있는 것에 기초한다. 식별함으로써, 핀이 클록 핀이 아닌 경우, 그것은 데이터 핀이다. 이 라벨링은 여하한의 타이밍해석 알고리즘의 표준 부분이므로, 본 명세서에서 서술되지 않을 것이다. 스태틱 타이밍 알고리즘에 따르면, 셀 I1, I2, I3, I4, I10 및 I11상의 모든 핀들은 클록 핀으로서 식별된다. 또한, 셀 I5상의 상부 입력 핀 및 I5상의 출력 핀도 클록 핀으로서 확인된다. 또한, 삼각형으로 표시된 셀 R1, R2, R3, R4 및 R5에 부착된 핀들은 클록 핀으로서 라벨링된다. 도 5의 예시적인 회로에 적용된 바와 같은 이 라벨링 프로세스는 이하에 설명된다.The cell labeling process is based on being able to identify all cell pins as clock pins or data pins. By identifying, if the pin is not a clock pin, it is a data pin. This labeling is a standard part of any timing analysis algorithm and therefore will not be described herein. According to the static timing algorithm, all the pins on cells I1, I2, I3, I4, I10 and I11 are identified as clock pins. The upper input pin on cell I5 and the output pin on I5 are also identified as clock pins. In addition, the pins attached to the cells R1, R2, R3, R4, and R5 indicated by triangles are labeled as clock pins. This labeling process as applied to the example circuit of FIG. 5 is described below.

입력 핀 라벨링Input pin labeling

라벨링 프로세스는 데이터(비-클록) 1차 입력과 함께 시작한다. 반복적인뎁스 펄스트 트래버셜은 임의의 순서대로 각각의 이러한 핀에서 중심을 잡아 실행된다. 상기 반복은 그래프내의 나무잎형상을 만나게 되거나(후계자, 예를 들어, 플립플롭 또는 1차출력의 데이터 핀이 없는 핀), 만나는 핀이 클록 핀이 경우에 종료된다. 각각의 트래버셜 중에 만나는 셀들은 타이밍 셀로서 라벨링된다(타이밍 그래프내의 점들은 셀 핀인 것을 유의한다). 타이밍 셀 출력에 연결된 그들의 출력을 가지는 셀들은 멀티 드라이버 로드 셀로서 라벨링된다. 이러한 멀티 드라이버 로드 셀의 일례는 트리-스테이트 드라이버(tri-state driver)(도 5의 셀 I6 및 I7)이다.The labeling process begins with the data (non-clock) primary input. Repetitive depth pulse traversal is performed centered on each such pin in any order. The repetition is encountered when the tree leaves in the graph are met (ie, a pin without a successor, eg, a flip-flop or primary data pin), or terminated if the meeting pin is a clock pin. The cells that meet during each traversal are labeled as timing cells (note that the points in the timing graph are cell pins). Cells with their outputs coupled to the timing cell outputs are labeled as multi-driver load cells. One example of such a multi-driver load cell is a tri-state driver (cells I6 and I7 in FIG. 5).

이들 프로세스는 도 6 및 도 7에 정리되어 있다. 도 6은 도 4의 프로세스 데이터 입력단계(410)를 정리한 것이다. 이 프로세스는 회로에 대하여 모든 1차 입력(블록 610)의 리스트를 구성함으로써 시작되고, 리스트가 비워질 때까지 계속된다(블록 620에서 체크됨). 핀이 리스트(블록 630)으로부터 제거된 후에, 그것이 클록 핀일 경우 건너 뛰고(블록 640에서 체크됨), 다음 핀과 계속하여 처리된다(다시, 블록 620 내지 640). 만약 클록핀이 아닌 경우(블록 640에서 체크됨), 핀의 주요 전방 프로세싱은 플록 650에서 생기며, 이는 도 7에 상세히 설명된다.These processes are summarized in FIGS. 6 and 7. 6 illustrates a process data input step 410 of FIG. 4. This process begins by constructing a list of all primary inputs (block 610) for the circuit and continues until the list is empty (checked at block 620). After the pin is removed from the list (block 630), it is skipped if it is a clock pin (checked at block 640) and continues to be processed with the next pin (again, blocks 620 through 640). If it is not a clock pin (checked at block 640), the main forward processing of the pin occurs at floc 650, which is described in detail in FIG.

도 7에 설명된 프로세스는 블록 750에서 순환이 발생하는 순환 프로세스이다. 리스트(블록 710)내의 개시 핀의 모든 후계자들을 수집함으로써 프로세싱이 개시되고 리스트가 비워질때까지(블록 715에서 체크됨) 계속된다. 핀이 리스트로부터 제거된 후에(블록 720) 상기 핀을 위한 셀은 "타이밍" 셀(블록 725)로서 라벨링된다. 상기 핀이 클록 핀이라면 더이상의 프로세싱이 요구되지 않는다(블록 730에서체크됨). 핀이 인풋 핀이라면(블록 735에서 체크됨) 그 때는 핀이 1이상의 프리디세서를 갖는지를 판정한다(블록 740에서 체크됨). 1이상의 프리디세서가 발견된다면(블록 740에서 체크됨) 모든 프리디세서 셀은 "멀티 드라이버 로드(multi-driver load)" 셀로서 라벨링된다(블록 745). 플로우차트는 블록 750에서 스스로를 호출함으로써 댑스 퍼스트 리커션(depth-first recursion)을 수행한다.The process described in FIG. 7 is a cyclic process in which circulation occurs at block 750. Processing begins by collecting all the successors of the start pin in the list (block 710) and continues until the list is empty (checked in block 715). After the pin is removed from the list (block 720), the cell for the pin is labeled as a "timing" cell (block 725). If the pin is a clock pin, no further processing is required (checked at block 730). If the pin is an input pin (checked at block 735) then it is determined if the pin has at least one preprocessor (checked at block 740). If more than one preprocessor is found (checked at block 740), all preprocessor cells are labeled as "multi-driver load" cells (block 745). The flowchart performs depth-first recursion by calling itself at block 750.

도 5에 나타낸 예시용 회로를 참조하면, 인풋 라벨링 알고리즘은 다음과 같이 진행된다. 댑스 퍼스트 트래버셜은 인풋 핀(INO)으로부터 시작하여 구성요소(C1) 및 레지스터(R1)와 만나고, 레지스터(R1)에서 종결된다. 상기 트래버셜내에 포함되는 컴퍼넌트(C1) 및 레지스터(R1)내의 모든 셀들은 타이밍 셀로서 라벨링된다. 마찬가지로, 인풋 CG로부터 시작하는 구성요소(C2)내의 모든 셀 및 셀 I5도 타이밍 셀로서 라벨링된다. 트래버셜은 I5에서 종결되는데, 이는 I5의 아웃풋이 클록 핀이기 때문이다(I5는 "클록 게이팅" 셀임). 인풋 핀(IN1)으로부터 시작하는 구성요소(C3)내의 모든 셀들은 타이밍 셀로서 라벨링된다. 셀(I6) 및 레지스터(R2) 또한 타이밍 셀로서 라벨링된다. 셀(I7)은 그것의 출력이 또 다른 타이밍 셀의 아웃풋에 묶여 있기 때문에 멀티 드라이버 로드로서 라벨링된다. 인풋 핀(IN2)으로부터 시작하는 구성요소(C4)내의 모든 셀들은 타이밍 셀로서 라벨링된다. 인풋 라벨링은 이 포인트에서 완료될 것으로 이해된다.Referring to the example circuit shown in FIG. 5, the input labeling algorithm proceeds as follows. The dips first traversal starts with the input pin INO, meets the component C1 and the register R1, and terminates at the register R1. All cells in component C1 and register R1 included in the traversal are labeled as timing cells. Likewise, all cells and cell I5 in component C2 starting from input CG are also labeled as timing cells. Traversal terminates at I5 because the output of I5 is the clock pin (I5 is a "clock gating" cell). All cells in component C3 starting from input pin IN1 are labeled as timing cells. Cell I6 and register R2 are also labeled as timing cells. Cell I7 is labeled as a multi-driver load because its output is tied to the output of another timing cell. All cells in component C4 starting from input pin IN2 are labeled as timing cells. It is understood that input labeling will be completed at this point.

아웃풋 핀 라벨링Output pin labeling

다음으로 제1아웃풋 핀에서 시작하는 댑스 퍼스트 트래버셜을 사용하여 아웃풋 라벨링이 유사한 방식으로 진행된다. 리프 핀이 그래프에서 만나거나 만나는 핀이 클록 핀인 경우에는 순환이 다시 종결된다. 그리고 나서 상기 트래버셜을 따라 만나는 셀들이 타이밍 셀로서 다시 라벨링된다. 인풋 라벨링 알고리즘으로부터의 차이 중 하나는, 댑스 퍼스트 트래버셜의 일부가 아닌 타이밍 셀로부터 소스가 생겨나는 셀로서 정의되는 싱크-로드 셀이 식별될 필요가 있다는 점이다.Next, output labeling proceeds in a similar manner using the DAPs first traversal starting at the first output pin. If the leaf pin meets in the graph or if the pin it meets is the clock pin, the cycle is terminated again. Cells that meet along the traversal are then labeled again as timing cells. One of the differences from the input labeling algorithm is that a sync-load cell needs to be identified which is defined as a cell from which a source comes from a timing cell that is not part of the dips first traversal.

상기 프로세스는 도 8 및 도 9에 요약되어 있다. 도 8은 도 4의 프로세스 아웃풋 단계(420)를 요약하고 있다. 모든 제1출력의 리스트를 회로로 빌딩함으로써 프로세스가 시작되고(블록 810), 상기 리스트가 비워질때까지 계속된다(블록 820에서 체크됨). 핀이 리스트로부터 제거된 후에(블록 830)는 블록 840에 의하여 진행되며, 이에 대해서는 도 9에 상세히 설명되어 있다.The process is summarized in FIGS. 8 and 9. FIG. 8 summarizes the process output step 420 of FIG. The process begins by building a list of all first outputs into the circuit (block 810) and continues until the list is empty (checked in block 820). After the pin is removed from the list (block 830), it proceeds to block 840, which is described in detail in FIG.

도 9에 설명된 프로세스는 순환 프로세스이며 그 순환은 블록 950에서 발생한다. 리스트내의 개시 핀의 모든 프리디세서를 수집함으로써 프로세싱이 시작되고(블록 910) 리스트가 비워질때까지 계속된다(블록 915에서 체크됨). 핀이 리스트(블록 920)으로부터 제거된 후에, 상기 핀을 위한 셀이 "타이밍" 셀로서 라벨링된다(블록 925). 핀이 클록 핀이라면 더이상의 프로세싱은 요구되지 않는다(블록 930에서 체크됨). 핀이 아웃풋 핀인 경우에는(블록 935에서 체크됨), 모든 프리디세서가 "싱크 로드" 셀로서 라벨링된다(블록 940). 플로우차트는 블록 950에서 스스로를 호출함으로써 순환된다.The process described in FIG. 9 is a recursive process and the recursion occurs at block 950. Processing begins by collecting all preprocessors of the starting pin in the list (block 910) and continues until the list is empty (checked in block 915). After the pin is removed from the list (block 920), the cell for the pin is labeled as a "timing" cell (block 925). If the pin is a clock pin, no further processing is required (checked at block 930). If the pin is an output pin (checked at block 935), all preprocessors are labeled as "sink load" cells (block 940). The flowchart is cycled by calling itself at block 950.

예시로서 도 5를 다시 참조하면, 구성요소(C5)내의 모든 셀들은 타이밍 셀로서 라벨링된다. 셀 I12 및 레지스터 R3 또한 타이밍 셀로서 라벨링된다. 구성요소(C4)내의 모든 셀들은 타이밍 셀로서 라벨링된다. 아웃풋 라벨링은 이 포인트에서 완료되는 것으로 생각된다.Referring again to FIG. 5 as an example, all cells in component C5 are labeled as timing cells. Cell I12 and register R3 are also labeled as timing cells. All cells in component C4 are labeled as timing cells. Output labeling is thought to be completed at this point.

클록 핀 라벨링Clock Pin Labeling

마지막 라벨링 단계는 제1클록 인풋으로부터 시작하는 댑스 퍼스트 트래버셜을 포함한다. 이 경우에 있어, 그래프의 리프 핀이 만나거나 만나는 핀이 데이터 핀인 어느 한 경우에 상기 트래버셜이 종결된다. 트래버셜이 데이터 핀에서 끝나는 경우, 핀의 셀이 이미 타이밍 핀으로서 라벨링되었는지를 알기 위한 체크가 이루어진다. 트래버셜이 타이밍 셀로서 라벨링된 셀에서 끝나는 경우에만 타이밍 셀로서 라벨링된 상기 셀에 대한 경로상에 셀들이 존재한다. 트래버셜 진행시, 소스가 타이밍 셀로서 라벨링되지 않은 타이밍 셀로부터 나온 셀은 클록 로드로서 마킹된다.The final labeling step includes the dips first traversal starting from the first clock input. In this case, the traversal terminates when either the leaf pin of the graph meets or the pin where the pin meets is the data pin. When the traversal ends at the data pin, a check is made to see if the cell on the pin is already labeled as a timing pin. Only when the traversal ends in the cell labeled as the timing cell are cells in the path to the cell labeled as the timing cell. During traversal, cells from timing cells whose source is not labeled as timing cells are marked as clock loads.

이 프로세스는 도 10 및 도 11에 요약되어 있다. 도 10은 도 4의 프로세스 클록 인풋 단계(430)를 요약하고 있다. 모든 제1클록 인풋의 리스트를 회로에 빌딩함으로써 프로세스가 시작되고(블록 1010) 상기 리스트가 비워질때까지 계속된다(블록 1020에서 체크됨). 상기 리스트로부터 핀이 제거된 후에는(블록 1030), 블록 1040에 의하여 진행되며, 이에 대해서는 도 11에서 상세히 설명된다.This process is summarized in FIGS. 10 and 11. FIG. 10 summarizes the process clock input step 430 of FIG. The process begins by building a list of all first clock inputs into the circuit (block 1010) and continues until the list is empty (checked in block 1020). After the pin is removed from the list (block 1030), it proceeds to block 1040, which is described in detail in FIG.

도 11에서 설명되는 프로세스는 순환 프로세스로서 그 순환은 블록 1130에서 발생된다. 리스트의 개신 핀의 모든 후계자들을 수집함으로써 프로세스가 시작되고(블록 1110), 상기 리스트가 비워질때까지 계속된다(블록 1115에서 체크됨). 리스트로부터 핀이 제거된후에(블록 1120) 클록으로서 그것을 식별하기 위한 체크가 이루어진다(블록 1125). 핀이 클록 핀이 아니라면, 더 이상의 프로세싱은 요구되지 않는다(블록 1115로 회귀). 플로우차트는 블록 1130에서 스스로를 호출함으로써 댑스 퍼스트 순환을 수행한다. 순환 호출로부터 복귀할 때, 어떠한 핀의 후계자들이, 순환시 "타이밍"으로서 라벨링되는지를 판정하기 위한 체크가 이루어진다(블록 1135에서 체크됨). "타이밍" 셀로서 라벨링되는 후계자 셀이 없다면, 더 이상의 프로세싱은 요구되지 않는다(블록 1115로 회귀). 어느 후계자 셀이 "타이밍" 셀로서 라벨링되었다면, 상기 핀의 셀은 "타이밍" 셀로서 라벨링되고(블록 1140) 모든 후계자 셀들은 "클록 로드"로서 라벨링된다(블록 1150). 블록(1150)의 끝에서, 상기 핀의 셀이 "타이밍" 셀로서 라벨링되었기 때문에 상기 프로세스가 종결된다.The process described in FIG. 11 is a recursive process, the recursion occurring at block 1130. The process begins by collecting all the successors of the update pin of the list (block 1110) and continues until the list is empty (checked in block 1115). After the pin is removed from the list (block 1120) a check is made to identify it as a clock (block 1125). If the pin is not a clock pin, no further processing is required (return to block 1115). The flowchart performs the dips first cycle by calling itself at block 1130. Upon returning from the recursive call, a check is made (checked in block 1135) to determine which pin's successors are labeled as "timing" in the recursion. If no successor cell is labeled as a "timing" cell, no further processing is required (return to block 1115). If any successor cell is labeled as a "timing" cell, the cell of the pin is labeled as a "timing" cell (block 1140) and all successor cells are labeled as "clock load" (block 1150). At the end of block 1150, the process ends because the cell of the pin is labeled as a "timing" cell.

도 5의 예시를 다시 참조하면, 인풋 핀(CLK)으로부터 시작하는 트래버셜은 쉘 I1 및 I2를 거친다음 쉘 R1, R2 및 R3에서 끝난다. 따라서, 쉘 R1, R2 및 R3는 타이밍 쉘로서 라벨링된다. 결과적으로, 쉘 I1 및 I2 역시 타이밍 쉘로서 라벨링되는데, 이는 그들이 타이밍 쉘로의 트래버셜 경로를 따라 존재하기 때문이다. I3를 통한 트래버셜은 셀 R4에서 끝난다. R4는 제1인풋이나 제1아웃풋 중 어느 하나로부터 도달할 수 없고 그것의 클록 핀만을 거친다. 셀 R4는 타이밍 셀이 아니기 때문에 I3는 타이밍 셀로서 라벨링되지 않는다. 하지만, 그것의 소스인 I1은 타이밍 셀이기 때문에 클록 로드로서 라벨링된다. 동일한 논리는 R4에 대하여 셀 I4에 적용된다. I4는 클록 로드로서 라벨링된다. I5과 I11를 거친 트래버셜은 타이밍 셀로서 끝나지 않기 때문에, 그들은 타이밍 셀로서 라벨링되지 않는다. 셀 I5는 보통 클록 로드로사 라벨링되지만, 이미 그것은 인풋 CG시 타이밍 셀로서 라벨링되었다. 따라서, I5는 타이밍 셀로서 남게 된다.Referring again to the example of FIG. 5, the traversal starting from input pin CLK passes through shells I1 and I2 and ends at shells R1, R2 and R3. Thus, shells R1, R2 and R3 are labeled as timing shells. As a result, shells I1 and I2 are also labeled as timing shells because they exist along the traversal path to the timing shell. Traversal through I3 ends in cell R4. R4 cannot reach from either the first input or the first output, but only through its clock pin. Since cell R4 is not a timing cell, I3 is not labeled as a timing cell. However, its source, I1, is labeled as the clock load because it is a timing cell. The same logic applies to cell I4 for R4. I4 is labeled as the clock load. Since traversals through I5 and I11 do not end as timing cells, they are not labeled as timing cells. Cell I5 is usually labeled as clock load, but it has already been labeled as a timing cell at the input CG. Thus, I5 remains as a timing cell.

라벨링 요약:Labeling Summary:

IN0IN0 제1데이터 인풋First data input IN1IN1 제1데이터 인풋First data input IN2IN2 제1데이터 인풋First data input CGCG 제1데이터 인풋First data input CLKCLK 제1클록 인풋1st clock input I1I1 타이밍timing I2I2 타이밍timing I3I3 클록 로드Clock load I4I4 클록 로드Clock load I5I5 타이밍timing I6I6 타이밍timing I7I7 멀티 드라이버 로드Multi driver load I8I8 무라벨링(Unlabeled)Unlabeled I9I9 무라벨링Mabelling I10I10 무라벨링Mabelling I11I11 타이밍timing I12I12 타이밍timing I13I13 무라벨링Mabelling I14I14 싱크 로드Sink rod C1C1 타이밍timing C2C2 타이밍timing C3C3 타이밍timing C4C4 타이밍timing C5C5 타이밍timing R1R1 타이밍timing R2R2 타이밍timing R3R3 타이밍timing R4R4 무라벨링Mabelling R5R5 무라벨링Mabelling OUT0OUT0 제1데이터 아웃풋First data output OUT2OUT2 제1데이터 아웃풋First data output

라벨링 프로세스가 완료된 후에, 논리 타이밍 셀에 남아 있어야 하는 완료된 셀의 세트를 판정하는 것이 가능하다. 타이밍 그래프에 셀이 라벨링되지 않는다면, 블록의 인터페이스 타이밍에의 직접적인 영향은 없으며 그것은 무시해도 안전하다. 이들 셀은 네트리스트(netlist)로부터 검출되고 "그룹" 셀을 칭하는 빈(empty) 계층적 블록에 의하여 나타내어 진다. 그것의 경계를 크로싱하는 모든 네트에 대한 그룹 셀들상에는 핀들이 생성된다.After the labeling process is complete, it is possible to determine the set of completed cells that should remain in the logical timing cell. If no cell is labeled in the timing graph, there is no direct impact on the interface timing of the block and it is safe to ignore. These cells are detected by netlists and represented by empty hierarchical blocks called "group" cells. Pins are created on the group cells for every net that crosses its boundary.

잘못된 경로 및 지속적 전파(False paths and constant propagation)False paths and constant propagation

타이밍 셀로서 라벨링되는 셀 수의 추가적인 감소는 잘못된 경로의 적용을 억제하고 지속적인 전파를 통하여 달성된다. 회로 일부의 타이밍이 무한한 슬랙을 갖는다면 회로의 일부는 제1핀으로부터 식별불가능하다. 결과적으로, 상기 인풋 및 아웃풋 라벨링이 수행되는 경우에 무한한 슬랙을 갖는 상기 핀들은 그래프에서 남겨진채 처리될 수 있다.Further reduction in the number of cells labeled as timing cells is achieved through suppression of the application of false paths and continuous propagation. If the timing of the circuit portion has infinite slack, the portion of the circuit is indistinguishable from the first pin. As a result, when the input and output labeling is performed, the pins with infinite slack can be processed leaving in the graph.

이는 최종사용자에게 잘못된 경로의 사용을 억제하고 지속적인 적용을 통해 타이밍 셀로서 마킹되는 제어를 가능케 하는 장점을 갖는다.This has the advantage of allowing the end user to control the marking as a timing cell through the continued application and to suppress the use of wrong paths.

경로 예외(Path exceptions)Path exceptions

제1핀에서의 타이밍에 영향을 미치는 경로의 예외들은 원래의 예외들이 전체 모델에 적용되는 것과 동일한 방식으로 쉘 모델에 적용된다. 이는, 경로의 예외가 타이밍 그래프의 노드에 적용되고 제1핀으로부터 식별가능한 모든 노드가 쉘 모델에 보존되어 있기 때문에 가능하다. 일부 축소된 타이밍 그래프에 관한 예외들을 재기록하기 위한 노력은 필요하지 않다. 또한, 상기 계층에서의 보다 높은 다음 레벨에서 필요로 하는 경로의 예외들은 쉘 생성 프로세스 동안 노출될 수 있다(식별가능해진다). 이는, 먼저 노출될 필요가 있는 제약들을 먼저 식별한 후 쉘 모델이 다음 레벨에서 구체적으로 나타날 경우 그들이 적용될 수 있는 방식으로 그들을 재기록함으로써 수행된다. 이러한 방식에 있어서, 계층적 경계들을 크로싱하는 경로의 예외들은 디자인 프로세스 동안 일관되고 정확한 방식으로 유지될 수 있다.Exceptions in the path that affect timing on the first pin apply to the shell model in the same way that the original exceptions apply to the entire model. This is possible because an exception of the path applies to the nodes of the timing graph and all nodes identifiable from the first pin are preserved in the shell model. No effort is needed to rewrite exceptions for some reduced timing graphs. Also, exceptions in the path needed at higher next levels in the hierarchy may be exposed (identifiable) during the shell creation process. This is done by first identifying the constraints that need to be exposed and then rewriting them in such a way that they can be applied if the shell model appears specifically at the next level. In this manner, exceptions to paths that cross hierarchical boundaries can be maintained in a consistent and accurate manner during the design process.

래치 기반 디자인(Latch-based designs)Latch-based designs

본 발명의 일 실시예에서는, 래치 기반 디자인이, 셀이 어떻게 라벨링되는지의 관점에서 플립-플롭 기반(flip-flop-based) 디자인으로 동일 쉘 모델을 생성한다. 또한, 래치의 시간 빌림(time-borrowing) 특성을 반영하기 위하여, 쉘 모델의 각 래치에 대한 빌림의 양을 기술하는 정보가 세이브된다. 이는 쉘 모델의 래치에 대하여 허용되는 상기 빌림을 동결시키는(freeze) 한편, 계층의 보다 높은 다음 레벨이 시간 빌림을 유리하게 활용할 수 있도록 한다.In one embodiment of the present invention, a latch-based design creates the same shell model in a flip-flop-based design in terms of how cells are labeled. In addition, in order to reflect the time-borrowing characteristics of the latches, information describing the amount of borrowing for each latch of the shell model is saved. This freezes the borrowing allowed for latches of the shell model, while allowing the next higher level of hierarchy to advantageously utilize time borrowing.

본 발명의 다른 실시예에서는, 조합 논리 셀과 동일한 방식으로 래치가 처리될 수 있다. 플립-플롭만 댑스 퍼스트 트래버셜에 남겨진 채 처리되기 때문에 허용되는 시간 빌림의 양을 동결시켜야 할 필요를 없애준다. 하지만, 순수 래치 기판의 디자인에서는, 이것이 데이터 감소가 없는 추상화를 가져온다.In another embodiment of the present invention, the latch can be processed in the same manner as the combinational logic cell. Only flip-flops are processed leaving the DAPs first traversal, eliminating the need to freeze the amount of time borrowing allowed. However, in the design of pure latch substrates, this results in an abstraction without data reduction.

본 발명의 제3실시예에서는, 댑스 퍼스트 트래버셜을 종결시키기 전에 래치의 사용자가 지정한 수의 레벨이 조합 셀로서 처리될 수 있도록 하는 절충이 이루어질 수 있다. 이는 사용자가 추상화 메모리 이미지의 크기에 대하여 시간 빌림의 유연도를 제어할 수 있도록 한다.In a third embodiment of the present invention, a compromise can be made that allows the user-specified number of levels of latches to be treated as a combination cell before terminating the dips first traversal. This allows the user to control the flexibility of time borrowing with respect to the size of the abstract memory image.

물리적 쉘의 생성(Creation of the Physical Shell)Creation of the physical shell

논리 쉘의 생성은 블록의 핀을 통하여 크로싱하는 스태틱 타이밍 경로를 나타내는데 필요한 셀의 세트를 가져온다. 또한, 논리 쉘은 보유되는 셀의 핀에 연결되는 모든 네트를 포함한다.The creation of the logical shell results in the set of cells needed to represent the static timing path crossing through the pins of the block. In addition, the logical shell includes all nets connected to the pins of the cell to be retained.

물리적 쉘은 집적회로의 레이아웃 및 구성의 물리적 효과들: 저항, 캐패시턴스, 인덕턴스, 라우팅 정체(routing congestion) 및, 폭 및 간격 룰, 안테나 룰 및 일렉트로마이그래이션 룰과 같은 프로세스 기술 효과를 밝히는데 필요한 레이아웃데이터(배선 와이어 및 비아)들로 이루어진다.The physical shell is the layout required to reveal the physical effects of the layout and configuration of the integrated circuit: resistance, capacitance, inductance, routing congestion, and process technology effects such as width and spacing rules, antenna rules, and electromigration rules. Data (wiring wires and vias).

물리적 추상에서 유지되어야 하는 물리적 디테일의 양은 사용자에 의하여 필요한 정확성의 레벨에 종속한다. 정확성의 레벨과 유지되어야 하는 데이터의 양 사이의 직접적인 타협이 있을 수 있다.The amount of physical detail that must be maintained in the physical abstraction depends on the level of accuracy required by the user. There can be a direct compromise between the level of accuracy and the amount of data that must be maintained.

레이아웃 데이터는 그들이 모델에 대해 사용되는 물리적 효과(1) 배치 및 라우팅, 2) 안테나 효과, 3) 타이밍 해석(RC 딜레이 및 용량성 커플링), 4) 노이즈 주입 효과, 및 5) IR-드롭, 및 6) 일렉트로마이그래이션 효과)에 의하여 형성되는 몇개의 카테고리로 나뉜다. 상기 카테고리를 설명하기 위해 당 기술에 대한 몇몇 새로운 용어들이 도입되었으며, 이에 대해서는 도 12에 예시 및 후술된다.The layout data includes the physical effects they use for the model (1) placement and routing, 2) antenna effects, 3) timing analysis (RC delay and capacitive coupling), 4) noise injection effects, and 5) IR-drop, And 6) electrochemical effects). Several new terms for the art have been introduced to describe the category, which are illustrated and described below in FIG. 12.

1) 배치 및 라우팅1) Placement and Routing

배치 및 라우팅 동안 추상화된 블록을 사용할 수 있도록 하기 위해서는, a) 그것의 경계의 물리적 치수, b) 블록의 핀과 연결하기 위하여 라우터에 허용되는 물리적 위치, 및 c) 라우터가 상기 연결을 수행하기 위해 사용할 수 있는 층들을 이용하여 블록을 모델링하면 충분하다. 도 12에 나타낸 모델은 블록의 핀에 속한 와이어로서 정의되는 모든 "핀-와이어"의 세트 및 블록 경계를 필요로 한다.In order to be able to use the abstracted block during placement and routing, a) the physical dimensions of its boundary, b) the physical location allowed for the router to connect with the pins of the block, and c) the router to perform the connection. It is enough to model the block using the available layers. The model shown in FIG. 12 requires a block boundary and a set of all “pin-wires” defined as wires belonging to the pins of the block.

오버 블록 라우팅이 허용되면, 오버 블록 라우팅이 허용되는 곳을 나타내는 추상화 및 그 층에 대한 충분한 정보를 포함해야 한다. 이들 영역들은 각 라우팅 층상에서의 라우팅을 위해 블록화되어 유지되는 영역들을 나타내는 다각형의 세트로서 모델링되므로, 상기 다각형 세트의 역은 외부 라우팅이 허용되는 영역이다. 블록키지(blockage)의 세트는 어떠한 원하는 레벨의 해법을 달성하는데 필요한 만큼 만들어질 수 있다. 하지만, 통상적으로는 블록의 일 에지로부터 그것의 대향 에지까지 끊어지지 않고 연장되는 고정 폭의 라우팅 채널의 상대적으로 작은 세트로 비블록화(non-blocked) 영역들을 제한하는 것이면 충분하다.If overblock routing is allowed, it should contain sufficient information about the layers and abstractions that indicate where overblock routing is allowed. Since these regions are modeled as a set of polygons representing the regions that remain blocked for routing on each routing layer, the inverse of the polygon set is the region where external routing is allowed. A set of blockages can be made as needed to achieve any desired level of solution. However, it is usually sufficient to limit the non-blocked regions to a relatively small set of fixed width routing channels extending unbroken from one edge of the block to its opposite edge.

2) 안테나 룰 체킹 및 보정2) Antenna Rule Checking and Correction

정확하게 모델링하기 위한 프로세스 기술의 룰의 보다 어려운 형태 중 하나는 안테나 룰이다. 상기 룰은, 그들의 연결되는 금속(알루미늄 또는 구리) 라우팅 와이어상에 축적되는 전하에 의하여 MOSFET 트랜지스터 게이트에 야기될 수 있는 손상을 모델링한다. 그들이 제조시에 패터닝되고 에칭되는 동안 금속 와이어상에 전하가 축적되어 그것의 부착된 MOSFET의 게이트 산화물의 고장을 야기할 수 있으나 상기 부착된 MOSFET 소스/드레인 구역에 형성되는 접합 다이오드에 의하여 안전하게 방전된다. 또한, 전하는 상기 목적을 위하여 특별히 삽입되는 전용 다이오드에 의하여 안전하게 방전될 수도 있다.One of the more difficult forms of the rules of the process description to accurately model is the antenna rule. The rule models the damage that can be caused to the MOSFET transistor gates by the charges accumulated on their connected metal (aluminum or copper) routing wires. While they are patterned and etched at the time of manufacture, charges may accumulate on the metal wire and cause failure of the gate oxide of its attached MOSFET but are safely discharged by junction diodes formed in the attached MOSFET source / drain regions. . The charge may also be safely discharged by a dedicated diode inserted specifically for this purpose.

안테나 효과를 정확하게 모델링하기 위해서는, 추상화에 있어 각각의 핀에 전기적으로 연결되는 모든 와이어와 모든 다이오드, 트랜지스터 게이트 및 상기 와이어를 통해 핀에 연결되는 트랜지스트 소스/드레인을 포함시킬 필요가 있다. 도 12에서는, 이들 아이템 부류가 각각 핀-와이어, 핀-네트, 핀-셀 및 다이로드로 라벨링된다. 상기 추상화에 있어 포함되는 이들 물리적 객체들에 의하여, 계층내 블록의 조상과 관련하여 안테나 룰 체크 및 안테나 룰 위반의 교정을 수행할 수 있다.To accurately model the antenna effect, the abstraction needs to include all wires electrically connected to each pin and all diodes, transistor gates, and transistor sources / drains connected to the pins through the wires. In FIG. 12 these item classes are labeled pin-wire, pin-net, pin-cell and die rod, respectively. By these physical objects included in the abstraction, it is possible to perform antenna rule checks and correction of antenna rule violations with respect to ancestors of blocks in the hierarchy.

3) 배선 RC 딜레이에 의한 스태틱 타이밍 해석3) Static timing analysis by wiring RC delay

블록의 정확한 스태틱 타이밍 해석을 수행하기 위해서는, 그들을 배선시키는 네트뿐 아니라 논리 쉘의 셀이 필요하다. 도 12는 그룹-셀과 경계 레지스터 및 상기 논리 쉘을 구성하는 여타 경계 셀의 세트를 나타내고 있다.In order to perform accurate static timing analysis of the blocks, not only the net that wires them, but also the cells of the logic shell. 12 shows a set of group-cells and boundary registers and other boundary cells that make up the logical shell.

하지만, 논리 쉘 네트리스트에 의해 계산될 수 있는 이상화된 딜레이 이외에, 블록의 레이아웃의 기하학적 배열에 의하여 야기되는 기생 효과 또한 모델링된다. 타이밍 쉘의 각 셀에 의하여 알려지는 저항 및 커패시턴스를 정확히 추출하기 위해서는, 도 12에서 쉘-와이어라 칭해지는 타이밍 쉘내의 셀에 부착되는 모든 네트를 구현하는 와이어 뿐 아니라 도 12에서 핀 와이어라 칭해지는 블록의 제1인풋/아웃풋 핀에 부착되는 와이어를 포함시킬 필요가 있다.However, in addition to the idealized delay which can be calculated by the logical shell netlist, parasitic effects caused by the geometry of the block's layout are also modeled. In order to accurately extract the resistance and capacitance known by each cell of the timing shell, it is referred to as the pin wire in FIG. 12 as well as the wire implementing all the nets attached to the cells in the timing shell, referred to as shell-wire in FIG. It is necessary to include a wire attached to the first input / output pin of the block.

핀-와이어 및 쉘-와이어를 포함시키면 타이밍 쉘 와이어에 의하여 야기되는 모든 기생 저항 및 캐패시턴스를 아우를 수 있으나, 이는 도 12에서 커플링-와이어라 칭해지는 그들의 인접한 와이어들에 의하여 제공되는 사이드월 캐패시턴스는 무시한다. 또한, 이들 와이어는 블록의 타이밍 해석 및 정확한 추출을 수행하기 위하여 포함되어야 한다. 하지만, (크로스토크 없는) 간단한 RC-딜레이를 모델링하는 경우에는, 커플링-네트상의 모든 와이어 세트가 아니라 커플링-와이어만이 포함될 필요가 있다는 것에 유의해야 한다. 상기 커플링-와이어는 일정한 전위에 있도록 구성될 수 있고, 따라서, 핀-와이어 및 쉘-와이어의 효과적인 캐패시턴스를 증대시키는 역할만을 수행한다.Inclusion of pin- and shell-wires can encompass all parasitic resistances and capacitances caused by timing shell wires, but this is the sidewall capacitance provided by their adjacent wires, referred to as coupling-wires in FIG. Is ignored. In addition, these wires must be included to perform timing analysis and accurate extraction of the blocks. However, it should be noted that when modeling a simple RC-delay (without crosstalk), only coupling-wires need to be included, not all wire sets on the coupling-net. The coupling-wire can be configured to be at a constant potential, and therefore only serves to increase the effective capacitance of the pin-wire and shell-wire.

4) 노이즈 주입 및 크로스토크 딜레이에 의한 스태틱 타이밍 해석4) Static timing analysis by noise injection and crosstalk delay

널리 공지된 밀러 효과 때문에, 와이어 상의 전압변화는 그에 대응하여 그것이 용량적으로 커플링되는 모든 이웃하는 와이어상에서의 변화를 야기한다. 따라서, 도 12의 핀-와이어 및 쉘-와이어상의 타이밍을 정확히 모델링하기 위하여, 커플링-와이어상의 실제 신호 파형을 알 필요가 있다. 커플링-와이어 파형을 계산하기 위해서는, 물리적 쉘이 완성된 커플링 네트의 모든 와이어를 포함하고, 논리 쉘은 커플링-네트에 의하여 구동되는 셀(들) 및 커플링-네트의 구동 셀(들)로부터 그들의 소스 레지스터로 되돌아 가는 완성된 경로를 포함해야 할 필요가 있다.Because of the well known Miller effect, the voltage change on the wire correspondingly causes a change on all neighboring wires to which it is capacitively coupled. Thus, in order to accurately model the timing on the pin-wire and shell-wire of FIG. 12, it is necessary to know the actual signal waveform on the coupling-wire. In order to calculate the coupling-wire waveform, the physical shell includes all the wires of the completed coupling net, and the logical shell comprises the cell (s) driven by the coupling-net and the driving cell (s) of the coupling-net. You need to include the complete path back to their source register.

또한, 커플링-네트에 의하여 알려지는 캐패시턴스를 정확히 붙잡기 위해서는, 커플링-네트에 용량적으로 커플링되는 모든 와이어를 포함하여야 한다. 어떤 의미에서는, 핀-와이어 및 쉘-와이어에 변환식으로 연결되기 때문에, 이들을 변환-와이어(transitive-wires)라 칭한다. 전원 및 접지 네트와 같은 일정한 전위에 있는 어떠한 커플링-네트는 여하한 크로스토크 딜레이 또는 노이즈 주입으로부터 핀-네트 및 쉘-네트를 보호하는 역할을 한다. 이들은 실드-와이어로 칭해지며, 변환-와이어가 그들과 연루되어 있다.In addition, to accurately capture the capacitance known by the coupling-net, it must include all wires that are capacitively coupled to the coupling-net. In a sense, they are called transitive-wires because they are transitively connected to pin-wire and shell-wire. Any coupling-net at a constant potential, such as power and ground nets, serves to protect the pin-net and shell-net from any crosstalk delay or noise injection. These are called shield-wires and transform-wires are involved with them.

상술되는 논리 및 물리적 추상화 기술을 통하여 달성될 수 있는 데이터 감소의 정도는 블록 디자인의 논리 구조에 종속한다. 그룹-셀에 대한 그들 네트리스트의 본질의 대부분에 의하여 크게 레지스터 바운딩된 블록들은 높은 정도의 감소를 얻는다. 정반대로, 순수한 조합인 블록은 조금의 감소도 얻을 수 없다.The degree of data reduction that can be achieved through the logical and physical abstraction techniques described above depends on the logical structure of the block design. By most of the nature of their netlists for group-cells, largely register bound blocks get a high degree of reduction. Conversely, blocks that are pure combinations do not get any reduction.

(예를 들어, 데이터베이스의 크기 또는 런타임의 제약으로 인해) 고도의 압축이 필요한 경우, 계층적 분할 프로세스는 추상화 방법을 인지하고, 블록이 가능한 한 레지스트 바운딩되도록 하는 시도가 있어야 한다. 하지만, 그와 달리 잘 분할된 디자인의 경우에도, 일부 네트는 블록 추상화 안쪽에 상대적으로 심오한 논리를 나타내기 쉽다. 상기 불규칙한 네트에 대한 모델링 요건을 줄이는데 몇몇 기술들이 사용될 수 있다.If high compression is required (e.g. due to database size or runtime constraints), the hierarchical partitioning process should be aware of the abstraction method and attempt to ensure that the blocks are resist bound as much as possible. However, even in a well-divided design, some nets are likely to exhibit relatively deep logic inside the block abstraction. Several techniques can be used to reduce modeling requirements for the irregular net.

해당 네트가 의도적으로 보호되면, 크로스토크 효과 및 노이즈 주입이 발생하지 않는다. 각각의 핀-와이어 및 쉘 와이어에 의하여 알려지는 로딩은 일정할 것이다. 따라서, 각 인풋 핀에서의 딜레이는 단지 상기 핀에 나타난 신호 파형에 종속하며, 각 출력 핀의 딜레이는 단지 상기 핀에 나타난 로드에 종속한다. 이들 핀이 니어-크리티컬(near-critical) 딜레이를 갖지 않는다면, 그들은 룩업 테이블 및 불연속(piecewise) 선형 딜레이 함수와 같은 전통적인 딜레이 모델을 사용하여 안스태틱으로 모델링될 수 있다.If the net is intentionally protected, crosstalk effects and noise injection do not occur. The loading known by each pin-wire and shell wire will be constant. Thus, the delay at each input pin only depends on the signal waveform shown on the pin, and the delay on each output pin only depends on the load shown on the pin. If these pins do not have near-critical delays, they can be modeled statically using traditional delay models such as lookup tables and piecewise linear delay functions.

네트가 완전히 보호되지 않는 경우에는, 논-크리티컬 핀에 대한 수동적(pessimistic) 딜레이 모델을 발전시키는데 스태틱 타이밍 해석이 사용될 수도 있다. 따라서, 본 발명의 추상화 메커니즘에 부가되는 복잡함은 단지 디자인의 크리티컬 타이밍 경로로 기여할 수 있는 그들 핀들에 대해서만 사용된다.If the net is not fully protected, static timing analysis may be used to develop a pessimistic delay model for non-critical pins. Thus, the complexity added to the abstraction mechanism of the present invention is only used for those pins that can contribute to the critical timing path of the design.

또한, 통상의 논리 게이트는 상대적으로 높은 전기적 게인을 가지기 때문에 인풋 슬루(slew) 의존성이 논리의 2 또는 3레벨후에 쇠퇴되어 나가려는 경향을 갖는 사실의 장점을 취할 수도 있다. 이러한 가정에 의하여, 타이밀 셀의 라벨링은 논리의 2 또는 3 레벨이 만난 후에 멈출 수 있고, 추가의 제외된 셀의 효과를 모델링하는데 보다 단순한 룩업 테이블 기반의 모델링 기술이 사용될 수 있다.Also, since conventional logic gates have a relatively high electrical gain, one may take advantage of the fact that input slew dependencies tend to decline after two or three levels of logic. By this assumption, labeling of Tamil cells can stop after two or three levels of logic are met, and a simpler lookup table based modeling technique can be used to model the effects of additional excluded cells.

5) IR-드롭 해석에 의한 스태틱 타이밍 해석5) Static timing analysis by IR-drop analysis

본 명세서에서 상술된 바와 같이, IR-드롭은 칩내의 전력분배네트워크(power distrubution network)를 통해서 흐르는 높은 전류에 의하여 생성된 영향이다. 상기 네트워크내의 어떤 지점에서 알수 있는 전압은, 상기 지점을 통과하는 전류를 전원에서 상기 지점들 사이에서 알려져 있는 기생저항에 곱한 값과 동일하다. 그러나, 상기 영향은, 대안적인 분배전류원(alternate distributed current source)로서 여겨질 수 있으며 약간의 전하를 저장하는 역할을 하는, 네트워크내에 존재하는 기생캐패시턴스에 의하여 다소 상쇄될 수 있다. 상기 영향을 증강시키기 위하여 전용 디커플링 캐패시터(dedicated decoupling capacitor)를 사용할 수도 있다.As detailed herein, an IR-drop is an effect generated by high current flowing through a power distrubution network in a chip. The voltage known at any point in the network is equal to the current through the point multiplied by a known parasitic resistance between the points in the power supply. However, the effect can be thought of as an alternate distributed current source and can be somewhat offset by parasitic capacitance present in the network, which serves to store some charge. Dedicated decoupling capacitors may be used to enhance this effect.

바텀-업 검증시에 블록추상화를 이용할 때, 블록 스스로가 해석되고 그 IR-드롭 위반(violation)이 알려진다고 가정하자. 상기 추상화는 블록의 부모가 당한 IR-드롭에 대한 블록의 기여(contribution)를 모델링하는데 사용될 수 있다. 블록과 그 부모간의 인터페이스는 전원핀(power supply pin)으로 이루어지며, 블록의 전원네트워크는 그 부모에 접속된다. IR드롭에 대한 정확한 모델은, 핀과 전력 및 접지공급장치 사이의 RC네트워크에 대한 등가회로 더하기 각각의 핀에 대한 시변전류원(time-varying current source) 또는 싱크로 구성될 것이다.When using block abstraction in bottom-up verification, assume that the block itself is interpreted and its IR-drop violation is known. The abstraction can be used to model the contribution of a block to the IR-drop given by the parent of the block. The interface between the block and its parent consists of a power supply pin, and the block's power network is connected to its parent. The exact model for the IR drop would consist of an equivalent circuit for the RC network between the pin and the power and ground supply plus a time-varying current source or sink for each pin.

본 발명의 추상화 방법은, 이상적인 수학적 모델과는 대조적으로, 회로의 네트리스트 및 그 자신의 물리적인 지오메트리에 의한 회로의 이상적이지 않은 전기적 영향을 모델링한다. 공교롭게도, IR드롭해석은 경로계(path-based) 및 지역형(local like) 스태틱타이밍해석 또는 크로스토크가 아니라, 오히려 블록내의 전체적인 전력/접지 네트워크 및 모든 셀을 포함하는 포괄적인 영향을 모델링한다.이러한 이유로, 간단한 전기적 모델이 사용될 수 있다. 각각의 핀은 블록의 최악의 전기해석의 결과를 나타내는, 이상적인 전류원 또는 싱크로서 모델링된다. 이러한 해석은 스태틱 해석 또는 동적 시뮬레이션일 수 있다. 각각의 핀은 RC네트워크에 대한 등가회로와도 관련되며, 이는 임피던스함수로서 모델링된다.The abstraction method of the present invention models, in contrast to an ideal mathematical model, a non-ideal electrical effect of the circuit by the netlist of the circuit and its own physical geometry. Unfortunately, IR drop analysis is not a path-based and local like static timing analysis or crosstalk, but rather models a comprehensive impact that encompasses the entire power / ground network and all cells in the block. For this reason, a simple electrical model can be used. Each pin is modeled as an ideal current source or sink, representing the result of the worst electrical analysis of the block. This analysis can be a static analysis or a dynamic simulation. Each pin is also associated with an equivalent circuit for an RC network, which is modeled as an impedance function.

일렉트로마이그레이션 해석(Electromigration analysis)Electromigration analysis

일렉트로마이그레이션은 회로의 와이어(wire) 및 그것의 이상적이지 않은 저항과 캐패시턴스를 통과하는 전류와 관련된 효과이다. 그러나, 공급분배네트워크만 관련되는 IR드롭해석과는 달리, 일렉트로마이그레이션 해석은, 보통의 신호와이어(보통, 높은 고전류 드라이버 셀을 구비한 긴 저항성와이어에 대한 문제점만 있음) 뿐만 아니라, 공급네트워크 상에서 수행되어야 한다.Electromigration is an effect related to the current through the wires of a circuit and its less than ideal resistance and capacitance. However, unlike IR drop analysis involving only the supply distribution network, electromigration analysis is performed on the supply network as well as the normal signal wires (usually with long resistive wires with high high current driver cells). Should be.

공급네트워크 와이어에 대한 일렉트로마이그레이션을 모델링하기 위하여, 얼마의 전류가 각각의 와이어를 통과할 것인지 뿐만 아니라, 와이어의 기생임피던스가 필요하다. 일렉트로마이그레이션의 다양한 모델은 최대 또는 평균상태의 전류 또는 심지어는 상세한 시간도메인(time-domain)시뮬레이션을 요구할 수도 있다. 공급네트워크에 있어서, 이러한 정보는 IR드롭해석을 위해 필요한 것과 동일하므로 상술된 바와 동일한 추상화 메카니즘이 사용될 수 있다. 신호와이어에 있어서, 정보는 스태틱타이밍해석모델에 필요한 것과 동일하다. 따라서, 일렉트로마이그레이션 효과를 모델링하기 위하여 부가적인 모델링정보가 추가되지 않는다.In order to model the electromigration of the supply network wires, not only how much current will pass through each wire, but also the parasitic impedance of the wires. Various models of electromigration may require peak or average current or even detailed time-domain simulations. In the supply network, this information is the same as that required for IR drop analysis, so the same abstraction mechanism as described above can be used. For signal wires, the information is the same as that required for the static timing analysis model. Therefore, no additional modeling information is added to model the electromigration effect.

"역"추상화 메카니즘(An "inverse" abstraction mechanism)An "inverse" abstraction mechanism

본 발명의 또 다른 실시예에서는, 본질적으로 동일한 기술을 이용하여,바텀-업 검증흐름에 사용하기 위한 "역"추상화의 형태를 구성할 수도 있다. 블록이 먼저 해석되고 격리(isolation)에서 검증된 후 그것의 부모블록 및 형제블록에 관련하여 다시 검증되는 탑-다운 블록검증의 과정이 상술되었다. 추상화에 포함되지 않는 "그룹-셀"내의 셀들만 격리에서 검증될 수 있다. 추상화의 국부적인 쉘내에 포함된 전기적인 효과 및 모든 타이밍경로는, 그들이 해석되기 이전에 블록의 부모 및 형제블록에 관한 정보를 요구한다.In another embodiment of the present invention, essentially the same technique may be used to construct a form of "inverse" abstraction for use in a bottom-up verification flow. The process of top-down block verification is described above in which a block is first interpreted and verified in isolation and then again verified in relation to its parent and sibling blocks. Only cells in a "group-cell" not included in the abstraction can be verified in isolation. All timing paths and electrical effects contained within the local shell of abstraction require information about the parent and sibling blocks of the block before they are interpreted.

아마도, 추후에 재사용할 수 있는 하나의 독립적인 IP(지적 재산)으로서 블록을 해제시키는데 필요한 증명과정(certification process)에 따라 블록을 해석 및 검증하길 바랄 것이다. 이러한 시나리오에서 블록은, "기준플랫폼(reference platform)"의 어떤 형태를 나타내는 추상화된 부모블록 또는 일반적인 구현(implementation)인 "테스트하니스(test harness)"에서 이것을 예시화하여 검증될 수 있다.Perhaps you want to interpret and verify the block according to the certification process needed to release the block as an independent IP (Intellectual Property) that can be reused later. In such a scenario a block can be verified by exemplifying it in an abstracted parent block representing some form of "reference platform" or in a "implementation" test harness.

추상화과정은 상기 테스트하니스의 축소된 모델을 구성하는데 사용될 수 있다. 이 기술은, 이것을 완전한 기준칩디자인에 내장시킴으로써 블록이 검증되는 경우에 가능한 것보다 더 빠른 검증과정을 제공한다. 반대로, 추상형모델은, 간단한 세트의 타이밍제약조건 및 일반적인 핀부하와 신호파형 이상은 포함할 수 없는 일반적인 테스트하니스보다 정확할 것이다.The abstraction process can be used to construct a reduced model of the test harness. This technique, by embedding it in a complete reference chip design, provides a faster verification process than would be possible if the block was verified. Conversely, an abstract model would be more accurate than a typical test harness that could not contain a simple set of timing constraints and more than typical pin load and signal waveforms.

이러한 "역"추상화는 쉘의 로직 및 블록의 경계 외부에 있는 이와 관련된 물리적인 지오메트리처럼 여겨질 것이다. 이것은, 부모블록상에서 실행된다는 것을 제외하고는, 동일한 추상화 알고리즘을 이용하여 만들어질 수 있으며 트래버설 핀은, 부모블록의 1차입력, 출력 및 공급핀 보다는 오히려 서브-블록의 인터페이스핀들에서 시작한다.This "inverse" abstraction would be thought of as the logic of the shell and its associated physical geometry outside the boundaries of the block. This can be made using the same abstraction algorithm, except that it runs on the parent block and the traversal pin starts at the interface pins of the sub-block rather than the primary input, output and supply pins of the parent block.

도 13은 본 발명의 1이상의 실시예를 구현할 수 있는 컴퓨터시스템을 예시한다. 예시된 컴퓨터시스템(1310)은 PC(개인용 컴퓨터)와 같은 어떤 일반적이거나 특별한 목적의 계산 또는 데이터처리기계일 수 있으며 네트워크(1300)에 선택적으로 결합될 수 있다. 컴퓨터시스템(1310)의 메모리(1311)는 회로디자인의 전체적인 컨탠츠 또는 그 입력들을 유지하기에 불충분할 수 있으므로, 계층적으로 단절(broken up)시키기 위한 디자인과정이 필요할 수 있다. 이러한 방식으로, 전체 디자인의 조각들은, 그들 각각이 컴퓨터시스템(1310)과 유사할 수 있는 몇개의 상이한 컴퓨터시스템에 의하여 다루어질 수 있다. 이렇게 함에 있어서, 블록 및 서브블록(모듈 및 서브모듈)의 디자인을 추출하는 추상화모델은 타이밍해석, 배치, 라우팅과 버짓팅과 같은 과정의 균일하고 지속적인 적용을 고려해야만 한다. 상술된 바와 같이 본 발명은 추상화 문제 및 계층적인 디자인에 접근하려고 한다.13 illustrates a computer system that may implement one or more embodiments of the present invention. The illustrated computer system 1310 can be any general or special purpose computing or data processing machine such as a personal computer (PC) and can optionally be coupled to the network 1300. Since the memory 1311 of the computer system 1310 may be insufficient to maintain the overall contents of the circuit design or its inputs, a design process for breaking up the hierarchy may be necessary. In this way, pieces of the overall design can be handled by several different computer systems, each of which may be similar to computer system 1310. In doing so, the abstraction model that extracts the design of blocks and subblocks (modules and submodules) must take into account uniform and continuous application of processes such as timing analysis, placement, routing, and budgeting. As described above, the present invention seeks to approach abstraction problems and hierarchical design.

당업자들은, 본 발명의 다양한 실시에에 상술된 바와 같이 추상화 및 서브모듈 디자인의 과제를 수행하기 위하여 컴퓨터시스템(G10)을 프로그래밍할 수 있다. 이러한 프로그램코드는 CPU(중앙처리장치)와 같은 프로세서(1312) 및 필요에 따라 명령어, 어드레스, 결과 데이터를 저장/로딩하는데 사용되는 RAM(임의 액세스 기억장치)과 같은 메모리(1311)를 이용하여 실행될 수 있다. 추상화 및 서브모듈 디자인의 기능을 수행하는데 사용된 적용례(들)은 C++과 같은 언어로 쓰여진 소스코드로부터 컴파일된 실행가능한 파일로부터 구해질 수 있다. 실행가능한 파일은 메모리(1311)로 로딩될 수 있으며 그 명령어는 프로세서(1312)에 의하여 실행된다. 추상화를 수행하는데 필요한 명령어에 대응하는 실행가능한 파일의 명령어는 플립플롭 드라이브, 하드 드라이브 또는 광드라이브(1317)와 같은 디스크(1318) 또는 메모리(G11)에 저장될 수 있다. 네티스트(들), 제약조건, 과정특성, 셀 라이브러리 및 여타의 이러한 정보들과 같은 다양한 입력들이 디스크(1318), 광드라이브(1317)로부터 또는 심지어는 데이터베이스 및/또는 플랫파일의 형태로 네트워크(1300)를 통하여 액세스하도록 쓰여질 수 있다.Those skilled in the art can program the computer system G10 to perform the tasks of abstraction and submodule design as described above in various embodiments of the present invention. This program code is executed using a processor 1312, such as a CPU (central processing unit), and a memory 1311, such as RAM (Random Access Storage), used to store / load instructions, addresses, and result data as needed. Can be. Application (s) used to perform the functions of the abstraction and submodule design may be obtained from executable files compiled from source code written in a language such as C ++. The executable file can be loaded into memory 1311 and the instructions are executed by processor 1312. Instructions in the executable file corresponding to the instructions needed to perform the abstraction may be stored in a disk 1318 or memory G11, such as a flip-flop drive, hard drive, or optical drive 1317. Various inputs, such as netist (s), constraints, process characteristics, cell libraries, and other such information, may be generated from the disk 1318, optical drive 1317 or even in the form of databases and / or flat files. 1300 may be written to access.

컴퓨터시스템(1310)은 프로세서(1312) 및 메모리(1311)들 간의 정보전달을 돕는 시스템버스(1313) 및 I/O버스(1315)에 결합되는 브리지(1314)를 가진다. I/O버스(1315)는 네트워크 인터페이스카드(NIC)(1316), 디스크(1318) 및 광드라이브(1317)와 같은 다양한 I/O장치들을 시스템메모리(1311) 및 프로세서(1312)에 접속시킨다. I/O장치, 버스들 및 브리지들의 많은 조합이 본 발명에 사용될 수 있으며 도시된 조합들은 가능한 조합들 중의 하나를 단지 예시적으로 나타낸 것이다.Computer system 1310 has a bridge 1314 coupled to a system bus 1313 and an I / O bus 1315 to assist in the transfer of information between the processor 1312 and the memory 1311. I / O bus 1315 connects various I / O devices, such as network interface card (NIC) 1316, disk 1318, and optical drive 1317, to system memory 1311 and processor 1312. Many combinations of I / O devices, buses and bridges may be used in the present invention and the combinations shown are merely illustrative of one of the possible combinations.

본 발명의 바람직한 실시예가 상술되었지만, 이것은 단지 예시적인 목적으로 설명된 것으로서 본 발명을 제한하지 않는다. 당업자들은, 본 발명의 기술적 사상을 벗어나지 않으면서 본 발명의 변형례들이 실시될 수 있음을 명백히 이해할 것이다.While the preferred embodiments of the invention have been described above, it is described for illustrative purposes only and does not limit the invention. Those skilled in the art will clearly understand that modifications of the present invention can be made without departing from the spirit of the present invention.

Claims (78)

회로가 셀 및 배선(interconnect)을 가지며, 상기 회로는 탑-레벨 및 복수의 블록들로 계층적으로 분해된 표시(representation)를 가지며, 상기 복수의 블록들의 적어도 일부가 계층적으로 더욱 분해될 수 있고 그것과 함께 연관된 부모 블록을 가질 수 있는 집적회로 디자인을 생성하는 데 사용되는 방법에 있어서,The circuit has cells and interconnects, the circuit has a top-level and a representation hierarchically decomposed into a plurality of blocks, and at least some of the plurality of blocks may be further decomposed hierarchically. A method used to create an integrated circuit design that can have a parent block associated with it, 1이상의 블록내에 있는 소자들 사이의 배선에 관련된 물리적 배선정보를 포함하는 추상(abstraction)이 생성되도록 상기 1이상의 블록을 처리하는 단계를 포함하되, 상기 물리적 배선정보는 상기 집적회로의 추정된 동작(behavior)에 따라 배선들의 기생하는(parasitic) 전기적 및 물리적 영향들을 모델링하고,Processing the one or more blocks to produce an abstraction that includes physical wiring information related to wiring between elements within the one or more blocks, wherein the physical wiring information includes an estimated operation of the integrated circuit. model the parasitic electrical and physical effects of the wires according to their behavior, 상기 부모 블록을 실행하는 또 다른 발전국면(development phase)에서 상기 추상을 활용하는 단계를 포함하는 것을 특징으로 하는 방법.Utilizing the abstraction in another development phase of executing the parent block. 제1항에 있어서,The method of claim 1, 상기 처리하는 단계는,The processing step, 상기 부모 블록의 상기 물리적 및 전기적 동작에 영향을 미치는 모든 상기 물리적 배선정보의 서브세트만을 보유하는 단계; 및Retaining only a subset of all the physical wiring information that affects the physical and electrical operation of the parent block; And 상기 부모블록의 논리적 동작에 영향을 미치는 셀들의 상기 서브세트만을 보유하는 단계를 포함하는 것을 특징으로 하는 방법.Retaining only the subset of cells that affect the logical operation of the parent block. 제2항에 있어서,The method of claim 2, 상기 활용하는 단계는,The step of utilizing, 상기 1이상의 블록의 기술(description)을 상기 추상의 기술로 대체시키는 단계를 포함하는 것을 특징으로 하는 방법.Replacing the description of the one or more blocks with the description of the abstract. 제2항에 있어서,The method of claim 2, 상기 서브세트를 보유하는 단계는,Retaining the subset, 상기 1이상의 블록의 네트리스트(netlist)의 콘텐츠들을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.Determining contents of a netlist of said at least one block. 제4항에 있어서,The method of claim 4, wherein 상기 1이상의 블록의 네트리스트의 상기 콘텐츠는,The content of the netlist of the at least one block is 데이터 입력들을 처리하는 단계;Processing data inputs; 출력들을 처리하는 단계; 및Processing the outputs; And 클록(clock) 입력들을 처리하는 단계에 의하여 결정되는 것을 특징으로 하는 방법.Characterized by processing clock inputs. 제5항에 있어서,The method of claim 5, 상기 데이터 입력들을 처리하는 단계는,Processing the data inputs comprises: 1차 입력들의 리스트를 구성(building)하는 단계를 특징으로 하는 방법.Building a list of primary inputs. 제6항에 있어서,The method of claim 6, 상기 리스트가 빌 때까지, 만나는(encountered) 각각의 핀에 대하여,For each pin that is encountered until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 핀이 클록 핀인 경우, 상기 제거된 핀을 건너 뛰고 다음 핀에 계속되는 단계;If the removed pin is a clock pin, skipping the removed pin and continuing to the next pin; 상기 제거된 핀이 클록 핀이 아닌 경우, 상기 제거된 핀을 전방으로 처리하는 단계를 특징으로 하는 방법.If the removed pin is not a clock pin, processing the removed pin forward. 제7항에 있어서,The method of claim 7, wherein 상기 제거된 핀을 전방으로 처리하는 단계는,Processing the removed pin forward, 후계자(successor)의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 방법.Constructing a list of successors. 제8항에 있어서,The method of claim 8, 상기 후계자의 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin that meets, until the list of successors is empty, 상기 후계자의 상기 리스트로부터 상기 만나는 후계자 핀을 제거하는 단계;Removing the encounter successor pin from the list of successors; 상기 제거된 후계자 핀의 셀을 타이밍 셀로서 라벨링하는 단계;Labeling the removed successor pin's cells as timing cells; 상기 제거된 후계자 핀이 클록 핀인 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계; 및Skipping the removed successor pin if the removed successor pin is a clock pin; And 상기 제거된 후계자 핀이 클록 핀이 아닌 경우, 상기 제거된 후계자 핀이 셀 입력인지의 여부를 체크하는 단계를 특징으로 하는 방법.If the removed successor pin is not a clock pin, checking whether the removed successor pin is a cell input. 제9항에 있어서,The method of claim 9, 상기 제거된 후계자 핀이 셀입력인 경우, 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지는 지의 여부를 알아보기 위하여 체크하는 단계;If the removed successor pin is a cell input, checking to see if the removed successor pin has more than one predecessor cell; 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지는 경우, 상기 선임자 셀을 멀티-드라이버 로드 셀로서 라벨링하고, 상기 제거된 핀을 전방으로 상기 처리하는 상기 단계를 반복적으로 실행하는 단계를 특징으로 하는 방법.If the removed successor pin has more than one predecessor cell, labeling the predecessor cell as a multi-driver load cell and repeatedly performing the processing of the removed pin forward. Way. 제10항에 있어서,The method of claim 10, 상기 제거된 후계자 핀이 셀 입력이 아닌 경우, 또는The removed successor pin is not a cell input, or 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지지 않는 경우, 상기 제거된 핀을 전방으로 상기 처리하는 단계를 반복적으로 실행하는 단계를 특징으로 하는 방법.If the removed successor pin does not have more than one predecessor cell, repeating the processing of the removed pin forward. 제5항에 있어서,The method of claim 5, 출력들을 처리하는 단계는,Processing the outputs 1차 출력들의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 방법.Constructing a list of primary outputs. 제12항에 있어서,The method of claim 12, 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 핀을 후방으로 처리하는 단계를 특징으로 하는 방법.Processing the removed pin backwards. 제13항에 있어서,The method of claim 13, 상기 제거된 핀을 후방으로 프로세싱하는 단계는,Processing the removed pin backwards, 선임자의 리스트를 구성하는 것을 포함하는 것을 특징으로 하는 방법.Constructing a list of predecessors. 제14항에 있어서,The method of claim 14, 상기 선임자의 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin that meets, until the list of predecessors is empty, 상기 선임자의 리스트로부터 상기 만나는 선임자 핀을 제거하는 단계;Removing the encountering predecessor pin from the list of predecessors; 상기 제거된 선임자 핀의 셀을 타이밍 셀로서 라벨링하는 단계;Labeling the removed predecessor pin cell as a timing cell; 상기 제거된 선임자 핀이 클록 핀인 경우, 상기 제거된 선임자 핀을 건너 뛰는 단계; 및If the removed predecessor pin is a clock pin, skipping the removed predecessor pin; And 상기 제거된 선임자 핀이 클록 핀이 아닌 경우, 상기 제거된 선임자 핀이 셀 출력인지의 여부를 체크하는 단계를 특징으로 하는 방법.If the removed predecessor pin is not a clock pin, checking whether the removed predecessor pin is a cell output. 제15항에 있어서,The method of claim 15, 상기 제거된 선임자 핀이 셀 출력인 경우,If the removed senior pin is a cell output, 후계자 셀을 싱크 로드(sink load) 셀로서 라벨링하는 단계; 및Labeling the successor cell as a sink load cell; And 상기 제거된 핀 뒤쪽에서 상기 처리하는 단계를 반복적으로 실행하는 단계를 특징으로 하는 방법.Iteratively performing the processing step behind the removed pin. 제15항에 있어서,The method of claim 15, 상기 제거된 후계자 핀이 셀 출력이 아닌 경우, 상기 제거된 핀을 후방으로 상기 처리하는 단계를 반복적으로 실행하는 단계를 포함하는 것을 특징으로 하는 방법.If the removed successor pin is not a cell output, repeatedly performing the processing of the removed pin backwards. 제5항에 있어서,The method of claim 5, 클록 입력들을 처리하는 단계는,Processing the clock inputs 1차 클록 입력들의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 방법.Constructing a list of primary clock inputs. 제18항에 있어서,The method of claim 18, 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 클록 핀을 전방으로 처리하는 단계를 특징으로 하는 방법.Processing the removed clock pin forward. 제19항에 있어서,The method of claim 19, 상기 제거된 핀을 전방으로 처리하는 단계는,Processing the removed pin forward, 후계자의 리스트를 구성하는 단계를 특징으로 하는 방법.Constructing a list of successors. 제20항에 있어서,The method of claim 20, 상기 후계자의 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters, until the list of successors is empty, 상기 후계자의 리스트로부터 상기 만나는 후계자 핀을 제거하는 단계;Removing the encounter successor pin from the list of successors; 상기 제거된 후계자 핀이 클록 핀인 경우, 상기 제거된 후계자 핀을 전방으로 반복적으로 처리하는 단계를 포함하는 단계; 및If the removed successor pin is a clock pin, iteratively processing the removed successor pin forward; And 상기 제거된 후계자 핀이 클록 핀이 아닌 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계를 특징으로 하는 방법.If the removed successor pin is not a clock pin, skipping the removed successor pin. 제21항에 있어서,The method of claim 21, 상기 제거된 후계자 핀을 전방으로 반복적으로 처리하는 단계 후에,After repeatedly processing the removed successor pin forward, 어떠한 후계자 셀이 타이밍 셀로서 라벨링되는 지의 여부를 체크하는 단계를 특징으로 하는 방법.Checking which successor cell is labeled as a timing cell. 제22항에 있어서,The method of claim 22, 임의의 후계자 셀이 타이밍 셀로서 라벨링되는 경우,If any successor cell is labeled as a timing cell, 상기 제거된 후계자 핀의 셀을 타이밍 셀로서 라벨링하는 단계; 및Labeling the removed successor pin's cells as timing cells; And 상기 후계자 셀을 클록 로드 셀로서 라벨링하는 단계를 특징으로 하는 방법.Labeling the successor cell as a clock load cell. 제22항에 있어서,The method of claim 22, 어떠한 후계자 셀도 타이밍셀로서 라벨링되지 않은 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계를 특징으로 하는 방법.If no successor cell is labeled as a timing cell, skipping the removed successor pin. 제1항에 있어서,The method of claim 1, 상기 물리적 배선정보는 제조 프로세스 및 회로 레이아웃의 물리적 및 전기적 영향들을 모델링하는 것을 특징으로 하는 방법.Wherein said physical wiring information models physical and electrical effects of a fabrication process and circuit layout. 제25항에 있어서,The method of claim 25, 상기 물리적 및 전기적 영향들은 배치, 라우팅 제약, 안테나 영향, RC 딜레이 모델링에 의한 스태틱(static) 타이밍 해석, 용량성 커플링 및 노이즈 주입에 의한 스태틱 타이밍 해석, IR 드롭 모델링에 의한 스태틱 타이밍 해석 및 일렉트로마이그레이션(electromigration) 해석 중 1이상을 포함하는 것을 특징으로 하는 방법.The physical and electrical effects may include placement, routing constraints, antenna influences, static timing analysis by RC delay modeling, static timing analysis by capacitive coupling and noise injection, static timing analysis and electromigration by IR drop modeling. (electromigration) A method comprising at least one of the analysis. 제26항에 있어서,The method of claim 26, 상기 1이상의 블록에서의 배치 및 라우팅 영향들은 상기 1이상의 블록의 경계들의 물리적 크기, 상기 1이상의 블록의 핀에 대하여 허용되는 접속부가 만들어질 수 있는 물리적인 로케이션, 및 상기 허용되는 접속부를 만드는 데 사용되는 층들 중 1이상을 이용하여 모델링되는 것을 특징으로 하는 방법.Placement and routing effects in the one or more blocks are used to create the physical size of the boundaries of the one or more blocks, the physical location where an allowable connection can be made to the pins of the one or more blocks, and the allowed connection. Characterized in that it is modeled using one or more of the layers. 제26항에 있어서,The method of claim 26, 안테나 영향은 각각의 핀에 전기적으로 접속된 모든 핀 와이어들을 상기 추상에 포함하고, 그들 와이어를 통하여 상기 핀들에 접속되는 모든 다이오드, 트랜지스터 게이트 및 트랜지스터 소스/드레인을 포함함으로써 모델링되는 것을 특징으로 하는 방법.The antenna effect is modeled by including in the abstract all pin wires electrically connected to each pin and including all diodes, transistor gates and transistor sources / drains connected to the pins through those wires. . 제26항에 있어서,The method of claim 26, 스태틱 타이밍 해석 중의 저항-캐패시턴스(RC) 배선 딜레이는, 상기 추상내에 블록의 1차 입력/출력 핀에 부착된 핀 와이어를 포함함으로써 모델링되고, 상기 와이어는 타이밍 쉘내의 셀에 부착된 모든 핀-네트를 구현하는 것을 특징으로 하는 방법.The resistance-capacitance (RC) wiring delay during static timing analysis is modeled by including pin wires attached to the primary input / output pins of the block in the abstract, wherein the wires are all pin-nets attached to the cells in the timing shell. Method for implementing the. 제29항에 있어서,The method of claim 29, 스태틱 타이밍 해석 중의 측벽 커플링은 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 커플링 와이어를 상기 추상에 포함함으로써 모델링되는 것을 특징으로 하는 방법.Sidewall coupling during static timing analysis is modeled by including in the abstract a coupling wire that can potentially be capacitively coupled to the pin wire. 제29항에 있어서,The method of claim 29, 용량성 커플링으로 인한 스태틱 타이밍 해석 중의 노이즈 주입 및 딜레이 변경은 상기 추상내에,Noise injection and delay changes during static timing analysis due to capacitive coupling a) 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 커플링 네트상의 모든 와이어,a) any wire on the coupling net that can potentially be capacitively coupled to the pin wire, b) 블록의 시뮬레이션 중에 구동되는 슬루(slew) 값과 도착시간으로 모델링되는 구동 셀의 입력 핀으로, 이들 네트를 구동시키는 상기 커플링 셀 및 이들 네트에 의하여 구동되는 상기 커플릴 셀, 및b) an input pin of a drive cell modeled with a slew value and arrival time driven during simulation of the block, the coupling cell driving these nets and the coupler cell driven by these nets, and c) 상기 포함된 커플링 네트에 잠재적으로 결합할 수 있는 변환 와이어(transitive wire) 중 1이상을 포함하여 모델링되는 것을 특징으로 하는 방법.c) one or more of the transitive wires potentially capable of coupling to the included coupling net. 제29항에 있어서,The method of claim 29, 용량성 커플링으로 인한 스태틱 타이밍 해석 중의 노이즈 주입 및 딜레이 변경은 상기 추상내에Noise injection and delay changes during static timing analysis due to capacitive coupling a) 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 상기 커플링 네트상의 모든 와이어,a) any wire on the coupling net that can potentially be capacitively coupled to the pin wire, b) 이들 네트 및 상기 추가 셀상의 상기 핀에 부착되는 네트상의 모든 와이어를 구동시키는 제1래치 또는 플립-플롭(flip flop)을 포함하고 또한 그것까지, 조합 로직의 전체 콘을 포함시켜 모델링되는 구동셀의 입력 핀으로, 이들 네트를 구동시키는 상기 커플링 셀 및 이들 네트에 의하여 구동되는 상기 커플링 셀,b) a drive modeled by including the entire cone of combinatorial logic up to and including a first latch or flip flop that drives these nets and all wires on the nets attached to the pins on the additional cell; An input pin of the cell, the coupling cell driving these nets and the coupling cell driven by these nets, c) 상기 포함된 "커플링" 네트에 잠재적으로 커플링될 수 있는 "변환 와이어" 중 1이상을 포함하여 모델링되는 것을 특징으로 하는 방법.c) modeled to include one or more of the "conversion wires" that can potentially be coupled to the included "coupling" nets. 제26항에 있어서,The method of claim 26, IR 드롭 영향은 블록의 단순화된 전기적 모델을 이용하여 모델링되며, 각각의 핀은 이상적인 전류 싱크/소스 및 연관된 임피던스 매트릭스로서 모델링되어 내부 RC 네트워크를 모델링하는 것을 특징으로 하는 방법.The IR drop effect is modeled using a simplified electrical model of the block, wherein each pin is modeled as an ideal current sink / source and associated impedance matrix to model the internal RC network. 제33항에 있어서,The method of claim 33, wherein 파워 드롭 영향에 요구되는 동일한 정보를 이용하여, 파워네트를 위해 일렉트로마이그레이션 영향이 모델링되는 것을 특징으로 하는 방법.Using the same information required for the power drop effect, an electromigration effect is modeled for the power net. 제30항에 있어서,The method of claim 30, 스태틱 타이밍 해석에 사용되는 동일한 정보를 이용하여, 신호네트를 위해 일렉트로마이그레이션 영향이 모델링되는 것을 특징으로 하는 방법.Using the same information used in the static timing analysis, the electromigration impact is modeled for the signal net. 회로가 탑-레벨 및 복수의 블록으로 계급적으로 분해되고, 상기 블록이 더욱 계급적으로 분해될 수 있는, 셀 및 배선을 갖는 집적회로를 디자인하는 방법에 있어서,10. A method of designing an integrated circuit having cells and wiring, wherein the circuit is broken down into top-levels and into a plurality of blocks, wherein the blocks can be broken down more hierarchically. 부모 및 형제 블록내에 있는 소자들 사이의 물리적인 배선을 포함하는 역추상(inverse abstraction)이 생성되도록 상기 1이상의 블록 중 상기 형제 블록과 상기 부모 블록을 처리하는 단계를 포함하되, 상기 물리적 배선정보는 상기 집적회로의 추정된 동작에 따라 배선들의 기생하는 전기적 및 물리적 영향들을 모델링하고,Processing the sibling block and the parent block of the one or more blocks to produce an inverse abstraction including physical wiring between elements within a parent and sibling block, wherein the physical wiring information Model the parasitic electrical and physical effects of the interconnections according to the estimated operation of the integrated circuit, 상기 1개의 블록을 디자인하고 해석하는 1이상의 국면(phase)에서 상기 역추상을 활용하는 단계를 포함하는 것을 특징으로 하는 방법.Utilizing said inverse abstraction in at least one phase of designing and interpreting said one block. 제36항에 있어서,The method of claim 36, 상기 국면은 스태틱 타이밍 해석, 노이즈 해석, 전원 해석, IR 드롭 해석 및 일렉트로마이그레이션 해석, 안테나 룰 위반 검출 및 수선, 배치 및 라우팅, 구현, 디자인 및 검증 중 1이상을 포함하는 것을 특징으로 하는 방법.The phase comprises one or more of static timing analysis, noise analysis, power analysis, IR drop analysis and electromigration analysis, antenna rule violation detection and repair, placement and routing, implementation, design and verification. 제37항에 있어서,The method of claim 37, 1이상의 상기 국면을 집적화하기 위해서 통일된 데이터 모델을 활용하는 것을 특징으로 하는 방법.And utilizing a unified data model to integrate one or more of the aspects. 회로가 셀 및 배선을 가지고, 상기 회로는 탑-레벨 및 복수의 블록들로 계층적으로 분해된 표시를 가지며, 상기 복수의 블록들의 적어도 일부가 계층적으로 더욱 분해될 수 있고 그것과 함께 연관된 부모 블록을 가질 수 있는, 집적회로 디자인을 생성하는 데 사용되는 방법을 구현하는 그 안에 저장된 명령어(instruction)를 갖는 컴퓨터 판독가능 매체로 이루어지는 장치(article)에 있어서,The circuit has cells and wiring, the circuit has a top-level and hierarchically decomposed into a plurality of blocks, at least some of the plurality of blocks can be further decomposed hierarchically and associated with it An article made of a computer readable medium having instructions stored therein implementing a method used to create an integrated circuit design, which may have a block, 실행될 때에, 상기 명령어는When executed, the command 1이상의 블록내에 있는 소자들 사이의 배선에 관련된 물리적 배선정보를 포함하는 추상이 생성되도록 상기 1이상의 블록을 처리하는 단계를 포함하되, 상기 물리적 배선정보는 상기 집적회로의 추정된 동작에 따라 배선들의 기생하는 전기적 및 물리적 영향들을 모델링하고,Processing the one or more blocks such that an abstract is generated that includes physical wiring information related to the wiring between elements within the one or more blocks, wherein the physical wiring information is configured to determine whether or not the wiring is in accordance with the estimated operation of the integrated circuit. Model parasitic electrical and physical effects, 상기 부모 블록을 실행하는 또 다른 발전국면에서 상기 추상을 활용하는 단계를 수행하는 것을 특징으로 하는 장치.And utilizing said abstraction in another development phase of executing said parent block. 제39항에 있어서,The method of claim 39, 상기 처리하는 단계는,The processing step, 상기 부모 블록의 상기 물리적 및 전기적 동작에 영향을 미치는 모든 상기 물리적 배선정보의 서브세트만을 보유하는 단계; 및Retaining only a subset of all the physical wiring information that affects the physical and electrical operation of the parent block; And 상기 부모 블록의 논리적 동작에 영향을 미치는 셀들의 상기 서브세트만을 보유하는 단계를 포함하는 것을 특징으로 하는 장치.Retaining only the subset of cells that affect the logical operation of the parent block. 제39항에 있어서,The method of claim 39, 상기 활용하는 단계는,The step of utilizing, 상기 1이상의 블록의 기술을 상기 추상의 기술로 대체시키는 단계를 포함하는 것을 특징으로 하는 장치.And replacing the description of the one or more blocks with the description of the abstract. 제40항에 있어서,The method of claim 40, 상기 서브세트를 보유하는 단계는,Retaining the subset, 상기 1이상의 블록의 네트리스트의 콘텐츠들을 결정하는 단계를 포함하는 것을 특징으로 하는 장치.Determining contents of a netlist of said at least one block. 제42항에 있어서,The method of claim 42, wherein 로직 쉘의 상기 콘텐츠는,The content of the logic shell is 데이터 입력들을 처리하는 단계;Processing data inputs; 출력들을 처리하는 단계; 및Processing the outputs; And 클록 입력들을 처리하는 단계에 의하여 결정되는 것을 특징으로 하는 장치.And determine clock processing. 제43항에 있어서,The method of claim 43, 상기 데이터 입력들을 처리하는 단계는,Processing the data inputs comprises: 1차 입력들의 리스트를 구성하는 단계를 특징으로 하는 장치.Constructing a list of primary inputs. 제44항에 있어서,The method of claim 44, 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 핀이 클록 핀인 경우, 상기 제거된 핀을 건너 뛰고 다음 핀에 계속되는 단계; 및If the removed pin is a clock pin, skipping the removed pin and continuing to the next pin; And 상기 제거된 핀이 클록 핀이 아닌 경우, 상기 제거된 핀을 전방으로 처리하는 단계를 특징으로 하는 장치.If the removed pin is not a clock pin, processing the removed pin forward. 제45항에 있어서,The method of claim 45, 상기 제거된 핀을 전방으로 처리하는 단계는,Processing the removed pin forward, 후계자의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 장치.Constructing a list of successors. 제46항에 있어서,47. The method of claim 46 wherein 상기 후계자의 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin that meets, until the list of successors is empty, 상기 후계자의 상기 리스트로부터 상기 만나는 후계자 핀을 제거하는 단계;Removing the encounter successor pin from the list of successors; 상기 제거된 후계자 핀의 셀을 타이밍 셀로서 라벨링하는 단계;Labeling the removed successor pin's cells as timing cells; 상기 제거된 후계자 핀이 클록 핀인 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계; 및Skipping the removed successor pin if the removed successor pin is a clock pin; And 상기 제거된 후계자 핀이 클록 핀이 아닌 경우, 상기 제거된 후계자 핀이 셀 입력인지의 여부를 체크하는 단계를 특징으로 하는 장치.If the removed successor pin is not a clock pin, checking whether the removed successor pin is a cell input. 제47항에 있어서,The method of claim 47, 상기 제거된 후계자 핀이 셀입력인 경우,If the removed successor pin is a cell input, 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지는 지의 여부를 알아보기 위하여 체크하는 단계;Checking to see if the removed successor pin has more than one predecessor cell; 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지는 경우, 상기 선임자 셀을 멀티-드라이버 로드 셀로서 라벨링하고, 상기 제거된 핀을 전방으로 상기 처리하는 단계를 반복적으로 실행하는 단계를 특징으로 하는 장치.If the removed successor pin has more than one predecessor cell, labeling the predecessor cell as a multi-driver load cell and repeatedly performing the processing of the removed pin forward. . 제48항에 있어서,The method of claim 48, 상기 제거된 후계자 핀이 셀 입력이 아닌 경우, 또는The removed successor pin is not a cell input, or 상기 제거된 후계자 핀이 1보다 많은 선임자 셀을 가지지 않는 경우, 상기 제거된 핀을 전방으로 상기 처리하는 단계를 반복적으로 실행하는 단계를 특징으로 하는 장치.If the removed successor pin does not have more than one predecessor cell, repeating the processing of the removed pin forward. 제43항에 있어서,The method of claim 43, 상기 출력들을 처리하는 단계는,Processing the outputs comprises: 1차 출력들의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 장치.Constructing a list of primary outputs. 제50항에 있어서,51. The method of claim 50, 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 핀을 후방으로 처리하는 단계를 특징으로 하는 장치.Processing said removed pin backwards. 제51항에 있어서,The method of claim 51, 상기 제거된 핀을 후방으로 프로세싱하는 단계는,Processing the removed pin backwards, 선임자의 리스트를 구성하는 것을 포함하는 것을 특징으로 하는 장치.And constructing a list of predecessors. 제52항에 있어서,The method of claim 52, wherein 상기 선임자의 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin that meets, until the list of predecessors is empty, 상기 선임자의 리스트로부터 상기 만나는 선임자 핀을 제거하는 단계;Removing the encountering predecessor pin from the list of predecessors; 상기 제거된 선임자 핀의 셀을 타이밍 셀로서 라벨링하는 단계;Labeling the removed predecessor pin cell as a timing cell; 상기 제거된 선임자 핀이 클록 핀인 경우, 상기 제거된 선임자 핀을 건너 뛰는 단계; 및If the removed predecessor pin is a clock pin, skipping the removed predecessor pin; And 상기 제거된 선임자 핀이 클록 핀이 아닌 경우, 상기 제거된 선임자 핀이 셀 출력인지의 여부를 체크하는 단계를 특징으로 하는 장치.If the removed predecessor pin is not a clock pin, checking whether the removed predecessor pin is a cell output. 제53항에 있어서,The method of claim 53, 상기 제거된 선임자 핀이 셀 출력인 경우,If the removed senior pin is a cell output, 후계자 셀을 싱크 로드 셀로서 라벨링하는 단계; 및Labeling the successor cell as a sink load cell; And 상기 제거된 핀 뒤쪽에서 상기 처리하는 단계를 반복적으로 실행하는 단계를 특징으로 하는 장치.Iteratively executing the processing step behind the removed pin. 제53항에 있어서,The method of claim 53, 상기 제거된 후계자 핀이 셀 출력이 아닌 경우, 상기 제거된 핀을 후방으로상기 처리하는 단계를 반복적으로 실행하는 단계를 포함하는 것을 특징으로 하는 장치.If the removed successor pin is not a cell output, repeating the processing of the removed pin backwards. 제43항에 있어서,The method of claim 43, 상기 클록 입력들을 처리하는 단계는,Processing the clock inputs comprises: 1차 클록 입력들의 리스트를 구성하는 단계를 포함하는 것을 특징으로 하는 장치.Constructing a list of primary clock inputs. 제56항에 있어서,The method of claim 56, wherein 상기 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters until the list is empty, 상기 리스트로부터 상기 만나는 핀을 제거하는 단계;Removing the encountering pin from the list; 상기 제거된 클록 핀을 전방으로 처리하는 단계를 특징으로 하는 장치.Processing the removed clock pin forward. 제57항에 있어서,The method of claim 57, 상기 제거된 핀을 전방으로 처리하는 단계는,Processing the removed pin forward, 후계자의 리스트를 구성하는 단계를 특징으로 하는 장치.Constructing a list of successors. 제58항에 있어서,The method of claim 58, 상기 후계자의 리스트가 빌 때까지, 만나는 각각의 핀에 대하여,For each pin it encounters, until the list of successors is empty, 상기 후계자의 리스트로부터 상기 만나는 후계자 핀을 제거하는 단계;Removing the encounter successor pin from the list of successors; 상기 제거된 후계자 핀이 클록 핀인 경우, 상기 제거된 후계자 핀을 전방으로 반복적으로 처리하는 단계를 포함하는 단계; 및If the removed successor pin is a clock pin, iteratively processing the removed successor pin forward; And 상기 제거된 후계자 핀이 클록 핀이 아닌 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계를 특징으로 하는 장치.If the removed successor pin is not a clock pin, skipping the removed successor pin. 제59항에 있어서,The method of claim 59, 상기 제거된 후계자 핀을 전방으로 반복적으로 처리하는 단계 후에,After repeatedly processing the removed successor pin forward, 어떠한 후계자 셀이 타이밍 셀로서 라벨링되는 지의 여부를 체크하는 단계를 특징으로 하는 장치.Checking which successor cell is labeled as a timing cell. 제60항에 있어서,The method of claim 60, 어떠한 후계자 셀도 타이밍 셀로서 라벨링되는 경우,If any successor cell is labeled as a timing cell, 상기 제거된 후계자 핀의 셀을 타이밍 셀로서 라벨링하는 단계; 및Labeling the removed successor pin's cells as timing cells; And 상기 후계자 셀을 클록 로드 셀로서 라벨링하는 단계를 특징으로 하는 장치.Labeling the successor cell as a clock load cell. 제60항에 있어서,The method of claim 60, 어떠한 후계자 셀도 타이밍셀로서 라벨링되지 않은 경우, 상기 제거된 후계자 핀을 건너 뛰는 단계를 특징으로 하는 장치.If no successor cell is labeled as a timing cell, skipping the removed successor pin. 제39항에 있어서,The method of claim 39, 상기 물리적 배선정보는 제조 프로세스 및 회로 레이아웃의 물리적 및 전기적 영향들을 포함하는 것을 특징으로 하는 장치.Wherein the physical wiring information includes physical and electrical effects of fabrication process and circuit layout. 제63항에 있어서,The method of claim 63, wherein 상기 물리적 및 전기적 영향들은 배치, 라우팅 제약, 안테나 영향, RC 딜레이 모델링에 의한 스태틱 타이밍 해석, 용량성 커플링 및 노이즈 주입에 의한 스태틱 타이밍 해석, IR 드롭 모델링에 의한 스태틱 타이밍 해석 및 일렉트로마이그레이션 해석 중 1이상을 포함하는 것을 특징으로 하는 장치.The physical and electrical influences include: placement, routing constraints, antenna influences, static timing analysis by RC delay modeling, static timing analysis by capacitive coupling and noise injection, static timing analysis and electromigration analysis by IR drop modeling. An apparatus comprising the above. 제64항에 있어서,65. The method of claim 64, 상기 1이상의 블록에서의 배치 및 라우팅 영향들은 상기 1이상의 블록의 경계들의 물리적 크기, 상기 1이상의 블록의 핀에 대하여 허용되는 접속부가 만들어질 수 있는 물리적인 로케이션, 및 상기 허용되는 접속부를 만드는 데 사용되는 층들 중 1이상을 이용하여 모델링되는 것을 특징으로 하는 장치.Placement and routing effects in the one or more blocks are used to create the physical size of the boundaries of the one or more blocks, the physical location where an allowable connection can be made to the pins of the one or more blocks, and the allowed connection. Apparatus, characterized in that modeled using one or more of the layers. 제64항에 있어서,65. The method of claim 64, 안테나 영향은 각각의 핀에 전기적으로 접속된 모든 핀 와이어들을 상기 추상에 포함시키고, 그들 와이어를 통하여 상기 핀들에 접속되는 모든 다이오드, 트랜지스터 게이트 및 트랜지스터 소스/드레인을 포함함으로써 모델링되는 것을 특징으로 하는 장치.The antenna influence is modeled by including in the abstract all pin wires electrically connected to each pin and including all diodes, transistor gates and transistor sources / drains connected to the pins through those wires. . 제64항에 있어서,65. The method of claim 64, 스태틱 타이밍 해석 중의 저항-캐패시턴스(RC) 배선 딜레이는, 상기 추상내에 블록의 1차 입력/출력 핀에 부착된 핀 와이어를 포함함으로써 모델링되고, 상기 와이어는 타이밍 쉘내의 셀에 부착된 모든 핀-네트를 구현하는 것을 특징으로 하는 장치.The resistance-capacitance (RC) wiring delay during static timing analysis is modeled by including pin wires attached to the primary input / output pins of the block in the abstract, wherein the wires are all pin-nets attached to the cells in the timing shell. Apparatus characterized in that to implement. 제67항에 있어서,The method of claim 67, 스태틱 타이밍 해석 중의 측벽 커플링은 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 커플링 와이어를 상기 추상에 포함함으로써 모델링되는 것을 특징으로 하는 장치.Sidewall coupling during static timing analysis is modeled by including in the abstract a coupling wire that can potentially be capacitively coupled to the pin wire. 제67항에 있어서,The method of claim 67, 용량성 커플링으로 인한 스태틱 타이밍 해석 중의 노이즈 주입 및 딜레이 변경은 상기 추상내에,Noise injection and delay changes during static timing analysis due to capacitive coupling a) 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 커플링 네트상의 모든 와이어,a) any wire on the coupling net that can potentially be capacitively coupled to the pin wire, b) 블록의 시뮬레이션 중에 구동되는 슬루(slew) 값과 도착시간으로 모델링되는 구동 셀의 입력 핀으로, 이들 네트를 구동시키는 상기 커플링 셀 및 이들 네트에 의하여 구동되는 상기 커플릴 셀, 및b) an input pin of a drive cell modeled with a slew value and arrival time driven during simulation of the block, the coupling cell driving these nets and the coupler cell driven by these nets, and c) 상기 포함된 커플링 네트에 잠재적으로 결합할 수 있는 변환 와이어 중 1이상을 포함하여 모델링되는 것을 특징으로 하는 장치.and c) one or more of the conversion wires potentially capable of coupling to the included coupling net. 제67항에 있어서,The method of claim 67, 용량성 커플링으로 인한 스태틱 타이밍 해석 중의 노이즈 주입 및 딜레이 변경은 상기 추상내에Noise injection and delay changes during static timing analysis due to capacitive coupling a) 잠재적으로 상기 핀 와이어에 용량적으로 커플링될 수 있는 상기 커플링 네트상의 모든 와이어,a) any wire on the coupling net that can potentially be capacitively coupled to the pin wire, b) 이들 네트 및 상기 추가 셀상의 상기 핀에 부착되는 네트상의 모든 와이어를 구동시키는 제1래치 또는 플립-플롭(flip flop)을 포함하고 또한 그것까지, 조합 로직의 전체 콘을 포함시켜 모델링되는 구동셀의 입력 핀으로, 이들 네트를 구동시키는 상기 커플링 셀 및 이들 네트에 의하여 구동되는 상기 커플링 셀,b) a drive modeled by including the entire cone of combinatorial logic up to and including a first latch or flip flop that drives these nets and all wires on the nets attached to the pins on the additional cell; An input pin of the cell, the coupling cell driving these nets and the coupling cell driven by these nets, c) 상기 포함된 "커플링" 네트에 잠재적으로 커플링될 수 있는 "변환 와이어" 중 1이상을 포함하여 모델링되는 것을 특징으로 하는 장치.c) an apparatus characterized in that it comprises one or more of the "conversion wires" that can potentially be coupled to the included "coupling" net. 제64항에 있어서,65. The method of claim 64, IR 드롭 영향은 블록의 단순화된 전기적 모델을 이용하여 모델링되며, 각각의 핀은 이상적인 전류 싱크/소스 및 연관된 임피던스 매트릭스로서 모델링되어 내부 RC 네트워크를 모델링하는 것을 특징으로 하는 장치.IR drop effect is modeled using a simplified electrical model of the block, each pin being modeled as an ideal current sink / source and associated impedance matrix to model the internal RC network. 제71항에 있어서,The method of claim 71, wherein 파워 드롭 영향에 요구되는 동일한 정보를 이용하여, 파워네트를 위해 일렉트로마이그레이션 영향이 모델링되는 것을 특징으로 하는 장치.Using the same information required for the power drop effect, an electromigration effect is modeled for the power net. 제68항에 있어서,The method of claim 68, 스태틱 타이밍 해석에 사용되는 동일한 정보를 이용하여, 신호네트를 위해 일렉트로마이그레이션 영향이 모델링되는 것을 특징으로 하는 장치.An electromigration effect is modeled for a signal net using the same information used for static timing analysis. 회로가 탑-레벨 및 복수의 블록으로 계급적으로 분해되고, 상기 블록이 더욱 계급적으로 분해될 수 있는, 셀 및 배선을 갖는 집적회로를 디자인하는 방법에서 구현되는 그 안에 저장된 명령어를 갖는 컴퓨터 판독가능 매체로 이루어지는 장치에 있어서,A computer readable medium having instructions stored therein embodied in a method of designing an integrated circuit having cells and wiring, where the circuit is broken down into top-level and plurality of blocks, and the blocks can be broken down more hierarchically. In the device consisting of, 부모 및 형제 블록내에 있는 소자들 사이의 물리적인 배선을 포함하는 역추상이 생성되도록 상기 1이상의 블록 중 상기 형제 블록과 상기 부모 블록을 처리하는 단계를 포함하되, 상기 물리적 배선정보는 상기 집적회로의 추정된 동작에 따라 배선들의 기생하는 전기적 및 물리적 영향들을 모델링하고,Processing the sibling block and the parent block of the one or more blocks to produce an inverse abstract including physical wiring between elements within a parent and sibling block, wherein the physical wiring information is included in the integrated circuit. Model the parasitic electrical and physical effects of the wirings according to the estimated behavior, 상기 1개의 블록을 디자인하고 해석하는 1이상의 국면에서 상기 역추상을 활용하는 단계를 포함하는 것을 특징으로 하는 장치.And utilizing said inverse abstraction in at least one aspect of designing and interpreting said one block. 제74항에 있어서,The method of claim 74, wherein 상기 국면은 스태틱 타이밍 해석, 노이즈 해석, 전원 해석, IR 드롭 해석 및 일렉트로마이그레이션 해석, 안테나 룰 위반 검출 및 수선, 배치 및 라우팅, 구현, 디자인 및 검증 중 1이상을 포함하는 것을 특징으로 하는 장치.The aspect includes one or more of static timing analysis, noise analysis, power analysis, IR drop analysis and electromigration analysis, antenna rule violation detection and repair, placement and routing, implementation, design and verification. 제75항에 있어서,76. The method of claim 75, 1이상의 상기 국면을 집적화하기 위해서 통일된 데이터 모델을 활용하는 것을 특징으로 하는 장치.And utilize a unified data model to integrate one or more of the aspects. 제1항에 있어서,The method of claim 1, 상기 배선은 그 부모 블록을 갖는 1이상의 블록 사이의 인터페이스의 표시들을 포함하는 것을 특징으로 하는 방법.The wiring comprises indications of an interface between at least one block having its parent block. 제39항에 있어서,The method of claim 39, 상기 배선은 그 부모 블록을 갖는 1이상의 블록 사이의 인터페이스의 표시들을 포함하는 것을 특징으로 하는 장치.And wherein the wiring comprises indications of an interface between at least one block having its parent block.
KR10-2003-7016097A 2001-06-08 2002-06-10 Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system KR20040032109A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29679701P 2001-06-08 2001-06-08
US60/296,797 2001-06-08
PCT/US2002/018424 WO2002101601A2 (en) 2001-06-08 2002-06-10 Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system

Publications (1)

Publication Number Publication Date
KR20040032109A true KR20040032109A (en) 2004-04-14

Family

ID=23143594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7016097A KR20040032109A (en) 2001-06-08 2002-06-10 Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system

Country Status (7)

Country Link
EP (1) EP1407391A2 (en)
JP (1) JP2005518002A (en)
KR (1) KR20040032109A (en)
CN (1) CN1539113A (en)
CA (1) CA2450143A1 (en)
IL (1) IL159224A0 (en)
WO (1) WO2002101601A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007002799A1 (en) * 2005-06-29 2007-01-04 Lightspeed Logic, Inc. Methods and systems for placement
US7752588B2 (en) 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
US7840927B1 (en) 2006-12-08 2010-11-23 Harold Wallace Dozier Mutable cells for use in integrated circuits
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382085C (en) * 2004-07-07 2008-04-16 华为技术有限公司 Board pattern designing method of integrated designing element in printed circuit board and its device
US7228514B2 (en) * 2005-01-21 2007-06-05 International Business Machines Corporation Method, system and computer program product for automatically estimating pin locations and interconnect parasitics of a circuit layout
US8463587B2 (en) * 2009-07-28 2013-06-11 Synopsys, Inc. Hierarchical order ranked simulation of electronic circuits
CN102339342B (en) * 2010-07-27 2013-06-05 中国科学院微电子研究所 Method for fast materializing of parameterization device unit
US9111245B2 (en) * 2012-09-21 2015-08-18 The Boeing Company Displaying modeling data and logical data
CN105612520A (en) * 2013-08-06 2016-05-25 Ess技术有限公司 Constrained placement of connected elements
CN106777441B (en) * 2015-11-24 2020-04-21 龙芯中科技术有限公司 Timing constraint management method and device
US20180060472A1 (en) * 2016-08-30 2018-03-01 Mediatek Inc. Efficient cell-aware fault modeling by switch-level test generation
CN113642280A (en) * 2020-04-27 2021-11-12 中国科学院上海微系统与信息技术研究所 Layout method of superconducting integrated circuit
CN112395431B (en) * 2021-01-18 2021-04-30 北京晶未科技有限公司 Method for constructing behavior model, electronic device and electronic equipment
CN117436379B (en) * 2023-12-21 2024-04-09 成都行芯科技有限公司 Through hole compression method and device, electronic equipment and storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
US5644498A (en) * 1995-01-25 1997-07-01 Lsi Logic Corporation Timing shell generation through netlist reduction
US5844818A (en) * 1996-05-10 1998-12-01 Lsi Logic Corporation Method for creating and using design shells for integrated circuit designs
US5920484A (en) * 1996-12-02 1999-07-06 Motorola Inc. Method for generating a reduced order model of an electronic circuit
US5878053A (en) * 1997-06-09 1999-03-02 Synopsys, Inc. Hierarchial power network simulation and analysis tool for reliability testing of deep submicron IC designs
US6072945A (en) * 1997-06-26 2000-06-06 Sun Microsystems Inc. System for automated electromigration verification
US6457159B1 (en) * 1998-12-29 2002-09-24 Cadence Design Systems, Inc. Functional timing analysis for characterization of virtual component blocks

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007002799A1 (en) * 2005-06-29 2007-01-04 Lightspeed Logic, Inc. Methods and systems for placement
US7653884B2 (en) 2005-06-29 2010-01-26 Geoffrey Mark Furnish Methods and systems for placement
US7752588B2 (en) 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
US7814451B2 (en) 2005-06-29 2010-10-12 Geoffrey Mark Furnish Incremental relative slack timing force model
US7921392B2 (en) 2005-06-29 2011-04-05 Otrsotech, Limited Liability Company Node spreading via artificial density enhancement to reduce routing congestion
US7921393B2 (en) 2005-06-29 2011-04-05 Otrsotech, Limited Liability Company Tunneling as a boundary congestion relief mechanism
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
US7840927B1 (en) 2006-12-08 2010-11-23 Harold Wallace Dozier Mutable cells for use in integrated circuits

Also Published As

Publication number Publication date
WO2002101601A3 (en) 2003-12-11
WO2002101601A2 (en) 2002-12-19
CN1539113A (en) 2004-10-20
CA2450143A1 (en) 2002-12-19
EP1407391A2 (en) 2004-04-14
JP2005518002A (en) 2005-06-16
IL159224A0 (en) 2004-06-01

Similar Documents

Publication Publication Date Title
US7103863B2 (en) Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system
US7073140B1 (en) Method and system for performing crosstalk analysis
US7962876B2 (en) Generation of engineering change order (ECO) constraints for use in selecting ECO repair techniques
US5668732A (en) Method for estimating power consumption of a cyclic sequential electronic circuit
Sapatnekar Timing
US6286126B1 (en) Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits using best and worst case delay models for nets therein
EP0677813B1 (en) Method of target generation for multilevel hierachical circuit designs
US6665845B1 (en) System and method for topology based noise estimation of submicron integrated circuit designs
US7627844B2 (en) Methods and apparatuses for transient analyses of circuits
US6449753B1 (en) Hierarchical coupling noise analysis for submicron integrated circuit designs
US6782520B1 (en) IC layout system having separate trial and detailed routing phases
KR20040032109A (en) Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system
KR20040034613A (en) Method for generating design constraints for modulates in a hierarchical integrated circuit design system
US11010511B2 (en) Scalable boolean methods in a modern synthesis flow
US11238202B2 (en) Verifying glitches in reset path using formal verification and simulation
Shepard et al. Design methodology for the S/390 Parallel Enterprise Server G4 microprocessors
Cherry Pearl: A CMOS timing analyzer
Gupta et al. Analytical models for RTL power estimation of combinational and sequential circuits
US6560571B1 (en) Method and apparatus for prioritizing the order in which checks are performed on a node in an integrated circuit
Jerke et al. Constraint-driven design: The next step towards analog design automation
US11270052B2 (en) System and method of timing characterization for semiconductor circuit
Palit et al. Modeling and analysis of crosstalk coupling effect on the victim interconnect using the ABCD network model
US11494540B1 (en) Method, system, and computer program product for implementing electronic design closure with reduction techniques
US6701290B1 (en) Method and apparatus for evaluating the design quality of network nodes
Lee Introduction to Place and Route Design in VLSIs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application