KR20030006900A - 타이밍 버지트 설계 방법 - Google Patents

타이밍 버지트 설계 방법 Download PDF

Info

Publication number
KR20030006900A
KR20030006900A KR1020010079464A KR20010079464A KR20030006900A KR 20030006900 A KR20030006900 A KR 20030006900A KR 1020010079464 A KR1020010079464 A KR 1020010079464A KR 20010079464 A KR20010079464 A KR 20010079464A KR 20030006900 A KR20030006900 A KR 20030006900A
Authority
KR
South Korea
Prior art keywords
block
delay
design
timing
logic
Prior art date
Application number
KR1020010079464A
Other languages
English (en)
Other versions
KR100704577B1 (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 KR20030006900A publication Critical patent/KR20030006900A/ko
Application granted granted Critical
Publication of KR100704577B1 publication Critical patent/KR100704577B1/ko

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/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

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

Abstract

LSI의 설계에 있어서, 초기 단계에서 신호 지연을 적절히 고려하면서 논리 블록의 배치 등을 행할 수 있는 타이밍 버지트 설계 방법을 제공한다.
LSI의 논리 설계 단계에서, 논리 블록을 구축할 때, 각 블록의 단자간의 딜레이 값의 최대값을 설계자의 견적 또는 네트리스트 작성 후에는 네트리스트의 정보를 기초로 설정한다. 단자는 그룹화할 수 있다. 복수의 단자간의 접속에 있어서의 딜레이 값은 가장 큰 것으로 대표시킨다. 또, 논리 블록내에 있는 복수의 내부 기억 소자는 1 또는 복수의 내부 래치에 의해서 대표시키고, 단자와 내부 래치 및 내부 래치와 단자간의 딜레이 값도 복수인 딜레이 값 중에서 최대의 것을 선택하고, 이것에 의해서 딜레이 값의 대표값으로 한다.

Description

타이밍 버지트 설계 방법{TIMING BUDGET DESIGNING METHOD}
본 발명은 LSI의 설계 단계에서의 타이밍 버지트(budget) 설계 방법에 관한 것으로서, 특히 LSI의 논리 블록을 배치할 경우에 신호 지연을 적절히 고려하면서 LSI의 설계를 행할 수 있는 방법에 관한 것이다.
종래, LSI의 설계는 LSI에 편성해 넣어야 하는 논리를 구성하고, 이 논리를 블록으로 나눈 후, 이 논리 블록을 LSI의 어느 부분에 배치할지를 결정하는 플로어 플랜의 스텝과, 상기 플로어 플랜에 의해 배치된 논리 블록을 트랜지스터 등의 소자로 치환하는 스텝과, 상기 소자간을 배선하는 스텝으로 이루어져 있다.
그러나, 상기 종래의 설계 방법에서는, 플로어 플랜의 시점에서는 나중에 논리회로를 배선했을 때에 생기는 신호 지연이 소정의 사양을 만족시키는지의 여부에 대해서 검토를 행하지 않고, 논리 블록의 배치를 결정하고 있었기 때문에, 실제로 논리 블록을 소자로 치환하여 논리회로를 형성하고, 이들 사이를 배선하면, 신호 지연이 사양을 만족시키지 않는 경우가 발생하고 있었다.
이 때, 종래에는 논리 블록의 배치를 바꿀 필요가 있기 때문에, 다시 플로어 플랜의 스텝으로 되돌아가, 작업을 다시 행한다는 재실행(再實行)이 빈번하게 발생하는 결과를 초래했다. 이 재실행 작업에서의 플로어 플랜을 다시 행함에 있어서는, 논리의 블록 분할 방식의 재검토도 포함되는 경우가 종종 있다.
이와 같이, 종래의 LSI의 설계 수법에서는, 재실행이 빈번하게 발생하여, 설계에 시간이 소요되는 동시에, 설계자의 노력도 많이 들고, 설계에 소요되는 비용이 크다는 문제가 있었다.
이것은 플로어 플랜에서 신호 지연을 전혀 고려하지 않고 작업을 행하기 때문에, 실제로 논리회로를 배치하여 보면 신호 지연이 사양을 만족시키지 않는 경우가 빈번하게 발생하는 것에 기인한다고 생각된다.
본 발명의 과제는 LSI의 설계에 있어서, 초기 단계에서 신호 지연을 적절히 고려하면서, 논리 블록의 배치 등을 행할 수 있는 타이밍 버지트 설계 방법을 제공하는 것이다.
도 1은 본 발명의 실시예를 적용한 LSI의 설계 및 제조 단계를 설명하는 도면.
도 2는 본 발명의 실시예에 따른 타이밍 버지트 설계 장치에서의 논리 블록의 타이밍 조건 설정 방법을 설명하는 도면.
도 3은 본 발명의 실시예에 따른 논리 블록의 타이밍 조건 모델화 방법의 변형예를 설명하는 도면.
도 4는 네트리스트(netlist)와 타이밍 조건 기술(記述), 모델과의 관계를 설명하는 도면.
도 5는 패스 딜레이(path delay)의 계산식 예를 나타내는 도면.
도 6은 블록간 네트리스트와 블록의 타이밍 조건 기술로부터, 블록에 걸쳐 있는 기억 소자간의 딜레이가 목표 딜레이에 들어 있는지를 점검하고, 점검 결과를 출력하는 방법을 설명하는 제 1의 도면.
도 7은 블록간 네트리스트와 블록의 타이밍 조건 기술로부터, 블록에 걸쳐 있는 기억 소자간의 딜레이가 목표 딜레이에 들어 있는지를 점검하고, 점검 결과를 출력하는 방법을 설명하는 제 2의 도면.
도 8은 논리 블록의 타이밍 조건을 입력 핀 및 출력 핀에서의 신호 도달 시각으로 변환시킨 논리 블록의 타이밍 버지트를 작성하는 방법을 설명하는 도면.
도 9는 본 발명의 실시예를 이용하여 각 패스의 딜레이 값을 산출한 결과, 딜레이 값이 요구를 만족시키지 않는다고 판명된 경우의 처리 방법을 나타내는 도면.
도 10은 타이밍 버지트의 수정 방법의 다른 예를 설명하는 도면.
도 11은 목표 도달도를 가미하면서 타이밍 버지트를 조정하는 방법을 설명하는 도면.
도 12는 내부 기억 소자의 그룹화에서의 기술 예를 나타내고 있는 도면.
도 13은 블록의 타이밍 버지트 기술 또는 타이밍 조건 기술에 있어서, 내부 기억 소자에 클록 스큐(skew)를 부여하는 방식에서 기술을 간략화하도록 규정(rule)을 마련하는 방법을 설명하는 도면.
도 14는 클록 스큐를 고려한 타이밍의 점검 예를 설명하는 도면.
도 15는 본 발명의 실시예에 따른 플로어 플랜(floor plan) 상에서의 신호 또는 패스를 표시하는 방법을 설명하는 도면.
도 16은 도 15의 표시에서의 표시 방법의 다른 예를 설명하는 도면.
도 17은 본 발명의 실시예에 따른 타이밍 버지트 설계 장치의 블록 구성도.
도 18은 본 발명의 실시예에 따른 타이밍 버지트 설계 장치를 프로그램에 의해 실현할 경우에 필요로 되는 컴퓨터의 하드웨어 환경을 설명하는 도면.
도면의 주요부분에 대한 부호의 설명
10 : 타이밍 버지트 설계 장치
11 : 모델 및 타이밍 조건 기술부
12 : 연산부
13 : 기존 설계 툴(tool)
14 : 표시장치
타이밍 버지트 설계 방법은, LSI의 설계에 있어서, 타이밍 버지트를 평가하면서 설계를 진행시키는 방법으로서, LSI에 편성되는 논리를 설계하고, 이 논리를 논리 블록으로 분할하는 스텝과, 상기 논리 블록의 단자간의 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 스텝과, 상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 스텝과, 그 딜레이 값을 고려하면서, 논리 블록의 설계를 행하는 스텝을 구비하는 것을 특징으로 한다.
본 발명에 의하면, 논리 블록의 딜레이 값을 고려하면서 LSI의 설계를 진행시키는 타이밍 버지트 설계 방법을 제공함으로써, LSI의 설계가 진행된 단계에서, 신호의 딜레이가 요구되는 시간 내에 들어가지 않게 되는 사태를 저감시킬 수 있고, 따라서 설계 단계에서의 재실행 횟수를 줄이고, 설계에 소요되는 비용을 감소시켜, 효율적인 LSI의 설계를 실현할 수 있다.
도 1은 본 발명의 실시예를 적용한 LSI의 설계 및 제조 단계를 설명하는 도면이다.
스텝 S1은 레지스터 트랜스퍼 레벨 설계(Register Transfer Level 설계)라고 불리는 단계이며, RTL 기술을 이용하여 LSI에 실장해야 하는 논리의 설계를 행하는 것이다. 본 발명의 실시예에 있어서는, 이 RTL 설계의 단계에 있어서, 설계자가 자신의 견적으로 신호 지연(딜레이) 값을 결정하고, 개략의 딜레이 값을 각 논리 블록간에서 계산하면서, 논리 블록의 설계를 행한다. 이것에 의해, 설계자는 논리 블록간을 배선한 경우의 딜레이 값을 개략 바람직한 값으로 설정할 수 있다.
스텝 S2에 있어서는, 스텝 S1에서 작성된 RTL 기술에 의거하여, 각 논리 블록간의 논리 합성(논리의 구축)이 이루어진다. 이것은 일단 RTL 기술이 얻어지면, 기존 프로그램에 의해 자동적으로 실행 가능하다. 스텝 S2의 논리 합성에 의해, 스텝 S3에 나타내는 네트리스트가 생성된다. 네트리스트라 함은 LSI에 실장되는 트랜지스터 등의 구성요소(component) 사이가 논리적으로 어떻게 접속되는지를 나타낸 데이터이다.
스텝 S4에 있어서는, 스텝 S3에서 얻어진 네트리스트를 기초로, 각 논리 블록을 LSI의 어느 부분에 배치할지를 결정하는 플로어 플랜을 작성한다. 이 플로어 플랜을 작성하는 단계에서도 본 발명의 실시예를 이용한다. 즉, 네트리스트에 의해 어느 구성요소가 어느 구성요소와 접속되는지를 알 수 있기 때문에, 이들 정보로부터 논리 블록을 접속한 경우의 딜레이 값을 산출하여, 해당 LSI의 동작에 요구되는 딜레이 값으로 되어 있는지의 여부를 판단할 수 있다. 여기서, 딜레이 값이 요구되는 값을 만족시키지 않을 경우에는, 스텝 S2의 논리 합성으로 되돌아가 네트리스트의 재작성 등을 행한다. 스텝 S4의 플로어 플랜의 작성에 있어서, 딜레이 값이 요구되는 값에 들어간 경우에는, 스텝 S5에서 각 논리 블록의 배치 정보가 얻어진다.
스텝 S5에 있어서 배치 정보가 얻어지면, 스텝 S6에서, 얻어진 배치 정보에 의거하여 각 논리 블록을 배치하고, 임시 배선을 행한다. 그리고, 스텝 S6에서 얻어진 임시 배선에 의거하여 배선 길이로부터 지연 계산을 행하고, 스텝 S7에서 지연 시뮬레이션을 행한다.
스텝 S7의 지연 시뮬레이션에서는 임시로 배선을 행하고 있으므로, 네트리스트로부터는 알 수 없는 배선의 우회는 위치 등에 의한 지연의 존재 등이 명확해진다. 여기서, 지연 시뮬레이션의 결과, 딜레이 값이 요구되는 값으로 되어 있지 않은 경우에는 스텝 S4의 플로어 플랜을 재작성한다. 그리고, 스텝 S4의 플로어 플랜의 재작성으로도 불충분하다고 고려되는 경우에는 스텝 S2의 논리 합성으로 되돌아가 작업을 재차 행한다.
스텝 S7의 지연 시뮬레이션에 있어서, 딜레이 값이 요구되는 값에 들어 있다고 판명된 경우에는 스텝 S8에 있어서 각 논리 블록내의 각 구성요소를 셀 단위로 자동 배치 및 자동 배선한다. 그리고, 스텝 S9에 있어서 모든 구성요소가 배치·배선된 상태에서의 지연 계산을 행하고, 스텝 S10에 있어서 지연 시뮬레이션을 행한다. 스텝 S10의 지연 시뮬레이션에 있어서 딜레이 값이 요구되는 값으로 되어 있지 않다고 판단된 경우에는, 스텝 S8의 자동 배치 배선을 다시 행하거나, 또는 플로어 플랜을 다시 작성하거나 또는 논리 합성을 다시 행하는 등에 의해 작업을 반복한다. 스텝 S10의 지연 시뮬레이션에 있어서, 딜레이 값이 요구되는 값에 들어 있다고 판단된 경우에는 LSI의 설계가 완료되었다고 하고, 스텝 S11의 제조 단계로 들어간다.
도 2는 본 발명의 실시예에 따른 타이밍 버지트 설계 장치에 있어서의 논리 블록의 타이밍 조건의 설정 방법을 설명하는 도면이다.
도 2의 사각으로 둘러싸인 부분은 타이밍 버지트의 평가를 위한 딜레이 값의 분포를 나타내는 모델의 논리 블록과 그 내부에서 정의되는 딜레이 값의 설정 상태를 나타낸다. 그리고, 도 2 상부의 기술은 논리 블록의 딜레이 값의 분포 모델을 기술하고 있다.
본 실시예에서는 논리 블록내에 다수 포함될 FF나 래치 등의 기억 소자를 1개 또는 복수개의 내부 기억 소자 그룹으로 대표시켜, 논리 블록의 타이밍 조건을 기술한다.
논리 블록의 타이밍은 RTL 설계의 단계에서 본 실시예를 이용하는 경우에는, 칩 전체의 사이클 타임으로부터 각 논리 블록 단위의 타이밍을 설계자의 감으로 대략적으로 할당하거나, 논리 블록의 크기나 내부의 셀 수로부터 견적한다. 그리고, 플로어 플랜을 작성하는 단계에서 본 실시예를 이용하는 경우에는, 네트리스트의 정보에 근거하여 각 논리 블록의 설계 담당자는 내부의 셀의 연결을 보면서 패스마다 테크놀로지 정보(각 구성요소의 제조자가 제공하는 특성 데이터)로부터 얻을 수 있는 RC(저항과 커패시터)의 대표값을 기초로 딜레이 값을 계산하여 타이밍 조건을 기술한다.
도 2 상부의 기술에 있어서는, 2개의 단자 그룹이 정의되어 있다. 단자 그룹은 pingrp A 및 pingrp B로 명명되어 있고, pingrp A에는 비트 lO∼비트 11로 이루어지는 단자 ADDRA_T, ADDRA_C, ADDRB_T, ADDRB_C 및 비트 0∼비트 2로 이루어지는 NULL_T 및 NULL_C 등으로 이루어진다. 마찬가지로, pingrp B는 비트 O∼비트 11로 이루어지는 DOUT와 XDOUT가 정의되어 있다.
또한, FF1, FF2, FF3 등의 내부 기억 소자는 1개의 내부 래치 IL0으로서 정의되어 있다. 또, path from A to B delay 500이라는 기재는 A단자(이 경우, 단자 그룹 A)에서 B단자(이 경우, 단자 그룹 B)로의 패스의 딜레이 값이 500ps라고 정의하고 있다. 마찬가지로, A단자에서 OFLG 단자로의 패스의 딜레이 값은 600ps, A단자에서 IL(내부 래치)로의 딜레이 값은 250ps, IL에서 단자 B로의 딜레이 값은 230ps, 단자 CK0에서 B단자로는 450ps, 단자 CK1에서 B단자로는 430ps, 단자 RST0에서 B단자로는 400ps, 단자 RSTl에서 B단자로는 420ps의 딜레이가 있는 것이 정의되고, 1개의 논리 블록의 타이밍 조건의 모델화를 행하고 있다.
이와 같이, 본래라면 다수 존재하는 내부 기억 소자를 1개 또는 복수의 내부래치로 대표하고, 타이밍 조건을 기술하는 것에 의해, 논리 블록의 타이밍 조건의 모델화를 간단화할 수 있다.
도 3은 본 발명의 실시예에 따른 논리 블록의 타이밍 조건의 모델화 방법의 변형예를 설명하는 도면이다.
본 실시예에서는 논리 블록의 타이밍 조건 기술에 있어서, 논리 블록을 계층적으로 기술한다. 즉, 도 3의 아래에 나타내는 바와 같이 외부 프레임이 큰 논리 블록 중에 블록 1로 나타내는 작은 논리 블록이 포함되어 있다. 이와 같이 하는 것에 의해, 타이밍 조건 기술의 자유도를 증가시켜 보다 정확한 모델화가 가능하도록 할 수 있다.
도 3의 상부는 타이밍 기술 예로서, (a)로 나타내는 행보다 위의 부분은 도 2와 마찬가지이므로, 설명을 생략한다. (a)로 나타내는 행의 아래쪽에는 블록 1을 통과하는 패스의 딜레이 값이 설정되어 있다. 블록 1에는 입력이 2개, 출력이 2개 설치되어 있다. A단자에서 블록 1의 in 1단자로의 딜레이 값은 200ps이고, A단자에서 블록 l의 in 2단자로는 150ps, 블록 1의 out 1에서 B단자로는 30Ops, 블록 1의 out 2에서 B단자로는 250ps의 딜레이가 있는 것이 정의되어 있다. 또, 블록 1 내부의 딜레이도 설정하는 것이 가능한데(도시하지 않음), 예를 들어 도 2의 우측 하부와 같이 설정하는 것이 가능하다.
또한, 상술한 바와 같이, 본 실시예의 타이밍 조건의 기술은 네트리스트가 작성된 후에는 각 타이밍 조건 기술을 네트리스트로부터 작성할 수 있다.
도 4는 네트리스트와 타이밍 조건 기술, 모델과의 관계를 설명하는 도면이다.
도 4와 같이 네트리스트로부터 모델을 간략화하여 타이밍 조건을 기술할 수 있도록 작성하는 경우, 아래와 같은 3종류의 딜레이를 구하는 것에 의해 블록의 타이밍 조건 기술을 작성한다.
·1개의 입력 핀→ 모든 내부 기억 소자의 경로의 max 딜레이
·1개의 입력 핀→ 1개의 출력 핀의 경로의 max 딜레이
·모든 내부 기억 소자→ 1개의 출력 핀의 경로의 max 딜레이
즉, 모델에 있어서는, 내부 기억 소자는 1개 이상의 내부 래치로 집합적으로 대표되므로, 네트리스트에 있어서 복수의 내부 기억 소자와 그 접속 관계가 기재되어 있어도, 이들은 모델에 있어서는 1개 또는 복수의 내부 래치로의 접속, 내부 래치로부터의 접속으로 집약된다. 여기서, 내부 래치로의 접속에 있어서 사용하는 딜레이 값은 네트리스트에서 기술되는 내부 래치로의 복수의 접속 중, 딜레이 값이 가장 큰 접속을 대표하여 1개 설정한다. 마찬가지로, 내부 래치로부터의 접속에 있어서도 가장 딜레이 값이 큰 접속을 1개 대표하여 설정한다.
또한, 논리 블록내에 있어서의 단자에서 단자로의 접속도 네트리스트에 있어서는 복수의 경로가 기술될 가능성이 있지만, 이러한 복수의 경로 중 가장 딜레이 값이 큰 경로를 대표하여 1개 설정한다. 이와 같이 해서, 구성된 모델에 의거하여 타이밍 조건 기술을 행한다.
여기서, 딜레이 값은 상술한 바와 같이 네트리스트가 완성된 후에는 테크놀로지 정보를 기초로 산출한다.
도 5는 패스 딜레이의 계산식 예를 나타내는 도면이다.
이 도면에 있어서는 블록 1의 내부 래치로부터 시작하여, 블록 2를 통과해서 블록 3의 내부 래치에서 종료하는 패스의 딜레이 값이 칩 내 사이클 타임(여기서는 100Ops로 하고 있다) 내에 포함되는지의 여부의 검증을 행한다.
계산 방법으로서는, 우선 이송측 FF인 내부 래치의 딜레이 값을 a로 한다. 또한, 블록 1내에서의 내부 래치에서 출력 단자까지의 딜레이 값을 b로 하고, 마찬가지로 블록 1의 출력에서 블록 2의 입력까지의 딜레이 값을 c, 블록 2내의 딜레이 값을 d, 블록 2에서 블록 3까지의 딜레이 값을 e, 그리고 블록 3내의 입력 단자에서 내부 래치까지의 딜레이 값을 f, 블록 3의 내부 래치의 딜레이 값을 g로 하면, 이들을 합계한 것이 신호 지연량(패스의 딜레이 값)이고, 이것에 클록 스큐α를 가산한 것이 칩 내 사이클 타임인 1000ps 내에 포함되는지의 여부를 판단하는 것에 의해서, 딜레이 값이 적절히 설계되어 있는지를 판단할 수 있다.
도 6 및 도 7은 블록간 네트리스트와 블록의 타이밍 조건 기술로부터, 블록에 걸쳐 있는 기억 소자간의 딜레이가 목표 딜레이에 들어 있는지를 점검하고, 점검 결과를 출력하는 방법을 설명하는 도면이다.
도 6은 패스 딜레이의 리스트를 생성하는 처리의 흐름도이다.
우선, 스텝 S20에 있어서, 네트리스트, 타이밍 기술, 사이클 타임을 입력한다. 그리고, 네트리스트로부터 패스를 추출하고(스텝 S21), 스텝 S22에 있어서 패스의 딜레이 값을 타이밍 기술로부터 도 5에서 설명한 계산식에 의해 계산한다. 그리고, 스텝 S23에 있어서, 패스의 딜레이 값이 사이클 타임을 오버하고 있는지의여부를 판단하고, 오버하고 있지 않은 경우에는 스텝 S21로 진행하여, 다른 패스에 대하여 처리를 한다. 스텝 S23에 있어서, 패스의 딜레이 값이 사이클 타임을 오버하고 있다고 판단된 경우에는, 스텝 S24에 있어서 패스 리스트를 출력하고, 설계자에게 새로운 네트리스트의 작성이나 플로어 플랜의 작성 등을 행하게 한다.
도 7은 패스 딜레이의 리스트와 모델의 예를 나타내는 도면이다.
이 도면의 상부가 모델 예이고, 이 도면의 하부가 패스 딜레이의 리스트의 예이다. 상기 도면의 하부의 리스트에 있어서, 그 1번 리스트에서는 FF로부터 나와서, 블록 사이를 통과하여, 다른 블록의 FF에서 종단하는 패스를 기술하고 있다. 출력 논리 블록은 FAD라고 명명되어 있고, FAD의 내부 래치에서부터 패스는 시작된다. FAD의 내부 래치는 FAD의 단자 A148에 접속되어 있는 것이 1번 리스트의 최초의 행으로부터 알 수 있고, 딜레이 값은 1552ps인 것을 알 수 있다. 다음 행에서는 블록간의 네트를 나타내고 있고, FAD의 단자 A148에서 블록 OPR의 단자 A64H로의 접속을 나타내고 있다. 또한, 이 네트의 이름으로서, M_FAD_RESULT_BYTE7_P7이 붙여져 있다. 이 네트의 딜레이 값은 0ps로 설정되어 있다. 또, OPR의 단자 A64H에서 OPR의 내부 래치까지의 패스가 1번 리스트의 마지막 행에 기재되어 있고, 딜레이 값은 129ps인 것이 기재되어 있다. 이 패스의 전체 딜레이 값은 리스트의 뒤에서부터 2번째의 칼럼에 기재되어 있으며, 1681ps로 되어 있다. 리스트의 마지막 칼럼에는 타임 사이클인 100Ops와 패스의 전체 딜레이 값과의 차이가 기재되어 있고, 지금의 경우에는 패스의 딜레이 값이 타임 사이클에 비해서 681ps만큼 큰 것이 나타내어져 있다.
그 밖의 리스트의 판독법도 동일하므로 설명을 생략한다.
도 8은 논리 블록의 타이밍 조건을 입력 핀 및 출력 핀에서의 신호 도달 시각으로 변환한 논리 블록의 타이밍 버지트를 작성하는 방법을 설명하는 도면이다.
아래에 서술한 바와 같이 입력 핀에 Arrival time(도착 시간), 출력 핀에 Departure time(출력 시간)을 작성한다. 작성하는 방법은 각 핀에서 뒤쪽으로 패스를 트레이스하여 내부 기억 소자까지의 최대 딜레이를 계산하는 것에 의해 결정된다.
도착 시간 및 출력 시간의 모델에 있어서의 설정 포맷 예로서는 다음과 같이 한다.
입력 핀의 포맷
input_delay 통과 시각 입력 핀 이름
통과시각은 입력 핀을 통과하는 패스 중에서 가장 딜레이 값이 큰 패스의 통과 시각이 설정된다.
입력 핀 이름은 처리 대상의 블록의 입력 핀 이름이다.
출력 핀의 포맷
output_delay 통과시각 출력 핀 이름
통과시각은 출력 핀을 통과하는 패스 중에서 가장 딜레이 값이 큰 패스의 3과 시각이 설정된다.
출력 핀 이름은 처리 대상의 블록의 출력 핀 이름이다.
도 8의 하부의 기술 예에서는 블록 1의 입력 핀으로서 A01, A02, A03,···이 있고, 블록 1의 출력 핀으로서 O01, O02,···이 있는 것이 도시되어 있다. 입력 핀으로의 도착 시각은 문제의 핀을 통과하는 패스를 뒤쪽 방향으로 트레이스해 가고, 어느 것인가의 논리 블록의 내부 래치에 이를 때까지 통과한 부분의 딜레이 값을 합계한 것 중에서, 가장 시각이 늦은 패스에 대한 도착 시각이다. 따라서, 입력 핀 A01의 도착 시각은 431.00ps로 되어 있지만, 이것은 어느 것인가의 논리 블록내의 내부 래치로부터의 전파 지연의 최대값이 431.00ps이므로, 해당 내부 래치의 출발 시각을 0으로 하면 시각 431.00ps에는 입력 핀 A01에 도착한다는 의미이다. 마찬가지로, 입력 핀 A02의 도착 시각은 423.00ps이고, 입력 핀 A03의 도착 시각은 531.00ps인 것이 기술되어 있다.
또한, 출력 핀의 출력 시각은 어느 출력 핀에서 해당 논리 블록내를 입력 핀까지 트레이스한 패스 중에서, 가장 딜레이 값의 합계가 큰 패스의 딜레이 값을 입력 핀의 도착 시각에 가산한 것으로 된다. 따라서, 출력 핀 O01의 출력 시각은 802.00ps이고, 출력 핀 O02의 출력 시각은 822.00ps로 기술되어 있다.
또, 블록 1에는 도 8에 도시되어 있는 것 이외의 입력 핀 및 출력 핀이 설치되어 있고, 그 기술이 생략되어 있다. 따라서, 반드시 입력 핀 A01에 신호가 시각 431.00ps에서 입력되고, 출력 핀 O01로부터 시각 802.00ps에서 신호가 출력된다는 의미는 아니다. 상기 도면의 기술은 일반적인 것이며, 출력 핀 O01, O02로부터 출력되는 신호는 입력 핀 A01, A02, A03 중의 어느 하나로부터 들어가 있지 않으면 안된다는 것은 아니다.
도 9는 본 발명의 실시예를 이용하여 각 패스의 딜레이 값을 산출한 결과,딜레이 값이 요구를 만족시키지 않는다고 판명된 경우의 처리 방법을 나타내는 도면이다.
본 실시예에 있어서는 타이밍 버지트(타이밍 어긋남의 허용 범위)의 수정에 대하여, 타이밍 버지트에 모순이 없는지를 점검한다.
즉, 도 9에 도시되는 바와 같이, 사이클 타임 내에 신호의 도착 시각이 포함되지 않은 패스(NG 패스)가 발견되었다고 하면, 이것을 설계자가 화면상에서 인식하여, 각 논리 블록의 입력 및 출력 핀에서의 도착 시각 및 출력 시각을 수동으로 수정한다. 그 결과, 도 9의 하측 도면과 같이 된 것으로 한다. 이 경우, 블록 3의 입력 시각 atime이 전단(前段)의 논리 블록 2의 출력 시각 dtime보다 작은 값으로 되어 있다. 신호가 블록 2에서 블록 3으로 전파되는 경우에, 블록 3의 도착 시각이 블록 2의 출발 시각보다 앞의 시각으로 되는 것은 모순이므로 에러라고 하고, 설계자에게 표시색을 변경하는 등에 의해 경고한다. 또한, 마찬가지로, 블록 3내에 있어서 출력 핀의 출력 시각 dtime이 입력 핀의 도착 시각 atime보다 작은 것은 모순이므로, 에러로 하여, 동일하게 설계자에게 경고한다.
이와 같이, 상술한 실시예의 모델을 설계자의 단말의 스크린에 표시하고, 설계자가 키보드 등을 이용하여 모델의 변경을 가능하게 하는 것에 의해, 효율적으로 설계를 행할 수 있다.
도 10은 타이밍 버지트의 수정 방법의 다른 예를 설명하는 도면이다.
또한, 상술한 바와 같이, 사이클 타임 내에 패스의 도착 시각이 포함되지 않은 경우에, 도착 시각 및 출력 시각을 수정하는 방법으로서, 이하와 같은 방법이있다.
즉, 블록에 걸쳐 있는 기억 소자간의 딜레이가 목표 딜레이에 들어 있지 않은 경우, 목표 딜레이에 포함되도록 비례 배분 계산에 의해 자동적으로 블록의 타이밍 버지트 기술을 작성한다. 이를 위한 계산식이 이하의 식이다.
수학식 1
또한, τ:회로내의 사이클 타임, T(A, Backward):A에서 뒤쪽으로 개시점까지 트레이스했을 때의 max 값, T(A, Forward) :A에서 앞쪽으로 종료점까지 트레이스했을 때의 max값이다. B, C, D에 대해서도 마찬가지이다.
이러한 비례 계산에 의해서 도착 시각, 출력 시각을 조정하는 것에 의해, 각 패스의 부분의 딜레이 값을 균등하게 조정할 수 있다. 이 연산은 계산기로 실행하고, 결과만을 설계자에게 제시하여(예를 들면, 단말의 스크린상에 표시하여), 설계자에게 그 결과를 이용할지의 여부를 판단시켜도 좋다.
또한, 상기와 같이 비례 배분을 행할 때, 이미 설계가 완료되어 있는 블록에 대해서는 변경하지 않도록 고정하게 하면 보다 편리하게 된다. 즉, 각 논리 블록의 내부는 서로 다른 설계자가 설계하는 경우가 많으므로, 다른 설계자로부터 그 사람의 담당 블록의 설계가 종료되었다는 통지를 받은 경우에는, 설계가 종료된 블록에 대해서는 딜레이 값을 변경하기 위해서 재설계를 행하게 하는 것이 아니라, 설계가 종료되어 있지 않은 블록에 타이밍의 어긋남을 흡수시키도록 한다. 이것에의해, 먼저 설계가 종료된 블록부터 고정되어 가므로, 설계가 몇번이나 되돌려지는 일없이 진행하게 된다.
또한, 설계가 종료되어 있지 않은 블록에 타이밍 버지트의 조정을 흡수시키는 경우에도, 상술한 각 블록의 핀에 대해서 비례 배분에 의한 타이밍 버지트를 결정하는 방식을 적용하여, 임의의 블록의 설계가 완료되어 있는 경우 등에는 그 블록을 타이밍 버지트적으로 고정하는 것에 의해, 고정되어 있지 않은 블록에 비례 배분하도록 하면, 타이밍 버지트의 조정을 설계가 종료되어 있지 않은 블록 사이에서 균등하게 조정할 수 있어, 1개의 블록에 타이밍 버지트의 흡수를 행하게 하는 바와 같은 부하의 불균등을 회피할 수 있다.
도 l1은 목표 도달도를 가미하면서 타이밍 버지트를 조정하는 방법을 설명하는 도면이다.
상술한 바와 같이, 타이밍 버지트의 비례 배분을 행할 때, 각 블록마다의 목표 도달도를 표시하고, 그것을 가미하면서 조정한다. 각 블록의 목표 도달도는 각각 설계 단계에 따라서 다르다. 블록 1을 조정하고 싶지만 관련된 블록 2, 3에 어느 만큼의 딜레이의 허용이 있는지 모르기 때문에 조정 상태를 알 수 없는 경우가 많다. 이 경우, 블록 2 및 3의 목표 도달도가 가령 100% 고정이었을 때, 블록 1만으로 딜레이를 조정할 수밖에 없다. 이 때, 관련된 다른 블록의 목표 도달도가 표시되면, 자신과 다른 것으로 조정을 배분하는 것을 명료하게 알 수 있다. 이러한 목표 도달도를 가미하면서 비례 배분을 행한다.
이 목표 도달도는 각 블록의 설계자가 자신의 설계 작업이 어느 정도까지 진행하고 있는지를 개략적인 퍼센티지로 나타낸다. 이 경우, 목표 달성도의 값을 타이밍 버지트의 조정에 사용한다. 즉, 비례 배분에 의해 딜레이를 조정하는 경우, 목표 달성도가 100%인 경우에는 조정량은 0으로 하지만, 예를 들면 임의의 블록과 다른 블록이 목표 달성도가 30%와 50%인 경우에는 5:3의 가중치를 부여하여 비례 배분하는 것 등이다.
도 11에는 여러 가지 경우의 상기 방법의 설명이 되어 있다.
케이스 1은 블록 2와 3의 목표 달성도가 100%이므로, 블록 1∼블록 3에 이르는 패스에 있어서 딜레이를 조정할 수 있는 것은 블록 1뿐이며, 블록 1내에서 딜레이를 조정하지 않으면 안된다. 케이스 2는 블록 3의 목표 달성도가 100%이고, 딜레이의 조정이 불가능하지만, 블록 1은 목표 달성도가 50%, 블록 2는 목표 달성도가 30%이다. 따라서, 딜레이의 조정은 블록 1과 블록 2에서 행하면 된다. 이 경우, 예를 들면 블록 1과 블록 2의 딜레이의 조정 비율을 3:5로 하도록 하면 좋다. 또한, 케이스 3의 경우, 블록 1의 목표 달성도는 50%, 블록 2의 목표 달성도는 30%, 블록 3의 목표 달성도는 40%이므로, 블록 1∼블록 3의 모두를 딜레이 조정에 사용할 수 있다. 이 때의 조정 비율은 1/5 : l/3 : 1/4로 해도 좋고, 또는 각 블록의 목표 달성률이 거의 동일하다고 개략 인식하여, 각 블록이 서로 동등한 비율로 조정하도록 해도 좋다.
또한, 블록의 타이밍 버지트 기술(도착 시각, 출력 시각의 기술)로부터 타이밍 조건 기술(딜레이 값의 기술)로 변환하는 경우에는, 예를 들면 입력 핀 A가 atime=p이고, 출력 핀 X가 dtime=q인 경우, 타이밍 조건 기술에 있어서의 핀 A에서X까지의 딜레이 값을 q-p로서 산출한다.
도 12는 내부 기억 소자의 그룹화에 있어서의 기술 예를 나타내고 있는 도면이다.
본 발명의 실시예에 있어서는, 논리 블록의 타이밍 버지트 기술이나 타이밍 조건 기술에 있어서 내부 기억 소자에 클록 스큐를 부여할 수 있다.
그 때문에, 내부 기억 소자를 그룹화하여, IL1, IL2, ···, ILn과 같은 이름을 부여하고, 그 그룹에 대하여 스큐값을 지정하여, 그 그룹에 속하는 내부 기억 소자를 나열한다.
기술 예로서는 도 12의 예가 있다. 도 12에 있어서는 CZEU2ALU_A라고 하는 모델에 있어서, 내부 기억 소자를 대표하는 내부 래치가 IL1∼IL4까지 기술되어 있다. IL1은 클록 스큐가 0ps이고, IL2는 100ps, IL3은 300ps, IL4는 -10Ops로 설정되어 있다. 또한, 이러한 클록 스큐를 갖는 내부 기억 소자가 각각의 행에 기술되어, 그룹화되어 있다.
도 13은 블록의 타이밍 버지트 기술이나 타이밍 조건 기술에 있어서, 내부 기억 소자에 클록 스큐를 부여하는 방식에서 기술을 간략화하도록 규정을 마련하는 방법을 설명하는 도면이다.
상기 도면의 (1)에 도시되어 있는 바와 같이, 모델 내에서 IL이라는 기호가 생략된 경우에는 클록 스큐를 0으로 취급한다. 상기 도면의 (2)에 도시되는 바와 같이, 「IL」이라는 그룹명을 갖는 그룹은 디폴트의 설정인 것으로 하고, 「ILn」(n은 정수)이라는 이름의 그룹과 「IL」의 그룹의 양쪽에 동일한 내부 기억소자가 포함되어 있는 경우에는, 「ILn」의 설정을 우선하게 한다. 또한, (3)과 같이, 내부 래치 IL의 그룹 이름은 「ILn」이라는 이름으로 하고, 그룹의 기술의 경우, n의 숫자가 큰 그룹이 작은 그룹보다 위에 기술되어 있어도 좋은 것으로 하고, 또한 n은 연속 숫자로 사용하지 않아도, 랜덤한 숫자로 그룹 이름을 지정해도 좋은 것으로 한다. 그리고, (4)와 같이, IL 그룹 이름이 이중 정의된 경우에는 경고를 발하는 것으로 하고, IL 그룹의 기술 순서에서는 후에 기술된 기술문의 설정을 우선한다. 또한, IL 그룹내에서 서로 다른 내부 기억 소자인 FF가 이중으로 정의된 경우에는, 경고를 내는 것으로 하고, 기본적으로는 후에 기술된 그룹 정의문(定義文)을 우선한다.
도 14는 클록 스큐를 고려한 타이밍의 점검 예를 설명하는 도면이다.
블록간 네트리스트와 블록의 타이밍 조건 기술과 상술한 내부 기억 소자의 클록 스큐로부터, 블록에 걸쳐 있는 기억 소자간의 딜레이가 목표 딜레이에 들어 있는지를 점검한다.
예를 들면, 도 14의 상단(上段)의 도면과 같이, 클록 스큐가 0ps인 경우, 타이밍의 조정은 상술한 도착 시각, 출력 시각의 기술로부터 얻어진 패스의 타이밍 시간이 사이클 타임(이 경우, 1OOOps)에 포함되어 있는지의 여부를 판단한다. 또한, 도 14의 중단의 도면과 같이, 출발측의 내부 래치 IL의 클록 스큐가 300ps이고, 도착측의 내부 래치 IL의 클록 스큐가 500ps인 경우에는, 통상의 사이클 타임 1000ps에 300ps와 500ps를 더한 1800ps 사이에 타이밍이 포함되어 있는지를 판단한다. 이것은 출발측의 내부 래치가 300ps 진행해 있고, 도착측의 내부 래치가500ps 지연되어 있기 때문에, 클록에 따른 타이밍을 맞추기 위해서는 사이클 타임에 클록의 스큐를 더한 800ps를 부가한 분만큼 타이밍이 지연되어도 충분한 것이 되기 때문이다. 한편, 도 14의 하단의 도면과 같이, 출발측의 내부 래치는 클록 스큐가 0ps이고, 도착측의 클록 스큐가 200ps인 경우에는, 도착측의 클록이 200ps 진행해 있기 때문에, 신호는 그만큼 빠르게 도착해야만 한다. 따라서, 상기 패스의 타이밍은 사이클 타임 1000ps에서 200ps를 뺀 800ps 이내에 포함되지 않으면 안된다.
이상과 같이 하면, 클록 스큐를 고려한 타이밍의 조정을 행할 수 있다.
도 15는 본 발명의 실시예에 따른 플로어 플랜 상에서의 신호나 패스를 표시하는 방법을 설명하는 도면이다.
본 표시 방법에서는 설계자가 사용하는 단말의 스크린 상에 있어서, 블록도의 신호 이름과 네트리스트의 신호 이름의 대응표를 기초로, 플로어 플랜 상에서 블록도 상의 신호나 임계(critical) 패스를 표시한다.
도 15의 좌측의 블록 다이어그램은 각 기능 블록간의 접속 관계를 나타내는 도면이다. 한편, 도 15의 우측은 디자인 플래너 화면으로서, 실제의 소자나 기능 블록의 LSI 상에서의 배치를 나타내는 도면이다. 설계자가 사용하는 설계용 툴을 인스톨한 단말에서는 이러한 도면이 스크린에 표시되지만, 설계자는 블록 다이어그램에 있어서의 신호나 배선을 표시용으로 기술하는 것에 의해, 디자인 플래너 화면상에 있어서 기술한 신호가 실제로는 어떠한 경로를 통해서 전파되는지, 또는 기술한 배선이 어떠한 경로를 사용해서 배선되고 있는지를 시각적으로 인지할 수 있다.
이것에 의해, 설계한 LSI의 신호의 흐름이나 배선이 설계상 바람직하지 않은 배치로 되어 있지 않은지의 여부를 확인할 수 있다.
도 16은 도 15의 표시에 있어서의 표시 방법의 다른 예를 설명하는 도면이다.
본 발명의 실시예에 있어서는 플로어 플랜 상에서, 신호를 조건에 따라 그룹화하여 그룹에 이름을 붙이고, 지정된 그룹 이름을 기초로 플로어 플랜상에 신호의 흐름을 표시한다.
예를 들면, 도 16의 좌상부의 기술에 도시되어 있는 바와 같이, inter-block은 블록간의 배선을 나타내고, Length≥800Ogrid는 배선의 길이가 디자인 플래너 화면상의 그리드의 수로서 8000그리드 이상의 길이를 갖는 것을 표시하는 것을 지시하는 것으로서, 이 그룹에 A라는 그룹 이름을 붙이고 있다. Inter-block(p,q)는 p와 q로 지정되는 블록간을 나타내며, Bus_A*는 이 이름의 버스에 의해서 접속되어 있는 블록을 나타내고, 이것을 B라는 그룹 이름으로 그룹화하고 있다. Inter-block&&Length≥3000grid⇒C도 마찬가지이다. 이들의 그룹화에 의한 표시예가 도 16의 우상부의 도면이다.
예를 들면, 그룹 A와 같이 배선 길이가 긴 경우, 설계한 직후에서는 통상 매우 복잡한 경로를 트레이스하여 배선되어 있을 가능성이 높다. 따라서, 배선 길이가 긴 배선을 디자인 플래너 화면상에 표시시키는 것에 의해, 배선의 최적화를 고려하는데 있어 매우 유익한 시각적 정보가 얻어진다.
또한, 도 16의 하단에 도시하는 바와 같이, 신호를 조건에 따라 그룹화할때, 리피터(repeater) 셀이 없는 것으로 하여 조건을 판정한다.
이것은 이전에 설계한 LSI의 설계 정보를 자원으로서 재이용하면서, 새로운 LSI의 설계를 하는데 유효하다. 즉, 이전에 설계한 LSI의 설계 정보는 완성품의 설계 정보이므로, 많은 장소에 리피터가 삽입되어 있다. 그러나, 새롭게 LSI를 설계하는 경우에는 이전의 LSI와 다른 기능의 LSI로 되므로, 실장되는 논리도 다르며, 배선도 다른 것으로 된다. 따라서, 타이밍의 조정 등에 사용되는 리피터를 어는 곳에 배치하면 좋은가에 대해서는 이전의 LSI와는 전혀 다른 것으로 되는 것이 통상이다. 따라서, 딜레이 값을 견적내기 위해서는 리피터가 없는 상태에서 설계를 시작한 쪽이 효율이 좋으므로, 이전의 LSI의 설계 정보를 자원으로서 재이용하는 경우, 리피터가 없는 것으로 하여 신호 조건 등, 상술한 표시를 위한 조건을 판정해서 표시시키는 것은 유효하다.
이 경우는 도 16의 좌상부의 도면과 같이, 통상은 「Consider-repeater의 경우」라고 하는 상태에서 신호를 그룹화하지만, 리피터를 무시하는 것이 지정된 경우에는 「Ignore-repeater의 경우」와 같이 리피터가 없다고 가정하여 조건의 판정을 행하고, 신호의 그룹화를 행하도록 한다.
리피터가 설계 정보에 포함되어 있지만, 표시할 때에 리피터의 존재를 무시하는 경우의 개념을 도시한 도면이 도 16의 하부의 도면이다. 리피터를 고려하는 경우와 고려하지 않는 경우에서는 딜레이의 크기가 달라지므로, 해당 표시를 보고 적절히 딜레이의 설계를 행하도록 한다.
도 17은 본 발명의 실시예에 따른 타이밍 버지트 설계 장치의 블록 구성도이다.
본 실시예의 타이밍 버지트 설계 장치(10)는 모델·타이밍 조건 기술부(11), 연산부(12), 기존 설계 툴(13) 및 표시 장치(14)로 이루어져 있다. LSI의 설계자인 유저는 기존 설계 툴을 사용하여 LSI의 설계를 행하지만, 이 때, 논리 블록의 구축이나 네트리스트의 작성, 플로어 플랜의 작성에 있어서, 표시 장치(14)에 필요한 정보를 표시하면서 설계를 행한다. 이 때, 본 발명의 실시예에서는 타이밍 버지트를 평가하면서 설계하기 위해, 모델·타이밍 조건 기술부(11)와 모델이나 타이밍 조건 기술의 필요한 연산을 행하는 연산부(12)를 더 구비한다.
모델·타이밍 조건 기술부(11)에서는 유저의 입력에 의해서 도 2에 나타낸 바와 같은 모델의 기술과 그 모델 중의 타이밍 조건의 기술을 해석하고, 모델을 구축함과 동시에 구축된 모델을 표시장치(14)에 표시한다. 또한, 타이밍 버지트의 조정 등의 처리나, 배선의 디자인 플래너 화면상에서의 표시를 행하는 경우에는 연산부(12)에 필요한 연산을 행하게 하여, 그 결과를 표시 장치(14)에 표시시킨다.
LSI 설계자인 유저는 표시 장치(14)의 표시를 보면서 대화식으로(interactively) 설계 작업을 진행시키고, 모델을 이용하여 타이밍 버지트의 조정을 하면서 도 1에 나타낸 바와 같은 설계 단계를 클리어해 간다.
도 18은 본 발명의 실시예에 따른 타이밍 버지트 설계 장치를 프로그램에 의해 실현하는 경우에 필요로 되는 컴퓨터의 하드웨어 환경을 설명하는 도면이다.
CPU(21)는 버스(20)에 의해서 접속된 ROM(22) 또는 RAM(23)으로부터 프로그램을 순차 판독하면서 실행한다. 본 발명의 실시예를 실현하는 프로그램은 하드디스크 등의 기억장치(27)로부터 RAM(23)에 복사된 후, CPU(21)에 의해서 실행되거나, 플로피디스크, CD-ROM, DVD, MO 등의 휴대용 기록 매체(29)에 기록되어 있는 해당 프로그램을 판독 장치(28)에 의해서 판독하고, RAM(23)에 복사해서 CPU(32)가 실행한다. 또한, 휴대용 기록 매체(29)에 기록된 해당 프로그램을 기억 장치(27)에 복사함으로써 컴퓨터에 인스톨하고 나서 실행해도 좋다.
입출력 장치(30)는 키보드, 마우스, 템플릿, CRT 모니터, 액정 모니터 등으로 이루어지고, LSI의 설계자인 유저로부터의 입력을 CPU(21)에 명령으로서 통지하거나, 모델의 구축에 있어서는 타이밍 기술 등의 모델의 기술을 기억 장치(27)에 저장시키거나 한다. 또한, 모델을 그래픽적으로 표시하거나 디자인 플래너 화면을 표시하기 위해서도 사용된다.
통신 인터페이스(24)는 네트워크(25)를 거쳐서 컴퓨터를 정보 제공자(26)와 접속하고, 정보 제공자(26)로부터 해당 프로그램의 다운로드를 가능하게 하는 것이다. 또는, 정보 제공자(26) 대신에, LSI 설계자이고, 다른 논리 블록을 설계하고 있는 유저와 접속하고, 서로 네트워크 환경하에서 해당 프로그램을 실행하여, 설계를 진행시켜도 좋다. 이 경우에는 각 설계자가 설정하는 목표 달성도를 네트워크를 거쳐서 모든 LSI 설계자인 유저에게 통지할 수 있으므로, 설계 환경을 보다 편리하게 할 수 있다.
(부기 1) LSI의 설계에 있어서, 타이밍 버지트를 평가하면서 설계를 진행시키는 방법으로서,
LSI에 편성되는 논리를 설계하고, 이 논리를 논리 블록으로 분할하는 스텝과,
상기 논리 블록의 단자간의 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 스텝과,
상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 스텝과,
그 딜레이 값을 고려하면서, 논리 블록의 설계를 행하는 스텝을 구비하는 것을 특징으로 하는 타이밍 버지트 설계 방법.
(부기 2) 상기 논리 블록의 단자는 복수의 단자를 그룹화해서 설정되는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 3) 상기 딜레이 값으로서 복수의 딜레이 값이 고려되는 경우, 그 중의 최대값을 대표값으로 설정하는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 4) 상기 딜레이 값을 설정하는 스텝에 있어서, 상기 논리 블록내에 복수의 내부 기억 소자가 있는 경우, 상기 복수의 내부 기억 소자를 1개 이상의 내부 래치로 대표하여 딜레이 값을 설정하는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 5) 상기 논리 블록은 논리 블록 중에 다른 논리 블록을 포함하도록 계층 구조를 갖는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 6) 상기 딜레이 값은 네트리스트로부터 얻어지는 정보를 이용하여 설정되는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 7) 상기 딜레이 값으로부터, 하나의 논리 블록으로의 신호의 도착 시각과 출력 시각을 산출함으로써, 신호 전파 타이밍의 타이밍 조건을 기술하는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 8) 상기 타이밍 조건에 의거하여, 논리 블록에 걸쳐 있는 내부 기억 소자간의 타이밍 버지트가 목표값에 들어 있지 않은 경우, 각 논리 블록의 타이밍 버지트를 비례 배분에 따라서 변경하는 것을 특징으로 하는 부기 7에 기재된 타이밍 버지트 설계 방법.
(부기 9) 상기 타이밍 버지트의 변경에 있어서, 이미 설계를 종료하고 있는 논리 블록의 타이밍 버지트는 변경하지 않는 것을 특징으로 하는 부기 8에 기재된 타이밍 버지트 설계 방법.
(부기 10) 상기 각 논리 블록의 설계의 달성도를 고려하여 각 논리 블록의 타이밍 버지트를 변경하는 것을 특징으로 하는 부기 8에 기재된 타이밍 버지트 설계 방법.
(부기 11) 상기 딜레이 값 이외에, 내부 기억 소자에 클록 스큐를 부여하고, 상기 딜레이 값과 클록 스큐를 고려하여 상기 논리 블록의 설계를 행하는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 12) 상기 논리 블록에 지정되는 신호 이름과 네트리스트의 신호 이름으로부터 디자인 플래너 화면상에 신호의 흐름 또는 패스의 배치를 표시하는 것을 특징으로 하는 부기 1에 기재된 타이밍 버지트 설계 방법.
(부기 13) 상기 신호의 흐름 또는 패스의 배치는 신호 또는 패스를 조건에따라 그룹화하여 지정함으로써 표시되는 것을 특징으로 하는 부기 12에 기재된 타이밍 버지트 설계 방법.
(부기 14) 상기 신호 또는 패스를 표시시킬 때의 상기 조건의 판단에 있어서, 패스상에 리피터가 없다고 간주하여 상기 조건을 판단하는 것을 특징으로 하는 부기 13에 기재된 타이밍 버지트 설계 방법.
(부기 15) LSI의 설계에 있어서, 타이밍 버지트를 평가하면서 설계를 진행하는 장치로서,
LSI에 편성되는 논리를 설계하고, 이 논리를 논리 블록으로 분할하는 수단과,
상기 논리 블록의 단자간의 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 수단과,
상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 수단과,
상기 딜레이 값을 고려하면서 논리 블록의 설계를 행하는 수단을 구비하는 것을 특징으로 하는 타이밍 버지트 설계 장치.
(부기 16) LSI의 설계에 있어서, 타이밍 버지트를 평가하면서 설계를 진행하는 방법으로서,
LSI에 편성되는 논리를 설계하고, 이 논리를 논리 블록으로 분할하는 스텝과,
상기 논리 블록의 단자간의 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 스텝과,
상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 스텝과,
상기 딜레이 값을 고려하면서 논리 블록의 설계를 행하는 스텝을 구비하는 것을 특징으로 하는 타이밍 버지트 설계 방법을 컴퓨터에 실행시키는 프로그램.
(부기 17) LSI의 설계에 있어서, 타이밍 버지트를 평가하면서 설계를 진행하는 방법으로서,
LSI에 편성되는 논리를 설계하고, 이 논리를 설계 블록으로 분할하는 스텝과,
상기 논리 블록의 단자간의 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 스텝과,
상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 스텝과,
상기 딜레이 값을 고려하면서 논리 블록의 설계를 행하는 스텝을 구비하는 것을 특징으로 하는 타이밍 버지트 설계 방법을 컴퓨터에 실행시키기 위한 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
본 발명에 의하면, 타이밍 버지트의 평가를 실행하면서 LSI의 설계를 순차 진행하므로, 상세한 설계를 한 후에, 신호 전송 타이밍이 요구되는 조건을 만족시키지 않는 경우를 저감할 수 있고, 따라서 LSI의 설계 단계의 재실행을 저감하여,효율적으로 코스트를 억제해서 LSI의 설계를 진행할 수 있다.

Claims (5)

  1. LSI의 설계에서, 타이밍 버지트를 평가하면서 설계를 진행시키는 방법으로서,
    LSI에 편성되는 논리를 설계하고, 이 논리를 논리 블록으로 분할하는 스텝과,
    상기 논리 블록의 단자간 딜레이 값을 설정하고, 신호 지연의 모델을 구축하는 스텝과,
    상기 논리 블록간의 접속 관계와 함께, 상기 설정된 딜레이 값을 설계자에게 표시하는 스텝과,
    그 딜레이 값을 고려하면서, 논리 블록의 설계를 행하는 스텝을 구비하는 것을 특징으로 하는 타이밍 버지트 설계 방법.
  2. 제 1항에 있어서,
    상기 딜레이 값으로서 복수의 딜레이 값이 고려되는 경우, 그 중의 최대값을 대표값으로 설정하는 것을 특징으로 하는 타이밍 버지트 설계 방법.
  3. 제 1항에 있어서,
    상기 딜레이 값을 설정하는 스텝에서, 상기 논리 블록내에 복수의 내부 기억 소자가 있는 경우, 상기 복수의 내부 기억 소자를 1개 이상의 내부 래치로 대표하여 딜레이 값을 설정하는 것을 특징으로 하는 타이밍 버지트 설계 방법.
  4. 제 1항에 있어서,
    상기 논리 블록은 논리 블록 중에 다른 논리 블록을 포함하도록 계층 구조를 갖는 것을 특징으로 하는 타이밍 버지트 설계 방법.
  5. 제 1항에 있어서,
    상기 딜레이 값은 네트리스트로부터 얻어지는 정보를 이용하여 설정되는 것을 특징으로 하는 타이밍 버지트 설계 방법.
KR1020010079464A 2001-07-12 2001-12-14 타이밍 버지트 설계 방법 KR100704577B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001211556A JP3953756B2 (ja) 2001-07-12 2001-07-12 タイミングバジェット設計方法
JPJP-P-2001-00211556 2001-07-12

Publications (2)

Publication Number Publication Date
KR20030006900A true KR20030006900A (ko) 2003-01-23
KR100704577B1 KR100704577B1 (ko) 2007-04-06

Family

ID=19046845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010079464A KR100704577B1 (ko) 2001-07-12 2001-12-14 타이밍 버지트 설계 방법

Country Status (5)

Country Link
US (1) US6684374B2 (ko)
EP (1) EP1276060B1 (ko)
JP (1) JP3953756B2 (ko)
KR (1) KR100704577B1 (ko)
DE (1) DE60116972T2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL159223A0 (en) * 2001-06-08 2004-06-01 Magma Design Automation Inc Method for generating design constraints for modules in a hierarchical integrated circuit design system
US6836874B2 (en) * 2002-06-26 2004-12-28 Agilent Technologies, Inc. Systems and methods for time-budgeting a complex hierarchical integrated circuit
JP2005149273A (ja) * 2003-11-18 2005-06-09 Matsushita Electric Ind Co Ltd 半導体集積回路のフロアプラン装置及びフロアプラン方法
US7213223B2 (en) * 2004-11-19 2007-05-01 Lsi Logic Corporation Method of estimating a total path delay in an integrated circuit design with stochastically weighted conservatism
US7263678B2 (en) * 2005-03-15 2007-08-28 Lsi Corporation Method of identifying floorplan problems in an integrated circuit layout
JP4294000B2 (ja) * 2005-03-24 2009-07-08 富士通株式会社 クロック遅延解析装置、クロック遅延解析方法、クロック遅延解析プログラム、および記録媒体
WO2007017933A1 (ja) * 2005-08-09 2007-02-15 Fujitsu Limited 遅延時間表示方法、その装置、及びプログラム
US8504978B1 (en) * 2009-03-30 2013-08-06 Cadence Design Systems, Inc. User interface for timing budget analysis of integrated circuit designs
US9098661B1 (en) * 2008-12-10 2015-08-04 The Mathworks, Inc. Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system
JP5564231B2 (ja) * 2009-10-16 2014-07-30 株式会社日立情報通信エンジニアリング Lsi設計方法及びプログラム
US8397197B1 (en) * 2011-05-25 2013-03-12 Applied Micro Circuits Corporation Integrated circuit module time delay budgeting
CN105447215B (zh) * 2014-09-24 2018-07-27 瑞昱半导体股份有限公司 数字电路设计方法及相关的系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095454A (en) * 1989-05-25 1992-03-10 Gateway Design Automation Corporation Method and apparatus for verifying timing during simulation of digital circuits
US5222030A (en) * 1990-04-06 1993-06-22 Lsi Logic Corporation Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof
US5648913A (en) * 1993-03-29 1997-07-15 Xilinx, Inc. Frequency driven layout system and method for field programmable gate arrays
US5903472A (en) * 1996-10-25 1999-05-11 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis by selectively displaying signal paths based on slack time calculations and integrated circuit made using same
JP3662149B2 (ja) * 1998-10-08 2005-06-22 株式会社東芝 リピータ・セルの配置方法、その配置装置、および記録媒体
JP2000187676A (ja) * 1998-12-22 2000-07-04 Mitsubishi Electric Corp 論理合成装置および論理合成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001142922A (ja) * 1999-11-15 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
US6415426B1 (en) * 2000-06-02 2002-07-02 Incentia Design Systems, Inc. Dynamic weighting and/or target zone analysis in timing driven placement of cells of an integrated circuit design

Also Published As

Publication number Publication date
DE60116972D1 (de) 2006-04-13
DE60116972T2 (de) 2006-08-10
EP1276060A3 (en) 2003-09-24
US6684374B2 (en) 2004-01-27
JP3953756B2 (ja) 2007-08-08
KR100704577B1 (ko) 2007-04-06
US20030014720A1 (en) 2003-01-16
JP2003030267A (ja) 2003-01-31
EP1276060B1 (en) 2006-02-01
EP1276060A2 (en) 2003-01-15

Similar Documents

Publication Publication Date Title
US8839171B1 (en) Method of global design closure at top level and driving of downstream implementation flow
US9117044B2 (en) Hierarchical verification of clock domain crossings
US5870308A (en) Method and system for creating and validating low-level description of electronic design
US6216252B1 (en) Method and system for creating, validating, and scaling structural description of electronic device
US6272668B1 (en) Method for cell swapping to improve pre-layout to post-layout timing
US5572436A (en) Method and system for creating and validating low level description of electronic design
US6324678B1 (en) Method and system for creating and validating low level description of electronic design
US5557531A (en) Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US8893070B2 (en) Method for repeated block modification for chip routing
US20090271750A1 (en) Timing constraint merging in hierarchical soc designs
JP2004171576A (ja) 高速チップ管理システム
KR100704577B1 (ko) 타이밍 버지트 설계 방법
Hung et al. Challenges in large FPGA-based logic emulation systems
WO2003048995A1 (en) Method of concurrent visualization of process module outputs
US20040025136A1 (en) Method for designing a custom ASIC library
WO1999009497A1 (fr) Procede d'extraction de caracteristiques de synchronisation de circuits a transistors, support de stockage stockant une bibliotheque de caracteristiques de synchronisation, procede de conception de lsi et procede d'extraction par grille
US20090254875A1 (en) Proactive routing system and method
JP5444985B2 (ja) 情報処理装置
US9501607B1 (en) Composite views for IP blocks in ASIC designs
JP4053969B2 (ja) 半導体集積回路の設計装置および半導体集積回路の設計方法
US6701496B1 (en) Synthesis with automated placement information feedback
US6983443B2 (en) System and method for placing clock drivers in a standard cell block
JP5287540B2 (ja) 回路設計装置および回路設計プログラム
Kahng et al. Timing closure
JP2014170575A (ja) 回路設計装置および回路設計プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120322

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130321

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee