説明

半導体集積回路のレイアウト方法、レイアウト装置およびプログラム

【課題】複数の階層ブロックが互いに重なり合うことを許容しつつレイアウト設計を行う際に、設計期間の長期化を防ぐこと。
【解決手段】複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対してレイアウトする場合に、第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合うとき、第1の階層ブロックの内部要素のうちの重複領域に含まれる第1の内部要素の個数と、第2の階層ブロックの内部要素のうちの重複領域に含まれる第2の内部要素の個数との合計が、重複領域に含まれる内部要素リソースの個数以下となるように、第1の階層ブロックおよび第2の階層ブロックを配置し、第1の内部要素の個数と第2の内部要素の個数との比に応じて、重複領域に含まれる内部要素リソースを、第1の階層ブロックと第2の階層ブロックに割り当てる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路のレイアウト方法、レイアウト装置およびプログラムに関し、特に、機能毎に分割された複数の階層ブロックを有する半導体集積回路の階層レイアウト設計を行うレイアウト方法、レイアウト装置およびプログラムに関する。
【背景技術】
【0002】
大規模な半導体集積回路のレイアウト設計において、回路全体を一括でレイアウト設計すると、一つの装置で取り扱う回路の量が膨大となり、設計期間が長くなるという問題がある。近年、この問題を解決する方法として、階層レイアウト設計を行うことが主流となっている。
【0003】
一般的な階層レイアウト設計では、分割して扱う階層ブロックの配置領域が重複した場合に、階層ブロック内に含まれるインスタンスと配線から成る内部要素の物理的な重複を解消するために、少なくともいずれか一つの内部要素の位置を変更する必要がある。かかる変更によって、タイミング制約違反またはデザインルール違反が発生し、タイミング制約違反またはデザインルール違反を解決する工程分だけ設計期間が長くなる。したがって、設計期間全体を短縮する要求がある。
【0004】
例えば、特許文献1に、効率良くフロアプランを設計するためのフロアプラン装置が記載されている。特許文献1に記載されたフロアプラン装置は、内部要素が配置された複数の配置対象ブロックの実装領域上への配置処理を行なうフロアプラン装置であって、複数の配置対象ブロックのうちの少なくとも2つの配置対象ブロックが互いに重なり合って重複領域(コモンエリア)を形成するように、複数の配置対象ブロックを実装領域上に仮配置する仮配置部と、重複領域を形成する配置対象ブロックのうちの少なくとも1つの配置対象ブロックの内部要素を、重複領域を使用しながら配置変更することにより、配置対象ブロックを最適化する最適化部とを備えている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4221045号公報(図1、図27)
【発明の概要】
【発明が解決しようとする課題】
【0006】
以下の分析は、本発明者によってなされたものである。
【0007】
特許文献1に記載されたフロアプラン装置1に基づいて、階層レイアウト設計を行なうと、論理回路全体(半導体集積回路)のレイアウトに必要となる設計期間が長くなるという問題がある。
【0008】
その理由は、次のとおりである。特許文献1に記載されたフロアプラン装置1による階層レイアウト設計において、コモンエリア内の内部要素の物理的な干渉を解決するためには、少なくとも一つの内部要素の位置を変更する必要がある。しかしながら、内部要素の位置変更に起因して設計制約違反が発生するための修正工程が必要となり、全体の設計期間が長くなってしまうからである。
【0009】
内部要素が階層ブロック内のインスタンスである場合には、インスタンスの位置を変更することにより、インスタンスに接続される配線の配線長および負荷容量が変動する。ここで、設計制約は、セットアップタイミングおよびホールドタイミングを含むタイミング制約と、シグナルインテグリティを含むデザインルールから成り、配線長および負荷容量に依存している。したがって、位置変更前の設計制約に設計マージンが存在しない場合には、配線長および負荷容量の変動により、設計制約の違反が発生する。このとき、配線に対するインスタンスの追加、インスタンスの削減、インスタンスの移動とインスタンスの駆動能力変更等の修正を、設計制約違反が収束するまで継続的に実施しなければならなくなる。ゆえに、設計期間が長くなってしまう。
【0010】
一方、内部要素が階層ブロック内の配線である場合には、配線の位置を変更することによりインスタンスに接続される配線の配線長および負荷容量が変動する。したがって、内部要素が階層ブロック内のインスタンスである場合と同様に、設計期間が長くなってしまう。
【0011】
そこで、複数の階層ブロックが互いに重なり合うことを許容しつつレイアウト設計を行う際に、設計期間の長期化を防ぐことが課題となる。
【課題を解決するための手段】
【0012】
本発明の第1の視点に係るレイアウト方法は、
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト方法であって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する配置工程と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比に応じて、前記重複領域に含まれる内部要素リソースを、前記第1の階層ブロックと前記第2の階層ブロックに割り当てる割り当て工程と、を含む。
【0013】
本発明の第2の視点に係るレイアウト装置は、
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト装置であって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する配置部と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比を算出する重なり情報抽出部と、
前記重複領域に含まれる内部要素リソースを、前記比に応じて前記第1の階層ブロックと前記第2の階層ブロックに割り当てるリソース分割部と、を備える。
【0014】
本発明の第3の視点に係るプログラムは、
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトする処理をコンピュータに実行させるプログラムであって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する処理と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比に応じて、前記重複領域に含まれる内部要素リソースを、前記第1の階層ブロックと前記第2の階層ブロックに割り当てる割り当て処理と、をコンピュータに実行させる。
【発明の効果】
【0015】
本発明に係るレイアウト装置、レイアウト方法およびプログラムによると、複数の階層ブロックが互いに重なり合うことを許容しつつレイアウト設計を行う際に、設計期間の長期化を防ぐことが可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明に係るレイアウト方法を一例として示すフローチャートである。
【図2】本発明に係るレイアウト装置の概略構成を一例として示すブロック図である。
【図3】実施形態に係るレイアウト装置の構成を一例として示すブロック図である。
【図4】実施形態に係るレイアウト装置による階層ブロックの領域を分割したことを示す模式図である。
【図5】実施形態に係るレイアウト装置による階層ブロックの分割領域ごとの配置数と配線数を示す模式図である。
【図6】実施形態に係るレイアウト装置によって複数の階層ブロックの位置を変更して、互いの一部の分割領域を重ねた重複領域を示す模式図である。
【図7】実施形態に係るレイアウト装置による階層ブロックBLK_Aと階層ブロックBLK_Bの一部領域を重ねて配置し、重複領域OVER_AREA_01を発生させた模式図である。
【図8】実施形態に係るレイアウト装置による任意の領域の内部要素リソースをROWとTRACKの集合体として表した模式図である。
【図9】実施形態に係るレイアウト装置の動作を一例として示すフローチャートである。
【発明を実施するための形態】
【0017】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0018】
図1を参照すると、本発明に係るレイアウト方法は、複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト方法であって、第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、第1の階層ブロックの内部要素のうちの重複領域に含まれる第1の内部要素の個数と、第2の階層ブロックの内部要素のうちの重複領域に含まれる第2の内部要素の個数との合計が、重複領域に含まれる内部要素リソースの個数以下となるように、第1の階層ブロックおよび第2の階層ブロックを配置する配置工程(ステップS11)と、第1の内部要素の個数と第2の内部要素の個数との比に応じて、重複領域に含まれる内部要素リソースを、第1の階層ブロックと第2の階層ブロックに割り当てる割り当て工程(ステップS12)と、を含む。ここで、内部要素とは、半導体装置を論理的に構成する回路、配線等の要素をいい、内部要素リソースとは、半導体装置の実装基板上において、これらの回路、配線等を実装するための物理的なリソース(資源)をいう。
【0019】
内部要素は配置要素と配線要素を含み、内部要素リソースは、配置要素を割り当て可能な配置リソースと、配線要素を割り当て可能な配線リソースを含んでいてもよい。このとき、配置工程(ステップS11)において、第1の階層ブロックの配置要素のうちの重複領域に含まれる第1の配置要素の個数と、第2の階層ブロックの配置要素のうちの重複領域に含まれる第2の配置要素の個数との合計が、重複領域に含まれる配置リソースの個数以下となるようにするとともに、第1の階層ブロックの配線要素のうちの重複領域に含まれる第1の配線要素の個数と、第2の階層ブロックの配線要素のうちの重複領域に含まれる第2の配線要素の個数との合計が、重複領域に含まれる配線リソースの個数以下となるように、第1の階層ブロックおよび前記第2の階層ブロックを配置することが好ましい。また、割り当て工程(ステップS12)において、第1の配置要素の個数と第2の配置要素の個数との比に応じて、重複領域に含まれる配置リソースを第1の階層ブロックと第2の階層ブロックに割り当てるとともに、第1の配線要素の個数と第2の配線要素の個数との比に応じて、重複領域に含まれる配線リソースを第1の階層ブロックと第2の階層ブロックに割り当てることが好ましい。
【0020】
また、割り当て工程(ステップS12)において、第1の階層ブロックに割り当てられた配置リソースと第2の階層ブロックに割り当てられた配置リソースとの比が、重複領域の各部において均一となるように、重複領域に含まれる配置リソースを第1の階層ブロックと第2の階層ブロックに割り当てることが好ましい。さらに、割り当て工程(ステップS12)において、第1の階層ブロックに割り当てられた配線リソースと第2の階層ブロックに割り当てられた配線リソースとの比が、重複領域の各部において均一となるように、重複領域に含まれる配線リソースを第1の階層ブロックと第2の階層ブロックに割り当てることが好ましい。
【0021】
図2を参照すると、本発明に係るレイアウト装置(10)は、複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト装置であって、第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、第1の階層ブロックの内部要素のうちの重複領域に含まれる第1の内部要素の個数と、第2の階層ブロックの内部要素のうちの重複領域に含まれる第2の内部要素の個数との合計が、重複領域に含まれる内部要素リソースの個数以下となるように、第1の階層ブロックおよび第2の階層ブロックを配置する配置部(13)と、第1の内部要素の個数と前記第2の内部要素の個数との比を算出する重なり情報抽出部(14)と、重複領域に含まれる内部要素リソースを、前記比に応じて第1の階層ブロックと第2の階層ブロックに割り当てるリソース分割部(15)と、を備える。
【0022】
また、図3を参照すると、レイアウト装置(99)は、機能毎に分割された複数の階層ブロックから構成される半導体集積回路のレイアウト装置であって、少なくとも2つ以上の階層ブロックが互いに重なりあって重複領域を形成するように階層ブロックを配置する配置部(130)と、重複領域を領域の一部に含む階層ブロックの内部要素の配置配線混載率を算出して重なり情報として出力する重なり情報抽出部(140)と、前記重なり情報より重複領域の配置リソースと配線リソースを分割するリソース分割部(150)とを有し、配置部(130)は、複数の階層ブロックの互いの一部の分割領域を重ねて重複領域を発生させ、重複領域の内部要素リソースの総数と重複領域内の全内部要素数の総数を算出して内部要素リソースの総数が全内部要素数を上回るように重複領域の位置を調整し、重なり情報抽出部(140)は、重複領域を形成した際の分割領域内の内部要素数から抽出した内部要素混載率を重なり情報として出力し、リソース分割部(150)は、重複領域に対して重なり情報に記述されている内部要素混載率に従ってリソース分割するようにしてもよい。
【0023】
本発明に係るレイアウト方法、レイアウト装置およびプログラムによると、内部要素の干渉を防ぎ、内部要素の位置変更に起因する設計制約違反を修正する期間の増加を抑制することができる。したがって、本発明に係るレイアウト装置、レイアウト方法およびプログラムによると、複数の階層ブロックが互いに重なり合うことを許容しつつレイアウト設計を行う際に、設計期間の長期化を防ぐことが可能となる。
【0024】
(実施形態)
実施形態に係るレイアウト装置について、図面を参照して説明する。図3は、本実施形態に係るレイアウト装置99の構成を一例として示すブロック図である。図3を参照すると、レイアウト装置99は、データベース2、表示部3、表示制御部4、入力部5、フロアプラン部100、配置配線部200、および、重なり情報ファイル300を備えている。
【0025】
データベース2は、分割階層設計によって設計された配置対象物に関するデータ(配置対象物情報)やフロアプラン対象としている半導体集積回路のネットリスト等を保持する。ここで、配置対象物情報は、少なくとも、設計対象の半導体集積回路における配置対象物の寸法、形状、他の配置対象物等との接続関係に関する情報や、当該配置対象物の内部要素に関する情報(内部要素の数量、種類、寸法、接続関係等)を含む。
【0026】
表示部3は、フロアプラン部100および配置配線部200による配置対象物の配置処理と配線処理にかかる情報やフロアプラン部100によって出力された重なり情報ファイル300の内容を表示する。
【0027】
表示制御部4は、表示部3の表示内容を制御する。
【0028】
入力部5は、レイアウト装置99のユーザが、フロアプラン部100と、配置配線部200に対して条件を入力するためのものである。
【0029】
フロアプラン部100は、内部要素概略配置部110、内部要素概略配線部120、配置部130、重なり情報抽出部140、および、リソース分割部150を備えている。
【0030】
内部要素概略配置部110は、階層ブロック毎に内部要素の概略配置を行い、タイミング制約とデザインルールで構成される設計制約を緩和した状態での配置を行う。設計完了時点で満たすべき設計制約に従うことなく配置を行うことで、内部要素概略配置部110によると、設計制約を満たすように配置する場合と比較して、非常に短い処理時間で配置を行うことができる。
【0031】
内部要素概略配線部120は、階層ブロック毎に内部要素の概略配線を行い、タイミング制約とデザインルールで構成される設計制約を緩和した状態での配線をすることができ、設計完了時点で満たされているべき設計制約を満たさずに配線して良いために、設計制約を満たして配線する場合と比較して処理時間が非常に短い。
【0032】
配置部130は、複数の階層ブロックの少なくとも2つ以上が互いに重なり合って重複領域を形成するように前記階層ブロックを実装領域上に配置する。このとき、配置部130は、重複領域内に含まれるすべての階層ブロックの配置数の合計値が重複領域の配置リソースの合計値を下回り、かつ、重複領域内に含まれるすべての階層ブロックの配線数の合計値が重複領域の配線リソースの合計値を下回るように重複領域を形成する。
【0033】
配置リソースとは、任意の領域において最小単位のインスタンスが配置可能な予約領域であり、任意の領域内のあらゆる位置は、必ずいずれかの配置リソースを有しているので、前記領域は配置リソースの集合体として表現することができ、例えば、任意の領域が100個の配置リソースの集合体である場合、当該領域には、最小単位のインスタンスが最大で100個配置可能であることを表している。
【0034】
また、配線リソースとは、任意の領域において最小単位の配線が配置可能な予約領域であり、任意の領域内のあらゆる位置は、必ずいずれかの配線リソースを有しているので、前記領域は、配線リソースの集合体として表現することができ、例えば、任意の領域が100個の配線リソースの集合体である場合に当該領域には、最小単位の配線が最大で100個配置可能であることを表している。
【0035】
重なり情報抽出部140は、配置部130で発生させた重複領域を認識し、重なり情報を抽出し、重なり情報ファイル300に出力する。
【0036】
リソース分割部150は、重なり情報抽出部140で抽出した重なり情報ファイル300を入力として、各階層ブロック内の重複領域の内部要素リソースを分割し、リソース分割された情報を、データベース2に保存する。
【0037】
配置配線部200は、内部要素配置部210および内部要素配線部220を備えている。
【0038】
内部要素配置部210は、各階層ブロック内の内部要素の配置を、タイミング制約とデザインルールから成る設計制約を守るように実施する。内部要素配置部210は、リソース分割部150で分割されてデータベース2に保存された内部要素リソースの情報に従って、配置を実施する。
【0039】
内部要素配線部220は、各階層ブロック内の内部要素の配線を、タイミング制約とデザインルールから成る設計制約を守るように実施する。内部要素配線部220は、リソース分割部150で分割されてデータベース2に保存された内部要素リソースの情報に従って、配線を実施する。
【0040】
図8は、レイアウト装置99による重なり情報ファイル300のフォーマットを示す模式図であり、記載情報は図7の本発明のレイアウト装置99による階層ブロックBLK_Aと階層ブロックBLK_Bの一部領域を重ねて配置し、重複領域OVER_AREA_01を発生させた模式図の重なり情報ファイル300の一例である。
【0041】
図8は、重複領域の名称と、重複領域の位置と、重複領域を領域の一部に含む階層ブロックの階層ブロック名と、重複領域内のすべての階層ブロックの内部要素の混載率とを含む。
【0042】
重複領域の名称は、複数の重複領域を個々に区別できるようにユーザが入力部5を用いて任意に指定する。
【0043】
重複領域の位置は、実装領域上の座標を用いて重複領域の頂点の座標で表し、重複領域の位置、重複領域を領域の一部に含む階層ブロックの階層ブロック名、重複領域内のすべての階層ブロックの内部要素の混載率を前記重複領域の位置に合わせてそれぞれ記載する。
【0044】
重複領域を領域の一部に含む階層ブロックの階層ブロック名は、重複領域の名称毎に記載する。
【0045】
内部要素混載率は、階層ブロック名とその階層ブロックの内部要素が、重複領域内のすべての内部要素に対して占める割合として配置と配線の混載率を個別に記載する。
【0046】
図9は、レイアウト装置99の動作を一例として示すフローチャートである。
【0047】
内部要素概略配置部110は、対象の半導体集積回路が有するすべての階層ブロックの内部要素の概略配置を実施し、概略配置結果をデータベース2に保存する(ステップS101)。
【0048】
内部要素概略配線部120は、対象の半導体集積回路が有するすべての階層ブロックの内部要素の概略配線を実施し、概略配線結果をデータベース2に保存する(ステップS102)。
【0049】
配置部130は、階層ブロックの少なくとも2つ以上が互いに重なり合って配置されるよう、重複領域内に含まれるすべての階層ブロックの内部要素数の合計値が、前記重複領域の内部要素リソースの合計値を下回るように階層ブロックの配置を実施する(ステップS103)。配置時の内部要素数は、ステップS101およびS102によりデータベース2に保存された概略配置結果と概略配線結果を用いて決定され、概略配置と概略配線が実行された各階層ブロックのすべての領域を任意の大きさで分割(例えば、分割の大きさおよび分割数は、ユーザが入力部5より任意に設定)する。
【0050】
重なり情報抽出部140は、ステップS103で生成された重複領域における重なり情報を抽出し、重なり情報ファイル300に出力する(ステップS104)。
【0051】
リソース分割部150は、ステップS104で出力された重なり情報ファイル300を入力として、重複領域内の全内部要素リソースを抽出し、内部要素リソースを各階層ブロックの内部要素混載率に応じて分割することにより重複領域のリソース分割を行い、データベース2にリソース分割情報として保存する(ステップS105)。
【0052】
内部要素配置部210は、対象の半導体集積回路が有するすべての階層ブロックの内部要素の配置をデータベース2に保存された重複領域のリソース分割結果を用いて実施する(ステップS106)。
【0053】
内部要素配線部220は、対象の半導体集積回路が有するすべての階層ブロックの内部要素の配線をデータベース2に保存された重複領域のリソース分割結果を用いて実施する(ステップS107)。
【実施例】
【0054】
上記実施形態に係るレイアウト装置99の動作について、図面を参照しつつ、具体的な実施例に基づいて説明する。
【0055】
図4(a)は、ステップS103において、階層ブロックAの領域を5行5列の25個の分割領域に分割した場合を示す。また、図4(b)は、階層ブロックBの領域を5行5列の25個の分割領域に分割した場合を示す。ここでは、一例として、分割した個々の分割領域内の配置リソースを10とし、配線リソースを10とする。次に、分割した領域内の内部要素数を算出する。このとき、領域内の配置と配線の数を抽出すればよいため、物理的位置は必要とされない。
【0056】
図5(a)は、ステップS103における、階層ブロックAの分割領域ごとの配置数と配線数を表す。また、図5(b)は、階層ブロックBの分割領域ごとの配置数と配線数を表す。図5(a)において、例えば、分割領域内に「9/1」と表記されている場合には、分割領域には配置が9個、配線が1個存在していることを示している。次に、配置部130は、階層ブロックAと階層ブロックBの互いの一部の分割領域を重ねて、重複領域を発生させる。このとき、配置部130は重複領域の内部要素リソースの総数と重複領域内の全内部要素数の総数を算出し、内部要素リソースの総数が全内部要素数を上回るように重複領域の位置を調整する。
【0057】
図6(a)は、ステップS103における、階層ブロックAの領域および分割領域毎の内部要素数を表す。また、図6(b)は、階層ブロックBの領域および分割領域毎の内部要素数を表す。さらに、図6(c)は、前記階層ブロックAと前記階層ブロックBの位置を変更して、互いの一部の分割領域を重ねて重複領域を発生させたことを表す。図6(a)〜図6(c)の斜線部は、重複領域が発生する際に重複領域となる領域を示している。
【0058】
図6(c)は、階層ブロックAと階層ブロックBそれぞれの3×3=9個の分割領域を重ねており、当該重複領域の内部要素の総リソース数は10×9=90である。一方、当該重複領域内のすべての分割領域に含まれる内部要素を合計すると、配置の総数は89個であり、配線の総数は83個である。したがって、配置も配線も、内部要素の総リソース数よりも少ない。
【0059】
図7は、ステップS103において、レイアウト装置99により、階層ブロックBLK_Aと階層ブロックBLK_Bの一部領域を重ねて配置し、重複領域OVER_AREA_01を発生させた例を示す。
【0060】
重複領域OVER_AREA_01の位置は、各頂点の座標である(X1、Y1)と(X2、Y2)と(X3、Y3)と(X4、Y4)で一意に表現される。なお、重複領域が多角形等の複雑な形状となる場合であっても、すべての頂点の座標を用いて重複領域の位置を表現することができる。
【0061】
重複領域を領域の一部に含む階層ブロックを、階層ブロックBLK_AおよびBLK_Bとする。
【0062】
ステップS104において、内部要素混載率は、重なり情報抽出部140において重複領域を形成した際の分割領域内の内部要素数から抽出される。図4に与えられた数値について、具体的に混載率を計算すると、配置に関しては階層ブロックBLK_Aが70/89、階層ブロックBLK_Bが19/89、配線に関しては階層ブロックBLK_Aが27/83、階層ブロックBLK_Bが56/83となる。ここでは、説明の簡単化のために、重複領域OVER_AREA_01において、配置に関しては階層ブロックBLK_Aが60%、階層ブロックBLK_Bが40%、配線に関しては階層ブロックBLK_Aが40%、階層ブロックBLK_Bが60%であると仮定する。
【0063】
ステップS105において、重複領域OVER_AREA_01のすべての内部要素リソースに対して、すべての配置リソースを、階層ブロックBLK_A用配置リソースが60%、階層ブロックBLK_B用配置リソースが40%となるように分割する。次に、すべての配線リソースを、階層ブロックBLK_A用配線リソースが40%、BLK_B用配線リソースが60%となるように分割する。
【0064】
図8は、ステップS105において、任意の重複領域の内部要素リソースに対して、配置領域をROWの集合体として表し、配線リソースをTRACKの集合体として表した例である。ステップS106において、内部要素配置部210が配置処理を行う際は、ROW上にインスタンスを配置する。一方、ステップS107において、内部要素配線部220が配線処理を行う際には、TRACK上に配線を配置する。
【0065】
配置リソースは、ROW1〜ROW10の合計10個のROWの集合体であり、10個のROWのすべてにインスタンスが配置された時点ですべての配置リソースが使用されたことになる。一方、配線リソースはTRACK1〜TRACK5の合計5個のTRACKの集合体であり、5個のTRACKのすべてに配線が配置された時点ですべての配線リソースが使用されたことになる。
【0066】
ステップS105において、リソース分割部150は、重複領域に対して定義したROWとTRACKを、重なり情報ファイル300に記述されている内部要素混載率に従って分割する。
【0067】
例えば、重複領域OVER_AREA_01において、階層ブロックBLK_Aの配置混載率が60%、階層ブロックBLK_Bの配置混載率が40%、階層ブロックBLK_Bの配線混載率が40%、階層ブロックBの配線混載率が60%である場合には、リソース分割部150は、当該混載率に応じて、ROW1、ROW2、ROW4、ROW5、ROW7およびROW8を階層ブロックBLK_A用配置リソースとして割り当てる。次に、リソース分割部150は、ROW3、ROW6、ROW9およびROW10を階層ブロックBLK_B用配置リソースとして割り当てる。
【0068】
リソース分割部150は、個々のROWを階層ブロックBLK_Aと階層ブロックBLK_Bのいずれの配置リソースに割り当てるかを、総合的に混載率が守られていれば任意に決定してよい。しかしながら、配置リソースのみが割り振られ、配線リソースが割り振られていない場合には、割り振られた配置リソースは無駄となる。同様に、配線リソースのみが割り振られ、配置リソースが割り振られていない場合には、割り振られた配線リソースは無駄となる。そこで、リソース分割部150は、局所的な領域に一方の内部要素リソース(配線リソースまたは配置リソース)が偏らないように、可能な限り均一に割り振ることが好ましい。このように割り振ることで、重複領域において、一方の階層ブロックに対して配線リソースおよび配置リソースのうちの一方のみが割り振られて、リソースが無駄に消費されることを防ぐことができる。
【0069】
また、配線リソースに関しても、配置リソースと同じ分割方法でTRACK1とTRACK2とTRACK4を階層ブロックBLK_A用配線リソースとして割り当て、TRACK3とTRACK5を階層ブロックBLK_B用配線リソースとして割り当てる。
【0070】
本実施形態のレイアウト装置99は、階層ブロックの内部要素の配置と配線を実施する前に、重複領域の内部要素混載率に応じて内部要素リソースを排他的に分割する。このとき、内部要素の配置と配線を実施した後に重複領域において各階層ブロック内の互いの内部要素が干渉することがなく、干渉の解消を目的とした内部要素の位置の変更と位置の変更に伴う設計制約違反が発生しない。したがって、レイアウト装置99によると、設計制約違反を修正する工程分の設計期間の増大が抑制でき、論理回路全体(半導体集積回路)のレイアウトに必要となる設計期間の増大を抑制することができる。
【0071】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0072】
2 データベース
3 表示部
4 表示制御部
5 入力部
10、99 レイアウト装置
100 フロアプラン部
110 内部要素概略配置部
120 内部要素概略配線部
13、130 配置部
14、140 重なり情報抽出部
15、150 リソース分割部
200 配置配線部
210 内部要素配置部
220 内部要素配線部
300 重なり情報ファイル

【特許請求の範囲】
【請求項1】
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト方法であって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する配置工程と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比に応じて、前記重複領域に含まれる内部要素リソースを、前記第1の階層ブロックと前記第2の階層ブロックに割り当てる割り当て工程と、を含むことを特徴とするレイアウト方法。
【請求項2】
前記内部要素は、配置要素と配線要素を含み、
前記内部要素リソースは、前記配置要素を割り当て可能な配置リソースと、前記配線要素を割り当て可能な配線リソースを含むことを特徴とする、請求項1に記載のレイアウト方法。
【請求項3】
前記配置工程において、前記第1の階層ブロックの配置要素のうちの前記重複領域に含まれる第1の配置要素の個数と、前記第2の階層ブロックの配置要素のうちの前記重複領域に含まれる第2の配置要素の個数との合計が、前記重複領域に含まれる配置リソースの個数以下となるようにするとともに、前記第1の階層ブロックの配線要素のうちの前記重複領域に含まれる第1の配線要素の個数と、前記第2の階層ブロックの配線要素のうちの前記重複領域に含まれる第2の配線要素の個数との合計が、前記重複領域に含まれる配線リソースの個数以下となるように、前記第1の階層ブロックおよび前記第2の階層ブロックを配置することを特徴とする、請求項2に記載のレイアウト方法。
【請求項4】
前記割り当て工程において、前記第1の配置要素の個数と前記第2の配置要素の個数との比に応じて、前記重複領域に含まれる配置リソースを前記第1の階層ブロックと前記第2の階層ブロックに割り当てるとともに、前記第1の配線要素の個数と前記第2の配線要素の個数との比に応じて、前記重複領域に含まれる配線リソースを前記第1の階層ブロックと前記第2の階層ブロックに割り当てることを特徴とする、請求項3に記載のレイアウト方法。
【請求項5】
前記割り当て工程において、前記第1の階層ブロックに割り当てられた配置リソースと前記第2の階層ブロックに割り当てられた配置リソースとの比が、前記重複領域の各部において均一となるように、前記重複領域に含まれる配置リソースを前記第1の階層ブロックと前記第2の階層ブロックに割り当てることを特徴とする、請求項4に記載のレイアウト方法。
【請求項6】
前記割り当て工程において、前記第1の階層ブロックに割り当てられた配線リソースと前記第2の階層ブロックに割り当てられた配線リソースとの比が、前記重複領域の各部において均一となるように、前記重複領域に含まれる配線リソースを前記第1の階層ブロックと前記第2の階層ブロックに割り当てることを特徴とする、請求項4または5に記載のレイアウト方法。
【請求項7】
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトするレイアウト装置であって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する配置部と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比を算出する重なり情報抽出部と、
前記重複領域に含まれる内部要素リソースを、前記比に応じて前記第1の階層ブロックと前記第2の階層ブロックに割り当てるリソース分割部と、を備えることを特徴とするレイアウト装置。
【請求項8】
前記内部要素は、配置要素と配線要素を含み、
前記内部要素リソースは、前記配置要素を割り当て可能な配置リソースと、前記配線要素を割り当て可能な配線リソースを含むことを特徴とする、請求項7に記載のレイアウト装置。
【請求項9】
前記配置部は、前記第1の階層ブロックの配置要素のうちの前記重複領域に含まれる第1の配置要素の個数と、前記第2の階層ブロックの配置要素のうちの前記重複領域に含まれる第2の配置要素の個数との合計が、前記重複領域に含まれる配置リソースの個数以下となるようにするとともに、前記第1の階層ブロックの配線要素のうちの前記重複領域に含まれる第1の配線要素の個数と、前記第2の階層ブロックの配線要素のうちの前記重複領域に含まれる第2の配線要素の個数との合計が、前記重複領域に含まれる配線リソースの個数以下となるように、前記第1の階層ブロックおよび前記第2の階層ブロックを配置することを特徴とする、請求項8に記載のレイアウト装置。
【請求項10】
前記重なり情報抽出部は、前記第1の配置要素の個数と前記第2の配置要素の個数との比を第1の比として算出するとともに、前記第1の配線要素の個数と前記第2の配線要素の個数との比を第2の比として算出し、
前記リソース分割部は、前記重複領域に含まれる配置リソースを、前記第1の比に応じて前記第1の階層ブロックと前記第2の階層ブロックに割り当てるとともに、前記重複領域に含まれる配線リソースを、前記第2の比に応じて前記第1の階層ブロックと前記第2の階層ブロックに割り当てることを特徴とする、請求項9に記載のレイアウト装置。
【請求項11】
複数の内部要素をそれぞれ含む複数の階層ブロックを、内部要素を割り当て可能な内部要素リソースが配置された実装領域に対して、互いに重なり合うことを許容しつつレイアウトする処理をコンピュータに実行させるプログラムであって、
第1の階層ブロックと第2の階層ブロックとが重複領域において重なり合う場合に、該第1の階層ブロックの内部要素のうちの該重複領域に含まれる第1の内部要素の個数と、該第2の階層ブロックの内部要素のうちの該重複領域に含まれる第2の内部要素の個数との合計が、該重複領域に含まれる内部要素リソースの個数以下となるように、該第1の階層ブロックおよび該第2の階層ブロックを配置する処理と、
前記第1の内部要素の個数と前記第2の内部要素の個数との比に応じて、前記重複領域に含まれる内部要素リソースを、前記第1の階層ブロックと前記第2の階層ブロックに割り当てる割り当て処理と、をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−54567(P2013−54567A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−192949(P2011−192949)
【出願日】平成23年9月5日(2011.9.5)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】