JPH04304656A - 自動マクロ最適順序化方法 - Google Patents

自動マクロ最適順序化方法

Info

Publication number
JPH04304656A
JPH04304656A JP3348955A JP34895591A JPH04304656A JP H04304656 A JPH04304656 A JP H04304656A JP 3348955 A JP3348955 A JP 3348955A JP 34895591 A JP34895591 A JP 34895591A JP H04304656 A JPH04304656 A JP H04304656A
Authority
JP
Japan
Prior art keywords
macro
stack
ordering
macros
automatic
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
JP3348955A
Other languages
English (en)
Other versions
JP2575564B2 (ja
Inventor
Mark D Bolliger
マーク・デビツド・ボリガー
Bruce A Kauffmann
ブルース・アラン・カウフマン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04304656A publication Critical patent/JPH04304656A/ja
Application granted granted Critical
Publication of JP2575564B2 publication Critical patent/JP2575564B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は自動マクロ最適順序化方
法に関し、特に半導体チツプの設計技術について、半導
体チツプ内に組み込まれるべき垂直又は水平のデータパ
ススタツク内のマクロの物理的順序を最適化する技術に
適用して好適なものである。
【0002】
【従来の技術】データパスチツプ(例えばマイクロプロ
セツサ)はデータパス論理回路、制御論理回路及びメモ
リアレイを用いて実施される。従来、データパス論理回
路は例えば、1986年10月発行IEEE  ICC
D会報「インテル社80386 のアーキテクチヤ」1
54頁〜160頁及び1986年発行「IBM  RT
パーソナルコンピユータ技術」、SA23−1057「
ROMP/MMU回路技術及びチツプ設計」66頁〜7
1頁に記載されているように、ビツトスタツクの形式に
構成されている。ビツトスタツク(又はスタツク)はレ
ジスタ、アドレス、シフタ、マルチプレクサ及びバツフ
ア等のようなデータパスマクロから構成される。データ
パスマクロは垂直に(又は水平に)スタツクされ、かつ
垂直(又は水平)配線又はバスにより専用の配線がなさ
れている。 この明細書に述べる最適化技術においては、垂直スタツ
クを順序化する場合について述べる。しかしながら、本
発明による技術は水平データパススタツクにも同様に適
用できる。
【0003】データフロー情報はビツト整列データパス
パイプラインに沿つて処理される。データパスマクロの
動作は標準セルの形式で用いられる制御論理回路(又は
ランダム論理回路)によつて制御される。また大型メモ
リアレイ(キヤツシユ、レジスタフアイル)及び特定の
目的で予め設計されたマクロは必要に応じて用いられる
。データパスチツプは一般的に異なる形式のオブジエク
ト(又はブロツク)を組み合わせたものから構成されて
いる。数百のデータパスマクロ(チツプ面積の30〜7
5〔%〕)、数千の小型論理セル(チツプ面積の25〜
50〔%〕)等はメモリアレイ(チツプ面積の0 〜3
0〔%〕)のような2、3の大型マクロを含む。図1の
ような1つ以上のデータパススタツクの配置を必要とす
るデータパス論理回路は珍しくない。
【0004】
【発明が解決しようとする課題】上述のように、本発明
の技術はチツプ内に組み込まれるべき各データパススタ
ツク内のマクロの物理的な順序化を最適化することであ
る。この技術がない場合、従来のブロツク配置技術(代
表的には2次元的に管理をする)では、1次元スタツク
についてマクロを物理的に最適順序化することができな
い。マクロの順序化を最適化できないとチツプ設計の際
に重大な問題を生ずる。スタツクマクロの各ビツトはマ
クロバスを受け入れることができる予定チヤネル数の物
理的配線チヤネル(すなわちスタツクの選択されたマク
ロ間を予め決められたように物理的に接続する手段)を
有する。スタツクの物理的な限界条件の下でスタツクを
配線するためには、各ビツトを通つて配線するバス数が
当該ビツトを通つて利用できる許容配線チヤネル数より
小さいか又は等しいことが必要である。後述するように
、特定のマクロが他のバスを適合するのに必要なビツト
当たりの配線チヤネル数において不十分であるとき、当
該バスはスタツクを出た後再度当該スタツクに入ること
により密集を回るように配線しなければならない。この
場合、当該スタツクは次式
【0005】
【数1】 によつて表される割合で増えて行く。ここでNumNe
tsInBusはバス内の配線数、WidthInMi
cronsは配線間の対応する空間についての1本の配
線幅(ミクロン)である。
【0006】さらに、要求されたバス相互接続を適合す
るために必要なビツト当たりの配線チヤネル数を最適化
しながら削減することはスタツク内にすべての配線を埋
め込むための柔軟性をチツプ設計者に提供する。さらに
、要求される配線チヤネル数が削減された場合、各ビツ
ト幅は物理的に一段と小型に設計され、その結果スタツ
クの幅が全体的に一段と狭くなる。また、スタツクマク
ロの順序の最適化は配線容量を相対的に縮小するバス配
線の長さを縮小し、これによつてチツプの性能を向上さ
せる。
【0007】公開文書に記述されている2次元設計技術
に基づく2つのプロセツサは、IBM上級研修会、IC
CD−89会議「IBM  RISCチツプ設計方法論
」143頁〜147頁及び1989年6月発行26AC
M/IEEE設計自動化会議「データパスチツプ(マイ
クロプロセツサ)配列のための多重領域分割及び平面」
に記載されているようなCPLACE及びMSMOであ
る。CPLACEは順序化された利得を利用する配置プ
ログラムに基づいて小さく分ける。この技術によりマク
ロのスタツクを半分に分けて、その分割された2つの間
の接続数を最小限にするようにその分割された2つの間
のマクロを再分配する。各境界を横切る最少の接続数が
見つかるまで当該プロセスは続けられる。MSMO処理
時、いくつかの考えられる領域配列が評価され、タイミ
ング及び大きさの必要条件を整合させると共に、全配線
において最短の長さ及び最小のオーバフローを提供する
基本的な計画が選択される。
【0008】比較例として、13664 個の入出力接
続をもつ139 個のマクロ、157 本のバスを有す
るメインビツトスタツクを検査した。ランダムな順序の
スタツクマクロから開始したところ、MSMO処理はビ
ツト当たり17本の配線チヤネルを必要としたのに対し
て、CPLACE処理はビツト当たり15本の配線チヤ
ネルを必要とした。 いずれの処理方法でも最適条件どころか許容できるよう
な配列(例えばビツト当たり12〜14本の配線チヤネ
ル)でさえも生成したとは考えられない。このような最
適な順序化を得るためにはビツトスタツク配列を生成し
た最後のMSMO又はCPLACEを手動により再設計
し直す時間が必要であつた。かかる処理は、特に最終設
計が許容できるようになるまでの間に、何回もデータビ
ツトスタツクを特別に変更するようなマクロの場合は、
明らかに煩雑である。各繰返しにおいて、チツプ設計者
は提案されたデータパススタツクの特定の特徴を、当該
スタツクの内部配線に必要なビツト当たりの最小限のビ
ツト数を含めて、知ることが必要となる。
【0009】このように、半導体チツプ設計技術の分野
において、従来の場合よりも大きい範囲で、しかもビツ
ト当たりの許容配線チヤネル数を得るためにスタツクを
手動により再順序化する必要がないような一段と効果的
な手法で、スタツクマクロの物理的な順序を最適化する
ことができるような自動順序化技術が求められている。
【0010】
【課題を解決するための手段】かかる課題を解決するた
め本発明においては、半導体チツプ内のマクロを最適に
物理的に順序化するための新規な自動化された方法を提
案する。各マクロはスタツク内の他のマクロと予め決め
られたように接続する少なくとも1つのバス接続を有す
る。1つの基本的な特徴において、本発明方法は、順序
化するためにスタツク内のマクロを選択するステツプと
、全体的に考慮して選択されたマクロに予め決められた
ように接続されたバスが他のスタツクマクロに接続せず
に最少数のスタツクマクロを通るようにスタツク内の選
択されたマクロを順序化するステツプと、マクロの順序
化をする必要がなくなるまですべてのスタツクマクロに
対してマクロ選択ステツプ及びマクロ順序化ステツプを
反復するステツプを含む。
【0011】特に、選択されたマクロを順序化するステ
ツプはスタツク内の異なる位置に当該マクロを繰り返し
移動させ、予め決められたように当該マクロに接続され
たバスを通過するスタツクマクロの合計数を各繰返しに
おいて決定するステツプを含む。さらに、マクロ順序化
ステツプは予め決められたようにマクロに接続されたバ
スがマクロに接続せずに最少数のスタツクマクロを通過
するようにスタツク内の位置を識別するステツプを含む
。また上述のことは順序化されるべき次のスタツクマク
ロを選択するための特定の指針になる。またこの方法の
他の特徴は以下に述べる。
【0012】他の基本的特徴において、本発明方法は、
順序化するためにスタツク内のマクロを選択するステツ
プと、スタツク内の選択されたマクロを最適順序化する
ステツプと、複数のスタツクマクロに対してマクロ選択
ステツプ及び順序化ステツプを反復するステツプと、マ
クロ選択ステツプ及び順序化ステツプを多重に適用する
反復ループによりスタツクマクロの部分集合のマクログ
ループすなわち、スタツクのうち少なくとも2つのマク
ロを含むマクロの反復性部分集合を形成するステツプと
、形成されたマクログループを単一のスタツクマクロと
して処理するステツプと、マクロの順序化及び又はマク
ロのグループ化の必要がなくなるまでスタツクを含むマ
クロに対して上述の各ステツプを反復するステツプと、
形成された各マクログループ内のマクロを順序化するス
テツプとを有する。マクログループ内のマクロを順序化
するステツプは当該グループ外のすべてのマクロの位置
を固定してマクログループ内に含まれたマクロに対する
上述の自動化方法のステツプを実行することを含む。他
の特徴においては、最適順序化ステツプは、予め決めら
れたように選択されたマクロに接続されたバスがマクロ
に接続せずに最少数の他のスタツクマクロを通るように
当該スタツク内の選択されたマクロを順序化するステツ
プを含む。
【0013】本発明の技術は従来の処理技術よりかなり
大幅にスタツクマクロの順序化を最適化する。出力順序
は最初のスタツクの順序(すなわちランダムに又は部分
的に最適化された)とは関係なく、従つて当該技術の自
動化された手法は迅速かつ効率的である。当該技術は半
導体設計変更が要求されたときほとんど同時にスタツク
マクロの順序化を最適化させることができる。マクロと
相互に接続するバスの長さを最小限にすることによつて
、ビツト当たりの配線チヤネルの必要数が一段と低減さ
れ、これによりスタツク内の全配線を埋め込む機会を有
利に提供することができる。
【0014】
【作用】各マクロはスタツク内の他のマクロと予め決め
られたように接続する少なくとも1つのバス接続を有す
る。当該順序化技術はマクロに接続せずに予め決められ
たようにスタツクマクロに接続されたバスを通過するス
タツクマクロの合計数をスタツク内の各マクロに対して
最小限にすることに基礎を置いている。さらに、マクロ
グループは反復ループにより生ずるスタツクマクロの部
分集合から形成される。各マクログループはスタツクの
うちの少なくとも2つのマクロを含む。一度定義される
と、マクログループは単一のスタツクマクロとして処理
され、最適化処理が続けられる。すべてのマクロの最適
な位置が識別され、その結果形成されたマクログループ
は拡大され、当該グループ内の各マクロの最適な位置が
識別される。
【0015】
【実施例】以下図面について本発明の一実施例を詳述す
る。
【0016】図1はデータパス論理スタツク12及び1
4、制御論理回路16及び18、メモリ20並びにオフ
チツプ駆動回路22をもつ多重領域マイクロプロセツサ
チツプの平面構成を示す。図のように、データパス論理
回路14は予め決められたように相互接続された複数の
ブロツクすなわちマクロ1、マクロ2、マクロ3、マク
ロ4、マクロ5及びマクロ6をもつ垂直データスタツク
を有する。データパスマクロはレジスタ、加算器、シフ
タ、マルチプレクサ、バツフア等を含む。本発明はデー
タパススタツク内の各マクロ、例えばマクロAの順序を
最適化する技術を含む。
【0017】例として、図2は32ビツトのスタツクマ
クロ24を示す。この例の場合、各ビツトは4つの許容
配線チヤネル26を有する。4つのチヤネルのうちの1
つのチヤネル27が黒く塗り潰されている(図3参照)
。 当該チツプの設計ではデータスタツクマクロの各ビツト
内の1つ(又は2つ以上)の配線チヤネルが例えば内部
配線のために利用できない。利用できるチヤネルの最大
数(この例においては3)がマクロ間の予め決められた
バスの接続を調整するために必要なチヤネルの最少数以
上になつたときには、当該スタツクの外部に配線する必
要がある。
【0018】図4に示すnビツトのマクロにおいて、1
つの配線チヤネルがすでに使用されているので、相互に
接続する3つのマクロバスだけが4つの利用できるビツ
ト配線チヤネルを通過することができる。かくして、予
め決められた必要なマクロを相互に接続するためにスタ
ツクを分けなければならない(すなわち外部配線しなけ
ればならない)。マクロを相互接続するようにデータパ
ススタツクを分けると、必然的にスタツクの大きさと共
にチツプ製造の複雑さが増大し、これにより一般的には
チツプの大きさが増大するのでチツプ製造のコストが増
加する。実際上、各ビツトは4つ以上の配線チヤネル、
例えば12個のチヤネルないし16個のチヤネルを含ん
でいる。しかしながら、すでに指摘したように、ビツト
当たりの配線チヤネル数を最少にすることによりマクロ
の大きさ、従つてマクロスタツクの大きさ、従つてチツ
プの寸法を低減させるのに必要なスタツク構成を確認す
ることがこの場合にも望ましい。さらに、データパスス
タツク内のビツト当たりの利用可能配線チヤネル数はチ
ツプ製造上の一定の基本原則によつて一般的に制限され
る。すなわち、ビツト当たりの配線チヤネル数は使用さ
れる技術により決まる。
【0019】さらに、このようにスタツクを配列するこ
との最大の利点はマクロを相互に接続するバスを適応さ
せるために必要とされるビツト当たりの配線チヤネル数
が現在使用されている技術により利用できる最大数以下
に削減されることである。これによりチツプ設計者は配
線全体のうちの一部を当該スタツク内に組み込むことに
よつてさらに全チツプの大きさを縮小することができる
。図5(A)にはランダムロジツクメモリ(RLM)3
0と垂直データスタツク32のうちのマクロAとの間の
全体的な接続を示す。この実施例の場合、ビツト当たり
の配線チヤネル数がスタツク内の全配線チヤネルに適応
するためには不十分であると仮定して当該スタツクをマ
クロA及びマクロBに分ける。図示するように、配線3
4の重要部分はスタツク32の外部に配設される。全配
線範囲はチツプを複雑にし及び又はチツプの大きさを増
大させる点において重要な意味をもつ。図5(B)に示
すように、データパススタツク32内の配線チヤネルを
自由にすることによつて、マクロB及びマクロC内の有
効配線チヤネルを通るすべての配線34を用いて一段と
効率的に当該スタツクをマクロC及びマクロDに分ける
ことができ、これにより全配線量を一定の範囲に縮小す
ることができる。
【0020】垂直データパススタツクについて本発明に
よる最適化技術の一実施例の詳細を図6〜図12を参照
して以下に述べる。
【0021】初期動作時、本発明のスタツクマクロ順序
最適化装置は垂直スタツク順序の頂点から開始して徐々
に下がつて行く。各マクロは「最適な」位置に繰り返し
移動される。最適な位置は、特定のマクロに接続するバ
スの合計の長さが最少となる位置として定義される。当
該スタツク全体に亘つてこのことが適用されたとき、当
該技術によりマクロは相互に接続されていることに基づ
いて強制的に互いに緊密化するように処理される。この
処理の間に、マクロの部分集合は循環順序すなわちルー
プになり、本発明に従つてマクロの部分集合は一緒にグ
ループ化されて次の処理のために単一のマクロとして処
理される。1グループ内のマクロ間の相互接続を無視す
ることによつて、当該グループは現在の順序においてそ
の最適な位置に引きつけられる。このような方法により
当該順序を最適化した後、グループを含むマクロは、グ
ループ外のすべてのマクロの位置を固定しかつグループ
内のマクロを処理するために最適順序化技術を再帰的に
呼び出すことによつて最適条件に順序化される。
【0022】図6〜図8には本発明による最適化技術の
1つの機能的なフローチヤートを示す。図6に示すよう
に、初期条件を用いて「初期条件」ステツプ40の処理
が開始される。マクロは初期配列状態にあり、ランダム
に又は部分的に最適化され得る。各スタツクマクロはス
タツクマクロに接続するバスのリストを含む。例えば、
プロセツサは次の表のような初期スタツク配列及び対応
するバス接続を与えられる。
【0023】
【表1】 ここでマクロを移動させるとき、プロセツサは特定のマ
クロに接続するバスだけを考慮に入れるので、本発明の
技術にはバス接続が重要になる。初期条件が一度定義さ
れると、プロセツサは接続点42を通つて「現在のマク
ロ=最上部の可動マクロ」処理ステツプ44において、
現在のマクロを識別して、垂直スタツク配列中の最上部
位置を占有するマクロとして処理する。その後プロセツ
サは接続点46を通つて「現在マクロの最少カウントを
見出す」処理ステツプ48に進む。
【0024】ここで用いられているように、現在マクロ
位置の「カウント」は現在のマクロのバスが接続なしに
通過する(又は側を通る)スタツク内のマクロの総数に
等しい。図9において、マクロAは当該マクロAに接続
された4つのバスすなわちバス2、3、4及び7を有す
るように示されている。図示の順序位置において、バス
2は接続なしに2つのマクロを通過し、バス3は接続な
しに1つのマクロを通過し、バス4は接続なしに3つの
マクロを通過し、バス7は接続なしにはマクロを通過し
ないので、マクロAは6カウントを有する。さらに例え
ば、マクロEはバス1が接続なしに4つのマクロを通過
し、バス5は接続なしに2つのマクロを通過するのでこ
の配列において5カウントを有する。
【0025】図10の実施例において、初期時マクロA
はマクロ4及びマクロ5間に位置決めされる(垂直スタ
ツクの最左側)。この順序において、マクロAに接続さ
れた3つのバスは6カウントを生成する。マクロAを再
帰的に当該順序の上に移動させることによつて、カウン
トは6から5、4に減る。図示のように、サドルはマク
ロAが2つの異なる位置、すなわち最上部から第2、第
3番目の位置の最少カウント(4)を有するところに形
成される。一度カウントが増加すると処理は中断され、
マクロAの場合はカウントが6になると、当該スタツク
の最上部位置に位置決めされる。
【0026】ここで、他の処理技術のように、選択され
たマクロは、例えばこの明細書において述べた処理プロ
グラムに基づくCPLACE最小カツトに従つて最適条
件に順序化され得る。
【0027】図6において、一度最少カウントが確立さ
れると、プロセツサは「現在のマクロは移動するか」処
理ステツプ50において、現在のマクロが最少カウント
を見つけるために移動されるか否かを決定する。否定結
果が得られると、「現在のマクロは最下部のマクロか」
処理ステツプ52において現在のマクロがスタツク内の
最下部のマクロを含むか否かの判定がなされる。肯定結
果が得られると、プロセツサは以下において述べる図8
の第2処理80に進む。判定ブロツク52において否定
結果が得られると、プロセツサは垂直スタツク内の次の
マクロを定義するが、このマクロは「現在のマクロの直
下の次のマクロを定義する」処理ステツプ56において
、現順序内の処理されたマクロの直ぐ下のマクロである
(図12においてマクロAは処理されたマクロでありマ
クロBは次の現在マクロである)。その後、接続点46
に進んで処理ステツプ48に戻る。
【0028】今処理されたマクロが当該順序を移動して
いた場合、プロセツサは先に進んで反復ループ内にスタ
ツクのマクロのいずれかが存在するか否かを識別する。 特に、判定ブロツク50において肯定結果が得られたと
き、プロセツサは「現在の順序配列を保存して現在の順
序配列と以前の順序配列を比較する」処理ステツプ58
において、現在の順序配列を保存してこの新しい順序配
列を以前に保存されたすべての順序配列と比較する。そ
の後、プロセツサは「順序が整合するか」処理ステツプ
60(図7)において、保存された順序配列内に整合が
あるか否かを決定する。整合がないとき、プロセツサは
「現在のマクロは順序を上げるか」処理ステツプ62に
おいて、今処理されたマクロが最少カウントを得るため
に順序を上げたか否かを判定する。否定結果が得られる
と、「以前のマクロの位置を占有するマクロになるよう
に現在のマクロを定義する」処理ステツプ64において
、次の現在マクロが移動前の順序内の以前のマクロ位置
を占有するマクロとして定義される(図12の状態B参
照)。処理されたマクロが順序を上げたとき、新しい現
在マクロは「最上部のマクロとして現在のマクロを定義
する」処理ステツプ66において、垂直スタツクの最上
部マクロとして定義される(図12の状態C参照)。 処理ステツプ64又は66において新しい現在マクロを
定義した後、プロセツサは接続点46(図6)から判定
ブロツク48に戻る。
【0029】判定ブロツク60において順序配列の整合
が見出されたとき、プロセツサは「反復マクロの部分集
合を識別する」処理ステツプ68において、当該順序の
マクロが反復マクロの部分集合を含むことを決定する。 比較された順序配列が整合するとこのことはマクロの部
分集合が反復ループに取り込まれたことを示している。 当該反復はマクロの相互接続によつて生ずる。整合が一
度確立されると、現在の順序配列及び現在の順序と整合
している保存順序配列間の保存順序配列が検査され、2
つの同一の順序配列間に移動したマクロが「反復マクロ
によつて部分集合を識別する」処理ステツプ68におい
て当該ループ内のマクロを構成していることが分かる。 例えば、図11は現在順序配列及び以前に保存された4
つの保存順序配列を示す。現在順序配列は第3番目に保
存された保存順序配列と同一であり、マクロB及びマク
ロDだけがこの同一の配列間を移動したことがある。か
くして、マクロB及びマクロDを含む反復部分集合が識
別される。
【0030】マクロの反復部分集合を識別した後、プロ
セツサは再帰呼出し(後述する)が「再帰呼出し中か」
処理ステツプ70において処理中か否かを判定する。否
定結果が得られたとき、プロセツサは、「反復マクロの
部分集合のグループ化、以前のすべての保存順序配列の
抹消、現在順序配列の保存」処理ステツプ72において
、反復マクロの部分集合のマクログループを形成し、以
前に保存されたすべての保存順序配列を抹消し(当該ス
タツクは異なるマクロの組み合わせから構成されるので
)、次の比較のために現在の順序配列を保存する。その
後、プロセツサは「現在のマクロを最上部のマクロとし
て定義する」処理ステツプ74において、次の現在マク
ロを最上部のマクロとして定義して接続点46(図6)
を介して処理ステツプ48に戻つてこの新しい現在マク
ロに対して最少カウントを決定する。
【0031】判定ブロツク70において、再帰呼出し中
であるとの判定結果が得られたとき(すなわち、プロセ
ツサは以前に定義されたグループ内のマクロを最適順序
化している)、プロセツサは「グループ内のマクロに対
して最適な順列を見つける」処理ステツプ76において
、グループ内のマクロに対して最適な順列を決定する。 当該スタツク内のグループの位置が変化し及び又はルー
プが発見された時の当該グループ内のマクロの順序が必
ず最適な順序にはならないのでこの処理が必要となる。 分析中の特定のグループについて最適な順列を見つけた
後、当該プロセツサは図8の「第2処理に進む」処理ス
テツプ78に戻る。
【0032】「第2処理に入る」処理ステツプ80に進
んだ後最初に、プロセツサは「マクログループがあるか
」処理ステツプ82において、現在順序配列に残つてい
るマクログループ又は付加的なマクログループがあるか
否かを判定する。否定結果が得られたとき、プロセツサ
は「再帰呼出し中か」処理ステツプ86において、マク
ログループが再帰呼出し中か否かを判定する。再度否定
結果が得られると、スタツクの最適化は「最適化完了」
処理ステツプ88において完了する。処理が再帰呼出し
中のとき、「再帰呼出しから戻りかつ形成された新しい
マクログループはない」処理ステツプ90において、形
成された新しいマクログループがないので再帰呼出しか
ら戻る。この場合、再帰呼出し下のグループの最適化は
完了する。
【0033】当該順序がマクログループを含むとき、プ
ロセツサは、「グループ外のすべてのマクロの位置の固
定、グループの拡大、以前のマクロの順序配列の抹消、
現在の順序配列の保存」処理ステツプ84において、特
定のグループ外のすべてのマクロの位置を固定し、当該
グループ内のマクロを拡大し、以前に保存されたすべて
のマクロの順序配列を抹消しかつ現在の順序配列を保存
することによつて各グループを最適化する。その後、当
該プロセツサは「第2処理から戻る」処理ステツプ94
から接続点42を介して図6及び図7のマクロの順序処
理に戻る。「接続点42に戻る」処理ステツプ92にお
いて、各グループへの再帰が反復される。形成されたグ
ループの再帰分析の順序は重要ではない。
【0034】上述の通り本発明を最適な実施例に基づい
て特定的に図示、説明したが、本発明の精神及び範囲か
ら脱することなく形式及び詳細構成の双方について種々
の変更を加えても良い。
【0035】
【発明の効果】上述の自動化処理技術はオペレーテイン
グシステム又は操作言語を用いる際に容易に実行するこ
とができることを当該分野の知識を有する者は理解でき
る。さらに、上述の技術は従来の技術と比較してスタツ
クマクロの順序を迅速かつ効率的に提供ししかも一段と
良いマクロの順序を生成する。出力の順序は初期時のス
タツクの順序とは関係なく当該技術は、スタツク設計変
更が要求されたときほとんど同時に起こるスタツクマク
ロの順序を最適化させることができる。さらに、相互に
接続されたマクロバスの長さを最小限にすることによつ
て、ビツト当たりの必要な配線チヤネル数が一段と少な
くなり、これによつて当該スタツク内のすべての配線を
埋め込むための機会を提供することができる。
【図面の簡単な説明】
【図1】図1はマイクロプロセツサチツプ設計の一実施
例を示すブロツク図である。
【図2】図2は図1のスタツクマクロのフオーマツトを
示す略線図である。
【図3】図3はマクロの1ビツトを拡大した略線図であ
る。
【図4】図4はデータビツトスタツクの1つのマクロを
一部は通過し一部はマクロの周囲を通るバス配線を示す
接続図である。
【図5】図5(A)及び(B)はスタツクマクロA及び
外部RLM間の全配線の一実施例を示すブロツク図であ
る。
【図6】図6は本発明によるスタツク順序最適化処理手
順の一実施例を示すフローチヤートである。
【図7】図7は図6に続く処理手順を示すフローチヤー
トである。
【図8】図8は図7に続く処理手順を示すフローチヤー
トである。
【図9】図9は図6〜図8のフローチヤートの説明に供
するスタツクのマクロ間バス接続の例を示す図表である
【図10】図10は本発明による選択されたマクロ(マ
クロA)の最適な位置を識別する際に検査されたいくつ
かの種々の順序配列を示す略線図である。
【図11】図11は本発明によるグループ化の概念の説
明に供する種々の保存順序配列を示す図表である。
【図12】図12は本発明により処理されるべき次に選
択されたマクロ(マクロB)、すなわち現在のマクロ(
A)の次の処理のための考えられる種々の位置を示す略
線図である。
【符号の説明】
10……マイクロプロセツサチツプ、12、14……デ
ータパス論理スタツク、16、18……制御論理回路、
20……メモリ、22……オフチツプ駆動回路、24…
…スタツクマクロ、26、27……配線チヤネル、30
……ランダムロジツクメモリ(RLM)、32……デー
タスタツク、34……配線。

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】半導体チツプスタツク内のマクロを最適に
    順序化する自動化方法において、上記各マクロは上記ス
    タツク内の他のマクロと接続する少なくとも1つの予定
    のバス接続を有し、上記自動化方法は(a)マクロを順
    序化するために上記スタツク内のマクロを選択するマク
    ロ選択ステツプと、(b)全体的に考慮して予め決めら
    れたように上記マクロに接続されたバスはマクロに接続
    せずに最少数の他のスタツクマクロを通るように上記ス
    タツク内の上記選択されたマクロを順序化するマクロ順
    序化ステツプと、(c)マクロの順序化が必要なくなる
    まで上記すべてのスタツクマクロに対して上記マクロ選
    択ステツプ(a)及びマクロ順序化ステツプ(b)を反
    復する反復ステツプとを具えることを特徴とする自動マ
    クロ最適順序化方法。
  2. 【請求項2】上記マクロ順序化ステツプ(b)は上記ス
    タツク内の異なる位置に上記選択されたマクロを繰り返
    し移動させ、かつ上記マクロに予め決められたように接
    続されたバスを通過したスタツクマクロの合計数を各繰
    返しにおいて決定するステツプを含むことを特徴とする
    請求項1に記載の自動マクロ最適順序化方法。
  3. 【請求項3】上記マクロ順序化ステツプ(b)は、上記
    選択されたマクロに予め決められたように接続されたバ
    スがマクロに接続することなく最少数のスタツクマクロ
    を通る上記スタツク内の上記選択されたマクロの位置を
    識別し、上記最少数を生成したとき上記多重スタツク位
    置が上記選択されたマクロについて識別され、さらに上
    記位置識別ステツプは、上記マクロ順序化ステツプ(b
    )に従つて順序化するために上記マクロ選択ステツプ(
    a)において選択されたとき、当該選択されたマクロが
    その初期位置から最も離れたスタツク位置を選択するス
    テツプを含むことを特徴とする請求項2に記載の自動マ
    クロ最適順序化方法。
  4. 【請求項4】さらに、上記自動マクロ最適順序化方法は
    初期マクロスタツク順序を定義するステツプを含み、上
    記初期マクロスタツク順序はランダムな順序又は予め決
    められた順序に配列されたマクロを有することを特徴と
    する請求項1に記載の自動マクロ最適順序化方法。
  5. 【請求項5】上記初期スタツク順序は上記スタツクの第
    1の端部にある第1のマクロ及び上記スタツクの第2の
    端部にある最後のマクロを含み、上記マクロ選択ステツ
    プ(a)ないし上記反復ステツプ(c)に従つたマクロ
    の処理方向は上記スタツクの上記第1の端部から上記ス
    タツクの上記第2の端部の方向であり、さらに上記マク
    ロ順序化ステツプ(b)に従つて順序化するために上記
    第1マクロを初期時に選択するステツプを含むことを特
    徴とする請求項4に記載の自動マクロ最適順序化方法。
  6. 【請求項6】第1のマクロの順序化の後に、上記マクロ
    選択ステツプ(a)は、スタツク内の上記今順序化され
    たマクロの位置が上記マクロ順序化ステツプ(b)後に
    変更されずに残つたとき、上記今順序化されたマクロの
    すぐ隣のマクロを処理するようなマクロの方向にあるマ
    クロを選択するステツプを含むこと特徴とする請求項5
    に記載の自動マクロ最適順序化方法。
  7. 【請求項7】第1のマクロの順序化の後に、上記マクロ
    選択ステツプ(a)は、上記今順序化されたマクロがス
    タツク内の新しい位置について処理するようなマクロの
    方向に移動されたとき、上記マクロ順序化ステツプ(b
    )において順序化される前のスタツクにおいて上記今順
    序化されたマクロの元の位置を占有しているマクロを選
    択するステツプを含むことを特徴とする請求項5に記載
    の自動マクロ最適順序化方法。
  8. 【請求項8】第1のマクロ及び第2のマクロの順序化の
    後に、上記マクロ選択ステツプ(a)は、今順序化され
    たマクロがスタツク内の新しい位置について処理するよ
    うなマクロの方向とは反対方向に移動されたとき、上記
    スタツクの上記第1の端部に位置決めされたマクロを選
    択するステツプを含むことを特徴とする請求項5に記載
    の自動マクロ最適順序化方法。
  9. 【請求項9】上記スタツクは垂直スタツクを有し、かつ
    上記第1の端部は上記第1に選択されたマクロが上記垂
    直スタツクの頂部マクロを有するように最上端部を有す
    ることを特徴とする請求項5に記載の自動マクロ最適順
    序化方法。
  10. 【請求項10】さらに、上記マクロ選択ステツプ(a)
    ないし上記反復ステツプ(c)の後に、上記半導体チツ
    プ上の順序化されたスタツクマクロを物理的に位置決め
    するステツプと、上記物理的に位置決めされたマクロ間
    を予め決められたようにバスにより物理的に相互に接続
    するステツプとを具えることを特徴とする請求項1に記
    載の自動マクロ最適順序化方法。
  11. 【請求項11】半導体チツプスタツク内のマクロを最適
    に順序化する自動化方法において、上記各マクロは上記
    スタツク内の他のマクロと接続する少なくとも1つの予
    め決められたバスを有し、上記自動化方法は(a)マク
    ロを順序化するために上記スタツク内のマクロを選択す
    るマクロ選択ステツプと、(b)上記スタツク内の上記
    選択されたマクロを最適に順序化するマクロ最適順序化
    ステツプと、(c)複数のスタツクマクロに対して上記
    マクロ選択ステツプ(a)及びマクロ最適順序化ステツ
    プ(b)を反復する反復ステツプと、(d)上記マクロ
    選択ステツプ(a)及びマクロ最適順序化ステツプ(b
    )を多重に適用する反復ループに取り込むべきスタツク
    マクロの部分集合でなるマクログループを形成し、上記
    マクロの反復部分集合は上記スタツクの少なくとも2つ
    のマクロを含むマクログループ形成ステツプと、(e)
    形成されたマクログループを単一のスタツクマクロとし
    て処理する処理ステツプと、(f)上記スタツクを構成
    するマクロについて、マクロ順序化及びマクログループ
    化の必要がなくなるまで上記マクロ選択ステツプ(a)
    ないし上記処理ステツプ(e)を反復する反復ステツプ
    と、(g)上記反復ステツプ(f)の後に、上記マクロ
    グループ形成ステツプ(d)において形成された各マク
    ログループ内のマクロを順序化し、当該マクログループ
    内のマクロを順序化するステツプは上記マクログループ
    外のすべてのマクロの位置を固定すると共に、上記マク
    ログループに含まれるマクロに対して上記マクロ選択ス
    テツプ(a)ないし上記反復ステツプ(f)を実行する
    ステツプを含むマクロ順序化ステツプとを具えることを
    特徴とする自動マクロ最適順序化方法。
  12. 【請求項12】上記順序化ステツプ(b)は全体的に考
    慮して予め決められたように上記選択されたマクロに接
    続されたバスがマクロに接続せずに最少数の他のスタツ
    クマクロを通るように上記スタツク内の上記選択された
    マクロを順序化するステツプを含むことを特徴とする請
    求項11に記載の自動マクロ最適順序化方法。
  13. 【請求項13】上記マクロ最適順序化ステツプ(b)は
    上記スタツク内の異なる位置に上記選択されたマクロを
    繰り返し移動させると共に、予め決められたように上記
    マクロに接続されたバスを通過したスタツクマクロの合
    計数を各繰返しにおいて比較するステツプを具えること
    を特徴とする自動マクロ最適順序化方法。
  14. 【請求項14】上記順序化ステツプ(b)は、予め決め
    られたように上記選択されたマクロに接続されたバスが
    マクロに接続せずに最少数のスタツクマクロを通つた上
    記スタツク内の上記選択されたマクロの位置を識別する
    ステツプを含み、上記選択されたマクロに対して上記多
    重スタツクの位置が上記最少数を生成するものとして識
    別されたとき、上記位置識別ステツプはさらにマクロ最
    適順序化ステツプ(b)に従つて順序化するためにマク
    ロをマクロ選択ステツプ(a)において選択したとき、
    当該選択されたマクロはその初期位置から最も離れたス
    タツク位置を選択するステツプを含むことを特徴とする
    請求項13に記載の自動マクロ最適順序化方法。
  15. 【請求項15】さらに、初期マクロスタツクの順序を定
    義するステツプを含み、当該初期マクロスタツク順序は
    ランダムな順序又は予め決められた順序に配列されたマ
    クロを有することを特徴とする自動マクロ最適順序化方
    法。
  16. 【請求項16】上記初期スタツク順序は上記スタツクの
    第1の端部にある第1のマクロ及び上記スタツクの第2
    の端部にある最後のマクロを含み、上記マクロ選択ステ
    ツプ(a)ないし上記マクロ順序化ステツプ(g)に従
    うマクロの処理方向は上記スタツクの上記第1の端部か
    ら上記スタツクの上記第2の端部の方向であり、さらに
    上記マクロ最適順序化ステツプ(b)に従つてマクロを
    順序化するために上記第1のマクロを初期時に選択する
    ステツプを含むことを特徴とする請求項15に記載の自
    動マクロ最適順序化方法。
  17. 【請求項17】第1のマクロの順序化の後に、上記マク
    ロ選択ステツプ(a)は、スタツク内の上記今順序化さ
    れたマクロの位置が変更されないまま残つたとき、当該
    今順序化されたマクロのすぐ隣のマクロを処理するよう
    なマクロの方向にマクロを選択するステツプを含むこと
    を特徴とする請求項16に記載の自動マクロ最適順序化
    方法。
  18. 【請求項18】第1のマクロの順序化の後に、上記マク
    ロ選択ステツプ(a)は、上記今順序化されたマクロが
    スタツク内の新しい位置について処理するようなマクロ
    の方向に移動されたとき、上記マクロ最適順序化ステツ
    プ(b)において順序化する前に、スタツク内の今順序
    化されたマクロの元の位置を占有するマクロを選択する
    ステツプ含むことを特徴とする請求項16に記載の自動
    マクロ最適順序化方法。
  19. 【請求項19】第1のマクロ及び第2のマクロの順序化
    の後に、上記マクロ選択ステツプ(a)は、今順序化さ
    れたマクロがスタツク内の新しい位置について処理する
    ようなマクロの方向とは反対方向に移動された時、上記
    スタツクの上記第1の端部に位置決めされたマクロを選
    択するステツプを含むことを特徴とする請求項16に記
    載の自動マクロ最適順序化方法。
  20. 【請求項20】第1のマクロ及び第2のマクロの順序化
    の後に、上記マクロ選択ステツプ(a)は、今順序化さ
    れたマクロを順序化した後上記マクログループ形成ステ
    ツプ(d)においてマクログループが形成されたとき、
    スタツクの第1の端部に位置するマクロを選択するステ
    ツプを含むことを特徴とする請求項16に記載の自動マ
    クロ最適順序化方法。
  21. 【請求項21】上記スタツクは垂直スタツクを有し、か
    つ上記第1の端部が第1に選択されたマクロが上記垂直
    スタツク内の頂部マクロを有するように最上端を有する
    ことを特徴とする請求項16に記載の自動マクロ最適順
    序化方法。
  22. 【請求項22】上記マクロ順序化ステツプ(b)は、ス
    タツクの順序を保存しその後に上記選択されたマクロを
    最適に順序化するステツプを含むことを特徴とする請求
    項11に記載の自動マクロ最適順序化方法。
  23. 【請求項23】上記マクログループ形成ステツプ(d)
    は、順序化された各マクロに対して現在のスタツク順序
    を各保存スタツク順序と比較するステツプと、上記比較
    の結果として反復ループによりスタツクマクロの部分集
    合を識別するステツプとを含むことを特徴とする請求項
    22に記載の自動マクロ最適順序化方法。
  24. 【請求項24】上記マクログループ形成ステツプ(d)
    の識別ステツプは、現在のスタツク順序及び同一の保存
    されたスタツク順序間のスタツク内の位置に移動したマ
    クロをスタツクマクロの反復部分集合として識別するス
    テツプを含むことを特徴とする請求項23に記載の自動
    マクロ最適順序化方法。
  25. 【請求項25】さらに、すべての保存されたスタツクの
    順序を削除し、その後マクログループを形成するステツ
    プを具えることを特徴とする請求項24に記載の自動マ
    クロ最適順序化方法。
  26. 【請求項26】さらに、上記マクロ選択ステツプ(a)
    ないしマクロ順序化ステツプ(g)の後に、上記半導体
    チツプ上の順序化されたステツプマクロを物理的に位置
    決めするステツプと、上記物理的に位置決めされたマク
    ロ間を予め決められたようにバスにより物理的に相互に
    接続するステツプとを具えることを特徴とする請求項1
    1に記載の自動マクロ最適順序化方法。
  27. 【請求項27】さらに、上記最適順序化されたスタツク
    を分けると共に、少なくとも1つのスタツクマクロに対
    して全体的に配線接続するステツプを具えることを特徴
    とする請求項11に記載の自動マクロ最適順序化方法。
JP3348955A 1991-03-05 1991-12-06 自動マクロ最適順序化方法 Expired - Lifetime JP2575564B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66490391A 1991-03-05 1991-03-05
US07/664903 1991-03-05

Publications (2)

Publication Number Publication Date
JPH04304656A true JPH04304656A (ja) 1992-10-28
JP2575564B2 JP2575564B2 (ja) 1997-01-29

Family

ID=24667925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3348955A Expired - Lifetime JP2575564B2 (ja) 1991-03-05 1991-12-06 自動マクロ最適順序化方法

Country Status (2)

Country Link
US (1) US5537332A (ja)
JP (1) JP2575564B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3988330B2 (ja) * 1999-08-04 2007-10-10 富士通株式会社 半導体設計システム及び半導体設計プログラムを記録した記録媒体
FR2804266B1 (fr) * 2000-01-20 2002-04-26 Auteuil Participation Et Conse Procede et systeme pour la diffusion de donnees en boucle
US8099701B2 (en) * 2009-02-27 2012-01-17 Oracle America, Inc. Efficient chip routing method and apparatus for integrated circuit blocks with multiple connections

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01241144A (ja) * 1988-03-23 1989-09-26 Toshiba Corp 半導体集積回路の概略配線方法
JPH02119242A (ja) * 1988-10-28 1990-05-07 Matsushita Electric Ind Co Ltd セル配置システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0074805B2 (en) * 1981-09-10 1992-03-11 Fujitsu Limited Semiconductor integrated circuit comprising a semiconductor substrate and interconnecting layers
US4495559A (en) * 1981-11-02 1985-01-22 International Business Machines Corporation Optimization of an organization of many discrete elements
US4630219A (en) * 1983-11-23 1986-12-16 International Business Machines Corporation Element placement method
US4701860A (en) * 1985-03-07 1987-10-20 Harris Corporation Integrated circuit architecture formed of parametric macro-cells
US4775942A (en) * 1985-12-09 1988-10-04 International Business Machines Corporation Seed and stitch approach to embedded arrays
US4815003A (en) * 1987-06-19 1989-03-21 General Electric Company Structured design method for high density standard cell and macrocell layout of VLSI chips
US4849904A (en) * 1987-06-19 1989-07-18 International Business Machines Corporation Macro structural arrangement and method for generating macros for VLSI semiconductor circuit devices
US4880754A (en) * 1987-07-06 1989-11-14 International Business Machines Corp. Method for providing engineering changes to LSI PLAs
JPH088304B2 (ja) * 1987-08-19 1996-01-29 富士通株式会社 半導体集積回路装置及びその設計方法
JPH01158758A (ja) * 1987-12-16 1989-06-21 Toshiba Corp 半導体集積回路
JPH02242474A (ja) * 1989-03-16 1990-09-26 Hitachi Ltd 素子配置最適化方法及び装置並びに最適配置判定方法及び装置
US5371684A (en) * 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01241144A (ja) * 1988-03-23 1989-09-26 Toshiba Corp 半導体集積回路の概略配線方法
JPH02119242A (ja) * 1988-10-28 1990-05-07 Matsushita Electric Ind Co Ltd セル配置システム

Also Published As

Publication number Publication date
JP2575564B2 (ja) 1997-01-29
US5537332A (en) 1996-07-16

Similar Documents

Publication Publication Date Title
JP4275013B2 (ja) データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。
US5596743A (en) Field programmable logic device with dynamic interconnections to a dynamic logic core
US5553001A (en) Method for optimizing resource allocation starting from a high level
US20070136709A1 (en) Floorplanning A Hierarchical Physical Design To Improve Placement And Routing
US11580055B2 (en) Devices for time division multiplexing of state machine engine signals
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
JP3832557B2 (ja) プログラマブル論理回路への回路の再構成方法および情報処理システム
US20020049958A1 (en) Logical synthesizing apparatus for converting a hardware functional description into gate-level circuit information
US9449133B2 (en) Partition based design implementation for programmable logic devices
JP2005123537A (ja) 半導体装置及び製造方法
US8006215B1 (en) Circuit clustering during placement
US6317863B1 (en) Method and apparatus for irregular datapath placement in a datapath placement tool
JPH04304656A (ja) 自動マクロ最適順序化方法
US6031980A (en) Layout apparatus for LSI using cell library and method therefor
JPH0850600A (ja) データパス自動配置方法及びその装置
US10769090B2 (en) Information processing apparatus, control method of information processing, and non-transitory computer-readable storage medium for storing program
US7290225B2 (en) Method for compressing semiconductor integrated circuit, using design region divided into plural blocks
JP2002503850A (ja) 電子デバイスおよび電子装置を製造および設計する方法
US20020106878A1 (en) Methods and apparatus for providing improved physical designs and routing with reduced capacitive power dissipation
US7353486B2 (en) Data processing in digital systems
JP4003071B2 (ja) 半導体集積回路の設計方法及び設計装置
JP4451629B2 (ja) 半導体集積回路のレイアウト装置および方法ならびこれらを使用して製造された半導体装置
JPH05121546A (ja) 半導体集積回路のレイアウト方法
JP3614306B2 (ja) Lsiレイアウト方法及びlsiレイアウト用プログラムを格納した記録媒体
JPH0645446A (ja) 配置配線方法