JP3715706B2 - Timing verification device - Google Patents

Timing verification device Download PDF

Info

Publication number
JP3715706B2
JP3715706B2 JP01972096A JP1972096A JP3715706B2 JP 3715706 B2 JP3715706 B2 JP 3715706B2 JP 01972096 A JP01972096 A JP 01972096A JP 1972096 A JP1972096 A JP 1972096A JP 3715706 B2 JP3715706 B2 JP 3715706B2
Authority
JP
Japan
Prior art keywords
clock
timing
information
clocks
timing verification
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.)
Expired - Fee Related
Application number
JP01972096A
Other languages
Japanese (ja)
Other versions
JPH09212541A (en
Inventor
弘幸 嶽ノ
則子 池田
輝 吉田
由美 表
隆充 藤原
博之 浜野
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP01972096A priority Critical patent/JP3715706B2/en
Publication of JPH09212541A publication Critical patent/JPH09212541A/en
Application granted granted Critical
Publication of JP3715706B2 publication Critical patent/JP3715706B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、タイミング検証装置に関し、特に、互いに倍周の関係にない複数のクロックが入力される対象回路のタイミング検証を可能にするための改良に関する。
【0002】
【従来の技術】
従来、LSI(大規模集積回路)に代表される大規模回路のタイミング検証を行うための有力な方法として、静的タイミング検証方法が知られている。静的タイミング検証方法は、同期回路を対象としたパス解析手法による検証方法であり、検証用パターンを用いることなしに、網羅的かつ高速に処理できるという利点を有している。
【0003】
図25は、静的タイミング検証を行う従来のタイミング検証装置を示すブロック図である。この従来装置150には、もっとも主要な装置部として静的タイミング検証部120が備わっている。そして、静的タイミング検証部120には、対象回路すなわちタイミング検証の対象とされる回路の構成に関する情報である回路接続情報7、および、対象回路に入力される外部入力データのタイミングを記述したデータ入力タイミング情報9が入力される。また、バックアノテーション検証を行う場合、配線容量および配線抵抗に関する情報を有した配線遅延情報23が入力される。
【0004】
さらに、静的タイミング検証部120は複数のクロックで動作する対象回路の検証が可能なように構成されている。検証回路に入力される全てのクロックのタイミングに関する情報、すなわちクロック情報121が準備される。そして、静的タイミング検証部120にて、検証動作の進行にともなって、クロック情報121の中から、必要なクロック情報が適宜使用される。
【0005】
静的タイミング検証部120は、これらの情報にもとづいて、対象回路の静的タイミング検証を実行する。
【0006】
【発明が解決しようとする課題】
しかしながら、従来装置150では、複数のクロックで動作する回路を検証対象とすることができるとはいえ、これらの複数のクロックは、互いに倍周の関係である必要があった。すなわち、図26のタイミングチャートに例示するように、各組に属する転送側のクロックT21と受信側のクロックT22との間で、周期が自然数倍の関係にある必要があるという問題点があった。
【0007】
この発明は、従来の装置における上記した問題点を解消するためになされたもので、静的タイミング検証の利点を生かしつつ、互いに倍周の関係にない複数のクロックが入力される対象回路に対しても、タイミング検証を実行することができるタイミング検証装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
第1の発明の装置は、複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある前記複数の素子の中の一対と、それらの間のデータ信号の経路と、を含む回路部分に対して、前記対象回路を規定した回路接続情報を参照し、しかも、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件として、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、を備えることを特徴とする。
【0009】
第2の発明の装置は、複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、前記対象回路を規定した回路接続情報にもとづいて、前記複数の素子の中から順次一つずつ対象素子として選び出す対象素子検索手段と、前記対象素子検索手段で選び出された前記対象素子をデータ受信側素子とし、これに対応するデータ転送側素子を、前記回路接続情報にもとづいて、前記複数の素子の中から探し出すパスサーチ手段と、前記クロック情報にもとづいて、前記データ転送側素子と前記データ受信側素子とにそれぞれ入力される一対のクロックの関係が、倍周と非倍周のいずれであるかについて判定を行うクロック判定手段と、前記データ転送側素子、前記データ受信側素子、およびそれらの間のデータ信号の経路を含む回路部分に対して、前記回路接続情報を参照するとともに、前記判定の結果が倍周であるときには、前記クロック情報を参照し、前記判定の結果が非倍周であるときには、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件とすることによって、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、を備えることを特徴とする。
【0010】
第3の発明の装置は、第2の発明のタイミング検証装置において、前記タイミング評価手段は、さらに、前記パスサーチ手段が前記データ転送側素子を探し出せなかったときには、前記対象素子と当該対象素子へ入力される外部入力データ信号の経路とを含む回路部分に対して、前記回路接続情報を参照するとともに、前記外部入力データ信号を規定するデータ入力タイミング情報と、前記クロック情報とにもとづいて、前記対象素子へ入力されるクロックと前記外部入力データ信号との間のタイミングの検証を実行することを特徴とする。
【0011】
第4の発明の装置は、第1ないし第3のいずれかの発明のタイミング検証装置において、前記対象回路の配線の信号遅延時間を規定する配線遅延情報と、前記回路接続情報とにもとづいて、前記複数の素子へクロックを伝達する複数のクロック配線の遅延時間を個別に算出するクロックディレイ算出手段と、前記複数の素子ごとに、当該素子に入力されるクロックに関して前記クロック情報が規定するタイミングに前記遅延時間を加算することによって、ディレイ付きクロック情報を作成するクロックディレイ加算手段と、をさらに備え、前記最小区間算出手段は、前記クロック情報の代わりに前記ディレイ付きクロック情報を参照することによって、前記最小区間を算出することを特徴とする。
【0012】
第5の発明の装置は、第4の発明のタイミング検証装置において、前記対象回路のレイアウトを規定するレイアウト情報から、前記回路接続情報と前記配線遅延時間とを抽出するバックアノテーション手段を、さらに備えることを特徴とする。
【0013】
第6の発明の装置は、第1ないし第3のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、算出した前記最小区間に、データ転送サイクル情報に規定されるデータ転送サイクルを加算し、前記タイミング評価手段は、前記データ転送サイクルが加算された値を前記最小区間として参照することを特徴とする。
【0014】
第7の発明の装置は、第1ないし第6のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、前記最小区間を探索することを特徴とする。
【0015】
第8の発明の装置は、第1ないし第7のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、前記複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出することを特徴とする。
【0017】
【発明の実施の形態】
<1.実施の形態1>
はじめに、実施の形態1のタイミング検証装置について説明する。
【0018】
<1-1.装置全体の構成と動作>
図1は、この実施の形態のタイミング検証装置101の構成を示すブロック図である。図1において、1は対象回路に入力されるクロックの中で周期の異なるクロック同士によるデータ転送が行われるブロックで使用されるデータ転送側のクロックの立ち上がり時期、周期等に関する情報、すなわちデータ転送側クロック情報であり、2はデータ転送側クロック情報1と同じブロックで使用されるデータ受信側クロック情報である。これらのクロック情報1,2は、外部から付与される。
【0019】
また、3はデータ転送側クロック情報とデータ受信側クロック情報とが同時に立ち上がる時刻(同期時刻)を算出する同期時刻算出部、4は同期時刻算出部3で算出された数値情報である同期時刻、5はデータ転送側クロック情報とデータ受信側クロック情報と同期時刻とにもとづいて、立ち上がりエッジ最小区間を算出する立ち上がりエッジ最小区間算出部、そして、6は立ち上がりエッジ最小区間算出部5で算出された数値情報である立ち上がりエッジ最小区間である。
【0020】
さらに、7は対象回路の構成に関して外部から付与される情報である回路接続情報、そして、9はデータ入力タイミング情報である。回路接続情報7は、対象回路の回路図に相当する情報、すなわち対象回路を構成する素子の種類およびそれらの素子の接続等に関する情報であり、外部から付与される。データ入力タイミング情報9は、対象回路に入力される外部入力データの変化する時期に関する情報であり、特にクロックの立ち上がり時期との相対関係が明確となるように記述されている。このデータ入力タイミング情報9も、外部から付与される。
【0021】
最後に、8はクロック情報1,2、立ち上がりエッジ最小区間6、回路接続情報7、およびデータ入力タイミング情報9にもとづいて、静的タイミング検証を実行する静的タイミング検証部である。
【0022】
図2は、装置101が検証の対象とする対象回路の一例を示す回路図である。この対象回路Y1には、周期の異なる3個のクロックT1〜T3、および2個の外部入力データData1,Data2が、外部から入力端子(図中に白三角で示す)を通じて入力される。そして、対象回路Y1は、これらの信号にもとづいて所定の論理演算を実行し、出力信号Outを出力端子(図中に白三角で示す)を通じて外部へと出力するように構成されている。
【0023】
クロックT1〜T3の中で、クロックT1,T3は互いに倍周の関係にあり、クロックT2は他のクロックT1,T3と非倍周の関係にある。すなわち、対象回路Y1には、互いに非倍周の関係にあるクロックを含む複数のクロックが入力されている。
【0024】
対象回路Y1が備える6個の素子U1〜U6は、クロック端子Tへ入力されるクロックの立ち上がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移に同期して、データ入力端子Dへ入力されたデータ信号を、クロックのつぎの立ち上がりエッジまで保持して出力端子Qへと出力し続けるフリップフロップである。素子S1〜S3は、信号の伝搬に遅延をもらたらす任意の素子、あるいは素子の組み合わせである。また、素子S4は、NAND素子である。
【0025】
以下において、この対象回路Y1を例として、装置101の動作について説明する。装置101は図3のフローチャートに沿って動作する。すなわち、装置101が動作を開始すると、まずステップS11において、同期時刻算出部3へデータ転送側クロック情報1およびデータ受信側クロック情報2が付与される。このようなクロック情報1,2は、外部から手作業で、あるいは外部の入力装置を用いて付与される。
【0026】
図4に、対象回路Y1に対するクロック情報1,2の内容を例示する。クロック情報1,2は、対象回路Y1のクロックT1〜T3を転送側と受信側とに振り分けることによって得られる。振り分けは、対象回路Y1の回路構成とは無関係に、考え得るすべての組み合わせに対して行われるのが望ましい。この場合には、クロック情報1,2は、図4に示すように、6通りの組合わせN=1〜6に対応して準備される。
【0027】
つぎに、処理はステップS12へと移行し、クロック情報1,2にもとづいて、同期時刻算出部3で同期時刻の算出が行われる。この算出は、データ転送側クロックとデータ受信側クロックとが、非倍周の関係にある組合わせに対して行われる。すなわち、図4に示す組合わせN=1,3,4,6に対して、それぞれ実行され、算出された数値の組は同期時刻4として、立ち上がりエッジ最小区間算出部5へと送出される。
【0028】
同期時刻Syn1は、クロック情報1,2に属する一組のクロックの周期Cyc1,Cyc2の最小公倍数として算出される。すなわち、同期時刻Syn1は、数式(1):{Syn1=周期Cyc1,Cyc2の最小公倍数}で与えられる。例えば、組合わせN=1に対しては、同期時刻Syn1は、クロックT1の周期Cyc1とクロックT2の周期Cyc2の最小公倍数として与えられる。
【0029】
つぎに、処理はステップS13へと移行し、クロック情報1,2および同期時刻4にもとづいて、立ち上がりエッジ最小区間算出部5によって、立ち上がりエッジ最小区間の算出が行われる。この算出も、図4における組合わせN=1,3,4,6のそれぞれについて行われる。以下に、クロックT1,T2の組合わせ(N=1)の例について、計算手順を説明する。
【0030】
まず、同期時刻Syn1のつぎの同期時刻Syn2を、数式(2):{Syn2=Syn1×2}にしたがって算出する。つづいて、データ転送側クロック立ち上がり時刻T1rise_timeが、数式(3):{T1rise_time=Cyc1×m}で定義される。同様に、データ受信側クロック立ち上がり時刻T2rise_timeが、数式(4):{T2rise_time=Cyc2×n}で定義される。ここで、変数m,nは、いずれも自然数である。
【0031】
つづいて、数式(5):{T1rise_time<T2rise_time}、数式(6):{Syn1≦T1rise_time<Syn2}、および、数式(7):{Syn1<T2rise_time≦Syn2}で与えられる3通りの条件をすべて満たす範囲で、T2rise_timeとT1rise_timeの差における最小値が、立ち上がりエッジ最小区間Triseとして算出される。すなわち、立ち上がりエッジ最小区間Triseは、数式(5)〜(7)を満たすすべての自然数m,nに対する最小値を、数式(8):{Trise=MIN(T2rise_time−T1rise_time)}にもとづいて算出することによって得られる。
【0032】
その結果、図5のタイミングチャートに例示するように、立ち上がりエッジ最小区間Triseは、クロックT1の立ち上がり時刻から、それ以後のクロックT2の立ち上がり時刻までの時間間隔の最小値として与えられる。言い替えると、立ち上がりエッジ最小区間Triseは、クロックT1,T2の間で、立ち上がり時刻が互いに一致しない範囲で最も近接した時間間隔として付与される。したがって、クロックT2が入力される受信側の素子が正常な動作を行う上で、最も厳しい条件が抽出される。
【0033】
<1-2.静的タイミング検証部8の構成と動作>
つぎに、処理はステップS14へと移行する。この段階では、静的タイミング検証部8によって静的タイミング検証が実行される。図6は静的タイミング検証部8の内部構成を示すブロック図である。また、図7は静的タイミング検証部8における処理手順を示すフローチャートである。以下に、図6および図7に沿って、静的タイミング検証部8の内部構成と動作について説明する。
【0034】
ステップS14の処理が開始されると、まず、ステップS141において、対象回路Y1の中の当面の検証対象とされる対象素子が検索される。この処理は、対象素子検索部81によって遂行される。すなわち、対象素子検索部81は、回路接続情報7にもとづいて、対象回路Y1の中で、当面の検証対象とすべき素子を検索する。
【0035】
つぎに、処理はステップS142へと移行し、パスサーチが実行される。すなわち対象素子に入力されるクロック、さらに受信側の素子とそのクロックがサーチされる。この処理は、対象素子検索部81で選択された対象素子に関する情報と、回路接続情報7とにもとづいて、パスサーチ部82で実行される。
【0036】
仮に、対象素子として素子U2が選択されたとすると、パスサーチによって、素子U2に入力されるクロックT2が、まず探し出される。つづいて、素子U2に入力される信号を辿って、素子S1および素子U1、さらに素子U1に入力されるクロックT1が探し出される。そして、クロックT1はデータ転送側クロックとして認識され、クロックT2はデータ受信側クロックとして認識される。その結果、以後の処理では、図2の対象回路Y1の中で、素子U1,U2およびそれらの間に介在する素子S1を含む回路ブロックX1のみが取扱いの対象となる。
【0037】
つぎに、処理はステップS143へと移行する。ここでは、クロック判定部83によって、クロックに関する第1の判定が行われる。すなわち、選択された対象素子への入力データが外部入力データData1,2であるか否かが判定される。判定結果が「Yes」であれば、処理はステップS145へと移行し、「No」であれば、ステップS144へと移行する。
【0038】
ステップS144では、引き続きクロック判定部83において、第2の判定が行われる。すなわち、データ転送側クロックとデータ受信側クロックとの間の関係が、倍周の関係であるか否かが判定される。この判定は、クロック情報1,2にもとづいて行われる。そして、判定の結果が、「Yes」であれば、処理はステップS136へと移行し、「No」であれば、ステップS147へと移行する。
【0039】
対象素子が素子U2である例では、入力データは外部入力データData1,Data2のいずれでもないので、処理は、ステップS143からステップS144へと移る。そして、図4に示すように、クロックT1,T2に関しては、互いに非倍周の関係にあるので、処理はさらに、ステップS147へと移る。
【0040】
対象素子が、例えば素子U3である場合には、入力データは外部入力データData1であるので、処理はステップS143からステップS145へと移行する。
【0041】
また、対象素子が、例えばU6である場合には、クロックT1がデータ転送側クロックとなり、クロックT3がデータ受信側クロックとなる。そして、入力データは外部入力データData1,Data2のいずれでもないので、処理は、ステップS143からステップS144へと移る。さらに、クロックT1,T3の関係は、図4に示すように、倍周の関係にあるので、処理はステップS144からステップS146へと移行する。
【0042】
ステップS145〜S147の処理は、タイミング評価部84によって実行される。これらの中で、ステップS145,S146の処理は、従来装置150の静的タイミング検証部120でも行われる周知の処理である。
【0043】
ステップS145では、例えば対象素子U3に関して、クロック情報1,2のいずれかが供給するクロックT1と、データ入力タイミング情報9が供給する外部入力データData1との間のタイミングが、回路接続情報7で規定される素子U3の正常動作に必要な、セットアップ時間、ホールド時間等の条件を満たしているか否かの判定が行われる。また、外部入力データData1の経路に素子が介在する場合には、回路接続情報7を参照することによって、この素子による遅延時間が考慮される。
【0044】
また、ステップS146では、例えば対象素子U6に関して、クロック情報1,2で供給されるクロックT1,T2が、回路接続情報7で規定される素子U6の正常動作に必要な、セットアップ時間、ホールド時間等の条件を満たしているか否かの判定が行われる。このとき、回路接続情報7にもとづいて、素子U5と素子U6の間に介在する素子S3による信号遅延時間をも考慮して判定が行われる。
【0045】
ステップS147では、クロック情報1,2、および回路接続情報7に加えて、さらに、立ち上がりエッジ最小区間6が参照される。そして、例えば対象素子が素子U2である場合には、図8のタイミングチャートに示すように、クロックT1が立ち上がった後に、立ち上がりエッジ最小区間Triseを経た時点でクロックT2が立ち上がるという最も厳しい条件に対して、タイミング検証が行われる。
【0046】
すなわち、データ転送側クロック情報1が供給するクロックT1の立ち上がり時期と、回路接続情報7が供給する素子U1の機能とにもとづいて、素子U1の出力端子Qに出力データが現れる時期が算出される。さらに、回路接続情報7が供給する素子S1の機能にもとづいて、素子S1による信号遅延時間を考慮した上で、素子U2のデータ入力端子Dへ入力データが到達する時期が算出される。
【0047】
そして、クロックT1の立ち上がり時期から立ち上がりエッジ最小区間Trise後に立ち上がるクロックT2と、素子U2へ到達する入力データとが、例えばセットアップ時間Setupおよびホールド時間Holdに関する条件を満たしているか否かが判定される。例えば、素子U2へ入力データが到達する時期が、クロックT2の立ち上がり時期よりも、セットアップ時間Setup以上先行しており、しかも、素子U2への入力データがつぎに変化する時期が、クロックT2の立ち上がり時期よりも、ホールド時間Hold以上遅れておれば、タイミングエラーなしと判定される。
【0048】
逆に、これらの条件の中のいずれか一つが満たされていないときは、タイミングエラー有りと判定される。このように、立ち上がりエッジ最小区間6を用いて、もっとも厳しい条件に対するタイミング検証が行われる。しかも、素子S1による信号遅延時間も考慮した検証が行われる。
【0049】
なお、ステップS145〜S147では、タイミング評価部84によって、検証すべき信号間でタイミングの比較が行われるために、タイミングエラーの有無だけではなく、例えばマージンの大きさ、エラーの程度などの定量的な評価も容易に得られる。
【0050】
ステップS145〜ステップS147のいずれかの処理が完了すると、処理はステップS148へと移行する。ステップS148では、対象回路Y1の中に、未検証の対象素子が残っているか否かが判定される。残っておれば、処理はステップS141へと戻り、新たな対象素子が検索される。残っていなければ、ステップS14の処理を終了し、それにともなって装置101の処理全体が終了する(図3)。
【0051】
このように、ステップS141〜S148のサイクルを反復することによって、対象回路Y1におけるタイミング検証を要する素子U1〜U6のすべてに対して、タイミング検証が順次行われる。上記において例を挙げなかった素子U4,U5,U1を対象素子とするサイクルでは、つぎのように処理が行われる。
【0052】
素子U4を対象素子とするサイクルでは、図4に示すように、クロックT1がデータ転送側クロック、クロックT2がデータ受信側クロックとして扱われる。したがって、ステップS147が実行される。また、素子U5を対象素子とするサイクルでは、素子U3を対象素子とするサイクルと同様に、ステップS143が実行され、クロックT1と外部入力データData2とが比較される。
【0053】
さらに、素子U1を対象素子とする場合には、図4に示すように、クロックT2をデータ転送側クロック、クロックT1をデータ受信側クロックとして扱うサイクルと、クロックT3をデータ転送側クロック、クロックT1をデータ受信側クロックとして扱うサイクルとの、2通りのサイクルの双方が実行される。前者は素子U4を転送側素子とするものであり、後者は素子U6を転送側素子とするものである。前者では、ステップS147が実行され、後者では、ステップS146が実行される。
【0054】
以上に説明したように、非倍周の関係を有する複数のクロックが入力されるために従来装置150では検証不可能であった対象回路に対しても、装置101を用いることによって、静的タイミングの手法にもとづいた能率のよい検証が可能となる。
【0055】
なお、図4に示すように、ステップS11において、6通りの組合わせN=1〜6のすべてに対して、クロック情報1,2を準備する好ましい例を示したが、対象回路Y1の構成を考慮して、例えば、N=1〜3,5の組み合わせについてのみ、クロック情報1,2を準備することも可能である。
【0056】
また、ステップS11において、クロック情報1,2を外部から同期時刻算出部3へと直接に入力する例を示したが、装置101に記憶媒体を設けておいて、この記憶媒体にあらかじめクロック情報1,2を記憶させておいてもよい。この場合には、ステップS11では、記憶媒体からクロック情報1,2を同期時刻算出部3へと読み出す処理が行われる。
【0057】
さらに、回路接続情報7、データ入力タイミング情報9などについても、これらを記憶媒体に一旦記憶させておいて、静的タイミング検証部8の動作にともなって、記憶媒体から適宜読み出すように、装置101を構成してもよい。
【0058】
<2.実施の形態2>
図9は、実施の形態2のタイミング検証装置102の構成を示すブロック図である。なお、以下の図において、図1および図6に示した装置101と同一部分については、同一符号を付してその詳細な説明を略する。
【0059】
図9において、20は対象回路のレイアウト情報、21はレイアウト情報20から回路接続情報および配線遅延情報を抽出するバックアノテーション装置、22はバックアノテーション装置21により抽出された対象回路の回路接続情報、そして、23はバックアノテーション装置21によって算出された配線遅延情報である。レイアウト情報20は、外部から付与される。
【0060】
また、24は回路接続情報22と配線遅延情報23にもとづいて、クロック配線の遅延時間、すなわちクロック配線を伝搬するクロックの遅延時間(クロックディレイ)を算出し、データ転送側クロックとデータ受信側クロックのそれぞれに分けてクロックディレイを出力するクロックディレイ算出部、25はクロックディレイ算出部24により算出されたデータ転送側クロックディレイ、そして、26はクロックディレイ算出部24により算出されたデータ受信側クロックディレイである。
【0061】
さらに、27はデータ転送側クロック情報1にデータ転送側クロックディレイ25を加算し、データ受信側クロック情報2にデータ受信側クロックディレイ26を加算するクロックディレイ加算部、28はデータ転送側クロック情報1にデータ転送側クロックディレイ25が加算されたデータ転送側ディレイ付きクロック情報、そして、29はデータ受信側クロック情報2にデータ受信側クロックディレイ26が加算されたデータ受信側ディレイ付きクロック情報である。
【0062】
以下において、図2に示した対象回路Y1を例として、装置102の動作について説明する。装置102は図10のフローチャートに沿って動作する。すなわち、装置102が動作を開始すると、まずステップS20において、回路接続情報と配線遅延情報の抽出が行われる。この処理は、外部から入力された対象回路Y1に関するレイアウト情報20にもとづいて、バックアノテーション装置21によって実行される。
【0063】
レイアウト情報20は、対象回路Y1のレイアウト設計に付随して作成されるものである。装置102では、このレイアウト情報20を付与することによってタイミング検証が行われる。すなわち、装置102では、タイミング検証を行うために、新規にデータを作成する必要がないという利点がある。
【0064】
バックアノテーション装置21によって抽出された回路接続情報22は、装置101に供給される回路接続情報7に相当する。すなわち、回路接続情報22は、対象回路Y1を構成する各種の素子とそれらの接続に関する情報を有している。バックアノテーション装置21は、配線遅延情報23を算出する際に、まずレイアウト情報20から配線容量および配線抵抗を抽出する。
【0065】
つぎに、処理はステップS21へと移行し、クロックディレイ算出部24によるクロックディレイの算出が行われる。すなわち、図2において、クロックT1〜T3が伝送されるクロック配線の遅延時間が算出される。すなわち、各クロックT1〜T3を外部から受信するための対象回路Y1の入力端子(図2において白三角で示している)から、各素子U1〜U6のクロック端子Tまでの配線の遅延時間が算出される。
【0066】
クロックディレイ算出部24ではさらに、図4に示したようなデータ転送側クロックとデータ受信側クロックの組合わせN=1〜6毎に、データ転送側クロックディレイ25とデータ受信側クロックディレイ26とが作成され出力される。例えば、図4における組合わせN=1に対しては、図11の回路図に示すように、クロックT1の配線の遅延時間Delay1がデータ転送側クロックディレイ25として出力され、クロックT2の配線の遅延時間Delay2がデータ受信側クロックディレイ26として出力される。
【0067】
つぎに、処理はステップS22へと移行し、データ転送側クロック情報1およびデータ受信側クロック情報2が、外部からクロックディレイ加算部27へと入力される。このステップS22は、つぎのステップS23に先立って実行されればよく、ステップS20〜S22との前後関係は任意でよい。
【0068】
つぎに、ステップS23において、クロックディレイ加算部27によるクロックディレイの加算処理が行われる。すなわち、データ転送側クロック情報1にデータ転送側クロックディレイ25を加算してデータ転送側ディレイ付きクロック情報28として出力し、データ受信側クロック情報2にデータ受信側クロックディレイ26を加算してデータ受信側ディレイ付きクロック情報29として出力する。
【0069】
以下のステップS24〜S26では、実施の形態1の装置101におけるステップS13〜S14において、クロック情報1,2をディレイ付きクロック情報28,29に置き換えた処理が行われる。したがって、ステップS25の処理では、例えば図4における組合わせN=1に対しては、数式(9):{U1rise_time=T1rise_time+Delay1}で与えられる、ディレイ付きデータ転送側クロック立ち上がり時刻U1rise_timeが、ステップS13におけるデータ転送側クロック立ち上がり時刻T1rise_timeの代わりに用いられる。
【0070】
また、数式(10):{U2rise_time=T2rise_time+Delay2}で与えられる、ディレイ付きデータ受信側クロック立ち上がり時刻U2rise_timeが、ステップS13におけるデータ受信側クロック立ち上がり時刻T2rise_timeの代わりに用いられる。すなわち、数式(5)〜(8)において、立ち上がり時刻T1rise_time,T2rise_timeを、ディレイ付き立ち上がり時刻U1rise_time,U2rise_timeに置き換えることによって、立ち上がりエッジ最小区間Triseが算出される。
【0071】
図12のタイミングチャートに示すように、ディレイ付き立ち上がり時刻U1rise_time,U2rise_timeは、対象回路Y1の入力端子に入力されたクロックT1,T2の立ち上がり時刻T1rise_time,T2rise_timeに、クロック配線の遅延時間Delay1,Delay2をそれぞれ加算した値に相当する。すなわち、立ち上がり時刻U1rise_time,U2rise_timeは、素子U1,U2のクロック端子Tへ到達するクロックT1,T2の立ち上がり時間に相当する。
【0072】
また、ステップS26では、図7と同様に、ステップS141〜S148のサイクルが実行される。つまり、ステップS145,S146,S147で、クロック情報1,2、および配線遅延情報23にもとづいて、クロック配線の遅延を考慮したタイミング検証が行われる。
【0073】
またステップS26を実行する静的タイミング検証部8の内部構成および各種情報との関係は、図13のブロック図で示される。すなわち、静的タイミング検証部8の内部構成は、実施の形態1の装置101の静的タイミング検証部8(図6)と同一である。配線遅延情報23がタイミング評価部84に供給されている点が、装置101の静的タイミング検証部8とは異なっている。
【0074】
例えばステップS141で素子U2が対象素子として選択されたサイクルでは、ステップS147の処理が実行される。このとき、図14のタイミングチャートに示すように、素子U1のクロック端子Tへ入力されるクロックT1が立ち上がった後に、立ち上がりエッジ最小区間Triseを経た時点で、素子U2のクロック端子Tへ入力されるクロックT2が立ち上がるという最も厳しい条件に対して、タイミング検証が行われる。
【0075】
すなわち、データ転送側クロック情報1が供給するクロックT1の立ち上がり時期と、回路接続情報22が供給する素子U1の機能と、配線遅延情報23とにもとづいて、素子U1の出力端子Qに出力データが現れる時期が算出される。さらに、回路接続情報22が供給する素子S1の機能にもとづいて、素子S1による信号遅延時間と、配線遅延情報23とにもとづいた配線遅延時間Delay3を考慮した上で、素子U2のデータ入力端子Dへ入力データが到達する時期が算出される。
【0076】
そして、クロックT1の立ち上がり時期から立ち上がりエッジ最小区間Trise後に立ち上がるクロックT2と、素子U2へ到達する入力データとが、例えばセットアップ時間Setupおよびホールド時間Holdに関する条件を満たしているか否かが判定される。
【0077】
以上のように、装置102を用いることによって、非倍周の関係を有する複数のクロックが入力される対象回路に対して、クロック配線の遅延時間をも考慮したタイミング検証を、静的タイミングの手法にもとづいて能率よく実行することが可能である。
【0078】
なお、クロック情報1,2、データ入力タイミング情報9、およびレイアウト情報20などを、外部から直接に入力する代わりに、記憶媒体を設けておいて、この記憶媒体にあらかじめこれらの情報を記憶させておき、装置が動作するのにともなって、装置の各部が記憶媒体から適宜必要な情報を読み出すように、装置102を構成してもよい。
【0079】
<3.実施の形態3>
実施の形態1,2では、いずれもクロックの立ち上がりエッジで動作する素子を有する対象回路を例として、その動作を説明した。しかしながら、立ち下がりエッジで動作する素子を有する回路、あるいはさらに、クロックのレベルで動作するいわゆるレベルセンシティブ素子を有する回路をも、対象回路とすることが可能である。この実施の形態では、データ転送サイクル数を外部から設定可能とした特徴あるタイミング検証装置について説明するとともに、特にレベルセンシティブ素子を有する回路を対象回路した動作例を示す。
【0080】
図15は、この実施の形態のタイミング検証装置の動作説明に用いる対象回路の一例を示す回路図である。この対象回路Y2は、図2に示した対象回路Y1において、クロックのエッジで動作するフリップフロップとしての素子U1〜U6を、クロックのレベルで動作するラッチに置き換えた構造を有している。
【0081】
すなわち、対象回路Y2に備わる素子U1〜U6は、クロック端子Gへ入力されるクロックの立ち下がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移において、データ入力端子Dへ入力されたデータ信号を、クロックがロウレベル(アクティブレベル)である期間にわたって保持して出力端子Qへと出力し続けるラッチである。クロックがハイレベル(ノーマルレベル)である期間には、データ入力端子Dへ入力されたデータ信号は、出力端子Qへとそのまま出力される。
【0082】
対象回路Y2に入力されるクロックT1〜T3は、対象回路Y1に入力されるクロックT1〜T3と同一であるとする。したがって、図4に示した内容は、対象回路Y2のクロックT1〜T3に対しても、そのまま妥当している。
【0083】
図16は、この実施の形態のタイミング検証装置103の構成を示すブロック図である。図16において、30は外部より入力されるデータ転送サイクル、31はデータ転送側クロック情報1、データ受信側クロック情報2、同期時刻4、およびデータスルーラッチ段数30にもとづいて、立ち下がりエッジ最小区間を算出する立ち下がりエッジ最小区間算出部、そして、32は立ち下がりエッジ最小区間算出部31で算出された立ち下がりエッジ最小区間である。
【0084】
以下において、図15に示した対象回路Y2を例として、装置103の動作について説明する。装置103は図17のフローチャートに沿って動作する。すなわち、装置103が動作を開始すると、まずステップS31〜S32の処理が実行される。これらの処理は、装置101におけるステップS11〜S12の処理と同一である。
【0085】
その後、処理はステップS33へと移行し、立ち下がりエッジ最小区間算出部31による立ち下がりエッジ最小区間の算出が行われる。この算出は、ステップS32と同様に、図4における組合わせN=1,3,4,6のそれぞれについて行われる。以下に、クロックT1,T2の組合わせ(N=1)の例について、計算手順を説明する。
【0086】
まず、同期時刻Syn1のつぎの同期時刻Syn2を、先述の数式(2)にしたがって算出する。つづいて、データ転送側クロック立ち下がり時刻T1fall_timeが、数式(11):{T1fall_time=Cyc1×m}で定義される。同様に、データ受信側クロック立ち下がり時刻T2fall_timeが、数式(12):{T2fall_time=Cyc2×n}で定義される。ここで、変数m,nは、いずれも自然数である。
【0087】
つづいて、数式(13):{T1fall_time+(データ転送サイクル)<T2fall_time}、数式(14):{Syn1≦T1fall_time<Syn2}、および、数式(15):{Syn1<T2fall_time≦Syn2}で与えられる3通りの条件をすべて満たす範囲で、T2fall_timeとT1fall_timeの差における最小値が、立ち下がりエッジ最小区間Tfallとして算出される。
【0088】
すなわち、立ち下がりエッジ最小区間Tfallは、数式(13)〜(15)を満たす全ての自然数m,nに対する最小値を、数式(16):{Tfall=MIN(T2fall_time−T1fall_time)}にもとづいて算出することによって得られる。なお、数式(13)で用いられる「データ転送サイクル」は、データ転送サイクル30として外部から入力される値である。
【0089】
その結果、データ転送サイクルとして「ゼロ」が入力された場合には、図18のタイミングチャートに示すように、立ち下がりエッジ最小区間Tfallは、クロックT1の立ち下がり時刻から、それ以後のクロックT2の立ち下がり時刻までの時間間隔の最小値として与えられる。一方、データ転送サイクルとして「1」が入力された場合には、図19のタイミングチャートに示すように、立ち下がりエッジ最小区間Tfallは、クロックT1の立ち下がり時刻から、それ以後のクロックT2の立ち下がり時刻までの時間間隔の最小値に、クロックT2の1サイクル分を付加した値として与えられる。
【0090】
つぎに、処理はステップS34へと移行する。ステップS34では、図7と同様に、ステップS141〜S148のサイクルが実行される。例えばステップS141で素子U2が対象素子として選択されたサイクルでは、ステップS147の処理が実行される。このとき、図18または図19のタイミングチャートに示すように、クロックT1が立ち下がった後に、立ち下がりエッジ最小区間Tfallを経た時点で、クロックT2が立ち下がるという最も厳しい条件に対して、タイミング検証が行われる。
【0091】
すなわち、データ転送側クロック情報1が供給するクロックT1の立ち下がり時期と、回路接続情報7が供給する素子U1の機能とにもとづいて、素子U1の出力端子Qに出力データが現れる時期が算出される。さらに、回路接続情報7が供給する素子S1の機能にもとづいて、素子S1による信号遅延時間Delayを考慮した上で、素子U2のデータ入力端子Dへ入力データが到達する時期が算出される。
【0092】
そして、クロックT1の立ち下がり時期から立ち下がりエッジ最小区間Tfall後に立ち下がるクロックT2と、素子U2へ到達する入力データとが、例えばセットアップ時間Setupおよびホールド時間Holdに関する条件を満たしているか否かが判定される。データ転送サイクル30の値は、図18および図19に例示するように、素子U1の出力端子Qから素子U2のデータ入力端子Dまでの信号の遅延時間を考慮して適切に定められる。
【0093】
以上のように、装置103を用いることによって、非倍周の関係を有する複数のクロックが入力される対象回路に対して、データ転送サイクルを考慮したタイミング検証を、静的タイミングの手法にもとづいて能率よく実行することが可能である。また、この実施の形態で例示したように、装置101〜103は、クロックに対してレベルセンシティブな素子を有する対象回路に対しても、利用が可能である。
【0094】
なお、クロック情報1,2、回路接続情報7、データ入力タイミング情報9、およびデータ転送サイクル30などを、外部から直接に入力する代わりに、記憶媒体を設けておいて、この記憶媒体にあらかじめこれらの情報を記憶させておき、装置が動作するのにともなって、装置の各部が記憶媒体から適宜必要な情報を読み出すように、装置102を構成してもよい。
【0095】
<4.実施の形態4>
図20は、実施の形態4のタイミング検証装置104の構成を示すブロック図である。図20において、41は外部より入力される回路接続情報7にもとづいて、対象回路を単一クロック動作論理回路ブロック(以下、「第1種ブロック」と略称する)と異なる2つのクロック周期で動作する論理回路ブロック(以下、「第2種ブロック」と略称する)とに分割する論理回路ブロック分割部、42は論理回路ブロック分割部41によって分割された第1種ブロックに関する接続情報(以下、「第1種ブロック接続情報」と略称する)、そして、43は論理回路ブロック分割部41によって分割された第2種ブロックに関する情報(以下、「第2種ブロック接続情報」と略称する)である。
【0096】
また、61は対象回路に入力されるクロックの立ち上がり時期、周期等に関する情報、すなわちクロック情報である。このクロック情報61は、外部から付与される。
【0097】
さらに、62は第1種ブロックについて、第1種ブロック接続情報42、クロック情報61、およびデータ入力タイミング情報9を参照しつつ、従来周知の手法で静的タイミング検証を実行する静的タイミング検証部、45は静的タイミング検証部62によるタイミング検証の結果、46は静的タイミング検証結果45とクロック情報1とにもとづいて、第2種ブロックに対する動的タイミング検証を行うための入力テストパターンを生成するテストパターン生成部、そして、47はテストパターン生成部46によって生成された入力テストパターンである。
【0098】
また、48は第2種ブロックについて、入力テストパターン47にもとづいて、動的タイミング検証を行う動的タイミング検証部、49は動的タイミング検証部48によって得られた動的タイミング検証結果、50は動的タイミング検証結果49から、第1種ブロックへ入力すべきデータ信号の入力タイミングに関する情報を抽出するデータ入力タイミング抽出部、そして、51はデータ入力タイミング抽出部50で抽出されたデータ入力タイミングである。
【0099】
動的タイミング検証結果49はテストパターン生成部46へも入力される。そして、テストパターン生成部46は、静的タイミング検証結果45または動的タイミング検証結果49のいずれかを選択的に参照する。また、データ入力タイミング51は、静的タイミング検証部62へも入力される。そして、静的タイミング検証部62は、データ入力タイミング情報9とデータ入力タイミング51のいずれかを選択的に参照する。
【0100】
図21は、装置104が検証の対象とする対象回路の一例を示す回路図である。この対象回路Y3には、周期が必ずしも同一でない6個のクロックT11〜T16、および外部入力データData11が、外部から入力端子(図中に白三角で示す)を通じて入力される。そして、対象回路Y3は、これらの信号にもとづいて所定の論理演算を実行し、出力信号Out11,Out12を出力端子(図中に白三角で示す)を通じて外部へと出力するように構成されている。
【0101】
対象回路Y1が備える7個の素子U10〜U16は、クロック端子Tへ入力されるクロックの立ち上がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移に同期して、データ入力端子Dへ入力されたデータ信号を、クロックのつぎの立ち上がりエッジまで保持して出力端子Qへと出力し続けるフリップフロップである。素子S101〜S105は、信号の伝搬に遅延をもらたらす任意の素子、あるいは素子の組み合わせである。また、素子S106は、NAND素子である。
【0102】
以下において、この対象回路Y3を例として、装置104の動作について説明する。装置104は図22のフローチャートに沿って動作する。すなわち、装置104が動作を開始すると、まずステップS41において、外部より回路接続情報7が論理回路ブロック分割部41へ入力され、クロック情報61が静的タイミング検証部62、およびテストパターン生成部46へと入力される。
【0103】
これらの回路接続情報7およびクロック情報61は、外部から手作業で、あるいは外部の入力装置を用いて付与される。また、これらの情報を論理回路ブロック分割部41あるいは静的タイミング検証部62等へ直接入力する代わりに、装置104に記憶媒体を設けておき、この記憶媒体へ記憶させてもよい。そうして、静的タイミング検証部62等では、処理が進行する中で必要に応じて記憶媒体から情報の必要部分を読み出すようにしてもよい。
【0104】
つぎに、ステップS42において、論理回路ブロック分割部41による論理回路ブロックへの分割が行われる。すなわち、対象回路Y3が、第1種ブロックと、第2種ブロックとに分割される。図21に示すように、対象回路Y3はブロックBL1〜BL9に分割される。そして、ブロックBL1,BL4,BL9は、それぞれクロックT11,T14,T16のみで動作するブロックであり、いずれも第1種ブロックに属する。ブロックBL2,BL3,BL5〜BL8は、いずれも2個のクロックで動作するブロックであり、第2種ブロックに属する。
【0105】
回路接続情報7の中から第1種ブロックに属するブロックBL1,BL4,BL9の各々に関する部分を抽出することによって、第1種ブロック接続情報42が得られる。同様に、第2種ブロックに属するブロックBL2,BL3,BL5〜BL8の各々に関する部分を抽出することによって、第2種ブロック接続情報43が得られる。
【0106】
つぎに、処理はステップS43へと移行し、静的タイミング検証部62によって、第1種ブロックに分類されたブロックBL1,BL4,BL9の中の、最も入力側に位置するブロックBL1に対する静的タイミング検証が行われる。ブロックBL1には、ただ一つのクロックT11が入力されているために、ブロックBL1の静的タイミング検証、すなわち素子U10,U11に対する静的タイミング検証は、単一クロックで動作する対象回路に対する従来周知の手法で行われる。
【0107】
このとき、第1種ブロック接続情報42にもとづいて、素子U10,U11の動作、セットアップ時間Setup,ホールド時間Hold等の特性、および素子S101による遅延時間DelayAが把握される。また、データ入力タイミング情報9にもとづいて外部入力データData11のタイミングが把握され、クロック情報61にもとづいてクロックT11のタイミングが把握される。タイミング検証の結果は、静的タイミング検証結果45として出力される。
【0108】
つぎに、ステップS44で出力側にブロックが存在するか否かが判定される。ブロックBL1の出力側には、第2種ブロックであるブロックBL2が存在するので、判定結果は「Yes」であり、処理はステップS46へと移行す。ステップS46では、ブロックBL2に対する動的タイミング検証を実行するための入力テストパターンが、ブロックBL1に対する静的タイミング検証結果45にもとづいて作成される。すなわち、テストパターン生成部46によって、ブロックBL2への2つの入力信号のパターン、すなわち素子U11のデータ入力端子Dへ入力されるデータ信号とクロック端子Tへ入力されるクロック信号のパターンが生成される。
【0109】
図23は、テストパターン生成部46で作成されるブロックBL2の入力テストパターンの例を示すタイミングチャートである。図23に示すように、素子U11のデータ入力端子Dへ入力されるデータ信号U11/Dは、クロック端子Tへ入力されるクロック信号T11が2度立ち上がる毎に変化し、しかも、遅延時間DelayAだけ遅延している。
【0110】
つぎに、処理はステップS47へ移行し、動的タイミング検証部48によって、ブロックBL2に対する動的タイミング検証が行われる。動的タイミング検証は、論理シミュレーションを用いてタイミング検証を行うものであり、従来周知の手法である。動的タイミング検証部48は、第2種ブロック接続情報43にもとづいて、ブロックBL2を構成する各素子U11,U12,S102の種類と接続状態を把握し、入力テストパターン47が入力されたときの、各素子の挙動をシミュレートする。
【0111】
そして、シミュレーションの結果にもとづいて、セットアップ時間Setup、ホールド時間Hold等の条件を満たしているか否かが判定される。したがって、素子S102による遅延時間DelayBをも考慮した検証が行われる。検証の結果は、動的タイミング検証結果49として出力される。
【0112】
つぎに、ステップS48において、出力側に第1種ブロックが接続されているか否かが判定される。ブロックBL2の出力側には第2種ブロックであるブロックBL3が接続されているので、判定の結果は「No」であり、処理はステップS46へと戻る。ステップS46では、ブロックBL3に対する動的タイミング検証を実行するための入力テストパターンが、ブロックBL2に対する動的タイミング検証結果49にもとづいて作成される。
【0113】
その後、処理はステップS47へ移行し、新たに作成された入力テストパターン47にもとづいて、ブロックBL3に対する動的タイミング検証が、動的タイミング検証部48によって実行される。
【0114】
ブロックBL3の出力側には第1種ブロックであるブロックBL4が接続されているので、つづくステップS48では、「Yes」と判定される。したがって、処理はステップS49へと移行する。ステップS49では、ブロックBL3に対する動的タイミング検証結果49から、ブロックBL4のデータ入力タイミング、すなわち素子U14のデータ入力端子Dへ入力されるデータの入力タイミングが抽出される。この処理は、データ入力タイミング抽出部50によって行われ、得られたデータは、データ入力タイミング51として出力される。
【0115】
データ入力タイミング抽出部50による抽出は、図24のタイミングチャートに例示するように、例えば、素子U12のデータ入力端子Dに入力されるデータが変化する時刻と、クロック端子Tへ入力されるクロックT12が変化する時刻との間の時間差が、最小となる4種類のタイミングを抽出することによって遂行される。図24に示すsetup(rise),setup(fall),hold(rise),およびhold(fall)が、これらの4種類のタイミングにおける最小時間差である。
【0116】
これらの中で、括弧中に「rise」、および「fall」と記された時間差は、それぞれ、入力データが立ち上がるとき、および立ち下がるときの時間差である。また、「setup」、および「hold」と記された時間差は、それぞれ、セットアップ時間Setup、およびホールド時間Holdを指す。
【0117】
つぎに、処理はステップS43へ移り、静的タイミング検証部62によって、ブロックBL4に対する静的タイミング検証が実行される。このとき、データ入力タイミング情報9は参照されず、代わりに、データ入力タイミング51が参照される。
【0118】
ブロックBL4の出力側には、もはやブロックは存在しないので、つづくステップS44では、「No」と判定される。その結果、処理はステップS45へ移行する。ステップS45では、未検証のブロックが対象回路Y3の中に存在するか否かが判定される。ブロックBL5をはじめとするブロックが、未検証のまま残されているので、「Yes」と判定され、処理はステップS43へと移行する。
【0119】
以上の処理によって、ブロックBL1,BL2,BL3,BL4の系列に沿ったタイミング検証が完了する。同様の処理を反復することによって、ブロックBL1,BL5,BL6,BL4の系列、および、ブロックBL1,BL7,BL8,BL9の系列のタイミング検証が行われる。これらすべての検証が完了すると、ステップS45において、はじめて「No」との判定が得られ、すべての処理が完了する。
【0120】
対象回路Y3では、いずれの系列においても、第1種ブロックと第1種ブロックの間には、第2種ブロックのみが存在したが、例えば、ブロックBL1,BL2,BL3,BL4の系列において、第2種ブロックであるBL2,BL3の間に、第1種ブロック(仮に、ブロックBL10とする)が存在する対象回路に対しても、装置104を用いて検証を行うことが可能である。
【0121】
以上のように、装置104は、静的タイミングの手法と動的タイミングの手法を回路ブロック毎に適宜使い分けることによって、周期が同一でない複数のクロックが入力される対象回路に対するタイミング検証を可能としている。
【0122】
なお、対象回路Y3に入力される複数のクロックは、周期が異なるだけでなく、互いに独立で同期しないクロックであってもよい。これらのいずれであっても、装置104は、対象回路の検証を全く同様に実行する。
【0123】
<5.変形例>
上記各実施の形態の装置101〜104は、それぞれにおいて例示した形態に限らず、クロックの立ち上がり、立ち下がりのいずれに同期して動作する回路をも検証対象とすることができる。すなわち、対象回路は、一般に各クロックのノーマルレベルからアクティブレベルへの変化時刻に同期して動作するものであればよい。
【0124】
さらに、実施の形態3で例示したように、クロックのレベルで動作するレベルセンシティブな回路をも検証対象とすることが可能である。実施の形態3では、ロウレベルがアクティブレベルである例を示したが、いうまでもなくアクティブレベルがハイレベルであってもよい。
【0125】
【発明の効果】
第1の発明の装置では、非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある素子の中のデータ受信側素子について、入力されるデータ信号とクロック信号の間のタイミング検証が行われる。検証は一対のクロックが変化する時期が最小区間の関係にあるという最も厳しい条件に対して行われるので、検証の目的は達成される。しかも、この検証の手法は静的タイミングの手法に属する。すなわち、静的タイミングの高速性を損なうことなく、非倍周の関係にあるクロックが入力される対象回路のタイミング検証が行われる。
【0126】
第2の発明の装置では、対象素子検索手段、パスサーチ手段、およびクロック判定手段が備わり、しかも、タイミング評価手段は、クロック判定手段の判定に応じて、一対のクロックにおける倍周、非倍周の関係に適応した静的タイミングの手法を選択して実行する。このため、複数のクロックが入力される対象回路において、クロック間の関係が倍周、非倍周のいずれであっても、あるいは双方の関係を含んでいても、データ転送側素子とデータ受信側素子の関係を有するすべてのデータ受信側素子に対して、静的タイミング検証の手法で網羅的にタイミング検証が行われる。
【0127】
第3の発明の装置では、パスサーチ手段がデータ転送側素子を探し出せなかったとき、すなわちクロックに同期して動作するデータ転送側素子を介することなく、データ信号が外部から対象素子へと入力される場合には、データ入力タイミング情報を参照して、対象素子のタイミング検証が行われる。したがって、複数のクロックが入力される対象回路において、クロック間の関係が倍周、非倍周のいずれであっても、あるいは双方の関係を含んでいても、対象回路に含まれるすべての素子に対して、静的タイミング検証の手法で網羅的にタイミング検証が行われる。
【0128】
第4の発明の装置では、最小区間の算出にクロック配線の遅延時間が反映されているので、非倍周の関係を有する複数のクロックが入力される対象回路に対して、クロック配線の遅延時間をも考慮したタイミング検証が、静的タイミングの手法にもとづいて高速に実行される。
【0129】
第5の発明の装置では、バックアノテーション手段が備わるので、対象回路のレイアウト設計に付随して作成されるレイアウト情報を利用することができ、回路接続情報、および配線遅延時間に関する情報を別途準備する必要がない。すなわち、タイミング検証を行うのに必要な労力、時間が節減される。
【0130】
第6の発明の装置では、外部から適宜設定されるデータ転送サイクルが、最小区間に加算されるので、非倍周の関係を有する複数のクロックが入力される対象回路に対して、データ転送サイクルを考慮したタイミング検証が、静的タイミングの手法にもとづいて能率よく行われる。
【0131】
第7の発明の装置では、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、最小区間の探索が行われるので、能率が良くしかも探索漏れがない。
【0132】
第8の発明の装置では、最小区間算出手段が、対象回路に入力される複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出するので、最小区間の算出を必要とする組合わせを、回路接続情報を参照して選択する必要がない。すなわち、処理の能率が高められる。
【図面の簡単な説明】
【図1】 実施の形態1の装置のブロック図である。
【図2】 対象回路の一例を示すブロック図である。
【図3】 実施の形態1の装置の動作を示すフローチャートである。
【図4】 クロック情報の例を示す説明図である。
【図5】 実施の形態1の装置の動作を説明するタイミングチャートである。
【図6】 実施の形態1の静的タイミング検証部のブロック図である。
【図7】 実施の形態1の静的タイミング検証部のフローチャートである。
【図8】 実施の形態1の装置の動作を説明するタイミングチャートである。
【図9】 実施の形態2の装置のブロック図である。
【図10】 実施の形態2の装置の動作を示すフローチャートである。
【図11】 対象回路の一部を示すブロック図である。
【図12】 実施の形態2の装置の動作を示すタイミングチャートである。
【図13】 実施の形態1の静的タイミング検証部のブロック図である。
【図14】 実施の形態2の装置の動作を示すタイミングチャートである。
【図15】 対象回路の別の例を示すブロック図である。
【図16】 実施の形態3の装置のブロック図である。
【図17】 実施の形態3の装置の動作を示すフローチャートである。
【図18】 実施の形態3の装置の動作を示すタイミングチャートである。
【図19】 実施の形態3の装置の動作を示すタイミングチャートである。
【図20】 実施の形態4の装置のブロック図である。
【図21】 対象回路のさらに別の例を示すブロック図である。
【図22】 実施の形態4の装置の動作を示すフローチャートである。
【図23】 実施の形態4の装置の動作を示すタイミングチャートである。
【図24】 実施の形態4の装置の動作を示すタイミングチャートである。
【図25】 従来の装置のブロック図である。
【図26】 従来の装置の動作を示すタイミングチャートである。
【符号の説明】
1 データ転送側クロック情報(クロック情報)、2 データ受信側クロック情報(クロック情報)、5 立ち上がりエッジ最小区間算出部(最小区間算出手段)、7 回路接続情報、9 データ入力タイミング情報、20 レイアウト情報、21 バックアノテーション装置(バックアノテーション手段)、23 配線遅延情報、24 クロックディレイ算出部(クロックディレイ算出手段)、27 クロックディレイ加算部(クロックディレイ加算手段)、30 データ転送サイクル(データ転送サイクル情報)、41 論理回路ブロック分割部(ブロック分割手段)、42 第1種ブロック接続情報、43 第2種ブロック接続情報、46 テストパターン生成部(テストパターン生成手段)、48 動的タイミング検証部(動的タイミング検証手段)、50 データ入力タイミング抽出部(データ入力タイミング抽出手段)、62 静的タイミング検証部(静的タイミング検証手段)、81 対象素子検索部(対象素子検索手段)、82 パスサーチ部(パスサーチ手段)、83 クロック判定部(クロック判定手段)、84 タイミング評価部(タイミング評価手段)、Trise 立ち上がりエッジ最小区間(最小区間)、Tfall 立ち下がりエッジ最小区間(最小区間)。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a timing verification device, and more particularly to an improvement for enabling timing verification of a target circuit to which a plurality of clocks that are not in a frequency-division relationship are input.
[0002]
[Prior art]
Conventionally, a static timing verification method is known as an effective method for performing timing verification of a large-scale circuit represented by an LSI (Large Scale Integrated Circuit). The static timing verification method is a verification method based on a path analysis method for a synchronous circuit, and has an advantage that processing can be performed comprehensively and at high speed without using a verification pattern.
[0003]
FIG. 25 is a block diagram showing a conventional timing verification apparatus that performs static timing verification. This conventional device 150 includes a static timing verification unit 120 as the most main device unit. In the static timing verification unit 120, the circuit connection information 7 which is information regarding the configuration of the target circuit, that is, the circuit subjected to timing verification, and data describing the timing of the external input data input to the target circuit Input timing information 9 is input. In addition, when performing back annotation verification, wiring delay information 23 having information on wiring capacitance and wiring resistance is input.
[0004]
Further, the static timing verification unit 120 is configured to be able to verify a target circuit that operates with a plurality of clocks. Information regarding the timing of all clocks input to the verification circuit, that is, clock information 121 is prepared. In the static timing verification unit 120, necessary clock information is appropriately used from the clock information 121 as the verification operation proceeds.
[0005]
The static timing verification unit 120 performs static timing verification of the target circuit based on these pieces of information.
[0006]
[Problems to be solved by the invention]
However, in the conventional device 150, although a circuit that operates with a plurality of clocks can be a target for verification, the plurality of clocks have to be in a double-frequency relationship. That is, as illustrated in the timing chart of FIG. 26, there is a problem in that the period of the transfer side clock T21 and the reception side clock T22 belonging to each set must have a natural number multiple relationship. It was.
[0007]
The present invention has been made in order to solve the above-described problems in the conventional apparatus, and to a target circuit to which a plurality of clocks that are not in a double frequency relationship are input while taking advantage of the static timing verification. However, it is an object of the present invention to provide a timing verification apparatus that can execute timing verification.
[0008]
[Means for Solving the Problems]
According to a first aspect of the present invention, there is provided a timing verification apparatus that performs timing verification of a target circuit including a plurality of elements that operate in synchronization with a plurality of clocks. The plurality of clocks are based on clock information that defines the plurality of clocks. A minimum interval calculating means for calculating the closest time interval, that is, the minimum interval in a range in which the time at which the level changes from one level to the other level do not coincide with each other with respect to the clocks that are not doubled in the clock, A pair of clocks in a non-multiplier relationship are respectively input, a pair of the plurality of elements in a relationship between a data transfer side element and a data reception side element, and a data signal path between them, Circuit connection information defining the target circuit is referred to, and the change time of the pair of clocks is related to the minimum section. With the proviso that in, characterized in that it comprises a timing evaluation means for performing a verification of the timing between the clock and the data signal input to the data receiver elements.
[0009]
According to a second aspect of the present invention, there is provided a timing verification apparatus for performing timing verification of a target circuit including a plurality of elements that operate in synchronization with a plurality of clocks. The plurality of clocks based on clock information defining the plurality of clocks. A minimum interval calculating means for calculating the closest time interval, that is, the minimum interval in a range in which the time at which the level changes from one level to the other level do not coincide with each other with respect to the clocks that are not doubled in the clock, Based on circuit connection information defining the target circuit, target element search means for sequentially selecting one target element from the plurality of elements, and receiving the target element selected by the target element search means A side element and a data transfer side element corresponding to the side element are searched for from the plurality of elements based on the circuit connection information. Based on the search means and the clock information, a determination is made as to whether the relationship between a pair of clocks input to the data transfer side element and the data reception side element is a double frequency or a non-multiplier, respectively. The circuit determination information is referred to the clock determination means, the data transfer side element, the data reception side element, and the circuit portion including the data signal path therebetween, and the result of the determination is doubled. The clock information is referred to, and when the result of the determination is non-multiplied, the data receiving side is configured on the condition that the change times of the pair of clocks are in the relationship of the minimum interval. Timing evaluation means for performing verification of timing between a clock input to the element and the data signal.
[0010]
The apparatus according to a third aspect is the timing verification apparatus according to the second aspect, wherein the timing evaluation means further determines that the path search means cannot find the data transfer side element, and sends the target element and the target element. The circuit portion including the path of the external input data signal to be input is referred to the circuit connection information, and based on the data input timing information defining the external input data signal and the clock information, The verification of the timing between the clock input to the target element and the external input data signal is executed.
[0011]
A device of a fourth invention is the timing verification device of any one of the first to third inventions, based on wiring delay information defining a signal delay time of the wiring of the target circuit and the circuit connection information. A clock delay calculating means for individually calculating a delay time of a plurality of clock wirings for transmitting a clock to the plurality of elements; and a timing specified by the clock information for a clock input to the element for each of the plurality of elements. Clock delay addition means for creating clock information with delay by adding the delay time, and the minimum interval calculation means, by referring to the clock information with delay instead of the clock information, The minimum interval is calculated.
[0012]
According to a fifth aspect of the invention, in the timing verification apparatus of the fourth aspect, the apparatus further comprises back annotation means for extracting the circuit connection information and the wiring delay time from the layout information that defines the layout of the target circuit. It is characterized by that.
[0013]
According to a sixth aspect of the present invention, in the timing verification device according to any one of the first to third aspects, the minimum interval calculation means adds a data transfer cycle defined in the data transfer cycle information to the calculated minimum interval. In addition, the timing evaluation means refers to the value added with the data transfer cycle as the minimum interval.
[0014]
The apparatus according to a seventh aspect is the timing verification apparatus according to any one of the first to sixth aspects, wherein the minimum interval calculation means sets the least common multiple of both periods to a clock having a non-multiplication relationship. The minimum interval is searched in a corresponding period.
[0015]
According to an eighth aspect of the present invention, in the timing verification apparatus according to any one of the first to seventh aspects, the minimum interval calculation means includes all the clocks having a non-multiplication relationship among the plurality of clocks. The minimum interval is calculated for the combination.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
<1. Embodiment 1>
First, the timing verification apparatus according to the first embodiment will be described.
[0018]
<1-1. Overall configuration and operation>
FIG. 1 is a block diagram showing the configuration of the timing verification apparatus 101 of this embodiment. In FIG. 1, reference numeral 1 denotes information related to the rise time, period, etc. of the clock on the data transfer side used in a block in which data transfer is performed with clocks having different periods among the clocks input to the target circuit, that is, the data transfer side Clock information, 2 is data reception side clock information used in the same block as the data transfer side clock information 1. These clock information 1 and 2 are given from the outside.
[0019]
Further, 3 is a synchronization time calculation unit that calculates the time at which the data transfer side clock information and the data reception side clock information rise simultaneously (synchronization time), 4 is a synchronization time that is numerical information calculated by the synchronization time calculation unit 3, 5 is calculated by the rising edge minimum interval calculation unit for calculating the rising edge minimum interval based on the data transfer side clock information, the data reception side clock information and the synchronization time, and 6 is calculated by the rising edge minimum interval calculation unit 5. This is the minimum rising edge section that is numerical information.
[0020]
Further, 7 is circuit connection information which is information given from the outside regarding the configuration of the target circuit, and 9 is data input timing information. The circuit connection information 7 is information corresponding to the circuit diagram of the target circuit, that is, information relating to the types of elements constituting the target circuit and the connection of those elements, and is given from the outside. The data input timing information 9 is information relating to the time when the external input data input to the target circuit changes, and is described in particular so that the relative relationship with the clock rising time becomes clear. This data input timing information 9 is also given from the outside.
[0021]
Finally, reference numeral 8 denotes a static timing verification unit that performs static timing verification based on the clock information 1, the rising edge minimum section 6, the circuit connection information 7, and the data input timing information 9.
[0022]
FIG. 2 is a circuit diagram illustrating an example of a target circuit to be verified by the apparatus 101. Three clocks T1 to T3 having different periods and two external input data Data1 and Data2 are inputted to the target circuit Y1 from the outside through input terminals (indicated by white triangles in the figure). The target circuit Y1 is configured to execute a predetermined logical operation based on these signals and output the output signal Out to the outside through an output terminal (indicated by a white triangle in the figure).
[0023]
Among the clocks T1 to T3, the clocks T1 and T3 are in a double-frequency relationship, and the clock T2 is in a non-multiplier relationship with the other clocks T1 and T3. That is, a plurality of clocks including clocks having a non-multiplication relationship with each other are input to the target circuit Y1.
[0024]
The six elements U1 to U6 included in the target circuit Y1 are data signals input to the data input terminal D in synchronization with the rising edge of the clock input to the clock terminal T, that is, the transition from the normal level to the active level. Is held until the next rising edge of the clock and continues to be output to the output terminal Q. The elements S1 to S3 are arbitrary elements or combinations of elements that cause a delay in signal propagation. The element S4 is a NAND element.
[0025]
Hereinafter, the operation of the device 101 will be described using the target circuit Y1 as an example. The apparatus 101 operates according to the flowchart of FIG. That is, when the device 101 starts operation, first, in step S11, the data transfer side clock information 1 and the data reception side clock information 2 are given to the synchronization time calculation unit 3. Such clock information 1 and 2 is given manually from the outside or using an external input device.
[0026]
FIG. 4 illustrates the contents of the clock information 1 and 2 for the target circuit Y1. The clock information 1 and 2 is obtained by distributing the clocks T1 to T3 of the target circuit Y1 between the transfer side and the reception side. The distribution is preferably performed for all possible combinations regardless of the circuit configuration of the target circuit Y1. In this case, the clock information 1 and 2 are prepared corresponding to six combinations N = 1 to 6, as shown in FIG.
[0027]
Next, the process proceeds to step S12, and the synchronization time calculation unit 3 calculates the synchronization time based on the clock information 1 and 2. This calculation is performed for a combination in which the data transfer side clock and the data reception side clock have a non-multiplication relationship. That is, the combinations of the numerical values that are executed and calculated for the combinations N = 1, 3, 4, and 6 shown in FIG. 4 are sent to the rising edge minimum interval calculation unit 5 as the synchronization time 4.
[0028]
The synchronization time Syn1 is calculated as the least common multiple of a set of clock cycles Cyc1 and Cyc2 belonging to the clock information 1 and 2. That is, the synchronization time Syn1 is given by Equation (1): {Syn1 = the least common multiple of the cycles Cyc1 and Cyc2}. For example, for the combination N = 1, the synchronization time Syn1 is given as the least common multiple of the cycle Cyc1 of the clock T1 and the cycle Cyc2 of the clock T2.
[0029]
Next, the process proceeds to step S13, and the rising edge minimum section calculation unit 5 calculates the rising edge minimum section based on the clock information 1 and 2 and the synchronization time 4. This calculation is also performed for each of the combinations N = 1, 3, 4, and 6 in FIG. Hereinafter, a calculation procedure will be described for an example of a combination of clocks T1 and T2 (N = 1).
[0030]
First, the next synchronization time Syn2 after the synchronization time Syn1 is calculated according to Equation (2): {Syn2 = Syn1 × 2}. Subsequently, the data transfer side clock rise time T1rise_time is defined by Expression (3): {T1rise_time = Cyc1 × m}. Similarly, the data reception side clock rise time T2rise_time is defined by Expression (4): {T2rise_time = Cyc2 × n}. Here, the variables m and n are both natural numbers.
[0031]
Subsequently, all three conditions given by Formula (5): {T1rise_time <T2rise_time}, Formula (6): {Syn1 ≦ T1rise_time <Syn2}, and Formula (7): {Syn1 <T2rise_time ≦ Syn2} are all satisfied. The minimum value of the difference between T2rise_time and T1rise_time within the range to be satisfied is calculated as the rising edge minimum interval Trise. In other words, the rising edge minimum interval Trise calculates the minimum value for all natural numbers m and n satisfying the equations (5) to (7) based on the equation (8): {Trise = MIN (T2rise_time−T1rise_time)}. Can be obtained.
[0032]
As a result, as illustrated in the timing chart of FIG. 5, the rising edge minimum interval Trise is given as the minimum value of the time interval from the rising time of the clock T1 to the subsequent rising time of the clock T2. In other words, the rising edge minimum interval Trise is given as the closest time interval in the range where the rising times do not coincide with each other between the clocks T1 and T2. Therefore, the strictest conditions are extracted when the receiving-side element to which the clock T2 is input operates normally.
[0033]
<1-2. Configuration and operation of static timing verification unit 8>
Next, the process proceeds to step S14. At this stage, static timing verification is performed by the static timing verification unit 8. FIG. 6 is a block diagram showing an internal configuration of the static timing verification unit 8. FIG. 7 is a flowchart showing a processing procedure in the static timing verification unit 8. The internal configuration and operation of the static timing verification unit 8 will be described below with reference to FIGS. 6 and 7.
[0034]
When the process of step S14 is started, first, in step S141, a target element to be verified in the target circuit Y1 is searched. This process is performed by the target element search unit 81. That is, the target element search unit 81 searches the target circuit Y1 for an element to be verified for the time being based on the circuit connection information 7.
[0035]
Next, the process proceeds to step S142, and a path search is executed. That is, the clock input to the target element, the receiving element, and its clock are searched. This process is executed by the path search unit 82 based on the information related to the target element selected by the target element search unit 81 and the circuit connection information 7.
[0036]
If the element U2 is selected as the target element, the clock T2 input to the element U2 is first searched by the path search. Subsequently, the signal input to the element U2 is traced, and the element S1, the element U1, and the clock T1 input to the element U1 are searched for. The clock T1 is recognized as the data transfer side clock, and the clock T2 is recognized as the data reception side clock. As a result, in the subsequent processing, only the circuit block X1 including the elements U1 and U2 and the element S1 interposed therebetween in the target circuit Y1 of FIG.
[0037]
Next, the process proceeds to step S143. Here, the clock determination unit 83 makes a first determination regarding the clock. That is, it is determined whether or not the input data to the selected target element is the external input data Data1 and Data2. If the determination result is “Yes”, the process proceeds to step S145, and if “No”, the process proceeds to step S144.
[0038]
In step S144, the clock determination unit 83 continues to perform the second determination. That is, it is determined whether or not the relationship between the data transfer side clock and the data reception side clock is a doubled relationship. This determination is made based on the clock information 1 and 2. If the determination result is “Yes”, the process proceeds to step S136, and if “No”, the process proceeds to step S147.
[0039]
In the example in which the target element is the element U2, the input data is neither the external input data Data1 nor Data2, so the process moves from step S143 to step S144. Then, as shown in FIG. 4, the clocks T1 and T2 are in a non-multiplication relationship with each other, so the processing further proceeds to step S147.
[0040]
If the target element is, for example, the element U3, the input data is the external input data Data1, and therefore the process proceeds from step S143 to step S145.
[0041]
Further, when the target element is U6, for example, the clock T1 becomes the data transfer side clock, and the clock T3 becomes the data reception side clock. Since the input data is neither external data Data1 nor Data2, the process proceeds from step S143 to step S144. Furthermore, since the relationship between the clocks T1 and T3 is a double-frequency relationship as shown in FIG. 4, the process proceeds from step S144 to step S146.
[0042]
The processing of steps S145 to S147 is executed by the timing evaluation unit 84. Among these, the processes in steps S145 and S146 are well-known processes that are also performed by the static timing verification unit 120 of the conventional apparatus 150.
[0043]
In step S145, for example, regarding the target element U3, the timing between the clock T1 supplied by one of the clock information 1 and 2 and the external input data Data1 supplied by the data input timing information 9 is defined by the circuit connection information 7. It is determined whether or not conditions such as setup time and hold time necessary for normal operation of the element U3 are satisfied. When an element is present in the path of the external input data Data1, the delay time due to this element is taken into account by referring to the circuit connection information 7.
[0044]
In step S146, for example, regarding the target element U6, the clocks T1 and T2 supplied by the clock information 1 and 2 are set up time, hold time, and the like necessary for normal operation of the element U6 defined by the circuit connection information 7. It is determined whether or not the above condition is satisfied. At this time, the determination is performed based on the circuit connection information 7 in consideration of the signal delay time due to the element S3 interposed between the elements U5 and U6.
[0045]
In step S147, in addition to the clock information 1, 2 and the circuit connection information 7, the rising edge minimum section 6 is further referred to. For example, when the target element is the element U2, as shown in the timing chart of FIG. 8, after the clock T1 rises, the most severe condition that the clock T2 rises at the time when the rising edge minimum interval Trise is passed. Thus, timing verification is performed.
[0046]
That is, the time when the output data appears at the output terminal Q of the element U1 is calculated based on the rising timing of the clock T1 supplied by the data transfer side clock information 1 and the function of the element U1 supplied by the circuit connection information 7. . Further, based on the function of the element S1 supplied by the circuit connection information 7, the time when the input data reaches the data input terminal D of the element U2 is calculated in consideration of the signal delay time by the element S1.
[0047]
Then, it is determined whether or not the clock T2 that rises after the rising edge minimum interval Tries from the rising timing of the clock T1 and the input data that reaches the element U2 satisfy the conditions relating to the setup time Setup and the hold time Hold, for example. For example, the time when the input data arrives at the element U2 precedes the rising time of the clock T2 by the setup time Setup or more, and the time when the input data to the element U2 changes next is the rising time of the clock T2. If it is later than the timing by the hold time Hold or more, it is determined that there is no timing error.
[0048]
Conversely, when any one of these conditions is not satisfied, it is determined that there is a timing error. In this way, the timing verification for the strictest condition is performed using the rising edge minimum section 6. In addition, verification is performed in consideration of the signal delay time due to the element S1.
[0049]
In steps S145 to S147, since the timing evaluation unit 84 compares timings between signals to be verified, not only the presence / absence of a timing error but also, for example, a quantitative analysis such as a margin size and an error level. Can be easily obtained.
[0050]
When any one of steps S145 to S147 is completed, the process proceeds to step S148. In step S148, it is determined whether or not an unverified target element remains in the target circuit Y1. If it remains, the process returns to step S141 to search for a new target element. If not, the process in step S14 is terminated, and the entire process of the apparatus 101 is terminated accordingly (FIG. 3).
[0051]
In this way, by repeating the cycle of steps S141 to S148, timing verification is sequentially performed on all of the elements U1 to U6 that require timing verification in the target circuit Y1. In the cycle in which the elements U4, U5, and U1 that have not been given examples in the above are target elements, processing is performed as follows.
[0052]
In the cycle in which the element U4 is the target element, as shown in FIG. 4, the clock T1 is handled as the data transfer side clock and the clock T2 is handled as the data reception side clock. Therefore, step S147 is executed. In the cycle in which the element U5 is the target element, step S143 is executed in the same manner as in the cycle in which the element U3 is the target element, and the clock T1 and the external input data Data2 are compared.
[0053]
Further, when the element U1 is the target element, as shown in FIG. 4, a cycle in which the clock T2 is used as the data transfer side clock and the clock T1 as the data reception side clock, and the clock T3 is the data transfer side clock and the clock T1. Both of the two cycles are executed, which is a cycle that handles the data as a data receiving side clock. The former uses the element U4 as the transfer side element, and the latter uses the element U6 as the transfer side element. In the former, step S147 is executed, and in the latter, step S146 is executed.
[0054]
As described above, static timing can be obtained by using the device 101 even for a target circuit that cannot be verified by the conventional device 150 because a plurality of clocks having a non-multiplication relationship are input. Efficient verification based on this method becomes possible.
[0055]
As shown in FIG. 4, a preferred example is shown in which clock information 1 and 2 are prepared for all six combinations N = 1 to 6 in step S11, but the configuration of the target circuit Y1 is shown. In consideration, for example, the clock information 1 and 2 can be prepared only for the combinations of N = 1 to 3 and 5.
[0056]
In addition, although an example in which the clock information 1 and 2 are directly input from the outside to the synchronization time calculation unit 3 in step S11 has been shown, a storage medium is provided in the apparatus 101, and the clock information 1 is previously stored in the storage medium. , 2 may be stored. In this case, in step S11, a process of reading the clock information 1 and 2 from the storage medium to the synchronization time calculation unit 3 is performed.
[0057]
Further, the apparatus 101 is also configured to temporarily store the circuit connection information 7 and the data input timing information 9 in the storage medium and read them appropriately from the storage medium in accordance with the operation of the static timing verification unit 8. May be configured.
[0058]
<2. Second Embodiment>
FIG. 9 is a block diagram illustrating a configuration of the timing verification apparatus 102 according to the second embodiment. In the following drawings, the same parts as those of the apparatus 101 shown in FIGS. 1 and 6 are denoted by the same reference numerals, and detailed description thereof is omitted.
[0059]
In FIG. 9, 20 is the layout information of the target circuit, 21 is a back annotation device that extracts circuit connection information and wiring delay information from the layout information 20, 22 is circuit connection information of the target circuit extracted by the back annotation device 21, and , 23 are wiring delay information calculated by the back annotation device 21. The layout information 20 is given from the outside.
[0060]
Further, 24 calculates the delay time of the clock wiring, that is, the delay time of the clock propagating through the clock wiring (clock delay) based on the circuit connection information 22 and the wiring delay information 23, and the data transfer side clock and the data reception side clock. The clock delay calculating unit 25 outputs a clock delay separately, 25 is a data transfer side clock delay calculated by the clock delay calculating unit 24, and 26 is a data receiving side clock delay calculated by the clock delay calculating unit 24. It is.
[0061]
Further, 27 is a clock delay adder that adds the data transfer side clock delay 25 to the data transfer side clock information 1 and adds the data reception side clock delay 26 to the data reception side clock information 2, and 28 is the data transfer side clock information 1. The data transfer side clock delay 25 is added to the data transfer side clock delay 25, and the data reception side delay clock information 29 is the data reception side clock information 2 added to the data reception side clock information 2.
[0062]
Hereinafter, the operation of the device 102 will be described using the target circuit Y1 shown in FIG. 2 as an example. The device 102 operates according to the flowchart of FIG. That is, when the apparatus 102 starts operation, first, in step S20, circuit connection information and wiring delay information are extracted. This processing is executed by the back annotation device 21 based on the layout information 20 related to the target circuit Y1 input from the outside.
[0063]
The layout information 20 is created accompanying the layout design of the target circuit Y1. In the apparatus 102, timing verification is performed by adding the layout information 20. That is, the apparatus 102 has an advantage that it is not necessary to create new data in order to perform timing verification.
[0064]
The circuit connection information 22 extracted by the back annotation device 21 corresponds to the circuit connection information 7 supplied to the device 101. That is, the circuit connection information 22 includes information on various elements constituting the target circuit Y1 and their connection. When calculating the wiring delay information 23, the back annotation device 21 first extracts wiring capacitance and wiring resistance from the layout information 20.
[0065]
Next, the process proceeds to step S21, and the clock delay calculation unit 24 calculates the clock delay. That is, in FIG. 2, the delay time of the clock wiring for transmitting the clocks T1 to T3 is calculated. That is, the delay time of the wiring from the input terminal (indicated by white triangles in FIG. 2) of the target circuit Y1 for receiving the clocks T1 to T3 from the outside to the clock terminals T of the elements U1 to U6 is calculated. Is done.
[0066]
The clock delay calculation unit 24 further includes a data transfer side clock delay 25 and a data reception side clock delay 26 for each combination N = 1 to 6 of the data transfer side clock and the data reception side clock as shown in FIG. Created and output. For example, for the combination N = 1 in FIG. 4, as shown in the circuit diagram of FIG. 11, the delay time Delay1 of the wiring of the clock T1 is output as the data transfer side clock delay 25, and the delay of the wiring of the clock T2 The time Delay 2 is output as the data receiving side clock delay 26.
[0067]
Next, the process proceeds to step S22, and the data transfer side clock information 1 and the data reception side clock information 2 are input to the clock delay adding unit 27 from the outside. This step S22 may be executed prior to the next step S23, and the context with steps S20 to S22 may be arbitrary.
[0068]
Next, in step S23, clock delay addition processing by the clock delay addition unit 27 is performed. That is, the data transfer side clock delay 25 is added to the data transfer side clock information 1 and output as clock information 28 with data transfer side delay, and the data reception side clock delay 26 is added to the data reception side clock information 2 to receive data. Output as clock information 29 with side delay.
[0069]
In the following steps S24 to S26, processing in which the clock information 1 and 2 are replaced with the delayed clock information 28 and 29 in steps S13 to S14 in the apparatus 101 of the first embodiment is performed. Accordingly, in the process of step S25, for example, for the combination N = 1 in FIG. 4, the data transfer side clock rise time U1rise_time with delay given by the equation (9): {U1rise_time = T1rise_time + Delay1} is obtained in step S13. Used instead of the data transfer side clock rise time T1rise_time.
[0070]
Also, the data reception side clock rise time U2rise_time with delay given by Equation (10): {U2rise_time = T2rise_time + Delay2} is used instead of the data reception side clock rise time T2rise_time in step S13. That is, in Equations (5) to (8), the rising edge minimum interval Trise is calculated by replacing the rising times T1rise_time and T2rise_time with the delaying rising times U1rise_time and U2rise_time.
[0071]
As shown in the timing chart of FIG. 12, the rising times U1rise_time and U2rise_time with delay are obtained by adding delay times Delay1 and Delay2 of the clock wiring to the rising times T1rise_time and T2rise_time of the clocks T1 and T2 input to the input terminal of the target circuit Y1, respectively. Each corresponds to the added value. That is, the rise times U1rise_time and U2rise_time correspond to the rise times of the clocks T1 and T2 that reach the clock terminals T of the elements U1 and U2.
[0072]
Moreover, in step S26, the cycle of step S141-S148 is performed similarly to FIG. That is, in steps S145, S146, and S147, timing verification is performed in consideration of the clock wiring delay based on the clock information 1 and 2 and the wiring delay information 23.
[0073]
The relationship between the internal configuration of the static timing verification unit 8 that executes step S26 and various types of information is shown in the block diagram of FIG. That is, the internal configuration of the static timing verification unit 8 is the same as that of the static timing verification unit 8 (FIG. 6) of the apparatus 101 according to the first embodiment. The point that the wiring delay information 23 is supplied to the timing evaluation unit 84 is different from the static timing verification unit 8 of the apparatus 101.
[0074]
For example, in the cycle in which the element U2 is selected as the target element in step S141, the process of step S147 is executed. At this time, as shown in the timing chart of FIG. 14, the clock T1 input to the clock terminal T of the element U1 is input to the clock terminal T of the element U2 when the rising edge minimum interval Trise has passed after rising. Timing verification is performed for the most severe condition that the clock T2 rises.
[0075]
That is, the output data is output to the output terminal Q of the element U1 based on the rising timing of the clock T1 supplied by the data transfer side clock information 1, the function of the element U1 supplied by the circuit connection information 22, and the wiring delay information 23. The time of appearance is calculated. Further, based on the function of the element S1 supplied by the circuit connection information 22, the signal delay time Delay3 based on the signal delay time based on the element S1 and the wiring delay information 23 is taken into account, and then the data input terminal D of the element U2 is used. The time when the input data reaches is calculated.
[0076]
Then, it is determined whether or not the clock T2 that rises after the rising edge minimum interval Tries from the rising timing of the clock T1 and the input data that reaches the element U2 satisfy the conditions relating to the setup time Setup and the hold time Hold, for example.
[0077]
As described above, by using the device 102, the timing verification that considers the delay time of the clock wiring is performed for the target circuit to which a plurality of clocks having a non-multiplication relationship are input. It is possible to execute efficiently based on this.
[0078]
Instead of inputting clock information 1 and 2, data input timing information 9 and layout information 20 directly from the outside, a storage medium is provided, and this information is stored in advance in this storage medium. In addition, the apparatus 102 may be configured such that each part of the apparatus reads out necessary information from the storage medium as the apparatus operates.
[0079]
<3. Embodiment 3>
In the first and second embodiments, the operation has been described by taking the target circuit having an element that operates at the rising edge of the clock as an example. However, a circuit having an element that operates at a falling edge or a circuit having a so-called level sensitive element that operates at a clock level can also be used as a target circuit. In this embodiment, a characteristic timing verification apparatus that allows the number of data transfer cycles to be set from the outside will be described, and an operation example that particularly targets a circuit having a level-sensitive element will be shown.
[0080]
FIG. 15 is a circuit diagram showing an example of a target circuit used for explaining the operation of the timing verification apparatus of this embodiment. This target circuit Y2 has a structure in which, in the target circuit Y1 shown in FIG. 2, the elements U1 to U6 as flip-flops operating at the clock edge are replaced with latches operating at the clock level.
[0081]
That is, the elements U1 to U6 included in the target circuit Y2 receive the data signal input to the data input terminal D at the falling edge of the clock input to the clock terminal G, that is, the transition from the normal level to the active level. Is a latch that holds and outputs to the output terminal Q over a period when the signal is at the low level (active level). During the period when the clock is at a high level (normal level), the data signal input to the data input terminal D is output to the output terminal Q as it is.
[0082]
Assume that the clocks T1 to T3 input to the target circuit Y2 are the same as the clocks T1 to T3 input to the target circuit Y1. Therefore, the contents shown in FIG. 4 are also valid as they are for the clocks T1 to T3 of the target circuit Y2.
[0083]
FIG. 16 is a block diagram showing the configuration of the timing verification apparatus 103 of this embodiment. In FIG. 16, 30 is a data transfer cycle inputted from the outside, 31 is a minimum falling edge interval based on data transfer side clock information 1, data reception side clock information 2, synchronization time 4, and the number of data through latch stages 30 The falling edge minimum interval calculation unit 32 calculates the falling edge minimum interval calculated by the falling edge minimum interval calculation unit 31.
[0084]
Hereinafter, the operation of the device 103 will be described by taking the target circuit Y2 shown in FIG. 15 as an example. The device 103 operates according to the flowchart of FIG. That is, when the apparatus 103 starts operation, first, the processes of steps S31 to S32 are executed. These processes are the same as the processes in steps S11 to S12 in the apparatus 101.
[0085]
Thereafter, the process proceeds to step S33, and the falling edge minimum section calculation unit 31 calculates the falling edge minimum section. This calculation is performed for each of the combinations N = 1, 3, 4, 6 in FIG. 4 as in step S32. Hereinafter, a calculation procedure will be described for an example of a combination of clocks T1 and T2 (N = 1).
[0086]
First, the next synchronization time Syn2 after the synchronization time Syn1 is calculated according to the above-described equation (2). Subsequently, the data transfer side clock falling time T1fall_time is defined by Expression (11): {T1fall_time = Cyc1 × m}. Similarly, the data receiving side clock falling time T2fall_time is defined by Expression (12): {T2fall_time = Cyc2 × n}. Here, the variables m and n are both natural numbers.
[0087]
Subsequently, Formula (13): {T1fall_time + (data transfer cycle) <T2fall_time}, Formula (14): {Syn1 ≦ T1fall_time <Syn2}, and Formula (15): {Syn1 <T2fall_time ≦ Syn2} 3 The minimum value of the difference between T2fall_time and T1fall_time is calculated as the falling edge minimum section Tfall within a range that satisfies all the street conditions.
[0088]
That is, the minimum falling edge interval Tfall is calculated based on Equation (16): {Tfall = MIN (T2fall_time−T1fall_time)} for the minimum values for all natural numbers m and n satisfying Equations (13) to (15). It is obtained by doing. The “data transfer cycle” used in Equation (13) is a value input from the outside as the data transfer cycle 30.
[0089]
As a result, when “zero” is input as the data transfer cycle, as shown in the timing chart of FIG. 18, the minimum falling edge period Tfall starts from the falling time of the clock T1 and the clock T2 thereafter. It is given as the minimum value of the time interval until the fall time. On the other hand, when “1” is input as the data transfer cycle, as shown in the timing chart of FIG. 19, the minimum falling edge interval Tfall starts from the falling time of the clock T1 and the subsequent rising edge of the clock T2. This is given as a value obtained by adding one cycle of the clock T2 to the minimum value of the time interval until the falling time.
[0090]
Next, the process proceeds to step S34. In step S34, the cycle of steps S141 to S148 is executed as in FIG. For example, in the cycle in which the element U2 is selected as the target element in step S141, the process of step S147 is executed. At this time, as shown in the timing chart of FIG. 18 or FIG. 19, the timing verification is performed for the most severe condition that the clock T2 falls after the falling edge minimum section Tfall after the clock T1 falls. Is done.
[0091]
That is, the time when the output data appears at the output terminal Q of the element U1 is calculated based on the falling time of the clock T1 supplied by the data transfer side clock information 1 and the function of the element U1 supplied by the circuit connection information 7. The Further, based on the function of the element S1 supplied by the circuit connection information 7, the time when the input data reaches the data input terminal D of the element U2 is calculated in consideration of the signal delay time Delay by the element S1.
[0092]
Then, it is determined whether or not the clock T2 falling after the falling edge minimum interval Tfall from the falling timing of the clock T1 and the input data reaching the element U2 satisfy, for example, conditions relating to the setup time Setup and hold time Hold. Is done. As illustrated in FIGS. 18 and 19, the value of the data transfer cycle 30 is appropriately determined in consideration of the delay time of the signal from the output terminal Q of the element U1 to the data input terminal D of the element U2.
[0093]
As described above, by using the device 103, timing verification considering a data transfer cycle is performed on a target circuit to which a plurality of clocks having a non-multiplication relationship are input based on a static timing method. It is possible to execute efficiently. As exemplified in this embodiment, the devices 101 to 103 can also be used for a target circuit having a level-sensitive element with respect to a clock.
[0094]
Instead of inputting clock information 1, 2, circuit connection information 7, data input timing information 9, data transfer cycle 30 and the like directly from the outside, a storage medium is provided, and these are stored in advance in the storage medium. The apparatus 102 may be configured such that each part of the apparatus reads out necessary information from the storage medium as the apparatus operates.
[0095]
<4. Embodiment 4>
FIG. 20 is a block diagram illustrating a configuration of the timing verification apparatus 104 according to the fourth embodiment. In FIG. 20, reference numeral 41 denotes an operation based on circuit connection information 7 input from the outside, and the target circuit operates at two clock cycles different from those of a single clock operation logic circuit block (hereinafter referred to as “first type block”). A logic circuit block dividing unit that divides the logic circuit block into two logic circuit blocks (hereinafter abbreviated as “second type block”), and 42 is connection information (hereinafter referred to as “the first type block” divided by the logic circuit block dividing unit 41). Reference numeral 43 is abbreviated as “first type block connection information”, and 43 is information relating to the second type block divided by the logic circuit block dividing unit 41 (hereinafter abbreviated as “second type block connection information”).
[0096]
Reference numeral 61 denotes information related to the rising timing, cycle, etc. of the clock input to the target circuit, that is, clock information. This clock information 61 is given from the outside.
[0097]
Further, reference numeral 62 denotes a static timing verification unit that performs static timing verification by a conventionally known technique with reference to the first type block connection information 42, the clock information 61, and the data input timing information 9 for the first type block. , 45 is a result of timing verification by the static timing verification unit 62, and 46 is an input test pattern for performing dynamic timing verification for the second type block based on the static timing verification result 45 and the clock information 1. A test pattern generation unit 47 and an input test pattern 47 generated by the test pattern generation unit 46.
[0098]
48 is a dynamic timing verification unit that performs dynamic timing verification based on the input test pattern 47 for the second type block, 49 is a dynamic timing verification result obtained by the dynamic timing verification unit 48, and 50 is A data input timing extraction unit that extracts information on the input timing of the data signal to be input to the first type block from the dynamic timing verification result 49, and 51 is a data input timing extracted by the data input timing extraction unit 50 is there.
[0099]
The dynamic timing verification result 49 is also input to the test pattern generation unit 46. Then, the test pattern generation unit 46 selectively refers to either the static timing verification result 45 or the dynamic timing verification result 49. The data input timing 51 is also input to the static timing verification unit 62. Then, the static timing verification unit 62 selectively refers to either the data input timing information 9 or the data input timing 51.
[0100]
FIG. 21 is a circuit diagram illustrating an example of a target circuit to be verified by the device 104. Six clocks T11 to T16 whose external cycles are not necessarily the same and external input data Data11 are inputted to the target circuit Y3 from the outside through input terminals (indicated by white triangles in the figure). The target circuit Y3 is configured to execute a predetermined logical operation based on these signals and output the output signals Out11 and Out12 to the outside through output terminals (indicated by white triangles in the figure). .
[0101]
The seven elements U10 to U16 included in the target circuit Y1 are the data signals input to the data input terminal D in synchronization with the rising edge of the clock input to the clock terminal T, that is, the transition from the normal level to the active level. Is held until the next rising edge of the clock and continues to be output to the output terminal Q. The elements S101 to S105 are arbitrary elements or combinations of elements that cause a delay in signal propagation. The element S106 is a NAND element.
[0102]
Hereinafter, the operation of the device 104 will be described using the target circuit Y3 as an example. The device 104 operates according to the flowchart of FIG. That is, when the device 104 starts operation, first, in step S41, the circuit connection information 7 is input from the outside to the logic circuit block dividing unit 41, and the clock information 61 is sent to the static timing verification unit 62 and the test pattern generation unit 46. Is entered.
[0103]
The circuit connection information 7 and the clock information 61 are given manually from the outside or using an external input device. Further, instead of directly inputting these pieces of information to the logic circuit block division unit 41 or the static timing verification unit 62, a storage medium may be provided in the device 104 and stored in this storage medium. Thus, the static timing verification unit 62 and the like may read out a necessary portion of information from the storage medium as necessary while the process proceeds.
[0104]
Next, in step S42, the logic circuit block dividing unit 41 performs division into logic circuit blocks. That is, the target circuit Y3 is divided into a first type block and a second type block. As shown in FIG. 21, the target circuit Y3 is divided into blocks BL1 to BL9. The blocks BL1, BL4, and BL9 are blocks that operate only with the clocks T11, T14, and T16, respectively, and all belong to the first type block. The blocks BL2, BL3, BL5 to BL8 are all blocks that operate with two clocks and belong to the second type block.
[0105]
By extracting a part relating to each of the blocks BL1, BL4, BL9 belonging to the first type block from the circuit connection information 7, the first type block connection information 42 is obtained. Similarly, the second type block connection information 43 is obtained by extracting the portion relating to each of the blocks BL2, BL3, BL5 to BL8 belonging to the second type block.
[0106]
Next, the process proceeds to step S43, and the static timing verification unit 62 performs static timing for the block BL1 located on the most input side among the blocks BL1, BL4, and BL9 classified as the first type block. Verification is performed. Since only one clock T11 is input to the block BL1, the static timing verification of the block BL1, that is, the static timing verification for the elements U10 and U11, is conventionally known for a target circuit operating with a single clock. It is done by the method.
[0107]
At this time, based on the first type block connection information 42, the operation of the elements U10 and U11, the characteristics such as the setup time Setup and the hold time Hold, and the delay time DelayA by the element S101 are grasped. Further, the timing of the external input data Data 11 is grasped based on the data input timing information 9, and the timing of the clock T 11 is grasped based on the clock information 61. The result of timing verification is output as a static timing verification result 45.
[0108]
Next, in step S44, it is determined whether or not there is a block on the output side. Since the block BL2 that is the second type block exists on the output side of the block BL1, the determination result is “Yes”, and the process proceeds to step S46. In step S46, an input test pattern for executing dynamic timing verification for the block BL2 is created based on the static timing verification result 45 for the block BL1. That is, the test pattern generation unit 46 generates two input signal patterns to the block BL2, that is, a data signal input to the data input terminal D of the element U11 and a clock signal pattern input to the clock terminal T. .
[0109]
FIG. 23 is a timing chart showing an example of an input test pattern of the block BL2 created by the test pattern generation unit 46. As shown in FIG. 23, the data signal U11 / D input to the data input terminal D of the element U11 changes every time the clock signal T11 input to the clock terminal T rises twice, and only the delay time DelayA. There is a delay.
[0110]
Next, the process proceeds to step S47, and the dynamic timing verification unit 48 performs dynamic timing verification on the block BL2. Dynamic timing verification performs timing verification using logic simulation, and is a conventionally well-known method. The dynamic timing verification unit 48 grasps the types and connection states of the elements U11, U12, S102 constituting the block BL2 based on the second type block connection information 43, and when the input test pattern 47 is input. Simulate the behavior of each element.
[0111]
Then, based on the result of the simulation, it is determined whether or not conditions such as a setup time Setup and a hold time Hold are satisfied. Therefore, verification is performed in consideration of the delay time DelayB by the element S102. The verification result is output as a dynamic timing verification result 49.
[0112]
Next, in step S48, it is determined whether or not the first type block is connected to the output side. Since the block BL3 which is the second type block is connected to the output side of the block BL2, the result of the determination is “No”, and the process returns to step S46. In step S46, an input test pattern for executing the dynamic timing verification for the block BL3 is created based on the dynamic timing verification result 49 for the block BL2.
[0113]
Thereafter, the process proceeds to step S47, and the dynamic timing verification for the block BL3 is executed by the dynamic timing verification unit 48 based on the newly created input test pattern 47.
[0114]
Since the block BL4 which is the first type block is connected to the output side of the block BL3, it is determined as “Yes” in the subsequent step S48. Therefore, the process proceeds to step S49. In step S49, the data input timing of the block BL4, that is, the input timing of data input to the data input terminal D of the element U14 is extracted from the dynamic timing verification result 49 for the block BL3. This process is performed by the data input timing extraction unit 50, and the obtained data is output as the data input timing 51.
[0115]
As illustrated in the timing chart of FIG. 24, the extraction by the data input timing extraction unit 50 is, for example, the time when the data input to the data input terminal D of the element U12 changes and the clock T12 input to the clock terminal T. This is accomplished by extracting the four types of timings at which the time difference from the time at which the change occurs is minimized. The setup (rise), setup (fall), hold (rise), and hold (fall) shown in FIG. 24 are the minimum time differences in these four types of timing.
[0116]
Among these, the time differences indicated in parentheses as “rise” and “fall” are time differences when the input data rises and falls, respectively. Also, the time differences marked “setup” and “hold” refer to the setup time Setup and hold time Hold, respectively.
[0117]
Next, the process proceeds to step S43, and the static timing verification unit 62 performs static timing verification on the block BL4. At this time, the data input timing information 9 is not referred to and the data input timing 51 is referred to instead.
[0118]
Since there is no more block on the output side of the block BL4, it is determined as “No” in the subsequent step S44. As a result, the process proceeds to step S45. In step S45, it is determined whether or not an unverified block exists in the target circuit Y3. Since the blocks including the block BL5 are left unverified, the determination is “Yes”, and the process proceeds to step S43.
[0119]
With the above processing, timing verification along the series of blocks BL1, BL2, BL3, BL4 is completed. By repeating the same processing, the timing verification of the series of blocks BL1, BL5, BL6, BL4 and the series of blocks BL1, BL7, BL8, BL9 is performed. When all these verifications are completed, a determination of “No” is obtained for the first time in step S45, and all the processes are completed.
[0120]
In the target circuit Y3, only the second type block exists between the first type block and the first type block in any series. For example, in the series of blocks BL1, BL2, BL3, BL4, It is possible to perform verification using the device 104 even for a target circuit in which a first type block (assumed to be a block BL10) exists between two types of blocks BL2 and BL3.
[0121]
As described above, the device 104 enables timing verification for a target circuit to which a plurality of clocks having the same period are input by appropriately using a static timing method and a dynamic timing method for each circuit block. .
[0122]
The plurality of clocks input to the target circuit Y3 may be clocks not only having different periods but also independent and not synchronized with each other. In any of these cases, the device 104 performs verification of the target circuit in exactly the same manner.
[0123]
<5. Modification>
The devices 101 to 104 of the above-described embodiments are not limited to the forms exemplified in the respective embodiments, and a circuit that operates in synchronization with either rising or falling of the clock can be a verification target. In other words, the target circuit generally only needs to operate in synchronization with the change time from the normal level of each clock to the active level.
[0124]
Furthermore, as exemplified in the third embodiment, a level-sensitive circuit that operates at the clock level can be a verification target. In the third embodiment, an example in which the low level is the active level is shown, but it goes without saying that the active level may be the high level.
[0125]
【The invention's effect】
In the device according to the first aspect of the invention, a pair of clocks having a non-multiplier relationship are respectively input, and the data receiving side element among the elements having the relationship between the data transfer side element and the data receiving side element is input. Timing verification between the data signal and the clock signal is performed. Since the verification is performed under the strictest condition that the timing when the pair of clocks changes is in the minimum interval, the purpose of the verification is achieved. Moreover, this verification method belongs to the static timing method. That is, the timing verification of the target circuit to which the clock having a non-multiplication relationship is input is performed without impairing the high speed of the static timing.
[0126]
In the apparatus of the second invention, a target element search unit, a path search unit, and a clock determination unit are provided, and the timing evaluation unit is configured to multiply or not multiply the pair of clocks according to the determination of the clock determination unit. Select and execute a static timing method adapted to the relationship. For this reason, in the target circuit to which a plurality of clocks are input, the data transfer side element and the data receiving side, regardless of whether the relationship between the clocks is double or non-multiply or includes both Timing verification is comprehensively performed by the static timing verification method for all data receiving side elements having the element relationship.
[0127]
In the apparatus of the third invention, when the path search means cannot find the data transfer side element, that is, without passing through the data transfer side element operating in synchronization with the clock, the data signal is input from the outside to the target element. In this case, the timing verification of the target element is performed with reference to the data input timing information. Therefore, in a target circuit to which a plurality of clocks are input, regardless of whether the relationship between clocks is double or non-multiply, or includes both relationships, all elements included in the target circuit On the other hand, exhaustive timing verification is performed by a static timing verification method.
[0128]
In the device according to the fourth aspect of the invention, since the delay time of the clock wiring is reflected in the calculation of the minimum interval, the delay time of the clock wiring is compared with the target circuit to which a plurality of clocks having a non-multiplication relationship are input. The timing verification considering the above is executed at high speed based on the static timing method.
[0129]
In the apparatus of the fifth invention, since the back annotation means is provided, layout information created in association with the layout design of the target circuit can be used, and circuit connection information and wiring delay time information are separately prepared. There is no need. That is, labor and time necessary for performing timing verification are saved.
[0130]
In the device according to the sixth aspect of the invention, the data transfer cycle appropriately set from the outside is added to the minimum interval, so that the data transfer cycle is applied to the target circuit to which a plurality of clocks having a non-multiplication relationship are input. The timing verification considering the above is efficiently performed based on the static timing method.
[0131]
In the seventh aspect of the invention, since the search for the minimum interval is performed in the period corresponding to the least common multiple of both cycles for the clocks having a non-multiplication relationship, the efficiency is good and the search is omitted. Absent.
[0132]
In the apparatus according to the eighth aspect, the minimum interval calculation means calculates the minimum interval for all combinations of clocks that are not in frequency division with each other among the plurality of clocks input to the target circuit. Therefore, it is not necessary to select the combination that requires the calculation of the minimum interval with reference to the circuit connection information. That is, the processing efficiency is increased.
[Brief description of the drawings]
FIG. 1 is a block diagram of an apparatus according to a first embodiment.
FIG. 2 is a block diagram illustrating an example of a target circuit.
FIG. 3 is a flowchart showing the operation of the apparatus according to the first embodiment.
FIG. 4 is an explanatory diagram showing an example of clock information.
FIG. 5 is a timing chart for explaining the operation of the apparatus according to the first embodiment.
FIG. 6 is a block diagram of a static timing verification unit according to the first embodiment.
FIG. 7 is a flowchart of a static timing verification unit according to the first embodiment.
FIG. 8 is a timing chart for explaining the operation of the apparatus according to the first embodiment.
FIG. 9 is a block diagram of an apparatus according to a second embodiment.
FIG. 10 is a flowchart showing the operation of the apparatus according to the second embodiment.
FIG. 11 is a block diagram showing a part of a target circuit.
FIG. 12 is a timing chart showing the operation of the apparatus according to the second embodiment.
FIG. 13 is a block diagram of a static timing verification unit according to the first embodiment.
FIG. 14 is a timing chart showing the operation of the apparatus according to the second embodiment.
FIG. 15 is a block diagram illustrating another example of a target circuit.
FIG. 16 is a block diagram of an apparatus according to the third embodiment.
FIG. 17 is a flowchart showing the operation of the apparatus according to the third embodiment.
FIG. 18 is a timing chart showing the operation of the apparatus according to the third embodiment.
FIG. 19 is a timing chart showing the operation of the apparatus according to the third embodiment.
FIG. 20 is a block diagram of an apparatus according to the fourth embodiment.
FIG. 21 is a block diagram showing still another example of the target circuit.
FIG. 22 is a flowchart showing the operation of the apparatus according to the fourth embodiment.
FIG. 23 is a timing chart showing the operation of the apparatus according to the fourth embodiment.
FIG. 24 is a timing chart showing the operation of the apparatus according to the fourth embodiment.
FIG. 25 is a block diagram of a conventional apparatus.
FIG. 26 is a timing chart showing the operation of the conventional apparatus.
[Explanation of symbols]
1 data transfer side clock information (clock information), 2 data reception side clock information (clock information), 5 rising edge minimum interval calculation unit (minimum interval calculation means), 7 circuit connection information, 9 data input timing information, 20 layout information , 21 Back annotation device (back annotation means), 23 Wiring delay information, 24 Clock delay calculation section (clock delay calculation means), 27 Clock delay addition section (clock delay addition means), 30 Data transfer cycle (data transfer cycle information) , 41 logic circuit block division unit (block division unit), 42 first type block connection information, 43 second type block connection information, 46 test pattern generation unit (test pattern generation unit), 48 dynamic timing verification unit (dynamic Timing verification means), 50 Data input timing extraction unit (data input timing extraction unit), 62 Static timing verification unit (static timing verification unit), 81 Target element search unit (target element search unit), 82 Path search unit (path search unit), 83 Clock determination unit (clock determination unit), 84 timing evaluation unit (timing evaluation unit), Trise rising edge minimum section (minimum section), Tfall falling edge minimum section (minimum section).

Claims (8)

複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、
前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、
非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある前記複数の素子の中の一対と、それらの間のデータ信号の経路と、を含む回路部分に対して、前記対象回路を規定した回路接続情報を参照し、しかも、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件として、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、
を備えることを特徴とするタイミング検証装置。
In a timing verification device that performs timing verification of a target circuit including a plurality of elements that operate in synchronization with a plurality of clocks,
Based on the clock information defining the plurality of clocks, the time at which the time from one level to the other level does not coincide with each other with respect to the clocks that are not multiplied by each other among the plurality of clocks is the most in the range. A minimum section calculating means for calculating a close time section, that is, a minimum section;
A pair of clocks in a non-multiplier relationship are respectively input, a pair of the plurality of elements in a relationship between a data transfer side element and a data reception side element, and a data signal path between them, For the circuit portion including the circuit connection information defining the target circuit, and input to the data receiving side element on the condition that the change times of the pair of clocks are in the relationship of the minimum interval Timing evaluation means for performing timing verification between a clock to be performed and the data signal;
A timing verification apparatus comprising:
複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、
前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、
前記対象回路を規定した回路接続情報にもとづいて、前記複数の素子の中から順次一つずつ対象素子として選び出す対象素子検索手段と、
前記対象素子検索手段で選び出された前記対象素子をデータ受信側素子とし、これに対応するデータ転送側素子を、前記回路接続情報にもとづいて、前記複数の素子の中から探し出すパスサーチ手段と、
前記クロック情報にもとづいて、前記データ転送側素子と前記データ受信側素子とにそれぞれ入力される一対のクロックの関係が、倍周と非倍周のいずれであるかについて判定を行うクロック判定手段と、
前記データ転送側素子、前記データ受信側素子、およびそれらの間のデータ信号の経路を含む回路部分に対して、前記回路接続情報を参照するとともに、前記判定の結果が倍周であるときには、前記クロック情報を参照し、前記判定の結果が非倍周であるときには、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件とすることによって、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、
を備えることを特徴とするタイミング検証装置。
In a timing verification device that performs timing verification of a target circuit including a plurality of elements that operate in synchronization with a plurality of clocks,
Based on the clock information defining the plurality of clocks, the time at which the time from one level to the other level does not coincide with each other with respect to the clocks that are not multiplied by each other among the plurality of clocks is the most in the range. A minimum section calculating means for calculating a close time section, that is, a minimum section;
Based on circuit connection information defining the target circuit, target element search means for sequentially selecting one target element from the plurality of elements,
The target element selected by the target element search means is a data receiving side element, and the data transfer side element corresponding to the target element is searched from the plurality of elements based on the circuit connection information; and ,
Clock determination means for determining whether a relationship between a pair of clocks respectively input to the data transfer side element and the data reception side element is a doubled frequency or a non-multiplied frequency based on the clock information; ,
For the circuit portion including the data transfer side element, the data reception side element, and the path of the data signal between them, the circuit connection information is referred to, and when the result of the determination is a frequency multiplication, With reference to clock information, when the result of the determination is non-multiplication, the change time of the pair of clocks is input to the data receiving side element on condition that the relationship is in the minimum interval. Timing evaluation means for performing timing verification between a clock and the data signal;
A timing verification apparatus comprising:
請求項2に記載のタイミング検証装置において、
前記タイミング評価手段は、さらに、前記パスサーチ手段が前記データ転送側素子を探し出せなかったときには、前記対象素子と当該対象素子へ入力される外部入力データ信号の経路とを含む回路部分に対して、前記回路接続情報を参照するとともに、前記外部入力データ信号を規定するデータ入力タイミング情報と、前記クロック情報とにもとづいて、前記対象素子へ入力されるクロックと前記外部入力データ信号との間のタイミングの検証を実行することを特徴とするタイミング検証装置。
The timing verification device according to claim 2,
The timing evaluation unit further includes a circuit part including the target element and a path of an external input data signal input to the target element when the path search unit cannot find the data transfer side element. The timing between the clock input to the target device and the external input data signal based on the data input timing information defining the external input data signal and the clock information while referring to the circuit connection information The timing verification apparatus characterized by performing verification of this.
請求項1ないし請求項3のいずれかに記載のタイミング検証装置において、
前記対象回路の配線の信号遅延時間を規定する配線遅延情報と、前記回路接続情報とにもとづいて、前記複数の素子へクロックを伝達する複数のクロック配線の遅延時間を個別に算出するクロックディレイ算出手段と、
前記複数の素子ごとに、当該素子に入力されるクロックに関して前記クロック情報が規定するタイミングに前記遅延時間を加算することによって、ディレイ付きクロック情報を作成するクロックディレイ加算手段と、
をさらに備え、
前記最小区間算出手段は、前記クロック情報の代わりに前記ディレイ付きクロック情報を参照することによって、前記最小区間を算出することを特徴とするタイミング検証装置。
In the timing verification device according to any one of claims 1 to 3,
Clock delay calculation for individually calculating the delay time of a plurality of clock wirings for transmitting a clock to the plurality of elements based on the wiring delay information defining the signal delay time of the wiring of the target circuit and the circuit connection information Means,
A clock delay adding means for creating clock information with delay by adding the delay time to the timing specified by the clock information for the clock input to the element for each of the plurality of elements;
Further comprising
The timing verification apparatus according to claim 1, wherein the minimum interval calculation means calculates the minimum interval by referring to the clock information with delay instead of the clock information.
請求項4に記載のタイミング検証装置において、
前記対象回路のレイアウトを規定するレイアウト情報から、前記回路接続情報と前記配線遅延時間とを抽出するバックアノテーション手段を、
さらに備えることを特徴とするタイミング検証装置。
The timing verification device according to claim 4,
Back annotation means for extracting the circuit connection information and the wiring delay time from layout information defining the layout of the target circuit,
A timing verification device further comprising:
請求項1ないし請求項3のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、算出した前記最小区間に、データ転送サイクル情報に規定されるデータ転送サイクルを加算し、
前記タイミング評価手段は、前記データ転送サイクルが加算された値を前記最小区間として参照することを特徴とするタイミング検証装置。
In the timing verification device according to any one of claims 1 to 3,
The minimum interval calculation means adds a data transfer cycle defined in data transfer cycle information to the calculated minimum interval,
The timing evaluation device, wherein the timing evaluation means refers to the value added with the data transfer cycle as the minimum interval.
請求項1ないし請求項6のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、前記最小区間を探索することを特徴とするタイミング検証装置。
In the timing verification device according to any one of claims 1 to 6,
The timing verification apparatus according to claim 1, wherein the minimum interval calculation means searches for the minimum interval in a period corresponding to a least common multiple of both periods with respect to a clock having a non-multiplication relationship.
請求項1ないし請求項7のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、前記複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出することを特徴とするタイミング検証装置。
In the timing verification device according to any one of claims 1 to 7,
The timing verification apparatus according to claim 1, wherein the minimum interval calculation means calculates the minimum interval for all combinations of clocks having a non-multiplication relationship among the plurality of clocks.
JP01972096A 1996-02-06 1996-02-06 Timing verification device Expired - Fee Related JP3715706B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01972096A JP3715706B2 (en) 1996-02-06 1996-02-06 Timing verification device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01972096A JP3715706B2 (en) 1996-02-06 1996-02-06 Timing verification device

Publications (2)

Publication Number Publication Date
JPH09212541A JPH09212541A (en) 1997-08-15
JP3715706B2 true JP3715706B2 (en) 2005-11-16

Family

ID=12007145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01972096A Expired - Fee Related JP3715706B2 (en) 1996-02-06 1996-02-06 Timing verification device

Country Status (1)

Country Link
JP (1) JP3715706B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4578024B2 (en) * 2001-07-06 2010-11-10 ルネサスエレクトロニクス株式会社 Timing verification device
JP2012230605A (en) 2011-04-27 2012-11-22 Renesas Electronics Corp Characterizing device and its computer program

Also Published As

Publication number Publication date
JPH09212541A (en) 1997-08-15

Similar Documents

Publication Publication Date Title
US5751596A (en) Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
JP2000148808A (en) Method for verifying correctness of structural rtl for scheduled motion description
US6457159B1 (en) Functional timing analysis for characterization of virtual component blocks
CN109710998A (en) Internal memory optimization type Static Timing Analysis Methodology and its system
JP2004013720A (en) Method and program for generating timing constraint model for logic circuit and timing-driven layout method using timing constraint model
JP2001142923A (en) Design method for semiconductor integrated circuit device
CN114186519A (en) Time sequence bottleneck probing method and device, terminal equipment and storage medium
CN116502578B (en) Construction method of netlist reduction time sequence model and static time sequence analysis method
JP3715706B2 (en) Timing verification device
US8392776B2 (en) Delay fault diagnosis program
US20020161947A1 (en) Route searching method, timing analyzing method, waveform analyzing method, electronic circuit simulation apparatus, and storage medium therefor
US7036100B2 (en) System and method for determining timing characteristics of a circuit design
Chen et al. A new framework for static timing analysis, incremental timing refinement, and timing simulation
US5761487A (en) Sequential network optimization designing apparatus
Lam et al. Exact minimum cycle times for finite state machines
WO2003009184A2 (en) Multi-clock system simulation
JP2853649B2 (en) How to create a logic simulation model
JP2004145712A (en) Equivalence verification method of motion description in semiconductor design
JP4587754B2 (en) Clock synthesis method, semiconductor device, and program
JP2002259488A (en) Method for verifying clock skew
Park et al. Performance-driven scheduling with bit-level chaining
JP2970600B2 (en) Logic simulation method
JP4307169B2 (en) Delay verification device
JP2004038383A (en) Timing adjusting method for digital circuit
JPH10340291A (en) Method for generating model for logic simulation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050629

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: 20050823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050826

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: 20080902

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees