(57)【特許請求の範囲】
【請求項１】
論理機能を含むセルを複数配置し、前記セル相互間を配線して集積回路を形成する設計方法において、
クロック信号線をＬＳＩのチップ内部に渦巻状に配線する処理と、
前段の記憶素子の出力端子から後段の記憶素子の入力端子までの信号の伝搬時間を算出し、少くともこの伝搬時間と前記後段の記憶素子のセットアップ時間とに基いて信号伝搬の余裕時間を算出する処理と、
前記前段と後段の記憶素子に入力される両クロック信号間の位相差を、少くとも前記算出した余裕時間がマージン以上になるように設定する処理と、
前記設定した位相差に等しい遅延時間を有するクロック信号線の配線長を算出する処理と、
前記渦巻状のクロック信号線において、前記前段の記憶素子にクロック信号を与える分岐点と、前記後段の記憶素子にクロック信号を与える分岐点との距離を、前記算出した配線長に設定する処理と
を備えたことを特徴とするクロック配線設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のタイミング設計において、 ＬＳＩの動作周波数を決定するクリティカルパスの設計方法、及びクリティカルパスのデータ転送を制御するクロック配線の設計方法の改良に関する。
【０００２】
【従来の技術】
半導体集積回路では、クロック信号は高速なデータ転送を実現する重要な要件である。高速なクロック信号をＬＳＩ に入力して正しく動作させるためには、データの転送時間に合わせてクロック信号を正確なタイミングでフリップフロップ回路やラッチ等の記憶素子に入力することが必要である。その際、データ信号が記憶素子に届く前にクロック信号が入力されると、データの取り間違いが発生する。このため、クリティカルパスと呼ばれる記憶素子間のデータ信号伝搬時間の最長パスが、ＬＳＩ の最高動作周波数を決定する。
【０００３】
前記した従来のクロック配線設計方法及びクリティカルパス設計方法の一例として、従来、例えば、特開平５-１８１９３２号がある。この従来例では、クロック周期とデータの伝搬時間との差から２個のフリップフロップ回路間のパスの遅延時間余裕度を算出し、最悪の遅延時間余裕度を持つパスの後段のフリップフロップ回路のクロック入力端子にインバータやバッファ等の遅延素子を配置し、これにより、遅延時間余裕度を改善して、ＬＳＩの動作速度の向上を図っている。
【０００４】
【発明が解決しようとする課題】
しかしながら前記従来の構成では、遅延時間余裕度を改善するように、遅延素子を新規に追加する必要があるため、レイアウト面積の増加を招くという課題がある。更に、新規に遅延素子を追加するために、遅延素子の配置配線を含めたレイアウト設計を再実行する必要がある。
【０００５】
本発明の目的は、レイアウト面積を増加させないで、且つレイアウト設計を再実行することなく、クリティカルパスの遅延時間余裕度を改善して、ＬＳＩの動作周波数の向上を図ることにある。
【０００６】
【課題を解決するための処理】
以上の目的を達成するため、本発明では、クリティカルパスの遅延時間余裕度を改善するために、各記憶素子に入力されるクロック信号間に位相差を生じさせる。
【０００７】
すなわち、請求項１記載の発明のクロック配線設計方法は、論理機能を含むセルを複数配置し、前記セル相互間を配線して集積回路を形成する設計方法において、クロック信号線をＬＳＩのチップ内部に渦巻状に配線する処理と、前段の記憶素子の出力端子から後段の記憶素子の入力端子までの信号の伝搬時間を算出し、少くともこの伝搬時間と前記後段の記憶素子のセットアップ時間とに基いて信号伝搬の余裕時間を算出する処理と、前記前段と後段の記憶素子に入力される両クロック信号間の位相差を、少くとも前記算出した余裕時間がマージン以上になるように設定する処理と、前記設定した位相差に等しい遅延時間を有するクロック信号線の配線長を算出する処理と、前記渦巻状のクロック信号線において、前記前段の記憶素子にクロック信号を与える分岐点と、前記後段の記憶素子にクロック信号を与える分岐点との距離を、前記算出した配線長に設定する処理とを備えたことを特徴とする。
【０００８】
以上の構成により、請求項１記載の発明では、各記憶素子間の伝搬遅延時間に応じて、各記憶素子に入力されるクロック信号間に位相差を生じさせたので、各記憶素子の動作の同期をずらすことができ、最大動作周波数の向上を図ることができる。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態のクリティカルパス設計方法及びクロック配線設計方法について、図面を参照しながら説明する。
【００１０】
（第１の実施の形態）
図１は本発明の第１の実施の形態におけるクリティカルパス設計方法のアルゴリズムを示す。図２は、本実施の形態における集積回路を示す。
【００１１】
図２において、２１、２２、２３はフリップフロップ回路、２４、２５、２６はバッファ、２８、２９は組合せ回路であって、これ等は予め用意されたセルである。２７はパスである。図３は、図２の回路のタイミング図である。図４は、フリップフロップ回路の内部構成を示す。図４において、４１、４２、４３、４４はスイッチであり、４５、４６はデータを保持するレジスタである。
【００１２】
以下、本実施の形態のクリティカルパス設計方法について、図１、図２、図３及び図４を用いて、その処理の流れを説明する。
【００１３】
先ず、処理１１で、セットアップ時間の異なる複数個のフリップフロップ回路を作成する。フリップフロップ回路の内部は、図４に示すように、２個のレジスタ４５、４６と、レジスタへの入力を切り替えるための４個のスイッチ４１、４２、４３、４４と。クロックバッファ４７とから構成される。
【００１４】
クロック信号ＣＫが“０”状態の時、スイッチ４１はオン状態であり、スイッチ４２はオフ状態となり、レジスタ４５でデータ信号Ｄからのデータを取り込む。そして、クロック信号ＣＫが立ち上がると、スイッチ４１がオフ状態に、スイッチ４２がオン状態に変化して、レジスタ４５でデータ信号Ｄの状態が保持される。更に、スイッチ４３がオン状態に変化して、データ信号Ｄの状態が出力される。
【００１５】
セットアップ時間は、クロック信号ＣＫにより制御されるスイッチ４１、４２、４３、４４が切り替わり、レジスタ４５がデータを保持するのに必要な時間である。従って、クロック信号ＣＫやデータ信号Ｄがレジスタ４５まで到達する時間の調整や、スイッチ４１、４２の位置とレジスタ４５の構成を変更すれば、セットアップ時間を変更することができる。例えば、図５では、クロックバッファ４７´を構成する２個のインバータのうち一方を駆動能力の小さいもので構成し、図６では、クロックバッファ４７''を１個のインバータで構成して、クロック信号ＣＫがレジスタ４５に到着する時間を変更している。また、図７では、レジスタ４５´内に２個のインバータ４５ａ、４５ｂを２個のスイッチ４１、４３の間に直列に配置して、データ信号Ｄがレジスタ４５に到着する時間を変更している。このようにして、セットアップ時間が異なるフリップフロップ回路（記憶素子）を数種類用意する。
【００１６】
更に、処理１２では、設計された集積回路に対して、図３に示すように、フリップフロップ回路２１とフリップフロップ回路２３との間のパス２７における信号の伝搬時間を算出する。更に、この処理２１では、他のパス、例えばフリップフロップ回路２２からフリップフロップ回路２３との間のパスにおける信号の伝搬時間を前記と同様に算出し、これ等算出した信号伝搬時間を各々第１の伝搬時間とする。
【００１７】
次いで、処理１３では、パス２７において、後段のフリップフロップ回路２３のセットアップ時間と前記第１の伝搬時間とを加えて第２の伝搬時間とすると共に、前段及び後段のフリップフロップ回路２１、２３の両クロック信号間の位相差と、クロック信号のサイクル時間との和を制約時間として、前記第２の伝搬時間から前記制約時間を引いて、その差分を図３に示すように余裕時間として求める。図３では、簡単化のため、フリップフロップ回路２１とフリップフロップ回路２３との両クロック信号間の位相差は“０”としている。更に、集積回路全体で各パスについて余裕時間を算出して、求められた余裕時間の中で余裕時間が最小のパスを探索する。
【００１８】
その後、処理１４で、前記最小の余裕時間を持つパス（例えばパス２７）の後段のフリップフロップ回路２３のセットアップ時間を求め、前記求めたセットアップ時間よりも小さなセットアップ時間を持つフリップフロップ回路で前記後段のフリップフロップ回路２３を置換する。
【００１９】
以上のように、本実施の形態によれば、セットアップ時間の異なるフリップフロップ回路を用意し、パスの余裕時間に合わせて、そのパスの後段のフリップフロップ回路をセットアップ時間の小さいフリップフロップ回路に変更することにより、レイアウト面積を増やすことなく、クリティカルパスの余裕時間を増大させることができる。
【００２０】
尚、前記処理１１で、クロック端子から出力端子までの遅延時間（即ち、伝搬遅延時間）が異なるフリップフロップ回路を複数個作成し、処理１４で、余裕時間が最小のパス（例えばパス２７）において、前段のフリップフロップ回路２１を伝搬遅延時間が小さいフリップフロップ回路に変更しても、余裕時間を増大させることができる。
【００２１】
（第２の実施の形態）
以下、本発明の第２の実施の形態について図面を参照しながら説明する。
【００２２】
図８は本発明の第２の実施の形態を示すクロック配線設計方法のアルゴリズムを示す。図９は、集積回路のレイアウトを示す。図９において、６１はフリップフロップ回路、６２はクロックバッファ、６３、６４、６５はバッファ、６６は空き領域である。図１０は配線変更後の集積回路のレイアウトを示す。
【００２３】
以下、本実施の形態のクロック配線設計方法について、その処理の流れを説明する。
【００２４】
集積回路のレイアウトは、論理設計された回路図を基に論理素子が配置されて、配線処理が実施される。
【００２５】
処理５１では、レイアウト後の空き領域６６を探索する。更に、処理５２で、論理設計で使用されていないバッファ６３、６４、６５を、図９に示すように、前記空き領域６６に配置するレイアウト設計を行う。その時、バッファ６３、６４、６５は集積回路内部の論理回路との接続は行っていない。
【００２６】
その後、処理５３で、集積回路の動作周波数を上げて、誤動作するパス、即ち、余裕度の最も少ないパスを検出する。次に、処理５４では、前記誤動作したパスの後段のフリップフロップ回路６１、又はこのフリップフロップ回路６１にクロック信号を供給するクロックバッファ６２に近接するバッファ６３を前記空き領域６６から選択する。
【００２７】
続いて、処理５５で、前記クロックバッファ６２とフリップフロップ回路６１とを接続していた配線を外し、図１０に示すように、クロックバッファ６２からのクロック信号を前記選択したバッファ６３を介してフリップフロップ回路６１に供給するように配線を変更する。
【００２８】
その結果、フリップフロップ回路６１に供給されるクロック信号の位相が遅れて、誤動作したパスの余裕度が増大する。
【００２９】
以上のように、レイアウトの空き領域６６に未使用のバッファ６３等を配置して、配線だけを修正して未使用のバッファ６３を介してクロック信号に供給することにより、クロック信号の位相を調整して、レイアウト面積を増やすことなく、クリティカルパスの余裕時間を増大させることができる。
【００３０】
（第３の実施の形態）
図１１は本発明の第３の実施の形態におけるクロック配線設計方法のアルゴリズムを示す。図１２は本実施の形態におけるクリティカルパスのタイミング図である。また、図１３は本実施の形態におけるクリティカルパス設計方法のアルゴリズムを示す。図１３において、図１１と同一の処理に同一の符号を付す。図１４は本実施の形態におけるクリティカルパスのタイミングを示す。
【００３１】
以下、本実施の形態のクロック配線設計方法について、その処理の流れを説明する。
【００３２】
先ず、処理８１では、第１の実施の形態と同様に、２個のフリップフロップ回路間のパス毎に余裕時間を各々算出する。処理８２では、算出された複数の余裕時間の中で、余裕時間が最小のパス、即ち、集積回路の最高動作周波数を決定するパスを探索する。本実施の形態では、前記図２に示す集積回路を用いて説明することとし、余裕時間が最小のパスをパス２７とする。
【００３３】
更に、処理８３では、前記選択された最小余裕時間のパス２７において、前段と後段のフリップフロップ回路２１、２３のクロック端子が同一のクロックバッファに接続されているかを検索、判断する。そして、同一のクロックバッファで駆動されていない場合には、処理８４で、前段のフリップフロップ回路２１を駆動しているクロックバッファ２５を駆動能力の大きなタイプに変更する。
【００３４】
従って、図１２に示すように、フリップフロップ回路２１のクロック信号の位相が速められる。その結果、フリップフロップ回路２３に入力されるデータ信号の到着が速められて、パスの余裕時間が増大する。
【００３５】
尚、図１３のアルゴリズム図に示すように、処理８５で、余裕時間が最小のパス２７の後段のフリップフロップ回路２３のクロックバッファ２６の駆動能力を小さなタイプに変更すれば、図１４に示すように、後段のフリップフロップ回路２３へのクロック信号の供給タイミングが遅れて、そのパスの余裕時間を増大させることができる。
【００３６】
以上のように、前段及び後段のフリップフロップ回路２１、２３を駆動するクロックバッファ２５、２６の駆動能力を変えることにより、クリティカルパスの余裕時間を増大させることが可能である。
【００３７】
（第４の実施の形態）
図１５は本発明の第４の実施の形態におけるクロック配線設計方法のアルゴリズムを示す。図１６(ａ)、(ｂ)は本実施の形態におけるレイアウト図である。
【００３８】
図１６(ａ)、(ｂ)において、２１１、２１２はフリップフロップ回路、２１３はフリップフロップ回路２１１、２１２にクロック信号を供給するクロック信号線、２１４は前記クロック信号線２１３の一部を異なる配線層に変更して配線したクロック信号線、２１５はクロック信号線２３１とクロック信号線２１４とを接続するコンタクト、２１６は２個のフリップフロップ回路２１１、２１２間の余裕時間が最小であるパスである。
【００３９】
以下、本実施の形態のクロック配線設計方法について、その処理の流れを説明する。
【００４０】
先ず、処理２０１では、第１の実施の形態と同様に、２個のフリップフロップ回路間のパスの余裕時間を各々算出する。処理２０２では、算出された余裕時間が最小であるパス（例えばパス２１６）を選択する。
【００４１】
次いで、処理２０３では、選択されたパス２１６において、後段のフリップフロップ回路２１２にクロック信号を供給しているクロック信号線２１３を検索し、そのクロック信号線２１３の配線領域と同じ場所で且つ他の配線層に配線が存在しない配線空き領域を探索する。
【００４２】
続いて、処理２０４では、前記処理２０３で配線空き領域が存在する場合には、この配線空き領域を利用して、クロック信号線２１３の一部の配線層を変更して、２個のコンタクト２１５を用いて、他の配線層の前記配線空き領域にクロック配線２１４を作成する。この結果、図１６(ａ)に示すように後段のフリップフロップ回路２１２へのクロック配線が、同図(ｂ)に示すように変更される。従って、抵抗値の大きい２個のコンタクト２１５クロック信号線が通過するので、余裕時間が最小のパス２１６での後段のフリップフロップ回路２１２に入力されるクロック信号の到着が遅れて、このパス２１６ の余裕時間が増して、動作のタイミングを満たすことができる。
【００４３】
以上のように、本実施の形態によれば、余裕時間が最小であるパスにおいて、後段のフリップフロップ回路へのクロック信号線の配線層を変更する処理を設けたので、後段のフリップフロップ回路へのクロック信号の供給タイミングを遅らせて、動作タイミングを満足することができる。
【００４４】
（第５の実施の形態）
図１７は、本発明の第５の実施の形態のクロック配線設計方法を示すアルゴリズムを示す。図１８は集積回路を示す。図１８において、１１１〜１１３はフリップフロップ回路であり、１１４、１１５は前段のフリップフロップ回路と後段のフリップフロップ回路との間にある組合せ回路であり、フリップフロップ回路１１１から出力された信号は組合せ回路１１４に入力され、組合せ回路１１４から出力された信号は次段のフリップフロップ回路１１２に入力される。更に、前記フリップフロップ回路１１２から出力された信号は組合せ回路１１５に入力され、組合せ回路１１５から出力された信号はフリップフロップ回路１１３に入力される。
【００４５】
１１６はフリップフロップ回路１１１〜１１３にクロック信号を送るクロック信号線であり、１１７はクロック信号線１１６とフリップフロップ回路１１１のクロック端子に信号を送る信号線との分岐点、１１８はクロック信号線１１６とフリップフロップ回路１１２のクロック端子に信号を送る信号線との分岐点、１１９はクロック信号線１１６とフリップフロップ回路１１３のクロック端子に信号を送る信号線との分岐点である。
【００４６】
１２０はフリップフロップ回路１１１から出力された信号が組合せ回路１１４を経由してフリップフロップ回路１１２に入力されるまでの信号伝搬時間であり、１２１はフリップフロップ回路１１２から出力された信号が組合せ回路１１５を経由してフリップフロップ回路１１３に入力されるまでの伝搬時間である。
【００４７】
図１９は、図１８のクロック信号１１６の配線のレイアウト図であり、図１８に示した分岐点に同一の符号を付す。図２０は、図１８に示した回路のタイミング図である。
【００４８】
以下、本実施の形態のクロック配線設計方法について、図１７〜図２０を用いて、その処理の流れを説明する。
【００４９】
先ず、処理１００では、クロック信号線１１６を図１９に示すように、チップ９０の内部全体に渦巻状に配線する。
【００５０】
次に、処理１０１は、図１８のフリップフロップ回路１１１ の出力端子からデータ信号が出力されてフリップフロップ回路１１２へ入力されるまでの図２０に示すデータ信号の伝搬時間１２０を算出する。
【００５１】
続いて、処理１０２は、フリップフロップ回路１１１からデータ信号が出力されるまでの時間と、前記算出した伝搬遅延時間１２０と、フリップフロップ回路１１２のセットアップ時間とを合計し、クロック信号のサイクル時間から前記合計値を差し引いて、余裕時間Ａを算出する。そして、その余裕時間Ａがマージンを考慮した余裕時間Ｂになるように、フリップフロップ回路１１１のクロック信号に対するフリップフロップ回路１１２のクロック信号の位相差を算出する。
【００５２】
次に、処理１０３は、前記処理１０２で算出した位相差と同等な遅延時間を有するクロック信号線１１６の配線長を算出する。
【００５３】
続いて、処理１０４は、前段のフリップフロップ回路１１１へのクロック信号線の分岐点１１７から、クロック信号が進行する方向にクロック信号線１１６を辿り、前記処理１０３で算出した配線長の地点を分岐点１１８として選択する。
【００５４】
更に、処理１０５は、前記分岐点１１８と後段のフリップフロップ回路１１２のクロック端子とを接続する。
【００５５】
図１８のフリップフロップ回路１１３に対しても、前記と同様にして、クロック信号線１１６とクロック端子との接続を行なう。
【００５６】
以上のように、本実施の形態によれば、図１８の各々のフリップフロップ回路に入力されるクロック信号間に位相差を生じさせて、フリップフロップ回路間の信号の伝搬時間に応じて、各フリップフロップ回路間の動作の同期をずらすことができるので、最大消費電流の低下と、最大動作周波数の向上とを図ることができる。
【００５７】
尚、以上の説明では、フリップフロップ回路を記憶素子としたが、その他、ラッチ等を用いてもよいのは勿論である。
【００５８】
【発明の効果】
以上説明したように、請求項１記載の発明のクロック配線設計方法は、各記憶素子間の伝搬時間に応じて、各記憶素子に入力されるクロック信号間に位相差を生じさせたので、各記憶素子の動作の同期をずらすことができ、最大動作周波数の向上を図ることができる。
【図面の簡単な説明】
【図１】  第１の実施の形態におけるクリティカルパス設計方法のアルゴリズムを示す図である。
【図２】  同クリティカルパス設計方法で使用する回路の一例を示す図である。
【図３】  同回路のタイミングを示す図である。
【図４】  同回路に含むフリップフロップ回路の内部構成を示す図である。
【図５】  セットアップ時間が異なるフリップフロップ回路の内部構成の一例を示す図である。
【図６】  セットアップ時間が異なるフリップフロップ回路の内部構成の他の一例を示す図である。
【図７】  セットアップ時間が異なるフリップフロップ回路の内部構成の更に他の一例を示す図である。
【図８】  第２の実施の形態におけるクロック配線設計方法のアルゴリズムを示す図である。
【図９】  同クロック配線設計方法により設計される途中段階の集積回路のレイアウトを示す図である。
【図１０】  同クロック配線設計方法により最終的に設計された配線変更後の集積回路のレイアウトを示す図である。
【図１１】  第３の実施の形態におけるクロック配線設計方法のアルゴリズムを示す図である。
【図１２】  同実施の形態におけるクリティカルパスでのタイミングを示す図である。
【図１３】  第３の実施の形態におけるクロック配線設計方法の他のアルゴリズムを示す図である。
【図１４】  同実施の形態におけるクリティカルパスでのタイミングを示す図である。
【図１５】  第４の実施の形態におけるクロック配線設計方法のアルゴリズムを示す図である。
【図１６】  同実施の形態におけるクリティカルパスのレイアウトを示す図である。
【図１７】  第５の実施の形態におけるクロック配線設計方法のアルゴリズムを示す図である。
【図１８】  同クロック配線設計方法で使用する集積回路の一例を示す図である。
【図１９】  同実施の形態におけるクロック信号線の配線レイアウトを示す図である。
【図２０】  同実施の形態における回路のタイミングを示す図である。
【符号の説明】
２１、２２、２３                フリップフロップ回路
２４、２５、２６                バッファ
２７                            パス
４１、４２、４３、４４          スイッチ
４５、４６                      レジスタ
６１                            フリップフロップ回路
６２                            クロックバッファ
６３、６４、６５                バッファ
６６                            空き領域
２１１、２１２                  フリップフロップ回路
２１３ 、２１４                 クロック信号線
２１５                          コンタクト
２１６                          パス
１１１、１１２ 、１１３         フリップフロップ回路（記憶素子）
１１４ 、１１５                 組合せ回路
１１６                          信号線
１１７ 、１１８ 、１１９        分岐点
１２０                          伝搬時間
【図１】
0003660780.tif 000002
【図２】
0003660780.tif 000003
【図３】
0003660780.tif 000004
【図４】
0003660780.tif 000005
【図５】
0003660780.tif 000006
【図６】
0003660780.tif 000007
【図７】
0003660780.tif 000008
【図８】
0003660780.tif 000009
【図９】
0003660780.tif 000010
【図１０】
0003660780.tif 000011
【図１１】
0003660780.tif 000012
【図１２】
0003660780.tif 000013
【図１３】
0003660780.tif 000014
【図１４】
0003660780.tif 000015
【図１５】
0003660780.tif 000016
【図１６】
0003660780.tif 000017
【図１７】
0003660780.tif 000018
【図１８】
0003660780.tif 000019
【図１９】
0003660780.tif 000020
【図２０】
0003660780.tif 000021