JP2000268080A - 静的・動的タイミング検証方法及び記憶媒体 - Google Patents

静的・動的タイミング検証方法及び記憶媒体

Info

Publication number
JP2000268080A
JP2000268080A JP11090558A JP9055899A JP2000268080A JP 2000268080 A JP2000268080 A JP 2000268080A JP 11090558 A JP11090558 A JP 11090558A JP 9055899 A JP9055899 A JP 9055899A JP 2000268080 A JP2000268080 A JP 2000268080A
Authority
JP
Japan
Prior art keywords
circuit
clock
timing verification
static
dynamic timing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP11090558A
Other languages
English (en)
Other versions
JP2000268080A5 (ja
JP4176906B2 (ja
Inventor
Masaaki Tanimoto
匡亮 谷本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP09055899A priority Critical patent/JP4176906B2/ja
Priority to US09/482,877 priority patent/US6658635B1/en
Publication of JP2000268080A publication Critical patent/JP2000268080A/ja
Publication of JP2000268080A5 publication Critical patent/JP2000268080A5/ja
Application granted granted Critical
Publication of JP4176906B2 publication Critical patent/JP4176906B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

(57)【要約】 【課題】 同期・非同期混在回路のタイミング検証を能
率化する。 【解決手段】 従来、同期・非同期混在回路の同期回路
には静的タイミング検証、非同期回路には動的タイミン
グ検証を割り当てていた。これを更に進め、前記同期回
路を周期回路()と非周期回路()に、前記非同期
回路を周期回路()と非周期回路()に分類し、同
期回路の周期回路()及び非同期回路の周期回路
()には静的タイミング検証を施し、同期回路の非周
期回路()及び非同期回路の非周期回路()には動
的タイミング検証を施す。これにより同期回路のハザー
ドを考慮したタイミング検証が可能になり、また、仮想
的にクロックとみなせる信号を受けて動作される回路に
は静的タイミング検証を施すことにより、検証動作を能
率化することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電気・電子回路
(電気回路、半導体集積回路それ自体はもとより半導体
集積回路を実装した電子回路)の設計検証技術に係り、
設計検証の対象回路(被検証回路)に対して静的検証と
動的検証とを割り振る静的・動的タイミング検証分割、
そして、それによるタイミング検証方法、並びにその検
証方法をコンピュータに実行させるためのプログラムを
格納した記憶媒体に関するものである。
【0002】
【従来の技術】電気・電子回路のタイミング検証にはそ
の処理効率を向上させるために動的タイミング検証の代
わりに若しくは動的タイミング検証と共に静的タイミン
グ検証を採用することができる。
【0003】前記静的タイミング検証と動的タイミング
検証とを採用す検証フローとして図2に記載のフローを
挙げることができる。図2において、21は検証対象と
する回路接続情報、22は入出力信号のタイミング指定
とクロック指定情報、23は従来の静的タイミング検証
装置、24は信号情報(パターン)、25は動的タイミ
ング検証装置、26は回路設計フェーズを示す。静的タ
イミング検証装置23で行われるような静的タイミング
検証では、基本的に、シミュレーションによる各回路要
素の信号情報を必要とせず、22で示されるような入出
力信号のタイミング指定とクロック指定を行なうこと
で、ラッチ間で最も遅いパス(クリティカルパス)を見
つけ、このクリティカルパスにおける信号伝達がクロッ
ク周期に比べて間に合うかどうかのセットアップタイミ
ング検証を行う。更に、静的タイミング検証では、ラッ
チ間で最も速いパスを見つけ、同じクロックのタイミン
グで次のデータを取り込まないかのホールドタイミング
検証を行なう。前記動的タイミング検証装置25で行わ
れるような動的タイミング検証では、24で示されるよ
うなシミュレーションによる各回路要素の信号情報(テ
ストパターン)を必要とし、信号情報を21で例示され
るような回路接続情報の入力端子に入力することで、被
検証回路の回路接続を活性化し、シミュレーションを行
なう。
【0004】従来の電気・電子回路のタイミング検証方
式について記載された文献の例として、特開平10−1
98723号、特開平7−44590号及び特開平9−
50449号の各公報が有る。
【0005】特開平10−198723号公報記載の技
術は、電気・電子回路において特定クロック信号に同期
する同期回路と特定クロックが無い或いは特定クロック
信号に同期しない非同期回路を混在して備える回路に対
して静的タイミング検証のみでタイミングを保証しよう
とするものである。
【0006】特開平9−50449号公報は、同期・非
同期混在回路に対して同期回路部分と非同期回路部分を
識別し、識別された同期回路部分に対して静的タイミン
グ検証を行い、非同期回路部分に対して動的タイミング
検証を行う技術を提供する。但し、この公報記載の技術
では、同期回路部分での回路正常動作保証の為のハザー
ド(スパイクノイズ)解析や非同期回路部分への静的タ
イミング検証の適用は行っていない。
【0007】特開平7−44590号公報記載の回路検
証システムは、検証対象回路内にスパイクノイズ発生回
路が存在するか否かを判定しようとするものであるが、
その判定手法は信頼性が低いという不具合が有る。
【0008】
【発明が解決しようとする課題】電気・電子回路のタイ
ミング検証技術において、従来の静的タイミング検証で
は、指定クロックの同期回路に対してだけタイミング検
証を行なっていた。このため個々にクロックを指定する
ことが必須である。更に、同期回路部分での回路正常動
作を保証する為にハザード解析を行う場合には、その個
所を個別に探し出して動的タイミング検証の対象にして
ハザード解析を行わねばならない。ハザード解析に対し
ては、前記特開平7−44590号公報記載の回路検証
システムを用いても不十分である。
【0009】このため、クロック指定ができなければ、
また、ハザードの虞のある回路部分を抽出できなけれ
ば、タイミング検証はできない。
【0010】この点に関し、対象回路の内部に任意のカ
ウンタ回路とみなすことができる回路によって構成され
たクロック生成回路が存在する場合、クロックの指定の
為の情報作成に時間がかかり、また、低電力化の為に近
年使用頻度が増してきたクロックゲートのセットアップ
解析及びホールド解析を行う為の指示情報の作成に時間
がかかるとい問題点がの有ることが本発明者によって明
らかにされた。更に、前記セットアップ解析及びホール
ド解析を行う為の指示情報が正しく行われているかの検
証には、静的タイミング検証結果を解析して疑似エラー
の識別を手作業で行う以外になく、検証工数が多大にか
かるという問題点を有していることが本発明者によって
明らかにされた。
【0011】更に、前述のようにユーザが同期回路部分
のハザード解析を必要とする回路部分を選び出し、それ
については別途の処理を行うという、非能率な作業が要
求されていた。そして、手作業でハザード解析を必要と
する回路部分を検証するのは更に能率が悪く、動的タイ
ミング検証方法を用いる場合でも、動的タイミング検証
装置にハザード解析を必要とする回路部分を教示すると
いう非能率的な作業が必要とされる。特開平7−445
90号公報記載の回路検証システムを用いてもハザード
解析を要する回路部分の指摘は不十分であると考えられ
る。
【0012】本発明の目的は、信頼性の高いタイミング
検証を能率的に行うことができる静的・動的タイミング
検証方法並びにその方法をコンピュータに実行させるた
めのプログラムを格納した記憶媒体を提供することにあ
る。
【0013】本発明の別の目的は、同期・非同期混在回
路のクロック情報の抽出を能率的に行うことができる静
的・動的タイミング検証方法並びにその方法をコンピュ
ータに実行させるためのプログラムを格納した記憶媒体
を提供することにある。
【0014】本発明の更に別の目的は同期・非同期混在
回路におけるハザードの発生可能性を考慮してのタイミ
ング検証を能率的に行うことができる静的・動的タイミ
ング検証方法並びにその方法をコンピュータに実行させ
るためのプログラムを格納した記憶媒体を提供すること
にある。
【0015】本発明のその他の目的は同期・非同期混在
回路におけるクロック情報とハザードの発生可能性とを
考慮して信頼性の高いタイミング検証を能率的に行うこ
とができる静的・動的タイミング検証方法並びにその方
法をコンピュータに実行させるためのプログラムを格納
した記憶媒体を提供することにある。
【0016】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0017】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0018】すなわち、同期・非同期混在回路に対する
従来のタイミング検証は、図37に例示されるように、
同期回路(、)に対しては静的タイミング検証、非
同期回路(、)に対しては動的タイミング検証を割
り当てていた。本発明に係る静的・動的タイミング検証
回路では、図37に例示されるように、同期・非同期回
路に対して周期・非周期の観点を導入する。すなわち、
同期・非同期混在回路を、前記外部クロック端子やクロ
ックツリー等によって一義的に規定されるクロック信号
に同期されるか否かの観点より同期回路と非同期回路に
分類し、前記同期回路を周期回路()と非周期回路
()に、前記非同期回路を周期回路()と非周期回
路()に分類する。そして、同期回路の周期回路
()及び非同期回路の周期回路()には静的タイミ
ング検証を施し、同期回路の非周期回路()及び非同
期回路の非周期回路()には動的タイミング検証を施
す。要するに、同期・非同期混在回路において、外部ク
ロック端子やクロックツリー等によって一義的に規定さ
れるクロック信号に同期動作される同期回路に対して全
てを静的タイミング検証の対象とはせず、ハザード等が
発生する可能性のある回路部分を抽出し、この回路部分
に対しては、同期回路における非周期的な動作回路部分
(非周期回路)として動的タイミング検証を施す。ま
た、同期・非同期混在回路において、外部クロック端子
やクロックツリー等によって一義的に規定されるクロッ
ク信号を用いない若しくはそのようなクロック信号に同
期動作されない非同期回路に対して全てを動的タイミン
グ検証の対象とはせず、ストローブ信号やゲーテッドク
ロック等のように仮想的なクロック信号とみなすことが
可能な信号が供給される回路部分を抽出し、この回路部
分に対しては、非同期回路における周期的な動作回路部
分(周期回路)として静的タイミング検証を施す。上述
の観点より本発明に係る静的・動的タイミング検証方法
を更に詳述する。
【0019】〔1〕静的・動的タイミング検証方法は、
タイミング検証の対象回路に対する静的タイミング検証
又は動的タイミング検証の適用を決める静的・動的タイ
ミング検証分割処部(6)による静的・動的タイミング
検証分割処を有する。この静的・動的タイミング検証分
割処理は、前記対象回路の中のカウンタ手段(周期信号
を生成する回路手段)を識別し、識別されたカウンタ手
段の情報(S1_3)を元に、対象回路の中のクロック
情報を識別する(S6)クロック情報認識処理を有す
る。このクロック情報認識処理はクロック情報認識手段
(11)行なわれる。前記クロック情報認識処理を有す
ることにより、クロック信号が入力される外部入力ピン
へのクロック情報と、セットまたはリセット信号が入力
される外部入力ピンの情報と、対象回路内のカウンタの
同期・非同期セット・リセットまたは同期・非同期ロー
ドに用いるフリップフロップ又はラッチ素子の情報か
ら、内部で生成されたクロックの情報を自動的に認識す
る事ができる。これによって対象回路の同期回路、非同
期回路の識別が容易化される。
【0020】〔2〕上記〔1〕において、前記クロック
情報認識処理は、これによって識別した前記情報を元
に、対象回路の中で同期回路部分と非同期回路部分との
非同期転送経路、更に同期回路部分間の非同期転送経路
を、夫々識別する(S3)。要するに、タイミング検証
不要な回路部分を抽出する。前記非同期転送経路を認識
するので、対象回路内の非周期信号がクロックとして供
給されているフリップフロップ及びラッチを介したデー
タ転送経路(タイミング検証が必要な非同期転送経路)
と、互いに非同期な信号、即ち電源投入時での前記信号
間の位相差が定義不能な信号がクロックとして供給され
ているフリップフロップ及びラッチ間のデータ転送経路
(タイミング検証が不要な非同期転送経路)とを別々の
非同期転送経路として認識する事が出来る。
【0021】〔3〕上記〔1〕において、前記クロック
情報認識処理は、これによって識別した情報を元に、対
象回路の中でゲーテッドクロックを構成している論理素
子を認識する(S4)。そして、認識されたゲーテッド
クロックを構成している論理素子へ2本以上クロック属
性を持つ信号が入力されている場合に(図31、図3
2)、ゲーテッドクロックのセットアップ解析、ホール
ド解析を実行する必要があるかが判定され(S9)、前
記クロック属性を持つ入力信号の中でどの信号を基準と
してゲーテッドクロックのセットアップ解析、ホールド
解析を実行するかが判定される(S10)。これによ
り、静的タイミング検証によるゲーテッドクロックのセ
ットアップ・ホールド解析を行う為の指示情報を作成で
き、網羅的に静的タイミング検証によるゲーテッドクロ
ックのセットアップ・ホールド解析が実行できる。
【0022】〔4〕上記〔1〕において、前記クロック
情報認識処理は、これによって識別した情報を元に、対
象回路の中でゲーテッドクロックを構成している論理素
子を識別し(S4)、図36に例示されるように、前記
識別されたゲーテッドクロックを構成している論理素子
へのクロック属性を持たない入力信号がマルチサイクル
パスか否かの識別を行う(S9)。このように、ゲーテ
ッドクロックを構成している論理素子へのクロック属性
を持たない入力信号のマルチサイクルパスを認識するか
ら、疑似エラーを予め排除した静的タイミング検証によ
るゲーテッドクロックのセットアップ・ホールド解析を
実行することができる。
【0023】〔5〕上記〔1〕において、前記クロック
情報認識処理は、これによって識別した前記情報を元
に、対象回路の中でクロックの選択論理を構成している
論理素子を識別する(S2)。これにより、フリップフ
ロップ及びラッチ間のデータ転送経路の認識において、
前記データ転送経路の両端のフリップフロップ又はラッ
チへ供給されるクロックの組み合わせを予め検証する事
が出来る。
【0024】〔6〕上記〔1〕において、前記静的・動
的タイミング検証分割処理は、更に、クロック情報認識
手段で識別した情報を元に、対象回路の中でクロック以
外の信号がクロック端子に供給されているフリップフロ
ップ及びラッチに対して、仮想的なクロックが定義可能
かを判定し、クロック以外の信号がクロック端子に供給
されているフリップフロップ及びラッチであって、前記
仮想的なクロックが定義可能と判定されたフリップフロ
ップ及びラッチのクロック端子に対して、仮想的なクロ
ックを設定する(S7)。このように、クロック以外の
信号がクロック端子に供給されているフリップフロップ
及びラッチに対して、仮想的なクロックが定義可能かを
判定して仮想クロックを設定するから、非同期回路に対
しても静的タイミング検証が適用できる。換言すれば、
非同期回路を周期回路と非周期回路に分類して、周期回
路に静的タイミング検証を可能にするものである。結果
として、大幅な検証工数の削減が期待できる。しかも、
仮想クロックの設定において、セットアップタイム及び
ホールドタイムが最も厳しくなるように仮想クロックを
設定れば、前記非同期回路に対する静的タイミング検証
を最も厳しい条件下で行う事が可能になる。
【0025】〔7〕上記〔1〕において、前記静的・動
的タイミング検証分割処理は、前記クロック認識処理で
識別した情報を元に、対象回路の中で静的タイミング検
証適用回路部分と動的タイミング検証適用回路部分を識
別する適用回路部分認識処理を有する。この処理は適用
回路部分認識手段(13)で行なわれる。このように、
静的タイミング検証適用回路部分と動的タイミング検証
適用回路部分を識別できるので、同期回路部分でのハザ
ード解析を必要とする回路部分の認識と当該回路部分へ
の動的タイミング検証が実行できる。
【0026】〔8〕上記〔7〕において、前記適用回路
部分認識処理は、前静的タイミング検証適用回路部分と
動的タイミング検証適用回路部分を識別する認識手段で
識別した動的タイミング検証適用回路部分に信号の伝達
経路に沿ってフリップフロップが現われる迄を動的タイ
ミング検証適用回路部分に含めて認識する(S11)。
これにより、動的タイミング検証適用回路部分への静的
タイミング検証適用回路部分からのデータ転送経路にお
ける信号遅延時間を考慮しないで、動的タイミング検証
適用回路部分の動的タイミング検証を実行することがで
きる。
【0027】
〔9〕上記〔7〕において、前記適用回路
部分認識処理は、前静静的タイミング検証適用回路部分
と動的タイミング検証適用回路部分を識別する認識手段
で識別した動的タイミング検証適用回路部分と対象回路
の中の論理階層との対応を識別する(S11)。このよ
うに、動的タイミング検証適用回路部分と対象回路の中
の論理階層との対応を識別するので、動的タイミング検
証実行すべき論理階層を認識できる。したがって、論理
検証時に予め作成されている各論理階層への入力信号情
報を流用して動的タイミング検証を実行する事ができ、
検証工数の削減が期待できる。
【0028】〔10〕上記〔1〕において、前記適用回
路部分認識処理は、これが識別した静的タイミング検証
適用回路部分の入力端子及び出力端子に最も近い前記動
的タイミング検証適用回路部分内のフリップフロップか
ら信号の伝達経路に沿って前記動的タイミング検証適用
回路部分外のフリップフロップ及びラッチを識別し(S
11_8_1)、前記認識手段で識別されたフリップフロ
ップ及びラッチへのクロック信号の伝搬遅延を、対象回
路に遅延情報を与える際に前記動的タイミング検証適用
回路部分と前記動的タイミング検証適用回路部分内のフ
リップフロップ及びラッチへのクロック信号の伝搬遅延
のみを与えるだけで動的タイミング検証が可能となるよ
う調整する(S11_8_2)。これにより、動的タイミ
ング検証適用回路部分に対してのみ遅延情報を与える事
で、対象回路全体の動的タイミング検証を実行でき、且
つ論理検証時に予め作成されている対象回路全体の入力
信号情報の流用ができる。したがって、検証時間と検証
工数の削減が期待できる。
【0029】〔11〕特に、非同期転送経路の識別に着
目した検証方法は、タイミング検証の対象回路に対する
静的タイミング検証又は動的タイミング検証の適用を決
める静的・動的タイミング検証分割処理を有し、前記静
的・動的タイミング検証分割処理は、対象回路の中のカ
ウンタ手段を識別し、識別されたカウンタ手段の情報を
もとに、対象回路の中のクロック情報を識別するクロッ
ク情報認識処理を含む。そして、前記クロック情報認識
処理は、更に、識別した前記情報をもとに、対象回路の
中で同期回路部分と非同期回路部分との非同期転送経
路、更に同期回路部分間の非同期転送経路を、夫々識別
する非同期転送経路抽出処理(S5)を行う。更に、前
記非同期転送経路抽出処理は、非同期転送経路を構成す
る素子を認識するために、クロック端子からデータ出力
端子への素子内パスの通過を認め、外部端子から前記通
過を認めた素子を通るクロックパスを、クロックソース
間を結ぶグラフで表現する処理と、そのグラフのクロッ
クソースを用いる素子の集合を把握する処理(S5_
1)と、前記認識されたグラフ毎に、当該グラフのクロ
ックソースをクロックソースとする素子と当該グラフの
クロックソースをクロックソースとしない素子との間の
データ転送を非同期転送として認識し、非同期転送と認
識された経路の素子が選択論理の前段で異なるグラフの
頂点をクロックソースとするものであれば当該経路を常
時非同期転送と認識し、一方、非同期転送と認識された
経路の素子が選択論理の前後で同一グラフの頂点をクロ
ックソースとするものであれば当該経路は選択論理の選
択状態に応じて非同期転送になると認識する処理(S5
_2)とを含む。
【0030】この非同期転送経路抽出処理は、マルチプ
レクサのようなクロック選択論理毎に分断してクロック
経路を把握する手法に比べて、コンピュータによる演算
データ量が少なく、それ故に、コンピュータによる演算
やテーブル作成のために必要なメモリ容量を小さくする
ことができ、データ処理も速く完了することができる。
【0031】上記した静的・動的タイミング検証方法を
コンピュータに実行させるためのプログラムをフロッピ
ーディスクやCD−ROMなどのコンピュータ読取り可
能な記憶媒体に格納して提供することにより、前記静的
・動的タイミング検証方法を容易に実施することができ
る。
【0032】例えば、そのような記憶媒体は、タイミン
グ検証の対象回路の中のカウンタ手段を識別する第1の
処理と、識別されたカウンタ手段の情報を元に、対象回
路の中のクロック情報を識別する第2の処理と、識別し
たクロック情報を元に、対象回路の中で静的タイミング
検証適用回路部分と動的タイミング検証適用回路部分を
識別する第3の処理と、前記第3の処理結果に基づいて
静的タイミング検証を行う第4の処理と、前記第3の処
理結果に基づいて動的タイミング検証を行う第5の処理
と、をコンピュータに実行させるためのプログラムを記
録して成る。
【0033】本発明による別の観点に立った記憶媒体
は、同期・非同期混在回路における同期回路に非周期的
な誤動作を発生する可能性のある回路部分を抽出し、こ
の回路部分には非周期回路として動的タイミング検証を
施す処理と、前記同期・非同期混在回路における非同期
回路に仮想的なクロック信号とみなすことが可能な信号
が供給される回路部分を抽出し、この回路部分には周期
回路として静的タイミング検証を施す処理と、をコンピ
ュータに実行させるためのプログラムを記録して成る。
【0034】本発明による更に別の観点に立った記憶媒
体は、クロック信号に対する同期・非同期混在回路をに
対して、同期回路を周期回路と非周期回路に、非同期回
路を周期回路と非周期回路に分類し、同期回路の周期回
路及び非同期回路の周期回路には静的タイミング検証を
施し、同期回路の非周期回路及び非同期回路の非周期回
路には動的タイミング検証を施す、夫々の処理をコンピ
ュータに実行させるためのプログラムを記録して成る。
【0035】
【発明の実施の形態】《静的・動的タイミング検証装置
の構成》図1には静的・動的タイミング検証装置の一例
が示される。図1において、5は半導体記憶素子等で構
成される記憶部、1は対象回路の接続情報、即ち対象回
路を構成する素子の種類及び外部入出力ピンを含めたそ
れらの接続状態に関する情報を記憶部5に格納する接続
情報入力部である。2は各素子の遅延情報、タイミング
制約情報等を入力し、記憶部5に格納する遅延情報入力
部である。3はハザード発生防止の為の回路制約、即ち
対象回路内でフリップフロップのクロック端子や非同期
セット・リセット端子等ハザード信号が入力されると回
路の誤動作を引き起こす可能性の高い端子への入力論理
関数を構成する素子の種類及び外部入出力ピンを含めた
それらの接続状態に対する制約情報を記憶部5に格納す
る回路制約入力部である。4は被検証回路に固有の抵抗
・容量・インダクタンスと被検証回路の実装基板上での
配線の抵抗・容量・インダクタンスを入力し、記憶部5
に格納する負荷情報入力部である。
【0036】静的・動的タイミング検証分割部6は、対
象回路の中のクロックツリー、任意のカウンタとみなす
ことができる回路によって構成されたクロック生成回
路、内部で生成されたクロックの波形、クロックゲート
を構成する素子、クロックの選択論理を構成する素子、
及び非同期フリップフロップ・非同期ラッチを認識し記
憶部5に格納する。また、静的・動的タイミング検証分
割部6は、回路構成が回路制約入力部3で与えられたハ
ザード発生防止の為の回路制約を満たすかどうかを検証
し検証結果を記憶部5に格納する。更に静的・動的タイ
ミング検証分割部6は、識別した非同期フリップフロッ
プ・非同期ラッチの中でクロック端子への信号にハザー
ドが発生しないと判定された前記非同期フリップフロッ
プ・非同期ラッチに対してクロック波形を定義し記憶部
5に格納するとともに、対象回路の中での動的タイミン
グ検証適用部分を識別し記憶部5に格納し、識別された
動的タイミング検証適用部分と対象回路内の論理階層と
の対応を認識し記憶部5に格納し、各論理階層内での静
的タイミング検証適用部分と動的タイミング検証適用部
分との構成比を算出し記憶部5に格納する。
【0037】7は静的・動的タイミング検証分割部で識
別された動的タイミング検証適用部分以外の回路部分の
タイミング検証を静的タイミング検証方法にもとづいて
行う静的タイミング検証部である。8は静的・動的タイ
ミング検証分割部6で識別された動的タイミング検証適
用部分のタイミング検証を動的タイミング検証方法にも
とづいて行う動的タイミング検証部である。9は、識別
された配置配線後の配置配線情報を伴うクロックツリー
に対して、負荷情報入力部3で与えられたパッケージ固
有の抵抗・容量・インダクタンスとボード基板上での配
線の抵抗・容量・インダクタンスを付加して回路シミュ
レーションを実行する回路シミュレーション実行部であ
る。
【0038】記憶部5には、更に、静的タイミング検証
部7及び動的タイミング検証部8の双方から、各々のタ
イミング検証結果が書き込まれ、回路シミュレーション
実行部から、回路シミュレーション実行結果が書き込ま
れる。また、図1に示すように、この装置には出力部1
0が備わっており、記憶部5に記憶されるタイミング検
証結果及び回路シミュレーション実行結果が、この出力
部10によって出力される。
【0039】この装置の主要部をなす静的・動的タイミ
ング検証分割部6は、クロック情報抽出部11、回路制
約検証部12、及び回路分割部13を備えている。そし
て、回路分割部13には、動的タイミング検証適用部分
認識部14及び対応論理階層認識部15が備わってい
る。
【0040】クロック情報抽出部11は、対象回路の外
部クロックピンからクロックの波形等の情報を伝搬する
事と、対象回路の中の任意のカウンタにより構成された
クロック生成回路を認識し、クロックゲートを構成する
素子、クロックの選択論理を構成する素子を認識し、シ
ミュレーションを実行する事で内部で生成されたクロッ
クの波形を認識する事により、クロック情報付き対象回
路情報及び非同期フリップフロップ・非同期ラッチ情報
を回路制約検証部8及び記憶部5に出力する。また、記
憶部5に記憶されるクロック情報付き対象回路情報及び
非同期フリップフロップ・非同期ラッチ情報が、出力部
10によって出力される。
【0041】回路制約検証部12は、回路構成が回路制
約入力部3で与えられたハザード発生防止の為の回路制
約を満たすかどうかを検証する事により、回路制約検証
結果を回路分割部13及び記憶部5に出力し、更に識別
した非同期フリップフロップ・非同期ラッチの中でクロ
ック端子への信号にハザードが発生しないと判定された
前記非同期フリップフロップ・非同期ラッチに対してク
ロック波形を定義する事により、非同期クロック波形情
報を回路分割部13及び記憶部5に出力する。また、記
憶部5に記憶される回路制約検証結果及び非同期クロッ
ク波形情報が、出力部10によって出力される。
【0042】動的タイミング検証適用部分認識部14
は、対象回路の中での静的タイミング検証適用部分と動
的タイミング検証適用部分とを識別し、静的タイミング
検証適用部分情報即ち静的タイミング検証適用回路部分
に関する情報を記憶部5に出力し、動的タイミング検証
適用部分情報即ち動的タイミング検証適用回路部分に関
する情報を対応論理階層認識部15及び記憶部5に出力
する。
【0043】対応論理階層認識部15は、識別された動
的タイミング検証適用部分と対象回路内の論理階層との
対応を認識する事により、対応論理階層情報を記憶部5
に出力し、各論理階層内での静的タイミング検証適用部
分と動的タイミング検証適用部分との構成比を算出する
事で、論理階層構成比情報を記憶部5に出力する。ま
た、記憶部5に記憶される対応論理階層情報及び論理階
層構成比情報が、出力部10によって出力される。この
構成比は、設計資産としての再利用可能性の評価に利用
される。
【0044】静的タイミング検証部8は、記憶部5に出
力された静的タイミング検証適用部分情報に基づいてタ
イミング検証を行い、その結果を記憶部5に出力する。
【0045】動的タイミング検証部8は、記憶部5に出
力された動的タイミング検証適用部分情報に基づいてタ
イミング検証を行い、その結果を記憶部5に出力する。
【0046】回路シミュレーション実行部9は、記憶部
5に出力されたクロック情報付き対象回路情報に基づい
て配置配線後結果から配置配線情報を伴うクロック情報
付き対象回路情報を認識し、記憶部5に格納されたパッ
ケージ固有の抵抗・容量・インダクタンスとボード基板
上での配線の抵抗・容量・インダクタンスに基づいて回
路シミュレーションを実行し、その結果を記憶部5に出
力する。
【0047】《静的・動的タイミング検証装置の処理手
順》図4は、図1の装置による処理の手順を示すフロー
チャートである。図4に示す様に、処理が開始される
と、まずステップS1において対象回路の中のクロック
情報の認識を行う。
【0048】次に、ステップS1において抽出したクロ
ック情報を元に、ステップS2、S3、S4それぞれに
おいて、クロックの選択論理を構成する論理素子、周期
的でない信号がクロック端子に供給されているフリップ
フロップやラッチ、クロックゲートを構成している論理
素子を認識する。尚、この明細書に添付した図面におい
てFFはフリップフロップ、Latchはラッチを意味
する。
【0049】ステップS5では、クロック情報とクロッ
クの選択論理を構成する論理素子の情報を元に、互いに
非同期なクロックが供給されているフリップフロップや
ラッチ間のデータ転送経路を認識する。
【0050】ステップS6では、クロック情報とクロッ
クの選択論理を構成する論理素子の情報を元に、クロッ
クを生成するかクロックが伝搬する素子のみの回路の接
続情報を作成し、クロックの生成箇所の絞り込を行った
後、論理シミュレータで新たに構成した回路の接続情報
をシミュレーションする事で、クロックの生成箇所での
クロック波形を認識する。
【0051】上記ステップS1〜S6の処理は、クロッ
ク情報抽出部11で実行される。
【0052】ステップS7では、クロック波形情報を元
に、周期的でない信号がクロック端子に供給されている
フリップフロップやラッチに対して、クロック波形候補
を定義する。
【0053】ステップS8では、クロックゲートを構成
している論理素子の回路構成と、トライステートバッフ
ァのイネーブル端子へのパス上に現われる論理素子の回
路構成が特定の条件を満たしているか調べる。
【0054】ステップS9では、クロック波形情報とク
ロックゲートを構成している論理素子の情報を元に、ク
ロックゲート構成している論理素子へのクロック以外の
入力信号経路がマルチサイクルパスである可能性がある
かの判定を行う。
【0055】上記ステップS7〜S9の処理は、回路制
約検証部12で実行される。
【0056】ステップS10では、クロック波形情報、
クロックゲートを構成している論理素子の情報、上記マ
ルチサイクルパスの情報を元に、静的タイミング検証装
置により、ゲーテッドクロック解析を実行する。このス
テップS10は、静的タイミング検証部7で実行され
る。
【0057】最後にステップS11では、回路構成違
反、ゲーテッドクロック解析でのタイミング違反箇所、
クロックが定義出来なかった周期的でない信号がクロッ
ク端子に供給されているフリップフロップやラッチの情
報を元に動的タイミング検証の適用箇所を決定する。こ
のステップS11は、回路分割部13で実行される。
【0058】図5は、図1の装置によって実行される処
理手順のステップS1の内部処理の流れを全体的に示す
フローチャートである。図3に示す様に、処理が開始さ
れると、まずステップS1_1において対象回路中の全
ネットに対して非周期属性を設定する。
【0059】次に、ステップS1_2において外部クロ
ックピンからのトレースを行い、2入力以上の素子の入
力端子に到達する迄クロック情報を伝搬させる。このよ
うに、トレースを実行したネットに対して周期属性を設
定する。そのような2入力以上の素子の入力に至るまで
のネットには周期性があるのは当然だからである。
【0060】ステップS1_3においてカウンタ候補の
認識を行い、ステップS1_4において、入力信号ネッ
トの属性が変化した素子の出力信号ネットの属性演算を
実行し、演算結果の属性を当該素子の出力信号ネットに
設定する。
【0061】次にステップS1_5で、認識したカウン
タ候補を構成するフリップフロップ及びラッチのクロッ
ク端子への入力信号ネットの属性が非周期か否かの判定
を行い、非周期であった場合にはステップS1_7へ、
非周期でなかった場合にはステップS1_6へ処理を移
行する。
【0062】ステップS1_6では、構成するフリップ
フロップ及びラッチのクロック端子への入力信号ネット
の属性が非周期でなかったカウンタ候補をカウンタとし
て認識し直し、当該カウンタを構成する素子の入力・出
力信号ネット全てに周期属性を設定し、ステップS1_
7へ処理を移行する。
【0063】ステップS1_7では、属性が更新したネ
ットがあるか否かを判定し、あった場合にはステップS
1_4へ処理を移行し、なければ処理を終了する。
【0064】図6は、ステップS1_3の内部処理の流
れを示すフローチャートである。ステップS1_3の処
理が開始されると、まずステップS1_3_1において対
象回路中の全てのフリップフロップ及びラッチを認識
し、その集合をFとする。
【0065】次に、ステップS1_3_2において対象回
路の中のフリップフロップ又はラッチを1つ取り出す。
ステップS1_3_3でフリップフロップ及びラッチの集
合T_fと論理素子の集合T_cを空集合に設定する。
【0066】次にステップS1_3_4で、当該端子から
のバックトレースが全て終了したか否かの判定を行い、
終了していた場合にはステップS1_3_10へ、終了し
ていなかった場合にはステップS1_3_6へ処理を移行
する。
【0067】ステップS1_3_5において、ステップS
1_3_2で取り出したフリップフロップ又はラッチのデ
ータ入力端子、セット・リセット端子からバックトレー
ス実行する。バックトレースとは、起点の端子に供給さ
れる信号とは逆方向に信号経路を辿ることである。
【0068】ステップS1_3_6では、バックトレース
実行時に到達したネットの属性を識別し、カウンタ属性
であった場合はステップS1_3_8へ、アンカウンタ属
性であった場合にはステップS1_3_9へ、カウンタ属
性でもアンカウンタ属性でもなかった場合にはステップ
S1_3_7へ処理を移行する。カウンタ属性やアンカウ
ンタ属性とは、ステップS1_3_10において設定され
る属性のことである。
【0069】ステップS1_3_7では、バックトレース
の到達先が電源・グランド、外部システムリセット端
子、ステップS1_3_2で取り出したフリップフロップ
又はラッチのデータ出力端子、ユーザ指定のフリップフ
ロップ又はラッチのデータ出力端子、或いはフリップフ
ロップ又はラッチと論理素子の成すループの何れかであ
るか否かを判定し、何れかであった場合にはステップS
1_3_8へ処理を移行し、なければステップS1_3_9
へ処理を移行する。
【0070】ステップS1_3_8では、バックトレース
実行中に通過したフリップフロップ及びラッチの集合を
T_f1とし、集合T_fをT_f∪T_f1と置き換え、
バックトレース実行中に通過した論理素子の集合をT_
c1とし、集合T_cをT_c∪T_c1と置き換えた
後、ステップS1_3_4へ処理を移行する。ステップS
1_3_5、S1_3_6、S1_3_7、及びS1_3_8の
繰り返しにより得た集合T_fとT_cの和集合がカウン
タ候補である。
【0071】ステップS1_3_9では、バックトレース
実行中に通過したフリップフロップ及びラッチの集合を
T_f2とし、集合T_fをT_f2と置き換え、バック
トレース実行中に通過した論理素子の集合をT_c2と
し、集合T_cをT_c2と置き換えた後、ステップS1
_3_10へ処理を移行する。
【0072】次にステップS1_3_10において、集合
FをF−T_fと置き換え、S1_3_4からの分岐で設
定されたT_f、T_cのネットにはカウンタ属性を設定
し、S1_3_9からの分岐で設定されたT_f、T_cの
ネットにはアンカウンタ属性を設定する。
【0073】ステップS1_3_11において、集合Fが
空か否かを判定し、空でない場合は処理をステップS1
_3_2へ移行し、空の場合は処理を終了する。このよう
にして、カウンタ候補となるカウンタ属性の素子が認識
される。
【0074】図7は、ステップS1_4の内部処理の流
れを示すフローチャートである。ステップS1_4の処
理が開始されると、まずステップS1_4_1において対
象回路から入力信号ネットの属性が変化した素子を1つ
取り出す。
【0075】次に、ステップS1_4_2において取り出
した素子が1入力素子か否か判定し、1入力素子の場合
はステップS1_4_3へ、1入力素子でない場合はステ
ップS1_4_4へ処理を移行する。
【0076】ステップS1_4_3で入力信号ネットの属
性を出力信号ネットに設定し、処理をステップS1_4_
9へ移行する。
【0077】ステップS1_4_4では、入力信号ネット
の属性が変化した素子が(1)to_clkフラグの立
っている素子(出力がクロック入力端子に接続される素
子)、(2)to_dataフラグの立っている素子
(出力がデータ入力端子に接続され、to_clkフラ
グの立っていない素子)、(3)FF/Latch、の
何れかを判定し、(1)の場合ステップS1_4_6へ、
(2)の場合ステップS1_4_5へ、(3)の場合ステ
ップS1_4_3へ処理を移行する。
【0078】ステップS1_4_6において、入力信号ネ
ットの属性が変化した素子に対して、入力信号ネットの
属性が全て周期なら出力信号ネットの属性を周期に設定
し、全て非周期ならば出力信号ネットの属性を非周期に
設定し、入力信号ネットに少なくとも1つの周期属性ネ
ットと少なくとも1つの非周期属性ネットがある(例え
ば、少なくとも1入力がクロック信号で、少なくとも1
入力がデータである)のなら、出力信号ネットの属性を
準周期に設定し、入力信号ネットに少なくとも1つの準
周期属性ネットがあり周期属性ネットが1つもないのな
ら出力信号ネットの属性を準周期に設定し、処理をステ
ップS1_4_9へ移行する。
【0079】ステップS1_4_5では、入力信号ネット
の属性が変化した素子の入力信号が帰還路を形成してい
るか否かを判定し、帰還路を形成している場合にはステ
ップS1_4_7へ、そうでなければステップS1_4_6
へ処理を移行する。
【0080】ステップS1_4_7では、入力信号ネット
の属性が変化した素子の入力信号で帰還路を形成してい
るネットの属性が周期か否かを判定し、周期の場合はス
テップS1_4_6へ、そうでなければステップS1_4_
8へ処理を移行する。
【0081】ステップS1_4_8では、当該素子の出力
信号ネットに非周期属性を設定し、処理をステップS1
_4_9へ移行する。
【0082】ステップS1_4_9において、入力信号ネ
ットの属性が変化した素子が空か否かを判定し、空でな
い場合は処理をステップS1_4_1へ移行し、空の場合
は処理を終了する。
【0083】図8は、ステップS1_4_4の内部処理の
流れを示すフローチャートである。ステップS1_4_4
の処理が開始されると、まずステップS1_4_4_1に
おいて対象回路の中のフリップフロップ及びラッチのク
ロック端子とセット・リセット端子のロジックコーンを
取り出す。
【0084】次に、ステップS1_4_4_2において当
該ロジックコーン内の全素子に対してto_clkフラ
グを立てる。ロジックコーンとは、着目素子がフリップ
フロップやラッチのデータ出力端子に至るまでの間に存
在する論理回路を意味する。
【0085】ステップS1_4_4_3では、対象回路の
中の全てのフリップフロップ及びラッチに対して処理を
実行したか否かを判定し、実行されている場合はステッ
プS1_4_4_4へ、実行されていない場合はステップ
S1_4_4_1へ処理を移行する。
【0086】ステップS1_4_4_4において対象回路
の中のフリップフロップ及びラッチのデータ端子とロジ
ックコーンを取り出す。
【0087】次に、ステップS1_4_4_5において当
該ロジックコーン内のto_clkフラグの立っていな
い全素子に対してto_dataフラグを立てる。
【0088】ステップS1_4_4_6では、対象回路の
中の全てのフリップフロップ及びラッチに対して処理を
実行したか否かを判定し、実行されていない場合はステ
ップS1_4_4_1へ処理を移行し、実行されている場
合は処理を終了する。
【0089】尚、図8におけるステップS1_4_4_
4、S1_4_4_5の処理は図38の処理に置き換える
ことが可能である。
【0090】図9は、ステップS1_4_4_1の内部処
理の流れを示すフローチャートである。ステップS1_
4_4_1の処理が開始されると、先ずステップS1_4_
4_1_1において対象回路から対象としている素子の対
象としている端子を認識する。
【0091】次にステップS1_4_4_1_2において当
該端子へ出力信号ネットが接続されている素子を取り出
す。
【0092】ステップS1_4_4_1_3では、前ステッ
プで取り出した素子の入力端子から、フリップフロップ
やラッチのデータ出力端子に到達する迄バックトレース
を実行し、トレースされた素子とその接続情報から成る
回路を構成し、ロジックコーンとして記憶し、処理を終
了する。
【0093】図10は、ステップS3の内部処理の流れ
を示すフローチャートである。ステップS3の処理が開
始されると、ステップS3_1において対象回路から非
周期属性のネットがクロック端子の入力信号となってい
るフリップフロップ及びラッチを認識し、当該素子に対
して動的タイミング検証フラグを立て処理を終了する。
【0094】図11は、ステップS4の内部処理の流れ
を示すフローチャートである。ステップS4の処理が開
始されると、ステップS4_1においてto_clkフラ
グ立っている論理素子で出力信号ネットが周期属性であ
る論理素子にゲーテッドクロック1フラグを立て、ロジ
ックコーン内の論理素子で出力信号ネットが準周期属性
である論理素子にゲーテッドクロック2フラグを立て、
処理を終了する。
【0095】図12は、ステップS2の内部処理の流れ
を示すフローチャートである。ステップS2の処理が開
始されると、先ずステップS2_1において対象回路か
ら合計2本以上の周期属性若くは準周期属性のネットが
入力信号となっているものを認識する。
【0096】次にステップS2_2において、当該素子
にクロック選択論理フラグが立っているか否か判定し、
立っておればステップS2_3へ、立っていなければス
テップS2_4へ処理を移行する。
【0097】ステップS2_3では、クロックの選択論
理フラグの立っている素子がクロック切り替え時にハザ
ードを出力しても問題なく回路が正常動作するよう設計
しているか否かのユーザ確認を行い、設計していない場
合、当該素子に対して動的タイミング検証フラグを立て
る。
【0098】ステップS2_4では、当該素子がクロッ
クの選択論理を構成しているか否かのユーザ確認を行
い、構成している場合はステップS2_5へ、構成して
いない場合はステップS2_6へ処理を移行する。
【0099】ステップS2_6では、対象素子全てをチ
ェックしたか否かを判定し、チェックしていなければ処
理をステップS2_1へ移行し、チェックしていれば処
理を終了する。
【0100】図13は、ステップS2_2の内部処理の
流れを示すフローチャートである。ステップS2_2の
処理が開始されると、先ずステップS2_2_1において
対象回路から合計2本以上の周期属性若くは準周期属性
のネットが入力信号となっている素子を認識する。
【0101】次にステップS2_2_2において、前記認
識した素子が、当該素子がマルチプレクサ等の選択論理
素子であって、周期属性若くは準周期属性のネットが被
選択信号である選択論理を構成しているか否かを判定
し、前記選択論理を構成していれば、ステップS2_2_
3へ、前記選択論理を構成していなければ、ステップS
2_2_4へ処理を移行する。
【0102】ステップS2_2_3では、当該選択論理を
構成する素子にクロックの選択論理フラグを立てる。
【0103】ステップS2_2_4では、当該素子の準周
期入力端子からフリップフロップ又はラッチのデータ出
力端子、或いは、周期属性と非周期属性のネットの両方
が入力端子に接続されている素子に、到達する迄バック
トレースを実行し、トレースされた素子とその接続情報
から成る回路を構成する。
【0104】ステップS2_2_5では、バックトレース
でフリップフロップ又はラッチのデータ出力端子に到達
したか否かを判定し、到達した場合はステップS2_2_
6へ、到達していなかった場合は、ステップS2_2_7
へ処理を移行する。
【0105】次にステップS2_2_6において、当該回
路を構成する各素子にクロックの選択論理候補フラグを
立てる。
【0106】次にステップS2_2_7では、当該回路の
中の各非周期入力信号ネットに対してフリップフロップ
又はラッチのデータ出力端子に到達する迄バックトレー
スを実行し、各々論理関数を構成し、論理和及び論理積
を演算する事で各非周期入力信号の排他性を吟味する。
【0107】ステップS2_2_9では、当該各非周期入
力信号が排他的か否かを判定し、排他的でなければステ
ップS2_2_6へ、排他的であれば処理をステップS2
_2_3へ移行する。
【0108】ステップS2_2_10では、対象素子全て
をチェックしたか否かを判定し、チェックしていなけれ
ば処理をステップS2_2_1へ移行し、チェックしてい
れば処理を終了する。
【0109】図14は、ステップS6の内部処理の流れ
を示すフローチャートである。ステップS6の処理が開
始されると、先ずステップS6_1において対象回路か
らカウンタを構成する素子、ゲーテッドクロック1フラ
グが立っている素子、及びゲーテッドクロック2フラグ
が立っている素子から成る素子のネットリストを構成す
る。
【0110】次にステップS6_2において、クロック
波形生成の為に論理シミュレータでダンプすべきネット
リスト内のポイントを決定する。
【0111】ステップS6_3では、周期属性のネット
が入力されていて準周期属性のネットが出力信号となっ
ている素子で、クロックの選択論理フラグが立っていな
い素子の入力信号を周期属性が伝搬するよう固定する。
【0112】ステップS6_4では、周期属性のネット
が入力されていて準周期属性のネットが出力信号となっ
ている素子で、クロックの選択論理フラグが立っていな
い素子がなくなったか否かを判定し、なくなっている場
合はステップS6_5へ、なくなっていない場合は再び
ステップS6_4へ処理を移行する。
【0113】ステップS6_5では、外部クロック端
子、セット・リセット信号、クロックの選択論理フラグ
の立っている素子への入力パターンを用いて、論理シミ
ュレーションを実行し、ダンプすべきポイントでのシミ
ュレーション結果から波形情報を作成する。
【0114】ステップS6_6では、ゲーテッドクロッ
ク1フラグが立っており入力に非周期属性ネットが接続
されていない素子に対して、最小パルス幅の入力信号を
クロックとして、その他の入力信号が、入力信号を出力
しているフリップフロップまたはラッチに供給されてい
るクロックからみてマルチサイクルパスとなっていない
か判定し、なっていれば何サイクル転送かを認識し、処
理を終了する。尚、このステップS6_6は省略可能で
ある。前記ステップS6_5のシミュレーションで得ら
れた波形情報を利用しても済むからである。
【0115】図15は、ステップS6_2の内部処理の
流れを示すフローチャートである。ステップS6_2の
処理が開始されると、先ずステップS6_2_1において
to_clkフラグの立っている2入力以上の素子を取
り出す。
【0116】次にステップS6_2_2において、当該素
子にゲーテッドクロック1フラグが立っているか否かを
判定し、立っているならステップS6_2_3へ、立って
いないならステップS6_2_4へ処理を移行する。
【0117】ステップS6_2_3では、当該素子の入力
信号と出力信号をゲーテッドクロック解析用ダンプポイ
ントとし、ステップS6_2_7へ処理を移行する。
【0118】ステップS6_2_4において、当該素子に
ゲーテッドクロック2フラグが立っているか否かを判定
し、立っているならステップS6_2_5へ、立っていな
いならステップS6_2_6へ処理を移行する。
【0119】ステップS6_2_5で、当該素子の入力信
号ネットの属性が周期ならその周期属性の入力信号をク
ロック波形生成用のダンプポイントとし、ステップS6
_2_6へ処理を移行する。
【0120】ステップS2_6_8において、対象となる
素子全てのチェックが終了したか否かの判定を行い、終
了している場合はステップS6_2_7へ、終了していな
い場合はステップS6_2_1へ処理を移行する。
【0121】ステップS6_2_6において、to_cl
kフラグの立っている2入力以上の素子へ出力信号が伝
搬しない、周期若くは準周期属性ネットが出力端子に接
続されているフリップフロップ及びラッチの出力信号を
ダンプポイントとし、処理を終了する。
【0122】図16は、ステップS7の内部処理の流れ
を示すフローチャートである。ステップS7の処理が開
始されると、先ずステップS7_1において対象回路か
ら、ロジックコーンへ信号を出力している全てのフリッ
プフロップ及びラッチのクロック端子につながる信号ネ
ットが周期属性若くは準周期属性である、非同期フリッ
プフロップ及び非同期ラッチのクロック端子及びセット
・リセット端子へのロジックコーンを認識する。
【0123】次にステップS7_2において、当該ロジ
ックコーンへ信号を出力している全てのフリップフロッ
プ及びラッチのクロック端子への信号の中で動作周波数
が最大のものが唯1つか否かを判定し、唯1つならステ
ップS7_3へ、2つ以上あるならステップS7_4へ処
理を移行する。
【0124】ステップS7_3では、最大動作周波数の
クロックが供給されているフリップフロップ若くはラッ
チのデータ出力端子に、最大動作周波数の2倍の周期を
持つデューティ50%の反転・非反転クロックを設定
し、信号属性演算S1_4を実行し、クロックゲートの
認識S4を実行した後、処理をS7_5へ移行する。
【0125】ステップS7_5では、新たに定義したク
ロックが供給されるフリップフロップ又はラッチと、こ
のフリップフロップ又はラッチとデータの授受を行うフ
リップフロップ又はラッチとのデータ転送経路に対し
て、セットアップ条件・ホールド条件が最も厳しくなる
クロックは反転なのか非反転なのかを調査し、結果を記
憶部6に格納しておき、処理をステップS7_4へ移行
する。
【0126】ステップS7_4において、非同期フリッ
プフロップ及び非同期ラッチのクロック端子へのロジッ
クコーン全てのチェックが終了したか否かの判定を行
い、終了していない場合は処理をステップS7_1へ移
行し、終了している場合は処理を終了する。
【0127】図17は、ステップS5の内部処理の流れ
を示すフローチャートである。ステップS5の処理が開
始されると、先ずステップS5_1では、データ出力信
号ネットの属性が周期若くは準周期のフリップフロップ
及びラッチのクロック端子からデータ出力端子への素子
内パスの通過を認める。そして、外部クロック端子か
ら、前記素子内通過が認められたところのゲーテッドク
ロック1フラグやゲーテッドクロック2フラグの立って
いる素子のトレースによるクロック情報の伝搬を行い、
クロックの選択論理の情報を元に、起こり得るクロック
の選択論理の出力クロックの組み合わせの数だけ、各ダ
ンプポイント間をつなぐグラフを構成する。
【0128】次にステップS5_2において、各グラフ
に対してグラフの頂点がクロック供給源となっているフ
リップフロップ及びラッチを認識し、当該グラフの頂点
をクロック供給源としないフリップフロップ及びラッチ
とのデータ転送経路があればそれを非同期転送パスとし
て抽出し、処理を終了する。
【0129】図18は、ステップS8の内部処理の流れ
を示すフローチャートである。ステップS8の処理が開
始されると、先ずステップS8_1においてゲーテッド
クロック2フラグが立っている素子を取り出す。
【0130】次にステップS8_2において、当該素子
が2入力素子、或いは3入力素子で後段に1入力素子が
接続されている状態であるかの何れかであるか否かを判
定し、何れでもない場合はS8_4へ、何れかである場
合はS8_3へ処理を移行する。
【0131】ステップS8_4では、当該素子に動的タ
イミング検証フラグを立て、処理をステップS8_3に
移行する。
【0132】ステップS8_3において、全てのゲーテ
ッドクロック2フラグが立っている素子のチェックが終
了したか否かを判定し、未終了の場合は処理をS8_1
へ移行し、終了している場合は処理を終了する。
【0133】尚、上記説明においては、回路制約入力部
3に、クロックゲートの回路構成に対する回路制約とし
て、ゲーテッドクロック2フラグが立っている素子が2
入力素子であるか、或いは3入力素子であり後段に1入
力素子が接続されている状態である事を与えていること
を前提としている。
【0134】図19は、ステップS8の内部処理のもう
1つの流れを示すフローチャートである。ステップS8
の処理が開始されると、先ずステップS8_5において
トライステート素子を取り出す。次にステップS8_6
において、当該素子のイネーブル端子へのロジックコー
ンを認識する。
【0135】ステップS8_7では、当該ロジックコー
ンへの入力信号ネットに周期若くは準周期属性のネット
が存在するか否かを判定し、存在した場合はステップS
8_8へ、存在しなかった場合はステップS8_9へ処
理を移行する。
【0136】ステップS8_8において、回路構成とし
てトライステート素子の出力信号を毎サイクルラッチす
る構成となっていないかユーザ確認し、毎サイクルラッ
チする構成となっている場合は、当該トライステート素
子に動的タイミング検証フラグを立てる。
【0137】ステップS8_9において、当該ロジック
コーン内に2入力以上の論理素子が存在するか否かを判
定し、存在した場合はステップS8_10へ、存在しな
かった場合はステップS8_11へ処理を移行する。
【0138】ステップS8_10で、当該トライステー
ト素子に動的タイミング検証フラグを立て、処理をステ
ップS8_11へ移行する。
【0139】ステップS8_11において、対象回路内
の全てのトライステート素子のチェックが終了したか否
かの判定を行い、終了していない場合は処理をS8_5
へ移行し、終了している場合は処理を終了する。
【0140】尚、上記説明において、回路制約入力部3
に、トライステート素子のイネーブル端子へのロジック
コーンの回路構成に対する回路制約として、当該ロジッ
クコーン内に2入力以上の論理素子が存在してはなら
ず、トライステート素子の出力信号がバスホルダ回路
(バスリピータ回路例えばインバータ2個で構成された
ラッチ回路)による出力信号ネットでのデータ保持を行
わなくてもハイインピーダンスとならない事を与えてい
る事を前提としている。
【0141】図39には、前記ステップS8の内部処理
の更に別のフローチャートを示す。ステップS8の処理
が開始されると、先ずステップS8_12においてフリ
ップフロップ及びラッチを取り出す。次にステップS8
_13において、当該素子のセット・リセット端子への
ロジックコーンを認識する。
【0142】ステップS8_14では、当該素子のセッ
ト・リセット端子に接続されているネットの属性が非周
期か否かを判定し、非周期だった場合はステップS8_
15へ、非周期でなかった場合はステップS8_17へ
処理を移行する。
【0143】ステップS8_15において、当該ロジッ
クコーン内に2入力以上の論理素子が存在するか否かを
判定し、存在した場合はステップS8_17へ、存在し
なかった場合はステップS8_16へ処理を移行する。
【0144】ステップS8_16で、当該フリップフロ
ップ又はラッチに動的タイミング検証フラグを立て、処
理をステップS8_17へ移行する。
【0145】ステップS8_17において、対象回路内
の全てのフリップフロップ及びラッチに対してのチェッ
クが終了したか否かの判定を行い、終了していない場合
は処理をS8_12へ移行し、終了している場合は処理
を終了する。
【0146】尚、図39の説明は、回路制約入力部3
に、フリップフロップ及びラッチのセット・リセット端
子へのロジックコーンの回路構成に対する回路制約とし
て、当該素子のセット・リセット端子に接続されている
ネットの属性が非周期以外であるか、ロジックコーンが
0個以上の1入力素子のみで構成されている事を与えて
いるのを前提としている。
【0147】図20は、ステップS9の内部処理の流れ
を示すフローチャートである。ステップS9の処理が開
始されると、先ずステップS9_1においてゲーテッド
クロック2フラグが立っていて、且つ少なくとも1本の
非周期属性信号が入力信号ネットにつながっている素子
を取り出す。
【0148】ステップS9_2において、当該素子への
入力信号の中で属性が準周期なものは、バックトレース
を行って周期属性のネットを抽出し、その周期属性信号
と置き換え、入力周期属性信号の周期をT_周期とす
る。
【0149】ステップS9_3において、当該素子への
入力信号の中で属性が非周期なものは、フリップフロッ
プ及びラッチのデータ出力端子に到達する迄バックトレ
ースを行って、到達先のフリップフロップ及びラッチの
クロック端子への信号を取り出す。
【0150】ステップS9_4において、取り出した信
号が周期属性か否かを判定し、周期属性の場合はステッ
プS9_5へ、周期属性でない場合はステップS9_6へ
処理を移行する。
【0151】ステップS9_5では、この周期属性の信
号の周期をT_非周期とし、処理をステップS9_9へ移
行する。ステップS9_4において、取り出した信号が
準周期属性か否かを判定し、準周期属性の場合はステッ
プS9_7へ、非周期属性の場合はステップS9_8へ処
理を移行する。
【0152】ステップS9_7では、この準周期属性に
対して、バックトレースを行って周期属性のネットを抽
出し、その周期属性信号と置き換え、この周期属性信号
の周期をT_非周期とし、処理をステップS9_9へ移行
する。
【0153】ステップS9_9では、T_周期とT_非周
期の組み合わせに対して、2×T_非周期≧T_周期が成
り立つかを判定し、それが成り立つT_非周期を定めて
いる入力非周期信号経路、即ち、ステップS9_1で取
り出した素子の非周期属性信号とステップS9_3でバ
ックトレースして到達したフリップフロップ及びラッチ
との間のデータ転送経路は、マルチサイクルパスの可能
性がある。この為、ユーザ確認を要求し、処理をステッ
プS9_8へ移行する。
【0154】ステップS9_8において、対象回路内の
全てのゲーテッドクロック2フラグが立っている少なく
とも1本の非周期属性信号が入力信号ネットにつながっ
ている素子のチェックが終了したか否かの判定を行い、
終了していない場合は処理をS9_1へ移行し、終了し
ている場合は処理を終了する。
【0155】図21は、ステップS10の内部処理の流
れを示すフローチャートである。ステップS10の処理
が開始されると、先ずステップS10_1においてゲー
テッドクロック1フラグが立っている素子を取り出す。
【0156】ステップS10_2において、当該素子に
対して同じ波形の周期属性信号が2本以上入力されてい
るか否かを判定し、入力されている場合は処理をステッ
プS10_3へ、入力されていない場合はステップS1
0_4へ処理を移行する。
【0157】ステップS10_3において、当該素子に
動的タイミング検証フラグを立て、処理をステップS1
0_7へ移行する。前記ステップS10_2の判定におい
て同じ波形の周期属性信号が2本以上入力されていると
判断されれば、ハザードの虞があるからである。
【0158】ステップS10_4において、ゲーテッド
クロック解析用ダンプポイントの論理シミュレーション
結果を元にセットアップ制約チェック、ホールド制約チ
ェックの何れか若くは両方を実施すべきかを決定する。
【0159】ステップS10_5で、静的タイミング検
証によるゲーテッドクロック解析を実行する。ステップ
S10_6において、セットアップ制約違反又はホール
ド制約違反があるか否かを判定し、あった場合はステッ
プS10_3へ、なかった場合はステップS10_7へ処
理を移行する。
【0160】ステップS10_7では、対象回路内の全
てのゲーテッドクロック1フラグが立っている素子のチ
ェックが終了したか否かの判定を行い、終了していない
場合は処理をS10_1へ移行し、終了している場合は
処理を終了する。
【0161】図22は、ステップS10の内部処理のも
う1つの流れを示すフローチャートである。ステップS
10の処理が開始されると、先ずステップS10_8に
おいてゲーテッドクロック2フラグが立っている素子を
取り出す。
【0162】ステップS10_9において、当該素子へ
の入力信号の中で属性が準周期なものは、バックトレー
スを行って周期属性信号を抽出し、この周期属性信号と
置き換える。
【0163】ステップS10_10において、当該素子
に対して同じ波形の周期属性信号が2本以上入力されて
いるか否かを判定し、入力されている場合は処理をステ
ップS10_11へ、入力されていない場合はステップ
S10_12へ処理を移行する。
【0164】ステップS10_11において、当該素子
に動的タイミング検証フラグを立て、処理をステップS
10_14へ移行する。前記ステップS10_10の判定
において同じ波形の周期属性信号が2本以上入力されて
いると判断されれば、ハザードの虞があるからである。
【0165】ステップS10_12において、ゲーテッ
ドクロック解析用ダンプポイントの論理シミュレーショ
ン結果を元にセットアップ制約チェック、ホールド制約
チェックの何れか若くは両方を実施すべきかを決定す
る。
【0166】ステップS10_13で、静的タイミング
検証装置によるゲーテッドクロック解析を実行する。ス
テップS10_14において、セットアップ制約違反又
はホールド制約違反があるか否かを判定し、あった場合
はステップS10_11へ、なかった場合はステップS
10_15へ処理を移行する。
【0167】ステップS10_15では、対象回路内の
全てのゲーテッドクロック2フラグが立っている素子の
チェックが終了したか否かの判定を行い、終了していな
い場合は処理をS10_8へ移行し、終了している場合
は処理を終了する。
【0168】図23は、ステップS11の内部処理の流
れを示すフローチャートである。ステップS11の処理
が開始されると、先ずステップS11_1において動的
タイミング検証フラグから動的タイミング検証適用回路
を認識する。
【0169】次にステップS11_2において積集合が
空でない動的タイミング検証適用回路の和集合を構成す
る。ステップS11_3において、各和集合と各論理階
層との積集合を演算する。
【0170】ステップS11_4において、対象回路内
の全ての動的タイミング検証適用回路のチェックが終了
したか否かを判定し、終了している場合は処理をステッ
プS11_5へ、終了していない場合はステップS11_
1へ処理を移行する。
【0171】ステップS11_5では、各論理階層にお
ける動的タイミング検証適用回路の割合を算出する。ス
テップS11_6において、その割合が100%になる
論理階層があるか否かを判定し、あった場合はステップ
S11_7へ、なかった場合はステップS11_8へ処理
を移行する。
【0172】ステップS11_7では、当該論理階層処
理を動的タイミング検証適用階層とし、処理をステップ
S11_8へ移行する。
【0173】ステップS11_8で、動的タイミング検
証装置で動的タイミング検証を実行した後、処理を終了
する。
【0174】尚、前述の図23は、図20のステップS
10_5とS10_6、及び図21のステップS10_1
2とS10_13を実行しない場合の処理フローを示し
ている。図20のステップS10_5とS10_6、及び
図21のステップS10_12とS10_13を実行する
場合には、図23のステップS11_1_5、S11_1_
6、S11_1_7、及びS11_1_8を実行しないこと
になる。
【0175】図24は、ステップS11_1の内部処理
の流れを示すフローチャートである。ステップS11_
1の処理が開始されると、先ずステップS11_1_1に
おいて動的タイミング検証フラグが立っている素子を取
り出す。
【0176】ステップS11_1_2において、当該素子
が(1)フリップフロップ若しくはラッチ、又はフリッ
プフロップ若しくはラッチのデータ入力端子或いはセッ
ト・リセット端子へのロジックコーン内の論理素子、
(2)フリップフロップ又はラッチのクロック端子への
ロジックコーン内の論理素子、の何れであるかを判定
し、(1)の場合はステップS11_1_3へ、(2)の
場合はステップS11_1_4へ処理を移行する。
【0177】ステップS11_1_3において、トレース
実行時にフリップフロップ及びラッチ内のパスであるの
データ出力端子とセット・リセット端子間のパスは通過
可能として、当該素子の入力端子からフリップフロップ
のデータ出力端子に到達する迄バックトレースを実行
し、当該素子の出力端子からフリップフロップのデータ
入力端子に到達する迄フォワードトレースを実行する。
これらのトレースで通過した素子と到達先のフリップフ
ロップを動的タイミング検証適用回路とした後、処理を
ステップS11_1_9へ移行する。
【0178】ステップS11_1_4では、当該素子に対
してステップS11_1_3を実行して得られるものを動
的タイミング検証適用回路1とし、これと当該素子の出
力信号をトレースにより伝搬させ到達したクロック端子
を備えるフリップフロップ及びラッチに対してステップ
S11_1_3を実行して得られるものとの和集合を動的
タイミング検証適用回路2とする。
【0179】ステップS11_1_5では、動的タイミン
グ検証適用回路1に対して動的タイミング検証を実行す
る。ステップS11_1_6では、動的タイミング検証適
用回路1における素子の出力信号にハザードが発生した
か否かを判定し、発生した場合はステップS11_1_7
へ、発生しなかった場合はステップS11_1_8へ処理
を移行する。
【0180】ステップS11_1_7では、動的タイミン
グ検証適用回路2のみを動的タイミング検証適用回路と
し、処理をS11_1_9へ移行する。
【0181】ステップS11_1_8では、動的タイミン
グ検証適用回路1及び2を削除する。
【0182】ステップS11_1_9では、対象回路内の
全ての動的タイミング検証フラグが立っている素子のチ
ェックが終了したか否かの判定を行い、終了していない
場合は処理をS11_1_1へ移行し、終了している場合
は処理を終了する。
【0183】図25は、ステップS11_8の内部処理
の流れを示すフローチャートである。ステップS11_
8の処理が開始されると、ステップS11_8_1におい
て積集合が空でない動的タイミング検証適用回路の和集
合の構成素子とその接続情報を構成し、入力パターンを
用いて動的タイミング検証を実行した後、処理を終了す
る。
【0184】図26は、ステップS11_8の内部処理
の流れの別の例を示すフローチャートである。ステップ
S11_8の処理が開始されると、ステップS11_8_
1において、動的タイミング検証適用回路を構成する素
子とネット、動的タイミング検証適用回路内のフリップ
フロップ及びラッチのクロック端子へのクロックツリー
上の全素子及び全ネットに遅延情報を与える。
【0185】次にステップS11_8_2において、動的
タイミング検証適用回路の境界を構成するフリップフロ
ップとの間でデータ授受を行う動的タイミング検証非適
用回路内のフリップフロップ及びラッチに対して、デー
タ転送が可能となるよう、動的タイミング検証適用回路
の境界を構成するフリップフロップとの間でデータ授受
を行う動的タイミング検証非適用回路内のフリップフロ
ップ及びラッチへのクロックツリー上における全素子及
び全ネットの遅延値を調整する。ステップS11_8_3
で動的タイミング検証を実行した後、処理を終了する。
【0186】《具体的な対象回路に対する処理例》次
に、対象回路の一例を挙げて、カウンタ候補の認識S1
_3による処理の具体例について説明する。図27は、
対象回路の一例を示す回路図である。この対象回路は、
外部からデータ信号が入力される外部入力ピンDIN、
外部からイネーブル信号が入力される外部入力ピンEN
ABLE、外部からリセット信号が入力される外部入力
ピンRST、外部からクロック信号が入力される外部入
力ピンCLK、及び、外部へデータ信号を出力する外部
出力ピンDOUTを備えている。
【0187】素子G1、G2、G3、G4は、何れも論
理素子であり、素子FF1、FF2、FF3、FF4、
FF5、FF6は、何れもフリップフロップである。先
ずステップS1_3_1により、対象回路の中のフリップ
フロップ及びラッチの集合F={FF1、FF2、FF
3、FF4、FF5、FF6}のテーブルが記憶部5に
格納される。
【0188】次にステップS1_3_2で、FF1を集合
Fから取り出す。ステップS1_3_3では、ステップS
1_3_4 以降で実行されるトレースによりトレースさ
れたフリップフロップ及びラッチの集合をT_f、論理
素子の集合をT_cとし、各々空集合に設定し、記憶部
5に格納する。
【0189】ステップS1_3_5でFF1のデータ入力
端子dからバックトレースを実行すると、素子G1、F
F2、FF1のデータ出力端子qに到達し、FF1のリ
セット端子sdnからバックトレースを実行すると、ユ
ーザ指定のフリップフロップFF3に到達する。
【0190】ステップS1_3_6では前記で到達したネ
ットの属性による分岐を実行すると、カウンタ属性でも
アンカウンタ属性でもないので、ステップS1_3_7へ
処理を移行する。
【0191】ステップS1_3_7で到達先による分岐を
実行すると、到達先がFF1のデータ出力端子qとユー
ザ指定のフリップフロップFF3であるので、ステップ
S1_3_8へ処理を移行する。
【0192】次にステップS1_3_8において、T_f
={FF1、FF2}、T_c={G1}とし、記憶部5に
格納する。
【0193】ステップS1_3_10では、F={FF
3、FF4、FF5、FF6}とし、T_fとT_cの成
すネットに対してカウンタ属性を設定し、記憶部5に格
納する。ステップS1_3_11でFが空集合ではないの
で、処理をステップS1_3_2へ移行する。
【0194】次にステップS1_3_2で、FF5をFか
ら取り出す。ステップS1_3_3では、ステップS1_
3_5 以降で実行されるトレースによりトレースされた
フリップフロップ及びラッチの集合をT_f、論理素子
の集合をT_cとし、各々空集合に設定し、記憶部5に
格納する。
【0195】ステップS1_3_5でFF5のデータ入力
端子dからバックトレースを実行すると、素子G3、F
F5のデータ出力端子qに到達するパス、素子G3、F
F4、G2、FF5のデータ出力端子qに到達するパ
ス、及び素子G3、FF4、G2、FF1の出力端子に
接続されているカウンタ属性ネットに到達するパスを認
識する。
【0196】ステップS1_3_6やステップS1_3_7
での分岐を実行し、ステップS1_3_7へ処理を移行す
る。ステップS1_3_8において、T_f={FF4、F
F5}、T_c={G3、G2}とし、記憶部5に格納す
る。
【0197】ステップS1_3_10では、F={FF
3、FF6}とし、T_fとT_cの成すネットに対して
カウンタ属性を設定し、記憶部5に格納する。ステップ
S1_3_11でFが空集合ではないので、処理をステッ
プS1_3_2へ移行する。
【0198】FF3及びFF6に対して、S1_3を実
行すると、各々バックトレースの到達先が外部端子であ
るため、S1_3_9を介してS1_3_10に処理が移行
し、アンカウンタ属性を設定し、処理を終了する。
【0199】次に、別の対象回路の一例を挙げて、属性
演算S1_4による処理の具体例について説明する。図
28は、対象回路の一例を示す回路図である。この対象
回路は、素子FF1、FF2のcp端子に接続されてい
るネットは周期属性であり、素子G1のa1端子に接続
されているネットは周期属性であり、素子G1のa2端
子に接続されているネットは非周期属性であり、素子G
2のa2端子に接続されているネットは周期属性であ
る。
【0200】素子G1、G2は、何れも論理素子であ
り、素子FF1、FF2、FF3は、何れもフリップフ
ロップである。素子G1にはto_clkフラグが、素
子G2にはto_dataフラグが立っている。また、
図面の素子G1のa1端子及びG2のa2端子への入力
信号の属性が変化した状態だとする。
【0201】先ずステップS1_4_1で入力信号属性が
変化した素子G1、G2を認識し、記憶部5へ格納す
る。ステップS1_4_2では、素子G1及びG2が1入
力素子であるか否かの判定を行い、1入力素子ではない
ので、ステップS1_4_4へ処理を移行する。
【0202】ステップS1_4_4では、素子G1及びG
2のフラグ判定を行い、素子G1はto_clkフラグ
が立っているのでステップS1_4_6へ、素子G2はt
o_dataフラグが立っているのでステップS1_4_
5へ処理を移行する。
【0203】ステップS1_4_5では、素子G2の入力
信号で帰還路を形成しているものがあるか否かの判定を
行い、素子G2のa3端子への信号が帰還路を形成して
いるので、処理をステップS1_4_7へ移行する。
【0204】次にステップS1_4_7では、帰還路を形
成している素子G2のa3端子に接続されていネットn
et1がクロック情報の認識S1の最初のステップS1
_1において、非周期属性に設定されているので、処理
をS1_3_8へ移行する。
【0205】ステップS1_3_8において、素子G2の
出力信号が接続されているネットnet3に非周期属性
を設定し、記憶部5へ格納し、処理をステップS1_4_
9へ移行する。
【0206】一方、ステップS1_4_6では、素子G1
のa1入力端子に接続されているネットが周期属性であ
り、a2入力端子に接続されているネットが非周期属性
であるので、素子G1の出力信号が接続されているネッ
トnet2に準周期属性を設定し、記憶部5へ格納し、
処理をステップS1_4_9へ移行する。
【0207】ステップS1_4_9において、データ入力
信号ネットの属性が変化した素子があるか否かを判定
し、当回路例の場合、データ入力信号ネットの属性が変
化した素子はないので、処理を終了する。
【0208】次に、別の対象回路の一例を挙げて、属性
演算S1_4による処理の具体例について説明する。図
29は、対象回路の一例を示す回路図である。この対象
回路は、素子G1のa2端子、素子G2のa1端子、素
子G3のa1及びa2端子、及び素子G6のa1及びa
2端子への信号はフリップフロップ又はラッチのデータ
出力端子からの信号である。
【0209】素子G1、G2、G3、G4、G5、G6
は、何れも論理素子であり、素子FF1、FF2は、何
れもフリップフロップでる。
【0210】先ずステップS1_4_4_1でFF1及び
FF2のcp端子へのロジックコーンを認識し、記憶部
5へ格納する。当回路図の場合、 FF1及びFF2の
cp端子へのロジックコーンは、G1、G2、G3から
なる回路である。
【0211】ステップS1_4_4_2で、素子G1、G
2、及びG3にto_clkフラグを立て、記憶部5へ
格納する。
【0212】ステップS1_4_4_3で対象回路内の全
てのフリップフロップ及びラッチに対して処理を実行し
たか否か判定し、全てに対して実行しているので、処理
をステップS1_4_4_4へ移行する。
【0213】ステップS1_4_4_5でFF2のd端子
へのロジックコーンを認識すし、記憶部5へ格納する。
当回路図の場合、 FF2のd端子へのロジックコーン
は、G3、G4、G5、G6からなる回路である。
【0214】次にステップS1_4_4_6で、to_cl
kフラグの立っていない素子G4、G5、G6に対して
to_dataフラグを立て、記憶部5へ格納する。
【0215】ステップS1_4_4_3で対象回路内の全
てのフリップフロップ及びラッチに対して処理を実行し
たか否か判定し、全てに対して実行しているので、処理
を終了する。
【0216】次に、別の対象回路の一例を挙げて、属性
演算S1_4_4_1による処理の具体例について説明す
る。図30は、対象回路の一例を示す回路図である。こ
の対象回路は、素子G3のa1及びa2端子、素子G5
のa1端子、及び素子G6のa1及びa2端子への信号
はフリップフロップ又はラッチのデータ出力端子からの
信号である。
【0217】素子G1、G2、G3、G4、G5、G6
は、何れも論理素子である。先ずステップS1_4_4_
1_1で素子G1のa1端子を認識し、記憶部5へ格納
する。
【0218】ステップS1_4_4_1_2で、素子G1の
a1端子に接続されている素子G2を認識し、記憶部5
へ格納する。
【0219】ステップS1_4_4_1_3で素子G2のa
1端子からバックトレースを実行し素子G3を取出す。
素子G3のa1及びa2端子への信号はフリップフロッ
プ又はラッチのデータ出力端子からの信号である為、素
子G2のa2端子からバックトレースを実行し素子G4
を取出す。素子G4のa1端子への信号はフリップフロ
ップ又はラッチのデータ出力端子からの信号である為、
素子G4のa2端子からバックトレースを実行し素子G
5を取出す。素子G5のa1端子への信号はフリップフ
ロップ又はラッチのデータ出力端子からの信号である
為、素子G4のa3端子からバックトレースを実行し素
子G6を取出す。素子G6のa1端子への信号はフリッ
プフロップ又はラッチのデータ出力端子からの信号であ
る為、バックトレースを終了し、トレース結果により得
られた素子G2、G3、G4、G5、G6から成る回路
を構成し、G1のa1端子へのロジックコーンとして記
憶部5へ格納し、処理を終了する。
【0220】次に、別の対象回路の例を挙げて、クロッ
ク選択論理フラグS2_2による処理の具体例について
説明する。図31は、対象回路の一例を示す回路図であ
る。この対象回路は、素子G1のa1及びa2端子には
周期又は準周期属性のネットが接続されており、素子G
1のa3端子には非周期属性のネットが接続されてい
る。
【0221】素子G1は論理素子である。先ずステップ
S2_2_1において、周期属性と準周期属性のネットが
2本以上入力端子に接続されている素子G1を認識し、
記憶部5へ格納する。
【0222】次にステップS2_2_2において、素子G
1がマルチプレクサ素子であるので、処理をステップS
2_2_3へ移行する。
【0223】ステップS2_2_3で素子G1に対して、
クロック選択論理フラグを立てる。ステップS2_2_1
0で処理を終了する。
【0224】また、図32は、対象回路のもう一例を示
す回路図である。この対象回路は、素子G1のa1、a
2、a3、及びa4端子には準周期属性のネットが接続
されており、素子G2、G3、G4、G5のa1端子に
は非周期属性のネットが接続されており、素子G2、G
3、G4、G5のa2端子には周期属性のネットが接続
されており、素子G6、G7、G8、G9のa1及びa
2端子にはフリップフロップ又はラッチのデータ出力端
子からの信号が接続されている。
【0225】素子G1、G2、G3、G4、G5、G
6、G7、G8、G9は論理素子である。先ずステップ
S2_2_1において、周期属性と準周期属性のネットが
2本以上入力端子に接続されている素子G1を認識し、
記憶部5へ格納する。
【0226】次にステップS2_2_2において、素子G
1がマルチプレクサ素子ではないので、処理をステップ
S2_2_4へ移行する。
【0227】ステップS2_2_4において、素子G1の
a1、a2、a3、及びa4端子からバックトレースを
実行し、周期属性と非周期属性のネットが入力端子に接
続されている素子G2、G3、G4、G5を認識し、他
素子との接続情報と共に記憶部5へ格納する。
【0228】ステップS2_2_5において、バックトレ
ースにおいてフリップフロップ又はラッチのデータ出力
端子には到達しなかったので、処理をステップS2_2_
7へ移行する。
【0229】ステップS2_2_7では、素子G2、G
3、G4、G5のa1端子からバックトレースを実行
し、フリップフロップ又はラッチのデータ出力端子から
の信号が入力端子に接続されている素子G6、G7、G
8、G9を認識し、素子G2、G3、G4、G5のa1
端子への入力論理関数を構成し、論理積及び論理和を演
算し、結果を記憶部5へ格納する。この回路図の場合、
素子G2のa1端子への入力論理関数はa・b、素子G
3のa1端子への入力論理関数はa・/b(記号/はこ
れが付された信号の論理反転を意味する)、素子G4の
a1端子への入力論理関数は/a・b、素子G5のa1
端子への入力論理関数は/a・/bである。素子G2〜
G5の出力の論理積は、 (a・b)・(a・/b)・(/a・b)・(/a・/
b)=0 であり、論理和は (a・b)+(a・/b)+(/a・b)+(/a・/
b)=1 である。
【0230】ステップS2_2_9において、論理積が
0、論理和が1である事から排他的であるので、処理を
ステップS2_2_3へ移行する。
【0231】ステップS2_2_3で素子G1、G2、G
3、G4、G5に対して、クロック選択論理フラグを立
てる。ステップS2_2_10で処理を終了する。
【0232】次に、別の対象回路の一例を挙げて、非同
期フリップフロップ及び非同期ラッチのクロック波形候
補の抽出S7による処理の具体例について説明する。図
33は、対象回路の一例を示す回路図である。この対象
回路は、外部から3種類のクロック信号が入力される外
部入力ピンCLK1、CLK2、CLK3、外部からデ
ータ信号が入力される外部入力ピンDIN、及び、外部
へデータ信号を出力する外部出力ピンDOUTを備えて
いる。
【0233】素子FF1、FF2、FF3、FF4は、
何れもフリップフロップであり、組み合わせ回路は内部
に帰還路を持たない組み合わせ回路である。また、ne
t1は非周期属性ネットである。
【0234】先ずステップS7_1において、net1
とクロック端子cpへの信号が周期属性であり出力端子
がnet1に接続されている素子FF1を認識し、記憶
部5へ格納する。
【0235】次にステップS7_2において、素子FF
2のcp端子に接続されている素子はFF1しか存在し
ないので、処理をステップS7_3へ移行する。
【0236】ステップS7_3で素子FF1のデータ出
力端子qに対して、図34に示すCLK1の2倍の周期
を持つデューティ50%の反転クロックであるFF2の
反転仮想クロック、及びCLK1の2倍の周期を持つデ
ューティ50%の非反転クロックであるFF2の非反転
仮想クロックを定義し、記憶部5へ格納する。
【0237】ステップS7_5で、図34に示すタイミ
ングチャートを作成し、FF3からのデータ転送におけ
るセットアップ解析にはFF2の反転仮想クロックを、
ホールド解析にはFF2の非反転仮想クロックを用いる
事が最も厳しい条件であり、FF4へのデータ転送にお
けるセットアップ解析にはFF2の非反転仮想クロック
を、ホールド解析にはFF2の反転仮想クロックを用い
る事が最も厳しい条件である事を記憶部5へ格納する。
ステップS7_4で処理を終了する。
【0238】次に、別の対象回路の一例を挙げて、非同
期転送抽出S7による処理の具体例について説明する。
図35は、対象回路の一例を示す回路図である。この対
象回路は、外部から2種類のクロック信号が入力される
外部入力ピンCLK1、CLK2、外部からクロック切
り替え信号が入力される外部入力ピンSEL、外部から
データ信号が入力される外部入力ピンDIN、及び、外
部へデータ信号を出力する外部出力ピンDOUTを備え
ている。
【0239】素子FF1、FF2、FF3、FF4、F
F5、FF6は、何れもフリップフロップであり、素子
G1、G2、G3、G4は論理素子であり、素子G2に
はクロック選択論理素子フラグが立っている。
【0240】また、FF1のデータ出力端子q、及び素
子G4の出力端子はクロック波形生成用のダンプポイン
トである。
【0241】先ずステップS5_1において、頂点の集
合V1={CLK1、FF1、G4}、辺の集合A1=
{(CLK1、FF1)、(FF1、G4)}である有向グラ
フ(V1、A1)、及び頂点の集合V2={CLK2、G
4}、辺の集合A2={(CLK2、G4)}である有向グ
ラフ(V2,A2)を構成し、記憶部5へ格納する。
【0242】次にステップS5_2で、有向グラフ(V
1、A1)の頂点をクロックソースとするフリップフロ
ップ及びラッチの集合F1={FF5、FF6}、有向グ
ラフ(V2、A2)の頂点をクロックソースとするフリッ
プフロップ及びラッチの集合F2={FF4、FF6}を
認識し、記憶部5へ格納し、素子FF4、FF5、FF
6でデータ授受を行っているペアの集合P={(FF4、
FF5)、(FF5、FF6)}を認識し、記憶部5へ格納
し、F1に含まれるフリップフロップ及びラッチと有向
グラフ(V1、A1)の頂点をクロックソースとしないフ
リップフロップ及びラッチとのデータ転送(FF4、F
F5)を非同期転送として認識し、F2に含まれるフリ
ップフロップ及びラッチと有向グラフ(V2、A2)の頂
点をクロックソースとしないフリップフロップ及びラッ
チとのデータ転送(FF4、FF5)及び(FF5、FF
6)を非同期転送として認識し、この結果からクロック
選択論理素子G2の状態に関わらず、データ転送(FF
4、FF5)は非同期転送であり、クロック選択論理素
子G2により有向グラフ(V2、A2)が選択されたとき
のみデータ転送(FF5、FF6)が非同期転送である事
を認識し、記憶部5へ格納し、処理を終了する。
【0243】このように、非同期転送経路若しくは当該
経路を構成する素子を認識するのに、クロック端子から
データ出力端子への素子内パスの通過を認め、外部端子
から前記通過を認めた素子やマルチプレクサなどのクロ
ック選択素子を通るクロックパスを、クロックソース間
を結ぶグラフで表現し、そのグラフのクロックソースを
用いる素子の集合を把握する。そして、第iのグラフの
クロックソースをクロックソースとする素子と第iのグ
ラフのクロックソースをクロックソースとしない素子と
の間のデータ転送を非同期転送として認識する。非同期
転送と認識された経路の素子が、選択論理の前段で異な
るグラフの頂点をクロックソースとするものであれば、
その経路は常時非同期転送である。一方、非同期転送と
認識された経路の素子が、選択論理の前後で同一グラフ
の頂点をクロックソースとするものであれば、その経路
は選択論理の選択状態に応じて非同期転送になる。この
非同期転送経路の認識方法(非同期転送経路抽出処理)
は、マルチプレクサのようなクロック選択論理毎に分断
してクロック経路を把握する手法に比べて、コンピュー
タによる演算データ量が少なく、それ故に、コンピュー
タによる演算やテーブル作成のために必要なメモリ容量
を小さくすることができ、データ処理も速く完了するこ
とができる。
【0244】次に、別の対象回路の一例を挙げて、マル
チサイクルパス候補の抽出S9による処理の具体例につ
いて説明する。図36は、対象回路の一例を示す回路図
である。この対象回路は、外部から2種類のクロック信
号が入力される外部入力ピンCLK1、CLK2、外部
からデータ信号が入力される外部入力ピンDIN、及
び、外部へデータ信号を出力する外部出力ピンDOUT
を備えている。
【0245】素子FF1は、フリップフロップであり、
素子G1は論理素子であり、素子G1にはゲーテッドク
ロック2フラグが立っており、net1は非周期属性で
ある。
【0246】先ずステップS9_1においてゲーテッド
クロック2フラグが立っている素子G1を取りだし、記
憶部5へ格納する。
【0247】次にステップS9_2で、素子G1のa1
端子に接続されているネットの属性が周期的なので、C
LK1の周期をT_周期とし、記憶部5へ格納する。
【0248】ステップS9_3で、素子G1のa2端子
に接続されているネットの属性が非周期的なので、バッ
クトレースを実行し、フリップフロップFF1を認識
し、FF1のcp端子に接続されているネットの属性を
記憶部5へ格納する。
【0249】ステップS9_4では、FF1のcp端子
に接続されているネットの属性が周期属性であるので、
処理をステップS9_5へ移行する。
【0250】ステップS9_5において、CLK2の周
期をT_非周期とし、記憶部5へ格納し、処理をステッ
プS9_9へ移行する。
【0251】ステップS9_9において、2×T_周期≧
T_非周期であるので、素子FF1のクロック端子cp
から素子G1の入力端子a2迄のパスをマルチサイクル
パス候補として記憶部5へ格納し、出力部10よりユー
ザへ情報提示を行い、遅延情報入力部2からユーザが前
記パスがマルチサイクルパスかどうか判断した結果を入
力し、もしユーザがマルチサイクルパスだと判断した場
合は、遅延情報入力部2からユーザが指示したセットア
ップとホールドに対してのサイクル数と共に、前記パス
をマルチサイクルパスとして記憶部5に格納し、もしユ
ーザがマルチサイクルパスでないと判断した場合は、前
記パスをシングルパスとして記憶部5に格納し、処理を
ステップS9_8へ移行する。ステップS9_8において
処理を終了する。
【0252】以上説明した静的・動的タイミング検証方
法はコンピュータがプログラムを実行して実行される。
静的・動的タイミング検証プログラムは、以上説明した
静的・動的タイミング検証方法による処理内容をC言語
のような高級言語で記述したソースプログラムを元に、
これをコンパイルして、ターゲットとするコンピュータ
固有のオブジェクトコードに変換された機械語プログラ
ム(オブジェクトプログラム)である。
【0253】この静的・動的タイミング検証プログラム
は、特に制限されないが、磁気テープ、フロッピーディ
スク、ハードディスク、CD−ROM、MO(マグネッ
ト−オプチカル・ディスク)などの記憶媒体に、コンピ
ュータによって読取り可能に記憶されている。
【0254】図40には記憶媒体から静的・動的タイミ
ング検証プログラムを読取って実行するコンピュータの
一例が示される。
【0255】同図に示されるコンピュータ100は、エ
ンジニアリングワークステーションやパーソナルコンピ
ュータのようなコンピュータであり、プロセッサ及びメ
モリなどを実装したプロセッサボード、そして各種イン
タフェースボードを搭載した本体101に、ディスプレ
イ102、キーボード103、ディスクドライブ104
などの代表的に示された周辺機器が接続されて構成され
る。
【0256】前述の静的・動的タイミング検証プログラ
ムは、記憶媒体105に格納されている。記憶媒体10
5は、特に制限されないが、前記ディスクドライブ10
4に装着されて、それに記憶されている静的・動的タイ
ミング検証プログラムがコンピュータの本体101に読
み込まれる。例えば、読み込まれた静的・動的タイミン
グ検証プログラムは、コンピュータ本体101のメモリ
にロードされ、ロードされたプログラムを順次解読しな
がら、前述の静的・動的タイミング検証を行っていく。
また、記憶媒体から読み込まれた静的・動的タイミング
検証プログラムはコンピュータ本体101に備え付けの
ハードディスク装置の磁気記憶媒体にインストールされ
て、そこから随時メモリにロードされて実行されても良
い。この場合、静的・動的タイミング検証プログラムを
データ圧縮した状態で記憶媒体105に格納しておき、
前記ハードディスクへのインストールに際して伸長して
もよい。それらの場合等において、静的・動的タイミン
グ検証プログラムを格納したコンピュータ読取り可能な
記憶媒体は、そのまま実行可能な形態或いはデータ圧縮
された状態で静的・動的タイミング検証プログラムを格
納する前記記憶媒体105或いはコンピュータ本体10
1に内蔵されているハードディスク装置の磁気記憶媒体
等、何れも該当する。
【0257】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0258】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0259】すなわち、クロック情報認識手段を有する
ことにより、クロック信号が入力される外部入力ピンへ
のクロック情報と、セットまたはリセット信号が入力さ
れる外部入力ピンの情報と、対象回路内のカウンタの同
期・非同期セット・リセットまたは同期・非同期ロード
に用いるフリップフロップ又はラッチ素子の情報から、
内部で生成されたクロックの情報を自動的に認識する事
ができる。これによって対象回路の同期回路、非同期回
路の識別が容易化される。
【0260】タイミング検証不要な非同期転送経路(を
構成する回路部分)を認識するので、対象回路内の非周
期信号がクロックとして供給されているフリップフロッ
プ及びラッチを介したデータ転送経路と、互いに非同期
な信号、即ち電源投入時での前記信号間の位相差が定義
不能な信号がクロックとして供給されているフリップフ
ロップ及びラッチ間のデータ転送経路を別々の非同期転
送経路として認識する事が出来る。
【0261】対象回路の中でゲーテッドクロック回路
(クロックゲート)に対してセットアップ・ホールド解
析を実行できる。
【0262】ゲーテッドクロック回路を構成している論
理素子へのクロック属性を持たない入力信号のマルチサ
イクルパスを認識するから、疑似エラーを予め排除した
静的タイミング検証によるゲーテッドクロック回路のセ
ットアップ・ホールド解析を実行することができる。
【0263】フリップフロップ及びラッチ間のデータ転
送経路の認識において、前記データ転送経路の両端のフ
リップフロップ又はラッチへ供給されるクロックの組み
合わせを予め検証する事が出来る。
【0264】クロック以外の信号がクロック端子に供給
されているフリップフロップ及びラッチに対して、仮想
的なクロックが定義可能かを判定して仮想クロックを設
定するから、非同期回路に対しても静的タイミング検証
が適用できる。換言すれば、非同期回路を周期回路と非
周期回路に分類して、周期回路に静的タイミング検証を
可能にするものである。結果として、大幅な検証工数の
削減が期待できる。
【0265】静的タイミング検証適用回路部分と動的タ
イミング検証適用回路部分を識別できるので、同期回路
部分でのハザード解析を必要とする回路部分の認識と当
該回路部分への動的タイミング検証が実行できる。
【0266】信号の伝達経路に沿ってフリップフロップ
が現われる迄を動的タイミング検証適用回路部分に含め
ることにより、動的タイミング検証適用回路部分への静
的タイミング検証適用回路部分からのデータ転送経路に
おける信号遅延時間を考慮しないで、動的タイミング検
証適用回路部分の動的タイミング検証を実行することが
できる。
【0267】動的タイミング検証適用回路部分と対象回
路の中の論理階層との対応を識別するので、動的タイミ
ング検証実行すべき論理階層を認識できる。したがっ
て、論理検証時に予め作成されている各論理階層への入
力信号情報を流用して動的タイミング検証を実行する事
ができ、検証工数の削減が期待できる。
【0268】静的タイミング検証適用回路部分の入力端
子及び出力端子に最も近い前記動的タイミング検証適用
回路部分内のフリップフロップから信号の伝達経路に沿
って前記動的タイミング検証適用回路部分外のフリップ
フロップ及びラッチを識別し、識別されたフリップフロ
ップ及びラッチへのクロック信号の伝搬遅延を、対象回
路に遅延情報を与える際に前記動的タイミング検証適用
回路部分と前記動的タイミング検証適用回路部分内のフ
リップフロップ及びラッチへのクロック信号の伝搬遅延
のみを与えるだけで動的タイミング検証が可能となるよ
う調整する。これにより、動的タイミング検証適用回路
部分に対してのみ遅延情報を与える事で、対象回路全体
の動的タイミング検証を実行でき、且つ論理検証時に予
め作成されている対象回路全体の入力信号情報の流用が
できる。したがって、検証時間と検証工数の削減が期待
できる。
【図面の簡単な説明】
【図1】本発明に係る静的・動的タイミング検証装置の
一例を全体的に示すブロック図である。
【図2】本発明者が先に検討した静的・動的タイミング
検証方法の一例処理を全体的に示すフローチャートであ
る。
【図3】本発明に係る静的・動的タイミング検証方法に
よる処理の一例を全体的に示すフローチャートである。
【図4】本発明に係る静的・動的タイミング検証方法に
よる処理の一例を図3とは別の観点から示したフローチ
ャートである。
【図5】図4のステップS1の内部処理の一例を示すフ
ローチャートである。
【図6】図5のステップS1_3の内部処理の一例を示
すフローチャートである。
【図7】図5のステップS1_4の内部処理の一例を示
すフローチャートである。
【図8】図7のステップS1_4_4の内部処理の一例を
示すフローチャートである。
【図9】図8のステップS1_4_4_1の内部処理の一
例を示すフローチャートである。
【図10】図4のステップS3の内部処理の一例を示す
フローチャートである。
【図11】図4のステップS4の内部処理の一例を示す
フローチャートである。
【図12】図4のステップS2の内部処理の一例を示す
フローチャートである。
【図13】図12のステップS2_2の内部処理の一例
を示すフローチャートである。
【図14】図4のステップS6の内部処理の一例を示す
フローチャートである。
【図15】図13のステップS6_2の内部処理の一例
を示すフローチャートである。
【図16】図4のステップS7の内部処理の一例を示す
フローチャートである。
【図17】図4のステップS5の内部処理の一例を示す
フローチャートである。
【図18】図4のステップS8の内部処理の一例を示す
フローチャートである。
【図19】図4のステップS8のもう1つの内部処理の
一例を示すフローチャートである。
【図20】図4のステップS9の内部処理の一例を示す
フローチャートである。
【図21】図4のステップS10の内部処理の一例を示
すフローチャートである。
【図22】図4のステップS10のもう1つの内部処理
の一例を示すフローチャートである。
【図23】図4のステップS11の内部処理の一例を示
すフローチャートである。
【図24】図23のステップS11_1の内部処理の一
例を示すフローチャートである。
【図25】図23のステップS11_8の内部処理の一
例を示すフローチャートである。
【図26】実施の形態2のステップS11_8の内部処
理の一例を示すフローチャートである。
【図27】対象回路の一例であるカウンタ候補回路の回
路図である。
【図28】対象回路の一例である属性演算回路の回路図
である。
【図29】対象回路の一例である場合分け回路の回路図
である。
【図30】対象回路の一例であるロジックコーン回路の
回路図である。
【図31】対象回路の一例であるクロック選択回路の回
路図である。
【図32】対象回路の一例である別のクロック選択回路
の回路図である。
【図33】対象回路の一例である非同期フリップフロッ
プ・ラッチ回路の回路図である。
【図34】図33の回路図の動作を示すタイミングチャ
ートである。
【図35】対象回路の一例である非同期転送回路の回路
図である。
【図36】対象回路の一例であるマルチサイクルパス回
路の回路図である。
【図37】本発明に係る静的・動的タイミング検証装置
による同期・非同期混在回路に対する静的タイミング検
証と動的タイミング検証の割り振りに関する基本的な考
え方を全体的に示す説明図である。
【図38】図8におけるステップS1_4_4_4、S1_
4_4_5の処理に置き換えることが可能な処理をステッ
プを示す説明図である。
【図39】図4のステップS8の更に別の内部処理の一
例を示すフローチャートである。
【図40】記憶媒体から静的・動的タイミング検証プロ
グラムを読取って実行するコンピュータの一例を示す斜
視図である。
【符号の説明】 1 接続情報入力部 2 遅延情報入力部 3 回路制約入力部 4 負荷情報入力部 5 記憶部 6 静的・動的タイミング検証分割部 7 静的タイミング検証部 8 動的タイミング検証部 9 回路シミュレーション実行部 10 出力部 11 クロック情報抽出部 12 回路制約検証部 S1 クロック情報の認識処理 S2 クロックの選択論理の認識処理 S3 非同期FF/ラッチの認識処理 S4 ゲーテッドクロックの認識処理 S5 非同期転送抽出処理 S6 クロック波形生成処理 S7 非同期FF/ラッチのクロック波形候補の抽出処
理 S8 回路構成チェック処理 S9 マルチサイクルパス候補の抽出処理 S10 ゲーテッドクロック解析実行処理 S11 動的タイミング検証適用箇所の決定処理

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 タイミング検証の対象回路に対する静的
    タイミング検証又は動的タイミング検証の適用を決める
    静的・動的タイミング検証分割処理を有し、 前記静的・動的タイミング検証分割処理は、対象回路の
    中のカウンタ手段を識別し、識別されたカウンタ手段の
    情報をもとに、対象回路の中のクロック情報を識別する
    クロック情報認識処理を含むことを特徴とする静的・動
    的タイミング検証方法。
  2. 【請求項2】 前記クロック情報認識処理は、更に、識
    別した前記情報をもとに、対象回路の中で同期回路部分
    と非同期回路部分との非同期転送経路、更に同期回路部
    分間の非同期転送経路を、夫々識別する処理を行うこと
    を特徴とする請求項1記載の静的・動的タイミング検証
    方法。
  3. 【請求項3】 前記クロック情報認識処理は、更に、識
    別した前記情報をもとに、対象回路の中でクロックゲー
    トを構成している論理素子を識別し、 前記クロック情報認識処理で識別されたクロックゲート
    を構成している論理素子へ2本以上クロック属性を持つ
    信号が入力されている場合に、クロックゲートのセット
    アップ解析、ホールド解析を実行する必要があるかを判
    定し、前記クロック属性を持つ入力信号の中でどの信号
    を基準としてクロックゲートのセットアップ解析、ホー
    ルド解析を実行するかを判定する判定処理を更に含むこ
    とを特徴とする請求項1記載の静的・動的タイミング検
    証方法。
  4. 【請求項4】 前記クロック情報認識処理は、更に、識
    別した前記情報をもとに、対象回路の中でクロックゲー
    トを構成している論理素子を識別し、 前記静的・動的タイミング検証分割処理は、前記識別さ
    れたクロックゲートを構成している論理素子へのクロッ
    ク属性を持たない入力信号がマルチサイクルパスか否か
    の識別を行う認識処理を更に含むことを特徴とする請求
    項1記載の静的・動的タイミング検証方法。
  5. 【請求項5】 前記クロック情報認識処理は、更に、識
    別した前記情報をもとに、対象回路の中でクロックの選
    択論理を構成している論理素子を識別することを特徴と
    する請求項1記載の静的・動的タイミング検証方法。
  6. 【請求項6】 前記静的・動的タイミング検証分割処理
    は、前記クロック情報認識処理で識別された前記情報を
    もとに、対象回路の中でクロック以外の信号がクロック
    端子に供給されているフリップフロップ及びラッチに対
    して、仮想的なクロックが定義可能かを判定し、それに
    よって、クロック以外の信号がクロック端子に供給され
    ているフリップフロップ及びラッチであって、仮想的な
    クロックが定義可能と判定されたフリップフロップ及び
    ラッチのクロック端子に対して、仮想的なクロックを設
    定する設定処理を更に含むことを特徴とする請求項1記
    載の静的・動的タイミング検証方法。
  7. 【請求項7】 前記静的・動的タイミング検証分割処理
    は、前記クロック情報認識処理で識別した情報を元に、
    対象回路の中で静的タイミング検証適用回路部分と動的
    タイミング検証適用回路部分を識別する適用回路部分認
    識処理を含むことを特徴とする請求項1記載の静的・動
    的タイミング検証方法。
  8. 【請求項8】 前記適用回路部分認識方法は、これが識
    別した動的タイミング検証適用回路部分に信号の伝達経
    路に沿ってフリップフロップが現われる迄を動的タイミ
    ング検証適用回路部分に含めて認識することを特徴とす
    る請求項7記載の静的・動的タイミング検証方法。
  9. 【請求項9】 前記適用回路部分認識処理は、これが識
    別した動的タイミング検証適用回路部分と対象回路の中
    の論理階層との対応を識別するものであることを特徴と
    する請求項7記載の静的・動的タイミング検証方法。
  10. 【請求項10】 前記適用回路部分認識処理は、これが
    識別した静的タイミング検証適用回路部分の入力端子及
    び出力端子に最も近い前記動的タイミング検証適用回路
    部分内のフリップフロップから信号の伝達経路に沿って
    前記動的タイミング検証適用回路部分外のフリップフロ
    ップ及びラッチを識別し、前記認識手段で識別されたフ
    リップフロップ及びラッチへのクロック信号の伝搬遅延
    を、対象回路に遅延情報を与える際に前記動的タイミン
    グ検証適用回路部分と前記動的タイミング検証適用回路
    部分内のフリップフロップ及びラッチへのクロック信号
    の伝搬遅延のみを与えるだけで動的タイミング検証が可
    能となるよう調整することを特徴とする請求項7記載の
    静的・動的タイミング検証方法。
  11. 【請求項11】 タイミング検証の対象回路の中のカウ
    ンタ手段を識別する第1の処理と、 識別されたカウンタ手段の情報を元に、対象回路の中の
    クロック情報を識別する第2の処理と、 識別したクロック情報を元に、対象回路の中で静的タイ
    ミング検証適用回路部分と動的タイミング検証適用回路
    部分を識別する第3の処理と、 前記第3の処理結果に基づいて静的タイミング検証を行
    う第4の処理と、 前記第3の処理結果に基づいて動的タイミング検証を行
    う第5の処理と、を含むことを特徴とする静的・動的タ
    イミング検証方法。
  12. 【請求項12】 同期・非同期混在回路における同期回
    路に非周期的な誤動作を発生する可能性のある回路部分
    を抽出し、この回路部分には非周期回路として動的タイ
    ミング検証を施し、 前記同期・非同期混在回路における非同期回路に仮想的
    なクロック信号とみなすことが可能な信号が供給される
    回路部分を抽出し、この回路部分には周期回路として静
    的タイミング検証を施すことを特徴とする静的・動的タ
    イミング検証方法。
  13. 【請求項13】 クロック信号に対する同期・非同期混
    在回路をに対して、同期回路を周期回路と非周期回路
    に、非同期回路を周期回路と非周期回路に分類し、同期
    回路の周期回路及び非同期回路の周期回路には静的タイ
    ミング検証を施し、同期回路の非周期回路及び非同期回
    路の非周期回路には動的タイミング検証を施すことを特
    徴とする静的・動的タイミング検証方法。
  14. 【請求項14】 タイミング検証の対象回路に対する静
    的タイミング検証又は動的タイミング検証の適用を決め
    る静的・動的タイミング検証分割処理を有し、 前記静的・動的タイミング検証分割処理は、対象回路の
    中のカウンタ手段を識別し、識別されたカウンタ手段の
    情報をもとに、対象回路の中のクロック情報を識別する
    クロック情報認識処理を含み、 前記クロック情報認識処理は、更に、識別した前記情報
    をもとに、対象回路の中で同期回路部分と非同期回路部
    分との非同期転送経路、更に同期回路部分間の非同期転
    送経路を、夫々識別する処理を行い、 前記識別する処理は、非同期転送経路を構成する素子を
    認識するために、クロック端子からデータ出力端子への
    素子内パスの通過を認め、外部端子から前記通過を認め
    た素子を通るクロックパスを、クロックソース間を結ぶ
    グラフで表現する処理と、そのグラフのクロックソース
    を用いる素子の集合を把握する処理と、前記認識された
    グラフ毎に、当該グラフのクロックソースをクロックソ
    ースとする素子と当該グラフのクロックソースをクロッ
    クソースとしない素子との間のデータ転送を非同期転送
    として認識し、非同期転送と認識された経路の素子が選
    択論理の前段で異なるグラフの頂点をクロックソースと
    するものであれば当該経路を常時非同期転送と認識し、
    一方、非同期転送と認識された経路の素子が選択論理の
    前後で同一グラフの頂点をクロックソースとするもので
    あれば当該経路は選択論理の選択状態に応じて非同期転
    送になると認識することを特徴とする静的・動的タイミ
    ング検証方法。
  15. 【請求項15】 タイミング検証の対象回路の中のカウ
    ンタ手段を識別する第1の処理と、 識別されたカウンタ手段の情報を元に、対象回路の中の
    クロック情報を識別する第2の処理と、 識別したクロック情報を元に、対象回路の中で静的タイ
    ミング検証適用回路部分と動的タイミング検証適用回路
    部分を識別する第3の処理と、 前記第3の処理結果に基づいて静的タイミング検証を行
    う第4の処理と、 前記第3の処理結果に基づいて動的タイミング検証を行
    う第5の処理と、をコンピュータに実行させるためのプ
    ログラムを記録して成るものであることを特徴とするコ
    ンピュータ読取り可能な記憶媒体。
  16. 【請求項16】 同期・非同期混在回路における同期回
    路に非周期的な誤動作を発生する可能性のある回路部分
    を抽出し、この回路部分には非周期回路として動的タイ
    ミング検証を施す処理と、 前記同期・非同期混在回路における非同期回路に仮想的
    なクロック信号とみなすことが可能な信号が供給される
    回路部分を抽出し、この回路部分には周期回路として静
    的タイミング検証を施す処理と、をコンピュータに実行
    させるためのプログラムを記録して成るものであること
    を特徴とするコンピュータ読取り可能な記憶媒体。
  17. 【請求項17】 クロック信号に対する同期・非同期混
    在回路をに対して、同期回路を周期回路と非周期回路
    に、非同期回路を周期回路と非周期回路に分類し、同期
    回路の周期回路及び非同期回路の周期回路には静的タイ
    ミング検証を施し、同期回路の非周期回路及び非同期回
    路の非周期回路には動的タイミング検証を施す、夫々の
    処理をコンピュータに実行させるためのプログラムを記
    録して成るものであることを特徴とするコンピュータ読
    取り可能な記憶媒体。
JP09055899A 1999-01-14 1999-03-31 静的・動的タイミング検証方法及び記憶媒体 Expired - Fee Related JP4176906B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP09055899A JP4176906B2 (ja) 1999-01-14 1999-03-31 静的・動的タイミング検証方法及び記憶媒体
US09/482,877 US6658635B1 (en) 1999-01-14 2000-01-14 Static-dynamic timing analysis method and storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP742999 1999-01-14
JP11-7429 1999-01-14
JP09055899A JP4176906B2 (ja) 1999-01-14 1999-03-31 静的・動的タイミング検証方法及び記憶媒体

Publications (3)

Publication Number Publication Date
JP2000268080A true JP2000268080A (ja) 2000-09-29
JP2000268080A5 JP2000268080A5 (ja) 2005-10-27
JP4176906B2 JP4176906B2 (ja) 2008-11-05

Family

ID=26341714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09055899A Expired - Fee Related JP4176906B2 (ja) 1999-01-14 1999-03-31 静的・動的タイミング検証方法及び記憶媒体

Country Status (2)

Country Link
US (1) US6658635B1 (ja)
JP (1) JP4176906B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210189A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd 検証方法、検証装置及びプログラム
JP2009086817A (ja) * 2007-09-28 2009-04-23 Casio Comput Co Ltd 論理シミュレーション装置、アサーション記述自動生成装置、及びプログラム
JP2011090493A (ja) * 2009-10-22 2011-05-06 Nec Corp 回路設計装置及び方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188327B2 (en) * 2002-04-11 2007-03-06 Cadence Design Systems, Inc. Method and system for logic-level circuit modeling
US6851098B2 (en) * 2002-08-28 2005-02-01 Lsi Logic Corporation Static timing analysis and performance diagnostic display tool
US7181713B2 (en) * 2002-08-28 2007-02-20 Lsi Logic Corporation Static timing and risk analysis tool
JP4083544B2 (ja) * 2002-11-18 2008-04-30 富士通株式会社 マルチサイクルパス解析方法
US7080334B2 (en) * 2003-05-09 2006-07-18 Incentia Design Systems Corp. Automatic clock gating insertion in an IC design
US7134062B2 (en) * 2003-08-12 2006-11-07 Via Telecom, Inc. Static timing analysis approach for multi-clock domain designs
JP4271067B2 (ja) * 2004-03-29 2009-06-03 富士通マイクロエレクトロニクス株式会社 非同期回路検証方法および非同期回路検証プログラム
US7089143B2 (en) * 2004-04-29 2006-08-08 International Business Machines Corporation Method and system for evaluating timing in an integrated circuit
US7412678B2 (en) * 2004-06-02 2008-08-12 Lsi Corporation Method and computer program for management of synchronous and asynchronous clock domain crossing in integrated circuit design
JP4418310B2 (ja) * 2004-06-29 2010-02-17 富士通株式会社 テストパターン生成方法およびテストパターン生成プログラム
US7609146B2 (en) * 2005-07-27 2009-10-27 Lear Corporation System and method for controlling a function using a variable sensitivity receiver
US7930673B2 (en) 2007-05-29 2011-04-19 Magma Design Automation, Inc. Method for automatic clock gating to save power
US8104004B2 (en) * 2008-02-13 2012-01-24 Achronix Semiconductor Corporation Logic performance in cyclic structures
WO2009126880A2 (en) * 2008-04-10 2009-10-15 University Of Southern California Power aware asynchronous circuits
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits
US7884649B1 (en) * 2009-02-27 2011-02-08 Magma Design Automation, Inc. Selection of optimal clock gating elements
US8655634B2 (en) * 2010-03-10 2014-02-18 International Business Machines Corporation Modeling loading effects of a transistor network
US8365116B2 (en) * 2010-12-06 2013-01-29 University Of Utah Research Foundation Cycle cutting with timing path analysis
US8656326B1 (en) * 2013-02-13 2014-02-18 Atrenta, Inc. Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design
JP6146224B2 (ja) * 2013-09-12 2017-06-14 株式会社ソシオネクスト 判定方法、判定プログラム、および判定装置
US10268787B2 (en) * 2017-07-17 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Hybrid timing analysis method and associated system and non-transitory computer readable medium
US11087003B2 (en) * 2018-08-24 2021-08-10 Oracle International Corporation Scalable pre-analysis of dynamic applications
TWI689736B (zh) * 2019-07-11 2020-04-01 瑞昱半導體股份有限公司 偵測電路之腳位關聯性的方法及其電腦程式產品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579510A (en) * 1993-07-21 1996-11-26 Synopsys, Inc. Method and structure for use in static timing verification of synchronous circuits
US5650938A (en) * 1995-12-13 1997-07-22 Synopsys, Inc. Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210189A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd 検証方法、検証装置及びプログラム
JP2009086817A (ja) * 2007-09-28 2009-04-23 Casio Comput Co Ltd 論理シミュレーション装置、アサーション記述自動生成装置、及びプログラム
JP2011090493A (ja) * 2009-10-22 2011-05-06 Nec Corp 回路設計装置及び方法

Also Published As

Publication number Publication date
US6658635B1 (en) 2003-12-02
JP4176906B2 (ja) 2008-11-05

Similar Documents

Publication Publication Date Title
JP4176906B2 (ja) 静的・動的タイミング検証方法及び記憶媒体
US9152742B1 (en) Multi-phase models for timing closure of integrated circuit designs
JP5432127B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
JP5410414B2 (ja) 回路エミュレーションの入力及び遅延入力のマルチプレクシング
JP5432126B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
US6678643B1 (en) Event based semiconductor test system
JP5405451B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
US7698674B2 (en) System and method for efficient analysis of point-to-point delay constraints in static timing
US7587690B1 (en) Method and system for global coverage analysis
JP5263904B2 (ja) スキャン回路テスト中のic構造シミュレーション速度向上
US7210109B2 (en) Equivalence checking of scan path flush operations
US8943457B2 (en) Simulating scan tests with reduced resources
Chun et al. ATPG-XP: test generation for maximal crosstalk-induced faults
US7493580B2 (en) Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program
Lee et al. Learning from VLSI design experience
US7275223B2 (en) Facilitating high-level validation of integrated circuits in parallel with development of blocks in a hierarchical design approach
US8875085B2 (en) Wiring inspection apparatus and wiring inspection method
US20060150136A1 (en) Systems and methods for designing integrated circuits
Oh et al. Efficient logic-level timing analysis using constraint-guided critical path search
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
US20050177357A1 (en) Static timing model for combinatorial gates having clock signal input
JP2012007929A (ja) 集積回路、シミュレーション装置、及びシミュレーション方法
JP4983642B2 (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP2001067383A (ja) 静的タイミング解析方法におけるフォールスパス検出方法およびフォールスパス検査方法
JP3957507B2 (ja) 論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080821

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees