JPH07507409A - プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法 - Google Patents

プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法

Info

Publication number
JPH07507409A
JPH07507409A JP6500677A JP50067794A JPH07507409A JP H07507409 A JPH07507409 A JP H07507409A JP 6500677 A JP6500677 A JP 6500677A JP 50067794 A JP50067794 A JP 50067794A JP H07507409 A JPH07507409 A JP H07507409A
Authority
JP
Japan
Prior art keywords
delay
logic
connection
design
connections
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
JP6500677A
Other languages
English (en)
Other versions
JP3737104B2 (ja
Inventor
フランクル,ジョン エイ.
チェン,モン−レン
Original Assignee
ジリンクス,インコーポレーテッド
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 ジリンクス,インコーポレーテッド filed Critical ジリンクス,インコーポレーテッド
Publication of JPH07507409A publication Critical patent/JPH07507409A/ja
Application granted granted Critical
Publication of JP3737104B2 publication Critical patent/JP3737104B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】 プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の 方法 発明の分野 この発明は回路設計をその設計を実動化する物理的な集積回路構造に変換するこ とに関する。より詳しくは、この発明はユーザの特定するタイミング要求を回路 配置が満たすように、回路設計を上記物理的構造上に配置することに関する。
!−員 プログラマブルロジックデバイスは多様な論理設計の任意のものを実動化するの に利用できる。ユーザが論理回路を設計し、ロジックデバイスのプログラミング をコンピュータに指示するか、または所望の論理設計を実動化するためのひと組 のマスクを設計するのにソフトウェアを用いる。ロジックデバイス内の部分間で 授受される信号のタイミングは、物理的構造におけるトランジスタ群へのユーザ 回路素子の配置およびそれに伴う金属配線の配列によって部分的に決まる。一般 的に配線が長くなると遅延が長くなり、実際のタイミングは静電容量、抵抗、お よび信号が通過すべき論理素子の数に左右される。トランジスタがより速くなっ たので、信号のデバイス通過に伴う遅延の主な部分は配線に起因する。したがっ て、配線セグメントによる遅延を最小にするようにそれら配線セグメントを注意 深く選ぶことが必要になってきた。
この発明の方法を用いてプログラムできるロジックデバイスにはマスクプログラ マブルなものもフィールドプログラマブルなものも両方とも含まれる。マスクプ ログラマブルデバイスはデバイスの製造中に工場でプログラムされ、フィールド プログラマブルデバイスはユーザか完成品を購入したのちにプログラムする。
マスクプログラマブルデバイスは、集積回路基板内に形成されたトランジスタ群 のアレーを備えるゲートアレー構造と、その構造の上の層に形成した通常は一つ の制御ゲート層とを含む。これら標準の層の上に通常は二つまたは三つの金属化 層により個別層を形成し、それによってユーザ所望の回路を形成するようにそれ らトランジスタを相互結合する。
フィールドプログラマブルデバイスにはプログラマブルロジックアレー(PLA )とフィールドプログラマブルゲートアレー(FPGA)デバイスとが含まれる 。PLAデバイスは、ORゲートのアレーに入力を供給し論理積の和となる論理 を実動化するANDゲートのアレーを一般に含んでいる。FPGAデバイスはプ ログラム可能な相互配線線路で互いに接続された複数個の論理ブロックまたはモ ジュールを含む。これらプログラム可能なブロックは多様な機能を実動化するよ うにプログラムでき、またプログラム可能な相互配線はユーザの設計を実動化す る全体構成を形成する多様な方法で相互接続を形成する。次に述べる詳細な説明 ではFPGAを用いるので、ここでFPGA構造をより詳細に述べておく。
FPGA構造 図1は代表的な晶型フィールドプログラマブルゲートアレー(FPGA)構造を 表わす。複数の回路配置融通性ある論理ブロック(CL B)がユーザの選択し た機能を実動化するが、ユーザ所望の全体としての機能を発揮するには相互接続 しなければならない。図1のCLBは東西南北の各方向に延びる接続導線をそれ ぞれもつものとして示しである。実際の回路には通常図示のものよりも多くの導 線があるが、この図はFPGA構造を表わしている。これらCLHの相互接続用 にこのチップには配線セグメントが備えられている。これらCLB導線は例えば 導通トランジスタまたはアンチヒユーズにより配線セグメントにプログラム可能 な形で接続できる。マスクプログラムを施した代替的構造では、これら導線およ び配線セグメントは金属配線層間にバイアホールを設けることによって相互接続 できる。
また、FPGAには配線セグメントをノードで選択的に相互接続するスイッチボ ックスSBXが設けである。これらスイッチボックスはノードに至る配線セグメ ント間の種々の内部相互接続を提供できる。二つの例を次に述べる。
SBXの構成は図2Aのように示されよう。すなわち、図示のとおり、西側から 延びる配線Wl−W6の各々は、北、東および南側に各々からの配線N1−N6 、El−E6、および5l−36の各一つに接続できる。接続はダイヤモンドコ ネクタD1乃至D6経由で形成される。トランジスタによる構成の場合は、この ダイヤモンドコネクタは図2Bに示すとおり配線N、E、SおよびWを六つのト ランジスタで選択的に接続する形になる。このような構成によって、いずれかの CLB導線とそれ以外のいずれかのCLB導線との間に接続を形成することが可 能である。ただし、図2Aのセグメントw1上の信号のセグメントN2への接続 を可能にするなどの「レーン変更」は不可能である。
より融通性のあるスイッチング構成を図3に示す。図3においては、簡潔化のた めに西紀線セグメントからの相互接続だけを示しである。面配線w1を、北配線 N1およびN2、案配線E1およびE2、南配線s1およびs2のいずれがと接 続できることがわかる。面配線w3を北配線N1およびN2、案配線E1および E2、南配線S1およびs2にも接続できる。面配線w2は北配線N2およびN 3、案配線E1、E2およびE3、南配線s2およびs3に接続できる。他の三 つの方向の各々についても同じ選択が通常提供されるが簡潔化のために図示して ない。
図1には配線セグメントの三つの型が示しである。配線セグメントSLは二つの スイッチボックスSBXの間に延びる短セグメントである。二倍長配線セグメン トDLが短セグメント二つ分の長さにわたって延びている。配線セグメントLL は長セグメントでありFPGAデバイスの全長にわたって延びているか、場合に よ7てはその半分の長さにわたって延びている。これら長さの異なるセグメント は互いに異なる目的を意図したものである。すなわち、長セグメントはクロック 信号などの広ファンアウト信号に有用であり、二倍長セグメントおよび単−長セ グメントは局部経路付与に最適である。一つのCLBからもう−っのCLBへの 経路を辿る信号の受ける遅延は使われた配線セグメントの種類と信号の通過した ノードとの数とに左右される。
恵−! 論理設計では、一つの信号源論理ブロックまたはレジスタがら−っの供給先論理 ブロックまたはレジスタへの導体経路を接続という。一つの信号源で発生した信 号をいくつかの供給先に送る必要があることが多い。一つの信号源からそれら供 給先全部に至る経路の集まりが網である。論理設計を実動化するハードウェアて は、その接続または網の一部を構成する配線の単一片をセグメントと呼ぶ。一つ のセグメントはノードでもう一つのセグメントに相互接続できる。通常、一つの 配線セグメントはノードでいくつかの他の配線セグメントのいずれかと相互接続 できる。経路とは、一つのパッケージピンまたはクロック制御下のレジスタから もう一つのパッケージピンまたはクロック制御下のレジスタに延びる接続または 結合用論理ブロックの組をいう。
タイミング分析に相互接続配線を含める動機セグメントどうしのノードにおける 接続をトランジスタの導通化によって行う場合は、その接続は配線セグメントお よびトランジスタの両方を含む。トランジスタは導通状態でも有限の抵抗値を有 するので、その接続は信号経路に有限のRC遅延を抱え込ませる。また、素子の 微細化に伴い、配線による遅延の割合が増大する。接続遅延がトランジスタ接続 デバイスの全遅延の主要部になった。布線ずみのASICデバイスについても、 素子の微細化が進んで信号の全遅延に対して配線が太き(影響するようになり始 めた。過去においては、例えば多数ゲートのASICデバイスを形成する際には 、配置の最適化がタイミングにもりとも大きい影響を及ぼすのでその最適化に研 究努力の大部分が傾注された。FPGAなどのデバイスでは、多様な信号経路形 成資源が多様な遅延特性を備える。したがって、素子配置と同様に経路もロジッ クデバイスのタイミングに多大の影響を及はし得る。
集積回路ロジックデバイス上に設計回路をレイアウトすることユーザの論理設計 をロジックデバイスにレイアウトするためのソフトウェアはその設計を実動化す るようにハードウェアをプログラムするひと組のコマンドにその設計を変換する 一連のステップを行う。それらステップには通常次のステップか含まれる。
1)設計値の入力・ユーザ回路の図形表示の概略的捕捉、または実現すべき機能 とそれら機能間のつながりとを記述したハードウェア記述言語の読取り。設計値 の入力には状態とそれら状態間で実動化すべき遷移とのリストの読取りが含まれ ることもある。
成しているかどうかを見るための点検を含む(例えば出力を共通接続にすること を避ける)。ロジック合成は、設計値の入力時に入力された情報を、表現の単純 化、式の中の項数の削減、および設計値の実動化またはユーザ設計の最適化に必 要な面積の削減のために書き換えることを伴うロジック最適化を含む。
3)マツピング:マツピングはユーザの論理ゲートをユニット、すなわち各々を 論理デバイスの対応ユニット(例えばジリンクス社FPGA関数発生器)で実動 化できるユニットにグループ分けすることを含む。
4)初期配置:論理設計のユニットは各々が論理デバイスの特定のユニット(例 えばジリンクス社FPGA論理ブロック)に割り当てられた複数の部分に分割さ れる。このステップには、ベル・システム・テクニカル・ジャーナル1970年 2月号第291−307頁所載のビー、ダブリュー、カーニハン(B、 f。
)[ernighan)およびニス、リン(S、 Lin)著の論文[図形分割 のための効率的な発見的手法」に説明されているような最小値カットアルゴリズ ム、またはアイ・イー・イー・イー・トランスアクンヨンズ・オン・サーキッッ ・アンド・システムズ第CAS−26巻第6号1979年6月3日付所載のニー ル アール、フィンジュニア(Neil R,Quinn、 Jr、)およびヌ ルビンエイ。プロイア−(Mlvin^、 Breuer)著の論文「印刷配線 基板のための力の向きの部品配置方法」に説明されているようなばね弛緩アルゴ リズムを用いることができる。
5)配置改善、初期配置は接続全体に必要な配線の全長を最小化するなど配置の 品質のある尺度を改善するように調整する。
e)nu:相互接続線は、ユニットの入力線および出力線の各々をユーザの設計 における接続、すなわちユーザのロジックの互いに分割された部分をつなぐ接続 に対応させて接続するように選択する。一般には、信号源論理ブロックから供給 先論理ブロックへの信号の接続ルートは、それら信号源および供給先の間の連続 的接続を形成するように一度に1ステツプずつセグメントを追加して選択する。
7)評価および実行可能な対話的改善:全部のロジックをデバイスに配置してそ れらロジックを相互接続するすへての線を形成するソフトウェアの性能を評価し 、ユーザのロジックの実動化におけるデバイス全体の速さも併せて評価する。
通常、ユーザは、一つのチップ全体のロジックの処理を最小の時間内(または特 定の時間内)に行うこと、または最大クロック速度でロジックデバイスを動作さ せることをめる。いずれの場合も性能はもっとも遅い信号経路の始点から終点ま で信号を伝達するのに要する時間で評価する。信号経路は通常一つまたはそれ以 上の論理ブロックを通るのでいくつかの接続点を含み得る。
8)デバイスプログラミング:最後に、上述のステップが首尾よく進んだ場合は 、形成すべき接続および形成すべきでない接続に対応するピットストリームで、 上述のステップで決定されたユーザの設計を実動化するようにデバイスを回路配 置する。このピットストリームは、デバイスがSRAM FPGAの場合はその デバイスにロードされ、デバイスがアンチヒユーズFPGAの場合はプログラム 対象のアンチヒユーズへのアドレスに用いられ、デバイスがマスクプログラマブ ルASICの場合はマスクのパターン形成に用いられ、あるいはそのデバイスが 所期の機能を発揮するようにデバイス内に特定の接続を形成するのに適宜用いら れる。
結合形成のためのサーチアルゴリズム 信号経路形成の問題は集積回路FPGA内の配線の経路形成だけでなく、多数の 応用分野で生じており、これまで広範囲にわたり検討されてきた。信号供給源か ら供給先に至る利用可能な接続の発見のために多数のサーチアルゴリズムが開発 されてきた。それらの中には、深さ先行サーチ、すなわち信号経路へのセグメン トの付加を何らかの障害により前進が止まるまで行い供給先への到達まで代替的 経路を試みるサーチが含まれる。もう一つの例としては、幅先行サーチがあり、 そのサーチでは信号供給源から延びるあらゆる実現可能なセグメントをまず試み 、次に供給先への到達まであらゆる実現可能な第2のセグメントを試みる。より 複雑なアルゴリズムでは供給先についての方向情報を用い、もっとも見込みのあ る方向をまずサーチする。これらのアルゴリズムのいずれによっても、信号供給 先への経路は、それが存在すれば結局見出される。複数の点の間の経路を選択す るのに有用ないくつかの方法は、カリフォルニア州バロアルト所在のテイオガ( Tioga)出版社から1980年に発行されたニルス ジエイ、ニルスソン( NilsJ、 Ni1sson)の著書[人工知能の原理]およびカルフォルニ ア州ロスアルトス所在のウィリアム カウフマン社(William Kauf mann、 Inc、) ・カリフォルニア州スタッフォード所在のヒユーリス チック プレス社(■eurisTech Press)から1981年に発行 されたアブロン バー(^vron Barr)およびエイ、フィーゲンバウム (^、 Feigenbaum)の編著書「人工知能ハンドブック」にも説明さ れている。
接続を見出す方法は信号供給源から供給先に経路付与すべき信号の各々について 通常繰り返される。経路付与があとになるほど空きの経路資源が少なくなり、接 続が長く非効率的になり得る。接続付与の総体的結果は、一般に、どの接続に最 初に経路付与したかということと、各接続の経路付与に用いたアルゴリズムとに 左右される。
レジスタ間の信号授受 通常の論理設計はクロック応動レジスタ(フリップフロップ)とクロック非応動 の組合せおよび算術演算機能との両方を用いる。デバイス全体のタイミング(ど れほど速くそのデバイスをクロック駆動できるか)によって、信号が一つのクロ ック応動レジスタの出力から次段のクロック応動レジスタにどれほど速く伝搬さ れ得るかが決まってくる。この信号伝搬速度は、一つのレジスタの出力ともう一 つのレジスタの入力との間で処理されるべきいずれかの論理がどれほど迅速にそ の出力を生ずるかと、信号が接続すなわち一つのレジスタからもう一つのレジス タへの経路に沿って配置した組合せ論理ブロックを接続する配線セグメントおよ びノードを通じてどれほど迅速に経路付与され得るかとによって定まる。
異なる信号転送には、設計がレジスタの制御に多重クロックを用いている場合は 、異なるタイミング要求があり得る。
デバイス性能の改善−臨界経路 使用された経路の各々の時間遅延は経路が選択され次第計算できる。ユーザは一 つのクロック応動レジスタと次のレジスタとの間の信号伝搬の最大遅延を最小に 抑えることに関心がある。すなわちこの最大遅延によって、ユーザの機能の実効 化においてデバイスに使用可能な最大クロック速度が定まるからである。したが りて、通常ユーザはレジスタ間経路タイミングを問題にする。性能上の要求は、 一つのレジスタから何らかの組合せロジックを経て次のレジスタに結果を転送す るのに要する時間で特定することが多い。通常一つの経路が最低速度の経路にな り、臨界経路と呼ばれる。この臨界経路は全体のクロック速度を制限し、したが ってデバイスの動作速度を制限する。デバイス全体の速度を改善するにはこの臨 界経路による遅延を減らさなければならない。したがって、この臨界経路の遅延 の低減に努力が傾注されてきた。この問題について広範囲にわたる努力がなされ てきた。
全体配置の分析対各素子についての決定上述のステップの各々はその設計の各部 分についての多様な細部決定を伴う。
特定のステップの各々は特定のアルゴリズムで実効化される。例えば、ロジック デバイス内のどの論理ブロックでユーザ設計(分割および配置)のどの論理ゲー トを実効化するかの決定をする必要があり、また、物理的デバイス内のどの配線 で信号の各々を一つのブロックから次のブロックに伝達するかを決定する必要が ある。これら個々の決定は、全体のデバイス性能を考慮に入れてないアルゴリズ ムで逐次的に通常行われる。ある段階でそれら決定の結果を総合的見地から評価 しなければならない。この発明はこの総合的見地に関し、個々の上記ステップが 高い総合的評価をもたらすことを確実にすることに関する。
配置および経路付与ツール 初期配置および経路付与分析は性能の総合的評価の結果を接続への重みの調節に よって用いることを試み、経路付与の優先順位づけおよび品質の尺度の計算のた めにそれら重みを用いた。プロシーディンゲス・オブ・トウニンティファースト ・デザイン・オートメーション・コンファレンス(Proc、 21st De signAutomation Conference)第278−281頁( 1984年)所載のエイ、イー。
ダンayブ(A、 E、 Dunlop)、グイ。ディー、アグラワル(V、  D、Agrawal) 、およびディニエヌ、ドイチュ(D、 N、 Deut sch)著の論文「臨界経路重みづけを用いたチップレイアウト最適化」、およ びブロン−ディンゲス・オブ・トウニンティセカンド・デザイン・オートメーシ ョン・コンファレンス(Proc、 22nd DesignAutomati on Conference)第124−130頁(1985年)所載のエム、 バーンスタイン(M、 Bernstein)およびエム、エフ。ニーセフ(M 、 N、 Youssef)著の論文「タイミングの影響によるレイアウト設計 」記載の手法は、接続についての遅延概算値を使用してタイミング分析を行い、 分割時には臨界経路上の信号により大きい重みをつけ、経路付与時にはより高い 優先順位を与えた。VLS1システムズ デザイン(VLSI Systems  Design) 1986年5月号第63−73頁所載のニス、ティグ(S、 Teig) 、アール、エル、スミス(Rル、Sm1th)およびジエイ、ジー トン(J、 5eaton)著の論文「セル型集積回路のタイミング駆動による レイアウト」はタイミング分析と配置・経路ステップとの相互作用の重要性を強 調した。
しかし、臨界経路に重みを割り当てる方法は記載されていない。上記ディグほか の論文はタイミングと位置づけおよび経路付与とをいかに関連づけるかについて 一般的に述べているだけである。プロシーディンゲス・オブ・アイシーシーエイ ディー ’ 89 (Proc ICCAD ’ 89)、第94−97頁(1 989年)所載のエム、マレクーサドフスカ(if、 Marek−Sadow ska)およびニス、ビー、リン(S、 P、 Lin)著の論文「セル型IC のタイミング駆動によるレイアウト」は初期配置のための反復的最小値カットア ルゴリズム、すなわち非臨界接続にはその弛緩と反比例した重みを与えるアルゴ リズムを記載している。弛緩とは転送の完了までの許容時間とその転送に費され た時間との差である。臨界経路(弛緩が小さいまたは負である経路)には非臨界 経路よりもわずかに大きい重みを与えである。プロシーディンゲス・オブ、ユー ローピアン・デザイン・オートメーション・コンファレンス(Proc、 Eu ropean Design Automation Conference  )第317−321頁(1980年)所載のジエイ、ガーバーズ(J、 Ger bers) 、ビー、コーチ(B、 Korte)、エッチ、ジエイ、プロメル (tl、 J、 Promel)、イー、シャイエツケ(E、 5cheiet zke)、およびエイ、シュテーガ−(A、 Steger)著の論文「経路付 与情報およびタイミング情報に基づ<VLSI配置」では、再重みづけ手法、す なわち経路付与接続の重みをその接続が臨界経路上にあるとわかった段階で1だ け単純に増加させる手法を用いて、反復的分割および近似的経路付与(チップの 経路付与を割り当てるべき概括的領域の選択であって、用いるべき特定の線の選 択ではない)により性能の改善を得ている。この変動していく重みが分割形成の 損失と経路付与順序に影響を及ぼす。
これらの重み調整方法において生ずる問題は解が発振し得ることである。臨界経 路の改善に伴って他の経路が臨界経路になり、2回目の反復でも1回目の反復以 上のよい結果は得られないかもしれない。すなわち、重み調整方法は一般に単調 によい結果に進むのではない。
レイアウトの小変更後にタイミング分析を繰り返す動的方法もう一つの手法は、 レイアウト(レイアウトとはユーザの概略図の中のロジック、レジスタ、接続線 のすべてを物理的デバイスの対応素子に割り当てる総体的機能をいい、マツピン グ、配置、および経路付与を含む)をデバイス性能(経路遅延の原因となる)の 総体的分析とレイアウト過程(個々の素子および線の位置の選択)との間の頻繁 な対話によって行うやり方である。プロシーディンゲス・オブ・トウニンティセ カンド・デザイン・オートメーション・コンファレンス(Proc、 27th  Design Automation Conference)第84−89 頁(1990年)所載のダブリユウ、イー、ドナス(If、 E、 Donat h) 、アール、ジェイ、ノーマン(R。
J、Norman) 、ビー、ケイ、アグラワル(B、に、Agrawal)  、ニス、イー、ベル口(S。
E、 Be1lo)、(ニス、ワイ、ハン(SY、■an)、ジェイ、エム、ク ルツバーグ(J、 M、 Kurtzberg) 、ビー、ロウィ(P、Low y) 、およびアール、アイ、マクミラン(R,1,Mcllillan)著の 学会論文「全経路遅延を用いたタイミングによる配置」においては、配置進行中 の一つまたはいくつかの動きのあとタイミング分析を更新している。
配置進行中の経路制約を動的に追跡するために反復分割の各段階でリニアプログ ラミングを用いており、これはプロシーディンゲス・オブ・トウニンティシック スス・デザイン・オートメーシぢン・コンファレンス(Proc、 26th  DesignAutomation Conference)第370−375 頁(1989年)所載のエム、エイ。
ビー、ジャクソン(M、 A、 B、 Jackson)およびイー5ニス、ク ー(E、 S、 Kuh)著の論文「セル型集積回路の性能駆動回路配置」に記 載されるとおりである。これと関連した論文、すなわちプロシーディンゲス・オ ブ・アイシーシーエイディ′90(Proc、 ICCAD ’90)第328 −331頁(1990年)所載のエム、エイ、ビー。
ジャクソン(M、A、B、 Jackson) 、エイ、スリニヴアサン(A、  5rinivasan) 、およびイー、ニス、クー(E、 S、 Kuh) 著の論文「性能駆動回路配置用の高速アルゴリズム」およびプロシーディンゲス ・オブ・トウェンティエイス・デザイン・オートメーション・コンファレンス( Proc、 28th Design Automation Confere nce)、第636−639頁(1991年)所載のエイ、スリニヴアサン(A 、 5rinivasan)著の論文「小型セル集積回路の性能駆動初期回路配 置用のアルゴリズム」は2次のプログラミングを用い、遅延要求または制約の数 、すなわち高性能回路配置をより効率的に達成するための論理ブロックの配置の 選択において考慮すべきそれら要求および制約の数を削減した。
プロシーディンゲス・オブ・トウエンティエイス・デザイン・オートメーション −)ンファレンス(Proc、 28th Design Automatio n Conference)第620−625頁(1981年)所載のアール、 ニス、ツエイ(R,S、 Tsay)およびジェイ。
ケール(J、 Koehl)著の論文「回路配置における性能最適化のための分 析的回路網重みづけ手法」は接続回置みづけ、すなわちタイミング分析からの入 力として個々接続遅延へのひと組の正確な限界値を要する接続回置みづけのため の式を提供している。タイミング分析の結果を回路配置および経路付与への指針 に変換することは、これまで提案されてきた多数の発見法が示すとおり、重要で ある。
弛緩 論理設計の一つの接続におけるタイミング要求が満たされずその論理設計のもう 一つの接続におけるタイミング要求が余裕時間をもって満たされた場合は、回路 素子の位置づけおよび経路の調整を、その余裕ある接続のタイミングを上記要求 不充足の接続の高速化のために遅くして結果的にすべての接続および経路が要求 を満たすように、行うことが可能であることが多い。この余裕時間を弛緩と呼ぶ 。一つの経路の弛緩はR(p)−A(p)と定義される。ここで、R(p)は経 路pに沿う伝搬時間の要求値であり、A(p)はその経路pに沿う実際の合計の 伝搬時間である。正の弛緩はその接続が余裕時間をもって形成されたことを示す 。負の弛緩は時間要求値が満たされなかったことを示す。零に近い(正の)弛緩 は時間要求値が辛うじて満たされたことを示す。正の弛緩をもつように経路付与 された経路は負の弛緩をもつそれ以外の経路を時間要求充足のために経路変更す ることがそれによって可能になる場合は、より小さい弛緩値の経路に変更できる 。
経路接続のための弛緩計算 通常の回路にはファンイン(回路素子に複数信号が入る)とファンアウト(出力 信号が複数の素子に加えられる)との両方がある。アイビーエム・ジャーナル・ オブ・リサーチ・アンド ディベロップメント(IBM J、 Res、 De velop)第26巻第1号第100−108頁(1982年)所載のアール、 ビー、ヒツチコック(R,B、 Hitchcock)、ジー、エル スミス( G、 L、 5oIith)およびディー、ディー。
チェノ(D、 D、 Cheng)著の論文「コンピュータハードウェアのタイ ミング分析」は個々の接続の弛緩の計算のしかたを記載している。一つの接続の 弛緩、すなわち弛緩(c)は (1) 弛緩(c)=R(C)−八(c)で算出される。ここで R(c)は接続Cの出力端における信号のもっとも早い到達時間要求値、A ( c)は接続Cの出力端における信号のもっとも遅い到達時間実測値。
この弛緩(C)の計算のために二つのリニア時間計算を行う。図5は、ファンイ ンおよびファンアウトの両方を含み個々の接続を既知の接続遅延および総体的経 路要求からいかに決定するかを示す事例を図解している。総体的要求はレジスタ R901、R902およびR903への信号印加後30ナノ秒以内に三つの供給 先R904、R905、R906に到達することである。この要求は供給先R9 04、R905およびR906内の数字「30」で示しである。接続遅延は各接 続C901乃至C913上の楕円内に示しである。これら接続遅延の数字は接続 のセグメントにおける導線の長さに起因する遅延を表わしており、ブロックまた はレジスタ内部における信号の伝搬遅延と信号がレジスタに入力される際の信号 スイッチング時間についてのセットアツプ遅延とを含む。
上記到達時間実測値A (c)の計算は到達時間既知の点から順方向に(または 基準点から順方向)に進む。図6において、到着時間実測値はブロックへの人力 に示しである。R901、R902およびR903における到達時間はOナノ秒 として示しである。接続における遅延がこれら時間に加算され後段のブロックへ の入力における到着時間が得られる。単純化のために、ブロック内の遅延はその ブロックの出力側接続の遅延に算入しである。一つのブロックにいくつかの信号 を印加する場合は、もっとも遅い到達時間を用いなければならない。すなわち、 そのブロックからの出力信号は最後の入力信号の到着まで有効信号にならないか らである。例えば、接続C902、C903およびC904のそれぞれの接続遅 延3.4および2ナノ秒はブロックB902への信号到着時点をそれぞれ3.4 および2とする。これらのうちもっとも遅い4ナノ秒の時点が、接続C908へ の出力端子に出力信号が生じて入力信号をブロックB904に8ナノ秒後に到達 させる時点となる。このようにして遅延は回路を通じて順方向に伝搬される。
図7に示すとおり、要求されている到達時間R(c)は信号の到達すべきレジス タから逆方向に伝搬される。接続C909における7ナノ秒の接続遅延は、信号 が供給先R904に30ナノ秒までに到達するには23ナノ秒までにR901か ら出力されなければならないことを意味する。供給先R905要求および接続C 910から派生するもう1つの要求は、信号が24ナノ秒までにR901から出 て30ナノ秒までに供給先R905に到達しなければならないことである。しか し、供給先R904はより早い要求到達時間を課している。一方、R901には 、R905を遅延3ナノ秒の接続C912、遅延4ナノ秒のC908および遅延 3ナノ秒の0902との組合せにより20ナノ秒のさらに早い到達時間要求が課 される。したがって、30ナノ秒までに信号がR904、R905およびR90 6に到達するという要求を満たすためのR901からの出力時点、は20ナノ秒 までである。到達時間要求値R(c)の計算はその要求の特定された点から接続 を通って逆向きに伝搬する。
いずれの接続においても、その接続への到達時間のもっとも遅い実測値をその接 続へのもっとも早い到着時間要求値から減算することによって弛緩を算出するこ とが可能である。図8は接続の各々についての弛緩S1すなわち到達時間実測値 をその接続に順方向に伝搬し到達時間要求値をその接続に逆方向に伝搬して決定 した弛緩Sを示す。
零弛緩アルゴリズム プロシーディンゲス・オブ・アイシーシーエイディ’ 87 (Proc、 I CCAD ’87)第88−91頁(1987年)所載のピー、ニス、ハウグ( P、 S、 Hauge)、アール。
ネア(R,Na1r) 、イー、ジエイ、ヨッフy (E、J、Yoffa)著 の論文「予測可能な性能のための回路配置」は零弛緩アルゴリズム(ZSA)を 導入した。このアルゴリズムは、合計がユーザの要求値以下の接続遅延の初期組 合せを設定し、これら初期接続遅延に基づき弛緩を算出することによって始まる 。これら初期遅延は接続遅延限界値、すなわち利用可能な弛緩を使い切ってその 限界値に等しい接続遅延を有するいずれかの経路がちょうどユーザの要求に合う ようになる値に置換する。これら接続遅延限界値は次に配置・経路付与ツールに よって回路素子および接続のための受入れ可能な位置および経路の選択に使われ る。これら限界値によって、上記配置・経路付与ツールは上記位置および経路の 選択をより厳しい要求で可能になるよりは容易に方向づけされるが、各接続がそ の接続遅延限界値に達する場合は全体としてのタイミング要求が満たされること を保証する。零弛緩アルゴリズムツールは、一つの経路pの弛緩をその経路pに ある個々の接続に分散させることによって限界値を決定するのに経路弛緩情報を 用いる。ノ\ウグほか()Iaug et al)によると、弛緩は経路沿いの 接続に一様に分散させる。代わりに、プロシーディンゲス・オブ・トウエンティ エイス・デザイン・オートメーション・コンファレンス(Proc、 28th  Design Autoa+ation Conference)第626− 631頁(1991年)所載のダブリユウ、ケイ ルーフ(f、 K、 Luk )著の論文「タイミング駆動レイアウトのための高速物理的制約発生器」に記載 されるとおり、たとえば弛緩はファンアウトあたりの静電容量またはファンアウ トあたりの静電容量変化などの物理的尺度に比例して分散させる。
これら遅延限界値はそれを全面的に採り入れればユーザの要求が満たされる旨の 示唆である。他の限界値が余地を残して満たされていればい(つかの示唆された 遅延限界値が満杯になっていない場合でもユーザの要求は満たされよう。
プロシーディンゲス・オブ・アイシーシーエイディ’ 90 (Proc、 I CCAD ’90)第24−27頁(1990年)所載のエッチ、ニーセフ([ +、 Youssef)およびイー・シュラゴヴイッツ(E、 Shragow itz)著の論文「正しい性能のためのタイミング制約」においては、経路の弛 緩は次式に比例してその接続に分散されている、すなわち (2) 重み(c) =LF(c) *^cL(c)ここで L F (c)は接続Cの供給源ピン(論理ブロック出力)上の単位負荷(ファ ンアウト)あたりの遅延、 A c L (c)は負荷を接続Cに接続することにより生ずる静電容量である 。このように、ニーセフおよびシュラゴヴイツツは弛緩を経路の各部にその経路 のその部分で生じそうな遅延に従って分散させることを試みている。
一つの経路の弛緩をその経路内の接続に分散させる対話式の手順が上述の論文に 記載されている。全弛緩のうち接続Cに分配されるべき部分を表わすf (c) は(3) f(c)=重み(C)/最大[重み(p)]ここで 重み(C)は上述の式(2)から定まる接続Cの重みであり、重み(p)は経路 pの重みであり経路p沿いの全ての接続重みの合計であり、最大〔重み(p)] は接続Cを含むそれら経路の最大重み(p)である。
各反復において、接続の許容可能な遅延U (c)はf(c)*弛緩(c)だけ 増加する。
したがって、 (4) [1(c)、、 =U(c)、+a +(f(c)*弛緩(C))図9 は古い遅延U(C) allへのf(c)*弛緩(C)の値の加算に基づく新し い遅延限界値U(c) 、、、の計算を示す。部分子 (c)の式は一つの経路 の弛緩が負になるほどに大きい値の弛緩を分散させることはない。
従来の方法は接続遅延のどの値が現実的であるかについての情報を利用していな い。例えば、初期遅延が(ニーセフおよびシュラゴヴイッッの示唆するとおり) 零であると仮定すれば、いくつかの示唆された遅延限界値U (c)は小さすぎ て実現できない。一方、初期遅延限界値が(上記ハウグはがの示唆するとおり) 「物理的に妥当」であると仮定すれば、示唆された遅延限界値は不必要に大きい であろう。いずれにしても遅延限界示唆値はそれら限界値を用いるレイアウトツ ールのための最良の指標を提供するものではない。
必要なものは接続遅延についての示唆された上限値の最適化した組合せである。
発明の概要 部分的にでき上がったレイアウトかあれば、そのレイアウトの完成版で各遅延限 界の示唆値U (c)が得られるはずである。したがって、限界値には達成可能 性の高い値を選択しなければならない。この発明は下側境界遅延に関する情報に 基づく遅延限界値を示唆し、その示唆した遅延限界値における反復的改良をより 早い段階のレイアウトにおいて達成した遅延の検査によって達成する。
この発明はロジックデバイス上へのユーザ論理設計のレイアウト、すなわちレイ アウトツール用の指針として使用できる遅延限界値を経路の各接続につき示唆す ることによって特定のタイミング制約に合致したレイアウトを達成する。この発 明によると、遅延限界示唆値をレイアウトツール(分割、配置、および経路付与 アルゴリズム)用に算出中に遅延限界の初期値が下側の境界遅延、すなわち接続 用に最高速の経路を用いて達成可能な境界遅延に設定される。遅延限界値算出用 の初期値を下側境界値に設定することによって、達成可能な速さを上まわる速さ の遅延限界値が示唆されないことを確実にする。
総体的達成可能性の評価のためにこの発明は既に試みたレイアウトで達成ずみの 遅延についての情報を用いる。この発明によると、レイアウトずみの設計品の性 能を向上させる際に、下側境界遅延限界値と、反復的タイミング改善用に遅延限 界の示唆値を算出した際に達成ずみの遅延値との両方を用いる。好適な実施例に おいては、遅延の示唆値は達成ずみの遅延と下側境界遅延との間の差の一部であ って、その一部f (c)は次式から算出される。すなわち、f(c)=重み( C)/最大[重み(p)]ここで、 重み(c)=D(c)ル(c) D(c) =接続重についての遅延の推定値または達成値L(c) =接続重に ついて達成可能な下側境界遅延重み(p)=経路p上の全接続CについてのΣ重 み(C)最大[重み(p)]=接続Cを用いた最低速の経路上の重み(p)この ように遅延限界示唆値は達成ずみの遅延と達成可能な低い境界遅延との差に比例 して調整する。数値改善の期間中に負の弛緩を有する接続に対する制限は下がる ように、また正の弛緩を有する接続に対する制限は上がるようにそれぞれ調整す る。このように、反復的数値改善のためにレイアウトツールに示唆された限界値 は、個々の接続へのより厳しい限界値の充足の困難度によって接続遅延を割り当 てることによって厳しい経路制約の充足を試みる。
図面の簡単な説明 図1はジリンクス社の従来技術によるFPGA構造を示す。
図2Aおよび2Bは図1におけるスイッチボックスSBXの単純な実動化を示す 。
図3は融通性のより高いスイッチボックスSBXを西側配線に利用可能な接続と ともに示す。
図4Aはジリンクス社FPGAデバイスに用いられている論理ブロックを示す。
図5は特定の遅延を有する接続により相互接続された論理素子またはレジスタを 有する回路設計例を示す。
図6は既知の点から順方向への到達時間実測値の伝搬を示す。
図7は供給先から逆方向への到達時間要求値の伝搬を示す。
図8は図6および7の到達時間実測値および要求値から定まる各接続での弛緩を 示す。
図9は零弛緩アルゴリズムによる弛緩分散を示す。
図10はこの発明の弛緩分散方法を用いたレイアウトのステップの流れ図である 。
図11はこの発明による限界値調整アルゴリズムに用いるステップの流れ図であ る。
図12Aは論理設計の一部である回路網例である。
図12Bは図12Aの回路網例における各接続に付加された分数乗算器である。
図12Cは図12Bの分数に経路タイミング制約を乗じて決定した上記回路網内 の各接続についての遅延上限値を示す。
図12Dは図12Aの回路網についての下側境界接続遅延を示す。
図12Eはレイアウト完成後に図12Aの回路網に達成される遅延を示す。
図12Fは図12Dおよび12Eの下側境界遅延と達成ずみの遅延とを用いて算 出した分数f (c)を示す。
図12Gは図12Aの回路網における接続についての改訂後の遅延上限値、すな わちより厳しい経路制約が適用され、図12Fの分数f (c)の算出のために 図12Dおよび12Eからの情報を用いて新しい遅延限界値が決定されたのちの 遅延上限値を示す。
図13は図10のステップ104で行われるステップをより詳細に示す。
図14はFPGAデバイスにおける経路付与の一回目通過計算で行われるステッ プを示す。
図15はFPGAデバイスにおける経路付与の反復改善で行われるステップを示 す。
図16は初期配置の期間中に用いうる最小値カット分割アルゴリズムを示すため の問題例を示す。
図17Aは初期配置の期間中に分割線を横断しない接続上の実際の遅延を概算す る際の仮の配置を表わす。図17Bは初期配置の期間中に分割線を横断する接続 上の実際の遅延を概算する際の仮の配置を示す。
図18は初期配置の期間中に下側境界遅延を概算する際の仮の配置を示す。
図19は配置改善の期間中に循環すべき候補素子のサブセットを示す。
図20は配置改善の期間中に用いられる損失関数を示す。
好適な実施例の詳細な説明 この発明の方法は初期レイアウトステップの決定の進行中およびこの初期レイア ウトに対する反復的改善の表現明確化の進行中の両方で動作する。この発明の新 規な特徴は下側境界達成可能な遅延の考慮と新しい遅延限界値計算とを含む。
この発明の経路分析方法は、論理素子を論理ブロック内に初期配置する期間中、 配置期間中、および論理素子間の接続への経路付与の期間中に用いるのが好まし い。
経路分析とレイアウトツールとの間の反復対話図10は反復的改善を達成するの にこの発明が用いられるステップの流れを示す。これらステップの流れは、論理 の分割を選択しまたはユーザ設計の素子用の位置または経路を選択するレイアウ トツールと、全体のレイアウトを時間(動作)で概算し上記レイアウトツールの 用いるべき遅延限界値を示唆する経路分析ツールとの間で一方から他方に前後に 反復する。初期状態では、遅延を概算するステップ102は、レイアウトツール を少し動作させたあと、たとえば最小値カット分割アルゴリズムによる最初の切 分けのあと、またはユーザ設計の一部または全部の経路付与のあと動作させる。
ステップ103では、この発明の経路分析ツールが概算した(または実際の)遅 延をユーザの特定したタイミング要求と比較し、その結果得られる弛緩を計算す る。図5乃至9に関連して上に述べた従来のヒツチコックの方法をこの接続弛緩 の計算に用いるのが好ましい。これらの弛緩から、ステップ104において、こ の設計における各接続につき遅延限界の示唆値を計算するために新規な方法を用 いる。これらの限界値は次にステップ111においてレイアウトツールが各位置 または経路を上記示唆値に合わせるように改善する試みにおいて用いる。ステッ プ111が完了すると、レイアウトツールはステップ102に戻り、新しい接続 についての新しい遅延値を計算する。ステップ1゜3および104の経路分析過 程は再び繰り返され、新しい弛緩が算出され、新しい遅延限界値が示唆される。
ステップ103はステップ102からの接続遅延を受けて経路、すなわち通常い くつかの接続といくつかの論理ブロックとを含む経路の遅延を概算する。好適な 方法では四つの型の経路と関連の遅延とを考慮する。すなわち、パッド・パッド 間:信号が入力パッドに入力された時点から介在レジスタを含まない経路経由で 出力パッドに到達するまでの時間遅延パッド・起動間−入力パッドへの入力から レジスタへの入力までの時間プラス切換え信号の電圧レベルの安定化に要する付 加的時間の時間遅延、クロック・パッド間:レジスタ出力発生から出力パッドへ の出力までの時間プラスクロックパルス切換え時点とレジスタ出力に定常信号が 生ずる時点との間の時間遅延、および レジスタ・レジスタ間ニ一つのレジスタの出力発生から次のレジスタへの入力ま での時間プラスクロックパルスの切換えとレジスタ出力に出力が生ずる時点との 間の時間プラス信号のレジスタ人力への到達時点から切換え信号の電圧レベルの 定常化までの時間の時間遅延 の四つの型である。すなわち、内部遅延時間を配線セグメント遅延時間と論理ブ ロック遅延時間に加えて経路の合計遅延を概算する。この計算はレイアウトツー ルによって行われる。レイアウト決定用のステップについての従来技術の説明で 上に述べたとおり、パーティショナーが全体設計を論理ブロックで実動化すべき 論理素子に分割し、プレーサ−がそれら論理素子を論理ブロックに位置づけし、 ルータ−が接続・論理ブロック間を経路付与する配線を選択する。各ツールはそ の活動の結果生ずる接続遅延を概算する手段を含むのが好ましい。
下側境界 この発明は遅延限界示唆値を計算するステップ104に関し、その詳細を次に述 べる。遅延限界示唆値はレイアウトツールにステップ111、すなわち論理ブロ ック間の個々の接続を扱い経路の総遅延の概算は行わないステップ111におけ るレイアウト修正の指針として供給される。各接続についての下側境界遅延の概 算値は、ステップ104において、設計者の入力する値から、または好ましくは 、接続端点の座標の関数として使用されるチップについての下側境界遅延の表を 作成することによって決定される。これら下側境界遅延は各接続についての遅延 限界示唆値の計算において用いられる。遅延限界示唆値は、例えば、レイアウト の下記の段階、すなわち初期配置、配置改善、および経路付与の段階で用いるこ とができる。
この発明を用いる他のステップの場合と同様に、利用可能な下側境界接続遅延の 最良値(初期配置および配置改善期間中は正確な下側境界は不明である)がステ ップ104で遅延境界示唆値の計算に使われる。
限界値調整アルゴリズム 図11は図10のステップ104で分割、配置および経路付与用のひと組の遅延 限界示唆値を計算するのに用いる経路分析ツールの流れ図である。下側境界接続 遅延は上限値が下側限界遅延以下に設定されないことを確実にするために上側限 界接続遅延U (c)を設定する際に用いる。この下側境界を考慮しなければ不 具合な上限U(c) <L(c)という結果になり得る。この問題はタイミング の制約を満足するレイアウトの存在する設計でも起こる。
下側境界接続遅延L (c)は限界値調整アルゴリズムへの入力1 (c)とし て用いる。
ステップ104において、この発明は弛緩を反復分散する従来技術の方法を一般 化した限界値調整アルゴリズムを用いる。図11はこの限界値調整アルゴリズム の実動化に用いるステップを示す。ニーセフおよびシュラゴヴイッッの示すとお り、ステップ205において、各接続についてf (c)と接続Cの現在の弛緩 との積をその接続Cにおける遅延示唆値に加算する。しかし、f (c)は従来 技術で立てられた式によって計算されるとは限らない。図11の限界値調整アル ゴリズムで用いられている項は次のとおりである。
U(c) =接続Cについての遅延限界示唆値I(c)=接続Cについての初期 遅延 弛緩(c、U) =ひと組の遅延Uを受けた接続Cにおける弛緩f(c)=弛緩 を分散させるための乗算分数L(c) =下側境界で利用可能な接続遅延ステッ プ201に示すとおり、限界値調整アルゴリズムへの入力は次のとおりである。
網リスト、すなわち互いに接続すべき論理ブロック入力および出力のリスト、タ イミング制約(クロック速度またはパッケージピン間タイミングを含み得る)、 ブロック遅延、すなわち各論理ブロック内部での遅延、レジスタについては起動 遅延およびクロック・出力間遅延 各接続について 初期遅延1(c)、すなわちこの発明では下側境界L (c)に設定しである値 、乗算分数f(c)、すなわち接続弛緩の何分の−をその接続に加えるべきかを 表わす値 ステップ202において、この限界値調整アルゴリズムは各接読Cについて下側 境界L (c)に設定したU(c) −1(c)を初期化する。ステップ203 において、その接続についての弛緩、すなわち弛緩(c、 U)を計算する。ス テップ204に示すとおり、弛緩が十分に零に近ければステップ207に進み遅 延限界値を出力する。そうでない場合は、ステップ205に示すとおり、弛緩は 次式(5)を用いて各接続に分散される、すなわち、(5) Ll(c)、、、  −Jl(c)+(f(c) *弛緩(c、 tl))図11に示すとおり、弛 緩を計算し分散させるステップ203および205は未分散の弛緩が零に十分に 近づくまで繰り返される。最終的にステップ207に到達し遅延限界値がレイア ウトツールに供給され後続の反復に供される。
図12Aは三つのレジスタR1、R2およびR3、組合せブロックB1およびB 2、並びにこれらブロックおよびレジスタを相互接続する接続C1乃至C4を含 む論理設計のごく一部分の例を示す。レジスタR1からの出力信号は接続C1を 経てブロックB1に伝達される。ブロックB1の出力は接続C2経由てレジスタ R2に、また接続C3経由でブロックB2にファンアウトし、ブロックB2は出 力を接続C4経出でレジスタR3に供給する。
図12Bは次式(6)を用いて弛緩を分散させた図12Aの回路の例を示す。
すなわち、 (6) f(c)=1/接続Cを通る最長の経路図12Bに示すとおり、R1か らR3への経路は三つの接続c1、C3およびC4を用いる。R2へのより短い 経路は二つの接続C1およびC2を用いる。最長の経路が三つの接続を用いてい るので、この最長の経路にある各接続には分散1/3を割り当てる。R1からR 2への経路の用いる接続は二つだけであるが、この経路にある接続C1およびC 2の各々には分数172を割り当てることが考えられよう。しかし、接続C1を 通る最大長さの経路は三つの接続を有するのでf(cl)は小さいほうの分数1 /3を優位とする。
レジスタ転送24ナノ秒以内という目標を犠牲にし遅延を零に初期化した場合は 、(すなわちこの発明によらない場合は)図12Bの分数は図12Cに示した遅 延限界値を生ずる。
レイアウトツールにより達成される遅延ステップ104(図10)の経路分析に よりひと組の遅延限界示唆値が発生されたのち、これら限界値はレイアウトツー ルに供給され、このツールがステップ111においてそれら限界値に合うように レイアウトを変更する。
図12Eは図12Cで供給された限界値に応答して実際に得られたひと組の遅延 を示す。接続C1には実際の遅延4ナノ秒が得られ、接続C2には実際の遅延2 0ナノ秒が得られ、接続C3およびC4には遅延8ナノ秒および12ナノ秒がそ れぞれ得られた。すなわち上記経路の両方について限界値24ナノ秒が達成され た。接続C2についての限界の示唆値U(C2)は満たされてなくても全体の目 標値24ナノ秒が達成されていることに注目されたい。これは、限界示唆値U( C)を目標とするレイアウトツールがその示唆値に合致しなくとも中途で終了せ ず解の終結まで続行することによる。また、接続C1についての限界値は余地を 残して満たされているので、総体的目標は満たされている。
遅延限界値についての下側境界 遅延限界値が零になり得ると仮定するのは非現実的である。二つのレジスタ間の 最短の経路はチップ上での二つのレジスタの間の物理的分離およびチップ上にあ る経路付与セグメントによって定まる下側境界遅延を有する。接続すべきブロッ クが異なった物理的位置に配置された場合(すなわち、配置を変更した場合)、 下側境界を調整できる。しかし、配置変更のない経路変更については、その接続 については下側境界は一定である。初期遅延零を用いて限界示唆値を計算するの に比べて、弛緩割当ての改善はこれら下側境界遅延から始めてそれら下側境界値 に弛緩の分数を加算することによって達成できる。また、下側境界遅延の組を用 いた分析がユーザ指定のタイミング制約を満たせないことを示した場合は、その タイミング制約はいかなる経路形状によっても満たされ得ないことの確かな指標 となる。下側境界遅延とタイミング要求との組合せは経路付与に努力を払う前の 配!の評価に使うことができる。配置のために経路付与が満足すべきものになり 得す、タイミング制約が決定的に重要である場合は、経路付与を首尾よく進める 可能性を与えるために配置を変更しなければならない。
達成ずみの遅延と下側境界との差を用いた反復改善初期レイアウト計算の完了の のちは経路遅延合計と対応の弛緩とは概算できる。
経路遅延のある部分を改善するために反復を行うのが望ましい。例えばクロック 速度の25%上昇がめられ得る。図12Dに示すような下側境界遅延を用いた場 合は、これら下側境界値は性能改善を試みる際に考慮に入れ得る。
この発明によると、弛緩はより高い標準の達成の困難度に応じて分散される。
接続遅延の残余の改善は達成可能な最小の遅延と達成ずみの遅延との間の差で測 る。いくつかのベンチマーク試験で好成績を挙げた遅延削除の式は遅延許容誤差 を差D(c)−L(c)に比例する量だけ減らすことである。ここで、D (c )はその接続で達成された遅延であり、L (c)はその接続について達成可能 な下側境界値である。すなわち、式(3)でf (c)の計算に使われる重みの 式は(7) 重み(c) =D(c) −L(c)式(3)をここに再帰すると (3) f(c)=重み(C)/最大[重み(p)]式(7)の重み関数を式( 3)で用いると、新しい遅延限界値についての式(5)の計算Aよ (5) U(c)、、−=U(c)*+n +(f(c) *弛緩(c、U)) となり、達成ずみの遅延と下側境界遅延との両方を用いる。従来技術の研究者ら が考慮したその他の重み関数と違って、式(7)の重み関数はレイアウトの現在 の状態によって定まり、したがって達成ずみのものについての知識を利用してい る。式(7)の重み関数は一つの接続で達成ずみの遅延とその下側境界との差で あるので、それはその接続の最大の改善可能性に関係している。したがって、タ イミング改善に努力が払われれば、上限値U (c)が値を設定しその値によっ て各遅延はその改善可能性に比例するように改善をめられる。
図13はある設計のタイミングの改善に用いた図10のステップ103および1 04の流れ図を示す。図13のフロー図を図12D、12Eおよび12Fの例に 関連して述べる。レイアウトずみの設計のタイミングの反復的改善を試みる場合 は、第1のステップはその経路の遅延についての新しい目標を設定することであ る。図12D−12Fの例では、その目標は24ナノ秒の遅延を25%減らして 18ナノ秒にすることである。弛緩は達成ずみの遅延と要求された遅延との差で あるから、初めは負になる弛緩もあることは明らかである。図12D−12Fの 例では、弛緩は新しい要求値に対して初めは全部員である。例えば、接続C2で は達成ずみの遅延は20ナノ秒であり接続C1では達成ずみの遅延は4ナノ秒で ある。新しい目標は合計18ナノ秒である。すなわち、接続C1およびC2につ いてステップ103で計算された弛緩は18−24=−6である。接続C3およ びC4についての弛緩も−6である。この発明の新規な特徴として、ステップ1 07において新しい遅延限界値tJ(c) +ts、を値tJ(c) old  + f (c) *弛緩(c。
U)と下側境界値しくc)との大きい方に設定することにより、下側境界値を侵 すことなく負の弛緩は分散される。すなわち、遅延限界値が低減されるので、達 成可能値以下に低減される遅延限界値はない。図12Fに示した分数f (c) は、接続の重みを上述のとおり式(7)から定めた式(3)で計算する。図12 Fおよび12Gにおいて、接続C1の達成ずみの遅延4ナノ秒マイナス下側境界 2ナノ秒から分数f(C1)は2/12となり遅延限界示唆値は3ナノ秒となる 。接続C2においては達成遅延値20ナノ秒および下側限界値10ナノ秒となり 分数f(C2)は10/12となり遅延限界示唆値は15ナノ秒となる。同様の 計算を経路C3およびC4について行う。全体としての遅延の25%低減を複数 の接続に25%低減として一様に分散するのではないことに注目されたい。これ は、下側境界遅延が一様でなかったことによる。図13は負の弛緩の分散のあと で正の弛緩の分散がステップ109で図12C関連の上述の説明にあるのと同じ 方法で行われる。
FPGA経路付与への応用 この発明の好適な実施例はFPGA構造において次の特徴を備える経路付与ツー ルに関連して信号を経路付与するのに用いられる。
1)経路付与ツールが各接続Cにつきその示唆値を満たす経路をもしそれがあれ ば選択することによって遅延限界示唆値U (c)に応答する。
2)どの接続に最初に経路付与するかの決定および経路の選択において、経路付 与ツールは、遅延および資源コスト(ある型の配線の数に対する実際に使用され た数)の組合せを説明するコスト関数を用いる。経路付与ツールは次の項目に基 づいて選択を行う。すなわち、 a)遅延限界示唆値、 b)予定経路の実際の遅延、および C)接続を形成するのに用いられる配線セグメントの数と種類、3)経路付与ツ ールがすべての接続について経路を見出すことを試み、いくつかの経路を見出し 得なかった場合はその経路付与ツールは、接続を完結し得る利用不可能な経路を 指定し、その経路を利用不可能にしている接続を除去しくはがし取り)、一時的 に経路未付与の接続のために経路を見出すことを試みることによって、経路未付 与の接続への経路付与を試みる。
この特許出願の譲受人であるジリンクス社は上記規準に合ったX1linx X C4000系の製品のためのルータ−を供給している。この発明は各接続につき 上限示唆値を提供する。上記ルータ−は上限示唆値のこの組からの指針により、 形成デバイスのより高速なタイミング要求の受容能力を高める経路を選択する。
下側境界を用いた初期経路付与解 クロック周期を最小にすることが目標であれば、四つの経路の型(パッド・パッ ド間、パッド・起動間、クロック・パッド間、およびレジスタ・レジスタ間)の 各々につき考えられる最良の合計経路遅延を接続はすべて最高速の経路上にある と仮定して決定し、−回目の反復には上記最高速の合計経路遅延などには厳しく ない目標を選択することが可能である。ロジックデバイス内で配置した論理設計 に経路付与するのに用いる場合は、特別の資源を要する接続は最初に経路付与す る。それ以外の接続は下側境界遅延の許容可能な遅延に対する比の減少する順に 、すなわちより厳しい限界値をもつ接続を初めに経路付与するように経路付与さ れる。二回目の反復には要求はより厳しくされる。
より詳細に述べると、図14に示すとおり、ステップ141において、経路分析 器(図10のステップ103および104を行う)は下側境界経路遅延L (c )を計算し、ステップ142で考えられる最良のレロック周期T1..を見出せ るようにする。一つの実施例においては、ステップ143に示すとおり、経路分 析器(図10のステップ103および104に用いられるツール)が次に目標( 経路時間の要求値)を T、、、、=i、5T+sw に設定する。
ステップ144に示すとおり、接続Cの各々については分数f (c)は式(3 )から決定される。
(3) f(c)=重み(C)/最大[重み(p)]ここで、用いられた重み関 数は弛緩一様分散関数重み(c)=1であり最大[重み(p)]は最大経路にお ける接続の数である。ステップ145に示すとおり、限界値U (c)は図11 に関連して上に述べた限界値調整アルゴリズムを用いて調整する。
これら限界値はルータ−に供給され(図10におけるステップ104からステッ プ111への矢印と等価)、このルータ−は図14のステップ146において特 別の資源(例えば、大域クロック信号と表示しである信号)を要する接続を識別 しそれら接続を適切な資源に割り当てる。
次に、ステップ147において、ルータ−は比L (c) / U (c)の減 少する順に残余の接続を経路付与する。どの接続についても遅延限界示唆値がそ の接続に可能な最高速遅延L (c)よりも小さくなることはないことを想起さ れたい。すなわち、比L(c) /U(c)はすべて1以下である。その比が1 に近いことはその接続がその接続に可能な最高速遅延に近い遅延を有することを 示す。したがって、この比の大きい接続にまず経路付与して、困難な接続への満 足な経路を得る可能性を高める。ルータ−が上記U (c)要件を満たす経路を 見出し得なかった接続はいずれも経路未付与のまま残す。
ステップ148において経路未付与のままの接続があるか否かを決定する。もし あれば、ステップ149において、ルータ−は経路未付与の接続全部につき数値 U (c)を20%だけ増加させ、それによってT7.1を20%だけ増加させ て、ステッカ46に再び進む。ステッカ48に到達したとき接続がすべて経路付 与ずみであれば、初期の経路付与努力は終了しており、その場合は経路付与情報 既存の経路の改善 図15はこの発明により既存の経路付与解のタイミングを改善するために用いら れるステップを示す。既存の経路付与解は達成ずみのクロック速度Ta g k  l m I+ 64を有する。可能な最高速の解を得ることが目標であれば、 好適な実施例は可能な最大の減少量の三分の−だけクロック周期を狭める試みを 一つの反復において試みる。すなわち、ステップ151において、新しいクロッ ク周期T1゜、が次のとおり設定される。
(8) T、、、、= T、、1.、、、−(T、cl、、、、−T、、 )/ 3ステップ152に示したとおり、各接続Cについて、分数f (c)は式(3 )がら(3) f(c)=重み(C)/最大[重み(p)]と算出される。ここ で、使用された重み関数は達成ずみの遅延マイナス下側境界遅延、または改善の 余地 (7) 重味(c) =D(c) −L(c)である。これら分数f (c)の 決定ののち、ステップ153において、負の弛緩を有する限界値U (c)を式 (b)U(c)、、、=最大[U(c) −+a + f (c) *弛緩(c 、 U) 、L(c) ]を用いて減少方向に調整し、次にステップ154にお いて、正の弛緩を有する限界値を次の式を用いて増加方向に調整する。
(5) U(c)、、、 =U(c)0.+ f(c)弛緩(c、 U)これら の新しい、また時にはより厳しい遅延限界示唆値をルータ−に供給し、ステップ 155において、新しい示唆値よりも大きい遅延D (c)を有する接続につい てのあらゆる経路を消去または除去する。ステップ157においてルータ−は分 離された順にこれら経路未付与の接続に経路付与することを試みる。このU ( c)要件を満たし得ない接続はすべて一時的に経路未付与のまま残される。
ステップ158においてルータ−は経路未付与のままの接続があるかどうかを決 定し、もしあれば、ステップ159において、それら経路未付与の接続について のU (c)を20%だけ増加させる。経路を分類し経路付与を試みるステップ 156および157を次に繰り返す。このループを全経路付与の終了まで繰り返 す。
経路付与期間中のタイミング改善の効果この経路付与改善方法で改善タイミング を達成できることがしばしばある。種々の寸法および機能のベンチマーク設計2 2件についての実験において、全接続につき一つの遅延限界値を用いた経路付与 アルゴリズムから導かれる遅延と下側境界値使用の限界値調整アルゴリズムを用 いて導かれる遅延とを比較し、次に上述の経路付与改善アルゴリズムを一回通過 させた。その結果、単一の遅延限界値を用いたタイミング結果に比べるどの場合 についても改善がみられた。改善の度合は3%から32%にわたり上記ベンチマ ーク設計22件についての平均は約14%であった。達成された接続遅延と理論 上の最小接続遅延との比較から、各接続がもっとも高速の経路で経路付与されて いれば経路遅延の付加的改善は16%だけであることがわかる。これら22件の 設計およびこれら以外の設計についてのこれ以上のタイミング改善はこの発明を 設計をレイアウトする際の初期配置または配置改善に用いることによって達成で きよう。それら改善はまだ試みられていない。
図10の流れ図はこれら段階のすべてに適合する。配置の初期段階では実際の遅 延についてはほとんど不明であるので、下側境界は単なる概算値である。しかし 、これら初期の概算値から限界示唆値を計算することによって、それ以後の配置 結果が改善される。経路分析方法をレイアウト処理の初期の段階に応用すること を次に述べる。
初期配置 この発明の方法は論理素子の論理ブロックへの初期配置にも使うことができる。
初期配置は最小値カット分割アルゴリズム、すなわちデバイスの二つの領域で実 動化される二つのクラスタに全体の設計を分割することによって始まるアルゴリ ズムで行うのが好ましい。最小値カットアルゴリズムはそれら二つの領域を分け る分割線を横切って延びる接続の数を最小化する。この最小値カットアルゴリズ ムは一つのクラスタを、各クラスタが一つの論理ブロック内で実動化できるまで 、二つのより小さいクラスタに分割することを続ける。
素子の一つのクラスタの二つのクラスタへの分割の各々は分割線の両側の各々に 論理素子の半分を配置することによって始まる。これに引続き、各素子の所属す る側を転換する一連のステップを配置する。これらステップの各々において、上 記分割線を横切って動くように選択された素子は所属の側の転換による損失削減 効果のもっとも大きい素子である。
従来技術の最小値カットアルゴリズムにおいては、分割線のまわりの特定の素子 配列に伴う損失はその線を横切る接続の数の概算値(概算の実際の数は一般に単 一の信号源からファンアウトする多数の接続の組についての最終的な経路付与に 左右されるので概算値となる)である。図16は素子E2を分割線171を横切 って区画S1から82に動かす損失を概算する小側である。
全部の素子を片方の側から他の片方の側に移し終えたあと、このシーケンス内で 最低損失を達成したステップを新たな予定分割線として用いる。この手順は、分 割線を横切って各素子を再び動かし最低損失の配置を選ぶことによって繰り返さ れる。各素子の移動および最低損失の配置の選択の手順の繰返しはこのシーケン スがそれ以上の改善をもたらさなくなるまで続く。
この発明は、分割線越えの素子移動の損失の概算を、分割線を跨ぐ接続の数の改 善だけでなく遅延計算にも基づいて行う。
(9) 損失、=N、、、、、Nl+eT。、、+Cd、1.. (E)ここで 損失、は分割線を越える素子Eを動かす損失(負の数は改善を示す)、N、、、 、、−N。、。1.は従来技術による接続横断損失、すなわち素子移動後の分割 線越え接続の数の概算値マイナス素子移動前の分割線越え接続の数の概算値 C−−+−,(E)はその素子を分割線越えて動かすための遅延に関する損失追 加。
この発明によると、C,、、、、(E)は素子Eへの接続についての接続遅延関 数Cd51ay (C)の合計である。すなわち、素子Eにつながるすべての接 続Cについて、Qo) C,、、、、(E) =ΣC,,1av(c)この発明 の好適な実施例によると、接続遅延関数Cm−1av (C)は上述の図10の ステップ104で計算した遅延限界示唆値U (c)の関数であり、また、二つ の値B (c)およびW(c)の関数でもある。値B (c)は接続が分割線を 横断しないなどより良好な状態を表わし、値W(c)は接続Cが分割線を横断す るなどより不良な状態を表わす。図17Aは素子E1およびE2の間の接続が分 割線171を横断しないより良好な状態を示し、図17Bは素子E2が動かされ て素子E1およびE2の間の接続が分割線171を横断したより不良な状態を示 す。
接続が分割線を横断しない図17Aの場合において、接続El−E2についての 遅延を決定するために、素子E1およびE2は分割線171の左側の領域のX寸 法の1/3および7寸法の1/3だけ離されているものとする。これら座標に対 応する上記良好状態の遅延B (c)を使用中のチップに特有の概算遅延表で調 べる。その表に格納されている概算遅延は、素子間の接続の経路付与はそのチッ プ内の最高速経路、すなわち高速資源と指定されたステップ経路付与資源を除く 最高速経路を用いてなされると仮定して決定される。遅延は通常チップ内の特定 の資源およびトランジスタで定まり、素子を配置した論理ブロック間の距離には 比例しない。例えばジリンクス社FPGAチップのあるもの、すなわち大域クロ ックバッファ線およびその他の長い線がチップ全長またはある場合にはそのチッ プの半分の長さにわたって延びるチップにおいては、比較的少数のこれら高速資 源が備えられている。すなわち、それら高速資源は大きいチップ表面積を占有し 、クロックや高フアンアウト線など高速用の資源としてレイアウトツールに識別 されるように高速資源と指定されているからである。これら高速資源はチップ内 の多数の接続には利用不可能である。したがって、接続遅延の最良の概算値はこ れら高速資源は利用不可能と仮定している。一つの実施例においては、概算遅延 表中の遅延概算値は、接続形成用の配線セグメント間の相互接続が信号の再生お よび高速化のためにバッファ経由になっていないものと仮定している。すなわち 、概算遅延表はかなり控え目な表である。現在入手可能なチップについては、概 算遅延は1乃至20ナノ秒の範囲にある。
接続が縦分割線171を横断する図17Bの場合は、素子E1およびE2はこれ ら部分の水平方向寸法の中間点、および垂直方向の1/3および2/3の点にあ るものと仮定している。図17Bに示した位置の素子E1およびE2対応の不良 状態の遅延W(c)は概算遅延表で調べる。上述のとおり、損失Cdelay  (c)は遅延限界示唆値U(c)、良好状態遅延B (c)および不良状態遅延 W(c)の関数である。現在のところ好適な関数は、 (11) W(c) < U(c)/2の場合、Ca*1.v (c) =。
U(C) >W(C) >U(C)/2の場合、C;++ay (c) =f( c) −B(c)f(c) > U(c)の場合、 Ca、+、、 (c) =W(c)−B(c)+ [W(c)−B(c)、U( c)の大きい方]である。すなわち分割線を横断することによる遅延が限界示唆 値よりも依然としてずっと小さい場合は、Carlay (C)に関する因子は その素子を動かす損失の概算の際にC1+−(E)に加算されない。接続が分割 線を横断することによる遅延か遅延限界示唆値U (c)に近くしかもそれより 小さい場合は、その分割線横断による損失を反映するために選ばれる数字、すな わち分割線が横断されたときの予期遅延と分割線横断がなかったときの予期遅延 との差は、C,、、、、(E)に与えられる。上記不良状態遅延が遅延限界示唆 値U (c)を超える場合は、CdelaF (c)からの第2の寄与値をC, ,1,、(E)に加算する。この追加の寄与値は二つの差、すなわち、不良状態 遅延と遅延限界示唆値との差(すなわち不良状態においてその示唆値をどれほど 超えたか)、および不良状態遅延と良好状態遅延との差(改善の可能性に関する )の二つの差の小さい方である。
W(c)が上記移動の前の状態に対応し、B (c)が上記移動のあとの状態に 対応すれば、Cn、+、、 (c)は負の数字として記録される。図16の例で はCa*+*y (C)がE1以外のE2からの全接続について生ずる。区画S 1からS2へのE2の移動は負の合計値、すなわち改善を示す可能性がある(た だし、素子E1が不良状態遅延W(c)>U(c)/2を有する唯一の素子でな い場合)。
上記式(9)については、C1□ay (c)およびC,、、、、(E)が時間 単位であり、一方分割線横断の数N ml+er Nbs+。1.の単位は線数 であることに注意されたい。
一つの実施例においては、C++11mF (c)の単位をナノ秒の十分の−で 特定し、その結果のC,、、、、(E)値を数N sN*+ Nb5la+sに 加えることによって単位変換を行う。
もう一つの実施例では、相次ぐ分割線がより小さい領域を分割する事実を、数N  m l l #、 Nb*l@I11にその分割線の分割した寸法に比例する 因子を乗することによって考慮に入れである。したがって、素子移動の損失の式 は次のとおりとなる。
(9) 損失、=S本(Nar+e+ Nbe+or、)+Cds+、y(E) ここで、 Sは分割線に垂直に分割した部分の寸法(行または列の数で測った)であって、 分割線が形成し得る物理的分割に関する寸法である。
分割線を横断して素子を動かすコストは分割対象の部分の中の各素子について計 算され、各素子について各接続のその素子への影響を考慮する。
最小値カット分割アルゴリズムを用いた初期配置にこの発明の遅延限界示唆値を 用いた場合の図10のステップの流れは、各分割線についてステップ102.1 03.104および111を通って一回だけ循環することである。したがって、 遅延限界示唆値U (c)の計算は初期配置活動の期間中に多数回にわたり行わ れる。
一つの実施例においては、経路分析103および104は初期配置の完了まで全 部の分割線について繰り返される。もう一つの実施例では、遅延限界示唆値は最 初のいくつかのクラスタを分割する分割線の決定後は再計算(図13のステップ 103および104を用いて)されない。例えば256個の論理ブロックを有す るロジックアレーチップでは、最初の分割線でロジックを約100乃至150個 の論理ブロックを占有する二つのグループに分割し、次に第2および第3の分割 線でロジックを各々が約50乃至75個の論理ブロックを占有するグループに分 割する。第4、第5、第6、および第7の分割線はロジックを各々が25乃至5 0個の論理ブロックを占有するグループに分割する。第7または第8の分割線の 終了後、経路分析ステップ103および104を中止し、残余の分割は算出ずみ の遅延限界値を用いて行い、それによって計算時間を節減できる。下側境界は更 新した分割情報を用いて計算される値よりも低(・が、計算ずみの遅延限界示唆 値U (c)の反映される零よりも大きい下側境界の利点は後続の分割ステップ でも継続する。ステップ111における良好状態遅延および不良状態遅延の計算 は経路分析のステップ103および104を通じた反復が中止されても継続する 。
遅延限界示唆値U (c)は、図10のステップ104において、上述の例で行 ったのと同様に例えば経路付与の期間内に下側境界遅延L (c)を用いて計算 される。
しかし正確な下側境界の数字は素子未配置であるため未知である。図18は図1 6に示した素子についてのステップ4の遅延限界示唆値計算用の下側境界推定値 を示す。図18は分割線171の確立後のレイアウトを示す。図18においては 、図示のために素子E2は区画Sl内に留まっている。下側境界接続遅延L ( c)を計算する際には、それら素子は接続対象の素子にもっとも近い領域部分に あるものと仮定する。すなわち、下側境界接続はその接続がどこに延びるかによ って領域の異なる部分から延びる。例えば、素子29については接続E9−El lのための領域S2の右下隅に示してあり、E9は接続E2−E9用の区画S2 の左隅に示しである。したがって、分割のこの段階においては図10のステップ 104において、接続E2−EIOおよびE9−Elfのみが分割に伴う大きい 下側境界遅延を示す。それ以外の接続はできるだけ近い論理ブロック対応の最小 遅延を有するものとして示しである。接続遅延は図示の最小距離についての遅延 の表からとっである。下側境界遅延は接続E2−EIOについてのU(E2−E IO)など接続遅延限界示唆値の計算に用いる。
配置改善アルゴリズム − 限界示唆値の利用この発明を使う一つの配置改善ア ルゴリズムは三つの部分の間の素子の循環である。図10の状況を考慮すると、 配置改善はステップ111で起こる。ステップ111の期間中に論理設計内の各 論理素子の他の場合への動きを考慮する。この配置改善アルゴリズムは素子の移 動先として、空きの場所を見出すことに依存することはできないので、一般には 配置改善は二つの論理素子の交換またはいくつかの論理素子の循環を伴う。次の 説明は三つの素子を循環させることに関する。
図19は配置変動を考慮中の素子191を示す。素子192は第1候補場所にあ る。しかし素子192を素子191の場所改善の受容のために移動させることは 全体として悪い影響を及ぼそう。したがって、素子192のそれ以外の隣接素子 、すなわちある実施例においては八つの隣接素子を素子191の移動先として考 慮する。例えば素子194と素子192とを素子191の移動先として考慮する 。
素子192および194を含む九つの素子の各々について最も好ましい移動先の 場所を隣接素子とともに考慮する。素子192についてはもっとも好ましい移動 は素子193の位置への移動であり、素子193は素子191の素子に三角形を 形成するように動かし得る。素子194については、もっとも好ましい素子は1 95である。このように、素子191についての移動の評価のために81個の三 角形を考慮でき、そのうちの最良のものが選ばれる。
従来技術においては素子191についての移動先のこの第1候補は素子191へ の接続を有するそれら素子の重心である。この発明の実施例では、素子191の 移動先の第1候補は素子191への接続向けのタイミング損失を最小にする場所 である。もう一つの実施例では、第1候補192は、素子191の接続の重心と 素子191への接続向けのタイミング損失が最小になる場所との中間の場所にあ る。素子移動先第1候補の選択のためのこれら二つの手段には数多く他の組合せ も使用できる。現在のところ好適な方法は従来技術による上記重心とタイミング 損失を最低にする場所との中間の場所を用いる。ステップ104からの遅延限界 示唆値U (c)はこのタイミング損失の計算に用いられる。
図20は特定の配置の損失の計算を接続上の遅延概算値D(c)とそれら接続に ついての遅延限界示唆値との比較によって行う方法を示す。遅延概算値はもう一 つの表に格納されている。遅延概算値の表は二つ以上の速度の経路付与資源を備 えるチップ内での最高速の経路付与資源は利用不可能と仮定することによって決 定される。いくつかの市販のチップは限られた数の高速経路付与資源を有し、そ の数が少ないためにこれら資源は一般には大多数の接続には利用不可能である。
したがって、遅延の概算にはそれら高速資源は利用不可能としたほうが妥当であ る。
移動先第1候補のX座標およびy座標は次の式から計算できる。
(12) Gx=Σ[損失(c) *X (c)]/Σ[損失(C)](13)  GY=Σ[損失(c) *Y (c)]/Σ[t!失(C)〕X (c)は接 続の他端における素子のX座標であり、Y (c)は接続の他端における素子の Y座標であり、善後の場所が決定されたのち(図10のステップ111) 、移 動後の位置についを通じた循環の不成就数は3である。
ステップ103および104において弛緩が計算され遅延限界が示唆される。
これらの遅延限界示唆値は配置改善アルゴリズムによって素子の次の移動、すな わち選択配置の改善のために使われる。経路が遅い弛緩を有することが決定され ると、ステップ104で計算された遅延限界示唆値は、遅延限界値を受容するよ う次の移動を選択するためにステップ111でプレーサ−に使われる。このプレ ーサ−は厳しい限界値をもつ接続により大きい重みを与え、重要な接続の付着を 受けた素子が低速の接続によって分離されることが起こりにくいようにする。
配置改善の期間中に、配置素子間で可能な最高速接続を仮定した下側境界遅延を 、それら素子の配置を含む論理ブロックの相互間の接続に利用可能な最高速経路 にそれら素子を経路付与できると仮定することによってステップ102で概算で きる。初期配置について上述のとおり、下側境界接続遅延は表で調べる。(表は 三素子間のXおよびy距離の関数でもよく、それら三素子のXおよびX座標の関 数でもよい。)下側境界遅延については、多重接続は同一の物理的線路に接続可 能と仮定できる。ステップ102のあと、下側境界接続遅延の組は経路分析ツー ルに伝えられ、そのツールはステップ103において下側境界経路および弛緩を 計算し、ステップ104においてこれら接続についての新しい遅延限界示唆値U  (c)を計算する。
経路分析ツールは対応の下側境界クロック周期をも計算できる。これは各接続を 最高速の経路に経路付与した場合にこのデバイスを動作させるのに用いられ得る 最小クロック周期である。この下側境界よりも小さいクロック周期がめられた場 合は、エラーメツセージがユーザに送られる。ステップ104で計算された限界 示唆値に基づき、プレーサ−はステップ111で代替的配置、すなわち所望のク ロック周期から得られる遅延限界示唆値に合致する配置の一組を試みる。一つの 実施例においては、このプレーサ−は、下側境界遅延がタイミング制約の受容不 可能なことを示せば引続き動作し最良の利用可能な配置を見出す。
上述の説明に照らして、当業者にはこれら以外の実施例、すなわちマスクプログ ラムデバイスやカスタムデバイスに使える遅延限界決定方法を含む実施例が自明 になろう。それら実施例はこの発明の範囲内に含まれると意図されたものである 。
Pr1or Art Pr1or Art レイアウトツール 経路分析 耽 ; FIG、20 補正書(翻訳文)提出書。特M+u@ 184よ、)8)平成6年12月2し

Claims (30)

    【特許請求の範囲】
  1. 1.論理素子および接続から成る論理設計を論理ブロックおよび経路形成可能な 配線セグメントを有するロジックデバイス上にレイアウトする方法であって、前 記論理設計を機械可読な形で特定する過程と、前記論理設計中の接続について下 側境界接続遅延L(c)を概算する過程と、前記接続の各々について遅延限界値 U(c)、すなわちその各々を前記下側境界接続遅延の対応する値以上に選んだ 遅延限界値を選ぶ過程と、実際のまたは概算の遅延D(c)を伴うレイアウト過 程を、前記遅延限界値U(c)の少なくともいくつかを前記実際のまたは概算の 遅延D(c)が超えることがないように行う過程と、 前記論理設計の前記ロジックデバイス上へのレイアウトを完結させる過程とを含 む方法。
  2. 2.前記レイアウト過程が前記論理素子を前記ロジックデバイスの対応部分上に それぞれレイアウトすべきグループ内に形成することを含む請求項1記載のロジ ックデバイス上への論理設計のレイアウト方法。
  3. 3.前記レイアウト過程が前記論理ブロック内での前記論理素子の初期配置の選 択を含む請求項1記載のロジックデバイス上への論理設計のレイアウト方法。
  4. 4.前記初期配置の過程が最小値カットアルゴリズムにより行われる請求項3記 載のロジックデバイス上への論理設計のレイアウト方法。
  5. 5.前記レイアウト過程が前記論理設計の論理素子の前記ロジックデバイスの対 応論理ブロック内への配置を改善することを含む請求項1記載のロジックデバイ ス上への論理設計のレイアウト方法。
  6. 6.前記レイアウト過程が、前記論理ブロック内に配置された前記論理素子どう しを互いに接続するように前記接続を前記ロジックデバイスの配線セグメント沿 いに経路付与し、それによって前記論理設計を実動化することを含む請求項1記 載のロジックデバイスヘの論理設計のレイアウト方法。
  7. 7.前記配線セグメント沿いに前記接続を経路付与する過程のあとに、前記修正 遅延限界値を満たさない付与ずみの経路を消去する過程と、下側境界の遅延限界 値に対する比の減少する順に経路未付与の接続に経路付与する過程と をさらに含む請求項6記載のロジックデバイスヘの論理設計のレイアウト方法。
  8. 8.達成ずみの遅延D(c)を計算する過程と、前記下側境界L(c)および前 記達成ずみの遅延D(c)の関数である前記修正遅延限界値Ur(c)を計算す る過程と、前記修正遅延限界値Ur(c)を用いて前記論理設計についての次の レイアウト過程を行う過程と をさらに含む請求項1記載ロジックデバイスヘの論理設計のレイアウト方法。
  9. 9.前記修正遅延限界値の各々がその接続の弛緩S(c)、すなわちその接続に ついて要求された最も早い信号到着時間R(c)とその接続へのもっとも遅い実 際の信号到着時間との差である弛緩S(c)の関数である請求項8記載のロジッ クデバイスヘの論理設計のレイアウト方法。
  10. 10.前記修正遅延限界値が次式、すなわちUr(c)=D(c)+f(c)* S(c)ここで Ur(c)は前記遅延限界値を表わし、f(c)は1以下の分数であり、 S(c)は前記弛緩である から計算される請求項9記載のロジックデバイスヘの論理設計のレイアウト方法 。
  11. 11.前記修正遅延限界値を計算する過程のあとに、反復的に、前記弛緩S(c )を再び計算し、 前記弛緩S(c)が十分に零に近くない場合にそれら弛緩が十分に零に近くなる まで前記修正遅延限界値を次式、すなわちUr(c)new=Ur(c)old +f(c)*S(c)によりさらに修正する 過程を含む請求項10記載のロジックデバイスヘの論理設計のレイアウト方法。
  12. 12.前記分数f(c)が次式、すなわちf(c)=重み(c)/最大〔重み( p)〕ここで 重み(c)=D(c)−L(c) D(c)=接続cについての遅延の概算値または達成値L(c)=接続cについ ての達成可能な下側境界遅延重み(p)=Σ経路p上の全接続cについての重み (c)最大〔重み(p)〕は接続cを含む最大重みの経路上の重み(p)で計算 される請求項10記載のロジックデバイスヘの論理設計のレイアウト方法。
  13. 13.前記レイアウト過程が前記接続の各々を実動化する経路を選択することを 含む請求項8記載のロジックデバイスヘの論理設計のレイアウト方法。
  14. 14.前記修正遅延限界値を計算する過程のあとに、前記修正遅延限界値を満た さない付与ずみの経路を除去する過程と、達成ずみの遅延の遅延限界値に対する 比の減少する順に前記経路未付与の接続を経路付与する過程と をさらに含む請求項13記載のロジックデバイスヘの論理設計のレイアウト方法 。
  15. 15.前記レイアウト過程が論理素子を対応の論理ブロック内に配置することを 含む請求項8記載のロジックデバイスヘの論理設計のレイアウト方法。
  16. 16.前記修正遅延限界値の計算過程のあとに、追加の論理素子を対応の論理ブ ロックに前記修正遅延限界値を侵さないように配置する過程をさらに含む請求項 15記載のロジックデバイスヘの論理設計のレイアウト方法。
  17. 17.論理素子および接続から成る論理設計を論理ブロックおよび経路形成可能 な配線セグメントを有するロジックデバイス上にレイアウトする方法であって、 a)前記論理設計を機械可読な形で特定する過程と、b)前記接続の各々につい て遅延限界値U(c)を選択する過程と、c)概算遅延D(c)をもたらす初期 配置過程、すなわち修正した最小値カット分割アルゴリズムであって論理素子の 分割線を横断する移動の要否の決定を 1)前記分割線を横断する接続の数を最小にすること、および2)前記分割線を 横断して前記素子を移動させることにより生ずる遅延を最小化すること に基づき行う最小値カット分割アルゴリズムを用いて行う初期配置過程を行う過 程と、 d)前記論理設計の前記ロジックデバイスヘのレイアウトを完結させる過程とを 含む方法。
  18. 18.前記分割線を横断して前記素子を移動させることにより生ずる遅延を最小 化する前記過程が、前記素子への前記接続の少なくとも一つをその一部とする少 なくとも一つの経路に沿う遅延を最小化することを含む請求項17記載の論理設 計のレイアウト方法。
  19. 19.前記分割線を横断して前記素子を移動させることにより生ずる遅延を最小 化する前記過程が、前記素子への接続についてのタイミング損失の合計を最小化 することを含む請求項17記載の論理設計のレイアウト方法。
  20. 20.前記タイミング損失の各々が前記遅延限界値U(c)の関数であり、また 、前記分割線を横断する接続のより不良のタイミング損失W(c)と前記分割線 を横断しない接続のより良好なタイミング損失B(c)との関数でもある請求項 17記載の論理設計のレイアウト方法。
  21. 21.前記より不良のタイミング損失W(c)および前記より良好のタイミング 損失B(c)が概算遅延、すなわち前記接続の用いた経路が前記ロジックデバイ ス間でとくに高速と指定された経路付与資源以外のその接続への可能な最高速の 経路であると仮定することによって計算した概算遅延の関数である請求項20記 載の論理設計のレイアウト方法。
  22. 22.前記より不良のタイミング損失W(c)およびより良好なタイミング損失 B(c)の関数が前記より不良のタイミング損失W(c)とより良好のタイミン グ損失B(c)との差の関数である請求項20記載の論理設計のレイアウト方法 。
  23. 23.前記差の関数が次式、すなわち W(c)<U(c)/2の場合、Cdelay(c)=0、U(c)>W(c) >U(c)/2の場合、Cdelay(c)=W(c)−B(c)、W(c)> U(c)の場合、 Cdelay(c)=W(c)−B(c)+〔W(c)−B(c),U(c)の 大きい方〕で決定される請求項22記載の論理設計のレイアウト方法。
  24. 24.論理素子および接続から成る論理設計を論理ブロックおよび経路形成可能 な配線セグメントを有するロジックデバイス上にレイアウトする方法であって、 a)前記論理設計を機械可読な形で特定する過程と、b)前記接続の各々につい て遅延限界値U(c)を選択する過程と、c)前記接続の各々について概算遅延 D(c)を決定する過程と、d)前記論理設計における複数個の論理素子を循環 させるために選ばれたひと組の位置を、前記複数個の論理素子についてのタイミ ング損失(c)、すなわち各々が 1)対応の遅延限界値U(c)、および2)対応の概算遅延D(c) の関数であるタイミング損失の関数とした配置改善過程を行う過程と、e)前記 論理設計のレイアウトを前記ロジックデバイス上に完結させる過程と、を含む方 法。
  25. 25.前記概算遅延D(c)が、とくに高速と指定されている前記ロジックデバ イス内の経路付与資源を用いることなくその接続に利用可能な最高速の経路を各 接続cについての経路とすると仮定している請求項24記載の論理設計のレイア ウト方法。
  26. 26.前記複数個の論理素子についてのタイミング損失の前記関数が前記複数個 の論理素子の各々への各接続についての接続損失(c)の関数である請求項24 記載の論理設計のレイアウト方法。
  27. 27.前記接続損失(c)の関数が前記接続損失の合計である請求項26記載の 論理設計のレイアウト方法。
  28. 28.前記論理設計中の複数個の論理素子を循環させるために選ばれた前記位置 の各々が次式、すなわち Gx=Σ〔損失(c)*X(c)〕/Σ〔損失(c)〕Gy=Σ〔損失(c)* Y(c)〕/Σ〔損失(c)〕ここで 損失(c)は前記複数個の論理素子の一つに付けられた接続cのタイミング損失 であり、 X(c)は前記接続cの他方の端における素子のX座標であり、Y(c)は前記 接続cの他方の端における素子のY座標であり、加算Σは前記論理素子に至る全 ての接続cについて行われるものであるから選ばれる請求項24記載の論理設計 のレイアウト方法。
  29. 29.前記タイミング損失(c)の各々が、前記概算遅延D(c)が前記遅延限 界値U(c)に等しいとき設定値Fに等しく、U(c)よりも小さい概算遅延D (c)について差D(c)−U(c)の第1の関数として零に向かって減少し、 前記遅延限界よりも大きい概算遅延について概算遅延D(c)マイナス遅延限界 U(c)の第2の関数として増加する 請求項28記載の論理設計のレイアウト方法。
  30. 30.前記第1の関数がF+D(c)−U(c)であり、前記第2の関数がF+ (2*(D(c)−U(c))である請求項29記載の論理設計のレイアウト方 法。
JP50067794A 1992-06-04 1993-05-27 プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法 Expired - Fee Related JP3737104B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US89450092A 1992-06-04 1992-06-04
US894,500 1992-06-04
PCT/US1993/004892 WO1993024895A2 (en) 1992-06-04 1993-05-27 Timing driven method for laying out a user's circuit onto a programmable integrated circuit device

Publications (2)

Publication Number Publication Date
JPH07507409A true JPH07507409A (ja) 1995-08-10
JP3737104B2 JP3737104B2 (ja) 2006-01-18

Family

ID=25403162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50067794A Expired - Fee Related JP3737104B2 (ja) 1992-06-04 1993-05-27 プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法

Country Status (4)

Country Link
US (1) US5521837A (ja)
EP (1) EP0643855A1 (ja)
JP (1) JP3737104B2 (ja)
WO (1) WO1993024895A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010199731A (ja) * 2009-02-23 2010-09-09 Toshiba Corp スイッチングボックス回路、スイッチングブロック回路、およびfpga回路
JP2013045294A (ja) * 2011-08-24 2013-03-04 Toshiba Corp 集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5648913A (en) * 1993-03-29 1997-07-15 Xilinx, Inc. Frequency driven layout system and method for field programmable gate arrays
JP3210172B2 (ja) * 1994-05-13 2001-09-17 富士通株式会社 ディレイ・レーシング・エラーリスト出力装置
US5774371A (en) * 1994-08-03 1998-06-30 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit and layout designing method for the same
US5507029A (en) * 1995-01-11 1996-04-09 International Business Machines Corporation Method for minimizing the time skew of electrical signals in very large scale integrated circuits
US5661663A (en) * 1995-03-24 1997-08-26 Lsi Logic Corporation Physical design automation system and method using hierarchical clusterization and placement improvement based on complete re-placement of cell clusters
US5856927A (en) * 1995-05-01 1999-01-05 Vlsi Technology, Inc. Method for automatically routing circuits of very large scale integration (VLSI)
US5898595A (en) * 1995-05-26 1999-04-27 Lsi Logic Corporation Automated generation of megacells in an integrated circuit design system
US5726902A (en) * 1995-06-07 1998-03-10 Vlsi Technology, Inc. Method and apparatus for characterizing timing behavior of datapaths for integrated circuit design and fabrication
US5764532A (en) * 1995-07-05 1998-06-09 International Business Machines Corporation Automated method and system for designing an optimized integrated circuit
US5751596A (en) * 1995-07-27 1998-05-12 Vlsi Technology, Inc. Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
US5659717A (en) * 1995-07-31 1997-08-19 Altera Corporation Methods for partitioning circuits in order to allocate elements among multiple circuit groups
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5666290A (en) * 1995-12-27 1997-09-09 Vlsi Technology, Inc. Interactive time-driven method of component placement that more directly constrains critical paths using net-based constraints
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5787009A (en) * 1996-02-20 1998-07-28 Altera Corporation Methods for allocating circuit design portions among physical circuit portions
US6226560B1 (en) * 1996-03-04 2001-05-01 International Business Machines Corporation Method and apparatus for optimizing the path of a physical wire
US5761078A (en) * 1996-03-21 1998-06-02 International Business Machines Corporation Field programmable gate arrays using semi-hard multicell macros
US5815406A (en) * 1996-03-25 1998-09-29 International Business Machines Corporation Method and system for designing a circuit using RC and timing weighting of nets
US5877965A (en) * 1996-06-24 1999-03-02 International Business Machines Corporation Parallel hierarchical timing correction
US5943488A (en) * 1996-06-26 1999-08-24 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5926035A (en) * 1996-06-26 1999-07-20 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US6026223A (en) * 1996-06-28 2000-02-15 Scepanovic; Ranko Advanced modular cell placement system with overlap remover with minimal noise
US5870312A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with dispersion-driven levelizing system
US5867398A (en) * 1996-06-28 1999-02-02 Lsi Logic Corporation Advanced modular cell placement system with density driven capacity penalty system
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
US5963455A (en) * 1996-06-28 1999-10-05 Lsi Logic Corporation Advanced modular cell placement system with functional sieve optimization technique
US5808899A (en) * 1996-06-28 1998-09-15 Lsi Logic Corporation Advanced modular cell placement system with cell placement crystallization
US5844811A (en) * 1996-06-28 1998-12-01 Lsi Logic Corporation Advanced modular cell placement system with universal affinity driven discrete placement optimization
US5914888A (en) * 1996-06-28 1999-06-22 Lsi Logic Corporation Advanced modular cell placement system with coarse overflow remover
US5870311A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with fast procedure for finding a levelizing cut point
US5872718A (en) * 1996-06-28 1999-02-16 Lsi Logic Corporation Advanced modular cell placement system
US6067409A (en) * 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US5831863A (en) * 1996-06-28 1998-11-03 Lsi Logic Corporation Advanced modular cell placement system with wire length driven affinity system
US6030110A (en) * 1996-06-28 2000-02-29 Lsi Logic Corporation Advanced modular cell placement system with median control and increase in resolution
US6085032A (en) * 1996-06-28 2000-07-04 Lsi Logic Corporation Advanced modular cell placement system with sinusoidal optimization
US5812740A (en) * 1996-06-28 1998-09-22 Lsi Logic Corporation Advanced modular cell placement system with neighborhood system driven optimization
US5835381A (en) * 1996-06-28 1998-11-10 Lsi Logic Corporation Advanced modular cell placement system with minimizing maximal cut driven affinity system
US5910899A (en) * 1996-10-25 1999-06-08 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a spreadsheet with computed hyperlinks to physical layout graphics and integrated circuit made using same
US5896301A (en) * 1996-10-25 1999-04-20 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a histogram and integrated circuit made using same
US5903472A (en) * 1996-10-25 1999-05-11 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis by selectively displaying signal paths based on slack time calculations and integrated circuit made using same
US5980091A (en) * 1996-11-20 1999-11-09 Unisys Corporation Method of synthesizing synchronized circuit modules in an integrated circuit chip
US5974437A (en) * 1996-12-02 1999-10-26 Synopsys, Inc. Fast array multiplier
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US6074429A (en) * 1997-03-03 2000-06-13 Motorola, Inc. Optimizing combinational circuit layout through iterative restructuring
US6401231B1 (en) * 1997-04-25 2002-06-04 Cadence Design Systems, Inc. Method and apparatus for performing both negative and positive slack time budgeting and for determining a definite required constraint during integrated circuit design
US6226034B1 (en) * 1997-05-06 2001-05-01 Roper Scientificomasd, Inc. Spatial non-uniformity correction of a color sensor
US6041169A (en) * 1997-08-21 2000-03-21 International Business Machines Corporation Method and apparatus for performing integrated circuit timing including noise
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6453446B1 (en) * 1997-12-24 2002-09-17 Magma Design Automation, Inc. Timing closure methodology
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6219819B1 (en) * 1998-06-26 2001-04-17 Xilinx, Inc. Method for verifying timing in a hard-wired IC device modeled from an FPGA
US6215325B1 (en) 1999-03-29 2001-04-10 Synopsys, Inc. Implementing a priority function using ripple chain logic
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US6507938B1 (en) * 1999-11-12 2003-01-14 Intel Corporation Methods for improving the performance of VLSI layouts designed by a timing driven physical design tool
US6587815B1 (en) * 2000-02-04 2003-07-01 Sun Microsystems, Inc. Windowing scheme for analyzing noise from multiple sources
US6601226B1 (en) * 2000-03-14 2003-07-29 Synopsys, Inc. Tightloop method of timing driven placement
US7302685B2 (en) * 2000-06-02 2007-11-27 Honeywell International Inc. Methods and apparatus for sharing slack in a time-partitioned system
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US6763506B1 (en) 2000-07-11 2004-07-13 Altera Corporation Method of optimizing the design of electronic systems having multiple timing constraints
US7020589B1 (en) * 2000-09-29 2006-03-28 Lsi Logic Corporation Method and apparatus for adaptive timing optimization of an integrated circuit design
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US6915309B1 (en) * 2001-03-20 2005-07-05 Cisco Technology, Inc. Automatically generating replication topology information for use by a directory service
WO2002101600A2 (en) * 2001-06-08 2002-12-19 Magma Design Automation, Inc. Method for generating design constraints for modulates in a hierarchical integrated circuit design system
US6836753B1 (en) 2001-06-13 2004-12-28 Cadence Design Systems, Inc. Cone slack allocator for computing time budgets
WO2002103532A2 (de) 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US6934922B1 (en) * 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US6671867B2 (en) * 2002-04-11 2003-12-30 International Business Machines Corporation Analytical constraint generation for cut-based global placement
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US6886152B1 (en) 2002-08-09 2005-04-26 Xilinx, Inc. Delay optimization in signal routing
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7185299B1 (en) * 2003-01-30 2007-02-27 Xilinx, Inc. Methods of estimating routing delays during the placement process in programmable logic devices
US7757197B1 (en) 2003-05-29 2010-07-13 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US7823112B1 (en) 2003-05-30 2010-10-26 Golden Gate Technology, Inc. Method, software and system for ensuring timing between clocked components in a circuit
US7234125B1 (en) * 2003-06-23 2007-06-19 Altera Corporation Timing analysis for programmable logic
US7360190B1 (en) * 2003-07-11 2008-04-15 Altera Corporation Method and apparatus for performing retiming on field programmable gate arrays
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7308664B1 (en) 2004-02-09 2007-12-11 Altera Corporation Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool for routing
US7207020B1 (en) * 2004-02-09 2007-04-17 Altera Corporation Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool
US7376924B2 (en) * 2004-07-12 2008-05-20 International Business Machines Corporation Methods for placement which maintain optimized behavior, while improving wireability potential
US7356793B2 (en) * 2004-07-12 2008-04-08 International Business Machines Corporation Genie: a method for classification and graphical display of negative slack timing test failures
US7120888B2 (en) * 2004-07-12 2006-10-10 International Business Machines Corporation Method, system and storage medium for determining circuit placement
US8015533B1 (en) * 2004-09-21 2011-09-06 Golden Gate Technology, Inc. Method for matching timing on high fanout signal paths using routing guides
US7284229B1 (en) 2004-10-01 2007-10-16 Xilinx, Inc. Multiple bitstreams enabling the use of partially defective programmable integrated circuits while avoiding localized defects therein
US7424655B1 (en) 2004-10-01 2008-09-09 Xilinx, Inc. Utilizing multiple test bitstreams to avoid localized defects in partially defective programmable integrated circuits
US20060190889A1 (en) * 2005-01-14 2006-08-24 Cong Jingsheng J Circuit floorplanning and placement by look-ahead enabled recursive partitioning
US7627836B2 (en) * 2005-11-08 2009-12-01 International Business Machines Corporation OPC trimming for performance
US8161469B1 (en) * 2005-12-13 2012-04-17 Altera Corporation Method and apparatus for comparing programmable logic device configurations
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8898609B1 (en) * 2006-07-18 2014-11-25 Altera Corporation Method and apparatus for integrating signal transition time modeling during routing
US7784006B1 (en) * 2006-07-27 2010-08-24 Xilinx, Inc. Method and apparatus for directed physical implementation of a circuit design for an integrated circuit
US7793247B1 (en) 2007-06-13 2010-09-07 Xilinx, Inc. Method and apparatus for directed physical implementation of a circuit design for an integrated circuit
US7920961B2 (en) * 2007-08-29 2011-04-05 Sap Ag Method and apparatus for path planning and distance calculation
US7853916B1 (en) * 2007-10-11 2010-12-14 Xilinx, Inc. Methods of using one of a plurality of configuration bitstreams for an integrated circuit
US7810059B1 (en) 2007-10-11 2010-10-05 Xilinx, Inc. Methods of enabling the validation of an integrated circuit adapted to receive one of a plurality of configuration bitstreams
US7895539B2 (en) * 2007-10-17 2011-02-22 International Business Machines Corporation System for improving a logic circuit and associated methods
US8141018B1 (en) 2009-01-14 2012-03-20 Altera Corporation Method and apparatus for using slack potential data to design a system on a field programmable gate array
US8656332B2 (en) * 2009-02-26 2014-02-18 International Business Machines Corporation Automated critical area allocation in a physical synthesized hierarchical design
WO2012154616A2 (en) * 2011-05-06 2012-11-15 Xcelemor, Inc. Computing system with hardware reconfiguration mechanism and method of operation thereof
US8522185B1 (en) * 2012-02-06 2013-08-27 Xilinx, Inc. Method for placement and routing of a circuit design
US9009646B1 (en) 2012-07-17 2015-04-14 Cypress Semiconductor Corporation Finding I/O placement with a router
JP2014044610A (ja) * 2012-08-28 2014-03-13 Renesas Electronics Corp タイミング解析プログラム、タイミング解析装置およびタイミング解析方法
US9984029B2 (en) * 2014-04-18 2018-05-29 Qualcomm Incorporated Variable interconnect pitch for improved performance
US9496871B1 (en) 2014-08-18 2016-11-15 Xilinx, Inc. Programmable power reduction technique using transistor threshold drops
US10339241B1 (en) * 2016-05-13 2019-07-02 Altera Corporation Methods for incremental circuit design legalization during physical synthesis
US10467373B2 (en) 2018-02-21 2019-11-05 Xilinx, Inc. Method of selecting routing resources in a multi-chip integrated circuit device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3617714A (en) * 1969-04-15 1971-11-02 Bell Telephone Labor Inc Method of minimizing the interconnection cost of linked objects
US4495559A (en) * 1981-11-02 1985-01-22 International Business Machines Corporation Optimization of an organization of many discrete elements
US4593363A (en) * 1983-08-12 1986-06-03 International Business Machines Corporation Simultaneous placement and wiring for VLSI chips
US4630219A (en) * 1983-11-23 1986-12-16 International Business Machines Corporation Element placement method
US4827428A (en) * 1985-11-15 1989-05-02 American Telephone And Telegraph Company, At&T Bell Laboratories Transistor sizing system for integrated circuits
US4924430A (en) * 1988-01-28 1990-05-08 Teradyne, Inc. Static timing analysis of semiconductor digital circuits
JP2563451B2 (ja) * 1988-03-10 1996-12-11 松下電器産業株式会社 論理シミュレーション方法と論理シミュレーション装置
US5187784A (en) * 1989-01-13 1993-02-16 Vlsi Technology, Inc. Integrated circuit placement method using netlist and predetermined ordering constraints to produce a human readable integrated circuit schematic diagram
JPH02242474A (ja) * 1989-03-16 1990-09-26 Hitachi Ltd 素子配置最適化方法及び装置並びに最適配置判定方法及び装置
US5095454A (en) * 1989-05-25 1992-03-10 Gateway Design Automation Corporation Method and apparatus for verifying timing during simulation of digital circuits
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
US5239493A (en) * 1990-06-26 1993-08-24 Digital Equipment Corporation Method and apparatus for interpreting and organizing timing specification information
US5224056A (en) * 1991-10-30 1993-06-29 Xilinx, Inc. Logic placement using positionally asymmetrical partitioning algorithm
US5197015A (en) * 1990-12-20 1993-03-23 Vlsi Technology, Inc. System and method for setting capacitive constraints on synthesized logic circuits
US5237514A (en) * 1990-12-21 1993-08-17 International Business Machines Corporation Minimizing path delay in a machine by compensation of timing through selective placement and partitioning
US5251197A (en) * 1992-02-13 1993-10-05 Hoechst Celanses Corp. Polarization dependent writing and erasing process for organic optical media

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010199731A (ja) * 2009-02-23 2010-09-09 Toshiba Corp スイッチングボックス回路、スイッチングブロック回路、およびfpga回路
JP2013045294A (ja) * 2011-08-24 2013-03-04 Toshiba Corp 集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体

Also Published As

Publication number Publication date
US5521837A (en) 1996-05-28
JP3737104B2 (ja) 2006-01-18
WO1993024895A2 (en) 1993-12-09
EP0643855A1 (en) 1995-03-22
WO1993024895A3 (en) 1994-02-17
EP0643855A4 (ja) 1995-04-19

Similar Documents

Publication Publication Date Title
JPH07507409A (ja) プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法
CN107798159B (zh) 用于生成三维集成电路设计的方法
US5659484A (en) Frequency driven layout and method for field programmable gate arrays
US8707239B2 (en) Integrated circuit routing with compaction
US8977995B1 (en) Timing budgeting of nested partitions for hierarchical integrated circuit designs
CN107066681B (zh) 集成电路和制造集成电路的计算机实现方法
US7890909B2 (en) Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow
US7467367B1 (en) Method and system for clock tree synthesis of an integrated circuit
US8607178B2 (en) Integrated circuit chip with repeater flops and methods for automated design of same
US9298872B2 (en) Apportioning synthesis effort for better timing closure
US20050050502A1 (en) Method and apparatus for designing semiconductor integrated circuit
US7831946B2 (en) Clock distribution network wiring structure
JP2002318827A (ja) 集積回路製造システム
US6615401B1 (en) Blocked net buffer insertion
US5825659A (en) Method for local rip-up and reroute of signal paths in an IC design
US6701496B1 (en) Synthesis with automated placement information feedback
Restle et al. Multi-GHz interconnect effects in microprocessors
Mo et al. Fishbone: a block-level placement and routing scheme
Chakravarthi et al. Routing in SoC Physical Design
JP3182244B2 (ja) 半導体集積回路における信号伝播遅延時間の最適化方法
CN117764024A (zh) 一种基于h树的时钟树综合优化方法
CARRO et al. An Environment to Design Digital Circuits Based on the Brazilian Gate-Array
TW202414244A (zh) 產生三維積體電路設計的方法
Ogawa et al. Timing-and constraint-oriented placement for interconnected LSIs in mainframe design
Chandrasetty et al. ASIC Design

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051026

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees