(57)【要約】【課題】デザイン面積を縮小出来る半導体集積回路の圧縮方法を提供すること。【解決手段】半導体集積回路を設計すべきデザイン領域を、複数のブロックに分割するステップＳ１０と、各々のブロックに半導体素子を割り当てるステップＳ１１〜Ｓ１３と、各々のブロック内における半導体素子の密度を調べるステップＳ１４と、半導体素子の密度が疎であると判断されたブロックを圧縮するステップとＳ１５、Ｓ１６、各々のブロック間を配線で接続するステップＳ１７とを具備する。【選択図】    図１
2005039001.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路を設計すべきデザイン領域を、複数のブロックに分割するステップと、
各々の前記ブロックに半導体素子を割り当てるステップと、
各々の前記ブロック内における前記半導体素子の密度を調べるステップと、
前記半導体素子の密度が疎であると判断されたブロックを圧縮するステップと
各々の前記ブロック間を配線で接続するステップと
を具備することを特徴とする半導体集積回路の圧縮方法。
【請求項２】
前記半導体素子を割り当てるステップは、
機能記述により各々の前記ブロックに機能を割り当てるステップと、
前記機能記述を論理合成してスタンダードセルを得るステップと
を含むことを特徴とする請求項１記載の半導体集積回路の圧縮方法。
【請求項３】
前記半導体素子を割り当てるステップは、
機能記述を論理合成して得たスタンダードセルを、各々の前記ブロックに割り当てる
ことを特徴とする請求項１記載の半導体集積回路の圧縮方法。
【請求項４】
各々の前記ブロックに前記半導体素子を割り当てるステップにおいては、前記ブロック毎に、前記半導体素子の配置の最適化が行われる
ことを特徴とする請求項１乃至３いずれか１項記載の半導体集積回路の圧縮方法。
【請求項５】
各々の前記ブロックに前記半導体素子を割り当てるステップにおいて、いずれかのブロックに割り当てられる前記半導体素子はカスタムレイアウトにより設計され、その他のブロックに割り当てられる前記半導体素子はスタンダードセルで設計される
ことを特徴とする請求項１乃至４いずれか１項記載の半導体集積回路の圧縮方法。
【請求項６】
各々の前記ブロックに前記半導体素子を割り当てるステップにおいて、複数のブロックに割り当てられる前記半導体素子はカスタムレイアウトにより設計され、その他のブロックに割り当てられる前記半導体素子はスタンダードセルで設計され、
前記カスタムレイアウトによって設計された半導体素子が割り当てられた複数の前記ブロックは、最適化の際に互いの位置関係が保たれる
ことを特徴とする請求項５記載の半導体集積回路の圧縮方法。
【請求項７】
半導体集積回路が設計されて、半導体素子が割り当てられたデザイン領域を、複数のブロックに分割するステップと、
各々の前記ブロック内における前記半導体素子の密度を調べるステップと、
前記半導体素子の密度が疎であると判断されたブロックを圧縮するステップと
各々の前記ブロック間を配線で接続するステップと
を具備することを特徴とする半導体集積回路の圧縮方法。
【請求項８】
分割された前記ブロックのサイズは、前記半導体素子の位置を各々のブロック内において移動させた場合に変化する配線遅延が半導体集積回路の動作に影響を与えないように設定される
ことを特徴とする請求項１乃至７いずれか１項記載の半導体集積回路の圧縮方法。
【請求項９】
前記半導体素子の位置を各々のブロック内において移動させた場合に変化する配線遅延時間は、最大、前記半導体集積回路の動作クロック周期の１％以下である
ことを特徴とする請求項８記載の半導体集積回路の圧縮方法。
【請求項１０】
前記ブロックを圧縮するステップは、隣接する疎なブロック同士、及び隣接する疎なブロックと密なブロックとを、互いに重ね合わせる
ことを特徴とする請求項１乃至９いずれか１項記載の半導体集積回路の圧縮方法。
【請求項１１】
前記ブロックを圧縮するステップは、疎なブロックのサイズを縮小化する
ことを特徴とする請求項１乃至１０いずれか１項記載の半導体集積回路の圧縮方法。
【請求項１２】
前記ブロックを圧縮するステップの前に、疎と判断された前記ブロック内の配線混雑度を調べるステップと、
前記配線混雑度を調べるステップにおいて、配線混雑度が所定以上であるブロックについては、前記半導体素子の密度を密であるとみなすステップとを更に備える
ことを特徴とする請求項１乃至１１いずれか１項記載の半導体集積回路の圧縮方法。
【請求項１３】
前記ブロックを圧縮するステップの前に、密と判断された前記ブロックが、特定の行または列に集中しているか否かを調べるステップと、
密なブロックが特定の行に集中している場合には、当該密なブロックを、その面積を変えずに横幅を縮小し、特定の列に集中している場合には、当該密なブロックを、その面積を変えずに縦幅を縮小するステップとを更に備える
ことを特徴とする請求項１乃至１２いずれか１項記載の半導体集積回路の圧縮方法。
【請求項１４】
前記ブロックの圧縮比は、要求されるデザイン全体の形状に応じて決定される
ことを特徴とする請求項１乃至１２いずれか１項記載の半導体集積回路の圧縮方法。
【請求項１５】
前記ブロックを圧縮するステップにおいては、要求されるデザイン全体の形状に応じて、密なブロックの縦横比が変更される
ことを特徴とする請求項１４記載の半導体集積回路の圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体集積回路の圧縮方法に関する。例えば、スタンダードセルを配置することにより設計される半導体集積回路に関する。
【０００２】
【従来の技術】
近年、半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の高集積化にはめざましいものがある。それに伴い、ＬＳＩの設計者に対する負荷も増加している。
【０００３】
従来、ＬＳＩの設計はチップ全体を一括して行っていた。しかし、ＬＳＩの規模が大きくなるにつれて、設計の最適化が困難となりつつある。最適化処理自体は設計ツールが行うが、その処理に要する時間も数日〜１週間単位となり、場合によっては最適化自体が失敗する場合、あるいは処理が終わらない場合がある。
【０００４】
そこで、１つのチップを複数の領域に分割して設計を行う方法が提案されている（例えば非特許文献１参照）。本提案は、分割した領域毎に最適化処理を行い、その後、各領域間を接続する。本提案によれば、最適化処理を並列的に行うことが出来、処理に要する時間を数時間〜１日程度に短縮できる。
【０００５】
【非特許文献１】
ＡｍｍｏＣｏｒｅ  Ｔｅｃｈｎｏｌｏｇｙ、ｆａｂｒｉｘ  Ｐｒｅｌｉｍｉｎａｒｙ  Ｄａｔａｓｈｅｅｔ、［ｏｎｌｉｎｅ］、［平成１５年７月１０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ａｍｍｏｃｏｒｅ．ｃｏｍ／ａｍｍｏｃｏｒｅ＿ｆａｂｒｉｘ．ｐｄｆ＞、＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ａｍｍｏｃｏｒｅ．ｃｏｍ／ｆａｂｒｉｘ＿ｏｖｅｒｖｉｅｗ．ｐｄｆ＞
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の提案であると、全ての領域を効率よく使用することが困難であり、領域毎に疎密が発生する。従って、チップの面積使用効率が低下し、ＬＳＩのデザインの圧縮率を向上させることが困難であるという問題があった。
【０００７】
この発明は、上記事情に鑑みてなされたもので、その目的は、デザイン面積を縮小出来る半導体集積回路の圧縮方法を提供することにある。
【０００８】
【課題を解決するための手段】
この発明の一態様に係る半導体集積回路の圧縮方法は、半導体集積回路を設計すべきデザイン領域を、複数のブロックに分割するステップと、各々の前記ブロックに半導体素子を割り当てるステップと、各々の前記ブロック内における前記半導体素子の密度を調べるステップと、前記半導体素子の密度が疎であると判断されたブロックを圧縮するステップと各々の前記ブロック間を配線で接続するステップとを具備することを特徴としている。
【０００９】
上記方法であると、デザイン領域を複数のブロックに分割し、ブロック毎に機能を割り当てている。そして、面積使用効率の低いブロック同士、すなわちブロック内における半導体素子密度が疎であるブロックを、隣接するもの同士で重ね合わせている。更に、面積使用効率の高いブロック、すなわちブロック内における半導体素子密度が密であるブロックと、面積使用効率の低いブロックとを、隣接するもの同士で重ね合わせている。従って、半導体集積回路のデザイン面積を縮小出来る。
【００１０】
【発明の実施の形態】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１１】
この発明の第１の実施形態に係る半導体集積回路の圧縮方法について、図１を用いて説明する。図１はＬＳＩの圧縮方法の処理の流れを示すフローチャートである。
【００１２】
図示するように、まずＬＳＩをデザインすべきデザイン領域を格子状に分割する（ステップＳ１０）。この様子を示しているのが図２である。図２はＬＳＩのデザイン領域を模式的に表している。図示するように、デザイン領域１が、小さな２５個のブロックＢＬＫ００〜ＢＬＫ４４に分割されている。本実施形態ではブロックの数は２５個であるが、勿論、ブロック数は２５個に限定されるものではない。各ブロックの大きさは、ブロック内でスタンダードセルを移動させた際に、それによる信号遅延が、動作タイミングに影響しない程度とすることが望ましい。すなわち、例えば図３に示すように、１つのブロックＢＬＫ内を信号が通過するのに要する時間がｔ１であったとする。そして、ブロック内に含まれる半導体素子を移動させた時に、ブロックＢＬＫ内を信号が通過するのに要する時間が１．０１・ｔ１であれば良い。より具体的には、各ブロックにおいて一辺の長さに相当する配線遅延の変化が、サイクルタイム（動作クロック周期）の１％以下にすることが望ましい。これは、ＲＴＬ（Ｒｅｇｉｓｔｅｒ−Ｔｒａｎｓｆｅｒ−Ｌｅｖｅｌ）のｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で作成した機能記述（以下ＲＴＬ記述と呼ぶ）を論理合成してタイミング解析を行った解析結果と、実際にスタンダードセルを配置した場合に発生する配線遅延との間の誤差を小さくするためである。１ブロック当たりの配線遅延が１％以下であれば、１０個のブロックを経由するパスにおける上記誤差は、最大でも１０％である。高周波数で動作するＬＳＩの設計においては、１つのパスがインバータ２０〜３０段の遅延で形成され、論理の構成に使用される遅延は、平均２段分である。従って、１０個以上のブロックを経由するパスは、設計上非常に少なくする必要がある。よって、１ブロック当たりの配線遅延がサイクルタイムの１％以下であれば、十分な速度見積もり精度が得られる。
【００１３】
次に、各ブロックに機能を割り当てる（ステップＳ１１）。機能の割り当ては、ＲＴＬ記述によって行われる。この処理は、従来と同様であるので説明は省略する。
【００１４】
次に、各ブロックについて割り当てられた機能を示すＲＴＬ記述を論理合成（ｓｙｎｔｈｅｓｉｚｅ）する（ステップＳ１２）。これにより、各ブロック内には、合成によって得られたスタンダードセルが配置される。この配置処理は、既存の配置ツールを用いて最適に行うことが出来る。すなわち、ブロック毎に、スタンダードセルの配置の最適化が行われる。
【００１５】
次に、デザイン領域の圧縮を行う。すなわち、まず図１におけるステップＳ１３において、各ブロック内のスタンダードセルの疎密を調べる。ブロックの疎密は、ブロック面積に対するスタンダードセルの使用面積の比率によって求められる。すなわち、疎か密か、ということは、ブロックの面積使用効率を示す。ブロックが疎であるか密であるかの境界は、配線層数にも影響を受けるが、概ね６０〜８０％に設けるのことが望ましい。勿論、６０〜８０％に限られず、製品によって境界となる数値は変わっても良い。そして、例えば図２に示したデザイン領域１に含まれるブロックの疎密が、図４に示すようであったと仮定する。図４はデザイン領域を模式的に示しており、斜線の付されたブロックが密、付されていないブロックが疎と判断されたブロックである。
【００１６】
次に、スタンダードセルがブロック内で縦に配置されている場合には、制約の厳しい縦方向の圧縮を行う（ステップＳ１４）。すなわち、ブロック全体を移動させて、疎なブロックと密なブロック、及び疎なブロック同士をオーバーラップさせる。より具体的には、図５に示すように、密なブロックＢＬＫ１０と疎なブロックＢＬＫ２０とが隣接している場合、ブロックＢＬＫ１０とＢＬＫ２０とが、一部領域で重なるように、ブロックＢＬＫ１０、ＢＬＫ２０を移動させる。また、隣接する疎なブロックＢＬＫ２３、ＢＬＫ３３を移動させて、両者が一部領域で重なるようにする。この処理を、デザイン領域１全域で行う。この際、各ブロックの平均面積使用効率と、目標面積使用効率との比を求める。そして、デザイン領域全体の面積使用効率が目標面積使用効率と等しくなるように、ブロック同士を重ねる。また、２つのブロックが重なっている領域では、配置されたスタンダードセルの重なりが生じる。従って、既成の配置ツールによって、ＥＣＯ  ｐｌａｃｅを行って、スタンダードセルの重なりを解消する。ステップＳ１４の結果、図６に示されるように、複数のブロックが縦方向で重なり合ったデザイン領域１が得られる。
【００１７】
引き続き、横方向の圧縮を行う（ステップＳ１５）。本処理は、上記ステップＳ１４の処理をブロックの横方向について行うものである。その結果、図７に示すように、複数のブロックが縦方向及び横方向で重なり合ったデザイン領域１が得られる。なお、場合によってはステップＳ１４及びステップＳ１５の処理を更に繰り返して行っても良い。
【００１８】
その後は、スタンダードセルレベルでの配線を行う（ステップＳ１６）。本処理は、既存の配線ツールによって行うことが出来る。
【００１９】
上記の結果、ＬＳＩの設計が完了する。
【００２０】
上記のように、本実施形態に係る半導体集積回路の圧縮方法であると、デザイン領域を複数のブロックに分割し、ブロック毎に機能を割り当てている。そして、面積使用効率の低いブロック同士、すなわちブロック内におけるスタンダードセル密度が疎であるブロックを、隣接するもの同士で重ね合わせている。更に、面積使用効率の高いブロック、すなわちブロック内におけるスタンダードセル密度が密であるブロックと、面積使用効率の低いブロックとを、隣接するもの同士で重ね合わせている。その結果、半導体集積回路のデザイン面積を縮小出来る。
【００２１】
また、ブロックのサイズは、ブロック内でスタンダードセルを移動させた際に、それによる信号遅延が動作タイミングに影響しない程度としている。従って、動作タイミングを悪化させることなく、デザイン面積の縮小化が可能である。
【００２２】
更に、デザイン領域全体よりもサイズの小さなブロック毎に配置を行っているので、デザイン全体におけるスタンダードセルの配置が容易となり、配置に要する時間を短縮化出来る。その結果、設計者の負担を軽減できる。また、スタンダードセルの配置を容易に最適化出来る。
【００２３】
なお、図８は本実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャートである。図示するように、各ブロックに機能を割り当てる前に、ＲＴＬ記述を論理合成しても構わない。すなわち、各ブロックに機能を割り当てる際には、ＲＴＬ記述からではなく、論理合成後のネットを用いてもよい。すなわち、予め論理合成を行って、ネットリストを得る。そして、ネットリストをレジスタの入力から辿ることによって、スタンダードセルを各ブロックに割り当てることが出来る（ステップＳ１７）。
【００２４】
この方法によれば、既に論理がスタンダードセルによって記述されている。従って、割り当てたスタンダードセルの総面積からブロック内の密度が分かるため、配置後にデザインを調べることなくブロックの疎密が判断できる。すなわち、図１におけるステップＳ１３の処理を行う必要が無い。この場合、冗長な面積換算が不要となり、半導体集積回路の設計を簡略化出来る。
【００２５】
また他の方法として、ＲＴＬ記述上、Ａ［３：０］のように同じ信号名で表されるものについては、複数のレジスタから辿り、ビットスライスで分割しても良い（ステップＳ１１）。同一ビットでは信号間の相関が高いため、ブロック内で有効に配線が行われ、ブロックを跨ぐ配線数を削減できる。
【００２６】
次に、この発明の第２の実施形態に係る半導体集積回路の圧縮方法について、図９を用いて説明する。本実施形態は、上記第１の実施形態と同様に、疎なブロックを圧縮するものであるが、その際、疎なブロックのブロックサイズを小さくすることより行うものである。図９はＬＳＩの圧縮方法の処理の流れを示すフローチャートである。
【００２７】
まず、上記第１の実施形態と同様に、ステップＳ１０〜Ｓ１３の処理を行う。そして、各ブロックの疎密の判断結果が図１０のようであったとする。図１０は、ＬＳＩのデザイン領域を模式的に示しており、斜線の付されたブロックが密、付されていないブロックが疎と判断されたブロックである。
【００２８】
次に、図１１に示すように、疎なブロックのブロックサイズを縮小化して、圧縮する（ステップＳ２０）。これは、縦方向圧縮の場合で有れば、セル配置情報のＹ座標の値に圧縮率を掛けることで容易に実現できる。勿論、横方向圧縮で有れば、Ｘ座標の値に圧縮率を掛ければ良い。なお、配置ツールの制限により、ブロックサイズがある一定値でなければならないような場合には、圧縮率を掛けた後、四捨五入等で値を丸めてやれば良い。その結果、デザイン領域１は図１２に示すように圧縮される。
【００２９】
その後は、ステップＳ１６において、スタンダードセルレベルでの配線を行って、ＬＳＩの設計が完了する。
【００３０】
上記のように、疎なブロックのブロックサイズを縮小することで、上記第１の実施形態と同様の効果が得られる。
【００３１】
なお、図１３は本実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャートである。図示するように、上記第１の実施形態の変形例と同様に、各ブロックに機能を割り当てる前に、ＲＴＬ記述の論理合成を行っても構わない。
【００３２】
次に、この発明の第３の実施形態に係る半導体集積回路の圧縮方法について、図１４を用いて説明する。本実施形態は、上記第１、第２の実施形態において、疎と判断されたブロックの配線密度が高い場合には、当該ブロックの圧縮を行わないものである。図１４はＬＳＩの圧縮方法の処理の流れを示すフローチャートである。
【００３３】
まず、上記第１の実施形態と同様に、ステップＳ１０〜Ｓ１３の処理を行う。
【００３４】
次に、疎なブロックにおける配線の混雑状況を調べる（ステップＳ３０）。そして、疎なブロックにおいて、配線混雑度が高ければ、当該ブロックの半導体素子の密度が密であるとみなす（ステップＳ３１）。このステップＳ３０、Ｓ３１について、図１５、図１６を用いて説明する。図１５、図１６はそれぞれ、一部のブロック内の回路図である。図示するように、ＲＴＬ記述を論理合成してスタンダードセルを各ブロックに割り当てた際、ブロックＢＬＫ２２、ＢＬＫ２３は、１つのラッチ回路（２つのインバータ）を含んでいたと仮定する。そして、ステップＳ１３において、ブロックＢＬＫ２２は疎と判断されたとする。すると、図１６に示すように、ブロックＢＬＫ２３も１つのラッチ回路を含むのみであるから、ブロックＢＬＫ２３も疎と判断される。しかし、ブロックＢＬＫ２２とブロックＢＬＫ２３とでは、配線混雑度が大きく異なる。すなわち、ブロックＢＬＫ２２では、２つのインバータ以外の領域の殆どが空き領域である。これに対してブロックＢＬＫ２３では、確かにインバータの個数は２個であるが、配線数が多いため、ブロックＢＬＫ２３内に空き領域は殆ど無い。このように、配線によってブロック内に空き領域が殆ど無いにも関わらず疎と判断されたブロックを、ステップＳ３１では密と判断する。
【００３５】
その後は、疎と判断されたブロックの圧縮を行う（ステップＳ３２）。ブロックの圧縮方法は、上記第１、第２の実施形態で説明した方法が用いられる。すなわち、隣接する疎なブロック同士、または疎なブロックと密なブロックとを重ね合わせても良いし、疎なブロックのブロックサイズを縮小化しても良い。
【００３６】
そして、ステップＳ１６において、スタンダードセルレベルでの配置配線を行って、ＬＳＩの設計が完了する。
【００３７】
上記のように、本実施形態に係る半導体集積回路の圧縮方法であると、上記第１、第２の実施形態と同様の効果に併せて、次の効果が得られる。デザインの再配線を容易にすることが出来る。すなわち、ブロック内にセルが疎に配置されており、且つ配線混雑度の低いブロックは、圧縮を行っても、再配線時に面積的な余裕があり、容易に配線を行うことが出来る。しかし、ブロック内のセル密度は疎であっても、その他の領域が配線によって十分に使われているブロックを圧縮すると、再配線時に面積的な余裕が無い。従って、再配線が非常に困難になるか、場合によっては再配線が不可能になってしまう虞がある。
【００３８】
しかし、本実施形態に係る方法であると、まず各ブロック内におけるセルの疎密を調べ、更に配線密度を調べている。そして、疎なブロックであっても配線密度が高いブロックは、密なブロックであると判断して、圧縮を行わないようにしている。従って、デザインの再配線を容易にすることが出来る。
【００３９】
なお、図１７は本実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャートである。図示するように、本実施形態においても、上記第１の実施形態の変形例と同様に、各ブロックに機能を割り当てる前に、ＲＴＬ記述の論理合成を行っても構わない。
【００４０】
次に、この発明の第４の実施形態に係る半導体集積回路の圧縮方法について、図１８を用いて説明する。本実施形態は、上記第１、第２の実施形態において、特定の行または列に集中して存在する密なブロックのブロックサイズを変更するものである。図１８はＬＳＩの圧縮方法の処理の流れを示すフローチャートである。
【００４１】
まず、上記第１の実施形態と同様に、ステップＳ１０〜Ｓ１３の処理を行う。ステップＳ１３の結果、デザイン領域は図１９のように判断されたと仮定する。図１９は、デザイン領域を模式的に示す図である。
【００４２】
そして、密なブロックが特定の行または列に集中して存在しているか否かを判断する（ステップＳ４０）。図１９に示すように、本例では、特定の列に存在するブロックＢＬＫ０２〜ＢＬＫ４２が密と判断され、その他のブロックは疎と判断されたとする。
【００４３】
次に、特定の行または列に集中して存在する密なブロックの縦横比を変更する（ステップＳ４１）。これは、セルの配置座標に、ブロック一辺長の変更率を掛けることで実現できる。すなわち、図２０に示すように、ある一列に集中して存在するブロックＢＬＫ０２〜ＢＬＫ４２の縦横比を変更し、各ブロックの面積を変えないように、縦方向のサイズを縮小化する。
【００４４】
その後は、疎と判断されたブロックの圧縮を行う（ステップＳ３２）。ブロックの圧縮方法は、上記第１、第２の実施形態で説明した方法が用いられる。すなわち、隣接する疎なブロック同士、または疎なブロックと密なブロックとを重ね合わせても良いし、疎なブロックのブロックサイズを縮小化しても良い。図２１は、第１の実施形態で説明した方法、図２２は第２の実施形態で説明した方法によって、疎なブロックを圧縮した場合のデザイン領域を示す。
【００４５】
そして、ステップＳ１６において、スタンダードセルレベルでの配線を行って、ＬＳＩの設計が完了する。
【００４６】
上記のように、本実施形態に係る半導体集積回路の圧縮方法であると、上記第１、第２の実施形態と同様の効果が得られると同時に、更に効率的にデザイン面積を縮小できる。図１９に示すように、密なブロックが特定の行または列に集中している場合、当該行または列は、殆ど圧縮できない。しかし、本実施形態に係る方法であれば、密なブロックを、面積は変えずに縦横比を変えている。従って、図１９に示すような場合であっても、デザイン領域を全体として縮小化出来る。
【００４７】
なお、密なブロックの縦横比を変更する場合には、密なブロックの集中する行または列の大きさが、疎なブロックを圧縮した結果得られる行または列の大きさに等しくなるようにすることが望ましい（図２１、図２２参照）。
【００４８】
また、上記実施形態では特定の列に密なブロックが集中している例について説明した。この場合には、ブロックの横方向を大きくすることによって、縦方向を小さくする。しかし、特定の行に密なブロックが集中している場合には、図２３に示すように、ブロックの縦方向を大きくすることによって、横方向を小さくすれば良い。
【００４９】
更に、本実施形態は、上記第３の実施形態と組み合わせることも可能である。すなわち、図２４に示すように、ステップＳ１３とステップＳ４０との間に、上記第３の実施形態で説明したステップＳ３０、Ｓ３１を挿入しても良い。この場合には、ステップＳ３１で初めて密と判断されたブロックを含めて、ステップＳ４０の処理が行われる。
【００５０】
また、図２５に示すように、図１８、図２４に示す圧縮方法において、上記第１の実施形態の変形例と同様に、各ブロックに機能を割り当てる前に、ＲＴＬ記述の論理合成を行っても構わない。
【００５１】
次に、この発明の第５の実施形態に係る半導体集積回路の圧縮方法について、図２６を用いて説明する。本実施形態は、上記第１乃至第４の実施形態において、ブロックの一部をカスタムレイアウトによって構成するものである。図２６は、ＬＳＩの圧縮方法の処理の流れを示すフローチャートである。
【００５２】
図示するように、まずＬＳＩをデザインすべきデザイン領域を格子状に分割する（ステップＳ５０）。この処理は、上記第１の実施形態で説明したステップＳ１０の処理と同様である。この際、スタンダードセルではなくカスタムレイアウトで構成すべき領域を指定する。この様子を示しているのが、図２７である。図２７は、ＬＳＩのデザイン領域を模式的に表している。図示するように、ステップＳ５０では、デザイン領域１を２５個のブロックＢＬＫ００〜ＢＬＫ４４に分割し、且つ例えばブロックＢＬＫ２２をカスタムレイアウトで構成すべき領域に指定する。
【００５３】
次に、上記第１の実施形態と同様に、各ブロックに機能を割り当てる（ステップＳ１１）。そして、論理合成を行い、スタンダードセル及びカスタムレイアウトの割り当てを行う（ステップＳ５１）。すなわち、まずステップＳ５０で指定されたブロックを検出する。そして、検出されたブロック（図２７ではブロックＢＬＫ２２）に対してはカスタムレイアウトを割り当て、その他のブロックにおいては、ＲＴＬ記述をスタンダードセルに置き換える。
【００５４】
その後は各ブロックの疎密を調べ（ステップＳ１３）、上記第１乃至第４の実施形態で説明したステップＳ１４、Ｓ２０、Ｓ３０、またはＳ４０へ進む。
【００５５】
上記のように、本実施形態に係る半導体集積回路の圧縮方法であると、上記第１乃至第４の実施形態で説明した効果が得られる。また、スタンダードセルを用いた設計手法だけでなく、カスタムレイアウトを用いた設計を容易に採用できる。特定の演算器やメモリなどは、スタンダードセルよりもむしろカスタムレイアウトで構成することが有利である。このことは設計当初から分かっていることである。その場合には、予めモジュールなどの一連の機能記述を、カスタムレイアウトで構成することが望ましい。本実施形態であると、各ブロックと機能とを対応させることで、１つのＬＳＩを、スタンダードセル設計とカスタムレイアウト設計との２つの設計手法を用いて行うことが容易となる。
【００５６】
なお、本実施形態ではカスタムレイアウト設計すべきブロックが１つの場合を例に挙げて説明したが、その数は限定されるものではない。また、複数のブロックに跨って１つのカスタムレイアウトが割り当てられた場合には、当該ブロックの互いに位置関係を固定することが望ましい。例えば、図２８に示すように、１つのカスタムレイアウトが４つのブロックＢＬＫ１１、ＢＬＫ１２、ＢＬＫ２１、ＢＬＫ２２に跨って存在するような場合がある。このような場合には、ステップＳ１２の最適化処理において、これらのブロックの位置関係が変わらないようにすることが必要である。
【００５７】
また、一般的にカスタムレイアウトは面積・性能をスタンダードセルに比べて高くすることが出来る。他方、スタンダードセルは形状・配置の自由度が高く、プロセスの変化に対応しやすい。従って、同じ設計を異なるプロセスで再利用する時には、カスタムレイアウトとスタンダードセルとで、有利不利が変わる場合がある。この場合には、カスタムレイアウトで構成したブロックと、同じ機能を有するスタンダードセルベースのブロックとを変換し、ステップＳ５１の論理合成以降を再実行することで、ＲＴＬ記述を変更しなくて済む。
【００５８】
なお、図２９に示すように、本実施形態においても、上記第１の実施形態の変形例と同様に、各ブロックに機能を割り当てる前に、ＲＴＬ記述の論理合成を行っても構わない。そして、カスタムレイアウトと、論理合成によって得られたスタンダードセルとを、各ブロックに割り当てても良い。
【００５９】
上記のように、この発明の第１乃至第５の本実施形態に係る半導体集積回路の圧縮方法であると、ＬＳＩのデザイン領域を複数の小さなブロックに分割している。そして、スタンダードセルを配置した後、各ブロックの疎密を調べている。その後、スタンダードセルの密度が低いブロックを圧縮することにより、デザイン面積を縮小化している。更に、デザイン領域をブロックに分割する際には、ブロックを、ブロック内においてセルが移動しても動作タイミングに影響を与えない程度のサイズにしている。従って、動作タイミングの悪化を招かずに、デザイン面積を縮小化出来る。
【００６０】
なお要求が有る場合には、圧縮後のデザイン領域の形状をその要求形状に合わせることも出来る。本例について、図３０を用いて説明する。図３０は、上記第１乃至第５の実施形態の第１変形例に係る圧縮方法のフローチャートである。
【００６１】
図示するように、上記第１乃至第５の実施形態で説明したステップＳ１３、Ｓ１７、Ｓ３１、及びＳ５２の後、所定の形状に合わせて密なブロックの縦横比を変更する（ステップＳ６０）。例えば、デザイン領域の疎密の関係が、図１０に示すようであったとする。そして、圧縮後のデザイン領域を、横幅０．９倍、縦幅０．８倍にしたいという要求があったとする。その要求に合わせて、密なブロックの縦横比を、その面積を変えないように変更する。図３１はこの様子を示している。図３１では、密なブロックの縦幅を０．８倍にし、横幅を１．２５倍に変更している。
【００６２】
次に図３０におけるステップＳ６１において、所定の形状に合わせて、疎なブロックを圧縮する。図３２はこの様子を示している。図３２に示すように、疎なブロックは、デザイン領域全体の横幅が圧縮前の０．９倍、縦幅が０．８倍になるように、疎なブロック及び密なブロックと重ねあわされる。重ね合わせる方法は、上記第１の実施形態と同様である。
【００６３】
またステップＳ６１においては、上記第２の実施形態で説明した方法によって、疎なブロックを圧縮しても良い。すなわち、図３３に示すように、デザイン領域全体の横幅が圧縮前の０．９倍、縦幅が０．８倍になるように、疎なブロックが圧縮される。
【００６４】
本変形例によれば、デザイン領域に所定の形状が要求されている場合であっても、その要求に対応することが出来る。なお図３１乃至図３３の例では、密なブロックのサイズを、一律、横幅０．８倍、縦幅１．２５倍としているが、ブロック毎に異なっていても良い。すなわち、密なブロックのうち、例えばいずれかのブロックは横幅が０．８倍、縦幅が１．２５倍に変更され、いずれかのブロックは横幅が１．２５倍、縦幅が０．８倍に変更され、またその他のブロックは、横幅、縦幅が変更されない場合があってもよい。
【００６５】
更に、上記第１乃至第５の実施形態では、デザイン領域を分割した後に、機能の割り当て（スタンダードセルの割り当て）が行われる場合について説明した。しかし、その順序は逆であってもよい。この場合の圧縮方法について、図３４を用いて説明する。図３４は、上記第１乃至第５の実施形態の第２変形例に係る圧縮方法のフローチャートである。
【００６６】
図示するように、既に設計済み（スタンダードセルが配置済み）のデザイン領域を、複数のブロックに分割する（ステップＳ７０）。このステップＳ７０は、上記第１の実施形態で説明したステップＳ１０の処理と同様である。
【００６７】
次に、各ブロックの疎密を判断する（ステップＳ１３）。すなわち、各ブロックに含まれるスタンダードセルの密度を調べる。その後は、上記第１乃至第５の実施形態及びその第１変形例で説明したステップＳ１４、Ｓ２０、Ｓ３０、Ｓ４０、及びＳ６０の処理を行う。
【００６８】
本変形例によれば、既に機能が割り当てられた既存のデザインについても、上記第１乃至第５の実施形態が適用出来る。この場合でも、半導体回路がスタンダードセルで設計されているかカスタムレイアウトで設計されているかは問わない。
【００６９】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【００７０】
【発明の効果】
以上説明したように、この発明によれば、デザイン面積を縮小出来る半導体集積回路の圧縮方法を提供できる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態に係る半導体集積回路の圧縮方法のフローチャート。
【図２】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図。
【図３】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、ブロック内の模式図であり、配線遅延時間の変化の様子を示す図。
【図４】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図であり、ブロック内のスタンダードセルの疎密を示す図。
【図５】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図６】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、ブロックを縦方向で圧縮する様子を示す模式図。
【図７】この発明の第１の実施形態に係る半導体集積回路の圧縮方法において、ブロックを横方向で圧縮する様子を示す模式図。
【図８】この発明の第１の実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図９】この発明の第２の実施形態に係る半導体集積回路の圧縮方法のフローチャート。
【図１０】この発明の第２の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図であり、ブロック内のスタンダードセルの疎密を示す図。
【図１１】この発明の第２の実施形態に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図１２】この発明の第２の実施形態に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図１３】この発明の第２の実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図１４】この発明の第３の実施形態に係る半導体集積回路の圧縮方法のフローチャート。
【図１５】この発明の第３の実施形態に係る半導体集積回路の圧縮方法において、ブロックに配置したスタンダードセルの例を示す模式図。
【図１６】この発明の第３の実施形態に係る半導体集積回路の圧縮方法において、ブロックに配置したスタンダードセルの例を示す模式図。
【図１７】この発明の第３の実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図１８】この発明の第４の実施形態に係る半導体集積回路の圧縮方法のフローチャート。
【図１９】この発明の第４の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図であり、ブロック内のスタンダードセルの疎密を示す図。
【図２０】この発明の第４の実施形態に係る半導体集積回路の圧縮方法において、密なブロックの縦横比を変更する様子を示す模式図。
【図２１】この発明の第４の実施形態に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図２２】この発明の第４の実施形態に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図２３】この発明の第４の実施形態に係る半導体集積回路の圧縮方法において、密なブロックの縦横比を変更する様子を示す模式図。
【図２４】この発明の第４の実施形態の第１変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図２５】この発明の第４の実施形態の第２変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図２６】この発明の第５の実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図２７】この発明の第５の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図。
【図２８】この発明の第５の実施形態に係る半導体集積回路の圧縮方法において、複数のブロックに分割したデザイン領域の模式図であり、複数のブロックに跨ってカスタムレイアウトが設けられた様子を示す図。
【図２９】この発明の第５の実施形態の変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図３０】この発明の第１乃至第５の実施形態の第１変形例に係る半導体集積回路の圧縮方法のフローチャート。
【図３１】この発明の第１乃至第５の実施形態の第１変形例に係る半導体集積回路の圧縮方法において、密なブロックの縦横比を変更する様子を示す模式図。
【図３２】この発明の第１乃至第５の実施形態の第１変形例に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図３３】この発明の第１乃至第５の実施形態の第１変形例に係る半導体集積回路の圧縮方法において、ブロックを圧縮する様子を示す模式図。
【図３４】この発明の第１乃至第５の実施形態の第２変形例に係る半導体集積回路の圧縮方法のフローチャート。
【符号の説明】
１…デザイン領域
【図１】
2005039001.tif 000003
【図２】
2005039001.tif 000004
【図３】
2005039001.tif 000005
【図４】
2005039001.tif 000006
【図５】
2005039001.tif 000007
【図６】
2005039001.tif 000008
【図７】
2005039001.tif 000009
【図８】
2005039001.tif 000010
【図９】
2005039001.tif 000011
【図１０】
2005039001.tif 000012
【図１１】
2005039001.tif 000013
【図１２】
2005039001.tif 000014
【図１３】
2005039001.tif 000015
【図１４】
2005039001.tif 000016
【図１５】
2005039001.tif 000017
【図１６】
2005039001.tif 000018
【図１７】
2005039001.tif 000019
【図１８】
2005039001.tif 000020
【図１９】
2005039001.tif 000021
【図２０】
2005039001.tif 000022
【図２１】
2005039001.tif 000023
【図２２】
2005039001.tif 000024
【図２３】
2005039001.tif 000025
【図２４】
2005039001.tif 000026
【図２５】
2005039001.tif 000027
【図２６】
2005039001.tif 000028
【図２７】
2005039001.tif 000029
【図２８】
2005039001.tif 000030
【図２９】
2005039001.tif 000031
【図３０】
2005039001.tif 000032
【図３１】
2005039001.tif 000033
【図３２】
2005039001.tif 000034
【図３３】
2005039001.tif 000035
【図３４】
2005039001.tif 000036
【手続補正書】
【提出日】平成15年11月10日(2003.11.10)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
半導体集積回路を設計すべきデザイン領域を、複数のブロックに分割するステップと、
各々の前記ブロックに半導体素子を割り当てるステップと、
各々の前記ブロック内における前記半導体素子の密度を調べるステップと、
前記半導体素子の密度が疎であると判断されたブロックを圧縮するステップと
各々の前記ブロック間を配線で接続するステップと
を具備することを特徴とする半導体集積回路の圧縮方法。
【請求項２】
半導体集積回路が設計されて、半導体素子が割り当てられたデザイン領域を、複数のブロックに分割するステップと、
各々の前記ブロック内における前記半導体素子の密度を調べるステップと、
前記半導体素子の密度が疎であると判断されたブロックを圧縮するステップと
各々の前記ブロック間を配線で接続するステップと
を具備することを特徴とする半導体集積回路の圧縮方法。
【請求項３】
前記ブロックを圧縮するステップは、隣接する疎なブロック同士、及び隣接する疎なブロックと密なブロックとを、互いに重ね合わせる
ことを特徴とする請求項１または２記載の半導体集積回路の圧縮方法。
【請求項４】
前記ブロックを圧縮するステップは、疎なブロックのサイズを縮小化する
ことを特徴とする請求項１乃至３いずれか１項記載の半導体集積回路の圧縮方法。
【請求項５】
前記ブロックを圧縮するステップの前に、疎と判断された前記ブロック内の配線混雑度を調べるステップと、
前記配線混雑度を調べるステップにおいて、配線混雑度が所定以上であるブロックについては、前記半導体素子の密度を密であるとみなすステップとを更に備える
ことを特徴とする請求項１乃至４いずれか１項記載の半導体集積回路の圧縮方法。
【請求項６】
前記ブロックを圧縮するステップの前に、密と判断された前記ブロックが、特定の行または列に集中しているか否かを調べるステップと、
密なブロックが特定の行に集中している場合には、当該密なブロックを、その面積を変えずに横幅を縮小し、特定の列に集中している場合には、当該密なブロックを、その面積を変えずに縦幅を縮小するステップとを更に備える
ことを特徴とする請求項１乃至５いずれか１項記載の半導体集積回路の圧縮方法。