JP2008217365A - 集積回路のレイアウト設計支援装置、方法、プログラム、及びデータ構造 - Google Patents

集積回路のレイアウト設計支援装置、方法、プログラム、及びデータ構造 Download PDF

Info

Publication number
JP2008217365A
JP2008217365A JP2007053302A JP2007053302A JP2008217365A JP 2008217365 A JP2008217365 A JP 2008217365A JP 2007053302 A JP2007053302 A JP 2007053302A JP 2007053302 A JP2007053302 A JP 2007053302A JP 2008217365 A JP2008217365 A JP 2008217365A
Authority
JP
Japan
Prior art keywords
macro
layout
terminal
name
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007053302A
Other languages
English (en)
Other versions
JP5029070B2 (ja
Inventor
Takashi Goto
崇 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007053302A priority Critical patent/JP5029070B2/ja
Priority to US12/036,643 priority patent/US8117583B2/en
Publication of JP2008217365A publication Critical patent/JP2008217365A/ja
Application granted granted Critical
Publication of JP5029070B2 publication Critical patent/JP5029070B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Abstract

【課題】本発明は、同一種類マクロブロックを複数使用する際に、迂回配線を防止して配線長を低減できる集積回路のレイアウト設計支援装置を提供する。
【解決手段】集積回路のレイアウト設計支援装置であって、端子座標算出制御部(4)と、レイアウト処理制御部(6)とを含む構成とした。端子座標算出制御部(4)は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部(6)は、端子座標算出制御部(4)にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。
【選択図】図1

Description

本発明は、集積回路のレイアウト設計支援装置、集積回路のレイアウト設計支援方法、プログラム、及びデータ構造に関する。
大規模な集積回路(例えばLSI等)のレイアウト設計においては、階層レイアウト手法によりチップをマクロ(マクロブロック)という設計単位に分割し、各マクロブロックのレイアウト処理を並列的に行うことで設計期間を短縮する方法が広く用いられている。
このようなLSIのレイアウト設計において、同一機能を持ったマクロブロックを複数用いるLSIの場合は、設計効率を向上させる観点から、共通のマクロレイアウトパターンをLSIのチップ上で複数個使用することが考えられる。このような従来技術を図32、図33に示す。図32は、従来のレイアウト設計支援装置によるマクロブロック間の配線レイアウト処理の一例を示す説明図である。図33は、チップレイアウト後の配線レイアウト状態を示す説明図である。
図32に示すように、チップ1000の上位階層内に、マクロブロック1001a、1001b、1001c、1001dを配置する。このうち、4つのマクロブロック1001aは、同一機能を有する同一種類のマクロブロックである。図32では、この他、複数の異なる種類のマクロブロック1001b、1001c、1001dも混在している。4つの同一種類のマクロブロック1001aは、既に設計済みのマクロブロック等を利用しているため、内部機能素子(例えば論理回路素子等)のパターンやマクロ端子1002の位置も通常固定化された状態で利用される。そして、各マクロブロック1001a、1001b、1001c、1001dの配置を行った後に、各マクロブロック1001a、1001b、1001c、1001d間の領域にて各マクロ端子1002間に配線1003を形成するような配線レイアウト処理を行う。その後、各マクロブロック内の配線レイアウト処理を行い、図33に示すように、配線された後のチップ1000のレイアウトが形成される。
さらに、この種のLSIのレイアウト設計支援装置の関連技術として、例えば以下に示す特許文献1乃至特許文献5が挙げられる。
特許文献1では、半導体集積回路の機能ブロック(マクロブロック)間の概略配線処理を行い、この概略配線処理後の概略配線経路の結果と、概略配線経路上の端子と辺との座標位置関係により配置優先方向を決定し、端子位置が前記配線優先方向と一致しない端子についてこの配線優先方向に基づいてその端子位置の変更を行い端子位置を再決定する。そして、各機能ブロックの端子位置を変更することで、各機能ブロック間の配線をできるだけ短くする点が開示されている(第2頁右上欄〜第3頁左下欄)。
特許文献2の集積回路設計装置は、内部レイアウトが未了の仮のマクロブロックを配置し、仮想の外部端子を設定し、チップ全体の配置処理および概略配線処理を行う仮レイアウト手段と、仮レイアウトされた結果に基づいて各マクロブロックの外部端子の位置を決定する外部端子位置設定手段と、この決定された外部端子の位置に基づいて各マクロブロック内のレイアウト設計を行うマクロブロックレイアウト設計手段と、チップ全体の詳細配線を行う配線手段と、マクロブロックの外形を新たに定義することによって決定された外部端子の位置を変更するマクロブロック変更手段と、を備える点を開示している(第3頁右上欄〜第3頁左下欄)。これにより、複数のマクロブロックをチップ上に配置し、マクロブロック内部及びマクロブロック間の配線を仮に行ってみて、全体のレイアウトを見た後に、必要に応じて、マクロブロックの大きさや端子の配置位置、配線経路等の変更を行う。
特許文献3では、ハードマクロ設計フローにおいて、チップに搭載するマクロ(マクロブロック)の個数分、マクロの配置配線情報を、チップの配置配線情報にコピーし、コピーされたチップの配置配線情報内のマクロ名を、マクロを階層構造にした<特許文献3の図6(b)階層図の>回路接続情報(論理回路、入出力端子、配線など)のマクロ名と一対一対応させるため、マクロ名を変更する点を開示している(段落番号0038、0048)。
さらに、特許文献3では、ライブラリ格納部に格納されている自動配線ライブラリとオフセット情報(例えば、マクロ内論理回路の配置座標、論理回路間の配線座標、チップに配置するマクロの座標など)から、マクロをチップの配置配線情報内の希望する搭載位置に移動(オフセット)し、マクロがオフセットされた(所望の位置に移動された)チップの配置配線情報を作成する点を開示している(段落番号0038、0049)。その後、チップの自動配線ツールを使い、マクロを階層構造にしたチップの回路接続情報と、チップの自動配置配線ライブラリ、及びオフセットされたチップの配置配線情報を読み込み、マクロのみの配置配線情報を作成する(段落番号0038、0050)。さらに、チップの自動配線ツールを使い、その他の論理回路を自動配置し、配置情報を作成し、自動配線を行い、配置配線情報を作成し、配置配線結果と配線長を確認し、チップ設計を終了する(段落番号0030〜0034)。
また、特許文献3では、チップの配置配線情報内のマクロ配置位置にオフセットを掛ける時、マクロをX軸方向やY軸方向に反転させたり、マクロ全体を回転させる点が開示されている(段落番号0076)。
特許文献4では、マクロ(マクロブロック)の異なる辺に設けた複数の同一機能端子の中から使用する端子を選択する構成が開示されている(段落番号0026〜0027)。より詳細には、図34に示すように、マクロブロック1010は、該マクロブロック1010の4辺に同一機能端子(an、bn、ae、be、aw、bw、as、bs)を有している。マクロブロック間の配線処理を行う際には、複数の同一機能端子(an、bn、ae、be、aw、bw、as、bs)のうちマクロブロック間の配線が短くなるような1辺の端子(例えばas、bs)を選択して配線処理を行う。ここで、マクロ入力端子(an、ae、aw、as)については、複数存在するうちの1つのマクロ入力端子(as)のみが配線処理で使用される。使用されない他のマクロ入力端子(an、ae、aw)については、マクロ入力端子(an、ae、aw)を論理0に固定するために、トップレイアウト上でクランプ処理を行う。クランプ処理は、クランプセルCSを発生させてマクロ入力端子(an、ae、aw)と配線することをいう。
特許文献5では、トップを複数に分割したユニット(マクロブロック)のうち、信号名を除き同一構成の複数の同一ユニットについて、一つの代表ユニットについてのみレイアウトを設計するレイアウト設計支援装置において、複数の同一ユニット上の通過配線を含むトップのレイアウトを設計し、全ての通過配線を代表ユニットに落とし込むとともに、通過配線について代表ユニットの境界上にマクロピンを設け、マクロピンを固定して代表ユニットのレイアウトを設計する技術が開示されている。
特開平3−209848号公報 特開平4−60873号公報 特開平11−307644号公報 特開2001−319976号公報 特開2005−332053号公報
ところで、チップ上で複数の同一種類マクロブロックが使用されると、該同一種類マクロブロックとその周囲に形成される他の異なる種類のマクロブロックとの配置関係が、状況に応じて如何なる配置となるかによって、マクロブロック間の配線性を起因として、タイミング設計におけるシステムLSIの回路遅延が、正常動作に必要な遅延範囲内におさまらず、最適な結果が得られないケースが存在していた。
具体的には、マクロブロック内のレイアウトは、同一性を保たなければならないため、マクロブロックの外部端子であるマクロ端子の位置は全て同一である必要がある。このような同一種類マクロブロックを用いてトップレイアウトの配線処理を行おうとすると、結果として、図32及び図33に示すように、一部のマクロブロック間配線1003が、トップ階層のレイアウトにて引き回されて形成されてしまう。このため、配線長が増大してLSI全体の配線性が悪化したり、配線遅延時間が悪化するという問題があった。
特許文献1では、各機能ブロック(マクロブロック)の端子位置(マクロ端子の位置)は、段階的にしか変更できず、また、配線優先方向が水平又は鉛直方向に限られており、端子位置が変更されたとしても、配線を引き回さなければならないため、配線長が増大するという問題がある。
また、特許文献1では、概略配線処理を行った後に、改めて端子位置や配線などの変更を行わなければならないため、無駄な処理工数が増大するという問題がある。
特許文献2では、マクロブロックの大きさや形状そのものを変更してまで端子位置を変更してしまうため、複数の同一機能のマクロブロックを利用したい場合に各マクロブロックの同一性を維持できないという問題がある。さらに、仮に特許文献2のマクロブロックを複数用いた場合、図36に示すように、端子位置に変更の必要のあるマクロブロックの端子位置を変更したとしても、チップ1030上に形成された際に、マクロブロック領域内に迂回配線部1032が生じてしまい、配線長が増大するという問題がある。さらにまた、一度仮レイアウト手段により仮レイアウトを行った後に、修正を行う必要があるため、無駄な処理工数が増大するという問題がある。
特許文献3では、マクロブロックをチップ上にコピーした後に、オフセット処理により、マクロブロックを特定の位置に移動させ、その後、マクロ端子間の配線処理を行う。このような、コピーして配置した位置から、マクロブロックを他の特定箇所に移動させる等の処理を行うオフセット処理があるため、処理工数が増大するという問題がある。
また、特許文献3では、複数のマクロ(マクロブロック)をコピーして、同一種類の複数のマクロのみを用いているため、図32に示すような、同一種類の複数のマクロブロックと、他の種類の各々異なる複数のマクロブロックとが混在するようなレイアウトの状況では、特許文献3のマクロブロックを用いた場合、マクロブロックのマクロ端子が固定されているために、図32同様、やはり迂回配線が必要であり、配線長が増大するという問題がある。
さらに、特許文献3のマクロブロックを図32に示すような配置に用いた場合、マクロブロックの配置位置にオフセットを掛けるオフセット処理を用いることによって、マクロブロックをX軸或いはY軸に反転させたり、マクロブロック全体を回転させたりすることが考えられる。この場合、配置関係が上手く適合しないマクロブロックの数だけ、回転などの処理を行わなければならず、処理工数もさることながら、マクロブロックの回転や移動のための計算量や処理に時間がかかるという問題がある。特に、多数のマクロブロックを用いる場合であって、各々が異なる方向で配置しなければならない状況では、処理工数がさらに増大するという問題がある。
また、特許文献3では、コピー後のオフセット処理にて、チップの配置配線情報内の所望の搭載位置にマクロを移動させる際には、複数のコピーされた各マクロを各々移動させる必要があるので、オフセット処理の前に、各マクロを識別するためにマクロ名を変更している。階層構造を示したチップの回路接続情報では、各マクロ名は識別されているが、マクロ(の配線接続情報)のコピーによって生成されたチップの配線接続情報では、変更前の状態では識別されていないからである。しかしながら、図32のようなケースに、仮に特許文献3のマクロブロックを複数用いた場合、マクロ名を変更したとしても、複数のマクロブロックについて各々オフセット処理が必要であるという問題があった。さらに、マクロブロック内部において引き回し配線が形成されているため、チップ全体としての総配線長を短く形成することができない。
さらに、特許文献3では、マクロ内の配線処理においては、自動配線では望まれる配線が得られない場合等必要に応じて、チップの自動配置配線ツールの手配線機能にて自動配線を修正する必要がある(段落番号0025)。さらに、自動配置配線ツールは、マクロ外の配線処理でも利用される。ここにおいて、マクロブロック内の配線及びマクロブロック間の配線において、配線長を確認し、自動配線が望ましくない場合には、修正が必要であったために、さらに処理に時間がかかるという問題がある。つまり、特許文献3では、オフセット処理に加えて、マクロブロック内の配線の修正、及びマクロブロック間の配線の修正のそれぞれが必要であるため、処理工数が増大するという問題がある。
特許文献4では、マクロブロックの4辺の端子のうち、使用されない3辺のマクロ入力端子については、各マクロ入力端子に対するクランプ処理に手間がかかるという問題がある。例えば、図34に示すように、使用するマクロ入力端子as以外の3個の入力端子aw、an、aeのそれぞれについて、クランプ処理する必要がある。この際、クランプセルCSと、端子(an、ae、aw)とクランプセルCSを接続する配線とが必要になる。このようなマクロ構成のマクロブロック1010を複数用いようとすると、各マクロブロックについて各々不使用端子をクランプ処理しなければならなくなるので、さらに手間がかかるという問題がある。
例えば、図35に示すように、特許文献4のマクロブロック1010を複数用いるようなチップ1020の場合には、一つのマクロブロック1010に対して、前に述べた不使用端子に対するクランプ処理のためのクランプセルCSと、クランプセルと不使用端子との配線と、が必要であるのに加えて、他のマクロブロック1010に対してもクランプセルCSと、配線とが必要になるという問題がある。しかも、各マクロブロックで、クランプ処理すべき3辺が異なる位置にあるので、周囲の状況に応じたクランプ処理を行わなければならず、処理に手間がかかり、処理工数が増大するという問題がある。また、クランプセルCSと、不使用端子とクランプセルCSとを接続する配線とを、マクロブロック1010の領域外に設けなければならず、無駄な素子数の増大、配線の増大となり、チップ全体の処理速度の遅延や消費電力の増大を招くという問題がある。
さらに、特許文献4では、図34に示すように、マクロブロック1010は、実質的にマクロ(論理素子の集合体)として機能している実質機能マクロ領域(内部中核回路)1011に、各辺の端子に汎用性を持たせるために端子選択手段と称する新たな複数の論理素子を、符号1012と符号1013との間の領域(端子選択手段領域)に設けなければならない。しかも、端子選択手段領域の領域面積は、実質機能マクロ領域の領域面積より大きいスペースを確保しなければならないため、1つのマクロ全体としての領域面積が大きくなってしまうという問題がある。
このようなことは、例えば、特許文献4のマクロブロック1010を複数用いるような場合には、図35に示すように、端子選択手段に占める領域SAが大となり、実質機能マクロ領域を有効に活用できないという問題がある。また、実質機能マクロ領域による素子以外に、端子選択手段専用の素子が必要となり、素子数が増大するという問題がある。このようなマクロブロック1010内に、本来マクロ回路として機能する以外の接続専用の機能部を有することは、無駄な素子数や配線数の増大に繋がりチップ全体の動作速度の遅延を招くという問題がある。
特許文献5では、各ユニット(マクロブロック)間の配線(ネット)は、引き回されているため、配線長が長くなるという問題がある。
本発明は、上記した技術の問題点を解決することを課題としてなされたものであって、その目的とするところは、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、同一種類マクロブロックを複数使用する場合に、迂回配線を防止して配線長を低減することのできる集積回路のレイアウト設計支援装置、集積回路のレイアウト設計方法、集積回路のレイアウト設計用のプログラム、及びデータ構造を提供することにある。
上記目的は、独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は、発明の更なる有利な具体例を規定する。この発明の概要は、必要な特徴すべてを列挙しているものではなく、よってこれらの特徴群の下位結合(サブコンビネーション)も発明になり得る。
本発明の集積回路のレイアウト設計支援装置は、端子座標算出制御部と、レイアウト処理制御部と、を含む構成とした。端子座標算出制御部は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部は、前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。
かかる構成によれば、同一種のマクロブロックが複数使用される場合、それらを別々のマクロブロックとみなしてマクロ端子の最適座標位置を算出する。そして、算出されたマクロ端子の位置に基づいて、関連するマクロブロック間の配線レイアウト処理、あるいは、マクロブロック内の配線レイアウト処理を行う。
本発明の集積回路のレイアウト設計支援方法は、第1の端子座標算出処理工程(プロセス)と、第1レイアウト処理工程と、第2の端子座標算出処理工程と、第2レイアウト処理工程と、第3レイアウト処理工程と、余分配線部削除工程と、を含む手順とした。
第1の端子座標算出処理工程は、複数種類のマクロブロックに含まれる同一種類マクロブロックを別々の種類のマクロブロックとみなして、前記マクロブロックの境界領域上のマクロ端子の最適座標位置を算出する。第1レイアウト処理工程は、各前記マクロブロック間に形成される第1レイアウト領域内にて、各マクロ端子間を配線接続する配線レイアウト処理を行う。第2の端子座標算出処理工程は、別々の座標位置として算出された前記複数の同一種類マクロブロックの各マクロ端子を、1つの前記同一種類マクロブロック上に全て配置するように前記マクロ端子の座標位置を算出する。第2レイアウト処理工程は、前記マクロブロック内に形成される第2レイアウト領域にて、一つの前記同一種類マクロブロックの前記全マクロ端子に関連する配線レイアウト処理を行う。第3レイアウト処理工程は、前記第1レイアウト領域と前記第2レイアウト領域をマージして第3レイアウト領域を生成する。余分配線部削除工程は、前記第2レイアウト処理工程にて、全マクロ端子に対して配線した各配線部のうち、接続が完結しない余分な配線部を削除する。
かかる手順では、同一種類マクロブロックが複数使用される場合、それらを別々のマクロブロックとみなしてマクロブロックの端子座標を計算し、第1レイアウト(マクロブロック間の配線レイアウト処理)を行う。第2レイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロブロック内の配線処理を1回行う。前記第レイアウト領域と第2レイアウト領域とをマージした後、接続が完結しない余分な配線部を削除する。
本発明のプログラムは、集積回路のレイアウト処理を行うコンピュータが実行可能なプログラムであって、端子座標算出制御部と、レイアウト処理制御部として、コンピュータを機能させることを特徴としている。端子座標算出制御部は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部は、前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。
本発明のデータ構造は、コンピュータが行う集積回路のレイアウト処理に用いられるレイアウト情報のデータ構造であって、第1レイアウト情報と、第1ネットリスト情報と、マクロ変更リスト情報と、を含む構造とした。第1レイアウト情報は、複数種類の各マクロブロックの位置関係を示す。第1ネットリスト情報は、各前記マクロブロック間の接続関係を示す。マクロ変更リスト情報は、前記複数種類の各マクロブロックに含まれる同一種類マクロブロックのマクロ名が変更される前後の第1名称対応関係情報と、前記同一種類マクロブロックのマクロ端子名が変更される前後の第2名称対応関係情報とを規定する。前記第1レイアウト情報、前記第1ネットリスト情報、及び前記マクロ変更リスト情報は、コンピュータが、端子座標計算と、第1レイアウト処理とを行うのに利用される。端子座標計算は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。第1レイアウト処理は、前記端子座標計算により求められた一方のマクロブロックの最適座標位置と他方のマクロブロックの最適座標位置との間で配線接続する。
本発明によれば、複数の同一種類のマクロブロックを含む複数のマクロブロック内外での配線レイアウト処理において、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、マクロ端子に接続する全ての配線を短小化した形でレイアウトを行うことができ、迂回配線(配線引き回し)をなくし、集積回路の配線性を向上させ配線遅延時間の悪化を抑制できる。
以下、本発明の好適な実施の形態の一例について、図面を参照して具体的に説明する。
〔第1の実施の形態〕
(集積回路のレイアウト設計支援装置の全体構成)
先ず、本発明の集積回路のレイアウト設計支援装置の全体構成について、図1を参照して説明する。図1は、本実施の形態によるLSIのレイアウト設計支援装置の全体の概略構成を示すブロック図である。
本実施の形態の集積回路(例えばLSI等)のレイアウト設計支援装置1は、ユーザが集積回路の設計を行う際に使用する情報処理装置(コンピュータ)であり、図1に示すように、各種情報を入力するための各種情報入力部11と、予め登録されている情報並びにユーザ(レイアウト設計者)が操作入力により入力された情報を記憶して蓄積処理する蓄積処理部としての記憶部8と、レイアウトによる配置配線結果を出力する配置配線結果出力部61と、前記各種情報入力部11にて入力された情報に基づき各種の処理を行うとともに、これら各部の制御を司る制御部2と、を含んで構成される。
ここで、各種情報入力部11は、例えばキーボード・マウス等が挙げられ、各種データを操作入力する操作入力部として機能する。記憶部8は、例えばRAMなどのメモリ、ハードディスク等が挙げられ、各種データ、各種プログラム等を記憶してある。配置配線結果出力部61は、例えば種々の情報等を表示するための表示部としてのスクリーンなどが挙げられる。制御部2は、例えばCPU或いはCPU+プログラムROM等が挙げられる。なお、図示しないが、所定のインターフェースを介して他の周辺機器と通信可能な複数の通信部を形成してもよい。
さらに、レイアウト設計支援装置1は、プログラム制御により動作するものであり、デスクトップ、ラップトップコンピュータその他無線・有線通信機能を有する情報機器、またはこれに類するコンピュータなどいかなるコンピュータでもよく、ネットワーク関連の機能を有しもよく、移動式・固定式を問わない。
図1に示すブロック図における各ブロック(例えば符号4、6、5a、5b、21、31、41、35、44、54、70、90等)は、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成である。すなわち、物理的構成は例えばCPU(或いはCPUとメモリ)等ではあるが、各部によるソフトウエア構成は、プログラムの制御によってCPUが発揮する複数の機能を、それぞれ複数の部による構成要素として表現したものである。CPUがプログラムによって実行されている動的状態(プログラムを構成する各手順を実行している状態)を機能表現した場合、CPU内に各部が構成されることになる。この場合、図1に示すように、制御部2内に各部(例えば符号4、6、5a、5b、21、31、41、35、44、54、70、90等)が形成される。プログラムが実行されていない静的状態にあっては、各部の構成を実現するプログラム全体(或いは各部の構成に含まれるプログラム各部)は、メモリ(プログラムROM等)あるいはハードディスクなどの記憶領域に記憶されている。以下に示す各部の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来ることは、当然である。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。
(各部の構成の包含関係)
制御部2は、図1に示すように、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部4と、端子座標算出制御部4にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部6と、を含んで構成される。
端子座標算出制御部4は、各前記マクロブロックのブロック境界領域にある各マクロ端子の各第1座標位置を算出する第1の端子座標算出処理部5aと、第1の端子座標算出処理部5aにて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第1座標位置の相対位置である第2座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第2座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第2の端子座標算出処理部5bと、を含んで構成される。
第1の端子座標算出処理部5aは、トップ階層変更部21と、階層マクロ端子座標決定部31とを含んで構成される。第2の端子座標算出処理部5bは、階層マクロ端子追加及び端子座標設定処理部41を含んで構成される。
レイアウト処理制御部6は、第1の端子座標算出処理部5aにて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記各マクロブロック間に形成される第1レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行うであるトップレイアウト処理部35(本発明にいう「第1のレイアウト処理部」)を含んで構成される。
レイアウト処理制御部6は、同一種類マクロブロックに対しては、前記マクロブロック内に形成される第2レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行うマクロレイアウト処理部44(本発明にいう「第2のレイアウト処理部」)を含んで構成される。
レイアウト処理制御部6は、チップレイアウト処理部54(本発明にいう「第3のレイアウト処理部」)を含んで構成される。チップレイアウト処理部54は、トップレイアウト処理部44にて配線レイアウト処理されたトップレイアウト領域(第1レイアウト領域)と、マクロレイアウト処理部44にて配線レイアウト処理されたマクロレイアウト領域(第2レイアウト領域)と、をマージさせて、トップレイアウト領域とマクロレイアウト領域よりなるチップレイアウト領域(第3レイアウト領域)を作成するとともに、前記チップレイアウト領域にて、全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する。
レイアウト処理制御部6は、その他の各種処理あるいは各種制御処理を行うその他の各部90と、これら各部を制御する中央制御部70と、を含んで構成される。
記憶部8は、蓄積処理部として機能し、物理ライブラリ情報記憶部81と、トップレイアウト情報(第1レイアウト情報)を記憶するトップレイアウト情報記憶部82(本発明にいう「第1レイアウト蓄積処理部」)と、トップネットリスト情報(第1ネットリスト情報)を記憶するトップネットリスト情報記憶部83(本発明にいう「第1ネットリスト蓄積処理部」)と、マクロネットリスト情報(第2ネットリスト情報)を記憶するマクロネットリスト情報記憶部84(本発明にいう「第2ネットリスト蓄積処理部」)と、マクロ変更リスト情報を記憶する階層マクロ変更リスト情報記憶部85(本発明にいう「マクロ変更リスト蓄積処理部」)と、マクロレイアウト情報(第2レイアウト情報)を記憶するマクロレイアウト情報記憶部86(本発明にいう「第2レイアウト情報蓄積処理部」)と、チップレイアウト情報記憶部86と、これら各部の記憶ないしは情報蓄積処理を管理する情報記憶管理部89とを含んで構成される。なお、記憶部8は、専用のデータベースとして構成してもよい。
(各部の詳細)
次に、各部の構成の詳細について、図1及び図2を参照しつつ説明する。図1に示すように、各種情報入力部11は、LSIの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、などLSIレイアウトを行う際に必要な情報を入力する。そして、入力された情報(LSIの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報等)は、それぞれ、物理ライブラリ情報記憶部81、トップレイアウト情報記憶部82、トップネットリスト情報記憶部83、マクロネットリスト情報記憶部84などに各々記憶される。ここで、「ネット」は、論理設計においては、マクロや論理回路素子間を結ぶ接続関係を示す。
トップ階層変更部21は、前記各種情報入力部11にて入力された配置後のトップレイアウト情報及びトップネットリスト情報において同一種の階層マクロが複数用いられている場合、それら階層マクロを同一の大きさと端子をもち、名称のみが異なる別のマクロに置き換えてトップレイアウト情報とトップネットリスト情報を変更し、変更結果を階層マクロ変更リスト情報記憶部85に格納する。
トップ階層変更部21は、図2に示すように、マクロ名変更部22と、端子名変更部23とを含んで構成される。
マクロ名変更部22は、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更する。
端子名変更部23は、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する。これにより、端子座標算出前に、予めマクロ名及び端子名を変更することで複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロックとみなすことができる。
階層マクロ端子座標決定部31は、図1に示すように、前記トップ階層変更部21で変更されたトップレイアウト情報とトップネットリスト情報を参照し、階層マクロの位置関係と、トップネットリストにおける各階層マクロの接続関係から、階層マクロ端子間の距離が短くなるような位置に端子を配置してトップレイアウト情報を更新する。
さらに、階層マクロ端子座標決定部31は、図2に示すように、中心点結合関数算出部32(本発明にいう「特定点結合関数算出部」)と、交差部座標算出部33と、端子配置処理部34とを含んで構成される。
中心点結合関数算出部32は、少なくとも2つの各マクロブロックの各中心点同士を結ぶ中心点結合関数を算出する。なお、結合関数は、例えば1次関数(直線)等が挙げられるがこれに限定されるものではない。少なくとも2点を通過する関数であれば、3次関数等であってもよい。さらに、各中心点同士でなくても、マクロブロックの境界領域にある特定点同士であってもよい。また、一方のマクロブロックの第1特定点と他方のマクロブロックの第2特定点同士を結合する場合であってもよい。このような場合には、特定点結合関数算出部を構成できる。この特定点結合関数算出部は、少なくとも2つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する。
交差部座標算出部33は、中心点結合関数算出部33にて算出された中心点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する。端子配置処理部34は、これらの結果に基づいて、前記交差部に対してマクロ端子を配置する処理を行う。
トップレイアウト処理部35は、図1に示すように、前記階層マクロ端子座標決定部31で更新されたトップレイアウト情報記憶部82のトップレイアウト情報と、前記トップ階層変更部21で更新されたトップネットリスト情報記憶部83のトップネットリスト情報を参照して階層マクロ間の配線を行い、配線後のトップレイアウト情報を作成する。
階層マクロ端子追加及び端子座標設定処理部41は、図1に示すように、前記トップレイアウト処理部35にて作成されたトップレイアウト情報を参照し、階層マクロ内のレイアウト領域、および階層マクロの外部端子情報を設定する際、階層マクロ変更リスト情報記憶部85の階層マクロ変更リスト情報を参照して、トップ階層変更部21により変更された後の複数種の階層マクロ内の全端子を、変更される前の1種の階層マクロの端子に置き換える形でマクロレイアウト領域に割り当てるよう、マクロネットリスト情報記憶部84の階層マクロネットリストを変更して階層マクロレイアウト情報を作成し、マクロレイアウト情報記憶部86に記憶する。
さらに、階層マクロ端子追加及び端子座標設定処理部41は、図2に示すように、端子座標算出部43aと、全端子配置処理部43bとを含んで構成される。
端子座標算出部43aは、階層マクロ端子座標決定部31にて算出された各前記マクロ端子の各前記第1座標位置に基づいて、マクロブロック内の特定原点に対する第1座標位置の相対位置である第2座標位置を算出する。特定原点は、例えばマクロブロックのいずれかのコーナ部(頂点座標)などが挙げられる。第2座標位置は、同一種類マクロブロックの境界線上に全マクロ端子を割り当てるために算出されるものである。トップレイアウト領域の座標系(トップレイアウト座標系)にて算出されたマクロ端子の第1座標位置を、マクロレイアウト領域の座標系(マクロレイアウト座標系)に座標変換することが好ましい。
全端子配置処理部43bは、一つの前記同一種類マクロブロックの境界領域上であって、前記端子座標算出部43aにて算出された各前記第2座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する。
マクロレイアウト処理部44は、図1に示すように、前記階層マクロ端子追加及び端子座標設定処理部41にて作成されたマクロレイアウト情報とマクロネットリストを参照してマクロ領域内の配置配線処理を行い、マクロレイアウト情報を作成して、マクロレイアウト情報記憶部86に記憶する。
チップレイアウト作成処理部54は、前記トップレイアウト処理部35にて作成されたトップレイアウト情報と、前記マクロレイアウト処理部44で作成されたマクロレイアウト情報とをマージして、チップレイアウト情報を作成する。その後、チップレイアウト作成処理部54は、マクロ間の配線として接続されなかった余分な配線部(線分)を削除してチップレイアウト情報を変更し、チップレイアウト情報記憶部87に記憶する。
さらに、チップレイアウト作成処理部54は、図2に示すように、マージ処理部55と、余分配線削除処理部56と、を含んで構成される。
マージ処理部55は、トップレイアウト処理部(第1のレイアウト処理部)にて配線レイアウト処理されたトップレイアウト領域(第1レイアウト領域)と、マクロレイアウト処理部(第2のレイアウト処理部)にて配線レイアウト処理されたマクロレイアウト領域(第2レイアウト領域)と、をマージさせて、トップレイアウト領域とマクロレイアウト領域よりなるチップレイアウト領域(第3レイアウト領域)を作成する。
余分配線削除処理部56は、前記チップレイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する。
配置配線結果出力処理部61は、図1に示すように、前記チップレイアウト作成処理部54で得られたチップレイアウト情報を出力する。
中央制御部70は、記憶部8、前記各種情報入力部11、トップ階層変更部21、階層マクロ端子座標決定部31、トップレイアウト処理部35、階層マクロ端子追加及び端子座標設定処理部41、マクロレアウト処理部44、チップレイアウト作成処理部54、配置配線結果出力処理部61、その他の各部90による一連の動作をプログラム制御により制御する。中央制御部70は、例えば、各部と協働して動作するオペレーティングシステムなどのプログラムや管理プログラム、他のプログラムと共に実行される実行ファイルであることが好ましい。
(記憶部のデータ構造)
次に、記憶部8の各部の詳細な構成について、図3を参照しつつ説明する。図3は、図1に示すレイアウト設計支援装置1の記憶部8の各部のさらに詳細な構成の一例を示すブロック図である。以下に、「トップレイアウト情報」、「トップネットリスト情報」、「マクロネットリスト情報」、「マクロ変更リスト情報」、「マクロレイアウト情報」、「チップレイアウト情報」の順に説明する。
(トップレイアウト情報)
トップレイアウト情報記憶部82は、図3に示すように、情報入力された直後の状態である各マクロブロックの配置関係(位置関係)を規定して配置した後のトップレイアウト情報82a(第1トップレイアウト情報)<例えば図5の状態>と、マクロ名が変更された名称変更後のトップレイアウト情報82a(第2トップレイウアト情報)<例えば図7の状態>と、算出された第1座標位置にマクロ端子が配置された端子配置後のトップレイアウト情報82c(第3トップレイウアウト情報)<例えば図14の状態>と、マクロブロック間の配線レイアウト処理がなされたマクロ間配線後のトップレイアウト情報82d(第4のトップレイアウト情報)<例えば図15の状態>と、を含んで構成され、この順で遷移していく。
第1トップレイアウト情報から第2トップレイアウト情報へは、マクロ端子の最適配置位置を計算する目的で更新される。複数の同一種類マクロブロックのマクロ名を変更することで、別のマクロブロックとして認識したコンピュータが隣接するマクロブロック同士の位置関係を把握する。最適配置位置の計算後は、マクロ端子が割り当てられて第3トップレイアウト情報となる。マクロブロック間の配線レイアウト処理がなされた後は第4トップレイアウト情報となる。
図5は、各種情報入力部11にて入力され、トップレイアウト情報記憶部82に記憶されるトップレイアウト情報の内容の一例を示している。図5に示すように、LSIチップ上に階層マクロブロックA1〜階層マクロブロックA4、階層マクロブロックB、階層マクロブロックC、階層マクロブロックDが配置されており、同一種類の階層マクロブロックA1〜階層マクロブロックA4は、同じ大きさで配置されている。尚、この段階では各階層マクロブロックの配置位置、および大きさ(フロアプラン)のみが確定している状態で、各階層マクロブロックのマクロ端子位置や各マクロ端子間を結ぶ配線などは確定していない。
図15は、配線レイアウト処理後のトップレイアウト情報(第4トップレイアウト情報)を示す。図15に示すように、マクロ名a1のマクロブロックA1の端子名ta_1のマクロ端子と、マクロ名bのマクロブロックBの端子名tb1のマクロ端子とが配線接続されている。また、マクロ名a2のマクロブロックA2の端子名ta_2のマクロ端子と、マクロ名bのマクロブロックBの端子名tb2のマクロ端子とが配線接続されている。さらに、マクロ名a3のマクロブロックA3の端子名ta_3のマクロ端子と、マクロ名dのマクロブロックDの端子名td2のマクロ端子とが配線接続されている。さらに、マクロ名a4のマクロブロックA4の端子名ta_4のマクロ端子と、マクロ名dのマクロブロックDの端子名td3のマクロ端子とが配線接続されている。さらに、マクロ名cのマクロブロックCの端子名tc1のマクロ端子と、マクロ名dのマクロブロックDの端子名td1のマクロ端子とが配線接続されている。
(トップネットリスト情報)
トップネットリスト情報記憶部83は、図3に示すように、情報入力された直後の状態である各マクロブロックの接続関係を規定した後のトップネットリスト情報83a(第1トップネットリスト情報)<例えば図4の状態>と、同一種類マクロブロックのマクロ名及びマクロ端子の端子名が変更された名称変更後のトップネットリスト情報83a(第2トップネットリスト情報)<例えば図8の状態>と、を含んで構成され、この順で遷移していく。
図4に、各種情報入力部11で入力されたトップネットリスト情報の一例を示す。図4に示すように、トップネットリスト情報においては、第1の階層マクロブロックA1〜A4、第2の階層マクロブロックB、第3の階層マクロブロックC、第4の階層マクロブロックDの7つの階層マクロブロックが存在する。このうち、第1の階層マクロブロックA1〜A4は、同一種類(同一機能)の階層マクロブロック(マクロ種類名:a)が使用されている。第2の階層マクロブロックB、第3の階層マクロブロックC、第4の階層マクロブロックDは、それぞれマクロ種類名b、c、dが使用されている。
階層マクロブロックA1には、マクロ端子taが形成されており、階層マクロブロックA2には、マクロ端子taが形成されており、階層マクロブロックA3には、マクロ端子taが形成されており、階層マクロブロックA4には、マクロ端子taが形成されており、階層マクロブロックBには、マクロ端子tb1及びマクロ端子tb2が形成されており、階層マクロブロックCには、マクロ端子tcが形成されており、階層マクロブロックDには、マクロ端子td1、マクロ端子td2、及びマクロ端子td3が形成されている。
なお、図4において符号ta、tb1、tb2、tc、td1、td2、td3は、階層マクロブロックのマクロ端子名を示している。また、各マクロ端子間の接続関係は、破線で示されている。
(マクロネットリスト情報)
マクロネットリスト情報記憶部84は、図3に示すように、情報入力された直後の状態であって、マクロブロック内での機能素子(例えば論理回路素子など)の接続関係が規定された状態でのマクロネットリスト情報84a(第1マクロネットリスト情報)<例えば図6の状態>と、複数の同一種類マクロブロックの各マクロ端子の端子名が変更されて全端子が割り当てられた状態で内部の機能素子との接続関係が規定された状態での変更後のマクロネットリスト情報84b(第2マクロネットリスト情報)<例えば図16の状態>と、を含んで構成され、この順で遷移していく。
図6は、マクロネットリスト情報記憶部86に記憶されるマクロネットリスト情報の一例を示している。階層マクロブロック内に存在する論理回路素子と、階層マクロブロックのマクロ端子との間の接続関係が破線で図示されている。
(マクロ変更リスト情報)
階層マクロ変更リスト情報記憶部85は、図3に示すように、マクロ変更リスト情報85aを記憶している。
図9は、本実施の形態における階層マクロ変更リスト情報の一例を示している。階層マクロ変更リスト情報は、図9に示すように、マクロ名に関して変更前後の対応関係である変更前マクロ名と変更後マクロ名とを規定している領域を有する。さらに、階層マクロ変更リスト情報は、マクロ端子名に関して変更前後の対応関係である変更前端子名と変更後端子名とを規定している領域を有する。さらに、これらの各領域は、マクロの種類名に応じて対応づけられている。
従って、階層マクロ変更リスト情報は、マクロの種類名A1、A2、A3、A4、・・・に関する情報を記憶する第1領域と、変更前マクロ名a、a、a、a、・・に関する情報を記憶する第2領域と、変更後マクロ名a1、a2、a3、a4、・・・に関する情報を記憶する第3領域と、変更前端子名ta、ta、ta、ta、・・・に関する情報を記憶する第4領域と、変更後端子名ta_1、ta_2、ta_3、ta_4に関する情報を記憶する第5領域と、を含む。
(マクロレイアウト情報)
マクロレイアウト情報記憶部86は、図3に示すように、マクロブロック内での機能素子(例えば論理回路素子など)の数と配置関係が規定された状態でのマクロレイアウト情報86a(第1マクロレイアウト情報)と、通常のマクロブロックにおいては各マクロ端子と特定機能素子間での配線レイアウト処理がなされた状態であり、複数の同一種類マクロブロックにおいては割り当てられた全マクロ端子と特定機能素子との間の配線レイアウト処理がなされた状態での変更後のマクロレイアウト情報86b(第2マクロレイアウト情報)<例えば図18の状態>と、を含んで構成され、この順で遷移していく。
図18は、配線後の各階層マクロブロックのレイアウト図を示している。図18に示すように、異なる種類のマクロブロックb、マクロブロックc、マクロブロックdにおいては、もともと配置されているマクロ端子が配置されている。すなわち、マクロブロックbについては、マクロ端子tb1、tb2が配置されている。マクロブロックcについては、マクロ端子tc1が配置されている。マクロブロックdについては、マクロ端子td1、td2が配置されている。
一方、複数の同一種類マクロブロックを構成していたマクロブロックaについては、異なるとみなされていたマクロブロックa1のマクロ端子ta_1、マクロブロックa2のマクロ端子ta_2、マクロブロックa3のマクロ端子ta_3、マクロブロックa4のマクロ端子ta_4の全端子が配置されている。
しかも、マクロブロックaの内部の論理回路素子からの配線先は、全端子ta_1、ta_2、ta_3、ta_4に向けて接続されている。これによって、トップレイアウト上にて異なるとみなされたマクロブロックを、マクロレイアウト上において共通化することが可能となり、マクロとしての機能を十分果たせることとなる。
第2座標位置の計算などが行われる前の状態にあっては、マクロレイアウト情報は、マクロブロック内部において、マクロ端子と各機能素子とが配線されていない状態で存在する。このため、マクロブロック内部では、配線レイアウト処理(マクロレイアウト処理)がなされる前の状態では、(マクロブロック同士の位置関係という環境条件を無視すれば)マクロ端子と各機能素子と相対位置関係は比較的自由に決定できる状態にあるといえる。従って、このマクロブロックは、通常のマクロブロック(マクロ端子の位置までが固定化され、機能素子とマクロ端子間の配線がなされた状態におけるマクロブロック)とはやや性質が異なるマクロブロックであって、マクロブロックの作成プロセスの中間状態にあるマクロブロックといえよう。
また、同一種類マクロブロックにおいては、全マクロ端子が配置された状態では、特定の機能素子から全端子に向けて配線レイアウト処理がなされている。この状態のマクロブロックも特殊なマクロブロックである。マクロブロックの周囲の環境条件を考慮した上で(マクロ端子の最適配置位置が計算された上で)形成されているから、複数ある全ての同一種類マクロブロックに対して適用できる汎用マクロブロックといえよう。ただし、後述の余分配線を削除する構成が必要である。
(チップレイアウト情報)
チップレイアウト情報記憶部87は、図3に示すように、トップレイアウト情報とマクロレイアウト情報とがマージされた状態でのチップレイアウト情報87a(第1チップレイアウト情報)<例えば図20の状態>と、余分な配線部が削除された状態である削除後のチップレアイウト情報87b(第2チップレイアウト情報)<例えば図21の状態>と、を含んで構成され、この順で遷移していく。
(レイアウト設計支援装置の概略動作)
以上のような構成からなる本実施の形態の集積回路のレイアウト設計支援装置1において、概略次のように動作する。すなわち、図1に示すように、各種情報入力部11は、LSIの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、などLSIレイアウトを行う際に必要な情報を入力する。
トップ階層変更部21は、前記各種情報入力部11にて入力された配置後のトップレイアウト情報およびトップネットリストにおいて同一種の階層マクロブロックが複数用いられている場合、それら階層マクロブロックを同一の大きさと端子をもち、名称のみが異なる別のマクロブロックに置き換えてトップレイアウト情報(第1トップレイアウト情報)とトップネットリスト情報(第1トップネットリスト情報)を各々変更して(第2)トップレイアウト情報、(第2)トップネットリスト情報とする。さらに、変更結果を階層マクロ変更リスト情報として階層マクロ変更リスト情報記憶部85に格納する。
具体的には、図7および図8に示すように、階層マクロブロックA1〜階層マクロブロックA4が同一のマクロ種類aとして使用されているので、これをa1、a2、a3、a4として別のマクロ名に変更する。また、階層マクロa上の端子taについてもそれぞれta_1、ta_2、ta_3、ta_4とし、別の端子名に変更する。変更前後のマクロ名、マクロ種類名、端子名の対応をマクロ変更リスト情報(図9)として階層マクロ変更リスト情報記憶部85に登録する。
階層マクロ端子座標決定部31は、前記トップ階層変更部21で変更されたトップレイアウト情報(第2トップレイアウト情報)とトップネットリスト情報(第2トップネットリスト情報)を参照し、各階層マクロブロックの位置関係と、トップネットリスト情報における各階層マクロブロックの接続関係と、に基づいて、各階層マクロブロックの各マクロ端子間の距離が短くなるような位置に、マクロ端子を配置してトップレイアウト情報(第2トップレイアウト情報)を更新して(第3)トップレイアウト情報とし、トップレイアウト情報記憶部82に記憶する。
端子座標の決定においては、トップレイアウト情報記憶部82のトップレイアウト情報で設定された階層マクロブロックの位置関係と、トップネットリスト情報における各階層マクロブロックの接続関係とを参照し、マクロ端子間の距離が短くなるような位置に端子を配置する。
具体的なマクロ端子の配置位置の算出方法としては、例えば以下に示す手法が挙げられる。中心点結合関数算出部32により、図13で示すように、接続関係のある階層マクロブロック同士の各中心点を結ぶ結合線(結合関数)を引く。次に、交差部座標算出部33は、その結合線とマクロブロックの境界線(境界領域)が交差する点、もしくはその近傍(すなわち交差部)を算出する。端子配置処理部34は、交差部にてマクロ端子を配置する。
尚、従来は、トップ階層変更部21による階層マクロブロックのマクロ名及び端子名の変更は行われないので、同一階層マクロの端子座標は、図32で示されるように全て同一の位置に配置され、最終的に得られるチップレイアウトは図33のようになり、トップレイアウト領域で一部マクロ間配線が長くなるなどの問題が生じていた。これに対して、本実施の形態では、先ず、マクロブロックの内部構成において、マクロ端子と機能素子との配線レイアウト処理が行われていないマクロブロック作成の中間状態にあるマクロブロックを使用する。そして、複数の同一種類マクロブロックに対して各々マクロ名を割り当てた状態形成する。これによって、予めマクロ端子を所望の位置に配置できる状態を作り上げておく。そして、マクロ端子の最適配置位置を前記の計算によって求め、マクロ端子を配置する。これによりマクロブロック間の配線長を短くできる。しかも、LSIに配置される複数の各マクロブロックの全てについて計算を行うことができるので、複数の全てのマクロブロック間での配線長を短く形成でき、LSI全体での動作速度の高速化に大きく寄与できる。
トップレイアウト処理部35は、前記マクロ端子座標決定部31により更新されたトップレイアウト情報(第3トップレイアウト情報)と、前記トップ階層変更部21により更新されたトップネットリスト情報(第2トップネットリスト情報)とを参照して、階層マクロブロック間の配線レイアウト処理を行い、トップレイアウト情報(第4トップレイアウト情報)を作成し、トップレイアウト情報記憶部82に記憶する。
階層マクロ端子追加及び端子座標設定処理部41は、前記トップレイアウト処理部35にて作成されたトップレイアウト情報(第4トップレイアウト情報)を参照し、階層マクロブロック内のレイアウト領域(マクロレイアウト領域)、および階層マクロブロックの外部端子であるマクロ端子情報を設定する際、階層マクロ変更リスト情報記憶部85のマクロ変更リスト情報を参照して、トップ階層変更部21により変更される前の階層マクロの端子を、変更後の階層マクロ内の全端子に置き換える形で、マクロレイアウト領域に割り当てるよう、階層マクロネットリストを変更してマクロネットリスト情報記憶部84に記憶するとともに、階層マクロレイアウト情報を作成しマクロレイアウト情報記憶部86に記憶する。
より詳細には、マクロ変更リスト情報(図9)を参照し、トップ階層変更部11における変更前の階層マクロブロックaのマクロ端子taを変更後の各階層マクロブロックa1〜階層マクロブロックa4の全端子ta_1〜ta_4に置き換えてマクロネットリストを変更する(図16)。置き換えにおいては、変更前におけるマクロ端子taに接続される内部の論理回路素子との接続関係を保持した形で置き換える。マクロレイアウト情報の作成においては、まずトップレイアウト情報を参照し、各階層マクロの内部領域をそのまま切り取る形でマクロレイアウト領域として割り当てる。
次に、階層マクロブロックの各マクロ端子について、トップレイアウトにおける階層マクロブロックとの位置関係を保持した形でマクロレイアウト領域上に割り当てる(図17)。その際、トップ階層変更部11において変更された階層マクロブロックa1、階層マクロブロックa2、階層マクロブロックa3、階層マクロブロックa4の各マクロ端子ta_1、マクロ端子ta_2、マクロ端子ta_3、マクロ端子ta_4をそのまま階層マクロブロックaの端子座標として4箇所に割り当てる。
次に、マクロレイアウト処理部44は、前記階層マクロ端子追加および端子座標設定処理部41にて作成されたマクロレイアウト情報とマクロネットリスト情報を参照して、マクロブロック領域内の配置配線処理を行い、マクロレイアウト情報を作成する。
チップレイアウト作成処理部54は、前記トップレイアウト処理部35にて作成されたトップレイアウト情報と、前記マクロレイアウト処理部44にて作成されたマクロレイアウト情報とをマージしてチップレイアウト情報を作成する。その後、チップレイアウト作成処理部54は、マクロブロック間の配線として接続されなかった余分な配線部(線分)を削除してチップレイアウト情報を変更する。
トップレイアウト上でマクロ種類名が変更された階層マクロブロックについては、マクロ変更リストを参照して、変更後の階層マクロ種類名とマクロ端子名を、変更前のマクロ種類名と端子名に変更してマクロレイアウトをマージする。ここで、「マージ」とは、複数のファイルやデータあるいはオブジェクトなどを、決められたルールに従って一つに統合、合わせることをいう。
図19を用いて説明すると、本実施の形態では階層マクロブロックA1〜階層マクロブロックA4におけるマクロ種類名a1〜a4のマクロについて、変更前の階層マクロブロックaのマクロレイアウトがトップレイアウトとマージされる。ここで、各マクロ端子に繋がる配線はレイアウトのマージによりトップレイアウトの配線と接続される。また、前記階層マクロ端子追加および端子座標設定手段105で端子が複製されたものについては、端子のどれか1つのみで配線が接続され、残りの端子に接続する配線については論理回路素子に接続が完結せず浮いた状態(図20)となるので、次にこれら余分な配線を削除する。
具体的には、余分配線削除処理部56は、チップレイアウト上の配線について、配線を構成する各線分の端点が、他の線分や論理回路素子に繋がらないものを見つけ、それら線分がなくなるまで削除する。削除後のチップレイアウトを図21に示す。
最後に、配置配線結果出力処理部61は、前記チップレイアウト作成処理部54で得られたチップレイアウト情報を出力する。
以上のように、階層レイアウト手法を採用するLSIレイアウトにおいて、同一種の階層マクロが複数使用される場合、それらを別々のマクロとみなしてマクロの端子座標を決定しトップレイアウト(マクロ間の配線処理)を行う。マクロレイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロの配線処理を1回のみ行う。前記トップレイアウトとマクロレイアウトをマージした後、マクロ間の接続が完結しない余分な配線を削除する。これらによりマクロレイアウトの同一性を保ちつつマクロ間の配線引き回しをなくし、LSI全体の配線性を向上させ配線遅延時間の悪化を抑制する。
(マクロ名変更及び端子名変更について)
次に、本実施の形態のマクロ名変更及び端子名変更は、単に変更するのみではなく、各レイアウト処理(トップレイアウト処理、マクロレイアウト処理、チップレアイウト処理)に応じて、あるいはレイアウト情報とネットリスト情報に応じて使い分けている点に特徴を有するから、以下にはこの点について詳述する。
図10には、マクロ名変更、端子名変更をどの時点(トップレイアウト、マクロレイアウト、チップレイアウト)で行うかについて説明をするための説明図が示してある。図10に示すように、複数の同一種類マクロブロックを形成する場合、情報入力直後の段階にあっては、複数の同一種類マクロブロック(或いは同一機能マクロブロック)のマクロ名は、共通マクロ名を使用し、同一種類マクロブロックのマクロ端子の端子名は、共通端子名を使用する。
そして、トップレイアウト関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、異なるマクロブロックとみなされるよう、個別マクロ名を使用し、異なるとみなされた各々の同一種類マクロブロックの各マクロ端子の端子名は、個別端子名を使用する。
より詳細には、トップレイアウト関連処理の前処理ともいうべき、トップ階層変更の段階で、マクロ名が共通マクロ名より個別マクロ名に変更され、マクロ端子名が共通端子名より個別端子名に変更される。なお、マクロ名及び端子名の変更は、トップレイアウト情報およびトップネットリストの対応箇所についてそれぞれ行う必要がある。このように変更されることで、端子座標位置を個別に計算することができるようになる。
また、トップレイアウト処理の段階においても、同様に個別マクロ名、個別端子名が使用される。各マクロ端子間を配線接続する配線レイアウト処理を行うためである。
次に、マクロレイアウトの関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、共通マクロ名を使用し、異なるとみなされた各々の同一種類マクロブロックの各マクロ端子の端子名は、個別端子名を使用する。
より詳細には、マクロレイアウト関連処理の前処理ともいうべき、マクロ端子追加の段階で、1つの同一種類マクロブロック(中間生成マクロブロック:マクロネットリスト情報及びマクロレイアウト情報でのマクロブロックの総称)は共通マクロ名のままの状態で、異なるとみなされた各々の同一種類マクロブロックの各個別端子が全て配置される(図17)。なお、共有マクロ名及び個別端子名での使用は、マクロレイアウト情報およびマクロネットリスト情報の対応箇所についてそれぞれ行われる。このように変更されることで、同一種類マクロブロック内の配線レイアウト処理(マクロレイアウト)を1回行うことで、異なるとみなされた全ての各同一種類マクロブロックに適用可能となる。
また、マクロレイアウト処理の段階においても、同様に共通マクロ名、個別端子名が使用される。機能素子と全マクロ端子とを配線接続する配線レイアウト処理を行うためである。
さらに、チップレイアウトの関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、共通マクロ名を使用し、各マクロ端子の端子名は、共通端子名を使用する。チップレイアウトの段階では、元に戻される。
(マクロ名・端子名変更に関連する制御系)
次に、マクロ名・端子名変更に関連する制御系について、図11を参照しつつ説明する。図11は、図1のレイアウト設計支援装置において、マクロ名変更、端子名変更に関係する部分をピックアップし、制御に関連する部分を誇張して表現したブロック図である。
この制御系では、図11に示すように、トップ階層変更部21、階層マクロ端子追加及び端子座標設定処理部41、チップレイアウト前処理部51、トップレイアウト処理部35、マクロレイアウト処理部44、チップレイアウト処理部54、及びこれらの各部を制御するためのその他の各部90、を含んで構成される
トップ階層変更部21のマクロ名変更部22は、トップレイアウト情報の中の同一種類マクロブロックのマクロ名に対して、共通マクロ名を個別マクロ名に変更する処理を行うトップレイアウト情報マクロ名変更部22aと、トップネットリスト情報の中の同一種類マクロブロックのマクロ名に対して、共通マクロ名を個別マクロ名に変更する処理を行うトップネットリスト情報マクロ名変更部22bと、を有する。
トップ階層変更部21の端子名変更部23は、トップレイアウト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うトップレイアウト情報端子名変更部23aと、トップネットリスト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うトップネットリスト情報端子名変更部23bと、を有する。
階層マクロ端子追加及び端子座標設定処理部41の端子名変更部42は、マクロレイアウト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うマクロレイアウト情報端子名変更部42aと、マクロネットリスト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うマクロネットリスト情報端子名変更部42bと、を有する。
チップレイアウト前処理部51は、マクロ名を再変更するマクロ名再変更部52と、端子名再変更部53とを含んで構成される。マクロ名再変更部52は、トップレイアウト情報マクロ名再変更部52aと、マクロレイアウト情報マクロ名再変更部52bとを含んで構成される。端子名再変更部53は、トップレイアウト情報端子名変更部53aと、マクロレイアウト情報端子名再変更部53bとを含んで構成される。
その他の各部90は、トップ階層変更部21・チップレイアウト前処理部51の各マクロ名の変更に関連する各部を制御するマクロ名制御部91と、トップ階層変更部21・階層マクロ端子追加及び端子座標設定処理部41・チップレイアウト前処理部51の各端子名の変更に関連する各部を制御する端子名制御部92と、名称変更全体の制御を司る同一機能マクロ制御部93と、各レイアウト処理と名称変更とを統括的に制御する階層制御部94と、を含んで構成される。
同一機能マクロ制御部93は、同一種類マクロブロックについてのマクロ名および端子名の制御を行う。階層制御部94は、トップレイアウト処理部35、マクロレイアウト処理部44、チップレイアウト処理部54を必要に応じて切替制御し、各処理の期間を設定制御できる。また、同一機能マクロ制御部93ではサポートし得ない、他の異なる種類のマクロブロックの個別マクロ名、個別端子名の変更がなされないよう管理する機能を有する。
上記のような構成を有する制御系において、図10及び図11に示すように、複数の同一種類マクロブロック(複数の同一機能マクロ)に対しては、マクロ名制御部91は、情報入力直後の期間にあっては、共通マクロ名の状態を保持する制御を行う。次に、トップレイアウト処理部35にて処理されるトップレイアウト処理を含むトップレイアウト関連処理(第1の期間中)の期間には、トップ階層変更部21のマクロ名変更部22により共通マクロ名を個別マクロ名に変更して、個別マクロ名の状態を保持する制御を行う。特に、トップレイアウト関連処理におけるトップレイアウト処理の前処理ともいうべき、トップ階層変更の際に変更される。そして、以降の端子座標決定やトップレイアウト処理においては、個別マクロ名の状態を保持するように制御する。
共通マクロ名を個別マクロ名に変更する際には、トップレイアウト情報の中のマクロ名とトップネットリスト情報の中のマクロ名のそれぞれについて変更する必要がある。このため、情報入力直後の状態からトップレイアウト関連処理の状態に移行すると、マクロ名制御部91は、マクロ名変更部22のトップレイアウト情報マクロ名変更部22aと、トップネットリスト情報マクロ名変更部22bと、のそれぞれについて変更指示情報を与える。
ここで、マクロ名制御部91のトップレイアウトマクロ名制御部91aは、マクロ名変更部22のトップレイアウト情報マクロ名変更部22aに第1変更指示情報を与え、トップネットリストマクロ名制御部91bは、マクロ名変更部22のトップネットリスト情報マクロ名変更部22bに第2変更指示情報を与える。
第1変更指示情報に基づき、トップレイアウト情報マクロ名変更部22aは、トップレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、共通マクロ名を個別マクロ名に変更する処理を行う。また、第2変更指示情報に基づき、トップネットリスト情報マクロ名変更部22bは、トップネットリスト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、共通マクロ名を個別マクロ名に変更する処理を行う。これにより、コンピュータは、トップレイアウト及びトップネットリストにおいて、複数の同一種類マクロブロックが異なる種類のマクロブロックとみなすようになる。
さらに、マクロ名制御部91は、マクロレイアウト処理部44にて処理されるマクロレイアウト処理を含むマクロレイアウト関連処理(第2の期間中)の期間、共通マクロ名を保持するように制御する。
また、チップレイアウト処理部54にて処理されるチップレイアウト処理を含むチップレイアウト関連処理(第3の期間中)の期間、には、共通マクロ名を保持するように制御する。
ここで、チップレイアウト前処理部51のマクロ名再変更部52は、トップレイアウト情報のマクロ名を個別マクロ名から共有マクロ名に戻す処理を行うとともに、マクロレイアウト情報のマクロ名を個別マクロ名から共有マクロ名に戻す処理を行う。前者の処理は、マクロ名制御部91のトップレイアウトマクロ名制御部91aが指示をトップレイアウト情報マクロ名再変更部52aに出すことにより行われる。後者の処理は、マクロ名制御部91が指示をマクロレイアウト情報マクロ名再変更部52bに出すことにより行われることとなる。
個別マクロ名を共通マクロ名に再変更して元に戻す際には、トップレイアウト情報の中のマクロ名とマクロレイアウト情報の中のマクロ名のそれぞれについて再変更する必要がある。このため、チップレイアウト関連処理においては、マクロ名制御部91は、マクロ名再変更部52のトップレイアウト情報マクロ名再変更部52aと、マクロレイアウト情報端子名再変更部53bとのそれぞれについて変更指示情報を与える。
ここで、マクロ名制御部91のトップレイアウトマクロ名制御部91aは、マクロ名再変更部52のトップレイアウト情報マクロ名再変更部52aに第1変更指示情報を与え、マクロ名制御部91の図示しないマクロレイアウトマクロ名制御部は、マクロ名再変更部52のマクロレイアウト情報マクロ名再変更部52bに第2変更指示情報を与える。
第1変更指示情報に基づき、トップレイアウト情報マクロ名再変更部52aは、トップレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、個別マクロ名を共通マクロ名に再変更して元に戻す処理を行う。また、第2変更指示情報に基づき、マクロレイアウト情報マクロ名再変更部53bは、マクロレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、個別マクロ名を共通マクロ名に再変更して元に戻す処理を行う。これにより、コンピュータは、トップレイアウト及びマクロレイアウトにおいても、複数の同一種類マクロブロックのマクロブロックを同一とみなすようになる。
同一種類マクロブロックに関するマクロ名制御は、同一機能マクロ制御部93が制御を司る。なお、同一種類マクロブロック以外の他の異なる種類のマクロブロックについては、階層制御部94からの指示にてマクロ名制御部91は、全工程にてマクロ名を個別マクロ名とするように制御する。
一方、端子名制御部92は、複数の同一種類マクロブロック(複数の同一機能マクロ)に対しては、情報入力直後の期間にあっては、共通端子名の状態を保持する制御を行う。次に、トップレイアウト処理部35にて処理されるトップレイアウト処理を含むトップレイアウト関連処理(第1の期間中)の期間には、トップ階層変更部21の端子名変更部23によりマクロ端子名を当初の共通端子名より個別端子名に変更して、個別端子名の状態を保持する制御を行う。特に、トップレイアウト関連処理におけるトップレイアウト処理の前処理ともいうべき、トップ階層変更の際に変更される。そして、以降の端子座標決定やトップレイアウト処理においては、個別端子名の状態を保持するように制御する。
共通端子名を個別端子名に変更する際には、トップレイアウト情報の中の端子名とトップネットリスト情報の中の端子名のそれぞれについて変更する必要がある。このため、情報入力直後の状態からトップレイアウト関連処理の状態に移行すると、端子名制御部92は、端子名変更部23のトップレイアウト情報端子名変更部23aと、トップネットリスト情報端子名変更部23bとのそれぞれについて変更指示情報を与える。
ここで、端子名制御部92のトップレイアウト端子名制御部92aは、端子名変更部23のトップレイアウト情報端子名変更部23aに第1変更指示情報を与え、トップネットリスト端子名制御部92bは、端子名変更部23のトップネットリスト情報端子名変更部23bに第2変更指示情報を与える。
第1変更指示情報に基づき、トップレイアウト情報端子名変更部23aは、トップレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。また、第2変更指示情報に基づき、トップネットリスト情報端子名変更部23bは、トップネットリスト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。これにより、コンピュータは、トップレイアウト及びトップネットリストにおいて、複数の同一種類マクロブロックのマクロ端子が異なる種類のマクロブロックのマクロ端子とみなすようになる。
次に、端子名制御部92は、マクロレイアウト処理部44にて処理されるマクロレイアウト処理を含むマクロレイアウト関連処理(第2の期間中)の期間には、階層マクロ端子追加及び端子座標設定処理部41の端子名変更部42によりマクロ端子名を当初の共通端子名より個別端子名に変更して、個別端子名の状態を保持する制御を行う。特に、マクロレイアウト関連処理におけるマクロレイアウト処理の前処理ともいうべき、マクロ端子追加の際に変更される。そして、以降の端子座標設定やマクロレイアウト処理においては、個別端子名の状態を保持するように制御する。
共通端子名を個別端子名に変更する際には、マクロレイアウト情報の中の端子名とマクロネットリスト情報の中の端子名のそれぞれについて変更する必要がある。このため、トップレイアウト関連処理の状態からマクロレイアウト関連処理の状態に移行すると、端子名制御部92は、端子名変更部42のマクロレイアウト情報端子名変更部42aと、マクロネットリスト情報端子名変更部42bとのそれぞれについて変更指示情報を与える。
ここで、端子名制御部92のマクロレイアウト端子名制御部92cは、端子名変更部42のマクロレイアウト情報端子名変更部42aに第1変更指示情報を与え、マクロネットリスト端子名制御部92dは、端子名変更部42のマクロネットリスト情報端子名変更部42bに第2変更指示情報を与える。
第1変更指示情報に基づき、マクロレイアウト情報端子名変更部42aは、マクロレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。また、第2変更指示情報に基づき、マクロネットリスト情報端子名変更部42bは、マクロネットリスト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。これにより、コンピュータは、マクロレイアウト及びマクロネットリストにおいても、複数の同一種類マクロブロックのマクロ端子が異なる種類のマクロブロックのマクロ端子とみなすようになる。
次に、端子名制御部92は、チップレイアウト処理部54にて処理されるチップレイアウト処理を含むチップレイアウト関連処理(第3の期間中)の期間には、チップレイアウト前処理部51の端子名再変更部53によりマクロ端子名を変更された個別端子名より共通端子名に再変更して元に戻し、共通端子名の状態を保持する制御を行う。特に、チップレイアウト関連処理におけるチップレイアウト処理の前処理の際に変更される。そして、以降のマージ処理や削除処理を含むチップレイアウト処理においては、共通端子名の状態を保持するように制御する。
個別端子名を共通端子名に再変更して元に戻す際には、トップレイアウト情報の中の端子名とマクロレイアウト情報の中の端子名のそれぞれについて再変更する必要がある。このため、マクロレイアウト関連処理の状態からチップレイアウト関連処理の状態に移行すると、端子名制御部92は、端子名再変更部53のトップレイアウト情報端子名再変更部53aと、マクロレイアウト情報端子名再変更部53bとのそれぞれについて変更指示情報を与える。
ここで、端子名制御部92のトップレイアウト端子名制御部92aは、端子名再変更部53のトップレイアウト情報端子名再変更部53aに第1変更指示情報を与え、マクロレイアウト端子名制御部92cは、端子名再変更部53のマクロレイアウト情報端子名再変更部53bに第2変更指示情報を与える。
第1変更指示情報に基づき、トップレイアウト情報端子名再変更部53aは、トップレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、個別端子名を共通端子名に再変更して元に戻す処理を行う。また、第2変更指示情報に基づき、マクロレイアウト情報端子名再変更部53bは、マクロレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、個別端子名を共通端子名に再変更して元に戻す処理を行う。これにより、コンピュータは、トップレイアウト及びマクロレイアウトにおいても、複数の同一種類マクロブロックのマクロ端子を同一とみなすようになる。
同一種類マクロブロックに関する端子名制御は、同一機能マクロ制御部93が制御を司る。なお、同一種類マクロブロック以外の他の異なる種類のマクロブロックについては、階層制御部94からの指示にて端子名制御部92は、全工程にてマクロ名を個別マクロ名とするように制御する。
以上まとめると、マクロ名制御部91は、トップレイアウト領域(マクロブロック間:第1のレイアウト領域)に関連する処理(トップレイアウト前処理及びトップレイアウト処理)を行う第1の期間、マクロレイアウト領域(マクロブロック内:第2のレイアウト領域)に関連する処理(マクロレイアウト前処理及びマクロレイアウト処理)を行う第2の期間、チップレイアウト領域(マクロレイアウト領域とトップレイアウト領域とをマージした領域:第3のレイアウト領域)に関連する処理(チップレイアウト前処理及びチップレイアウト処理)を行う第3の期間のうち、前記第1の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理(トップレイアウト前処理、トップレイアウト処理)を行い、前記第2の期間及び前記第3の期間中には、当初の共通マクロ名を用いて各処理(マクロレイアウト前処理、マクロレイアウト処理、チップレイアウト前処理、チップレイアウト処理)を行うように制御する。
端子名制御部92は、前記第1の期間及び前記第2の期間中には、前記端子名変更部23にて変更された個別端子名を用いて各処理(トップレイアウト前処理、トップレイアウト処理、マクロレイアウト前処理、マクロレイアウト処理)を行い、前記第3の期間中には、当初の共通端子名を用いて処理(チップレイアウト前処理、チップレイアウト処理)を行うように制御する。
(端子位置算出関連の制御系)
次に、本実施の形態の端子位置計算は、各レイアウト処理(トップレイアウト処理、マクロレイアウト処理)に応じて各々計算する必要がある点に特徴を有するから、以下にはこの点について詳述する。端子位置算出関連の制御系について、図12を参照しつつ説明する。図12は、図1のレイアウト設計支援装置において、マクロ端子位置の計算に関係する部分をピックアップし、制御に関連する部分を誇張して表現したブロック図である。
この制御系では、図12に示すように、階層マクロ端子座標決定部31、階層マクロ端子追加及び端子座標設定処理部41、トップレイアウト情報記憶部82、トップネットリスト情報記憶部83、マクロレイアウト情報記憶部86、マクロネットリスト情報記憶部84、を含んで構成される。
階層マクロ端子追加及び端子座標設定処理部41は、マクロレイアウト端子位置算出部43a―1と、マクロネットリスト端子位置算出部43a―2と、マクロレイアウト端子追加処理部43b―1と、マクロネットリスト端子追加処理部43b―2と、を含んで構成される。
なお、階層マクロ端子追加及び端子座標設定処理部41には、マクロ端子の配置位置を求めるやり方と同様に、機能素子(例えば論理素子)とマクロ端子間の配線接続を行うに際し、機能素子ブロックの中心点とマクロ端子とを結ぶ素子端子結合関数が機能素子ブロックの境界線と交差する交差部の座標位置を、機能素子からマクロ端子に向けた配線の基端とするように決定する配線基端位置決定部(不図示)を備えてもよい。或いは、機能素子とマクロ端子との配線長を調査する配線長調査部、機能素子のタイプを識別する機能素子識別部、機能素子を再配置する機能素子再配置部、を備えていてもよい。
上述のような構成からなる端子位置算出関連の制御系において、図12に示すように、トップレイアウト処理において、階層マクロ端子座標算出部31が第1の端子座標の算出を行い、階層マクロ端子追加及び端子座標設定処理部41が第2の端子座標の算出および全端子の配置を行う。
より詳細には、階層マクロ端子座標決定部31の中心点結合関数算出部32は、トップレイアウト情報記憶部82からのトップレイアウト情報(各マクロブロックの位置関係情報)と、トップネットリスト情報記憶部83からのトップネットリスト情報(各マクロブロックの接続関係情報)と、に基づいて、接続関係にある少なくとも2つの各マクロブロックのうち、一方のマクロブロックの第1中心座標と、他方のマクロブロックの第2中心座標を算出し(各中心座標算出機能)、第1中心座標と第2中心座標を結ぶ結合関数(例えば直線などの1次関数)を算出する。
さらに、階層マクロ端子座標決定部31の交差部座標算出部33は、相対向する2つのマクロブロックのうち、一方のマクロブロックの対向辺(境界線)と前記結合関数との第1交点座標を算出する。さらに、交差部座標算出部33は、他方のマクロブロックの対向辺(境界線)と前記結合関数との第2交点座標を算出する。
そして、階層マクロ端子座標決定部31の端子配置処理部34は、第1交点座標を一方のマクロブロックのマクロ端子として決定し、一方のマクロブロックのマクロ端子の配置を行う。また、端子配置処理部34は、第2交点座標を他方のマクロブロックのマクロ端子として決定し、他方のマクロブロックのマクロ端子の配置を行う。マクロ端子が配置された後のトップレイアウト情報は、トップレイアウト情報記憶部82に蓄積処理される。ここで、「第1交点座標」と「第2交点座標」とで、本発明にいう「最適座標位置」の一例を構成できる。また、「第1交点座標」と「第2交点座標」とで、本発明にいう「第1座標位置」の一例を構成できる。
次に、階層マクロ端子追加及び端子座標設定処理部41のマクロレイアウト端子位置算出部43a―1は、トップレイアウト情報から複数の同一種類マクロブロックに関する情報(各マクロブロックに対する端子座標等)を取得し(端子座標取得機能)、一つの同一種類マクロブロックについて、マクロ端子が、同一種類マクロブロックの一つの頂点から如何なる位置にあるかを算出する処理を行う(相対位置算出機能)。ここにおいて、トップレイアウト座標系における端子座標を、マクロレイアウト座標系における端子座標に変換する処理を行う(座標変換機能)。これによって、座標位置が算出される。算出された座標位置は、本発明にいう「第2座標位置」の一例を構成できる。
さらに、マクロレイアウト端子追加処理部43b−1は、算出された端子座標(マクロレイアウト座標系)をもとに、マクロレイアウト情報の中におけるマクロブロックに対して、全端子の配置処理を行う。
以上の各処理は、マクロレイアウト情報に対して行ったが、マクロネットリスト情報についても同様に、マクロネットリスト端子位置算出部43a―2、マクロネットリスト端子追加部43b−2が各々処理を行う。
以上のような端子位置算出関連の制御系によれば、マクロ端子の最適座標位置は、各マクロブロック間の中心点を結ぶ結合線と、マクロブロックの境界線との交点(交差部)によって算出されるので、各マクロブロック同士の各マクロ端子間距離を、短小にできるので、マクロブロック間に配線される配線長を短く形成できる。このため、マクロブロックの配置関係(位置関係)が如何なる配置であったとしても、迂回配線を防止して、配線長の短い配線を形成できる。
第2に、変更前の端子を変更後の全端子に置き換える処理によれば、異なる種類とみなされた各同一種類マクロブロックの各マクロ端子の全端子を、1つの同一種類マクロブロックの境界領域に割り当てることによって、マクロレイアウト処理を、異なる種類とみなされた各同一種類マクロブロックについて、1回で済ませることができる。
(処理手順について)
次に、上述のような構成を有するレイアウト設計支援装置における各種の処理手順について、図22乃至図25を参照しつつ説明する。
(全体処理)
先ず、全体処理について、図22のフローチャートを参照して説明する。図22は、図1のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。先ず、各種情報を入力する処理が行われる(ステップS101)<各種情報入力工程ないしは各種情報入力処理>。ここにおいて、入力される情報としては、物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報などが挙げられる。
次に、同一種類マクロブロックが複数あるか否かを探し出し、複数ある場合には、対応する同一種類マクロブロックがどのマクロブロックであるのかを抽出する処理を行う(ステップS102)<同一種類マクロブロック抽出工程ないしは同一種類マクロブロック抽出処理>。ここで、上述した図の例では、複数の同一種類マクロブロックは、A1〜A4の1タイプのみの場合を例示しているが、複数タイプ(例えばF1〜F4の第1タイプ、G1〜G7の第2タイプ、H1〜H3の第3タイプなど)を有する場合に、各々について抽出し、以下の示す各処理を各タイプで同時に行ったとしても勿論よい。
続いて、ステップS102において、抽出された複数の同一種類マクロブロック(A1〜A4)について、そのマクロ名を共通マクロ名(a)から個別マクロ名(a1〜a4)に変更するために、個別マクロ名を生成する処理を行う(ステップS103)<個別マクロ名生成工程ないしは個別マクロ生成処理>。
さらに、抽出された複数の同一種類マクロブロック(A1〜A4)について、そのマクロ端子名を共通端子名(ta)から個別端子名(ta_1〜ta_4)に変更するために、個別端子名を生成する処理を行う(ステップS104)<個別端子名生成工程ないしは個別端子名生成処理>。
以上のS103、S104にて各々生成された個別マクロ名、個別端子名に基づいて、トップレイアウト情報の中の同一種類マクロブロックの共通マクロ名を個別マクロ名に変更するとともに、前記同一種類マクロブロックの共通端子名を個別端子名に変更する処理を行う(ステップS105)<トップレイアウト情報マクロ名変更工程・トップレイアウト情報端子名変更工程ないしはトップレイアウト情報マクロ名変更処理・トップレイアウト情報端子名変更処理>。
さらに、S103、S104にて各々生成された個別マクロ名、個別端子名に基づいて、トップネットリスト情報の中の同一種類マクロブロックの共通マクロ名を個別マクロ名に変更するとともに、前記同一種類マクロブロックの共通端子名を個別端子名に変更する処理を行う(ステップS106)<トップネットリスト情報変更工程ないしはトップネットリスト情報変更処理>。また、マクロ名及び端子名のそれぞれについて、変更前後の対応関係をマクロ変更リストとして登録する処理を行う(ステップS107)<マクロ変更リスト登録処理>。以上のステップS102〜S107により、本発明にいう「マクロ名変更工程」及び「端子名変更工程」を構成できる。
次に、マクロ名及び端子名が変更されると、トップレイアウト領域におけるマクロ端子の最適座標位置を算出する処理が行われる(ステップS108)<トップレイアウト最適座標位置算出工程ないしはトップレイアウト最適座標位置算出処理>。
マクロ端子が配置されるべき最適座標位置が計算されると、以前のトップレイアウト情報を、対応する位置にマクロ端子を配置させた配置後のトップレイアウト情報に、更新する処理を行う(ステップS109)<第1トップレイアウト情報更新工程ないしは第1トップレイアウト情報更新処理>。以上のステップS102〜S109により、本発明にいう「第1の端子座標算出処理工程」を構成できる。
続いて、各マクロブロック間の配線レイアウト処理を行う(ステップS111)<トップレイアウト配線工程ないしはトップレイアウト配線処理>。ここにおいて、少なくとも2つの各マクロブロックのうち、一方のマクロブロックの一方のマクロ端子と、他方のマクロブロックの他方のマクロ端子とが配線接続される。
そして、マクロ端子配置後のトップレイアウト情報は、配線接続がなされた後のトップレイアウト情報に更新される処理を行う(ステップS112)<第2トップレイアウト情報更新工程ないしは第2トップレイアウト情報更新処理>。以上のステップS111〜S112により、本発明にいう「第1レイアウト処理工程」を構成できる。
次に、端子名を変更する前のマクロ端子を、端子名変更後の複数の全マクロ端子に置き換える(図16)処理を行う(ステップS121)<全マクロ端子配置工程ないしは全マクロ端子配置処理>。置き換え前のマクロネットリスト情報を、全端子に置き換え後のマクロネットリスト情報に、更新する処理を行う(ステップS122)<マクロネットリスト情報更新工程ないしはマクロネットリスト情報更新処理>。続いて、全マクロ端子に置き換えた場合のマクロレイアウト情報を作成する処理を行う(ステップS123)<マクロレイアウト作成工程ないしはマクロレイアウト作成処理>。以上のステップS121〜S123により、本発明にいう「第2の端子座標算出処理工程」を構成できる。
さらに、マクロブロック内において、配線レイアウト処理を行う(ステップS124)<マクロレイアウト配線工程ないしはマクロレイアウト配線処理>。ここにおいて、同一種類マクロブロックにおいては、複数の同一種類マクロブロックにおける各個別端子を、一つの同一種類マクロブロックの境界線上に全て配置した状態で、当該同一種類マクロブロック内の機能素子から全端子に対して配線接続を行う。そして、以前のマクロレイアウト情報を、配線レイアウト処理がなされた後のマクロレイアウト情報に更新する処理を行う(ステップS125)<マクロレイアウト情報更新工程ないしはマクロレイアウト情報更新処理>。以上のステップS124〜S125により、本発明にいう「第2レイアウト処理工程」を構成できる。
次いで、変更後のマクロ名・端子名を、変更前のマクロ名・端子名に変更する処理を行う(ステップS131)<マクロ名再変更工程・端子名再変更工程ないしはマクロ名再変更処理・端子名再変更処理>。さらに、マクロレイアウトとトップレイアウトとをマージする処理を行う(ステップS132)<マージ処理工程ないしはマージ処理>。以上のステップS131〜S132により、本発明にいう「第3レイアウト工程」を構成できる。
チップレイアウト領域において、余分な配線部を削除する処理を行う(ステップS133)<余分配線部削除工程ないしは余分配線部削除処理>。そして、チップレイアウト情報を出力する処理を行う(ステップS134)<チップレイアウト情報出力工程ないしはチップレイアウト情報出力処理>。以上のステップS133により、本発明にいう「余分配線削除工程」を構成できる。
(端子座標を算出する処理について)
次に、上述の各ステップにおいて、S108の端子座標を算出する処理の詳細について、図23を用いて説明する。図23は、端子座標を算出する処理の詳細な処理手順を示すフローチャートである。図23に示すように、ステップS108において、先ず、トップネットリスト情報から特定の2つのマクロブロック同士の接続関係情報を取得する処理を行う(ステップS201)<マクロブロック接続関係情報取得工程ないしはマクロブロック接続関係情報取得処理>。
接続関係情報が取得されると、接続関係にある一方のマクロブロックの各頂点座標(トップレイアウト座標系)を取得する処理を行う(ステップS202)<第1マクロ頂点座標取得工程ないしは第1マクロ頂点座標取得処理>。さらに、一方のマクロブロックの第1中心座標を算出する処理を行う(ステップS203)<第1中心座標算出工程ないしは第1中心座標算出処理>。
また、接続関係にある他方のマクロブロックの各頂点座標を取得する処理を行う(ステップS204)<第2マクロ頂点座標取得工程ないしは第2マクロ頂点座標取得工程>。さらに、他方のマクロブロックの第2中心座標を算出する処理を行う(ステップS205)<第2中心座標算出工程ないしは第2中心座標算出処理>。
次に、第1中心座標と第2中心座標を結ぶ結合線(結合関数)を算出する処理を行う(ステップS206)<中心座標結合関数算出工程ないしは中心座標結合関数算出処理>。なお、「中心座標」でなくても、マクロブロック領域の特定点であってよい。2点を結ぶ結合関数は、任意の関数であってよい。以上のステップS201〜S206により、本発明にいう「特定点結合関数算出制御工程」を構成できる。
そして、相対向する2つのマクロブロック同士のうち、一方のマクロブロックの対向辺と、前記結合線(結合関数)との第1交点座標を算出する処理を行う(ステップS207)<第1交点座標算出工程ないしは第1交点座標算出処理>。さらに、相対向する2つのマクロブロック同士のうち、他方のマクロブロックの対向辺と前記結合線(結合関数)との第2交点座標を算出する処理を行う(ステップS208)<第2交点座標算出工程ないしは第2交点座標算出処理>。以上のステップS207〜S208により、本発明にいう「交差部座標算出制御工程」を構成できる。
このようにして、第1交点座標を一方のマクロブロックのマクロ端子として決定し、該マクロ端子の配置処理を行う(ステップS209)<第1マクロ端子配置工程ないしは第1マクロ端子配置処理>。また、第2交点座標を他方のマクロブロックのマクロ端子として決定し、該マクロ端子の配置処理を行う(ステップS210)<第2マクロ端子配置工程ないしは第2マクロ端子配置処理>。
次に、他にマクロブロック同士の接続関係情報があるか否かを判定する(ステップS211)<接続関係探索判定工程ないしは接続関係探索判定処理>。この判定処理において、他にもマクロブロック同士の接続関係情報があると判定された場合にはステップS202に戻る。一方、他にマクロブロック同士の接続関係情報がないと判定された場合には、本S108の処理を終了して、次のS109へ移行する。
以上のような端子座標を算出する処理によれば、マクロ端子の最適座標位置は、各マクロブロック間の中心点を結ぶ結合線と、マクロブロックの境界線との交点(交差部)によって算出されるので、各マクロブロック同士の各マクロ端子間距離を、短小にできるので、マクロブロック間に配線される配線長を短く形成できる。このため、マクロブロックの配置関係(位置関係)が如何なる配置であったとしても、迂回配線を防止して、配線長の短い配線を形成できる。
特に、同一種類マクロブロックが複数形成される場合には、周囲の配置関係の状況にかかわらず、常に配線長を短く形成できる利点がある。
(変更前の端子を変更後の全端子に置き換える処理)
次に、上述のS121における、変更前の端子を、変更後の全端子に置き換える処理の詳細な処理手順について、図24を参照しつつ説明する。図24は、変更前の端子を、変更後の全端子に置き換える処理をさらに詳細な処理手順の一例を示したフローチャートである。
S121において、先ず、トップレイアウト情報から複数の同一種類マクロブロックに関する情報(各マクロブロックに対する端子座標等)を取得する処理を行う(ステップS301)<同一種類マクロブロック関連情報取得工程ないしは同一種類マクロブロック関連情報取得処理>。
次に、一つの同一種類マクロブロックについて、マクロ端子が、同一種類マクロブロックの一つの頂点から如何なる位置にあるかを算出する処理を行う(ステップS302)<相対位置算出工程ないしは相対位置算出処理>。
ここにおいて、トップレイアウト座標系における端子座標を、マクロレイアウト座標系における端子座標に変換する処理を行う。さらに、算出された端子座標(マクロレイアウト座標系)をもとに、マクロレイアウト情報の中におけるマクロブロックに対して、全端子の配置処理を行う(ステップS304)。
次いで、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがあるか否かを判定する処理を行う(ステップS305)<同一種類マクロブロック探索判定工程ないしは同一種類マクロブロック探索判定処理>。この判定処理において、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがあると判定された場合には、ステップS302に戻る。一方、前記判定処理において、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがないと判定された場合には、本ステップS121を終了し、次のステップS122へ移行する。
以上のような変更前の端子を変更後の全端子に置き換える処理によれば、異なる種類とみなされた各同一種類マクロブロックの各マクロ端子の全端子を、1つの同一種類マクロブロックの境界領域に割り当てることによって、マクロレイアウト処理を、異なる種類とみなされた各同一種類マクロブロックについて、1回で済ませることができる。
(余分な配線部を削除する処理)
次に、上述したステップS133の余分な配線部を削除する処理のさらに詳細な処理手順について、図25を参照しつつ説明する。図25は、余分な配線部を削除する処理の詳細な処理手順の一例を示したフローチャートである。
ステップS133において、線分の端点が他の線分又は論理回路素子に繋がらない線分を探索する処理を行う(ステップS133a)<端点探索工程ないしは端点探索処理>。次に、繋がらない線分を削除する処理を行う(ステップS133a)
そして、他に繋がらない線分はあるか否かを判定する処理を行う(ステップS133c)<線分判定工程ないし線分判定処理>。この判定処理において、他に繋がらない線分があると判定された場合には、ステップS133aに戻る。一方、前記判定処理において、他に繋がらない線分がないと判定された場合には、本ステップS133の処理を終了し、次のステップS134に移行する。
以上のような余分な配線部を削除する処理によれば、マクロブロック内のマクロレイアウトにおいて機能素子から全端子に対して配線レイアウト処理がなされたとしても、余分な配線部は自動的に削除されるので、結果として配線性の向上がなされたチップレイアウトを提供できる。
(効果の説明)
以上のように本実施の形態によれば、複数の同一種類のマクロブロックを含む複数のマクロブロック内外での配線レイアウト処理において、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、マクロ端子に接続する全ての配線を短小化した形でレイアウトを行うことができ、迂回配線(配線引き回し)をなくし、集積回路の配線性を向上させ配線遅延時間の悪化を抑制できる。
また、階層レイアウト手法を採用するLSIレイアウトにおいて、同一種の階層マクロが複数使用される場合、それらを別々のマクロとみなしてマクロの端子座標を決定しトップレイアウト(マクロ間の配線処理)を行う。マクロレイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロの配線処理を1回のみ行う。前記トップレイアウトとマクロレイアウトをマージした後、マクロ間の接続が完結しない余分な配線を削除する。これらによりマクロレイアウトの同一性を保ちつつマクロ間の配線引き回しをなくし、LSI全体の配線性を向上させ配線遅延時間の悪化を抑制する。
ここで、図26は、本実施の形態の構成において、マクロブロックに全マクロ端子を配置し、マクロブロック内にて全マクロ端子に対して配線を行い、チップレイアウト後に、配線部のうち余分な部分を削除するという一連の工程を概念的に簡略化して示しているものである。図26に示すように、複数の同一種類マクロブロック191、192のうち一方の同一種類マクロブロック191には、一方のマクロ端子tf1と、機能素子(例えば論理回路素子)nとが形成されている。他方の同一種類マクロブロック192には、他方のマクロ端子tf2と、機能素子nが形成されている。(ここでは、既にマクロ名及びマクロ端子名が変更され、マクロ端子の最適配置位置が算出されてマクロ端子が配置された状態を想定されたい。)
次に、一つのマクロブロックである同一種類マクロブロック193に、全マクロ端子tf1、tf2が配置されることとなる。(このマクロブロックの状態を、第1マクロレイアウト情報<機能素子のみの状態>から第2マクロレイアウト情報<符号194の状態>へ至る過程の中間状態であることから仮に中間生成マクロブロックと呼ぼう。)
そして、同一種類マクロブロック193では、マクロレイアウト処理(配線処理)が行われ、配線部L1、L2が形成される。さらに、チップレイアウト後には、一方の同一種類マクロブロックに相当する領域195と、他方の同一種類マクロブロックに相当する領域196が形成される。ここで、領域195には、配線部L1、L2が形成されるが、余分配線部削除処理によってL2が削除される。また、領域196にも配線部L1、L2が形成されるが、余分配線部削除処理によってL1が削除される。
以上の点を踏まえた上で、比較例として仮に関連技術の特許文献2のマクロブロックを特許文献2の技術思想ではなく、本実施の形態の技術思想を用いて処理した場合には、最終的に如何なる配線となるかを検討する。この場合、図26に示すように、全端子について配線されたマクロブロック198aが生成される。そして、チップレイアウト後には、マクロブロックに相当する領域198bには、最終段階で余分な配線部が削除された状態で配線部が形成される。この最終段階の配線レイアウト(図26の符号198b)と、図36の特許文献2の技術思想によって配線された配線部1032とを比較すると、明らかに、本実施の形態の手法を用いた方が配線長が短く形成されるのが理解されよう。
このような観点からも、特許文献2では、単にマクロ端子を移動するだけで、マクロブロック内部の配線長を短くすることができない。これに対し本実施の形態では、配線長を短くすることができる。その理由は、最初の段階では、マクロブロック内において、マクロ端子と機能素子との間の配線を行っておらず、マクロ端子の最適座標位置を計算によって求めた後に、配線を行うからである。従って、特許文献2のように仮レイアウト工程や仮レイアウトを行った上で端子位置や配線位置を修正してみたりする修正工程などを一切行うことなく、一発で最適位置が判明するのである。
[第2の実施の形態]
次に、本発明にかかる第2の実施の形態について、図27乃至図30に基づいて説明する。なお、以下には、前記第1の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図8は、本発明のレイアウト設計支援装置の第2の実施の形態の一例を示すブロック図である。本実施の形態のレアイウト設計補助装置の構成は、上述の第1の実施の形態のレイアウト設計支援装置の構成と比較すると、階層マクロ端子座標決定部の構成が異なる。
すなわち、上述の第1の実施の形態では、マクロ端子の最適座標位置を算出するに際し、各マクロブロックの各中心点を結ぶ結合線と各マクロブロックの境界線との交差部を求める手法を示したが、本実施の形態では、接続関係のあるマクロブロック間の距離が最短となる辺の対を求め、その辺上の点にマクロ端子を配置する手法を示している。
具体的には、図27に示すように、レイアウト設計支援装置の階層マクロ端子座標決定部202は、辺関数算出部204(本発明にいう「辺算出部」に該当する)、辺上特定位置算出部206(本発明にいう「特定位置算出部」に該当する)、端子配置処理部208を含んで構成される。
辺関数算出部204は、少なくとも2つの各マクロブロックの距離が最短となる互いに対向する一対の辺の関数を求める。より好ましくは一対の辺の位置を求める。辺上特定位置算出部206は、前記辺上の特定位置を算出する。この状態を示すと、例えば図28のようになる。図28では、算出された双方の各マクロブロックの各特定位置同士が破線で結ばれている。端子配置処理部208は、算出された双方の各マクロブロックの各特定位置に各マクロ端子を配置処理する。この状態を示すと、図29のようになる。なお、図28及び図29の例では、辺上の特定位置として、2つのマクロブロック同士が対向している領域部分の中央部となる位置を選定しているがこれに限るものではない。いずれの位置であっても最短距離は変わらないからである。
(処理手順について)
次に、上述のような構成からなる集積回路のレイアウト設計支援装置の詳細な処理手順について、図30を参照しつつ説明する。図30は、第2の実施の形態の端子座標を算出する処理の詳細な処理手順の一例を示すフローチャートである。
図30に示すように、先ず、トップネットリスト情報から特定の2つのマクロブロック同士の接続関係情報を取得する処理を行う(ステップS411)。
次に、相対向する2つのマクロブロック同士のうち、一方のマクロブロックの対向辺の辺関数(y=k1、{X1≦x≦X2})を算出する処理を行う(ステップS412)<第1辺関数算出工程ないしは第1辺関数算出処理>。さらに、相対向する2つのマクロブロック同士のうち、他方のマクロブロックの対向辺の辺関数(y=k2、{X3≦x≦X4})を算出する処理を行う(ステップS413)<第2辺関数算出工程ないしは第2辺関数算出処理>。以上のステップS411〜S413により、本発明にいう「辺算出制御工程」を構成できる。
そして、一方のマクロブロックの対向辺と、他方のマクロブロックの対向辺とが向き合っている領域の長さを算出する処理を行う(S414)<対向領域算出工程ないしは対向領域算出処理>。ここで、一方のマクロブロックの対向辺のうち、向き合っている領域の長さの半分となる位置を算出する処理を行う(S415)<第1中央部算出工程ないしは第1中央部算出処理>。さらに、他方のマクロブロックの対向辺のうち、向き合っている領域の長さの半分となる位置を算出する処理を行う(S416)<第1中央部算出工程ないしは第1中央部算出処理>。以上のステップS414〜S416により、本発明にいう「特定位置算出制御工程」を構成できる。
そして、算出された位置を一方のマクロブロックのマクロ端子の位置として決定し、マクロ端子の配置処理を行う(S417)。また、算出された位置を他方のマクロブロックのマクロ端子として決定し、マクロ端子の配置処理を行う(S418)。
次に、他にマクロブロック同士の接続関係情報があるか否かの判定処理を行う(S419)<接続関係情報探索工程ないしは接続関係情報探索処理>。この判定処理において、他にマクロブロック同士の接続関係情報があると判定された場合には、ステップS412に戻る。一方、前記判定処理において、他にマクロブロック同士の接続関係情報がないと判定された場合には、本ステップS402を終了し、後工程は、前記第1の実施の形態同様に、S109へ移行する。
以上のように本実施の形態によれば、マクロブロック間の配線レイアウト処理を行うにあたり、各マクロブロック間の最短位置に配線することができ、前記第1の実施の形態と同様の作用効果を奏しながらも、さらなる配線性を向上させることができる。
(各種変形例)
なお、本発明にかかるLSIのレイアウト設計支援装置、LSIのレイアウト設計方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。例えば、上述の第1の実施の形態では、マクロ端子の最適位置を算出する結合関数として1次関数(直線)を用いる例を説明したが、これに限定されるものではなく、図31に示すように、3点を通る略3次関数であってもよい。あるいは、2点を通る自由曲線であってもよい。
図31のようなマクロブロックのレイアウトの場合、直線であると、結合関数L1とマクロブロックA1との境界線との交差部が、マクロブロックA1の左辺に形成されてしまう。このような場合には、他の結合関数L2を用いて、交差部の座標位置が下辺となるように構成できる。ここで、マクロ端子を配置すべきマクロブロックの第1の辺に交差部位置が算出されたのか、接続関係にないマクロブロックの第1方向と対向する第2の辺に交差部位置が算出されたのかを判定する交差部位置適正判定部を第2の端子座標算出処理部内に設けることが好ましい。そして、交差部位置適正判定部にて適正でないと判断された場合には、交差部算出に用いた第1結合関数を他の第2結合関数を用いて計算するように制御する結合関数制御部を第2の端子座標算出処理部内に設けることが好ましい。結合関数制御部は、複数の異なる結合関数による各結合関数算出部と、各結合関数による各交差部位置算出部とを制御して最適位置を算出する。これにより、複雑なレイアウトパターンであっても、マクロ端子の最適位置を算出できるようになる。
さらに、マクロ端子位置の算出がなされている場合には、トップレイアウト工程と、マクロレイアウト工程は、並列的に行ってもよい。
また、上述の実施の形態ではLSIのレイアウト設計支援ソフトウエアを1台の情報処理装置に搭載する構成を例に挙げたが、情報端末とこの情報端末とネットワークを介して通信可能に形成された管理装置(例えば1又は複数台のサーバ)とを有し、管理装置側にLSIレイアウト設計ソフトウエアを搭載し、情報端末からの操作入力によって設計可能に構成してもよい。すなわち、レイアウト設計支援システムとして構成してもよい。さらに、この場合、通常のブラウザなどから操作できるように構成してもよい。
また、この場合の「システム」とは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない。このため、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
なお、ネットワークとしては、例えば携帯電話回線網(基地局及び交換システムを含む)、公衆電話回線網、IP電話網、ISDN回線網などこれに類する各種回線網、インターネット(乃ち、TCP・IPプロトコルを用いた通信態様)やイントラネット、LAN(イーサネット:登録商標、やギガビットイーサネットなどを含む)、WAN、光ファイバー通信網、電力線通信網、ブロードバンド対応可能な各種専用回線網などいずれのハードウエア構成でもよい。さらに、ネットワークは、TCP・IPプロトコルの他、種々の通信プロトコルを用いたネットワークあるいはソフトウエア的に構築された仮想ネットワークやこれに類するあらゆるネットワークを含むネットワークなどいかなる通信プロトコルであってもよい。また、ネットワークは、有線に限らず、無線(衛星通信、各種高周波通信手段等を含む)ネットワーク(例えば、簡易電話システムや携帯電話のようなシングルキャリア通信システム、W―CDMAやIEEE802.11bに準拠した無線LANのようなスペクトラム拡散通信システム、IEEE802.11aやHiperLAN/2のようなマルチキャリア通信システム、などを含むネットワーク)であっても構わず、これらの組み合わせを利用してもよく、他のネットワークと接続されたシステムであってもよい。さらに、ネットワークは、ポイントツーポイント、ポイントツーマルチポイント、マルチポイントツーマルチポイントなど如何なる形態でもよい。
また、上述の実施の形態では、情報処理装置が1台の例で説明したが、複数台形成してもよい。また、記憶部8の各部を専用のデータベースないしはサーバで構成してもよい。すなわち、トップレイアウト情報サーバ、トップネットリスト情報サーバ、階層マクロ変更リストサーバ、マクロネットリストサーバ、マクロレイアウトサーバ、チップレイアウトサーバ、などである。
さらに、「サーバー」には、データベースなどのSQLサーバーのみならず、webサーバー、電子メールを送受信するためのPOP及びSMTPサーバーやその他DNSサーバーなどの各種サーバーを含んで構成され、これらを含むシステムの総称として機能してもよい。
(プログラム)
また、前述した実施形態の機能を実現する本発明のソフトウエアのプログラム(集積回路のレイアウト設計用プログラム)は、前述した各実施の形態における図1、図2、図3、図11、図12、及び図27に示すブロック図、図22、図23、図24、及び図25等に示すフローチャートなどに示された各部、各処理工程(処理手順)、機能などに対応したプログラムや、(上述の各実施の形態の図2の制御部2など)において各々処理される各処理プログラム、本明細書で全般的に記述される方法(ステップ)、説明された処理、データ(例えば、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、階層マクロ変更リスト情報、マクロレイアウト情報、チップレアウト情報、物理ライブラリ情報、各種テーブル等)、各種DB(データベース)のデータの全体もしくは各部を含む。
プログラムは、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムは、高水準プロシージャ型またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよい。上述のレイアウト設計支援プログラムを、一般のパソコンや携帯型情報端末などで動作可能なアプリケーションソフトに組み込んだものも含む。
集積回路のレイアウト設計支援プログラムを供給する手法としては、電気通信回線(有線、無線を問わない)によってコンピュータと通信可能に接続された外部の機器から前記電気通信回線を通じて提供することも可能である。例えば、コンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、プログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるサーバも、本発明の範囲に含まれるものである。
(情報記録媒体)
また、レイアウト設計支援プログラムを、情報記録媒体に記録した構成であってもよい。情報記録媒体には、レイアウト設計支援プログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはROMなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。
プログラムを供給するための情報記録媒体としては、例えばROM、RAM、フラッシュメモリやSRAM等の半導体メモリ並びに集積回路、あるいはそれらを含むUSBメモリやメモリカード、光ディスク、光磁気ディスク、磁気記録媒体等を用いてよく、さらに、フレキシブルディスク、CD−ROM、CD―R、CD―RW、FD、DVDRAM、DVDROM、DVD―R、DVD―RW、DVD+R、DVD+RW、MO、ZIP、磁気カード、磁気テープ、SDカード、メモリスティック、不揮発性メモリカード、ICカード、等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、等に記録して構成して用いてよい。
さらに「情報記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの(伝送媒体ないしは伝送波)、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。
また、コンピュータ上で稼働しているOS、端末(例えば携帯電話など)上のRTOS等が処理の一部又は全部を行う場合にも、上記実施の形態と同等の機能を実現できると共に、同等の効果を得ることができる。
さらに、プログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。この場合、本発明の構成は、レイアウト設計支援プログラムの各構成要素(各種の各部、ステップ及びデータ)と、前記レイアウト設計支援プログラム(各種の各部、ステップ及びデータ)を暗号化する暗号化手段と、を含んでよい。
また、上述の実施の形態の「レイアウト設計支援装置」を、他の「情報処理装置」と統合した装置として、これら全体を本発明の「レイアウト設計支援装置」として構成することも一向に構わない。「レイアウト設計支援装置」には、OSや周辺機器等のハードウェアを含むものとする。
さらに、上述のLSIのレイアウト設計支援プログラムなどが搭載される情報処理装置としては、サーバは、例えばパーソナルコンピュータに限らず、各種サーバー、EWS(エンジニアリングワークステーション)、中型コンピュータ、メインフレームなどが挙げられる。クライアント端末は、以上の例に加えて、携帯型情報端末、各種モバイル端末、PDA、携帯電話機、ウエアラブル情報端末、種々のテレビ・ビデオ・DVDレコーダ・各種音響機器及びそのリモコン、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等からも利用できる構成としても構わない。あるいは、これらの端末に表示されるアプリケーションとして改良されたものも本発明の範囲に含めることができる。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
なお、本明細書において、フローチャートに示されるステップは、記載された手順に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。また、実装では、プログラム手順(ステップ)が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の手順(ステップ)を、組み合わされた手順(ステップ)として実装、除去、追加、または再配置することができる。
さらに、図1、図2、図3、図11、図12、及び図27各部の各機能、図22、図23、図24、図25、及び図30各ステップの手順の機能などのプログラムの機能を、専用のハードウエア(例えば専用の半導体回路等)によりその機能を達成してもよく、プログラムの全機能のうち一部の機能をハードウエアで処理し、全機能のうちさらに他の機能をソフトウエアで処理するようにしてもよい。専用のハードウエアの場合、各部を集積回路例えばLSIにて形成されてもよい。これらは個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。また、LSIには、ストリーミングエンジンなど他の機能ブロックが含まれていても良い。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含むことは言うまでもない。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら本例においても当該作用効果を奏することができる。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成であってもよい。
そして、これまでの記述は、本発明の理解を容易にするために、本発明の実施の形態の一例のみを開示しており、各実施の形態及びそれらの変形例は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、例証するものであり、制限するものではなく、所定の範囲内で適宜変形及び/又は変更が可能である。本発明は、その技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができ、各実施の形態及びその変形例によって本発明の技術的範囲が限定的に解釈されてはならないものである。従って、上記の実施の形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。
本発明は、半導体産業、LSI設計業界、コンピュータ産業、その他これに類する情報処理サービス産業に適用可能であり、必ずしも特定の基準に準拠していない可能性のあるコンピュータソフトウェアアプリケーションにも適用可能である。より詳細には、LSIのレイアウト設計支援、といった用途に適用できる。
本発明の第1の実施の形態による集積回路のレイアウト設計支援装置の全体構成の一例を示すブロック図である。 図1に示すレイアウト設計支援装置の各部のさらに詳細な構成の一例を示すブロック図である。 図1に示すレイアウト設計支援装置の各部のさらに詳細な構成の一例を示すブロック図である。 図1のレイアウト設計支援装置のトップネットリスト情報の一例を示す説明図である。 図1のレイアウト設計支援装置のトップレイアウト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置のマクロネットリスト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置において同一種類のマクロのマクロ名が変更された後のトップレイアウト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置において同一種類のマクロのマクロ名及びマクロ端子名が変更された後のトップネットリスト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置の階層マクロ変更リスト情報記憶部に記憶される変更前後のマクロ名及びマクロ端子名の対応関係を示すテーブル(マクロ変更リスト)の一例を示す説明図である。 図1のレイアウト設計支援装置において、各種レイアウト処理におけるマクロ名及び端子名の変更状態の一例を示す説明図である。 図1のレイアウト設計支援装置において、マクロ名及び端子名の変更処理を行うための制御系の詳細を示すブロック図である。 図1のレイアウト設計支援装置において、端子位置算出の処理を行うための制御系の詳細を示すブロック図である。 図1のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。 図1のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。 図1のレイアウト設計支援装置においてマクロ間の配線レイアウト処理がなされた後のトップレイアウト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置において同一種類のマクロのマクロ名及びマクロ端子名が変更された後のマクロネットリスト情報の内容の一例を示す説明図である。 図1のレイアウト設計支援装置において、各マクロ端子をマクロレイアウト領域上に割り当てる場合の一例を示す説明図である。 図1のレイアウト設計支援装置において、マクロ内の配線レイアウト処理後の各マクロのレイアウト一例を示す説明図である。 図1のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされる一例を示す説明図である。 図1のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされた後に、配線が浮いた状態の一例を示す説明図である。 図1のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされた後に、削除処理後の状態の一例を示す説明図である。 図1のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。 図22の処理手順のさらに詳細な処理の一例を示すフローチャートである。 図22の処理手順のさらに詳細な処理の一例を示すフローチャートである。 図22の処理手順のさらに詳細な処理の一例を示すフローチャートである。 図1のレイアウト設計支援装置において、マクロブロック内での配線レイアウトが行われる過程の例を示す説明図である。 本発明の第2の実施の形態によるレイアウト設計支援装置の階層マクロ端子座標決定部の詳細な構成の一例を示すブロック図である。 図27のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。 図27のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。 図27のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。 レイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。 従来のレイアウト設計支援装置のマクロブロック間の配線レイアウト処理の一例を示す説明図である。 従来のレイアウト設計支援装置のチップレイアウト後の配線レイアウト状態の一例を示す説明図である。 関連技術のマクロブロックの一例を示す説明図である。 関連技術のマクロブロックの問題を説明するための説明図である。 関連技術のマクロブロックの問題を説明するための説明図である。
符号の説明
1 レイアウト設計支援装置
2 制御部
4 端子座標算出制御部
5a 第1の端子座標算出処理部
5b 第2の端子座標算出処理部
6 レイアウト処理制御部
11 各種情報入力部
21 トップ階層変更部
22 マクロ名変更部
23 端子名変更部
31 階層マクロ端子座標決定部
33 中心点結合関数算出部(特定点結合関数算出部)
34 交差部座標算出部
35 トップレイアウト処理部(第1のレイアウト処理部)
41 階層マクロ端子追加及び端子座標設定処理部
42 端子名変更部
44 マクロレイアウト処理部(第2のレイアウト処理部)
51 チップレイアウト前処理部
54 チップレイアウト処理部(第3ノレイアウト処理部)
55 マージ処理部
56 余分配線削除処理部
61 配置配線結果出力部
70 中央制御部
90 その他の各部
91 マクロ名制御部
92 端子名制御部
93 同一機能マクロ制御部
94 階層制御部
81 物理ライブラリ情報記憶部
82 トップレイアウト情報記憶部(第1レイアウト蓄積処理部)
83 トップネットリスト情報記憶部(第1ネットリスト蓄積処理部)
84 マクロネットリスト情報記憶部(第2ネットリスト蓄積処理部)
85 階層マクロ変更リスト情報記憶部(マクロ変更リスト蓄積処理部)
86 マクロレイアウト情報記憶部(第2レイアウト蓄積処理部)
87 チップレイアウト情報記憶部
202 階層マクロ端子座標決定部
204 辺関数算出部(辺算出部)
206 辺上特定位置算出部(特定位置算出部)
208 端子配置処理部


Claims (38)

  1. 複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部と、
    前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部と、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  2. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    各前記マクロブロックのブロック境界領域にある各マクロ端子の各第1座標位置を算出する第1の端子座標算出処理部、
    を含み、
    前記レイアウト処理制御部は、
    前記第1の端子座標算出処理部にて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記各マクロブロック間に形成される第1レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行う第1のレイアウト処理部、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  3. 請求項2に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    前記第1の端子座標算出処理部にて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第1座標位置の相対位置である第2座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第2座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第2の端子座標算出処理部、
    を含み、
    前記レイアウト処理制御部は、
    前記同一種類マクロブロックに対しては、前記マクロブロック内に形成される第2レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行う第2のレイアウト処理部、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  4. 請求項3に記載の集積回路のレイアウト設計支援装置において、
    前記レイアウト処理制御部は、
    前記第1のレイアウト処理部にて配線レイアウト処理された前記第1レイアウト領域と、前記第2のレイアウト処理部にて配線レイアウト処理された前記第2レイアウト領域と、をマージさせて、前記第1のレイアウト領域と前記第2のレイアウト領域よりなる第3レイアウト領域を作成するとともに、前記第3レイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する第3のレイアウト処理部、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  5. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    前記各マクロブロックの位置関係情報と、前記各マクロブロックの接続関係情報とに基づいて、前記各マクロブロックの各マクロ端子間の距離が短くなる座標位置を算出することを特徴とする集積回路のレイアウト設計支援装置。
  6. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    少なくとも2つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する特定点結合関数算出部と、
    前記特定点結合関数算出部にて算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する交差部座標算出部と、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  7. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    少なくとも2つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求める辺算出部と、
    前記辺上の特定位置を算出する特定位置算出部と、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  8. 請求項1又は2に記載の集積回路のレイアウト設計支援装置において、
    前記端子座標算出制御部は、
    複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更するマクロ名変更部と、
    各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する端子名変更部と、
    を含み、
    端子座標算出前に、予めマクロ名及び端子名を変更することで複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロック及び異なるマクロ端子とみなすことを特徴とする集積回路のレイアウト設計支援装置。
  9. 請求項8に記載の集積回路のレイアウト設計支援装置において、
    複数種類の各マクロブロックの位置関係を示した第1レイアウト情報を蓄積する第1レイアウト情報蓄積処理部と、
    各前記マクロブロック間の接続関係を示した第1ネットリスト情報を蓄積する第1ネットリスト情報蓄積処理部と、
    を含み、
    前記マクロ名変更部は、
    前記第1レイアウト情報及び前記第1ネットリスト情報のそれぞれの前記マクロブロックについての名称変更を行うことを特徴とする集積回路のレイアウト設計支援装置。
  10. 請求項9に記載の集積回路のレイアウト設計支援装置において、
    前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第2レイアウト情報を記憶した第2レイアウト情報蓄積処理部と、
    前記機能素子と前記マクロ端子との接続関係を示した第2ネットリスト情報を記憶した第2ネットリスト情報蓄積処理部と、
    を含み、
    前記端子名変更部は、
    前記第1レイアウト情報、前記第1ネットリスト情報、前記第2レイアウト情報、前記第2ネットリスト情報のそれぞれの前記マクロ端子についての名称変更を行うことを特徴とする集積回路のレイアウト設計支援装置。
  11. 請求項8に記載の集積回路のレイアウト設計支援装置において、
    前記レイアウト処理制御部は、
    前記第1のレイアウト領域に関連する処理を行う第1の期間、前記第2のレイアウト領域に関連する処理を行う第2の期間、前記第3のレイアウト領域に関連する処理を行う第3の期間のうち、前記第1の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理を行い、前記第2の期間及び前記第3の期間中には、当初の共通マクロ名を用いて各処理を行うように制御するマクロ名制御部と、
    前記第1の期間及び前記第2の期間中には、前記端子名変更部にて変更された個別端子名を用いて各処理を行い、前記第3の期間中には、当初の共通端子名を用いて処理を行うように制御する端子名制御部と、
    を含むことを特徴とする集積回路のレイアウト設計支援装置。
  12. 請求項11に記載の集積回路のレイアウト設計支援装置において、
    変更前後のマクロ名の対応関係を示す第1名称対応関係情報と、変更前後のマクロ端子名の対応関係を示す第2名称対応関係情報とを規定したマクロ変更リスト情報を蓄積するマクロ変更リスト情報蓄積処理部を含み、
    前記レイアウト処理制御部は、前記マクロ変更リスト情報を参照して各期間での名称変更制御を行うことを特徴とする集積回路のレイアウト設計支援装置。
  13. 請求項12に記載の集積回路のレイアウト設計支援装置において、
    前記マクロ変更リスト情報蓄積処理部は、
    前記マクロブロックの種類を示すマクロ種類名に応じて、前記第1名称対応関係情報及び前記第2名称対応関係情報が対応付けられることを特徴とする集積回路のレイアウト設計支援装置。
  14. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    レイアウトに必要な情報を入力する情報入力部、
    を含み、
    前記端子座標算出制御部及び前記レイアウト処理制御部は、
    前記情報入力部より入力された情報に基づいて、制御を各々行うことを特徴とする集積回路のレイアウト設計支援装置。
  15. 請求項1に記載の集積回路のレイアウト設計支援装置において、
    レイアウト結果を出力する配置配線結果出力部を、
    含み、
    前記レイアウト処理制御部は、
    前記配置配線結果出力部より配線レイアウト処理の結果情報を出力するように制御することを特徴とする集積回路のレイアウト設計支援装置。
  16. 複数種類のマクロブロックに含まれる同一種類マクロブロックを別々の種類のマクロブロックとみなして、前記マクロブロックの境界領域上のマクロ端子の最適座標位置を算出する第1の端子座標算出処理工程と、
    各前記マクロブロック間に形成される第1レイアウト領域内にて、各マクロ端子間を配線接続する配線レイアウト処理を行う第1レイアウト処理工程と、
    別々の座標位置として算出された前記複数の同一種類マクロブロックの各マクロ端子を、1つの前記同一種類マクロブロック上に全て配置するように前記マクロ端子の座標位置を算出する第2の端子座標算出処理工程と、
    前記マクロブロック内に形成される第2レイアウト領域にて、一つの前記同一種類マクロブロックの前記全マクロ端子に関連する配線レイアウト処理を行う第2レイアウト処理工程と、
    前記第1レイアウト領域と前記第2レイアウト領域をマージして第3レイアウト領域を生成する第3レイアウト処理工程と、
    前記第2レイアウト処理工程にて、全マクロ端子に対して配線した各配線部のうち、接続が完結しない余分な配線部を削除する余分配線部削除工程と、
    を含むことを特徴とする集積回路のレイアウト設計支援方法。
  17. 請求項16に記載の集積回路のレイアウト設計支援方法において、
    前記第1の端子座標算出処理工程は、
    少なくとも2つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する特定点結合関数算出制御工程と、
    前記特定点結合関数算出部にて算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する交差部座標算出制御工程と、
    を含むことを特徴とする集積回路のレイアウト設計支援方法。
  18. 請求項16に記載の集積回路のレイアウト設計支援方法において、
    前記第1の端子座標算出処理工程は、
    少なくとも2つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求める辺算出制御工程と、
    前記辺上の特定位置を算出する特定位置算出制御工程と、
    を含むことを特徴とする集積回路のレイアウト設計支援方法。
  19. 請求項17又は請求項18に記載の集積回路のレイアウト設計支援方法において、
    前記第1の端子座標算出処理工程は、
    端子座標算出前に、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更するマクロ名変更工程と、
    端子座標算出前に、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する端子名変更工程と、
    を含むことを特徴とする集積回路のレイアウト設計支援方法。
  20. 請求項19に記載の集積回路のレイアウト設計支援方法において、
    前記第2の端子座標算出処理工程は、
    前記複数の同一種類マクロブロックに対しては、共通マクロ名及び個別端子名を用いて処理を行うことを特徴とする集積回路のレイアウト設計支援方法。
  21. 請求項19に記載の集積回路のレイアウト設計支援方法において、
    前記第3レイアウト処理工程は、
    変更されたマクロ名及びマクロ端子名を元に戻した後に、マージを行うことを特徴とする集積回路のレイアウト設計支援方法。
  22. 集積回路のレイアウト処理を行うコンピュータが実行可能なプログラムであって、
    複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部と、
    前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部として、
    コンピュータを機能させることを特徴とするプログラム。
  23. 請求項22に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    各前記マクロブロックのブロック境界領域にある各マクロ端子の各第1座標位置を算出する第1の端子座標算出処理部、
    を含み、
    前記レイアウト処理制御部は、
    前記第1の端子座標算出処理部にて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記各マクロブロック間に形成される第1レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行う第1のレイアウト処理部、
    を含むことを特徴とするプログラム。
  24. 請求項23に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    前記第1の端子座標算出処理部にて算出された各前記マクロ端子の各前記第1座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第1座標位置の相対位置である第2座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第2座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第2の端子座標算出処理部、
    を含み、
    前記レイアウト処理制御部は、
    前記同一種類マクロブロックに対しては、前記マクロブロック内に形成される第2レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行う第2のレイアウト処理部、
    を含むことを特徴とするプログラム。
  25. 請求項24に記載のプログラムにおいて、
    前記レイアウト処理制御部は、
    前記第1のレイアウト処理部にて配線レイアウト処理された前記第1レイアウト領域と、前記第2のレイアウト処理部にて配線レイアウト処理された前記第2レイアウト領域と、をマージさせて、前記第1のレイアウト領域と前記第2のレイアウト領域よりなる第3レイアウト領域を作成するとともに、前記第3レイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する第3のレイアウト処理部、
    を含むことを特徴とするプログラム。
  26. 請求項22に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    前記各マクロブロックの位置関係情報と、前記各マクロブロックの接続関係情報とに基づいて、前記各マクロブロックの各マクロ端子間の距離が短くなる座標位置を算出することを特徴とするプログラム。
  27. 請求項22に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    少なくとも2つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出し、
    算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出することを特徴とするプログラム。
  28. 請求項22に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    少なくとも2つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求め、前記辺上の特定位置を算出することを特徴とするプログラム。
  29. 請求項22又は23に記載のプログラムにおいて、
    前記端子座標算出制御部は、
    端子座標算出前に、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更し、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更し、複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロックとみなすことを特徴とするプログラム。
  30. 請求項29に記載のプログラムにおいて、
    複数種類の各マクロブロックの位置関係を示した第1レイアウト情報を蓄積する第1レイアウト情報蓄積処理部と、
    各前記マクロブロック間の接続関係を示した第1ネットリスト情報を蓄積する第1ネットリスト情報蓄積処理部として、
    コンピュータを機能させ、
    前記マクロ名変更部は、
    前記第1レイアウト情報及び前記第1ネットリスト情報のそれぞれの前記マクロブロックについての名称変更を行うことを特徴とするプログラム。
  31. 請求項30に記載のプログラムにおいて、
    前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第2レイアウト情報を蓄積する第2レイアウト情報蓄積処理部と、
    前記機能素子と前記マクロ端子との接続関係を示した第2ネットリスト情報を蓄積する第2ネットリスト情報蓄積処理部として、
    コンピュータを機能させ、
    前記端子名変更部は、
    前記第1レイアウト情報、前記第1ネットリスト情報、前記第2レイアウト情報、前記第2ネットリスト情報のそれぞれの前記マクロ端子についての名称変更を行うことを特徴とするプログラム。
  32. 請求項30に記載のプログラムにおいて、
    前記レイアウト処理制御部は、
    前記第1のレイアウト領域に関連する処理を行う第1の期間、前記第2のレイアウト領域に関連する処理を行う第2の期間、前記第3のレイアウト領域に関連する処理を行う第3の期間のうち、前記第1の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理を行い、前記第2の期間及び前記第3の期間中には、当初の共通マクロ名を用いて各処理を行うように制御するマクロ名制御部と、
    前記第1の期間及び前記第2の期間中には、前記端子名変更部にて変更された個別端子名を用いて各処理を行い、前記第3の期間中には、当初の共通端子名を用いて処理を行うように制御する端子名制御部と、
    を含むことを特徴とするプログラム。
  33. 請求項32に記載のプログラムにおいて、
    変更前後のマクロ名の対応関係を示す第1名称対応関係情報と、変更前後のマクロ端子名の対応関係を示す第2名称対応関係情報とを規定したマクロ変更リスト情報を蓄積するマクロ変更リスト情報蓄積処理部として、
    コンピュータを機能させ、
    前記レイアウト処理制御部は、前記マクロ変更リスト情報を参照して各期間での名称変更制御を行うことを特徴とするプログラム。
  34. 請求項33に記載のプログラムにおいて、
    前記マクロ変更リスト情報蓄積処理部は、
    前記マクロブロックの種類を示すマクロ種類名に応じて、前記第1名称対応関係情報及び前記第2名称対応関係情報が対応付けられることを特徴とするプログラム。
  35. コンピュータが行う集積回路のレイアウト処理に用いられるレイアウト情報のデータ構造であって、
    複数種類の各マクロブロックの位置関係を示した第1レイアウト情報と、
    各前記マクロブロック間の接続関係を示した第1ネットリスト情報と、
    前記複数種類の各マクロブロックに含まれる同一種類マクロブロックのマクロ名が変更される前後の第1名称対応関係情報と、前記同一種類マクロブロックのマクロ端子名が変更される前後の第2名称対応関係情報とを規定したマクロ変更リスト情報と、
    を含み、
    前記第1レイアウト情報、前記第1ネットリスト情報、及び前記マクロ変更リスト情報は、
    コンピュータが、
    複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標計算と、
    前記端子座標計算により求められた一方のマクロブロックの最適座標位置と他方のマクロブロックの最適座標位置との間で配線接続する第1レイアウト処理と、を行うのに、
    利用されることを特徴とするデータ構造。
  36. 請求項35に記載のデータ構造において、
    前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第2レイアウト情報と、
    前記機能素子と前記マクロ端子との接続関係を示した第2ネットリスト情報と、
    を含み、
    前記第2レイアウト情報及び前記第2ネットリスト情報は、
    コンピュータが、
    複数の同一種類マクロブロックに設定されたマクロ端子の全てを、一つの同一種類マクロブロックに配置させる全端子配置処理と、
    前記一つの同一種類マクロブロック内の特定の機能素子から配置された全ての前記マクロ端子に対して配線接続する第2レイアウト処理と、を行うのに、
    利用されることを特徴とするデータ構造。
  37. 請求項35に記載のデータ構造において、
    配線処理後の前記第1レイアウト情報と、配線処理後の前記第2のレイアウト情報とをマージした第3レイアウト情報を含み、
    前記第3レイアウト情報は、
    コンピュータが、配線部のうち線分の一端が機能素子又は他の線分に繋がらない余分配線部を削除する処理を行うのに、
    利用されることを特徴とするレイアウト情報のデータ構造。
  38. 請求項35に記載のデータ構造において、
    前記第1のレイアウト情報は、
    コンピュータが、
    複数の同一種類マクロブロックに対して各々異なるマクロ名が割り当てられるマクロ名変更処理と、
    各マクロ端子に対して各々異なるマクロ端子名が割り当てられる端子名変更処理と、
    を行うのに、
    利用されることを特徴とするデータ構造。

JP2007053302A 2007-03-02 2007-03-02 集積回路のレイアウト設計支援装置、方法、及びプログラム Expired - Fee Related JP5029070B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007053302A JP5029070B2 (ja) 2007-03-02 2007-03-02 集積回路のレイアウト設計支援装置、方法、及びプログラム
US12/036,643 US8117583B2 (en) 2007-03-02 2008-02-25 Determining macro blocks terminal for integrated circuit layout

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007053302A JP5029070B2 (ja) 2007-03-02 2007-03-02 集積回路のレイアウト設計支援装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2008217365A true JP2008217365A (ja) 2008-09-18
JP5029070B2 JP5029070B2 (ja) 2012-09-19

Family

ID=39734029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007053302A Expired - Fee Related JP5029070B2 (ja) 2007-03-02 2007-03-02 集積回路のレイアウト設計支援装置、方法、及びプログラム

Country Status (2)

Country Link
US (1) US8117583B2 (ja)
JP (1) JP5029070B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160598A (ja) * 2009-01-07 2010-07-22 Nec Corp 集積回路設計装置、設計方法およびプログラム
JP5229834B2 (ja) * 2008-09-30 2013-07-03 株式会社アドバンテスト 回路設計方法、回路設計システム及び記録媒体
WO2014105802A1 (en) * 2012-12-27 2014-07-03 Synopsys, Inc. Graphical user interface for a floorplanning tool for electronic design automation

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461364B2 (en) * 2006-04-10 2008-12-02 International Business Machines Corporation Methods and readable media for using relative positioning in structures with dynamic ranges
JP2010257164A (ja) * 2009-04-24 2010-11-11 Renesas Electronics Corp 半導体集積回路装置の設計方法およびプログラム
JP5293488B2 (ja) * 2009-08-05 2013-09-18 富士通セミコンダクター株式会社 設計支援プログラム、設計支援装置、および設計支援方法
JP5299198B2 (ja) * 2009-09-29 2013-09-25 富士通セミコンダクター株式会社 設計支援プログラム、設計支援装置、および設計支援方法
US8499263B1 (en) * 2012-03-29 2013-07-30 Mentor Graphics Corporation Encrypted profiles for parasitic extraction
US9792399B2 (en) 2013-01-07 2017-10-17 Nxp Usa, Inc. Integrated circuit hierarchical design tool apparatus and method of hierarchically designing an integrated circuit
JP2014211824A (ja) * 2013-04-19 2014-11-13 富士通株式会社 設計支援装置、設計支援方法、および設計支援プログラム
US10671788B2 (en) * 2017-11-21 2020-06-02 Taiwan Semiconductor Manufacturing Company Ltd. Method, system, and storage medium of resource planning for designing semiconductor device
US11227084B2 (en) * 2018-11-14 2022-01-18 Taiwan Semiconductor Manufacturing Company Ltd. Multi-bit standard cell
US11741284B2 (en) * 2021-09-28 2023-08-29 GBT Technologies, Inc. Systems and methods of automatic generation of integrated circuit IP blocks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11307644A (ja) * 1998-04-17 1999-11-05 Nec Ic Microcomput Syst Ltd 特定用途向けicの配置配線方法
JP2001147954A (ja) * 1999-11-24 2001-05-29 Nec Ic Microcomput Syst Ltd 半導体集積回路のフロアプラン作成方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03209848A (ja) 1990-01-12 1991-09-12 Nec Corp 半導体集積回路のレイアウト設計方法
JP2734180B2 (ja) 1990-06-29 1998-03-30 日本電気株式会社 集積回路の設計方法
US6415428B1 (en) * 1999-10-21 2002-07-02 International Business Machines Corporation Minimal length method for positioning unit pins in a hierarchically designed VLSI chip
JP4676123B2 (ja) * 2000-01-18 2011-04-27 ケイデンス・デザイン・システムズ・インコーポレーテッド H形木構造クロックレイアウトのシステムと方法
JP2001319976A (ja) 2000-05-11 2001-11-16 Nec Corp 半導体装置
JP2003208454A (ja) * 2002-01-17 2003-07-25 Nec Microsystems Ltd 半導体集積回路におけるレイアウト設計の自動配置配線方法及び装置並びに自動配置配線プログラム
US20050028113A1 (en) * 2003-08-01 2005-02-03 Intersil Americas Inc. Process translation tool for analog/RF IP reuse
JP4179221B2 (ja) 2004-05-18 2008-11-12 日本電気株式会社 Lsiのレイアウト設計方法、レイアウト設計装置及びレイアウト設計プログラム
US20070044056A1 (en) * 2005-08-16 2007-02-22 Lsi Logic Corporation Macro block placement by pin connectivity
US7343570B2 (en) * 2005-11-02 2008-03-11 International Business Machines Corporation Methods, systems, and media to improve manufacturability of semiconductor devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11307644A (ja) * 1998-04-17 1999-11-05 Nec Ic Microcomput Syst Ltd 特定用途向けicの配置配線方法
JP2001147954A (ja) * 1999-11-24 2001-05-29 Nec Ic Microcomput Syst Ltd 半導体集積回路のフロアプラン作成方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5229834B2 (ja) * 2008-09-30 2013-07-03 株式会社アドバンテスト 回路設計方法、回路設計システム及び記録媒体
JP2010160598A (ja) * 2009-01-07 2010-07-22 Nec Corp 集積回路設計装置、設計方法およびプログラム
WO2014105802A1 (en) * 2012-12-27 2014-07-03 Synopsys, Inc. Graphical user interface for a floorplanning tool for electronic design automation
US8893073B2 (en) 2012-12-27 2014-11-18 Synopsys, Inc. Displaying a congestion indicator for a channel in a circuit design layout
US9064082B2 (en) 2012-12-27 2015-06-23 Synopsys, Inc. Updating pin locations in a graphical user interface of an electronic design automation tool

Also Published As

Publication number Publication date
US20080216026A1 (en) 2008-09-04
US8117583B2 (en) 2012-02-14
JP5029070B2 (ja) 2012-09-19

Similar Documents

Publication Publication Date Title
JP5029070B2 (ja) 集積回路のレイアウト設計支援装置、方法、及びプログラム
US10116735B2 (en) Service migration across cluster boundaries
KR100831271B1 (ko) 물리적 레이어의 프로그램적 생성을 통한 물리적 레이아웃 데이터를 변경하는 방법
JP2016505930A (ja) 協調的cax編集のためのシステム、方法、および装置
CN102087594B (zh) 扩展点和插件的管理方法和装置
US7590963B2 (en) Integrating multiple electronic design applications
JP2008147217A (ja) 半導体集積回路のレイアウト方法、レイアウトプログラム
US6941528B2 (en) Use of a layout-optimization tool to increase the yield and reliability of VLSI designs
US7302666B2 (en) Logic circuit design method, computer-readable recording medium having logic circuit design program stored therein, and logic circuit design device
CN105653348A (zh) 一种虚拟机的克隆方法及系统
JP3042443B2 (ja) マスクパターンデータの作成方法
US7487488B1 (en) Predictable repeater routing in an integrated circuit design
JP2012174226A (ja) 半導体集積回路のレイアウト設計方法
US7958482B2 (en) Stitched circuitry region boundary identification for stitched IC chip layout
US8762898B1 (en) Double patterning aware routing without stitching
US20080270957A1 (en) Semiconductor integrated circuit designing apparatus, semiconductor integrated circuit designing method and semiconductor device
US8006211B2 (en) IC chip and design structure including stitched circuitry region boundary identification
Yan et al. Liming-constrained congestion-driven global routing
JP6185732B2 (ja) 画像処理装置
US20050050501A1 (en) The use of a layout-optimization tool to increase the yield and reliability of vlsi designs
JP2016189045A (ja) システム環境変更支援システム、方法およびプログラム
US8286115B2 (en) Fast routing of custom macros
US6654942B2 (en) Method and system for providing a netlist driven integrated router in a non-netlist driven environment
JP2014032584A (ja) 部品置換のための情報処理方法及び装置
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120611

R150 Certificate of patent or registration of utility model

Ref document number: 5029070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees