(57)【特許請求の範囲】
【請求項１】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する配線ブロック、および配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値を記憶したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、を有することを特徴とするクロックスキュー改善方法。
【請求項２】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックおよび配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、
置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値と比較してクロックスキュー値を求め所定のスキュー目標値以下となったか否かを判断する第４のステップと、
単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する第５のステップとを有し、
前記第２のステップが、それぞれのクロック配線に対して、対応するすべての単位ブロックについてパタンテーブルを参照して単位ブロックと内部パタンが一致する配線ブロックを検出し該配線ブロックに対応する容量値を抽出して加算しクロック配線の容量値を算出する第１のサブステップと、
算出された容量値に基づいてクロック配線毎にクロック信号遅延値を算出する第２のサブステップと、
クロック配線をクロック信号遅延値が最小のクロック配線から最大のクロック配線までクロック信号遅延値にしたがい順位付けする第３のサブステップと、
前記第４のステップまでの処理が未了のクロック配線のうちクロック信号遅延値が最小のクロック配線を処理対象クロック配線として選択する第４のサブステップとを有することを特徴とするクロックスキュー改善方法。
【請求項３】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックおよび配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、
置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値と比較してクロックスキュー値を求め所定のスキュー目標値以下となったか否かを判断する第４のステップと、
単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する第５のステップとを有し、
前記第３のステップが、処理対象クロック配線にかかわる単位ブロックのうち置換処理が未処理で且つクロック配線のパスに沿った距離において順序回路に最も近い単位ブロックを処理対象ブロックとして選択する第１のサブステップと、
前記処理対象ブロック内の配線パタンがクロック配線のみで且つ前記処理対象ブロックに隣接する配線グリッドに信号配線パタンがない孤立クロックパタンに該当するか否かを判断し該当すると判断したときには前記第３のステップを終了する第２のサブステップと、
前記第２のサブステップで孤立クロックパタンに該当しないと判断されたときに進み、前記処理対象ブロックと内部パタンが一致する配線ブロックを検索する第３のサブステップと、
検索された配線ブロックよりも容量値が大きく且つ置き換え配置が可能な置換配線ブロックが前記パタンテーブル内に存在するか否かを判断し存在しないと判断したときには前記第３のステップを終了する第４のサブステップと、
前記第４のサブステップで存在すると判断されたときに進み、前記処理対象ブロックの内部パタンを切り取り前記置換配線ブロックの内部パタンと置換する第５のサブステップとを有することを特徴とするクロックスキュー改善方法。
【請求項４】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックおよび配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、
置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値と比較してクロックスキュー値を求め所定のスキュー目標値以下となったか否かを判断する第４のステップと、
単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する第５のステップとを有し、
前記第３のステップが、処理対象クロック配線にかかわる単位ブロックのうち置換処理が未処理で且つクロック配線のパスに沿った距離において順序回路に最も近い単位ブロックを処理対象ブロックとして選択する第１のサブステップと、
前記処理対象ブロック内の配線パタンがクロック配線のみで且つ前記処理対象ブロックに隣接する配線グリッドに信号配線パタンがない孤立クロックパタンに該当するか否かを判断する第２のサブステップと、
前記第２のサブステップで孤立クロックパタンに該当しないと判断されたときに進み、前記処理対象ブロックと内部パタンが一致する配線ブロックを検索する第３のサブステップと、
検索された配線ブロックよりも容量値が大きく且つ置き換え配置が可能な置換配線ブロックが前記パタンテーブル内に存在するか否かを判断し存在しないと判断したときには前記第３のステップを終了する第４のサブステップと、
前記第４のサブステップで存在すると判断されたときに進み、前記処理対象ブロックの内部パタンを切り取り前記置換配線ブロックの内部パタンと置換する第５のサブステップと、
前記第２のサブステップで孤立クロックパタンに該当すると判断されたときに進み、前記処理対象ブロックをクロック配線パタンの両側に電源線パタンまたは接地線パタンが配置された配線ブロックに置換して前記第３のステップを終了する第６のサブステップとを有することを特徴とするクロックスキュー改善方法。
【請求項５】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックおよび配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、
置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値と比較してクロックスキュー値を求め所定のスキュー目標値以下となったか否かを判断する第４のステップと、
単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する第５のステップとを有し、
前記第４のステップが、処理対象クロック配線の容量値を更新しクロック信号遅延値を算出する第１のサブステップと、
前記処理対象クロック配線の遅延値と最大のクロック信号遅延値とから前記処理対象クロック配線のスキュー値を算出し所定のスキュー目標値以下であるか否かを判断し、目標値を超えるときには前記第３のステップに戻る第２のサブステップと、
前記第２のサブステップで目標値以下であると判断されたときに進み、すべてのクロック配線のクロックスキューが前記所定のスキュー目標値以下であるか否かを判断し、目標値を超えるクロック配線が存在しているときには前記第２のステップに戻り、すべてのクロック配線が目標値以下であるときには前記第４のステップを終了する第３のサブステップとを有することを特徴とするクロックスキュー改善方法。
【請求項６】
クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックおよび配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップと、
置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値と比較してクロックスキュー値を求め所定のスキュー目標値以下となったか否かを判断する第４のステップと、
単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する第５のステップとを有し、
前記配線ブロックおよび前記単位ブロックの外形が、配線の長手方向に２配線ピッチの長さの辺を有しこれと直角方向に２配線ピッチの長さの辺を有する方形であることを特徴とするクロックスキュー改善方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロックスキューの改善方法に関し、特に、ＬＳＩチップをレイアウトしたのちのスキュー改善に適したクロックスキュー改善方法に関する。
【０００２】
【従来の技術】
ＬＳＩチップのレイアウトにおいては、チップ内に散在するフリップフロップ（以下、Ｆ／Ｆと略記する）などの複数の順序回路間に供給されるクロック信号の位相ずれ（クロックスキュー）を低減するために、ルートバッファからＦ／Ｆまでのクロック信号線をツリー状に枝分かれさせて等長となるように配置配線するクロックツリーシンセシス（以下、ＣＴＳと略す）が広く使用されている。
【０００３】
図１１は、ＣＴＳを用いたレイアウト設計フロー図である。セル配置ステップ１１では、ＬＳＩの回路接続情報に従って基本回路セルを配置する。ＣＴＳ配線ステップ１２では、メタル配線の単位長あたりの容量値および抵抗値の情報を参照し、ルートバッファと各Ｆ／Ｆとの間が等長となるように合わせ込んでクロック信号を配線する。信号系配線ステップ１３では、回路接続情報に従ってクロック信号以外の信号の配線を実行し、クロックスキュー計算ステップ１４で、ルートバッファからＦ／Ｆまでのクロック遅延をＦ／Ｆへの信号パス毎に算出し、クロック遅延の最大値と最小値からクロックスキュー値を計算する。クロックスキュー合否判定ステップ１５ａでは、算出されたクロックスキュー値が予め設定された目標値以下か否かを判断する。クロックスキュー値が目標値以下の場合にはレイアウト設計を完了して次の設計ステップである設計検証に進むが、目標値を超える場合にはＣＴＳ配線ステップ１２に戻り再実行する。
【０００４】
図１２（ａ）は、ＣＴＳ配線の模式図である。クロック信号は、クロック入力ピンＣＩＮからルートバッファ１に供給され、ルートバッファ１から複数のＦ／Ｆ２へ等長のクロック配線３で供給される。
【０００５】
図１のＣＴＳを用いてクロック系を配線する方法は、設計ルールが比較的緩い世代、すなわち、メタル配線の底面の面積が側面の面積よりもずっと大きい世代においては非常に有効であり、ステップ１５ａでクロックスキュー値が目標値を超えることは殆どなかった。
【０００６】
しかしながら、近年では微細化の進展に伴って、メタル配線の側面の面積が底面の面積と同等以上の状況になり、このため、図１２（ｂ）に示すように、クロック配線に寄生する容量のうち底面容量Ｃ１よりも隣接する信号配線との結合容量Ｃ２が支配的になりつつある状況では、ＣＴＳを実行して配線長を等長に合わせ込んでも、次の信号系配線ステップ１３で配線される隣接信号配線７とクロック配線３との結合容量Ｃ２の大小によりクロック配線の寄生容量値は大きく変化してしまうことになる。この結果として、クロックスキュー値が増大し、目標値を超えて再度ＣＴＳを実行しなければならないケースが増えているが、ＣＴＳを再実行するとしても確実に改善する保証がないため試行錯誤的にならざるを得ず、結局は人手で煩雑な修正をせざるを得なくなる場合も多く、いずれにしても設計の効率が低下し設計期間が延長されてしまうという問題が生じてきた。
【０００７】
この問題を解決ものとして、特開平１０−１３５３４２号公報には、クロック配線専用の配線層を設ける技術が開示されている。クロック配線を専用の配線層に配線することにより隣接する信号配線をなくすことができる。しかしながら、この第１の従来例のように専用の配線層を設ける場合には、必然的に製造工程数が増加するので、ＬＳＩの製造コストが増加することになり好ましくない。
【０００８】
また第２の従来例として、特開平９−２８３７１５号公報には、配線完了後に各クロック配線について隣接信号配線との間隔を調整して結合容量を増減することによりクロック信号の遅延を調整し、クロックスキュー値の改善を行う技術が記載されている。図１３（ａ）に示すように、クロック配線３と隣接信号配線７０との間隔を調整することによりクロック信号の遅延値を調整する。
【０００９】
この第２の従来例は、配線実行時に配線グリッドを設定しない配線方法をとる場合には、クロック配線３と隣接信号配線７０との間隔を微調整できるので極めて有効である。
【００１０】
【発明が解決しようとする課題】
しかしながら、多くの自動配置配線システムでは、配線処理の実行速度を向上させるために予め設定された配線グリッド上に配線する方法が採用されており、図１３（ｂ）および（ｃ）に比較して示すように、配線グリッドが設定されている場合には、第２の従来例では寄生容量の微調整が困難となるという問題点がある。すなわち、図１３（ｂ）で示すように、配線ピッチＰｘの配線グリッド上にクロック配線３と隣接信号配線７０とが配線され、配線幅、配線間隔共にＤであるとすると、図１３（ｂ）ではクロック配線３と隣接信号配線７との間隔はＤであるのに対して、隣接信号配線７を１配線グリッド分（１配線ピッチ）移動させた図１３（ｃ）では、クロック配線３と隣接信号配線７０との間隔は３Ｄとなる。このように３倍の間隔に一挙に増大してしまうために細かなクロック遅延値の調整ができず、スキュー改善が容易にはできない場合も生じる。
【００１１】
本発明の目的は、クロック配線専用の配線層を用いなくともクロック信号の遅延が等しくなるように調整でき、また、配線グリッドを用いて配線する場合においてもクロック遅延を精度良く調整できてクロックスキュー低減が可能なクロックスキュー改善方法に関する。
【００１２】
【課題を解決するための手段】
本発明のクロックスキュー改善方法は、クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する配線ブロック、および配線ブロック名と内部パタンに応じてクロック配線に寄生する容量値を記憶したパタンテーブルを用いて、ＬＳＩチップにレイアウトされたルートバッファから複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減するクロックスキュー改善方法であって、
それぞれのクロック配線について配線パスに沿った領域を配線ブロックと同一外形を有する複数の単位ブロックに分割する第１のステップと、
前記パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線として選択する第２のステップと、
前記処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し単位ブロックの内部パタンを検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する第３のステップとを有している。
【００１３】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。図１は、本発明の一実施の形態のクロックスキュー改善処理１６を含むレイアウト設計フロー図である。
【００１４】
図１において、セル配置ステップ１１からクロックスキュー計算ステップ１４までは図１１に示した従来のレイアウト設計フローと同一であり、セル配置ステップ１１では、ＬＳＩの回路接続情報に従って基本回路セルを配置し、ＣＴＳ配線ステップ１２では、ルートバッファと各Ｆ／Ｆとの間が等長となるように合わせ込んでクロック信号を配線し、信号系配線ステップ１３では、回路接続情報に従ってクロック信号以外の信号の配線を実行し、クロックスキュー計算ステップ１４で、ルートバッファからＦ／Ｆまでのクロック遅延をＦ／Ｆへの信号パス毎に算出し、クロック遅延の最大値と最小値からクロックスキュー値を計算する。
【００１５】
クロックスキュー合否判定ステップ１５では、算出されたクロックスキュー値が予め設定された目標値以下か否かを判断し、クロックスキュー値が目標値以下の場合にはレイアウト設計を終了して次の設計ステップである設計検証に進むが、目標値を超える場合にはクロックスキュー改善処理ステップ１６を実行する。
【００１６】
クロックスキュー改善処理ステップ１６では、クロック配線パタンおよび周囲の配線パタンからなる内部パタンを有する方形の配線ブロックと内部パタンに応じてクロック配線に寄生する容量値とを対応させて容量値が小さい配線ブロックから大きい配線ブロックへの順序で記録したパタンテーブル１０を用いて、ＬＳＩチップにレイアウトされたルートバッファからＦ／Ｆ等の複数の順序回路のクロック端子までのそれぞれのクロック配線間のスキューを低減する。
【００１７】
クロックスキュー改善処理ステップ１６は、下位の処理ステップとして、配線パタン分割ステップ２１と、対象クロック配線選択ステップ２２と、ブロック置換ステップ２３と、スキュー値判定ステップ２４と、配線修正ステップ２５とを有している。
【００１８】
配線パタン分割ステップ２１では、それぞれのクロック配線について、配線パスに沿った領域をパタンテーブル１０に登録されている配線ブロックと同一外形を有する複数の単位ブロックに分割する。
【００１９】
対象クロック配線選択ステップ２２では、パタンテーブルを参照してそれぞれのクロック配線におけるクロック信号遅延値を算出し、最大のクロック信号遅延値から目標クロックスキュー値を減算して得た値よりもクロック遅延値が小さいクロック配線を抽出してスキュー改善の処理対象クロック配線を選択する。
【００２０】
ブロック置換ステップ２３では、処理対象クロック配線について単位ブロック毎に内部パタンが一致する配線ブロックを検索し、単位ブロックの内部パタンを、検索された配線ブロックよりも容量値の大きい配線ブロックの内部パタンに置換する。
【００２１】
スキュー値判定ステップ２４では、置換後の単位ブロックの容量値に基づいて各クロック配線におけるクロック信号遅延値を算出し、最大のクロック信号遅延値と比較してクロックスキュー値を求め、所定のスキュー目標値以下となったか否かを判断する。
【００２２】
配線修正ステップ２５では、単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する。
【００２３】
図２は、クロックスキュー改善処理ステップ１６を実行するクロックスキュー改善手段３１の構成図である。クロックスキュー改善手段３１は、クロックスキュー改善処理に必要な論理演算、数値演算等を実行するＣＰＵと、配線パタン分割ステップ２１、対象クロック配線選択ステップ２２、ブロック置換ステップ２３、スキュー値判定ステップ２４および配線修正ステップ２５の機能を実現するプログラム並びに処理中のデータを記憶する記憶部とを有しており、クロックスキュー合否判定ステップ１５までのレイアウト設計で作成されたＬＳＩの配置配線結果３２を入力し、パタンテーブル１０を参照して配線パタン分割ステップ２１から配線修正ステップ２５までのクロックスキュー改善処理を実行し、クロックスキュー値が目標値内になるようにクロック配線の周囲の配線の一部が修正されたスキュー改善済配置配線結果３３を出力する。外部から入出力／表示手段３４を通じてクロックスキュー改善手段３１の処理動作の制御、処理データの修正変更、処理結果の表示等を行うことができる。
【００２４】
図３は、パタンテーブル１０の登録内容の一例を示す図である。パタンテーブル１０の内部では、配線ブロック名と、クロック配線パタン３および周囲の信号配線パタンとを内部パタンとして含む配線ブロック７と、クロック配線パタン３に寄生する容量値とが対応して登録され、容量値が小さい内部パタンから容量値が大きい内部パタンに向けて順番に配列されている。なお、配線ブロック７の内部パタンには、配線ブロック７内の配線パタンと配線ブロック７の外形境界に中心線が一致する配線の配線パタンとを含むものとする。
【００２５】
図４は、配線パタン分割ステップ２１および対象クロック配線選択ステップ２２の詳細なフロー図であり、図５は、配線パタン分割ステップ２１の処理を模式的に説明する図である。
【００２６】
配線パタン分割ステップ２１では、図５（ａ）のレイアウトパタン図に示すように、ルートバッファ１とＦ／Ｆ２を接続するクロック配線のそれぞれについて、クロック配線３の配線パスに沿った領域を、図５（ｂ）のように、パタンテーブル１０に登録されている配線ブロック７と同一外形を有する複数の単位ブロック８に分割し、個々のクロック配線と対応させて記録する。配線ブロック７の場合と同様に、単位ブロック８の内部パタンには、単位ブロック８に含まれる配線パタンと単位ブロック８の外形境界に中心線が一致する配線の配線パタンとを含むものとする。なお、図５において、４はメタル配線のパタンであり、５は上層メタル配線のパタンであり、６はメタル配線４と上層メタル配線５とを接続するためのスルーホールのパタンである。
【００２７】
配線ブロック７の大きさは任意に設定することが可能であるが、図５以降の説明では、Ｘ方向に２配線グリッド分（すなわちＹ方向配線の配線ピッチＰｙの２倍）で、Ｙ方向に２配線グリッド分（すなわちＸ方向配線の配線ピッチＰｘの２倍）としている。このようにＸ方向、Ｙ方向ともに２配線グリッドの小さな配線ブロックを用いることによりパタンテーブル１０に登録する配線ブロックの種類を少なくすることができるので、対象クロック配線選択ステップ２２においてパタンマッチング処理を高速に実行できる。
【００２８】
対象クロック配線選択ステップ２２は、図４に示すように、サブステップ４０〜４４を含んでいる。サブステップ４０では、クロック信号の遅延値の小さい順にクロック配線の順位付け済であるか否かを判断し、順位付け済である場合にはサブステップ４１に進む。
【００２９】
サブステップ４１では、それぞれのクロック配線に対して図５（ｂ）のように、クロック配線３に対応するすべての単位ブロック８について図３のパタンテーブル１０を参照して単位ブロックと内部パタンが一致する配線ブロックを抽出し、そのパタン番号と容量値を単位ブロックの位置情報と対応させてクロックスキュー改善手段３１の記憶部に記憶し、図５（ｃ）に示すように、クロック配線３に対応するすべての単位ブロックの容量値を加算してクロック配線の容量値を算出する。
【００３０】
次に、サブステップ４２で、算出された容量値に基づいてクロック配線毎にクロック信号遅延値を算出し、サブステップ４３で、クロック配線をクロック信号遅延値が最小のクロック配線から最大のクロック配線までクロック信号遅延値にしたがい順位付けして記憶部に記憶する。
【００３１】
サブステップ４３の処理後およびサブステップ４０でクロック配線は順位付け済であると判断された場合にはサブステップ４４に進み、スキュー値判定ステップ２４までの処理が未了のクロック配線のうちでクロック信号遅延値が最小のクロック配線を処理対象クロック配線として選択して対象クロック配線選択ステップ２２を終了する。
【００３２】
図６は、ブロック置換ステップ２３の詳細なフロー図である。処理対象クロック配線のクロック遅延時間を増大させてクロックスキューの改善を図るために、ブロック置換ステップ２３では、サブステップ５１〜５５の処理を行う。各サブステップについて図５およびブロック置換処理を模式的に示す図である図７を参照して説明する。
【００３３】
先ず、サブステップ５１では、図５（ｂ）に示された処理対象クロック配線にかかわる単位ブロック８のうち置換処理が未処理で且つクロック配線３のパスに沿った距離においてＦ／Ｆ２に最も近い単位ブロックを処理対象ブロックとして選択する。
【００３４】
次に、サブステップ５２で、処理対象ブロック内の配線パタンがクロック配線のみで、且つ、処理対象ブロックに隣接する配線グリッドに信号配線パタンがない孤立クロックパタン（図１０（ａ）参照）に該当するか否かを判断し、該当すると判断した場合にはブロック置換ステップ２３を終了する。該当しないと判断した場合にはサブステップ５３へ進む。
【００３５】
サブステップ５３では、処理対象ブロックと内部パタンが一致する配線ブロックを検索する。パタンテーブルに登録された処理対象ブロックと内部パタンが一致する配線ブロックを、図４のサブステップ４１と同様のパタンマッチング処理を実行して新規に抽出しても良いが、サブステップ４１での抽出結果に基づいて予めクロック配線毎に単位ブロックに対応する内部パタンの配線ブロック名を記憶しておき、対象クロック配線名と処理対象ブロックである単位ブロックの位置情報から処理対象ブロックと内部パタンが一致する配線ブロック名を検索しても良い。
【００３６】
次に、サブステップ５４では、検索された配線ブロックよりも容量値が大きく、且つ、処理対象ブロックと置き換え配置が可能な配線ブロックである置換配線ブロックがパタンテーブル１０内に存在するか否かを判断する。パタンテーブル１０には、配線ブロックがクロック配線の寄生容量が小さいものから大きいものへ順番に登録されているので、処理対象ブロックに対応する内部パタンの配線ブロックを基点として配線ブロックを順次取りだし、その内部パタンと処理対象ブロックの内部パタンを置き換えたとしても異なるネット名の配線間のショート等の違反が生じないときに置き換え可能と判断する。置き換え可能な置換配線ブロックが存在しないと判断された場合にはブロック置換ステップ２３を終了し、置換配線ブロックが存在すると判断された場合にはサブステップ５５に進む。
【００３７】
サブステップ５５では、処理対象ブロックの内部パタンを切り取り前記置換配線ブロックの内部パタンと置換する。図５（ａ）のレイアウト結果に対してＦ／Ｆ２に最も近い単位ブロックを処理対象ブロックとしてブロック置換ステップ２３の処理を適用した結果が図７（ａ）であり、配線パタンＷＰ１が付加されてクロック配線３の寄生容量が増加している。内部パタンの置換時に、置換前の処理対象ブロックの内部パタンと置換後の内部パタンとで同一の位置形状の配線パタンには、置換前の処理対象ブロックにおけるそれぞれの配線パタンが属する配線のネット名を継承して付し、新規に付加された配線パタンには、対応すべきネット名を付する。
【００３８】
図８は、スキュー値判定ステップ２４および配線修正ステップ２５の詳細フロー図である。スキュー値判定ステップ２４では、サブステップ６１〜６３の処理を行う。
【００３９】
サブステップ６１では、処理対象クロック配線の寄生容量値を、ブロック置換ステップ２３によって変更された内部パタンに対応する容量値に更新し、クロック信号遅延値を算出する。
【００４０】
次に、サブステップ６２で、サブステップ６１で算出された処理対象クロック配線の遅延値と図４のサブステップ４２で求めた最大のクロック信号遅延値とから処理対象クロック配線のスキュー値を算出し、所定のスキュー目標値以下であるか否かを判断する。スキュー目標値を超えると判断された場合にはブロック置換ステップ２３のサブステップ５１に戻る。処理対象クロック配線のスキュー値がスキュー目標値以下に低減されたと判断される場合にはサブステップ６３に進む。
【００４１】
サブステップ６３では、すべてのクロック配線のクロックスキューが所定のスキュー目標値以下であるか否かを判断する。目標値を超えるクロック配線が存在していると判断された場合には対象クロック配線選択ステップ２２のサブステップ４０に戻る。すべてのクロック配線が目標値以下であると判断されたときにはスキュー値判定ステップ２４を終了する。
【００４２】
図５（ａ）におけるＦ／Ｆ２に最も近い単位ブロックを処理対象ブロックとしてブロック置換ステップ２３を完了した図７（ａ）の状態ではスキュー値が目標値以下にならなかった場合には、サブステップ６２からブロック置換ステップ２３に戻りサブステップ５１でＦ／Ｆ２に２番目に近い単位ブロック８を処理対象ブロックに選択してサブステップ５２〜５５の処理を実行し、図７（ｂ）に示すように、処理対象ブロックの内部パタンに配線パタンＷＰ２を付加してクロック配線３の寄生容量を増大させる。スキュー値判定ステップ２４のサブステップ６１で対象クロック配線のクロック信号遅延値を計算し、サブステップ６２でスキュー値が目標値以下にならなかった場合には、再度サブステップ５１に戻りＦ／Ｆ２から３番目に近い単位ブロックを処理対象ブロックとしてサブステップ５２〜５５の処理を実行し、図７（ｃ）に示すように、配線パタンＷＰ３、ＷＰ４を付加してクロック配線３の寄生容量を増大させる。
【００４３】
このようにしてＦ／Ｆ２から遠い位置の単位ブロックに向かって順次ブロック置換を実行し、サブステップ６２でスキュー値が目標値以下となったときに対象クロック配線についての改善処理を終了し、他にも目標値を超えるスキュー値のクロック配線が存在する場合には対象クロック配線選択ステップ２２に戻りサブステップ４４で次の処理対象クロック配線として選択して改善処理する。
【００４４】
すべてのクロック配線のスキュー値が所定のスキュー目標値以下に改善されたのちには、配線修正ステップ２５で、単位ブロックの置換結果に基づきクロック配線の周囲の配線修正を実行する。このとき、置換処理済みの単位ブロックの内部パタンに関しては配線パタンの位置を固定し、それぞれの配線パタンに付されたネット名が同一の配線パタン同士を接続したのち、単位ブロックの外部の信号配線で不要となった配線があれば除去してクロックスキュー改善処理１６を終了する。
【００４５】
図７（ｄ）は、配線修正ステップ２５を完了した改善処理後のレイアウトパタン図であり、図５（ａ）の改善処理前のレイアウトパタン図と比較してクロック配線３と配線パタンＷＰ１，ＷＰ２，ＷＰ３，ＷＰ４等との結合容量が付加されている。以上の説明から明らかなように、寄生容量の単位ブロック単位で増加させられるので、配線グリッドを用いている場合においてもクロック遅延を精度良く調整でき、クロックスキュー低減が可能となる。
【００４６】
図９は、本発明の第２の実施例におけるブロック置換ステップ２３ａのフロー図である。ブロック置換ステップ２３ａでは、処理対象ブロック内の配線パタンがクロック配線のみで、且つ、処理対象ブロックに隣接する配線グリッドに信号配線パタンがない孤立クロックパタンに該当する場合に、図１０の孤立クロック配線の改善模式図に示すようにして対象クロック配線の容量を増加させる。このために、図９のブロック置換ステップ２３ａには、図６のブロック置換ステップ２３に含まれるサブステップ５１〜５５に加えてサブステップ５６が追加されている。サブステップ５１〜５５については図６のブロック置換ステップ２３と同一であり、図１のレイアウト設計フロー図でブロック置換ステップ２３と置き換えることができる。
【００４７】
ブロック置換ステップ２３ａにおいては、サブステップ５２で図１０（ａ）のクロック配線３のように単位ブロック３内に他の信号配線がなく、単位ブロック３に隣接する外部の配線グリッド上においても信号配線が散在しない孤立クロックパタンに該当する場合にサブステップ５６に進み、図１０（ｂ）に示すように、処理対象ブロックである単位ブロック８をクロック配線パタンの両側に電源線パタン９または接地線パタンが配置された配線ブロックに置換する。
【００４８】
サブステップ５６が追加されたことにより、Ｆ／Ｆ２のクロック入力端子付近のクロック配線が孤立して配線されている場合においても寄生容量の大きい配線ブロックに置換することができるのでクロック遅延時間の調整範囲が広くなるという利点が生じる。電源線パタン９または接地線パタンは、配線修正ステップ２５で、図１０（ｃ）に示すように、Ｆ／Ｆ２の内部電源線または内部接地線に接続する。
【００４９】
【発明の効果】
以上に説明したように、本発明を適用することにより、クロック配線専用の配線層を用いなくともクロック信号の遅延が等しくなるように調整でき、また、配線グリッドを用いて配線する場合においてもクロック遅延を精度良く調整できるので、ＬＳＩの配置配線後にクロックスキューの改善が必要となったときに、ＬＳＩ全体の配置配線を再実行することなく容易且つ確実にクロックスキューを低減することができる。
【図面の簡単な説明】
【図１】本発明のクロックスキュー改善処理を含むレイアウト設計フロー図である。
【図２】クロックスキュー改善手段の構成図である。
【図３】パタンテーブルの登録内容の一例を示す図である。
【図４】配線パタン分割ステップおよび対象クロック配線選択ステップの詳細なフロー図である。
【図５】配線パタン分割ステップの処理を模式的に説明する図である。
【図６】ブロック置換ステップの詳細なフロー図である。
【図７】ブロック置換の処理を模式的に示す図である
【図８】スキュー値判定ステップおよび配線修正ステップの詳細フロー図である。
【図９】本発明の第２の実施例におけるブロック置換ステップのフロー図である。
【図１０】孤立クロック配線の改善処理を模式的に示す図である。
【図１１】ＣＴＳを用いたレイアウト設計フロー図である。
【図１２】ＣＴＳ配線の模式図およびその問題点を説明する図である。
【図１３】第２の従来例とその問題点を説明する図である。
【符号の説明】
１    ルートバッファ
２    Ｆ／Ｆ
３    クロック配線
７    配線ブロック
８    単位ブロック
１０    パタンテーブル
１１    セル配置ステップ
１２    ＣＴＳ配線ステップ
１３    信号系配線ステップ
１４    クロックスキュー計算ステップ
１５，１５ａ    クロックスキュー合否判定ステップ
１６    クロックスキュー改善処理ステップ
２１    パタン分割ステップ
２２    対象クロック配線選択ステップ
２３，２３ａ    ブロック置換ステップ
２４    スキュー値判定ステップ
２５    配線修正ステップ
【図１】
0003589988.tif 000002
【図２】
0003589988.tif 000003
【図３】
0003589988.tif 000004
【図４】
0003589988.tif 000005
【図５】
0003589988.tif 000006
【図６】
0003589988.tif 000007
【図７】
0003589988.tif 000008
【図８】
0003589988.tif 000009
【図９】
0003589988.tif 000010
【図１０】
0003589988.tif 000011
【図１１】
0003589988.tif 000012
【図１２】
0003589988.tif 000013
【図１３】
0003589988.tif 000014