(57)【特許請求の範囲】
【請求項１】
コンピュータを用いたＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める方法であって、コンピュータに、
ＬＳＩに組み込まれる、予め設計された論理を論理ブロックに分割するステップと、
該論理ブロック内に、複数の内部記憶素子がある場合、該複数の内部記憶素子を１つのインターナルラッチで代表させ、該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築するステップと、
該論理ブロック間の接続関係と共に、該設定されたディレイ値を表示するステップと、
を実行させることを特徴とするタイミングバジェット設計方法。
【請求項２】
前記ディレイ値として、複数のディレイ値が考えられる場合、その中の最大値を代表値として設定することを特徴とする請求項１に記載のタイミングバジェット設計方法。
【請求項３】
前記論理ブロックは、論理ブロックの中に別の論理ブロックを含むように階層構造を有することを特徴とする請求項１に記載のタイミングバジェット設計方法。
【請求項４】
前記ディレイ値は、ネットリストから得られる情報を用いて設定されることを特徴とする請求項１に記載のタイミングバジェット設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩの設計段階におけるタイミングバジェット設計方法にかかり、特には、ＬＳＩの論理ブロックを配置する場合に、信号遅延を適切に考慮しながらＬＳＩの設計を行うことのできる方法に関する。
【０００２】
【従来の技術】
従来、ＬＳＩの設計は、ＬＳＩに組み込むべき論理を組み立て、この論理をブロックに分けた後、この論理ブロックをＬＳＩのどの部分に配置するかを決定するフロアプランのステップと、該フロアプランによって配置された論理ブロックをトランジスタなどの素子で置き換えるステップと、該素子間を配線するステップとからなっている。
【０００３】
【発明が解決しようとする課題】
しかし、上記従来の設計方法では、フロアプランの時点では、後に、論理回路を配線したときに生じる信号遅延が所定の仕様を満たすか否かについて検討を行わずに、論理ブロックの配置を決めていたため、実際に論理ブロックを素子で置き換え論理回路を形成し、これらの間を配線すると、信号遅延が仕様を満たさない場合が生じていた。
【０００４】
このとき、従来では、論理ブロックの配置を換える必要があるため、再びフロアプランのステップに戻って、作業をやり直すという手戻りが頻繁に生じる結果となっていた。この手戻り作業におけるフロアプランのやり直しにおいては、論理のブロック分けの仕方の見直しも含まれることがしばしばである。
【０００５】
このように、従来のＬＳＩの設計手法では、手戻りが頻繁に生じ、設計に時間がかかると共に、設計者の労力も多く、設計にかけるコストが大きいという問題があった。
【０００６】
これは、フロアプランにおいて、信号遅延を全く考慮しないで作業を行うため、実際に、論理回路を配置してみると信号遅延が仕様を満たさないことが頻繁に起こることによると考えられる。
【０００７】
本発明の課題は、ＬＳＩの設計において、初期の段階で信号遅延を適切に考慮しながら、論理ブロックの配置等を行うことの出来るタイミングバジェット設計方法を提供することである。
【０００８】
【課題を解決するための手段】
タイミングバジェット設計方法は、ＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める方法であって、ＬＳＩに組み込まれる論理を設計し、該論理を論理ブロックに分割するステップと、該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築するステップと、該論理ブロック間の接続関係と共に、該設定されたディレイ値を設計者に表示するステップと、該ディレイ値を考慮しながら、論理ブロックの設計を行うステップとを備えることを特徴とする。
【０００９】
本発明によれば、論理ブロックのディレイ値を考慮しながらＬＳＩの設計を進めるタイミングバジェット設計方法を提供することによって、ＬＳＩの設計が進んだ段階で、信号のディレイが要求される時間内に収まらなくなる事態を減らすことが出来、従って、設計段階における手戻りの回数を減らし、設計にかかるコストを減少して、効率の良いＬＳＩの設計を実現することが出来る。
【００１０】
【発明の実施の形態】
図１は、本発明の実施形態を適用したＬＳＩの設計・製造段階を説明する図である。
【００１１】
ステップＳ１は、レジスタ・トランスファー・レベル設計（Register  Transfer  Level設計）と呼ばれる段階であり、ＲＴＬ記述を用いてＬＳＩに実装すべき論理の設計をするものである。本発明の実施形態においては、このＲＴＬ設計の段階において、設計者が自分の見積りで信号遅延（ディレイ）値を決定し、概略のディレイ値を各論理ブロック間で計算しながら、論理ブロックの設計をする。これにより、設計者は、論理ブロック間を配線した場合のディレイ値を概略望ましい値に設定することが出来る。
【００１２】
ステップＳ２においては、ステップＳ１において作成されたＲＴＬ記述に基づいて、各論理ブロック間の論理合成（論理の構築）がなされる。これは、一旦ＲＴＬ記述が得られれば、既存のプログラムによって自動的に実行可能である。ステップＳ２の論理合成により、ステップＳ３に示されるネットリストが生成される。ネットリストとは、ＬＳＩに実装されるトランジスタなどのコンポーネント間が論理的にどのように接続されるかを示したデータである。
【００１３】
ステップＳ４においては、ステップＳ３で得られたネットリストを基に、各論理ブロックをＬＳＩのどの部分に配置するかを決定するフロアプランを作成する。このフロアプランを作成する段階においても、本発明の実施形態を利用する。すなわち、ネットリストによってどのコンポーネントがどのコンポーネントと接続されるかが分かるので、これらの情報から、論理ブロックを接続した場合のディレイ値を算出し、当該ＬＳＩの動作に要求されるディレイ値になっているか否かを判断することが出来る。ここで、ディレイ値が要求される値を満足しない場合には、ステップＳ２の論理合成に戻ってネットリストの再作成などを行う。ステップＳ４のフロアプランの作成において、ディレイ値が要求される値に収まった場合には、ステップＳ５において、各論理ブロックの配置情報が得られる。
【００１４】
ステップＳ５において配置情報が得られると、ステップＳ６において、得られた配置情報に基づいて各論理ブロックを配置し、仮の配線を行う。そして、ステップＳ６において、得られた仮配線に基づいて、配線長から遅延計算を行い、ステップＳ７において、遅延シミュレーションを行う。
【００１５】
ステップＳ７の遅延シミュレーションでは、仮に配線を行っているので、ネットリストからでは分からない、配線の迂回は位置などによる遅延の存在などが明らかになる。ここで、遅延シミュレーションの結果、ディレイ値が要求される値になっていない場合には、ステップＳ４のフロアプランを再作成する。また、ステップＳ４のフロアプランの再作成でも不十分と考えられる場合には、ステップＳ２の論理合成に戻って、作業を再び行う。
【００１６】
ステップＳ７の遅延シミュレーションにおいて、ディレイ値が要求される値に収まったと判明した場合には、ステップＳ８において、各論理ブロック内の各コンポーネントをセル単位で自動配置及び自動配線する。そして、ステップＳ９において、全てのコンポーネントが配置・配線された状態での遅延計算を行い、ステップＳ１０において、遅延シミュレーションを行う。ステップＳ１０の遅延シミュレーションにおいて、ディレイ値が要求される値になっていないと判断された場合には、ステップＳ８の自動配置配線をやり直す、あるいは、フロアプランを作成し直す、あるいは、論理合成をやり直すなどして、作業を繰り返す。ステップＳ１０の遅延シミュレーションにおいて、ディレイ値が要求される値に収まったと判断された場合には、ＬＳＩの設計が完了したとして、ステップＳ１１の製造段階に入る。
【００１７】
図２は、本発明の実施形態に従ったタイミングバジェット設計装置における論理ブロックのタイミング条件の設定方法を説明する図である。
図２の四角で囲まれた部分は、タイミングバジェットの評価のためのディレイ値の分布を示すモデルの論理ブロックとその内部で定義されるディレイ値の設定の様子を示す。また、図２上部の記述は、論理ブロックのディレイ値の分布のモデルを記述している。
本実施形態では、論理ブロック内に多数含まれるはずのＦＦやラッチなどの記憶素子を一つもしくは複数個の内部記憶素子グループで代表させて、論理ブロックのタイミング条件を記述する。
【００１８】
論理ブロックのタイミングは、ＲＴＬ設計の段階で本実施形態を利用する場合は、チップ全体のサイクルタイムから各論理ブロック単位のタイミングを設計者の感で大まかに割り振ったり、論理ブロックの大きさや内部のセル数から見積もる。また、フロアプランを作成する段階で、本実施形態を利用する場合は、ネットリストの情報を基に、各論理ブロックの設計担当者は、内部のセルのつながりをみながらパスごとにテクノロジ情報（各コンポーネントの製造者が提供する特性データ）から得られるＲＣ（抵抗とキャパシタ）の代表値を元にディレイ値を計算してタイミング条件を記述する。
【００１９】
図２上部の記述においては、２つの端子グループが定義されている。端子グループは、pingrp  A及びpingrp  Bと名付けられており、pingrp  Aには、ビット０〜ビット１１からなる端子ADDRA T、ADDRA C、ADDRB T、ADDRB C及び、ビット０〜ビット２からなるNULL T及び、NULL Cなどからなる。同様に、pingrp  Bは、ビット０〜ビット１１からなるDOUTとXDOUTが定義されている。
【００２０】
また、ＦＦ１、ＦＦ２、ＦＦ３などの内部記憶素子は、一つのインターナルラッチＩＬ０として定義されている。更に、path  from  A  to  B  delay  500という記載は、Ａ端子（今の場合、端子グループＡ）からＢ端子（今の場合、端子グループＢ）へのパスのディレイ値が５００ｐｓであると定義している。同様に、Ａ端子からＯＦＬＧ端子へのパスのディレイ値は６００ｐｓ、Ａ端子からＩＬ（インターナルラッチ）へのディレイ値は２５０ｐｓ、ＩＬから端子Ｂへのディレイ値は２３０ｐｓ、端子ＣＫ０からＢ端子へは４５０ｐｓ、端子ＣＫ１からＢ端子へは４３０ｐｓ、端子ＲＳＴ０からＢ端子へは４００ｐｓ、端子ＲＳＴ１からＢ端子へは４２０ｐｓのディレイがあることが定義され、１つの論理ブロックのタイミング条件のモデル化を行っている。
【００２１】
このように、本来なら多数ある内部記憶素子を、１つまたは複数のインターナルラッチで代表し、タイミング条件を記述することにより、論理ブロックのタイミング条件のモデル化を簡単化する事が出来る。
【００２２】
図３は、本発明の実施形態に従った、論理ブロックのタイミング条件のモデル化方法の変形例を説明する図である。
本実施形態では、論理ブロックのタイミング条件記述において、論理ブロックを階層的に記述する。すなわち、図３下に示されるように、外枠の大きな論理ブロックの中に、ブロック１と示される小さな論理ブロックが含まれている。このようにすることにより、タイミング条件記述の自由度を増やし、より正確なモデル化ができるようにすることができる。
【００２３】
図３上部は、タイミング記述例であり、（ａ）で示される行より上の部分は、図２と同様なので、説明を省略する。（ａ）で示される行の下側には、ブロック１を通過するパスのディレイ値が設定されている。ブロック１には、入力が二つと出力が二つ設けられている。Ａ端子からブロック１のin  1端子へのディレイ値は、２００ｐｓであり、Ａ端子からブロック１のin  2端子へは１５０ｐｓ、ブロック１のout  1からＢ端子へは３００ｐｓ、ブロック２のout  2からＢ端子へは２５０ｐｓのディレイがあることが定義されている。更に、ブロック１内部のディレイも設定することが可能であり（不図示）、例えば、図２右下のように設定することが可能である。
また、前述したように、本実施形態のタイミング条件の記述は、ネットリストが作成されたの後では、各タイミング条件記述をネットリストから作成することができる。
図４は、ネットリストとタイミング条件記述、モデルとの関係を説明する図である。
【００２４】
図４のようにネットリストからモデルを簡略化してタイミング条件を記述できるように作成する場合、下記の３種類のディレイを求めることにより、ブロックのタイミング条件記述を作成する。
・１つの入力ピン→すべての内部記憶素子の経路のｍａｘディレイ
・１つの入力ピン→１つの出力ピンの経路のｍａｘディレイ
・全ての内部記憶素子→１つの出力ピンの経路のｍａｘディレイ
すなわち、モデルにおいては、内部記憶素子は、１つ以上のインターナルラッチに集合的に代表されるので、ネットリストにおいて、複数の内部記憶素子とその接続関係が記載されていても、これらは、モデルにおいては、１つあるいは複数のインターナルラッチへの接続、インターナルラッチからの接続に集約される。ここで、インターナルラッチへの接続において使用するディレイ値は、ネットリストで記述されるインターナルラッチへの複数の記述の内、ディレイ値が最も大きい接続を代表して１つ設定する。同様に、インターナルラッチからの接続においても、最もディレイ値の大きい接続を１つ代表して設定する。
【００２５】
また、論理ブロック内における端子から端子への接続も、ネットリストにおいては、複数の経路が記述される可能性があるが、このような複数の経路の内、最もディレイ値が大きい経路を代表して１つ設定する。このようにして、構成されたモデルに基づいて、タイミング条件記述を行う。
【００２６】
ここで、ディレイ値は、前述したように、ネットリストができあがった後は、テクノロジ情報を基に、算出する。
図５は、パスディレイの計算式例を示す図である。
【００２７】
同図においては、ブロック１のインターナルラッチから始まり、ブロック２を通過して、ブロック３のインターナルラッチで終了するパスのディレイ値がチップ内サイクルタイム（ここでは、１０００ｐｓとしている）ないに収まるか田舎の検証を行う。
【００２８】
計算の仕方としては、まず送り側ＦＦであるインターナルラッチのディレイ値をａとする。また、ブロック１内でのインターナルラッチから出力端子までのディレイ値ｂとし、同様に、ブロック１の出力からブロック２の入力までのディレイ値をｃ、ブロック２内のディレイ値をｄ、ブロック２からブロック３までのディレイ値をｅ、そして、ブロック３内の入力端子からインターナルラッチまでのディレイ値をｆ、ブロック３のインターナルラッチのディレイ値をｇとすると、これらを合計したものが、信号遅延量（パスのディレイ値）であり、これにクロックスキューαを加算したものが、チップ内サイクルタイムである１０００ｐｓ内に収まるか否かを判断することによって、ディレイ値が適切に設計されているかを判断することが出来る。
【００２９】
図６及び図７は、ブロック間ネットリストとブロックのタイミング条件記述から、ブロックをまたがる記憶素子間のディレイが目標ディレイに収まっているかをチェックし、チェック結果を出力する方法を説明する図である。
【００３０】
図６は、パスディレイのリストを生成する処理のフローチャートである。
まず、ステップＳ２０において、ネットリスト、タイミング記述、サイクルタイムを入力する。そして、ネットリストからパスを抽出し（ステップＳ２１）、ステップＳ２２において、パスのディレイ値をタイミング記述より図５で説明した計算式より計算する。そして、ステップＳ２３において、パスのディレイ値がサイクルタイムをオーバーしているか否かを判断し、オーバーしていない場合には、ステップＳ２１に進み、別のパスについて処理をする。ステップＳ２３において、パスのディレイ値がサイクルタイムをオーバーしていると判断された場合には、ステップＳ２４において、パスリストを出力し、設計者に新たなネットリストの作成やフロアプランの作成などを行わせる。
【００３１】
図７は、パスディレイのリストとモデルの例を示す図である。
同図上がモデル例であり、同図下がパスディレイのリストの例である。同図下のリストにおいて、その１番のリストでは、ＦＦから出て、ブロック間を通り、別のブロックのＦＦで終端するパスを記述している。出力論理ブロックはＦＡＤと名付けられており、ＦＡＤのインターナルラッチからパスは始まる。ＦＡＤのインターナルラッチは、ＦＡＤの端子、Ａ１４８に接続されていることが１番のリストの最初の行から分かり、ディレイ値は１５５２ｐｓであることが分かる。次の行では、ブロック間のネットを示しており、ＦＡＤの端子Ａ１４８からブロックＯＰＲの端子Ａ６４Ｈへの接続を示している。また、このネットの名前として、Ｍ ＦＡＤ ＲＥＳＵＬＴ ＢＹＴＥ７ Ｐ７が付けられている。このネットのディレイ値は０ｐｓと設定されている。更に、ＯＰＲの端子Ａ６４ＨからＯＰＲのインターナルラッチまでのパスが１番のリストの最後の行に記載されており、ディレイ値は、１２９ｐｓであることが記載されている。このパスの全体のディレイ値は、リストの後ろから２番目のコラムに記載されており、１６８１ｐｓとなっている。リストの最後のコラムには、タイムサイクルである１０００ｐｓとパスの全体のディレイ値との差が記載されており、今の場合、パスのディレイ値がタイムサイクルに比べて６８１ｐｓだけ大きいことが示されている。
【００３２】
その他のリストの読み方も同様なので説明を省略する。
図８は、論理ブロックのタイミング条件を入力ピン及び出力ピンでの信号到達時刻に変換した論理ブロックのタイミングバジェットを作成する方法を説明する図である。
【００３３】
下記のように入力ピンにArrival  time（到着時間）、出力ピンにDeparture  time（出力時間）を作成する。作成する方法は、各ピンより後ろ側にパスをトレースをして内部記憶素子までの最大ディレイを計算することにより決定される。
【００３４】
到着時間及び出力時間のモデルにおける設定フォーマット例としては、以下のようにする。
入力ピンのフォーマット
input delay  通過時刻  入力ピン名
通過時刻は、入力ピンを通過するパスの内で最もディレイ値の大きいパスの通過時刻が設定される。
【００３５】
入力ピン名は、処理対象のブロックの入力ピン名である。
出力ピンのフォーマット
output delay  通過時刻  出力ピン名
通過時刻は、出力ピンを通過するパスの内で最もディレイ値の大きいパスの通過時刻が設定される。
【００３６】
出力ピン名は、処理対象のブロックの出力ピン名である。
図８下の記述例では、ブロック１の入力ピンとして、Ａ０１、Ａ０２、Ａ０３、・・・があり、ブロック１の出力ピンとして、Ｏ０１、Ｏ０２、・・・があることが示されている。入力ピンへの到着時刻は、問題のピンを通るパスを後ろ方向に辿っていき、いずれかの論理ブロックのインターナルラッチに至るまでに通過した部分のディレイ値を合計したものの内、最も時刻の遅いパスについての到着時刻である。従って、入力ピンＡ０１の到着時刻は４３１．００ｐｓとなっているが、これは、いずれかの論理ブロック内のインターナルラッチからの伝搬遅延の最大値が４３１．００ｐｓであるので、当該インターナルラッチの出発時刻を０とすると時刻４３１．００ｐｓには入力ピンＡ０１に到着すると言う意味である。同様に、入力ピンＡ０２の到着時刻は４２３．００ｐｓであり、入力ピンＡ０３の到着時刻は５３１．００ｐｓであることが記述されている。
【００３７】
また、出力ピンの出力時刻は、ある出力ピンから当該論理ブロック内を入力ピンまで辿ったパスの中で、最もディレイ値の合計が大きいパスのディレイ値を入力ピンの到着時刻に加算したものとなる。従って、出力ピンＯ０１の出力時刻は、８０２．００ｐｓであり、出力ピン００２の出力時刻は、８２２．００ｐｓと記述されている。
【００３８】
なお、ブロック１には、図８に示されている以外の入力ピン及び出力ピンが設けられており、その記述が省略されている。従って、必ずしも、入力ピンＡ０１に信号が時刻４３１．００ｐｓに入力し、出力ピンＯ０１から時刻８０２．００ｐｓに信号が出力されるという意味ではない。同図の記述は一般的なものであり、出力ピンＯ０１、Ｏ０２から出力される信号は、入力ピンＡ０１、Ａ０２、Ａ０３のいずれかから入っていなくてはいけないというものではない。
【００３９】
図９は、本発明の実施形態を利用して各パスのディレイ値を算出した結果、ディレイ値が要求を満たさないと判明した場合の処理の方法を示す図である。
本実施形態においては、タイミングバジェット（タイミングのずれの許容範囲）の修正に対して、タイミングバジェットに矛盾がないかをチェックする。
【００４０】
すなわち、図９に示されるように、サイクルタイム内に信号の到着時刻が収まらないパス（ＮＧパス）が発見されたとすると、これを設計者が画面上で認識し、各論理ブロックの入力及び出力ピンでの到着時刻及び出力時刻を手修正する。その結果、図９の下側の図のようになったとする。この場合、ブロック３の入力時刻atimeが、前段の論理ブロック２の出力時刻dtimeより小さな値となっている。信号がブロック２からブロック３に伝搬する場合に、ブロック３の到着時刻が、ブロック２の出発時刻より前の時刻になるのは矛盾であるので、エラーであるとし、設計者に表示の色を変えるなどして警告する。また、同様に、ブロック３内において、出力ピンの出力時刻dtimeが入力ピンの到着時刻atimeより小さいのは矛盾であるので、エラーとして、同じく設計者に警告する。
【００４１】
このように、上述の実施形態のモデルを設計者の端末のスクリーンに表示して、設計者がキーボードなどを用いてモデルの変更を可能とすることにより、効率的に設計を行うことが出来る。
【００４２】
図１０は、タイミングバジェットの修正方法の他の例を説明する図である。
また、上述のように、サイクルタイム内にパスの到着時刻が収まらない場合に、到着時刻及び出力時刻を修正する方法として、以下のような方法がある。
すなわち、ブロックをまたがる記憶素子間のディレイが目標ディレイに収まっていない場合、目標ディレイに収まるように比例配分計算で自動的にブロックのタイミングバジェット記述を作成する。このための計算式が以下の式である。
【００４３】
【数１】
0003953756.tif 000002
【００４４】
なお、τ：回路内のサイクルタイム、Ｔ（Ａ、Ｂａｃｋｗａｒｄ）：Ａから後方に開始点までトレースしたときのｍａｘ値、Ｔ（Ａ、Ｆｏｒｗａｒｄ）：Ａから前方に終了点までトレースしたときのｍａｘ値である。Ｂ、Ｃ、Ｄについても同様である。
【００４５】
このような比例計算によって到着時刻、出力時刻を調整することにより、各パスの部分のディレイ値を均等に調整することが出来る。この演算は、計算機に行わせ、結果のみを設計者に提示して（例えば、端末のスクリーン上に表示して）、設計者にその結果を利用するか否かを判断させても良い。
【００４６】
また、上記のように比例配分を行う際、既に設計が完了しているブロックについては、変更しないように固定するようにするとより便利になる。すなわち、各論理ブロックの内部は、異なる設計者が設計することが多いので、他の設計者からその人の担当ブロックの設計が終了したという通知を受けた場合には、設計が終了したブロックについては、ディレイ値を変更するために再設計を行わせるのではなく、設計の終わっていないブロックにタイミングのずれを吸収させるようにする。これにより、先に設計の終わったブロックから固定されていくので、設計が何遍も後戻りするようなことなしに進行するようになる。
【００４７】
また、設計の終わっていないブロックにタイミングバジェットの調整を吸収させる場合にも、前述の各ブロックのピンについて比例配分によるタイミングバジェットを決定する方式を適用して、あるブロックの設計が完了している場合などは、そのブロックをタイミングバジェット的に固定することにより、固定されていないブロックに比例配分するようにすれば、タイミングバジェットの調整を、設計の終わっていないブロック間で均等に調整することができ、１つのブロックにタイミングバジェットの吸収を行わせるような負荷の不均等を避けることが出来る。
【００４８】
図１１は、目標到達度を加味しながらタイミングバジェットを調整する方法を説明する図である。
前述のようにタイミングバジェットの比例配分を行う際、各ブロック毎の目標到達度を表示して、それを加味しながら調整する。各ブロックの目標到達度は、それぞれ設計段階に応じて異なる。ブロック１を調整したいが関連するブロック２、３にどれだけのディレイの許容があるか分からないので調整具合が分からない場合が多い。この場合、ブロック２、３の目標到達度が仮に１００％固定であったとき、ブロック１だけでディレイを調整するしかない。このとき関連する他のブロックの目標到達度が表示されれば、自分と他とで調整を配分することが明瞭に分かる。このような目標到達度を加味しながら比例配分を行う。
【００４９】
この目標到達度は、各ブロックの設計者が自分の設計作業がどの程度まで進行しているかを概略のパーセンテージで示す。この場合、目標達成度の値をタイミングバジェットの調整に使用する。すなわち、比例配分でディレイを調整する場合、目標達成度が１００％の場合には、調整量は０とするが、例えば、あるブロックと別のブロックが目標達成度が３０％と５０％である場合には、５：３の重みを付けて比例配分するなどである。
【００５０】
図１１には、様々な場合の上記方法の説明がなされている。
ケース１は、ブロック２と３の目標達成度が１００％であるので、ブロック１〜ブロック３に至るパスにおいて、ディレイを調整できるのは、ブロック１のみであり、ブロック１内でディレイを調整しなくてはならない。ケース２は、ブロック３の目標達成度が１００％であり、ディレイの調整が出来ないが、ブロック１は、目標達成度が５０％、ブロック２は、目標達成度が３０％である。従って、ディレイの調整は、ブロック１とブロック２で行えばよい。この場合、例えば、ブロック１とブロック２のディレイの調整比率を３：５とするようにすればよい。また、ケース３の場合、ブロック１の目標達成度は５０％、ブロック２の目標達成度は３０％、ブロック３の目標達成度は４０％であるので、ブロック１〜ブロック３の全てをディレイ調整に使うことが出来る。このときの調整比率は、１／５：１／３：１／４としても良いし、あるいは、各ブロックの目標達成率がほぼ同じであると概略認識して、各ブロックがお互いに同等の比率で調整するとしてもよい。
【００５１】
また、ブロックのタイミングバジェット記述（到着時刻、出力時刻の記述）からタイミング条件記述（ディレイ値の記述）に変換する場合には、例えば、入力ピンＡがatime＝ｐで、出力ピンＸがdtime＝ｑの場合、タイミング条件記述におけるピンＡからＸまでのディレイ値をｑ−ｐとして算出する。
【００５２】
図１２は、内部記憶素子のグループ化における記述例を示している図である。
本発明の実施形態においては、論理ブロックのタイミングバジェット記述やタイミング条件記述において、内部記憶素子にクロックスキューを与えることができる。
【００５３】
そのために、内部記憶素子をグループ化して、ＩＬ１  ＩＬ２、・・・、ＩＬｎのような名前を付与し、そのグループに対してスキュー値を指定し、そのグループに属する内部記憶素子を羅列する。
【００５４】
記述例としては、図１２の例がある。図１２においては、ＣＺＥＵ２ＡＬＵ Ａというモデルにおいて、内部記憶素子を代表するインターナルラッチがＩＬ１〜ＩＬ４まで記述されている。ＩＬ１は、クロックスキューが０ｐｓであり、ＩＬ２は、１００ｐｓ、ＩＬ３は３００ｐｓ、ＩＬ４は−１００ｐｓと設定されている。また、このようなクロックスキューを持つ内部記憶素子が、それぞれの行に記述され、グループ化されている。
【００５５】
図１３は、ブロックのタイミングバジェット記述やタイミング条件記述において、内部記憶素子にクロックスキューを与える方式において、記述を簡略化するようにルールを設ける方法を説明する図である。
【００５６】
同図（１）に示されているように、モデル内で、ＩＬという記号が省略された場合には、クロックスキューを０と扱う。同図（２）に示されるように、「ＩＬ」というグループ名を持つグループは、ディフォルトの設定であるとし、「ＩＬｎ」（ｎは整数）という名前のグループと「ＩＬ」のグループの両方に同じ内部記憶素子が含まれている場合には、「ＩＬｎ」の設定を優先するようにする。また、（３）のように、インターナルラッチＩＬのグループ名は、「ＩＬｎ」と言う名前とし、グループの記述の場合、ｎの数字が大きいグループが小さいグループより上に記述されていても良いとし、また、ｎは連続数字で使用しなくても、とびとびの数字でグループ名を指定しても良いとする。また、（４）のように、ＩＬグループ名が二重定義された場合には、警告を発するとし、ＩＬグループの記述順では、後に記述された記述文の設定を優先する。また、ＩＬグループ内で、異なる内部記憶素子であるＦＦが二重に定義された場合には、警告を出すものとし、基本的には後に記述されたグループ定義文を優先する。
【００５７】
図１４は、クロックスキューを考慮したタイミングのチェック例を説明する図である。
ブロック間ネットリストとブロックのタイミング条件記述と前述の内部記憶素子のクロックスキューから、ブロックをまたがる記憶素子間のディレイが目標ディレイに収まっているかをチェックする。
【００５８】
例えば、図１４の上段の図のように、クロックスキューが０ｐｓの場合、タイミングの調整は、前述の到着時刻、出力時刻の記述から得られたパスのタイミング時間がサイクルタイム（今の場合１０００ｐｓ）に収まっているか否かを判断する。また、図１４の中段の図のように、発側のインターナルラッチＩＬのクロックスキューが−３００ｐｓで、着側のインターナルラッチＩＬのクロックスキューが５００ｐｓである場合には、通常のサイクルタイム１０００ｐｓに、３００ｐｓと５００ｐｓを加えた１８００ｐｓの間にタイミングが収まるか否かを判断する。これは、発側のインターナルラッチが３００ｐｓ進んでおり、着側のインターナルラッチが５００ｐｓ遅れているため、クロックに従ったタイミングを合わせるためには、サイクルタイムにクロックのスキューを加えた８００ｐｓを加えた分だけタイミングが遅れても十分であることになるからである。一方、図１４の下段の図のように、発側のインターナルラッチは、クロックスキューが０ｐｓで、着側のクロックスキューが−２００ｐｓである場合には、着側のクロックが２００ｐｓ進んでいるため、信号は、その分早く到着しなくてはならない。従って、当該パスのタイミングは、サイクルタイム１０００ｐｓから２００ｐｓを引いた、８００ｐｓ以内に収まらなければならない。
【００５９】
以上のようにすれば、クロックスキューを考慮したタイミングの調整を行うことが出来る。
図１５は、本発明の実施形態に従った、フロアプラン上での信号やパスを表示する方法を説明する図である。
【００６０】
本表示方法では、設計者の使用する端末のスクリーン上において、ブロック図の信号名とネットリストの信号名の対応表を基に、フロアプラン上でブロック図上の信号やクリティカルパスを表示する。
【００６１】
図１５左のブロックダイアグラムは、各機能ブロック間の接続関係を示す図である。一方、図１５右は、デザインプランナ画面であり、実際の素子や機能ブロックのＬＳＩ上での配置を示す図である。設計者の使用する設計用ツールをインストールした端末では、このような図がスクリーンに表示されるが、設計者は、ブロックダイアグラムにおける信号や配線を表示用に記述することによって、デザインプランナ画面上において、記述した信号が実際にはどのような経路を通って伝搬するか、あるいは、記述した配線がどのような経路を使って配線されているかを視覚的にとらえることが出来る。
【００６２】
これにより、設計したＬＳＩの信号の流れや配線が設計上好ましくない配置となっていないかどうかを確認することが出来る。
図１６は、図１５の表示における表示方法の別の例を説明する図である。
【００６３】
本発明の実施形態においては、フロアプラン上で、信号を条件によりグループ化してグループに名前を与え、指定されたグループ名を基にフロアプラン上に信号の流れを表示する。
【００６４】
例えば、図１６の左上の記述に示されているように、inter-blockはブロック間の配線を示し、Length≧８０００gridは、配線の長さがデザインププランナ画面上のグリッドの数で、８０００グリッド以上の長さを持つものを表示することを指示するもので、このグループにＡというグループ名を付けている。Inter-block（p,q）は、ｐとｑで指定されるブロック間を示し、Bus Ａ＊は、この名前のバスによって接続されているブロックを示し、これをＢというグループ名でグループ化している。Inter-block＆＆Length≧３０００grid⇒Ｃも同様である。これらのグループ化による表示例が、図１６の右上の図である。
【００６５】
例えば、グループＡのように、配線長が長い場合、設計した直後では、通常、非常に複雑な経路を辿って配線されている可能性が高い。従って、配線長の長い配線をデザインプランナ画面上に表示させることにより、配線の最適化を考える上で非常に有益な視覚的情報が得られる。
【００６６】
また、図１６の下段に示されるように、信号を条件によりグループ化する際、リピータセルがないとして条件を判定する。
これは、以前に設計したＬＳＩの設計情報を資源として再利用しながら、新しいＬＳＩの設計をするのに有効である。すなわち、以前に設計したＬＳＩの設計情報は、完成品の設計情報であるために、多くの場所に、リピータが挿入されている。しかし、新しくＬＳＩを設計する場合には、以前のＬＳＩと異なる機能のＬＳＩとなるので、実装される論理も異なり、配線も異なったものとなる。従って、タイミングの調整などに使用されるリピータをどこに配置したらよいかについては、以前のＬＳＩとは全く異なったものとなるのが通常である。従って、ディレイ値を見積もるためには、リピータが無い状態から設計をはじめた方が効率がよいので、以前のＬＳＩの設計情報を資源として再利用する場合、リピータがないとして、信号条件など、前述した表示のための条件を判定して表示させることは有効である。
【００６７】
この場合は、図１６の左上の図のように、通常は「Consider-repeaterの場合」という状態で信号をグループ化するが、リピータを無視することが指定された場合には、「Ignore-repeaterの場合」のようにリピータがないと仮定して条件の判定を行い、信号のグループ化を行うようにする。
【００６８】
リピータが設計情報に含まれているが、表示の際にリピータの存在を無視する場合の概念を示した図が図１６の下の図である。リピータを考慮する場合としない場合では、ディレイの大きさが異なってくるので、当該表示を見て、適切にディレイの設計を行うようにする。
【００６９】
図１７は、本発明の実施形態に従ったタイミングバジェット設計装置のブロック構成図である。
本実施形態のタイミングバジェット設計装置１０は、モデル・タイミング条件記述部１１、演算部１２、既存設計ツール１３及び表示装置１４からなっている。ＬＳＩの設計者であるユーザは、既存設計ツールを使ってＬＳＩの設計を行うが、このとき、論理ブロックの構築やネットリストの作成、フロアプランの作成において、表示装置１４に必要な情報を表示しながら設計を行う。このとき、本発明の実施形態では、タイミングバジェットを評価しながら設計するために、モデル・タイミング条件記述部１１と、モデルやタイミング条件記述の必要な演算を行う演算部１２とを更に備える。
【００７０】
モデル・タイミング条件記述部１１では、ユーザの入力によって、図２に示したようなモデルの記述とそのモデルの中のタイミング条件の記述を解釈し、モデルを構築すると共に、構築されたモデルを表示装置１４に表示する。また、タイミングバジェットの調整などの処理や、配線のデザインプランナ画面上での表示を行う場合には、演算部１２に必要な演算を行わせ、その結果を表示装置１４に表示させる。
【００７１】
ＬＳＩ設計者であるユーザは、表示装置１４の表示を見ながら、インタラクティブに設計作業を進め、モデルを用いてタイミングバジェットの調整をしながら、図１に示したような設計段階をクリアしていく。
【００７２】
図１８は、本発明の実施形態に従ったタイミングバジェット設計装置をプログラムで実現する場合に必要とされるコンピュータのハードウェア環境を説明する図である。
【００７３】
ＣＰＵ２１は、バス２０によって接続されたＲＯＭ２２あるいは、ＲＡＭ２３からプログラムを逐次読み込みつつ実行する。本発明の実施形態を実現するプログラムは、ハードディスクなどの記憶装置２７からＲＡＭ２３にコピーされた後、ＣＰＵ２１によって実行されるか、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯなどの可搬記録媒体２９に記録されている当該プログラムを読み取り装置２８によって読み取り、ＲＡＭ２３にコピーしてＣＰＵ３２が実行する。また、可搬記録媒体２９に記録された当該プログラムを記憶装置２７にコピーすることによってコンピュータにインストールしてから実行しても良い。
【００７４】
入出力装置３０は、キーボード、マウス、テンプレート、ＣＲＴモニタ、液晶モニタなどからなり、ＬＳＩの設計者であるユーザからの入力をＣＰＵ２１に命令として通知したり、モデルの構築にあたっては、タイミング記述などのモデルの記述を記憶装置２７に格納させたりする。また、モデルをグラフィカルに表示したり、デザインプランナ画面を表示するためにも使用される。
【００７５】
通信インターフェース２４は、ネットワーク２５を介して、コンピュータを情報提供者２６と接続し、情報提供者２６から当該プログラムのダウンロードを可能とするものである。あるいは、情報提供者２６の代わりに、ＬＳＩ設計者であって、他の論理ブロックを設計しているユーザと接続し、互いにネットワーク環境下で当該プログラムを実行し、設計を進めても良い。この場合には、各設計者が設定する目標達成度をネットワークを介して、全てのＬＳＩ設計者であるユーザに通知することが出来るので、より設計環境を便利なものとすることが出来る。
【００７６】
（付記１）ＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める方法であって、
ＬＳＩに組み込まれる論理を設計し、該論理を論理ブロックに分割するステップと、
該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築するステップと、
該論理ブロック間の接続関係と共に、該設定されたディレイ値を設計者に表示するステップと、
該ディレイ値を考慮しながら、論理ブロックの設計を行うステップと、
を備えることを特徴とするタイミングバジェット設計方法。
【００７７】
（付記２）前記論理ブロックの端子は、複数の端子をグループ化して設定されることを特徴とする付記１に記載のタイミングバジェット設計方法。
（付記３）前記ディレイ値として、複数のディレイ値が考えられる場合、その中の最大値を代表値として設定することを特徴とすることを特徴とすることを特徴とする付記１に記載のタイミングバジェット設計方法。
【００７８】
（付記４）前記ディレイ値を設定するステップにおいて、前記論理ブロック内に、複数の内部記憶素子がある場合、該複数の内部記憶素子を１つ以上のインターナルラッチで代表して、ディレイ値を設定することを特徴とする付記１に記載のタイミングバジェット設計方法。
【００７９】
（付記５）前記論理ブロックは、論理ブロックの中に別の論理ブロックを含むように階層構造を有することを特徴とする付記１に記載のタイミングバジェット設計方法。
【００８０】
（付記６）前記ディレイ値は、ネットリストから得られる情報を用いて設定されることを特徴とする付記１に記載のタイミングバジェット設計方法。
（付記７）前記ディレイ値から、一の論理ブロックへの信号の到着時刻と出力時刻を算出することによって、信号伝搬タイミングのタイミング条件を記述することを特徴とする付記１に記載のタイミングバジェット設計方法。
【００８１】
（付記８）前記タイミング条件に基づいて、論理ブロックをまたがる内部記憶素子間のタイミングバジェットが目標値に収まっていない場合、各論理ブロックのタイミングバジェットを比例配分に従って変更することを特徴とする付記７に記載のタイミングバジェット設計方法。
【００８２】
（付記９）前記タイミングバジェットの変更において、既に設計を終えている論理ブロックのタイミングバジェットは変更しないことを特徴とする付記８に記載のタイミングバジェット設計方法。
【００８３】
（付記１０）前記各論理ブロックの設計の達成度を考慮して各論理ブロックのタイミングバジェットを変更することを特徴とする付記８に記載のタイミングバジェット設計方法。
【００８４】
（付記１１）前記ディレイ値の他に、内部記憶素子にクロックスキューを与え、該ディレイ値とクロックスキューを考慮して、前記論理ブロックの設計をすることを特徴とする付記１に記載のタイミングバジェット設計方法。
【００８５】
（付記１２）前記論理ブロックに指定される信号名とネットリストの信号名からデザインプランナ画面上に信号の流れ、あるいは、パスの配置を表示することを特徴とする付記１に記載のタイミングバジェット設計方法。
【００８６】
（付記１３）前記信号の流れ、あるいは、パスの配置は、信号あるいはパスを条件によりグループ化して指定することによって表示されることを特徴とする付記１２に記載のタイミングバジェット設計方法。
【００８７】
（付記１４）前記信号あるいはパスを表示させる際の前記条件の判断において、パス上にリピータがないと見なして該条件を判断することを特徴とする付記１３に記載のタイミングバジェット設計方法。
【００８８】
（付記１５）ＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める装置であって、
ＬＳＩに組み込まれる論理を設計し、該論理を論理ブロックに分割する手段と、
該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築する手段と、
該論理ブロック間の接続関係と共に、該設定されたディレイ値を設計者に表示する手段と、
該ディレイ値を考慮しながら、論理ブロックの設計を行う手段と、
を備えることを特徴とするタイミングバジェット設計装置。
【００８９】
（付記１６）ＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める方法であって、
ＬＳＩに組み込まれる論理を設計し、該論理を論理ブロックに分割するステップと、
該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築するステップと、
該論理ブロック間の接続関係と共に、該設定されたディレイ値を設計者に表示するステップと、
該ディレイ値を考慮しながら、論理ブロックの設計を行うステップと、
を備えることを特徴とするタイミングバジェット設計方法をコンピュータに実行させるプログラム。
【００９０】
（付記１７）ＬＳＩの設計において、タイミングバジェットを評価しながら設計を進める方法であって、
ＬＳＩに組み込まれる論理を設計し、該論理を論理ブロックに分割するステップと、
該論理ブロックの端子間のディレイ値を設定し、信号遅延のモデルを構築するステップと、
該論理ブロック間の接続関係と共に、該設定されたディレイ値を設計者に表示するステップと、
該ディレイ値を考慮しながら、論理ブロックの設計を行うステップと、
を備えることを特徴とするタイミングバジェット設計方法をコンピュータに実行させるためのプログラムを格納した、コンピュータ読み取り可能な記録媒体。
【００９１】
【発明の効果】
本発明によれば、タイミングバジェットの評価を行いながら、ＬＳＩの設計を順次進めるので、詳細な設計をした後に、信号伝送タイミングが要求される条件を満たさない場合を減らすことが出来、従って、ＬＳＩの設計段階の手戻りを減らし、効率的にコストを抑えてＬＳＩの設計を進めることが出来る。
【図面の簡単な説明】
【図１】本発明の実施形態を適用したＬＳＩの設計・製造段階を説明する図である。
【図２】本発明の実施形態に従ったタイミングバジェット設計装置における論理ブロックのタイミング条件の設定方法を説明する図である。
【図３】本発明の実施形態に従った、論理ブロックのタイミング条件のモデル化方法の変形例を説明する図である。
【図４】ネットリストとタイミング条件記述、モデルとの関係を説明する図である。
【図５】パスディレイの計算式例を示す図である。
【図６】ブロック間ネットリストとブロックのタイミング条件記述から、ブロックをまたがる記憶素子間のディレイが目標ディレイに収まっているかをチェックし、チェック結果を出力する方法を説明する図（その１）である。
【図７】ブロック間ネットリストとブロックのタイミング条件記述から、ブロックをまたがる記憶素子間のディレイが目標ディレイに収まっているかをチェックし、チェック結果を出力する方法を説明する図（その２）である。
【図８】論理ブロックのタイミング条件を入力ピン及び出力ピンでの信号到達時刻に変換した論理ブロックのタイミングバジェットを作成する方法を説明する図である。
【図９】本発明の実施形態を利用して各パスのディレイ値を算出した結果、ディレイ値が要求を満たさないと判明した場合の処理の方法を示す図である。
【図１０】タイミングバジェットの修正方法の他の例を説明する図である。
【図１１】目標到達度を加味しながらタイミングバジェットを調整する方法を説明する図である。
【図１２】内部記憶素子のグループ化における記述例を示している図である。
【図１３】ブロックのタイミングバジェット記述やタイミング条件記述において、内部記憶素子にクロックスキューを与える方式において、記述を簡略化するようにルールを設ける方法を説明する図である。
【図１４】クロックスキューを考慮したタイミングのチェック例を説明する図である。
【図１５】本発明の実施形態に従った、フロアプラン上での信号やパスを表示する方法を説明する図である。
【図１６】図１５の表示における表示方法の別の例を説明する図である。
【図１７】本発明の実施形態に従ったタイミングバジェット設計装置のブロック構成図である。
【図１８】本発明の実施形態に従ったタイミングバジェット設計装置をプログラムで実現する場合に必要とされるコンピュータのハードウェア環境を説明する図である。
【符号の説明】
１０      タイミングバジェット設計装置
１１      モデル・タイミング条件記述部
１２      演算部
１３      既存設計ツール
１４      表示装置
【図１】
0003953756.tif 000003
【図２】
0003953756.tif 000004
【図３】
0003953756.tif 000005
【図４】
0003953756.tif 000006
【図５】
0003953756.tif 000007
【図６】
0003953756.tif 000008
【図７】
0003953756.tif 000009
【図８】
0003953756.tif 000010
【図９】
0003953756.tif 000011
【図１０】
0003953756.tif 000012
【図１１】
0003953756.tif 000013
【図１２】
0003953756.tif 000014
【図１３】
0003953756.tif 000015
【図１４】
0003953756.tif 000016
【図１５】
0003953756.tif 000017
【図１６】
0003953756.tif 000018
【図１７】
0003953756.tif 000019
【図１８】
0003953756.tif 000020