(57)【要約】【課題】この発明は、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることにより、論理合成やレイアウト処理に要する時間を短縮させるようにしたマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムを提供することを目的としている。【解決手段】論理回路のタイミング解析結果からタイミング違反をしている経路のタイミングレポートを抽出し、それに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する。変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を算出し、それに基づいて、マルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する。【選択図】      図３
2008243092.tif 000002
【特許請求の範囲】
【請求項１】
論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出装置であって、
前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出手段と、
前記抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換手段と、
前記変換手段で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記抽出手段で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算手段と、
前記変換手段により始点及び終点が設定され前記演算手段によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対して、マルチサイクルパスか否かを判定する判定手段とを具備することを特徴とするマルチサイクルパス検出装置。
【請求項２】
前記判定手段は、マルチサイクルパスと判定されなかったマルチサイクルパスコマンドに対し、前記サイクル数探索基準値をその近傍の値に設定し直して再判定を行なうことを特徴とする請求項１記載のマルチサイクルパス検出装置。
【請求項３】
前記判定手段は、マルチサイクルパスと判定されなかったマルチサイクルパスコマンドに対し、前記サイクル数探索基準値を前記演算手段で演算された値から遠ざかる値に順次設定し直して再判定を繰り返し行なうことを特徴とする請求項１記載のマルチサイクルパス検出装置。
【請求項４】
前記演算手段は、前記抽出手段で抽出されたタイミングレポートに含まれる遅延時間をクロック周期で除算して前記サイクル数探索基準値を算出することを特徴とする請求項１記載のマルチサイクルパス検出装置。
【請求項５】
前記抽出手段は、マルチサイクルパスを指定せずに論理合成処理を行なった結果のタイミング解析結果であるタイミングレポート、マルチサイクルパスを指定して論理合成処理を行なった結果のタイミング解析結果であるタイミングレポート、レイアウトを行なった結果のタイミング解析結果であるタイミングレポートのいずれかから、タイミング違反をしている経路のタイミングレポートを抽出することを特徴とする請求項１記載のマルチサイクルパス検出装置。
【請求項６】
前記変換手段は、前記抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点のインスタンスがビット表記である場合に、バス表記に変換可能であることを特徴とする請求項１記載のマルチサイクルパス検出装置。
【請求項７】
論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出方法であって、
前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する第１の工程と、
前記第１の工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する第２の工程と、
前記第２の工程で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記第１の工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する第３の工程と、
前記第２の工程により始点及び終点が設定され前記第３の工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する第４の工程とを具備することを特徴とするマルチサイクルパス検出方法。
【請求項８】
論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出プログラムであって、
前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出工程と、
前記抽出工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換工程と、
前記変換工程で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記抽出工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算工程と、
前記変換工程により始点及び終点が設定され前記演算工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定工程とを、
コンピュータに実行させることを特徴とするマルチサイクルパス検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＬＳＩ（large scale integrated circuit）の開発時等において、論理回路内に形成された各種の経路からマルチサイクルパスを自動的に検出するマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムに関する。
【背景技術】
【０００２】
周知のように、近年では、ＲＴＬ（resistor transistor logic）設計データとクロック情報［例えばＳＤＣ（synopsys design constraints）言語形式等で記述された情報］とを入力することにより、実際のチップ上では活性化されないフォルスパスや、２クロックサイクル以上の処理時間を有するマルチサイクルパス等を発見するツールが出現している。
【０００３】
マルチサイクルパスとは、通常、同期設計において論理回路中の組み合わせ回路部分の経路における遅延時間は、１クロックサイクル以内である必要があるのに対し、２クロックサイクル以上を費やすことのできる経路のことである。つまり、ｎサイクルのマルチサイクルパスと言えば、クロックのｎ周期までタイミング制約を緩められる経路となる。
【０００４】
そして、一般に、論理設計を自動的に行なう論理合成ツールにおいては、処理時間が１クロックサイクル以内の回路を生成する必要があるが、ｎサイクルのマルチサイクルパスの経路に対しては、マルチサイクルパス指定を行なうことにより、クロックのｎ周期までタイミング制約を緩められる。
【０００５】
また、レイアウトツールにおいても同様に、処理時間が１クロックサイクル以内となるように回路を配置・配線する必要があるが、ｎサイクルのマルチサイクルパスの経路に対しては、マルチサイクルパス指定を行なうことにより、クロックのｎ周期までタイミング制約を緩めることができる。
【０００６】
なお、論理合成ツールやレイアウトツールにあっては、ｎサイクルのマルチサイクルパスの経路に対して、マルチサイクルパス指定をしなかった場合、処理時間を１クロックサイクル以内に収めるように回路設計しようとして膨大な処理時間を費やし、最悪の場合、タイミング違反を残したままで終了するような事態が多く発生する。
【０００７】
ところで、マルチサイクルパス指定は、現在、人手によって行なわれている。そして、近年では、ＬＳＩの大規模化に伴ない、機能毎に回路設計の分担化が行なわれていることから、マルチサイクルパスが複数のモジュール間に跨る場合があって、設計者が意識していないマルチサイクルパスも多く存在することがある。
【０００８】
このため、抜けのない１００％のマルチサイクルパス指定を行なうことは、事実上不可能となっている。また、マルチサイクルパス指定を行なうに当たって、判断ミスがあれば回路設計上の致命的な問題となることも、人手によるマルチサイクルパス指定の作業を困難にする大きな問題点となっている。
【０００９】
さらに、マルチサイクルパス指定に判断ミスや指定漏れ等があった場合には、論理合成やレイアウト作業に余分な時間を要し、チップサイズの増大や、最悪の場合、製造後の実機評価で正常に動作しないという事態に陥る。これらは、いずれも、ＬＳＩの開発期間やコストを増大させる要因となり、論理合成やレイアウト作業の問題点とされている。
【００１０】
特許文献１には、第１の順序回路素子と、その出力信号が入力される第２の順序回路素子との間で、マルチサイクルに関する値取込条件データを算出し、各素子間のパス集合から上記値取込条件データと合致するパス集合を分割して、その分割した集合内の全てのパスがマルチサイクルパスか否かを判定するようにした構成が開示されている。
【００１１】
また、特許文献２には、解析対象回路を構成するセルを含む各素子の名称、素子の端子への信号の意味や関係に対応して解析対象回路の分析を行ない、その分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かを判定するようにした構成が開示されている。
【００１２】
さらに、特許文献３には、指定した始点から終点までの部分回路における信号線の値を順次決定し、その値からマルチサイクルパスであるか否かを判定し、全ての組み合わせについてマルチサイクルパスであるときに、その回路部分がマルチサイクルパスであると判定するようにした構成が開示されている。
【００１３】
また、特許文献４には、ＨＤＬ（hardware description language）記述されたプログラムから同期回路部分及び非同期回路部分を分割し、その非同期回路部分の一部を同期回路部分に変換し、サイクルベースシミュレーション／静的タイミング検証により機能検証できる回路部分を多くするようにした構成が開示されている。
【００１４】
さらに、特許文献５には、回路内の全てのパスを抽出して遅延時間を算出し、遅延時間が動作周期を超えているパスを選択し、そのパスに対してタイミング制約、負荷容量制約、マッピングセルの使用制限の観点から制約条件データを生成し、そのデータに基づいて論理合成を行なうようにした構成が開示されている。
【特許文献１】特開２００６−１４６７１１号公報
【特許文献２】特開２００４−１７１１４９号公報
【特許文献３】特開２００３−１５７２９７号公報
【特許文献４】特開平１１−８５８１０号公報
【特許文献５】特開２０００−１１３０１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
そこで、この発明は上記事情を考慮してなされたもので、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることにより、論理合成やレイアウト処理に要する時間を短縮させるようにしたマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
この発明に係るマルチサイクルパス検出装置は、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出するものを対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出手段と、抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換手段と、変換手段で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、抽出手段で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算手段と、変換手段により始点及び終点が設定され演算手段によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定手段とを備えるようにしたものである。
【００１７】
また、この発明に係るマルチサイクルパス検出方法は、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出する方法を対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する第１の工程と、第１の工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する第２の工程と、第２の工程で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、第１の工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する第３の工程と、第２の工程により始点及び終点が設定され第３の工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する第４の工程とを備えるようにしたものである。
【００１８】
さらに、この発明に係るマルチサイクルパス検出プログラムは、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの２サイクル以上を費やすことのできるマルチサイクルパスを検出するものを対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出工程と、抽出工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換工程と、変換工程で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、抽出工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算工程と、変換工程により始点及び終点が設定され演算工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定工程とを、コンピュータに実行させるようにしたものである。
【発明の効果】
【００１９】
上記した発明によれば、タイミング違反をしている経路について、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点を求め、その始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を算出し、算出したサイクル数探索基準値に基づいて、マルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定するようにしたので、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることができ、論理合成やレイアウト処理に要する時間を短縮させることが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、この発明の実施の形態について図面を参照して詳細に説明する。まず、図１は、ＲＴＬ設計された論理回路内に存在する経路の一例を示している。この経路は、２つのフリップフロップＦＦ１及びＦＦ２の相互間に、組み合わせ回路としてのアンドゲートＡＮＤを介在させたものである。この経路において、データは、クロックＣＫに同期してフリップフロップＦＦ１に取り込まれ、アンドゲートＡＮＤを経由してフリップフロップＦＦ２に達する。
【００２１】
このような経路において、その始点となるフリップフロップＦＦ１のデータ入力端から、その終点となるフリップフロップＦＦ２のデータ入力端までデータが伝播するのに要する時間は、通常、クロックＣＫの１サイクル以内に設計される。これに対し、経路の始点から終点まで信号が伝播するのに要する時間として、クロックＣＫの２サイクル以上を費やすことが許容された経路を、マルチサイクルパスと称している。そして、この実施の形態では、論理回路内からマルチサイクルパスを高い確度で自動検出するようにしている。
【００２２】
ここで、マルチサイクルパス検出の自動化のポイントについて説明する。近年、マルチサイクルパス指定の正当性を検証するツールが存在する。このツールは、マルチサイクルパス指定と、ＨＤＬまたはネットリストを入力し、論理回路中にマルチサイクルパスがあるか否かの解析と判定とを行なうものである。以下、このツールをMCP−Validationツールと称する。この実施の形態では、このツールを利用するが、ツール利用に当たっては、以下の２点を考慮に入れている。
【００２３】
（１）  膨大な数のマルチサイクルパス指定を、MCP−Validationツールに入力した場合、処理に時間を要する。また、最悪の場合、処理が終わらない場合が想定される。
【００２４】
（２）  ＳＤＣのマルチサイクルパスコマンドの書式は、論理回路中のマルチサイクルパスの経路指定とサイクル数とを指定する。MCP−Validationツールでマルチサイクルパス指定を判定させる場合は、このサイクル数の候補を１つ１つ指定して判定させる。
【００２５】
まず、上記（１）項の、処理に時間を要することの対応については、論理合成前の初期のマルチサイクルパス指定において、マルチサイクルパスであっても１サイクルに収まっているタイミング的に余裕のある回路に対しては、あえてマルチサイクル指定をしなくても良い点に着目している。
【００２６】
すなわち、マルチサイクルパス指定を全く指定していない状態で、簡易的な合成とタイミング解析とを実行する。タイミング解析結果からタイミング違反を起こした経路、または、タイミングレポート中に複数のレポートが存在する場合には、スラックの大きい順にソートし、所定の閾値を超えるスラックを有する経路のみを、このMCP−Validationツールで判定することにより、効率的な処理時間で実行することが可能となる。また、論理合成後、及びレイアウト後のタイミング解析結果のタイミングレポートで、マルチサイクルパス指定を判定する自動化についても、同様の処理を実行する。
【００２７】
次に、上記（２）項の、サイクル数の指定については、詳細な説明は後述するが、サイクル数の探索基準値を求め、その近傍のサイクル数を設定し、MCP−Validationツールに効率的な判定をさせるのが、この実施の形態の特徴でもある。
【００２８】
以上により、従来のマルチサイクルパス指定の人手介入を極力排除し、判断ミスや指定漏れ等を生じることなくマルチサイクルパス指定をすることで、論理合成の最適化、及びレイアウト工程の最適化を行なうことができるようになり、ＬＳＩの性能向上とチップサイズの縮小化、高品質化を図り、開発期間、開発コストを大幅に低減することが可能となる。
【００２９】
図２は、この実施の形態で説明するマルチサイクルパス検出部を用いた、論理回路の全体的な設計システムの一例を示している。すなわち、ファイル１１には、ハードウエア記述言語であるＨＤＬ（Verilog−ＨＤＬあるいはＶＨＤＬ）を使って所望のＬＳＩがＲＴレベルで記述されている。また、ファイル１２には、使用するクロックの周期やデューティ比等のクロック仕様が記述されている。
【００３０】
次に、論理合成前のマルチサイクルパス検出部１３は、簡易論理合成部１３ａと、ネットリストが格納されるファイル１３ｂと、タイミングレポートが格納されるファイル１３ｃと、マルチサイクルパスコマンド生成部１３ｄと、マルチサイクルパスコマンドが格納されるファイル１３ｅと、ＲＴＬ用コマンド変換部１３ｆと、ＲＴＬ用コマンド変換結果が格納されるファイル１３ｇとで構成されている。
【００３１】
このうち、簡易論理合成部１３ａは、ファイル１１のＨＤＬとファイル１２のクロック仕様とを入力し、ゲートレベル論理回路（ネットリスト）の自動生成と、タイミング解析をした結果のタイミングレポートとを出力する。生成されたネットリストは、ファイル１３ｂに格納され、タイミングレポートは、ファイル１３ｃに格納される。
【００３２】
この簡易論理合成部１３ａでは、マルチサイクルパスであっても、クロックの１サイクル内に収まっているタイミング的に余裕のある回路に対しては、マルチサイクルパス指定をしないという着目点を実現する処理を行なっており、マルチサイクルパス指定を全く指定しないで簡易的な論理合成を実行し、タイミング解析結果のタイミングレポートを得ている。
【００３３】
この簡易論理合成部１３ａとしては、一般的に市販されている論理合成ツール（logic synthesizer）を使用するか、またはＥＤＡ（electronics design automation）ツールに組み込まれている簡易合成ツールを使用することができる。また、論理合成を短時間で終わらせるために、論理回路最適化努力オプションを下げて実行するか、またはクロック周期を本来の仕様よりも緩めに設定して実行している。さらに、タイミング解析結果のタイミングレポート中に複数のレポートが存在する場合は、スラックのワースト順にソートされている。
【００３４】
マルチサイクルパスコマンド生成部１３ｄは、ファイル１３ｂ，１３ｃからゲートレベル論理回路（ネットリスト）とタイミングレポートとを入力し、マルチサイクルパスコマンドの自動生成を実行する。このマルチサイクルパスコマンド生成部１３ｄの詳細については、図３乃至図６を使用して後述する。そして、このマルチサイクルパスコマンド生成部１３ｄの生成結果は、ファイル１３ｅに格納される。
【００３５】
ＲＴＬ用コマンド変換部１３ｆは、マルチサイクルパスコマンド生成部１３ｄで生成されたゲートレベルのマルチサイクルパスコマンドを、後述する論理合成ツール１４に入力するために、ＲＴレベルのマルチサイクルパスコマンドに変換する処理を施している。ここでは、マルチサイクルパスコマンドのゲートレベル指定の始点及び終点情報を、ＲＴレベル用に変換する処理を行なっているが、ゲートレベルの回路記述と、それに相当するＲＴレベルの回路記述とを対応付ける技術は公知であるため、その説明は省略する。そして、このＲＴＬ用コマンド変換部１３ｆの変換結果は、ファイル１３ｇに格納される。
【００３６】
上記論理合成ツール１４は、一般的に市販されている論理合成ツールのことで、ゲートレベルの論理設計を自動的に行なうツールである。すなわち、ファイル１１のＨＤＬで表現したＲＴＬ記述、真理値表、状態遷移記述、特定の半導体製造技術に依存しない論理式や、ファイル１２のクロック仕様、マルチサイクルパス検出部１３で得られたマルチサイクルパスコマンドを入力として、所望の半導体製造技術の下で最適なゲートレベル論理回路（ネットリスト）を自動生成する。
【００３７】
この論理合成ツール１４で生成されたネットリストは、ファイル１５に格納される。また、論理合成ツール１４がタイミング解析した結果のレポートであるタイミングレポートは、ファイル１６に格納される。このタイミングレポートには、ネガティブスラック、または、ポジティブ・スラックのレポートが含まれる。スラックとは、要求されるタイミングに対するマージンがどの程度あるかを示したもので、正のスラック値（ポジティブスラック）は要求されるタイミングを満足していることを示し、負のスラック値（ネガティブスラック）は、タイミング違反が含まれていることを示している。
【００３８】
また、この論理合成ツール１４が出力したゲートレベルのＳＤＣファイルは、ファイル１７に格納される。
【００３９】
そして、タイミング違反判定部１８では、ファイル１６に格納されたタイミングレポートにタイミング違反が存在する否かの判定処理を行なっている。タイミング違反判定部１８でタイミング違反が存在すると判定された場合は、論理合成後のマルチサイクルパス検出部１９の処理が行なわれる。
【００４０】
このマルチサイクルパス検出部１９においても、マルチサイクルパスコマンド生成部１９ａが、ファイル１５，１６に格納されたネットリストとタイミングレポートとを入力として、新たなマルチサイクルパスコマンドを生成し、ファイル１９ｂに格納する。
【００４１】
そして、ＲＴＬ用コマンド変換部１９ｃは、マルチサイクルパスコマンド生成部１９ａで生成されたゲートレベルのマルチサイクルパスコマンドを、論理合成ツール１４に再入力するために、ＲＴレベルのマルチサイクルパスコマンドに変換する処理を施している。このＲＴＬ用コマンド変換部１９ｃの変換結果は、ファイル１９ｄに格納される。
【００４２】
ただし、論理合成ツール１４において、初期合成でＲＴレベルのマルチサイクルパスコマンドを使用し、その後、タイミング制約を追加した部分合成（インクリメンタル合成）を行なう場合は、ＲＴＬ用コマンド変換部１９ｃの処理は不要で、ゲートレベルのマルチサイクルパスコマンドをそのまま使用することが可能である。
【００４３】
その後、ファイルマージ部１９ｅにより、マルチサイクルパスコマンド生成部１９ａで得られた結果を、前回のマルチサイクルパスコマンドにマージする処理が行なわれる。マージ結果は、ファイル１９ｆに格納された後、論理合成ツール１４部に再入力され、論理合成が繰り返し実行される。この論理合成の繰り返しは、タイミング違反判定部１８で違反がなくなったと判定されるまで、違反があってもそのスラックの値が許容値以内に収まるまで、または、マルチサイクルパスコマンド生成部１９ａでマルチサイクルパスコマンドが生成されなくなるまで行なわれる。
【００４４】
また、上記論理合成ツール１４で生成されたネットリストは、ファイル２０にも格納される。このファイル２０のネットリストは、レイアウトツール２１に供給される。このレイアウトツール２１は、自動レイアウトツールであり、マクロセルの接続情報、つまり、ファイル２０のネットリスト（論理回路設計結果）及びファイル１７のゲートレベルのＳＤＣファイルを入力すると、チップ上にマクロセルを自動的に置き（配置し）、その間を自動的に結ぶ（配線する）ツールである。
【００４５】
そして、レイアウトツール２１のレイアウト結果が、ある程度収束した場合は、ＳＴＡ（static timing analyzer）２２を使用してタイミング解析が行なわれる。このＳＴＡ２２は、一般的に市販されているもので、論理回路のタイミングを検証するためのツールであり、例えば、対象の回路が所望のクロック周波数で動作するか等、タイミング仕様を満足するか否かを調べるために使用される。
【００４６】
ＳＴＡ２２による解析は以下のように行なわれる。まず、ファイル２０のネットリストとファイル１７のゲートレベルのＳＤＣファイルとを入力し、各素子（論理ゲート）の遅延時間情報と配線遅延時間情報とに基づいて、対象回路に相当するグラフ（グラフ理論のグラフであり、棒グラフとか折れ線グラフではない）を作成する。そして、このグラフから最大遅延時間のパス等を抽出して、フリップフロップ間のタイミングが所望の仕様に合致しているか否かを調べる。そして、ＳＴＡ２２によるタイミング解析結果であるタイミングレポートは、ファイル２３に格納される。
【００４７】
その後、タイミング違反判定部２４では、ファイル２３に格納されたタイミングレポートにタイミング違反が存在する否かの判定処理を行なっている。タイミング違反判定部２４でタイミング違反が存在しないと判定された場合は、次工程処理２５が行なわれ、タイミング違反が存在すると判定された場合は、レイアウト後のマルチサイクルパス検出部２６の処理が行なわれる。
【００４８】
このマルチサイクルパス検出部２６では、先に述べた論理合成後のマルチサイクルパス検出部１９と同様の処理を行なうが、異なる点は、タイミングレポートソート部２６ａが追加される点である。前述したように、論理合成ツールには、タイミングレポートに複数のレポートが存在する場合、スラックのワースト順にソートする機能がある。既存のＳＴＡツールでは、このソート機能をサポートしていないものもあり、ここでは、その処理を行なっている。もう１つの相違点は、マルチサイクルパス検出部１９に存在したＲＴＬ用コマンド変換部１９ｃが削除されたことだが、先のレイアウトツール２１では、ゲートレベルのネットリストを扱うことから、ＲＴレベルへの変換は不要となる。
【００４９】
そして、このマルチサイクルパス検出部２６においても、マルチサイクルパスコマンド生成部２６ｂが、ファイル２０に格納されたネットリストとタイミングレポートソート部２６ａから得られるタイミングレポートとを入力として、新たなマルチサイクルパスコマンドを生成し、ファイル２６ｃに格納している。
【００５０】
その後、ファイルマージ部２６ｄにより、マルチサイクルパスコマンド生成部２６ｂで得られた結果を、前回のマルチサイクルパスコマンドにマージする処理が行なわれる。マージ結果は、ファイル２６ｅに格納された後、ＳＴＡ２２に再入力され、タイミング解析が繰り返し実行される。このタイミング解析の繰り返しは、タイミング違反判定部２４で違反がなくなったと判定されるまで、違反があってもそのスラックの値が許容値以内に収まるまで、または、マルチサイクルパスコマンド生成部２６ｂでマルチサイクルパスコマンドが生成されなくなるまで行なわれる。
【００５１】
上記した実施の形態によれば、マルチサイクルパス検出部１３，１９，２６によりマルチサイクルパスを高い確度で自動的に検出してマルチサイクルパス指定に供させるようにしたので、論理合成ツール１４及びレイアウトツール２１における処理時間を高速化することができる。
【００５２】
従来では、論理合成ツールあるいはタイミング解析ツールのタイミングレポートを人手で解析し、これらのツールに対してマルチサイクルパス指定をしていたが、これらを自動化することにより指定ミスや指定漏れを削減することができる。また、タイミングレポートの人手による解析から再合成まで何回かの後戻りが発生していたが、この繰り返し回数を削減することができる。
【００５３】
図３は、上記マルチサイクルパスコマンド生成部１９ａの一例を示している。なお、他のマルチサイクルパスコマンド生成部１３ｄ，２６ｂについては、マルチサイクルパスコマンド生成部１９ａと同様な構成であるため、その説明を省略する。
【００５４】
すなわち、マルチサイクルパスコマンド生成部１９ａは、各種処理を実行するものであって、ここでは、タイミング違反パス情報抽出部１９ａ１、マルチサイクルパスコマンド変換部１９ａ２、サイクル数探索基準値設定部１９ａ３、サイクル数の近傍設定によるマルチサイクルパス判定部１９ａ４により構成されている。
【００５５】
このうち、タイミング違反パス情報抽出部１９ａ１は、ファイル１６のタイミングレポートから、タイミング違反を起こした経路、または、タイミングレポート中に複数のレポートが存在する場合は、スラックの大きい順にソートし、所定の閾値を超えるスラックを有する経路のみを抽出する。
【００５６】
また、マルチサイクルパスコマンド変換部１９ａ２は、タイミング違反パス情報抽出部１９ａ１で抽出したタイミングレポートに対応する各経路の始点と終点とを、マルチサイクルパスコマンドの始点と終点とに変換するものである。マルチサイクルパスコマンドとは、ＳＤＣ形式のコマンドの１つであるset_multicycle_pathコマンドのことである。これについては、図４を用いて後述する。
【００５７】
さらに、サイクル数探索基準値設定部１９ａ３は、マルチサイクルパスコマンド表記のサイクル数指定を自動で探索する際の基準値を設定している。これについても、図４を用いて後述する。
【００５８】
また、マルチサイクルパス判定部１９ａ４は、マルチサイクルパスコマンド変換部１９ａ２の変換結果に基づき、サイクル数探索基準値設定部１９ａ３で設定された基準値を初期値として、MCP-Validationツールを使用してマルチサイクルパスを判定する。初期値でマルチサイクルパスと判定されなかった場合は、初期値の近傍を与えて探索する。これについても、図４を用いて後述する。
【００５９】
そして、サイクル数の近傍設定によるマルチサイクルパス判定部１９ａ４でマルチサイクルパスと判定されたマルチサイクルパスコマンドは、ファイル１９ｂに格納される。
【００６０】
図４は、上記マルチサイクルパスコマンド生成部１９ａの処理動作をまとめたフローチャートを示している。なお、他のマルチサイクルパスコマンド生成部１３ｄ，２６ｂについても、マルチサイクルパスコマンド生成部１９ａと同様な処理動作を行なうため、その説明を省略する。
【００６１】
すなわち、処理が開始（ステップＳ１）されると、ステップＳ２で、タイミング違反パス情報抽出部１９ａ１によるタイミング違反パス情報の抽出が行なわれる。これは、図３のファイル１６のタイミングレポートを入力とし、このタイミングレポートからタイミング違反パス情報を抽出する処理である。
【００６２】
ファイル１６のタイミングレポートに複数のレポートが存在する場合は、前処理で、スラックの大きい順にソートされているので、ソートされたレポートのうち、所定の閾値を超えるスラックを有する経路のみを抽出対象としている。この閾値は、本プログラムの入力情報であり、タイミング違反のパスを対象とする場合は、−０．０を指定する。レイアウト後の遅延の変動やＥＤＡツールのタイミング計算の誤差を考慮したい場合には、プラス値を与えてもよい。抽出したタイミングレポートは、ファイル２７に格納される。
【００６３】
そして、このファイル２７に格納されたタイミングレポートは、上記マルチサイクルパスコマンド変換部１９ａ２での処理に供される。すなわち、マルチサイクルパスコマンド変換部１９ａ２は、ステップＳ３で、ファイル２７から１個目のタイミングレポートを取得するように動作する。
【００６４】
その後、ステップＳ４で、ファイル２７内にタイミングレポートが存在しなくなったか否かを判別し、存在しなくなったと判断された場合（ＹＥＳ）、処理を終了（ステップＳ５）する。つまり、ステップＳ４は、ファイル２７内に格納された複数個のレポートの全部を処理したか否かを判定するルーチンである。
【００６５】
また、上記ステップＳ４でファイル２７内にタイミングレポートが存在していると判断さたれ場合（ＮＯ）、ステップＳ６で、タイミングレポート中のStartpoint行の情報から、マルチサイクルパスコマンドの始点を指定する処理が行なわれる。マルチサイクルパスコマンドの書式には、フリップフロップ間の始点を指定するfrom_listと、フリップフロップ間の終点を指定するto_listとがある。
【００６６】
このステップＳ６は、from_listを設定する処理であるが、その説明の前に、図５を使用してタイミングレポートの形式を先に説明する。図５のタイミングレポートの形式は、論理合成ツール１４やＳＴＡ２２がタイミング解析を行なった結果のファイル形式である。
【００６７】
図５において、符号５０１は、タイミング解析したフリップフロップ間の始点の情報であり、１列目がStartpoint:を表記し、２列目に始点のインスタンス情報が表記されている。符号５０２は、フリップフロップ間の終点の情報であり、１列目がEndpoint:を表記し、２列目に終点のインスタンス情報が表記されている。
【００６８】
また、符号５０３は、クロックドメイン情報であり、タイミング解析したフリップフロップに接続されているクロックグループ名が表記されている。符号５０４は、フリップフロップ間の始点から終点までに存在する論理回路の各素子の遅延情報である。符号５０５は、フリップフロップの始点から終点までに存在する論理回路の各素子の遅延量の積算値（通常、data arrival timeと称される）である。
【００６９】
さらに、符号５０６は、スラック値を表わしている。符号５０７は、このマルチサイクルパスコマンド変換部１９ａ２の出力結果であるマルチサイクルパスコマンド（ファイル２８に格納）の形式である。符号５０８は、符号５０１で示した２列目の始点のインスタンスをfrom_listとして設定する。これは、図４に示したステップＳ６の処理を意味している。
【００７０】
また、符号５０９は、符号５０２で示した２列目の終点のインスタンスをto_listとして設定する。これは、図４に示すステップＳ９のタイミングレポート中のEndpoint行の情報からマルチサイクルパスコマンドの終点を指定する処理を意味している。符号５１０は、サイクル数指定である（図４で後述する）。
【００７１】
図４において、ステップＳ７及びＳ１０は、from_list及びto_listをビット表記にするかバス表記にするかを判定するルーチンである。通常、タイミング解析は、ビット単位の解析であるためタイミングレポートもビット単位である。ビット表記をバス表記に変換した場合には、マルチサイクルパスコマンドの行数削減、コマンドの管理がし易い、コマンドの可読性が良いというメリットがある。
【００７２】
バス表記にするかビット表記にするかは、このプログラムの入力情報として与えられる。ビット表記にする場合は、図５に示した符号５０８及び５０９の設定が使われる。バス表記にする場合は、ステップＳ８及びＳ１１においてバスバインド処理が行なわれる。バスバインド処理は、図５に示した符号５０８及び５０９の２列目のインスタンス中にバスを表す表記（通常、インスタンスの末尾が［  ］で括られている）がある場合に、この処理が行なわれる。
【００７３】
符号５０９のゲートレベルのインスタンスと、このマルチサイクルパスコマンド生成部１９ａの入力情報である図３のＲＴＬ２とを対応付ける。ゲートレベルの回路記述と、それに相当するＲＴレベルの回路記述とを対応付ける技術は公知なので、ここでは、あえて触れない。上記ステップＳ６〜Ｓ１１の処理の結果は、ファイル２８に格納される。
【００７４】
そして、このファイル２８に格納されたマルチサイクルパスコマンドは、上記サイクル数探索基準値設定部１９ａ３での処理に供される。すなわち、サイクル数探索基準値設定部１９ａ３は、ステップＳ１２で、タイミングレポート中の図５の符号５０３で示したクロック情報と、ファイル１２のクロック仕様とを照合し、一致したクロック指定のクロック周期（Ｔ）を求める。タイミングレポート中から符号５０５で示したdata arrival timeの値を取得し、以下の計算式により、サイクル数探索基準値を求める。
【００７５】
サイクル数探索基準値＝data arrival time／Ｔ（クロック周期）
なお、上式で余りがあればサイクル数探索基準値＋１とする。そして、求めたサイクル数探索基準値は、後段のサイクル数の近傍設定によるマルチサイクルパス判定部１９ａ４の初期値として使用するために変数ｎに格納する。
【００７６】
このサイクル数の近傍設定によるマルチサイクルパス判定部１９ａ４では、ステップＳ１２で求めたサイクル数探索基準値をサイクル数の初期値として、MCP-Validationツールを使用してマルチサイクルパスを判定している。なお、初期値でマルチサイクルパスと判定されなかった場合は、初期値の近傍を与えて探索する。以下に、この処理動作について説明する。
【００７７】
すなわち、マルチサイクルパス判定部１９ａ４は、ステップＳ１３で、ファイル２８に格納されたマルチサイクルパスコマンドに対して、変数ｎをサイクル数として設定する。これは、図５に示した符号５１０の部分に対して行なわれる。設定した値は、ファイル２９に格納される。
【００７８】
次に、マルチサイクルパス判定部１９ａ４は、ステップＳ１４で、ファイル２９のマルチサイクルパスコマンドと、図２のファイル１５のネットリストと、図２のファイル１２のクロック仕様とを入力として、マルチサイクルパスか否かの判定を実行する。マルチサイクルパス判定部１９ａ４とは、前述したMCP-Validationツールを意味している。
【００７９】
そして、ステップＳ１５で、マルチサイクルパスと判定されたか否かの判定を行ない、マルチサイクルパスであると判定されなかった場合（ＮＯ）、ステップＳ１６で、サイクル数探索基準値を基準として、近傍のサイクル数を設定し、再度マルチサイクルパス判定を行なわせる。
【００８０】
基準値の近傍とは、すなわち、最初は、サイクル数探索基準値＋１を指定し判定する。そして、判定不成立の場合は、サイクル数探索基準値−１で再判定する。さらに、判定不成立の場合は、サイクル数探索基準値＋２で判定、サイクル数探索基準値−２で判定と交互に指定し、終了条件まで繰り返し、マルチサイクルパスか否かの判定を実行する。このプログラムの入力情報として、終了条件の加算時の上限値と減算時の下限値とが与えられる。
【００８１】
その後、ステップＳ１７で、判定終了か否かが判定され、終了の場合（ＹＥＳ）、ステップＳ３の処理に戻され、終了でない場合（ＮＯ）、ステップＳ１３の処理に戻される。
【００８２】
また、上記ステップＳ１５でマルチサイクルパスであると判定された場合（ＹＥＳ）、ステップＳ１８で、判定成立コマンドのファイル１９ｂへの格納処理が行なわれる。次に、ステップＳ３に戻り、次のタイミングレポートを取得し、ステップＳ４以降の処理が繰り返される。ステップＳ４で取得すべきタイミングレポートがなくなった場合は、このマルチサイクルパス生成部１９ａの処理が終了（ステップＳ５）される。
【００８３】
以上の処理動作によれば、タイミングレポートからマルチサイクルパスコマンドに変換し、サイクル数の近傍を設定してマルチサイクルパスの自動判定をすることにより、人手を介さずにマルチサイクルパスコマンドを生成することが可能となる。
【００８４】
図６は、上記マルチサイクルパスコマンド生成部１９ａの他の処理動作をまとめたフローチャートを示している。図６において、図４と同一部分には同一符号を付して示し、異なる部分についてのみ説明すると、サイクル数探索基準値設定部１９ａ３では、ステップＳ１９で、サイクル数基準値に小さい時間数（例えば、初期値２）を設定する。この初期値は、本プログラムの入力情報として与えてもよい。
【００８５】
そして、サイクル数の近傍設定によるマルチサイクルパス判定部１９ａ４では、ステップＳ１９で設定されたサイクル数基準値（例えば、初期値２）に対し、ステップＳ１４でマルチサイクルパスか否かを判定し、ステップＳ１５の判定で不成立の場合は、ステップＳ２０で、変数ｎを加算し、順次大きい時間数に指定し、ステップＳ１７の終了条件まで再判定している。
【００８６】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００８７】
【図１】この発明の実施の形態を示すもので、ＲＴＬ設計された論理回路内に存在する経路の一例を説明するために示すブロック構成図。
【図２】同実施の形態におけるマルチサイクルパス検出部を用いた論理回路の全体的な設計システムの一例を説明するために示す図。
【図３】同実施の形態におけるマルチサイクルパス検出部に用いられたマルチサイクルパスコマンド生成部の一例を説明するために示す図。
【図４】同実施の形態におけるマルチサイクルパスコマンド生成部の処理動作の一例を説明するために示すフローチャート。
【図５】同実施の形態における経路のタイミング解析を行なった結果のタイミングレポートの形式を説明するために示す図。
【図６】同実施の形態におけるマルチサイクルパスコマンド生成部の処理動作の他の例を説明するために示すフローチャート。
【符号の説明】
【００８８】
１１…ファイル、１２…ファイル、１３…マルチサイクルパス検出部、１４…論理合成ツール、１５…ファイル、１６…ファイル、１７…ファイル、１８…タイミング違反判定部、１９…マルチサイクルパス検出部、２０…ファイル、２１…レイアウトツール、２２…ＳＴＡ、２３…ファイル、２４…タイミング違反判定部、２５…次工程処理、２６…マルチサイクルパス検出部、２７…ファイル、２８…ファイル、２９…ファイル。
【図１】
2008243092.tif 000003
【図２】
2008243092.tif 000004
【図３】
2008243092.tif 000005
【図４】
2008243092.tif 000006
【図５】
2008243092.tif 000007
【図６】
2008243092.tif 000008