(57)【特許請求の範囲】
【請求項１】
複数の論理素子によって構成される論理ブロックの配置位置を決定する半導体集積回路の配置処理方法であって、
少なくとも論理ブロック名称、論理ブロック規模、他論理ブロックとの結線関係の情報からなる論理ブロックファイルを予め用意し、
論理ブロック間の結線関係と論理ブロック間の配置位置による配置可能条件の対応を示したテーブルをメモリに予め設定し、
半導体集積回路の配置下地となる下地情報を作成し、
前記論理ブロックファイルより抽出した論理ブロック名称一覧と前記下地情報を表示画面上のウインドウに表示し、
該論理ブロック名称一覧ウインドウの中から選択された任意の論理ブロックを位置指定装置により指定された前記下地情報ウインドウの所定の場所に前記論理ブロックファイルの論理ブロック規模に応じた大きさで配置し、
配置した論理ブロック間の結線関係に応じて論理ブロック間の結線度合いを前記テーブルに従って論理ブロック間の線分の太さにより表示し、
論理ブロック間の結線度合いを表示する際に、前記テーブルによる配置可能条件を満たさない論理ブロック間の線分の表示を変化させる半導体集積回路の配置処理方法。
【請求項２】
請求項１に記載の半導体集積回路の配置処理方法において、
前記線分の表示の変化は該線分を表示画面上で点滅させることにより行う半導体集積回路の配置処理方法。
【請求項３】
請求項１に記載の半導体集積回路の配置支援方法において、
配置可能条件を満たない論理ブロックを前記位置指定装置により再指定された前記下地情報ウインドウの所定の場所に再配置を行う半導体集積回路の配置処理方法。
【請求項４】
請求項３に記載の半導体集積回路の配置処理方法において、
再配置を行った後、改めて前記テーブルにより配置可能条件を満たすかどうかを確認する半導体集積回路の配置処理方法。
【請求項５】
請求項４に記載の半導体集積回路の配置処理方法において、
配置可能条件を満たした論理ブロックの配置位置を配置指示ファイルに出力する半導体集積回路の配置処理方法。
【発明の詳細な説明】
技術分野
本発明は、半導体集積回の論理素子配置処理方法に係わり、特に論理素子もしくは論理素子群の配置位置を外部から指示し、信号伝達遅延時間に関して論理素子の配置を最適とするための半導体集積回路の論理素子配置処理方法に関する。
背景技術
半導体集積回路の論理素子配置処理方法に関する従来技術としては、特開平７-７３６４３号公報に記載された技術が知られている。この従来技術は、論理素子の集まりである論理ブロック単位に論理分割して階層的に論理設計されている論理素子群の各論理素子を半導体集積回路の基板の上に、同一論理ブロックに属する論理素子同士を固めて配置しながら、信号伝達時間に関して論理素子の配置を最適とするための論理素子配置処理方法を提供している。
前述した特開平７-７３６４３号公報に記載された従来技術は、信号伝達時間に関して論理素子の配置を最適とするための情報を、各論理素子の結線関係により自動で認識して配置処理を行うものである。
しかし、従来技術は全ての論理素子間の結線関係をを考慮するものであり、近年の半導体集積回路の大規模化により、全ての配置処理を実施するとすれば膨大な処理時間が必要になってくることが予想され、それゆえ短時間での実装設計を妨害する要因となりかねない。
しかしながら、信号遅延時間等を考慮する必要のある論理素子は、ある限られた特定の論理素子であり、同様に半導体集積回路を律速するのは、特定の論理素子間の結線に係わる信号伝達時間であり、必ずしも全ての論理素子の配置を最適化する必要がないことがわかった。
そこで本願発明の目的は、最適な論理素子の配置を行うことにより、短期間で実装設計を行うことのできる半導体集積回路の論理素子配置処理方法を提供することにある。
発明の開示
上記の目的を達成するために、本発明では、以下の構成とした。
（１）少なくとも論理ブロック名称、論理ブロック規模、他論理ブロックとの結線関係の情報により構成される論理ブロックファイルを予め用意し、該論理ブロックファイルより抽出した論理ブロック名称の一覧を論理ブロック名称一覧として表示し、該論理ブロック名称一覧の中から選択された任意の論理ブロックを前記基板配置図面上に前記論理ブロックファイルの論理ブロック規模に応じて配置し、配置した論理ブロック間を前記論理ブロックファイルの他論理ブロックとの結線関係に応じて表示させることにより論理ブロックの最適配置を決定する。これによりオペレータは表示画面上で容易に論理ブロックの配置位置が配置可能条件を満たしているかどうかを確認することができ、半導体集積回路の配置位置を決定する際に非常に有効である。
（２）論理ブロック間の結線関係と論理ブロック間の配置位置による配置可能条件の対応を示したテーブルを予め用意し、配置可能条件を満たさない論理ブロックについては、その論理ブロックを指摘することによりオペレータに容易に認識可能とする。これによりオペレータは、論理ブロックを配置した場所が適当かどうかを容易に把握できる。
（３）配置可能条件を満たしていない論理ブロックについては、論理ブロックを指定し移動させることにより、配置可能条件を満たす位置に論理ブロックを配置させることができる。
【図面の簡単な説明】
第１図は、本発明の半導体集積回路の配置支援に関する処理フローを示す処理フロー図である。第２図は、本発明による半導体集積回路の階層構造を示す図である。第３図は、本発明による半導体集積回路の階層構造を論理素子レベルで示す図である。第４図は、本発明により表示画面上での操作例を示す図である。第５図は、本発明により表示画面上での操作例を示す図である。第６図は、本発明により表示画面上での操作例を示す図である。第７図は、本発明により表示画面上での操作例を示す図である。第８図は、本発明により表示画面上での操作例を示す図である。第９図は、本発明により表示画面上での操作例を示す図である。第１０図は、本発明による論理ブロック間での接続ネット数とそれに応じたブロック間の距離条件の関係を示す論理ブロック間関係テーブルである。
発明を実施するための最良の形態
以下、本発明による実施例を図面を使って詳細に説明する。
まず、第２図は本発明を説明するための半導体集積回路の階層をあらわすものである。ここでは、論理素子（例えば２０６）の集まりが論理ブロック（例えば２０２）であり、この論理ブロック（２０２）は例えばある機能のかたまり単位で分割されている。また、この論理ブロック（２０２）が集まったもの（２０２〜２０５）をチップ（２０１）と呼ぶ。
第３図を使って論理ブロックについてさらに詳しく説明する。
第３図は第２図の階層図を論理素子レベルで表した結線図の例である。
チップ２０１は４つの論理ブロック（A,B,C,D）から構成されている。これらの論理ブロック間にはそれぞれ接続関係があり、第３図の例では論理ブロックAと論理ブロックCには２本の接続関係が、論理ブロックCと論理ブロックD、論理ブロックBと論理ブロックDには１本の接続関係があることを示している。
以上のことをふまえた上で、本発明の一実施例に係る半導体集積回路の配置支援処理方法の各プロセスの流れを第１図のフローチャートを使って説明する。
まず、最低限の情報として前述したチップを構成している論理ブロックの論理規模（例えばゲート数）と自論理ブロックと他の論理ブロックとの接続配線数がわかる論理情報のファイルより、論理ブロックの情報（論理ブロック名称、論理規模、接続のある論理ブロック名称、接続配線数）を抽出して、論理ブロック名称一覧のファイルを作成する（１０１）。
次に半導体集積回路のチップの配置下地となる下地情報を作成する（１０２）。
下地情報は、例えば、２次元のXY座標で示されるものやマス目のようなものでもよい。次にワークステーションの画面等の表示画面上に、ステップ１０１とステップ１０２にて抽出した論理ブロック名称一覧と下地情報をそれぞれ別のウインドに表示する（１０３）。そして前述の論理ブロック名称一覧を表示したウインドの中から選択された論理ブロックを、別ウインドに表示した下地情報上の配置したい位置を指定して配置する（１０４）。他の論理ブロックについても、配置が必要であれば、この処理を繰り返す（１０６）。尚、第５図を説明する際に詳細に述べるが、下地情報に各論理ブロックを配置する際には、各論理ブロックの論理規模を考慮してその論理規模の大きさを反映した大きさで指定された論理ブロックを配置することが考えられる。
一通り配置指示が終了したら次に、各論理ブロック間の配線結合度を下地情報のウインド上で表示させる。
具体的手段としては、例えば、結合のある論理ブロック間については、論理ブロック間を線分を渡らせることにより表示する。また、結合度合については、例えば図１０のようなテーブルをメモリに設定しておき、このテーブルの配置可能条件に従い論理ブロックを配置した際の信号遅延時間等の関係を表示させる。この際にこのファイルを参照することにより、前述した論理ブロック間の線分の幅を論理ブロックの配置可能条件に合わせて線分を太くしたり細くしたり、また色を変化させたり、また線の太細と色を組み合わせたりする等により変更する（１０８）。配置可能条件に適合しない場合には、その線分を点滅させたり色を変化させたりすることによりオペレータに知らせる。
最初に論理ブロックを配置した場所が、信号伝達遅延時間を満足するものであれば（１０９）、この論理ブロックを配置した状態の配置指示結果をファイルに出力する（１１３）。
信号伝達遅延時間を満足しない等の配置可能条件に適合しない場合には、再度配置位置を変更して結合度を確認する（１１２）。尚、論理ブロックの再配置のさせ方については第９図により後述することにする。
最後にチップ上の予め配置した特定の論理ブロック以外の信号遅延時間等を考慮する必要のない残りの論理ブロックについてはこの作成されたファイルを自動配置システムに入力することにより配置処理を実施する。
以上が本発明の概略であり、この方法により設計者の意図する論理ブロックの配置が行え、信号伝達遅延時間を満足する配置とすることが可能となる。
次に、第４図から第１０図の表示画面に表示された論理ブロック名称一覧と下地情報、論理ブロック間関係テーブルを使って第１図にて説明した処理をさらに詳しく説明する。
第４図は、第１図のフローチャートでいうステップ１０３で論理ブロック名一覧を表示する論理ブロック名ウインド（４０１）と下地情報を表示する下地ウインド（４０２）が表示画面上に表示された状態の図である。
第４図では、第３図の論理ブロックA,B,C,Dをそれぞれ、LOGIC-BLOCK-A，LOGIC-BLOCK-B,LOGIC-BLOCK-C,LOGIC-BLOCK-Dという名称で表している。
次に、下地ウインドに論理ブロックを配置する処理について第５図を使って説明する。
第５図ではまず、論理ブロック名ウインドをアクティブウインドとして選択し、この中より、配置位置を指定したい論理ブロックを選択する。次に、下地ウインドをアクティブウインドにして、先に選択した論理ブロックを下地ウインド上に配置したい位置を指定することにより配置する。尚、この指定にはマウス等により所定の場所を指定することにより配置することが考えられる。下地ウインド上の論理ブロックの位置を認識する手段としては、XY座標、マス目等を用いることが考えられる。この例では、マス目を使用することにする。この際、基準点を四隅のどこかに定め、そこを（１、１）として２次元で表現すればよい。
第５図の例では、まず論理ブロックLOGIC-BLOCK-Cを配置位置を指定したい論理ブロックとして選択し、選択された論理ブロックCを配置する場所としてまず下地画面上に矢印等が表示され、オペレータが所望の配置場所をこの矢印により指定することにより図５のように論理ブロックCが表示されることになる。尚、この例では、論理ブロックを四角形を用いて表現しているが、この四角形の面積は、論理情報のファイルを読み取った時に抽出した論理ブロックの論理規模により、論理ブロックの論理素子を配置するのに必要とされる面積を概算して、それに匹敵する面積を表示することで、実際の配置により近いものとすることができる。これは、あくまでも概算面積なので、四角形でなく、円を用いても、他の矩型を用いてもかまわない。
第５図と同様に第６図では、論理ブロック名ウインドより論理ブロックLOGIC-BLOCK-Aを選択して、その後、選択した論理ブロックAを下地ウインド上の下地情報上に指定する。ここで、論理ブロックAは論理ブロックCに比べ論理素子の数が倍になるので、画面上の表現面積も約倍で表現されることになる。一旦配置を行った後に下地ウインド上の下地情報にて各論理ブロックを認識するには、例えば、論理ブロック名ウインド内の論理ブロック名称の表示色を各々異なる色として、下地情報上の論理ブロックの塗りつぶし色と同じにする等の表現にして容易に対応付けできるようにすることなどが考えられる。また、下地ウインド上の下地情報に配置された論理ブロックをマウスでクリックすることでその論理ブロック近辺にその論理ブロック名称を表示することなども考えられる。
同様の方法で第７図で示すように、LOGIC-BLOCK-B,LOGIC-BLOCK-Dについても配置を行う。
次に第８図により各論理ブロック間の結線関係を表示する処理について説明する。
下地ウインド上の下地情報に所望の論理ブロックの配置が終了すると、例えば第８図に示すような予め作成しておいた結線のオプションウインドのボタンを使って、下地ウインド上の論理ブロック間の結線状態を論理ブロック間にまたがる線分により表示する。この例の場合は、論理ブロックAと論理ブロックC間に接続関係があり、同様に論理ブロックCと論理ブロックD間、そして論理ブロックDと論理ブロックB間が接続関係があることが認識できる。さらに論理ブロック間の配置可能条件を示す場合に、線の太さを変更して表現して表現する方法が考えられる。この線分の太さは例えば第１０図に示すようにブロック間のネット数の数により決定して第８図のように表示される。太い線で結合されている論理ブロック間はお互いをより近くに配置することが望まれることが、一旦配置を行い結線関係をこの方法による表示を行えば一目瞭然で認識できる。この例では、論理ブロックAと論理ブロックCが結合度が高いので線が論理ブロックCと論理ブロックD間の接続線や論理ブロックDと論理ブロックB間の接続線よりも太くなっている。線の太さを変更するほか、線の色を変更したり、線の種別、点滅等、その表現方法はいろいろ考えられる。どれを使用するかは、ユーザの使い易いものを使用すればよい。また、論理ブロック間が離れすぎていて、信号伝達遅延時間を満足できないような配置関係にある場合には、配線の点滅等により警告するなどの表現も可能である。
次に、一旦配置を行い結線関係を表示したが、論理ブロックの配置が配置可能条件に適合しない場合に、論理ブロックの配置場所の変更を行う例を第８図、第９図を使って説明する。
第８図により各論理ブロックについて配置を行い結線関係を表示させたが、この表示では論理ブロックAと論理ブロックCは線分が太く、結線関係の度合いが高いものであり、信号伝達遅延時間を満足させるためにはよりこの論理ブロック同士はより近くに配置した方がよいということになる。よって、例えば第９図のように論理ブロックCの領域を選択・指定することにより、論理ブロックCを論理ブロックAに近づけるべく上方に移動する。移動させる処理ブロックが配置可能条件を満たすかどうかは、再配置後改めて条件比較を行っても良いし、移動時に現在位置を配置可能条件に照らし合わせ、配置可能条件を満たす位置に来た時点でオペレータに知らせる（例えば、点滅等を止め、通常の表示に戻す）ようにする。また本実施例では論理ブロックBと論理ブロックD間も論理ブロックCと論理ブロックD間と同程度の結線関係を要求されるので適当な位置に論理回路Bを移動させる。このような配置指示により信号伝達遅延時間を満足させる配置が可能となる。
このようにして配置された論理ブロックの配置指示の結果を、例えば、論理ブロック名称と２次元座標の組み合わせで配置指示としてファイルに出力して、後に自動配置処理プログラムにおいて、作成されたファイルを入力して、この配置指示を参考に配置位置を決定することで、論理設計者が意図する信号伝達遅延時間を満足させる配置配線が行えることになる。
本実施例では、説明を簡単にするため、論理ブロックの数を４つで説明したが、実際の論理設計の世界では、論理規模の大規模化に伴い、数十から数百に及ぶ規模の論理ブロックについて同様の方法で配置できることは言うまでもない。このような論理ブロックの配置位置指定を先に述べた発明の技術を使用して自動配置前にあらかじめ論理設計者がおこなうことで、自動配置の処理を容易にして、高速処理を可能とさせることができる。また、論理を熟知した論理設計者が配置位置を指定することで、信号伝達遅延時間の超過を防ぐ効果は大きい。
また、上記実施例は、論理ブロックの配置位置指定を例にしてあげたが、論理ブロックの単位が論理素子１つと考えれば、論理素子単位での配置位置指定も同様の技術で容易に可能であり、信号配線レベルでのより詳細な、信号伝達遅延時間を満足させる配置位置指定が可能となり、目的とする半導体集積回路の実装設計が可能となる。
産業上の利用可能性
本発明によれば、信号伝達遅延時間制約の厳しい論理の論理素子配置位置決定に際して、論理設計者が意図する配置位置指定を、表示画面上で論理ブロック名と下地情報を表示して対話形式で指定可能とすること、及び、その際に結合度を表示することで容易に可能とすることができる。
また、意図する論理ブロックや論理素子のみ先行配置し、その配置指示結果を自動配置システムにファイルとして引き渡すことで、残りの論理ブロック又は論理素子を自動配置処理し、よって自動配置処理の信号伝達遅延時間制約考慮の処理アルゴリズムを簡略化でき、処理時間の短縮を行うことができる。
さらに、全てを自動で配置した場合に比べても、設計者の知識が十分に配置に反映されているため、全体的に信号伝達遅延時間を考慮した最も適した配置配線結果を得ることができる。
【図１】
0003848685.tif 000002
【図２】
0003848685.tif 000003
【図３】
0003848685.tif 000004
【図４】
0003848685.tif 000005
【図５】
0003848685.tif 000006
【図６】
0003848685.tif 000007
【図７】
0003848685.tif 000008
【図８】
0003848685.tif 000009
【図９】
0003848685.tif 000010
【図１０】
0003848685.tif 000011