(57)【要約】【課題】メモリアレイチップと論理モジュールチップとを重ね合わせる半導体集積回路の設計において、メモリブロックと論理モジュールとの間の配線長を最小化すること。【解決手段】本発明の半導体集積回路設計方法は、設計対象の論理回路に含まれるメモリブロックおよび論理モジュールのグルーピングを行うグルーピング工程と、前記グループピングにより生成された各グループを前記論理モジュールチップ上に配置する論理モジュールチップ上グループ配置工程と、前記論理モジュールチップ上の各グループの配置結果に基づき、前記メモリアレイチップに割り当てるメモリブロックを選択するメモリアレイチップ上メモリブロック選択工程と、を有する。【選択図】図２
2010055388.tif 000002
【特許請求の範囲】
【請求項１】
既設計のメモリアレイチップと新規に設計する論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する半導体集積回路を設計する半導体集積回路設計方法において、
設計対象の論理回路に含まれるメモリブロックおよび論理モジュールのグルーピングを行うグルーピング工程と、
前記グループピングにより生成された各グループを前記論理モジュールチップ上に配置する論理モジュールチップ上グループ配置工程と、
前記論理モジュールチップ上の各グループの配置結果に基づき、前記メモリアレイチップに割り当てるメモリブロックを選択するメモリアレイチップ上メモリブロック選択工程と、を有することを特徴とする半導体集積回路設計方法。
【請求項２】
請求項１に記載の半導体集積回路設計方法において、
前記グルーピング工程の後に行われ、各グループに含まれるメモリブロックサイズの合計値および論理モジュールサイズの合計値のうちの最大値を、各グループのサイズに設定するグループサイズ設定工程をさらに有し、
前記グループ配置工程では、各グループのサイズに基づき、各グループを前記論理モジュールチップ上に配置することを特徴とする半導体集積回路設計方法。
【請求項３】
請求項１または２に記載の半導体集積回路設計方法において、
前記メモリアレイチップ上メモリブロック選択工程の後に行われ、前記論理モジュールチップ上に、論理モジュールと、前記メモリアレイチップに割り当てられなかったメモリブロックと、を配置する論理モジュールチップ上論理モジュール・メモリブロック配置工程と、
前記論理モジュールチップ上の論理モジュールの配置結果に基づき、論理モジュールと前記メモリアレイチップに割り当てたメモリブロックとの間の論理接続を、前記メモリアレイチップと前記論理モジュールチップとの間のメモリポートに割り当てるメモリポート割当工程と、
前記メモリポートの割当結果に基づき、前記メモリアレイチップ上に、メモリブロックを配置するメモリアレイチップ上メモリブロック配置工程と、をさらに有することを特徴とする半導体集積回路設計方法。
【請求項４】
請求項３に記載の半導体集積回路設計方法において、
前記メモリアレイチップ上メモリブロック配置工程の後に行われ、前記論理モジュールチップ上の論理モジュールの位置および前記メモリアレイチップ上のメモリブロックの位置に基づき、その中点に近いメモリポートに前記論理接続を割り当てるメモリポート再割当工程をさらに有することを特徴とする半導体集積回路設計方法。
【請求項５】
請求項４に記載の半導体集積回路設計方法において、
前記論理モジュールチップ上論理モジュール・メモリブロック配置工程、前記メモリポート割当工程、前記メモリアレイチップ上メモリブロック配置工程、および、前記メモリポート再割当工程を繰り返すことを特徴とする半導体集積回路設計方法。
【請求項６】
請求項１から５のいずれか１項に記載の半導体集積回路設計方法において、
前記メモリアレイチップ上メモリブロック選択工程では、前記論理モジュールチップ上の各グループの配置結果に基づき、該論理モジュールチップの中心に近い位置に配置されたグループに含まれるメモリブロックを、前記メモリアレイチップに割り当てるメモリブロックに選択することを特徴とする半導体集積回路設計方法。
【請求項７】
請求項１から５のいずれか１項に記載の半導体集積回路設計方法において、
前記メモリアレイチップ上メモリブロック選択工程では、前記論理モジュールチップ上の各グループの配置結果に基づき、タイミングがクリティカルでない論理パスに接続するグループに含まれるメモリブロックを、前記メモリアレイチップに割り当てるメモリブロックに選択することを特徴とする半導体集積回路設計方法。
【請求項８】
既設計のメモリアレイチップと新規に設計する論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する半導体集積回路を設計する半導体集積回路設計装置において、
設計対象の論理回路に含まれるメモリブロックおよび論理モジュールをグルーピングする処理を行うグルーピング手段と、
前記グループピングにより生成された各グループを前記論理モジュールチップ上に配置する処理を行う論理モジュールチップ上グループ配置手段と、
前記論理モジュールチップ上の各グループの配置結果に基づき、前記メモリアレイチップに割り当てるメモリブロックを選択する処理を行うメモリアレイチップ上メモリブロック選択手段と、を有することを特徴とする半導体集積回路設計装置。
【請求項９】
請求項８に記載の半導体集積回路設計装置において、
前記グルーピング手段による処理の後に、各グループに含まれるメモリブロックサイズ合計値と論理モジュールサイズの合計値のうちの最大値を、各グループのサイズに設定するグループサイズ設定手段をさらに有し、
前記グループ配置手段は、各グループのサイズに基づき、各グループを前記論理モジュールチップ上に配置することを特徴とする半導体集積回路設計装置。
【請求項１０】
請求項８または９に記載の半導体集積回路設計装置において、
前記メモリアレイチップ上メモリブロック選択手段による処理の後に、前記論理モジュールチップ上に、論理モジュールと、前記メモリアレイチップに割り当てられなかったメモリブロックと、を配置する処理を行う論理モジュールチップ上論理モジュール・メモリブロック配置手段と、
前記論理モジュールチップ上の論理モジュールの配置結果に基づき、論理モジュールと前記メモリアレイチップに割り当てたメモリブロックとの間の論理接続を、前記メモリアレイチップと前記論理モジュールチップとの間のメモリポートに割り当てる処理を行うメモリポート割当手段と、
前記メモリポートの割当結果に基づき、前記メモリアレイチップ上に、メモリブロックを配置する処理を行うメモリアレイチップ上メモリブロック配置手段と、をさらに有することを特徴とする半導体集積回路設計装置。
【請求項１１】
請求項１０に記載の半導体集積回路設計装置において、
前記メモリアレイチップ上メモリブロック配置手段による処理の後に、前記論理モジュールチップ上の論理モジュールの位置および前記メモリアレイチップ上のメモリブロックの位置に基づき、その中点に近いメモリポートに前記論理接続を割り当てる処理を行うメモリポート再割当手段をさらに有することを特徴とする半導体集積回路設計装置。
【請求項１２】
請求項１０に記載の半導体集積回路設計装置において、
前記論理モジュールチップ上論理モジュール・メモリブロック配置手段、前記メモリポート割当手段、前記メモリアレイチップ上メモリブロック配置手段、および、前記メモリポート再割当手段は、処理を繰り返し行うことを特徴とする半導体集積回路設計装置。
【請求項１３】
請求項８から１２のいずれか１項に記載の半導体集積回路設計装置において、
前記メモリアレイチップ上メモリブロック選択手段は、前記論理モジュールチップ上の各グループの配置結果に基づき、該論理モジュールチップの中心に近い位置に配置されたグループに含まれるメモリブロックを、前記メモリアレイチップに割り当てるメモリブロックに選択することを特徴とする半導体集積回路設計装置。
【請求項１４】
請求項８から１２のいずれか１項に記載の半導体集積回路設計装置において、
前記メモリアレイチップ上メモリブロック選択手段は、前記論理モジュールチップ上の各グループの配置結果に基づき、タイミングがクリティカルでない論理パスに接続するグループに含まれるメモリブロックを、前記メモリアレイチップに割り当てるメモリブロックに選択することを特徴とする半導体集積回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路を設計する半導体集積回路設計方法および半導体集積回路設計装置に関し、特に、既設計のメモリアレイチップと新規に設計される論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する３次元集積回路を設計する半導体集積回路設計方法および半導体集積回路設計装置に関する。
【背景技術】
【０００２】
半導体集積回路の構成要素は、大きく分けて、論理値を記憶するメモリブロックと論理演算を行う論理モジュールとに分類される。
【０００３】
メモリブロックおよび論理モジュールを、それぞれ、１つの半導体集積回路上に複数実装し、さらに、メモリブロックと論理モジュールとの間のデータ転送を行うための論理接続をその半導体集積回路上に追加することにより、所望の機能を実行する論理回路が実現される。論理接続は、ネットあるいはネットリストとも呼ばれる。
【０００４】
半導体集積回路に実装される代表的なメモリブロックとしては、ＳＲＡＭ（static random access memory）およびＤＲＡＭ（dynamic random access memory）が挙げられる。メモリブロックの物理的サイズは様々であるが、通常、各メモリブロックの形状は固定の矩形であり、設計時にその形状を変更することはできない。
【０００５】
これに対して、論理モジュールは、おおよその面積は与えられるが、形状は固定ではなく、設計時に、例えば、半導体基板上のレイアウトに応じて、その形状を変更することが可能である。
【０００６】
図１２に、設計対象となる論理回路の例を示す。ここでは、図を簡潔にするために、論理接続（図中の１２−３）については、その一部のみを表示している。
【０００７】
従来、半導体集積回路の設計では、図１２に示すような論理モジュール（図中の１２−１）およびメモリブロック（図中の１２−２）の集合は、図１３に示すように、２次元平面上に配置されていた。構成要素を２次元平面上に配置する半導体集積回路は、２次元集積回路と呼ばれる。
【０００８】
ところが、近年の半導体実装技術の進歩により、メモリブロックおよび論理モジュールを３次元状に積層配置することが可能になってきている。構成要素を３次元状に積層する半導体集積回路は、３次元集積回路と呼ばれる。
【０００９】
半導体集積回路の構成要素を３次元状に積層する技術は、チップサイズの縮小、論理接続を実現する配線の短縮が可能であるため、半導体集積回路の高性能化を実現するための将来技術の１つとして有望視されている。
【００１０】
しかし、３次元集積回路を設計するためには、従来の２次元集積回路用の設計技術だけでは不十分であり、３次元集積回路用の新たな設計技術が必要となる。この新たな技術が、例えば、特許文献１〜４で提案されている。
【００１１】
３次元集積回路では、その構成要素の積層について、様々な形態が考えられる。その形態の１つに、メモリブロックを規則的に並べたメモリアレイチップを用意しておき、設計対象の論理回路に含まれるメモリブロックをメモリアレイチップに割り当て、論理回路に含まれる論理モジュールを別の論理モジュールチップを用いて設計し、上記のメモリアレイチップと論理モジュールチップとを重ね合わせることにより、所望の論理回路を実現する形態がある。
【００１２】
図１４に、メモリアレイチップの例を示す。
【００１３】
メモリアレイチップには、メモリブロックが実装される埋め込みメモリ（図中の１４−１）と、論理モジュールチップに実装される論理モジュールとの接続を行うためのメモリポート（図中の１４−２）と、が規則的に配置されている。メモリアレイチップに実装できるメモリブロックの数には上限があるため、必ずしも設計対象の論理回路に含まれるすべてのメモリブロックをメモリアレイチップ上に割り当てることが可能とは限らない。すべてのメモリブロックをメモリアレイチップに割り当てることが不可能な場合、一部のメモリブロックは、論理モジュールチップ上に配置されることになる。
【００１４】
図１５に、図１２の論理回路に含まれる一部のメモリブロック（図中の１５−１）を、図１４のメモリアレイチップに配置した例を示す。また、図１６に、図１２の論理回路に含まれる、論理モジュールおよび図１５のメモリアレイチップに割り当てられなかったメモリブロックを、論理モジュールチップに配置した例を示す。
【００１５】
メモリアレイチップに割り当てたメモリブロックと論理モジュールチップとの間の論理接続は、論理モジュールチップ側にも、メモリアレイチップのメモリポートに対応する位置にＩ／Ｏポート（図中の１６−１）を配置して接続することにより実現される。
【特許文献１】特開２００７−２５０７５４号公報
【特許文献２】特開２００７−１７２２０４号公報
【特許文献３】特開２００８−７７４０４号公報
【特許文献４】特開２００５−３３９４６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、メモリブロックと論理モジュールとから構成される半導体集積回路を、上述のメモリアレイチップと論理モジュールチップとに分割し、これらを重ね合わせて所望の論理回路を実現する３次元集積回路を設計するためには、主に以下の処理が必要となる。
・メモリアレイチップへ割り当てるメモリブロック集合の選択および配置
・論理モジュールチップ上の論理モジュールおよびメモリブロックの配置
・メモリアレイチップと論理モジュールチップとの間の論理接続のメモリポートへの割当
高性能な３次元集積回路を実現するためには、論理接続を実現する配線長が短くなるように、上述の３つの処理を総合的に考慮して行うことが要求されるが、このような最適化を行う技術はこれまで提案されていない。例えば、上記の特許文献１〜４で提案された既存の設計技術では、これらの要求に十分に対応することは不可能である。
【００１７】
本発明は、上述したような従来の技術が有する問題点を鑑みてなされたものであって、メモリアレイチップと論理モジュールチップとを重ね合わせる３次元集積回路の設計において、メモリブロックと論理モジュールとの間の配線長を最小化することができる半導体集積回路設計方法および半導体集積回路設計装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために本発明の半導体集積回路設計方法は、
既設計のメモリアレイチップと新規に設計する論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する半導体集積回路を設計する半導体集積回路設計方法において、
設計対象の論理回路に含まれるメモリブロックおよび論理モジュールのグルーピングを行うグルーピング工程と、
前記グループピングにより生成された各グループを前記論理モジュールチップ上に配置する論理モジュールチップ上グループ配置工程と、
前記論理モジュールチップ上の各グループの配置結果に基づき、前記メモリアレイチップに割り当てるメモリブロックを選択するメモリアレイチップ上メモリブロック選択工程と、を有することを特徴とする。
【００１９】
上記目的を達成するために本発明の半導体集積回路設計装置は、
既設計のメモリアレイチップと新規に設計する論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する半導体集積回路を設計する半導体集積回路設計装置において、
設計対象の論理回路に含まれるメモリブロックおよび論理モジュールをグルーピングする処理を行うグルーピング手段と、
前記グループピングにより生成された各グループを前記論理モジュールチップ上に配置する処理を行う論理モジュールチップ上グループ配置手段と、
前記論理モジュールチップ上の各グループの配置結果に基づき、前記メモリアレイチップに割り当てるメモリブロックを選択する処理を行うメモリアレイチップ上メモリブロック選択手段と、を有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、まず、設計対象の論理回路に含まれるメモリブロックおよび論理モジュールのグルーピングを行い、次に、グループピングにより生成された各グループを論理モジュールチップ上に配置した後、論理モジュールチップ上の各グループの配置結果に基づき、メモリアレイチップに割り当てるメモリブロックを選択する。
【００２１】
したがって、論理モジュールチップ上に配置したグループの配置結果に基づき、論理モジュールチップとは異なるメモリアレイチップに割り当てるメモリブロックを、メモリブロックと論理モジュールとの間の配線長を考慮して選択できるため、メモリブロックと論理モジュールとの間の配線長を最小化することが可能になるという効果が得られる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について、図面に基づき説明する。
【００２３】
図１は、本実施形態の半導体集積回路設計装置の構成を示すブロック図である。
【００２４】
本実施形態の半導体集積回路設計装置１００は、論理回路情報入力手段１０１と、グルーピング手段１０２と、グループサイズ設定手段１０３と、論理モジュールチップ上グループ配置手段１０４と、メモリアレイチップ上メモリブロック選択手段１０５と、グループ分解手段１０６と、論理モジュールチップ上論理モジュール・メモリブロック配置手段１０７と、メモリポート割当手段１０８と、メモリアレイチップ上メモリブロック配置手段１０９と、メモリポート再割当手段１１０と、判定手段１１１と、を有している。
【００２５】
半導体集積回路設計装置１００は、既設計のメモリアレイチップと新規に設計する論理モジュールチップとを重ね合わせることにより所望の論理回路を実現する３次元集積回路を設計するものであり、上記の各手段は、概略、以下のように動作する。
【００２６】
論理回路情報入力手段１０１は、設計対象の論理回路の論理回路情報が入力される。
【００２７】
グルーピング手段１０２は、設計対象の論理回路に含まれる論理モジュールおよびメモリブロックのグルーピングを行う。
【００２８】
グループサイズ設定手段１０３は、グルーピングで生成した各グループのサイズを設定する。
【００２９】
論理モジュールチップ上グループ配置手段１０４は、各グループのサイズに基づき、論理モジュールチップ上に、各グループを配置する。
【００３０】
メモリアレイチップ上メモリブロック選択手段１０５は、論理モジュールチップ上の各グループの配置結果に基づき、メモリアレイチップに割り当てるメモリブロックを選択する。
【００３１】
グループ分解手段１０６は、各グループを分解する。
【００３２】
論理モジュールチップ上論理モジュール・メモリブロック配置手段１０７は、論理モジュールチップ上に、論理モジュールと、上記でメモリアレイチップに割り当てられなかったメモリブロックとを配置する。
【００３３】
メモリポート割当手段１０８は、論理モジュールチップ上の論理モジュールの配置結果に基づき、メモリアレイチップに割り当てられたメモリブロックと論理モジュールとの間の論理接続をメモリポートに割り当てる。
【００３４】
メモリアレイチップ上メモリブロック配置手段１０９は、メモリポートの割当結果に基づき、メモリアレイチップ上に、メモリブロックを配置する。
【００３５】
メモリポート再割当手段１１０は、メモリアレイチップに割り当てられたメモリブロックの位置および論理モジュールの位置に基づき、そのメモリブロックと論理モジュールとの間の論理接続のメモリポートへの再割当を行う。
【００３６】
判定手段１１１は、論理モジュールチップ上論理モジュール・メモリブロック配置手段１０７、メモリポート割当手段１０８、メモリアレイチップ上メモリブロック配置手段１０９、およびメモリポート再割当手段１１０の処理を繰り返すか判定する。
【００３７】
以下、図１に示した半導体集積回路設計装置１００による半導体集積回路設計方法について、図２のフローチャートに沿って説明する。ここでは、設計対象の論理回路が図１２に示した論理回路であるものとする。
【００３８】
まず、ステップ１において、図１２に示した論理回路の論理回路情報が論理回路情報入力手段１０１に入力される。論理回路情報には、メモリブロック、論理モジュール、メモリブロックと論理モジュールとの間の論理接続の情報が含まる。ここで、メモリブロックは形状が固定であるが、論理モジュールについては、面積は与えられるが形状は可変である。
【００３９】
次に、ステップ２において、グルーピング手段１０２は、メモリブロックおよび論理モジュールのグルーピングを行う。ここで、グルーピングは、メモリブロックと論理モジュールとの接続を考慮して、グループ間に現れる論理接続数が最小化されるように行われる。即ち、論理接続の強度が高いメモリブロックと論理モジュールとのグルーピングが行われる。ここでは、１つのグループのサイズが大きくなりすぎないように、グルーピングにおいて生成されるグループのサイズには上限が与えられる。
【００４０】
図３に、ステップ２でのグルーピング結果を示す。ここでは、Ｇ１からＧ７までの７つのグループ（図中の３−１）が生成されている。グループサイズの上限を考慮しながら、グループ間の接続数が最小となるようにグルーピングを行う方法は、既にいくつか提案されており、ステップ２の処理には既存手法が利用できる。
【００４１】
次に、ステップ３において、グループサイズ設定手段１０３は、ステップ２で生成した各グループのサイズを設定する。ここで、各グループのサイズは、下記の数式により、グループ内のメモリブロックサイズの合計値および論理モジュールサイズの合計値のうちの最大値に設定される。
【００４２】
グループサイズ＝ＭＡＸ｛メモリブロックサイズ合計、論理モジュールサイズ合計｝
図４（ａ）に、ステップ２で生成されたグループＧ２のサイズ設定の様子を示す。また、図４（ｂ）に、ステップ２で生成された全てのグループＧ１〜Ｇ７（図中の４−２）にサイズを設定した結果を示す。なお、図中の４−１は、グループ間接続を示す。
【００４３】
次に、ステップ４において、論理モジュールチップ上グループ配置手段１０４は、ステップ２で生成したグループの配置を、ステップ３で設定したグループサイズおよびグループ間の接続を考慮して行う。ここで、グループの配置は、グループ間の接続距離ができるだけ短くなるように、かつ、グループの重なりが生じないように行われる。ここでは、各グループの面積は変更しないが、グループ間の重なりが生じないようにグループの縦横比は変更する。この処理はフロアプランとも呼ばれ、既にいくつかの手法が提案されており、ステップ５の処理には既存手法が利用できる。図５に、図４のグループを配置した結果を示す。
【００４４】
次に、ステップ５において、メモリアレイチップ上メモリブロック選択手段１０５は、ステップ４のグループ配置結果を基に、メモリアレイチップに割り当てるメモリブロックを選択する。
【００４５】
設計対象の論理回路に含まれる全てのメモリブロックの合計が、メモリアレイチップに配置できるメモリブロックの数以下であれば、全てのメモリブロックをメモリアレイチップに割り当てることが可能である。
【００４６】
これに対して、メモリアレイチップの容量が不足する場合は、以下の２点を基準として、メモリアレイチップに割り当てるメモリブロックを選択する。
【００４７】
（１）メモリアレイチップの中心に近い位置に配置されたグループに含まれるメモリブロックをメモリアレイチップに割り当てる。メモリブロックは配線設計の障害となることが多く、その障害の影響は、メモリブロックがメモリアレイチップの中心に近い位置にある程、大きくなる。従って、メモリアレイチップ中心に近いメモリブロックをメモリチップアレイへ移動することにより、配線設計を容易化することが可能となる。
【００４８】
（２）タイミングがクリティカルでない論理パスに接続するメモリブロックをメモリアレイチップに割り当てる。メモリアレイチップ上のメモリブロックと論理モジュールとを接続するメモリポートにはある程度の遅延が付加されるため、タイミング的に余裕のある論理パス上にあるメモリブロックをメモリアレイチップに移動することにより、タイミング設計を容易化することが可能となる。
【００４９】
図６に、図５のグループ配置結果を基に、メモリアレイチップに割り当てるブロックとして選択されたメモリブロックを示す。ここでは、メモリブロックＣ，Ｄ，Ｅ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍ，Ｎが選択されている。残りのメモリブロックＡ，Ｂ，Ｆは、図７に示すように、論理モジュールと共に、論理モジュールチップ上に配置される。
【００５０】
次に、ステップ６において、グループ分解手段１０６は、ステップ２で生成したグループを分解し、元の論理モジュールとメモリブロックとの間にネットリストを生成する。ただし、この時、ステップ５でメモリアレイチップに割り当てたメモリブロックはネットリストの生成対象から除外される。
【００５１】
次に、ステップ７において、論理モジュールチップ上論理モジュール・メモリブロック配置手段１０７は、論理モジュールチップ上に、論理モジュールと、論理モジュールチップに割り当てられたメモリブロック（ステップ５で、メモリアレイチップに割り当てられなかったメモリブロック）と、を配置する。ここでは、メモリブロックの配置は、ステップ４と同様、論理モジュールとメモリブロックとの間の接続距離ができるだけ短くなるように、かつ、論理モジュールとメモリブロックとの重なりが生じないように行われる。ステップ４と同様、ステップ７の処理には既存手法が利用できる。ただし、メモリアレイチップに割り当てられたメモリブロックとの接続は、ここでは考慮せず、論理モジュールチップ内での論理接続のみを考慮して行われる。図８に、論理モジュールチップ上の論理モジュールおよびメモリブロックの配置結果を示す。
【００５２】
次に、ステップ８において、メモリポート割当手段１０８は、論理モジュールからメモリアレイチップに割り当てられたメモリブロックへの論理接続を、論理モジュールが配置された位置に最も近いメモリポートへ割り当てる。図９に、図８の配置結果を基に、メモリアレイチップ上のメモリブロックへの接続をメモリポート（図中の９−１）に割り当てた結果を示す。
【００５３】
次に、ステップ９において、メモリアレイチップ上メモリブロック配置手段１０９は、メモリアレイチップ上のメモリブロックの配置を決定する。ここでは、ステップ８で割り当てられたメモリポートとの距離ができるだけ短くなるようにメモリブロックの配置を行う。図１０に、図９のメモリポート割当結果を基に、メモリアレイチップ上のメモリブロック配置を行った結果を示す。
【００５４】
次に、ステップ１０において、メモリポート再割当手段１１０は、メモリブロックと論理モジュールとの間の接続のメモリポートへの再割当を行う。ステップ８のメモリポート割当は、論理モジュールチップ上のメモリ配置結果のみを考慮して行われるものであるため、必ずしも、メモリアレイチップ上のメモリブロック配置にとって適した割当結果となっているとは限らない。そのため、ステップ９で、必ずしもすべてのメモリブロックをメモリポートの近くに配置することができるとは限らず、メモリブロック配置とメモリポートとの距離が不要に伸びてしまう可能性がある。この問題を解決するために、ここでは、論理モジュールチップ上の論理モジュールの位置およびメモリアレイチップ上のメモリブロックの位置を考慮して、その中点に近いメモリポートへの再割当を行う。これにより、後述の解が悪化するのを、ある程度、救済することができる。図１１に、図１０のメモリブロック配置結果を基に、メモリポートの再割当を行った結果を示す。
【００５５】
ステップ１０のメモリポート再割当によって、論理モジュールチップ上の論理モジュールおよびメモリブロックの最適位置は影響を受ける。
【００５６】
そのため、次に、ステップ１１において、判定手段１１１は、再度ステップ７に戻ると判定し、以降、論理モジュールチップ上の論理モジュールおよびメモリブロックの再配置を行う。ここでは、初回の論理モジュールおよびメモリブロックの配置では考慮しなかったメモリポートとの接続関係を考慮して、論理モジュール、メモリブロック、およびメモリポートの間の接続が短くなるように配置を行う。この論理モジュールチップ上の配置結果は、メモリポートの最適割当に影響を与える。
【００５７】
そのため、次に、再度、ステップ８において、メモリポートの再割当を行い、さらに、このメモリポート割当結果を基に、ステップ９でのメモリアレイチップ上でのメモリブロック配置と、ステップ１０でのメモリポート再割当とを行う。
【００５８】
ステップ７，８，９，１０の処理は、論理モジュール、メモリポート、およびメモリブロックの配置位置が収束するまで、すなわち前回の最適化ループで得られた配置位置からの変化を表す解が指定値以下に収束するまで、あるいは、設計者に指定された回数だけ、繰り返され、全体の処理を終了する。ステップ１１は、この配置位置の収束を判定するステップである。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態の半導体集積回路設計装置の構成を示すブロック図である。
【図２】本発明の一実施形態の半導体集積回路設計方法を示すフローチャートである。
【図３】論理回路のグルーピングを示す図である。
【図４】グループサイズの決定方法およびその結果を示す図である。
【図５】グループの配置結果を示す図である。
【図６】メモリアレイチップに割り当てるメモリブロック選択方法を示す図である。
【図７】論理モジュールチップに配置される論理モジュールおよびメモリブロックを示す図である。
【図８】論理モジュールチップ上の論理モジュールおよびメモリブロックの配置を示す図である。
【図９】メモリポート割当を示す図である。
【図１０】メモリアレイチップ上のメモリブロックの配置を示す図である。
【図１１】メモリポートの再割当を示す図である。
【図１２】設計対象となる論理回路を示す図である。
【図１３】２次元集積回路を示す図である。
【図１４】メモリアレイチップを示す図である。
【図１５】メモリアレイチップ上のメモリブロックの配置を示す図である。
【図１６】論理モジュールチップ上のメモリブロックおよび論理モジュールの配置を示す図である。
【符号の説明】
【００６０】
１００    半導体集積回路設計装置
１０１    論理回路情報入力手段
１０２    グルーピング手段
１０３    グループサイズ設定手段
１０４    論理モジュールチップ上グループ配置手段
１０５    メモリアレイチップ上メモリブロック選択手段
１０６    グループ分解手段
１０７    論理モジュールチップ上論理モジュール・メモリブロック配置手段
１０８    メモリポート割当手段
１０９    メモリアレイチップ上メモリブロック配置手段
１１０    メモリポート再割当手段
１１１    判定手段
３−１    グループ
４−１    グループ間接続
４−２    サイズ設定されたグループ
９−１    メモリポートの割当
１２−１    論理モジュール
１２−２    メモリブロック
１２−３    論理接続
１４−１    埋め込みメモリ
１４−２    メモリポート
１５−１    メモリブロック配置
１６−１    Ｉ／Ｏポート
【図１】
2010055388.tif 000003
【図２】
2010055388.tif 000004
【図３】
2010055388.tif 000005
【図４】
2010055388.tif 000006
【図５】
2010055388.tif 000007
【図６】
2010055388.tif 000008
【図７】
2010055388.tif 000009
【図８】
2010055388.tif 000010
【図９】
2010055388.tif 000011
【図１０】
2010055388.tif 000012
【図１１】
2010055388.tif 000013
【図１２】
2010055388.tif 000014
【図１３】
2010055388.tif 000015
【図１４】
2010055388.tif 000016
【図１５】
2010055388.tif 000017
【図１６】
2010055388.tif 000018