(57)【要約】      （修正有）【課題】記憶容量およびポート位置が可変な再構成可能メモリを利用して、小面積かつ高性能な半導体集積回路を実現する。【解決手段】論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力部１０１と、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング部１０２と、メモリ共有化指標設定部１０３と、共有化メモリ選択部１０４と、遅延および配線性評価・判定部１０６と、非共有化メモリ選択部１０７と、ネットリスト更新部１０５と、ネットリスト更新部１０５によって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力部１０８と、を備える半導体集積回路の設計装置１００。【選択図】図１
2011134218.tif 000002
【特許請求の範囲】
【請求項１】
論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力手段と、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニング手段と、
メモリブロック共有化指標を設定するメモリ共有化指標設定手段と、
前記フロアプランニング手段で決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択手段と、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定手段と、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択手段と、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新手段と、
前記ネットリスト更新手段によって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力手段と、を備える半導体集積回路の設計装置。
【請求項２】
前記メモリ共有化指標設定手段は、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記共有化メモリ選択手段は、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする請求項２に記載の半導体集積回路の設計装置。
【請求項４】
前記非共有化メモリ選択手段は、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項１から請求項３の何れか１項に記載の半導体集積回路の設計装置。
【請求項５】
前記ネットリスト更新手段は、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項１から請求項４の何れか１項に記載の半導体集積回路の設計装置。
【請求項６】
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標手段による処理と、前記フロアプランニング手段による処理と、前記共有化メモリ選択手段による処理と、前記非共有化メモリ選択手段による処理と、前記ネットリスト更新手段による処理と、前記配線性および遅延評価・判定手段による処理と、を繰り返し実行する手段を備えることを特徴とする請求項１から請求項５の何れか１項に記載の半導体集積回路の設計装置。
【請求項７】
前記メモリ共有化指標設定手段は、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする請求項６に記載の半導体集積回路の設計装置。
【請求項８】
論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力ステップと、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニングステップと、
メモリブロック共有化指標を設定するメモリ共有化指標設定ステップと、
前記フロアプランニングステップで決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択ステップと、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定ステップと、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択ステップと、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新ステップと、
前記ネットリスト更新ステップによって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力ステップと、を有する半導体集積回路の設計方法。
【請求項９】
半導体集積回路の設計装置であるコンピュータに、
論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用される前記メモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力処理と、
前記ネットリストに関する情報に基づいて、前記論理モジュールと前記メモリブロックの配置位置を決定するフロアプランニング処理と、
メモリブロック共有化指標を設定するメモリ共有化指標設定処理と、
前記フロアプランニング処理で決定したフロアプランニング結果と、前記メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択処理と、
前記フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定処理と、
前記フロアプランニング結果と、前記配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択処理と、
選択された前記共有化メモリ集合または前記非共有化メモリ集合の情報に基づき前記ネットリストを更新するネットリスト更新処理と、
前記ネットリスト更新処理によって更新された前記ネットリストと、前記フロアプランニング結果とを設計結果として出力する出力処理と、を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路を設計するための半導体集積回路設計装置、半導体集積回路設計方法、およびコンピュータプログラムに関し、特に、記憶容量およびポート位置が可変な再構成可能メモリを利用して、小面積かつ高性能な半導体集積回路を実現する設計装置、設計方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の構成要素は、大きく分けて、論理値を記憶するメモリブロックと、論理演算を行う論理モジュールとに分類される。
【０００３】
メモリブロックおよび論理モジュールを、１つの半導体集積回路上に複数実装し、さらに、メモリブロックと論理モジュールとの間のデータ転送を行うための接続を、その半導体集積回路上に追加することにより、所望の機能を実行する論理回路が実現される。
【０００４】
該接続は、論理モジュール間のデータ転送を行うために、論理モジュール同士の間にも存在する。各接続はネットと呼ばれ、ネットの集合はネットリストと呼ばれる。以降、ネットリストという用語には、接続集合に加えて、論理モジュール、メモリブロック自体を含む場合がある。
【０００５】
半導体集積回路に実装される代表的なメモリブロックとしては、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）およびＤＲＡＭ（ｄｙｎａｍｉｃｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）が挙げられる。半導体集積回路上に実装されるメモリブロックの記憶容量は様々であり、各論理モジュールがそれぞれ必要な容量のメモリブロックを利用して集積回路を構成する。
【０００６】
図１３に半導体集積回路のネットリスト例を示す。ここでは、８つの論理モジュールｌｏｇｉｃ１〜ｌｏｇｉｃ８がネットリストに含まれ、各論理モジュールがメモリｍｅｍ１〜ｍｅｍ８のそれぞれと接続している。また、論理モジュール間を接続するネットも存在するが、ここでは、図を簡略化にするために省略している。
【０００７】
図１４は、図１３のネットリストを配置した例である。このようなメモリブロックと論理モジュールの配置を行うための既存技術が、特許文献１、特許文献２、特許文献３等に記載されている。
【０００８】
ここで、近年、メモリ内部の接続を変更することにより、記憶容量、ポート位置を変更することが可能なメモリが提案されている。例えば、非特許文献１に、そのようなメモリの構成技術が提案されている。なお、記憶容量、ポート位置を変更することが可能なメモリを再構成可能メモリと称する。
【０００９】
図１１に、再構成可能メモリの例を示す。再構成可能メモリＣＭＥＭには、メモリブロックが割当てられる埋め込みメモリエレメントＭＡ〜ＭＬと、論理モジュールとの接続を行うためのメモリポートＰ１〜Ｐ１２とが、規則的に配置されている。
【００１０】
再構成可能メモリＣＭＥＭは、ネットワークスイッチＮ１〜Ｎ１２の接続を切り替えることによりメモリエレメント間のネットワークを構成し、複数のメモリエレメントを組み合わせて、所望の記憶容量を持つメモリブロックを、様々な構成で実現することが可能である。
【００１１】
図１２に、再構成可能メモリ上に、メモリブロックを実現する例を示す。各メモリエレメントＭＡ〜ＭＬは、２ＫＷｏｒｄ、３２Ｂｉｔの記憶容量を持っている。
【００１２】
図１２（Ａ）は１２個のメモリエレメントＭＡ〜ＭＬがネットワークで接続されることにより２４ＫＷｏｒｄ、３２ＢｉｔのメモリブロックＡ１を構成している。
【００１３】
図１２（Ｂ）は６個のメモリエレメントＭＡ〜ＭＦがネットワークで接続されることによりメモリブロックＢ１を構成し、６個のメモリエレメントＭＧ〜ＭＬがネットワークで接続されることによりメモリブロックＢ２を構成している。記憶容量は、メモリブロックＢ１、メモリブロックＢ２ともに、１２ＫＷｏｒｄ、３２Ｂｉｔである。
【００１４】
メモリポートは、各メモリブロックがひとつづつ利用することになる。すなわち、図１２（Ａ）は１個のメモリポート、図１２（Ｂ）は２個のメモリポートを、それぞれ利用することになる。
【００１５】
各メモリブロックが利用するメモリポートは、メモリブロックが割当てられた領域に配置されているメモリポート群の中の１つを任意に選択すれば良い。例えば、図１２（Ａ）では、メモリポートＰ１を利用しているが、メモリブロック領域にある、図１１に示すその他の１１個のメモリポートＰ２〜Ｐ１２から１つ選択して利用しても良い。なお、図１２（Ｂ）では、メモリブロックＢ１はメモリポートＰ５を利用しており、メモリブロックＢ２はメモリポートＰ８を利用している。
【００１６】
ここで、半導体集積回路において、同時に利用されることのないメモリブロック集合が存在する場合、すなわち、各メモリブロックを利用する論理モジュールが排他的に動作する場合、これらのメモリブロックを、再構成可能メモリを利用して共有化することにより、半導体集積回路の面積を削減することが可能となる。
【００１７】
例えば、図１３の回路に含まれる全てのメモリブロックが同時に利用されることがないとすると、図１５に示すように、再構成可能メモリを利用して、論理モジュール間でひとつのメモリブロックを共有することにより、半導体集積回路の面積を削減することが可能となる。
【００１８】
前述したように再構成可能メモリは様々な記憶容量のメモリブロックを実現することができるため、各論理モジュールが必要とするメモリブロックの記憶容量が様々に異なる場合でも、このようなメモリブロックの共有化が可能である。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００８−１２９７２５号公報
【特許文献２】特開２００６−３２３６４３号公報
【特許文献３】特開２００５−１４９２７３号公報
【非特許文献】
【００２０】
【非特許文献１】Ｈ．Ｓａｉｔｏ，ｅｔ  ａｌ．”Ａ  Ｃｈｉｐ−Ｓｔａｃｋｅｄ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｏｎ−Ｃｈｉｐ  ＳＲＡＭ−Ｒｉｃｈ  ＳｏＣｓ  ａｎｄ  Ｐｒｏｃｅｓｓｏｒｓ，”ＩｎｔｅｒｎａｔｉｏｎａｌＳｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ，２００９
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら上記技術は、以下の点で改善の余地を有していた。
【００２２】
１つ目の課題として、メモリブロックを共有化することにより、接続が１つのメモリブロックに集中してしまい、半導体集積回路の配線性が悪化してしまうことがある。図１５では、中心に配置された再構成可能メモリに８本の接続が集中している。配線の一か所への集中は配線性の悪化につながり、さらに、配線性の悪化は配線迂回による配線遅延悪化につながるため、深刻な問題である。
【００２３】
２つ目の課題として、配置されたメモリブロックと論理モジュールの距離が遠くなり、メモリブロックと論理モジュール間の遅延が悪化してしまうことがある。図１５ではｌｏｇｉｃ６がメモリブロックから離れて配置されているため、ｌｏｇｉｃ６とメモリブロックの間の接続に遅延上の問題が生じる可能性がある。これは、多くの論理モジュールがひとつのメモリブロックを共有する場合、すべての論理モジュールをひとつのメモリブロックの近辺に配置することが不可能となるために生じる問題である。この問題を解決するためには、例えば、図１６に示すように、適切にメモリブロックの共有、非共有を行い、配置する必要がある。
【００２４】
図１６では、ｌｏｇｉｃ１、ｌｏｇｉｃ６、ｌｏｇｉｃ２の組と、ｌｏｇｉｃ３、ｌｏｇｉｃ４の組と、ｌｏｇｉｃ５、ｌｏｇｉｃ７の組が、それぞれ再構成可能メモリ１〜４を利用してメモリブロックを共有している。
【００２５】
図１６の場合、全てのメモリブロックをひとつの再構成可能メモリに割り当てる場合（図１５）と比較して、面積は大きくなるが、配線性、遅延の観点から、こちらの共有方法の方が優れている場合がある。また、図１４の、メモリの共有を全く行わない場合と比較しては、メモリブロックの使用量が削減されるため、全体の面積削減につながる。
【００２６】
以上に述べたように、メモリブロックの共有化は、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、適切に行う必要がある。しかしながら、これまで、このような設計を行うための技術は提案されていない。
【００２７】
（発明の目的）
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、記憶容量およびポート位置が可変な再構成可能メモリを利用して、小面積かつ高性能な半導体集積回路を実現する設計装置、設計方法、およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００２８】
本発明の第１の半導体集積回路の設計装置は、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力手段と、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング手段と、メモリブロック共有化指標を設定するメモリ共有化指標設定手段と、フロアプランニング手段で決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択手段と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定手段と、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択手段と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新手段と、ネットリスト更新手段によって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力手段と、を備える。
【００２９】
本発明の第１の半導体集積回路の設計方法は、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力ステップと、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニングステップと、メモリブロック共有化指標を設定するメモリ共有化指標設定ステップと、フロアプランニングステップで決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択ステップと、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定ステップと、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択ステップと、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新ステップと、ネットリスト更新ステップによって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力ステップと、を有する。
【００３０】
本発明の第１のプログラムは、半導体集積回路の設計装置であるコンピュータに、論理モジュールとメモリブロックからなるネットリストに関する情報と、排他的に利用されるメモリブロックに関する情報とで構成される、共有可能なメモリブロックの集合に関する情報を入力する入力処理と、ネットリストに関する情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング処理と、メモリブロック共有化指標を設定するメモリ共有化指標設定処理と、フロアプランニング処理で決定したフロアプランニング結果と、メモリブロック共有化指標とに基づき、共有化するメモリブロックを共有化メモリ集合として選択する共有化メモリ選択処理と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価・判定処理と、フロアプランニング結果と、配線性および遅延評価結果とから、非共有化するメモリブロックを非共有化メモリ集合として選択する非共有化メモリ選択処理と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新処理と、ネットリスト更新処理によって更新されたネットリストと、フロアプランニング結果とを設計結果として出力する出力処理と、を実行させる。
【発明の効果】
【００３１】
本発明によれば、記憶容量およびポート位置が可変な再構成可能メモリを利用する半導体集積回路の設計において、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、メモリブロックの共有化を行うことが可能になる。これにより、小面積かつ高性能な半導体集積回路を設計することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【図３】メモリブロックの共有化を行わない初期フロアプランニングの一例を示す図である。
【図４】距離制約の緩いメモリ共有化指標に基づいた共有化メモリ選択結果の一例を示す図である。
【図５】図４のメモリ共有化情報に基づきメモリブロックを共有化し、ネットリストを更新した後、フロアプランニングを行った結果の一例を示す図である。
【図６】配線性および遅延を評価し、非共有化するメモリに接続する論理モジュールを選択した結果の一例を示す図である。
【図７】図６の非共有化メモリ情報に基づき、メモリブロックを非共有化し、ネットリストを更新した結果の一例を示す図である。
【図８】図７のメモリ非共有化後のネットリストに対するフロアプランニングと、フロアプランニング結果と距離制約の厳しいメモリ共有化指標に基づいた共有化メモリ選択結果の一例を示す図である。
【図９】図８のメモリ共有化情報に基づきメモリを共有化し、ネットリストを更新した結果の一例を示す図である。
【図１０】図９の更新したネットリストに対してフロアプランニングを行った結果の一例を示す図である。
【図１１】再構成可能メモリの例を示す図である。
【図１２】再構成可能メモリに２４ＫＷｏｒｄ、３２ｂｉｔのメモリブロックを１つ実現する例と、１２ＫＷｏｒｄ、３２ｂｉｔのメモリブロックを２つ実現する例を示す図である。
【図１３】論理モジュールとメモリブロックからなるネットリストの一例を示す図である。
【図１４】図１３に対する背景技術によるフロアプランニング結果の一例を示す図である。
【図１５】図１３のすべてのメモリブロックを共有化してフロアプランを行った結果の一例を示す図である。
【図１６】図１３のメモリブロック集合を部分的に共有化してフロアプランを行った結果の一例を示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００３４】
（第１の実施の形態）
図１は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
【００３５】
本実施の形態の半導体集積回路設計装置１００は、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を入力する入力部１０１と、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定するフロアプランニング部１０２と、メモリの共有化指標を設定するメモリ共有化指標設定部１０３と、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリを選択する共有化メモリ選択部１０４と、フロアプランニング結果の配線性および遅延を評価する配線性および遅延評価部１０６と、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する非共有化メモリ選択部１０７と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新するネットリスト更新部１０５と、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する出力部１０８と、を備える。
【００３６】
なお、本実施の形態の半導体集積回路設計装置１００は、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図示しない。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置上に構築されて制御される。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００３７】
すなわち、半導体集積回路設計装置１００の各構成要素は、任意のコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００３８】
入力部１０１は、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を受け付け、記憶する。入力部１０１は、例えば、半導体集積回路設計装置１００の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。入力情報は、必ずしも毎回受け付けて更新する必要はなく、コンピュータの記憶ユニット等に記憶されている情報を利用することもできる。
【００３９】
フロアプランニング部１０２は、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定する。このフロアプランニング部１０２は、既存のフロアプランニング技術を用いることもでき、本発明の本質に関わらないので詳細な説明は省略する。
【００４０】
メモリ共有化指標設定部１０３は、メモリブロックの共有化指標を設定する。たとえば、フロアプランニング結果における、メモリブロック間の距離を指標として用いることができる。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を設定することが考えられる。
【００４１】
共有化メモリ選択部１０４は、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリブロックを選択する。たとえば、フロアプランニング結果における、メモリブロック間の距離を指標として用いる場合、メモリ共有化指標設定部１０３で設定された閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象として選択する。
【００４２】
配線性および遅延評価・判定部１０６は、フロアプランニング結果の配線性および遅延を評価し、配線性および遅延が設計制約を充足しているかどうかを判定する。
【００４３】
この配線性および遅延評価には、概略配線を使用するなど、従来から提案されている技術を利用することが可能であり、本発明の本質に関わらないので詳細な説明は省略する。
【００４４】
非共有化メモリ選択部１０７は、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する。ここでは、共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている論理モジュールを選択し、該当の論理モジュールが利用しているメモリを共有化メモリから分離するメモリブロックとして選択する。
【００４５】
ネットリスト更新部１０５は、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新する。メモリブロックを共有化する場合は、ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形でネットリストの更新を行う。メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形でネットリストの更新を行う。
【００４６】
出力部１０８は、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する。
【００４７】
本実施の形態の半導体集積回路設計装置１００において、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
【００４８】
本実施形態のコンピュータプログラムは、半導体集積回路設計装置１００を実現させるためのコンピュータに、論理モジュールとメモリブロックからなるネットリスト、および、排他的に利用されるメモリブロック、すなわち、共有可能なメモリブロック集合に関する情報を入力する手順と、論理モジュールとメモリブロックからなるネットリスト情報に基づいて、論理モジュールとメモリブロックの配置位置を決定する手順と、メモリの共有化指標を設定する手順と、フロアプランニング結果とメモリ共有化指標に基づき共有化するメモリを選択する手順と、フロアプランニング結果の配線性および遅延を評価する手順と、フロアプランニング結果と配線性および遅延評価結果から非共有化するメモリを選択する手順と、選択された共有化メモリ集合または非共有化メモリ集合の情報に基づきネットリストを更新する手順と、更新されたネットリストとそのフロアプランニング結果を設計結果として出力する手順と、を実行させるように記述されている。
【００４９】
（第１の実施の形態の動作の説明）
次に、図面を参照して、本実施の形態の動作について詳細に説明する。
【００５０】
本実施の形態による半導体集積回路設計装置１００の動作について、図面を参照して詳細に説明する。図２は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。
【００５１】
本実施形態の半導体集積回路の設計方法は、論理モジュールとメモリブロックからなるネットリスト、および共有可能なメモリブロック情報を入力し（ステップＳ２０１）、メモリ共有化指標を設定し（ステップＳ２０２）、メモリブロックと論理モジュールを配置し（ステップＳ２０３）、メモリ共有化指標に基づき、共有化するメモリを選択し（ステップＳ２０４）、メモリ共有化情報に基づき、ネットリストを更新し（ステップＳ２０５）、更新されたネットリスト内のメモリブロックおよび論理モジュールを再配置し（ステップＳ２０６）、メモリブロックと論理モジュール間の遅延および配線性を評価し（ステップＳ２０７）、遅延および配線性評価結果が遅延および配線性制約を充足するかどうかを判定し（ステップＳ２０８）、制約を満たさない場合は（ステップＳ２０８”ＮＯ”）、遅延および配線性評価結果に基づき、非共有化するメモリブロックを選択し（ステップＳ２０９）、選択された非共有化メモリブロック情報に基づきネットリストを更新し（ステップＳ２０１０）、再度ステップＳ２０２に戻り、上記のステップ２からステップ１０の処理を繰り返す。ただしステップＳ２０２での指標は共有化される１つのメモリ集合に含まれるメモリブロック数が徐々に少なくなるように調整される。ステップＳ２０２からステップＳ２１０までの処理は、ステップＳ２０８の遅延および配線性判定で、遅延および配線性に関する制約充足したと判定されるまで繰り返される。ステップＳ２０８で、メモリ共有化と対応するネットリストのフロアプランニング結果が、遅延および配線性に関する制約を満たすと判定された場合は（ステップＳ２０８”ＹＥＳ”）、メモリ共有化とフロアプランニング結果を、設計結果として出力する（ステップＳ２１１）。
【００５２】
以下、図３乃至図１０を用いて具体的に説明する。
【００５３】
はじめに、入力部１０１により、設計対象となる半導体集積回路のメモリブロックと論理モジュールおよびその間の接続を表現するネットリスト、および共有可能メモリ集合に関する情報の入力を受け付け記憶する（ステップＳ２０１）。
【００５４】
ここで、図３にネットリストの例を示す。図３では、全てのメモリブロックが共有可能であるとする。なお、実際は、論理モジュール間にもデータ転送を行うための接続が存在するが、図３では簡単のため、論理モジュール間の接続を省略している。
【００５５】
次に、メモリ共有化指標設定部１０３により、共有化するメモリの指標を設定する（ステップＳ２０２）。ここでは、フロアプランニング結果における、メモリブロック間の距離をメモリ共有化指標として用いることにする。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を設定する。まずは、配置領域全体を囲う長さをこの閾値として設定する。
【００５６】
次に、入力部１０１により記憶されたネットリストに対して、フロアプランニング部１０２が、論理モジュールとメモリブロックの配置をネットリストのメモリブロックおよび論理モジュール間接続に基づいて行い、図３のようなフロアプランニング結果を生成する（ステップＳ２０３）。
【００５７】
次に、ステップＳ２０２で設定した指標とステップＳ２０３で得たフロアプランニング結果を基に、共有化メモリ選択部１０４が、共有化するメモリを選択する（ステップＳ２０４）。
【００５８】
ここで、図４に該選択の結果を示す。図４では、メモリ共有化指標設定部１０３で、フロアプランニング結果におけるメモリブロック間の距離を共有化指標とし、配置領域全体を囲う長さ以内に配置されているメモリブロックを共有化対象とすることとしたため、すべてのメモリブロックが共有化対象とされている。
【００５９】
次に、ネットリスト更新部１０５が、ステップＳ２０４で選択された共有化対象メモリを併合することにより、ネットリストを更新する（ステップＳ２０５）。
【００６０】
次に、フロアプランニング部１０２が、ネットリスト更新により得られたネットリストを対象として、メモリブロック、論理モジュールの配置を行う（ステップＳ２０６）。ここで、図５に、ネットリスト更新によりえられたネットリストを対象としたフロアプランニング結果を示す。
【００６１】
次に、遅延および配線性評価・判定部１０６が、メモリブロック、論理モジュール間の遅延、配線性の評価を行う（ステップＳ２０７）。
【００６２】
次に、遅延および配線性評価・判定部１０６が、遅延および配線性評価結果に基づき、遅延、配線性制約を充足するかどうかを判定する（ステップＳ２０８）。ここでは、ｌｏｇｉｃ  １、ｌｏｇｉｃ２、ｌｏｇｉｃ５、ｌｏｇｉｃ６、およびｌｏｇｉｃ８と再構成可能メモリの間で、配線性あるいは遅延違反を起こしていると判定されたとする。
【００６３】
次に、非共有化メモリ選択部１０７が、遅延および配線性評価結果に基づき、非共有化するメモリブロックを選択する（ステップＳ２０９）。ここで、図６に非共有化対象として選択されたメモリブロックに接続する論理モジュールを示す。
【００６４】
図６では、遅延および配線性評価・判定部１０６で、ｌｏｇｉｃ１、ｌｏｇｉｃ２、ｌｏｇｉｃ５、ｌｏｇｉｃ６、およびｌｏｇｉｃ８と、再構成可能メモリとの間で、配線性あるいは遅延違反を起こしていると判定されたため、ｌｏｇｉｃ１、ｌｏｇｉｃ２、ｌｏｇｉｃ５、ｌｏｇｉｃ６、およびｌｏｇｉｃ８に接続するメモリブロックが非共有化対象として選択されている。
【００６５】
次に、ネットリスト更新部１０５が、メモリ共有化情報に基づきネットリストを更新する（ステップＳ２１０）。ここで、図７に、ステップＳ２１０による更新後のネットリストを示す。
【００６６】
次に、ステップＳ２０２に戻り、メモリ共有化指標設定部１０３がメモリ共有化指標を更新する。ここでは、前回と同様、フロアプランニング結果における、メモリブロック間の距離をメモリ共有化指標として用いることにする。すなわち、ある閾値以下の距離内に配置されている共有可能なブロックの集合を共有化対象とすることとし、この閾値を更新する。ただし、今回は、配置領域の１辺の１／２をこの閾値として設定する。
【００６７】
次に、フロアプランニング部１０２が、メモリブロック非共有化により更新されたネットリストに対して、論理モジュールおよびメモリブロックの再配置を行う（ステップＳ２０３）。
【００６８】
次に、ステップＳ２０２で設定した指標とステップＳ２０３で得たフロアプランニング結果を基に共有化するメモリを選択する（ステップＳ２０４）。ここで、図４に選択の結果を示す。
【００６９】
図４では、メモリ共有化指標設定部１０３で、フロアプランニング結果における、メモリブロック間の距離を共有化指標とし、配置領域の１辺の１／２の長さ以内に配置されているメモリブロックを共有化対象とすることとしたため、ｍｅｍ１とｍｅｍ６の組と、ｍｅｍ５とｍｅｍ８の組と、ｍｅｍ２と再構成可能メモリの組と、がそれぞれ共有化の組とされている。
【００７０】
次に、ネットリスト更新部１０５が、ステップＳ２０４で選択された共有化対象メモリを併合することにより、ネットリストを更新する（ステップＳ２０５）。図１０にネットリスト更新によりえられたネットリストを示す。
【００７１】
次に、フロアプランニング部１０２が、ネットリスト更新により得られたネットリストを対象として、メモリブロック、論理モジュールの配置を再度行う（ステップＳ２０６）。図１０に、フロアプランニング結果を示す。
【００７２】
次に、遅延および配線性評価・判定部１０６が、メモリブロック、論理モジュール間の遅延、配線性の評価を行う（ステップＳ２０７）。
【００７３】
次に、遅延および配線性評価・判定部１０６が、遅延および配線性評価結果に基づき、遅延、配線性制約を充足するかどうかを判定する（ステップＳ２０８）。ここで、配線性および遅延違反を起こしていないと判定されると（ステップＳ２０８”ＹＥＳ”）、図１０のネットリストおよびフロアプランニング結果が、設計結果として出力されることになる（ステップＳ２１１）。
【００７４】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。
【００７５】
本実施形態の半導体集積回路の設計装置および設計方法によれば、記憶容量およびポート位置が可変な再構成可能メモリを利用して、設計を行う半導体集積回路の設計において、メモリブロックと論理モジュールの配置を考慮して、配線性が良く、かつ、遅延が小さくなるように、メモリブロックの共有化を行うことが可能になる。これにより、小面積かつ高性能な半導体集積回路を設計することが可能となる。
【００７６】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００７７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００７８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００７９】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００８０】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００８１】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００８２】
（付記１）
前記メモリ共有化指標設定ステップで、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項８に記載の半導体集積回路の設計方法。
【００８３】
（付記２）
前記共有化メモリ選択ステップで、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする付記１に記載の半導体集積回路の設計方法。
【００８４】
（付記３）
前記非共有化メモリ選択ステップで、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項８又は付記１又は付記２に記載の半導体集積回路の設計方法。
【００８５】
（付記４）
前記ネットリスト更新ステップで、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項８又は付記１から付記３の何れか１項に記載の半導体集積回路の設計方法。
【００８６】
（付記５）
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標ステップによる処理と、前記フロアプランニングステップによる処理と、前記共有化メモリ選択ステップによる処理と、前記非共有化メモリ選択ステップによる処理と、前記ネットリスト更新ステップによる処理と、前記配線性および遅延評価・判定ステップによる処理と、を繰り返し実行するステップを備えることを特徴とする請求項８又は付記１から付記４の何れか1項に記載の半導体集積回路の設計方法。
【００８７】
（付記６）
前記メモリ共有化指標設定ステップで、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする付記５に記載の半導体集積回路の設計方法。
【００８８】
（付記７）
前記メモリ共有化指標設定処理において、
前記フロアプランニング結果におけるメモリブロック間の距離を、前記メモリブロック共有化指標とすることを特徴とする請求項９に記載のプログラム。
【００８９】
（付記８）
前記共有化メモリ選択処理において、
前記フロアプランニング結果における前記メモリブロック間の距離が、前記メモリブロック共有化指標以下である前記共有可能なメモリブロックの集合を、前記共有化メモリ集合として選択することを特徴とする付記７に記載のプログラム。
【００９０】
（付記９）
前記非共有化メモリ選択処理において、
前記フロアプランニング結果において共有メモリブロックとの間で配線性制約違反あるいは遅延制約違反を起こしている前記論理モジュールを選択し、選択した前記論理モジュールが利用している前記メモリブロックを、前記非共有化メモリ集合として選択することを特徴とする請求項９又は付記７又は付記８に記載のプログラム。
【００９１】
（付記１０）
前記ネットリスト更新処理において、
前記メモリブロックを共有化する場合は、前記ネットリスト内の対象メモリブロックをひとつのメモリブロックに併合する形で前記ネットリストを更新し、
前記メモリブロックを非共有化する場合は、ネットリスト内の対象メモリブロックを共有メモリブロックから分離する形で前記ネットリストを更新することを特徴とする請求項９又は付記７から付記９の何れか１項に記載のプログラム。
【００９２】
（付記１１）
前記設計結果として出力された前記更新されたネットリストと前記フロアプランニング結果に基づいて、
前記メモリ共有化指標処理と、前記フロアプランニング処理と、前記共有化メモリ選択処理と、前記非共有化メモリ選択処理と、前記ネットリスト更新処理と、前記配線性および遅延評価・判定処理と、を繰り返し実行する処理を実行させることを特徴とする請求項９又は付記７から付記１０の何れか１項に記載のプログラム。
【００９３】
（付記１２）
前記メモリ共有化指標設定処理において、
共有化されるメモリの数が徐々に少なくなるように、前記メモリブロック共有化指標を調整することを特徴とする付記１１に記載のプログラム。
【符号の説明】
【００９４】
１００：設計装置
１０１：入力部
１０２：フロアプランニング部
１０３：メモリ共有化指標設定部
１０４：共有化メモリ選択部
１０５：ネットリスト更新部
１０６：遅延および配線性評価・判定部
１０７：非共有化メモリ選択部
１０８：出力部
【図１】
2011134218.tif 000003
【図２】
2011134218.tif 000004
【図３】
2011134218.tif 000005
【図４】
2011134218.tif 000006
【図５】
2011134218.tif 000007
【図６】
2011134218.tif 000008
【図７】
2011134218.tif 000009
【図８】
2011134218.tif 000010
【図９】
2011134218.tif 000011
【図１０】
2011134218.tif 000012
【図１１】
2011134218.tif 000013
【図１２】
2011134218.tif 000014
【図１３】
2011134218.tif 000015
【図１４】
2011134218.tif 000016
【図１５】
2011134218.tif 000017
【図１６】
2011134218.tif 000018