JPH0540804A - 物理的回路の製造方法、論理設計の自動マツピング装置、論理アレイ及び回路のレイアウト方法 - Google Patents

物理的回路の製造方法、論理設計の自動マツピング装置、論理アレイ及び回路のレイアウト方法

Info

Publication number
JPH0540804A
JPH0540804A JP3325142A JP32514291A JPH0540804A JP H0540804 A JPH0540804 A JP H0540804A JP 3325142 A JP3325142 A JP 3325142A JP 32514291 A JP32514291 A JP 32514291A JP H0540804 A JPH0540804 A JP H0540804A
Authority
JP
Japan
Prior art keywords
circuit
design
logic
input
function
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.)
Pending
Application number
JP3325142A
Other languages
English (en)
Inventor
Steven J Perry
スチーブン・ジエイ・ペリー
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JPH0540804A publication Critical patent/JPH0540804A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00—Computer-aided design [CAD]
    • G06F30/30—Circuit design
    • G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347—Physical level, e.g. placement or routing
    • H—ELECTRICITY
    • H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10D—INORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D89/00—Aspects of integrated devices not covered by groups H10D84/00 - H10D88/00
    • H10D89/10—Integrated device layouts
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00—Computer-aided design [CAD]
    • G06F30/30—Circuit design
    • G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00—Computer-aided design [CAD]
    • G06F30/30—Circuit design
    • G06F30/39—Circuit design at the physical level
    • G06F30/392—Floor-planning or layout, e.g. partitioning or placement

Landscapes

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

Abstract

(57)【要約】 (修正有) 【目的】 回路支持基板の表面領域に電子回路コンポー
ネント即ち構成要素をレイアウトするための方法に関す
る。 【構成】 論理設計は、例えば、第1ANDゲートE
1、第10RゲートE2、3状態バッファE3、第20
RゲートE4、第2ANDゲートE5、第30Rゲート
E6、フリップフロップE7の入出力端子を互いに接続
し、他の論理素子、E10などに接続するように複数の
配線W1,W2…を含む多数の原始機能素子を表す記号
表記からなる。又縦列の領域をA,B等で、横行のを
1,2等で示したマッピング用の座標が設けられてい
る。機能素子E1〜E7が、自己区分された領域A1に
はめ込まれてい、他の組織、例えばE100及びE10
1は、C4の領域に不規則に分散されている。論理設計
は領域C4に示されるような機能素子を不規則に集める
ことから始まり、例えば領域A1にまとめられたと考え
られるまで、物理的な意味とは逆の論理的な意味で、再
配置される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、回路支持基板の表面領
域に電子回路コンポーネント即ち構成要素をレイアウト
するための方法に関する。この回路コンポーネントは、
ブール論理関数または他の関数のような既定の即ち画定
された項レベルの関数の組を実行するように接続され
る。基板表面領域の各サブセクションが支持し得る原始
(primitive)関数の数について制限が設けられる。本
発明の方法は、各基板サブセクションに於て使用可能な
リソースを実行する関数をでき得る限り使用することを
目的としている。
【0002】また、本発明はこのような方法による製品
に関する。
【0003】本発明は、より詳細に言えば、現場でプロ
グラム可能なコンフィグラブル論理アレイ(FP−CL
A)の回路を構成する際に使用されるレイアウト方法及
びそれによって製造される製品に関する。
【0004】
【従来の技術】集積回路チップの製造は、該集積回路チ
ップに於て実行されるべき動作を定義する最初の機能記
述で始まる。この初期機能記述は、例えば2入力ゲート
レベルのような基礎的コンポーネントレベルで作成され
る回路図の形態をとる。コンピュータ援用設計システム
(CAD)を用いる場合、前記機能記述は、原始的関数
及びそれらの配線の組を記述するコンピュータ読取り可
能な「ネットリスト」の形態をとることになる。初期機
能記述は、通常2入力ANDまたはOR論理ゲート、イ
ンバータ、フリップフロップ、トリステート・ラインド
ライバ等のような多数の、即ち何百もの機能素子(プリ
ミティブ)の長いリストによって定義される。これらの
素子は、「インスタンス」とも称される。これらの素子
の入力及び出力端子は、リンケージ即ち「ネット」によ
って適当に接続されて、所望のより高いレベルの機能の
組を提供する。ここで言う「ネットリスト」は、各イン
スタンスの入力/出力端子(即ち「ピン」)とこれら端
子を接続するネットとの間の関係を定義するデータベー
スの意味で使用されることが多い。
【0005】説明を簡単にするために、「論理設計」及
び「回路設計」の語は、本明細書に於て「機能記述」と
同じ意味で使用される。回路図は、図面自体または回路
図のコンピュータ表現(コンピュータ読取り可能なネッ
トリスト・ファイル)のいずれかによって定義されるよ
うに論理設計を表すために用いられる。論理設計は、物
理的チップの上に現れる回路コンポーネントの物理的配
置や配線を記述するものではない。それらはレイアウト
の過程に於て画定される。回路設計、回路レイアウト及
び物理的インプリメンテーションの最終製品を本明細書
では「物理的回路」と称する。
【0006】レイアウト及びインプリメンテーション過
程の第1ステップでは、前記論理設計(ネットリスト)
が、それぞれに予め定義された最大数以下のプリミティ
ブ(例えば、2入力ブールロンリゲート)を有する設計
セクションに細分即ち「区分け」(partition)され
る。この第1ステップは、区分けされた各設計セクショ
ンが後で集積回路チップの対応する機能実行サブセクシ
ョンとの関連を有しかつそれによって実施され得るよう
に実行される。
【0007】前記集積回路チップの各機能実行サブセク
ションは、それが適合し得る原始関数の数について予め
決められた上限を有する。インプリメンテーションを可
能にするために、各区分け設計セクションに於ける機能
素子(例えば、ブール論理ゲート)の数は、チップ基板
上の対応する機能実行サブセクションの上限値と等しい
かそれ以下にすべきである。
【0008】区分けの後に、各設計セクションの機能を
実行する回路が直接にまたは等価関係をもって定義され
る。次に各設計セクションの回路(本明細書に於て、
「設計セクション回路」と称する)を形成しかつ前記チ
ップ基板の対応する機能実行サブセクションに固定す
る。最後に、各設計セクション回路の物理的な位置を固
定して、配線用の導体を前記設計セクション回路間に於
てルーティングして集積回路を完成する。上記各ステッ
プは当分野に於て一般に「区分け」、「配置」(placem
ent)、及び「ルーティング」と称されている。
【0009】従来、前記区分け、配置及びルーティング
の設計ステップはレイアイト専門家と称される熟練した
技術者によって人手により実行されてきた。これらの専
門家は一般に大規模の半導体製造会社で働いており、長
年に亘って一連の露光「マスク」を用いて大量生産され
る集積回路チップのレイアウトを最適に決定する方法を
学んできた。専門家達は長年に亘って経験的に技術を開
発し、それによってチップ上に比較的高密度で回路及び
機能を実装することができ、各チップ上の制限された面
積を効率的に利用している。
【0010】最近では、様々な種類のいわゆる「フィー
ルドプログラマブル論理デバイス」(PLD)や「ユー
ザ・コンフィグラブル・論理アレイ」(CLA)が導入
されている。このようなフィールドプログラマブル・デ
バイスによって、現場のユーザは現場で構成可能に回路
を形成するという柔軟性が得られる。しかし、このよう
なPLDは同時に、チップレイアウトの負担を熟練した
企業内のレイアウト専門家から経験のない現場のユーザ
へと移している。現場のユーザは、一般に1個のPLD
チップの制限された資源を効率的に使用するようにPL
DまたはCLAに於てその回路を効率的にレイアウトす
るための方法を学ぶことに消極的であり、またはそのた
めに時間を費やすことができない。
【0011】現場のユーザの負担を軽くするために、多
くのコンピュータ自動化区分け、配置及びルーティング
・システムが提案されている。大部分の自動化区分けシ
ステムの基礎は、ベル研究所に於て開発されたいわゆる
「ミニ−カット」(min-cut)アルゴリズムに基づいて
いる。これについては、ビー・ダブリュ・カーニガン
(B. W. Kernighan)及びエス・リン(S. Lin)による
「An Efficient Heuristic Procedure for Partitionin
g Graphs」、Bell System Technical Journal、Vol. 4
9、1970年2月、第291〜308頁を参照するこ
とができる。また、カーニガン及びリンの米国特許第
3,617,713号、「Method of Minimizing the I
nterconnection Cost of Linked Objects」、1971
年11月2日発行を参照することができる。
【0012】前記ミニカット・アルゴリズムの背後にあ
る考え方は、各設計セクション間を最小数の導線が通る
ように多数の電気素子を個別の設計セクションにまとめ
ることである。このミニカット・アルゴリズムは、それ
ぞれに略同数の原始電気素子を有する2つの部分に回路
設計を分割する第1の区分け線をもって始められる。こ
の第1の区分け線によって切断される接続線の数が数え
られる。次に、前記区分け線の左側にある任意に選択さ
れた素子と前記区分け線の右側にある対応する任意に選
択された素子とが、前記区分け線を挟んでそれらの配線
を維持したまま入れ替えられる。入替え後に前記区分け
線によって切断される線の数が数えられる。この新しい
数が先の数より少ない場合には、この交換した状態が維
持され、そうでない場合には別の入替えが行われる。こ
の入替え及びテスト過程は、ユーザによって定義される
ストップ条件が発生するまで何度も繰り返される。最終
的に、前記ミニカット・アルゴリズムは、最小数の配線
即ち線路を切断する区分け線を画定するためのものであ
る。次に、前記区分け線の両側に画定された2個の設計
セクションを個々に、各前記設計セクションの中に新し
い区分け線を引き、かつ前記各設計セクションに別個に
前記ミニカット・アルゴリズムを再適用することによっ
て配分する。この過程をストップ条件に適合するまで再
帰的に繰り返す。このようなミニカット・アルゴリズム
の再帰的適用によって、レイアウト専門家の人手による
作業と同様に自動的に回路設計を区分けできると考えら
れていた。しかしながら実際には逆の結果が証明され
た。
【0013】前記ミニカット・アルゴリズムが導入され
てから、多くの改良例が報告されている。例えば、マー
ク・ハートゥーグ(Mark Hartoog)の「Analysis of Pl
acement Procedures for VLSI Standard Cell Layou
t」、23rd Design Automation Conference、IEEE、19
86年、第314〜319頁を参照することができる。
更に、米国南カリフォルニア大学メルビン・ブルーワー
(Melvin Breuer)の「AClass of Min-Cut Placement A
lgorithms」、16th Design Automation Conference、1
977年6月、第284〜290頁、ベル研究所ジリ・
ソーカップ(Jiri Soukup)の「Circuit Layout」、Pro
c. IEEE、 Vol. 69、1981年10月第1281〜1
304頁、またはIBM社のエス・カークパトリック
(S. Kirkpatrick)他の「Optimization by Simulated
Annealing」、Science vol. 220、1983年5月13
日、第671〜680頁を参照することができる。(ま
た参考資料として、トロント大学ロバート・ジェイ・フ
ランシス(Robert J. Francis)他の「Chortle: A Tec
hnology Mapping Program for Lookup Table-Based Fie
ld Programmable Gate Arrays」、27th ACM/IEEE Desig
n Automation Conference、1990年6月、第613
〜619頁がある。)
【0014】
【発明が解決しようとする課題】従来使用可能な自動区
分けシステムは、レイアウト専門家の人手による作業と
同程度に機能を発揮することができない。配線の切断数
または区分けアルゴリズムによって形成される設計セク
ションは区分け方法の善し悪しを判断する1つの基準に
過ぎす、回路実装密度及び信号遅延特性等を考慮しなけ
ればならない。
【0015】
【課題を解決するための手段】本発明によれば、或る所
定の回路設計を物理的に実施する際に回路実装密度を自
動的に最大にしかつ/または信号伝搬遅れを最小にする
ことを目的としたコンピュータ自動区分けシステムが提
供される。一般に前記回路設計はコンピュータ読取り可
能ネットリスト・ファイルであり、かつ所望の最終製品
(物理的インプリメンテーション)は集積回路チップ
(IC)である。本発明は、ユーザ・コンフィグラブル
(構成変更可能な)論理アレイ(FP−CLA)に於て
回路を自動的にかつ効率的に画定するために使用するこ
とができる。
【0016】本発明による方法は、回路設計を全体に亘
ってサーチし、その後に続く回路素子の組の2個以上の
入力端子を駆動する1個の出力端子をそれぞれに有する
各能動回路素子を「複製候補」としてタグ付けすること
で始まる。このような「マルチプル・ファンアウト」回
路素子に一旦タグが付加されると、各タグ付き回路素子
の複製が形成されて、元の回路設計の元のマルチプル・
ファンアウト素子の位置に挿入される。前記複製の対応
する入力端子が一体に結合される。前記複製の各出力端
子は一体に結合されないが、次に続く回路素子の組の対
応する1個の入力端子にそれぞれ結合される。
【0017】複製後に、複製の結果として実装密度を増
加させかつ/または信号伝搬時間を短縮することができ
たかどうかを判断するためにテストが行われる。多くの
場合には、当初元のマルチプル・ファンアウト素子を有
することができなかった集積回路チップの機能実行サブ
セクション内に1個または複数の単一ファンアウト複製
論理素子を組み込むことができるので、実装密度が高く
なる。前記単一ファンアウト複製を各機能実行サブセク
ションに組み込むことによって、前記単一ファンアウト
複製とそれらが接続される他の回路素子との間の配線長
さが短くなる傾向がある。これによって信号遅延時間が
短縮される。どのようにして実装密度が増加しかつ/ま
たは信号伝搬時間が短縮されるかについて、以下に詳細
に説明する。
【0018】
【実施例】第1図に関して説明すると、実施しようとす
る回路の機能技術(「論理設計」または「回路設計」)
と前記回路の実際のインプリメンテーション(物理的回
路、最終的なレイアウトを含む)との間で区別を付ける
べきである。図1は、サンプルの論理設計を描いた1枚
の紙10を示している。前記論理設計は、例えば第1A
NDゲート(E1)、第1ORゲート(E2)、3状態バ
ッファ(E3)、第2ORゲート(E4)、第2ANDゲ
ート(E5)、第3ORゲート(E6)、フリップフロッ
プ(E7)及びこれらの論理素子(E1〜E7)の入出力
端子を互いに接続すると共に、同じく図面10の上に描
かれた他の論理素子、例えばE10及びE11の端子に接続
するようにあらゆる方向に延長する長いまたは短い複数
の配線(W1、W2、W3、・・・)を含む多数の原始機能素
子を表す記号表記からなる。図示された回路素子(E1
〜E7)の大部分は、それぞれが唯1個の信号出力端子
(1ビット出力)と3個または4個以下の信号入力端子
とを有することから、「ブール論理プリミティブ」と定
義することができる。
【0019】図面10には、理解を容易にするために、
縦列の領域を欧文字A、B、C等によって示しかつ直交
する横行の領域を数字1、2、3等によって示すように
したマッピング用の座標が設けられている。機能素子E
1〜E7が、設計図面10の自己区分けされた左上部の領
域A1の中にはめ込まれていることが分かる。他の組
織、例えばE100及びE101は、図示されるように設計図
面10のC4のような右下の領域に亘って不規則に分散
されていることが分かる。設計図面10の自己区分け領
域A1〜A4、B1、B2、C1、C2が不規則である
ことが理解される。大抵の設計図面は、領域C4によっ
て明確に表されるような不規則に分散されかつ接続され
るように認められる所謂「ネズミの巣」または「スパゲ
ッティのボール」のように配置された論理記号を有す
る。領域A1〜C2には、図面10に描かれた各素子が
どのように再構成され、かつ後述する図2の集積回路チ
ップの機能実行サブセクションと関連させることができ
るかを最初に容易に理解できるようにすることのみを目
的として概念的に理解される程度に図示されている。
【0020】通例、論理設計は例えば領域C4に示され
るような機能素子を不規則に集めることから始まる。こ
れらの機能素子は、その機能が物理的な最終製品の機能
実行サブセクションによって実行され得るような合理的
な大きさのグループ、例えば領域A1、A2にまとめら
れたと考えられるまで、レイアウト過程に於て、物理的
な意味とは逆の論理的な意味で全ての配線をそのままに
した状態で、再配置される。
【0021】前記レイアウト過程では、2つの問題を同
時に考慮する必要がある。第1の問題は、論理設計の条
件に適合する電気回路をどのようにして直接的にまたは
等価関係をもって定義するかということである。第2の
問題は、この回路をどのようにして機能実行最終製品の
物理的制限の範囲内に維持するかということである。特
定種類の機能支持基板が最初に記述され、次にサンプル
区分けの問題が提示される。
【0022】図2には、その表面に一応に画定されたユ
ーザ・プログラマブル論理実行サブ領域LA11、LA1
2、LA13、・・・LA1N、LA21、・・・LA2N、・・・LAMN
の規則正しいアレイ即ち配列を有するモノリシック半導
体基板(チップ)20が平面図示されている。このチッ
プ20をコンフィグラブル論理アレイ(CLA)と称す
る。CLAチップ20の前記論理実行サブ領域LA11〜
LAMNは、一般に「論理領域」LAxy(ここで、x及びy
は識別するための整数即ち座標である)で表される。
【0023】最初、論理領域LAxyの内部回路は画定さ
れていない(構成されていない)が、レイアウト及びコ
ンフィグレーションが完了した後に、このコンフィグラ
ブル論理アレイ(CLA)チップ20は、図1の設計図
面10の回路図の記号のようなユーザが提供する機能記
述によって記述される論理機能を実行するようにその上
に画定される物理的回路を有することになる。
【0024】CLAチップ20は、前記論理領域を接続
するためにその表面に配置されたマトリックス状の物理
的に短い水平線21と物理的に短い垂直線22とを有す
る。図2には、図面が乱雑になるのを避けるために、こ
れらの線の1部分のみが図示されている。短い垂直線及
び水平線21、22の端部(その水平及び垂直端部の関
係がLAPNとLAMNとの間の領域により詳細に図示され
ている)は、前記論理領域の入力端子及び出力端子を次
から次へと連続的に接続するために、互いに隣接する論
理領域に連結することができる。図示されないプログラ
マブル配線接続点を用いて、形状及び長さが異なるより
長い線を形成するために、水平線及び垂直線21、22
の東西南北の各端部を様々に連結する(例えば垂直線の
北側端部を水平線の東側端部に接続する)ことができ
る。
【0025】大きく離隔された論理領域を次から次へと
より直接的な手法で接続する、例えばLA11をLAP2に
接続するために概ねチップ20全体に亘って延長する物
理的に長い水平線23及び物理的に長い垂直線24(グ
ローバル線)が設けられている。チップ20は更に、該
チップの周辺に設けられた入出力ピン25に論理実行領
域LA11〜LAMNの各入力及び出力端子を結合するため
の入出力ブロック(IOB、図示せず)を有する。
【0026】図3には、論理領域LA11、LA32を有す
る1個の基板セクション200が拡大図示されている。
各論理領域LAxyは、唯4個の入力端子Ixy.1、Ixy.
2、Ixy.3、Ixy.4と単一の出力端子Oxyとを有する関
数発生回路fxyを有する。3状態制御端子TXxyを用い
て任意に出力端子Oxyを高インピーダンス状態に置くこ
とができる。(ここで、添字xyは関数発生器f11〜f
32を識別する整数即ち座標である)
【0027】説明を簡単にするために、図3の各論理支
持領域LAxyが、唯1個の出力ビットと4個以下の入力
ビットとを有するあらゆる組合せ論理関数を実行できる
ように構成(プログラム)できるものと考える。このよ
うに能力を制限したコンフィグラブル関数発生器fxyの
一例が、唯4個のアドレスの入力端子(Ixy.1〜Ixy.
4)、16個のメモリセル(24ビット)及び唯1個のデ
ータ出力線(Oxy)を有するルックアップ・テーブル・
メモリユニットである。
【0028】前記論理領域の外側に延長する領域間接続
線W11、W12等を用いて、各関数発生器fxyの4個の前
記入力端子、前記3状態制御端子または単一の前記出力
端子のいずれかまたはそれらの幾つかを隣接するスイッ
チマトリックス領域SWAxyに結合することができる。
各スイッチマトリックス領域SWAxyは、第1の関数発
生器fxyの前記入出力端子と他の前記関数発生器fx'y'
の前記信号入力端子または出力端子に向かう他の領域間
接続線との間で信号を伝送するようにプログラムするこ
とができる。
【0029】前記領域間接続線(W11、W12等)と前記
スイッチマトリックス領域SWA11、SWA21、等)に
ついて信号伝送経路を形成することの問題は、一点を除
いて詳細な説明を省略する。それは、第1の論理支持領
域、例えばLA11から第2の論理支持領域、例えばLA
12及び/または接続された前記スイッチマトリックス
(SWA11、SWA21等)へと延出する比較的長い前記
領域間接続線(W11、W12等)のそれぞれに帰する有限
信号伝搬時間が存在することである。
【0030】一般に、信号伝搬時間が過度に長くならな
いように、信号を物理的(最終製品の)回路に於て伝送
する場合にこのような領域間(領域外)の線の長さ及び
/または数を最小にすることが望ましい。有限であるが
比較的短い信号伝搬時間は、完全に各論理支持領域(例
えば、LA12内)に設けられる比較的短い領域内(前記
論理領域内)接続(図3には図示せず)に帰因する。一
般に、できる限り長い領域間接続線(W11、W12等)よ
りもむしろ図示されない短い前記領域内ワイヤ接続線を
用いることによって信号を伝送することが望ましい。
【0031】更に、各論理支持領域LAxyの関数発生器
fxyがテーブル・ルックアップ・メモリを有する場合に
は、その関数発生器fxy内に個々のメモリセルをアドレ
スするために付加される有限時間遅れが存在する。第2
領域(LA12)の出力端子(O12)に応答を発生させる
べく第1論理領域(LA11)の前記出力端子(例えば、
O11)から第2論理領域(LA12)の前記入力端子(I
12.2)へと該第2論理(LA12)の関数発生器(f12)
を介して送られる際に信号に付加される遅れを、本明細
書では「領域間」遅れと称する。一連の論理領域(LA
11、LA12、LA13等)についてブール・ツリー論理を
実行する場合には、前記ブール・ツリーを伝搬する論理
信号について領域間遅れの合計が最小になるように論理
領域の数及び/またはそれらの間の距離を最小にするこ
とが一般的に好ましい。
【0032】物理的なインプリメンテーション(図2及
び図3のチップ29)に関連する幾つかの制約が理解さ
れた所で、サンプル(第1レベル)の区分に関する問題
を提示する。
【0033】図4には、論理関数が回路図上でどのよう
に再構成されかつ最終的に区分け及び配置によってユー
ザ・コンフィグラブルチップ(図2)の固定された前記
支持領域内にマッピングされるかと言うことを説明する
ために、回路設計のサンプルセクションミ300が示さ
れている。
【0034】図示されるように、設計セクション300
は、複数の電気素子E1、E2、E3、・・・E8を有する。
ここで、各素子EZは、1個の出力ノードNz0と1個ま
たは2個以上の入力ノードNz1、Nz2、Nz3等(ここで
Zは整数1、2、3、・・・を表わす)を有する。個々の
回路素子Ezが有する特異な入力ノードNz1、Nz2、Nz
3等の数は、前記素子の「ファンイン」として定義され
る。その素子Ezの出力ノードNz0によって駆動される
後の入力ノードの数が、該素子Ezの「ファンアウト」
として定義される。即ち、図示されるANDゲートE1
はファンインが2でファンアウトが1であり、ORゲー
トE4はファンインが2でファンアウトが2であり、か
つANDゲートE8はファンインが3であるが、その後
に続く論理素子が図示されていないのでファンアウトは
不明である。
【0035】図4の破線のブロックPA1〜PA8が各素
子E1〜E8について未だ描かれていないと仮定する。こ
こに於ける問題は、各論理支持領域LAxyが4本の入力
線(Ixy.1〜Ixy.4)または1本以上の3状態制御
線(TXxy)を受け入れることができず、かつそれから
出る出力線(Oxy)が1本だけであるという制限下で、
この図2のCLAチップ20に於ける設計セクション3
00をどのように実行すべきかということである。(図
3参照)論理領域LAxyに入る入力線の数に関する上限
及び同じ論理領域前記LAxyから出る出力線の数を論理
領域LAxyの境界ルールBRxyと言う。当面は、各論理
領域に関する境界ルールBRxyが同じである、即ち入力
線(3状態制御線を含む)が4本以下で出力線が1本の
みであると仮定する。
【0036】簡単な方法は、各原始素子Ez(即ち、2
入力/1出力ANDゲートまたはORゲート)を図4に
示されるような対応する区分けブロックPAzで囲むこ
とである。これによって自動的に、各ブロックPAzを
通る入力線及び出力線の数が境界ルールBRxyを満足す
ることが保証される。(ここで、x、y、zは整数であ
る。)各区分けブロックPAz内に含まれる領域を、本
明細書に於ては区分け領域と称してPAzを付すること
にする。
【0037】この図4の極端に単純化された区分けが一
旦境界ルールBRxyを満足するように行なわれると、区
分け領域PAzの個別の等価回路が図2のチップ20の
単一論理支持領域LAxyの対応する関数発生器fxy内に
構成され、領域間接続線が形成されて、前記物理的回路
が実現する。
【0038】しかし、この図4の単純な方法は非能率的
である。これは、最終製品20に於て使用される論理支
持領域LA11、LA12、LA13等の数が最大になる。チ
ップの実装密度は最小になる不都合があり、このために
各機能素子E1、E2、E3等間に於て使用される領域間
接続線(W11、W12等)の長さ及び/または数が最大に
なり、信号伝搬時間が最大になるという不都合が生じ
る。チップ20に於て使用可能な領域間接続線の数が少
なくかつそのために非常に制限されている場合には、こ
のような素子E1〜E8を互いに接続するための線を多く
用いることによって、接続線のルーティング過程に於て
他の接続を形成することができなくなる場合がある。ま
た、各関数発生器がメモリセル・アドレス手段を有する
ような場合には、信号がこのような一連のメモリアドレ
ス手段を通って伝搬しなければならないので、信号伝搬
遅れが更に大きくなる(領域間遅れの合計が各直列回路
に沿って最大になる)。
【0039】図5に於て、同じ設計セクショク300を
区分けするための第2の方法が符号315を付して示さ
れている。第1ORゲートE2の出力ノードN20が区分
け領域PA12に関連する第1関数発生器f11の単一の出
力端子となり得るのに対して、この関数発生器f11の使
用可能な4個の入力端子I11.1〜I11.3の中の3個が入
力ノードN11、N12、N22によって画定されていること
が分かる。関数発生器f11の4番目の入力端子I11.4は
接地されており、従って使用されていない。第2のOR
ゲートE4は、その出力端子N40が区分け領域PA12に
よって既に支持されている出力ノードN20と別個である
ことから、区分け領域P12には関与することができな
い。従って第2ORゲートE4の周囲には、別個の区分
けブロックPA4を描かなければならない。
【0040】第2ORゲートE4が区分け領域PA12内
に含まれていた場合には、その区分け領域PA12はそれ
から延長する2個の別個の出力端子を有することにな
り、境界ルールBRxy={入力≦4、出力=1}に違反
することになる。区分けブロックPA56が、3本のブロ
ック入力線と1本のブロック出力線とを画定するように
素子E5及びE6を囲むことによって、前記境界ルールを
満足している。第2ORゲートE4のノードN40がファ
ンアウトして信号を次に続く複数の入力ノード(次に続
くORゲートE2及びE6のノードN22及びN61)に供給
することが注目される。
【0041】再び図3に関して、図5の区分け領域PA
12の回路が関数発生器f11によって実行され、区分け領
域PA4の回路が関数発生器f12によって実行され、か
つ区分け領域PA56の回路が関数発生器f22によって実
行されると仮定する。ここでは各素子E3、E8及びE7
の機能を実行するための回路については考慮しない。
【0042】図5の方法にも依然として或る程度の非能
率性が存在する。4入力関数発生器f12の区分け領域P
A4に入力ORゲートを実行することによって、該関数
発生器f12の論理実行リソースの半分を無駄にしてい
る。入力ノードN41(I12.1であると仮定)からゲート
E4(関数発生器f12)を介して領域間接続線W22を通
って入力ノードN22(これを関数発生器f11のI11.3と
仮定)へ送られる信号は、関数発生器f12の入力遅れだ
けでなく、出力端子O12からスイッチマトリックスSW
A11を介して入力端子I11.3に伝送されることに関連す
る領域間遅れ及び関数発生器f11の入力遅れを被むるこ
とになる。ノードN42から領域間接続線W61を通ってノ
ードN60に伝搬する信号は、同様の遅れを受けることに
なる。
【0043】図6には、本発明による先区分け(pre-pa
rtitioning)ステップが概念的に図示されている。素子
E4は、そのファンアウト数が1より大きくかつファン
イン数が4より小さいことから、「複製候補」として識
別される。このように識別された素子E4は、2個の複
製素子E14及びE24によって置き換えられる。前記複製
の対応する入力ノードN141及びN241が、領域外(領域
間)接続線W41によって結合され、かつ更に対応するノ
ードN142及びN242が領域外(領域間)接続線W42によ
って結合されている。前記複製の対応する出力ノードN
140及びN240は互いに結合されていないが、各出力ノー
ドは別個に領域内接続線W140またはW240によって、元
のOR素子E4の出力濃N40によって先に駆動されてい
た次の入力ノードN22及びN61の一方に接続されてい
る。このような複製過程の結果、前記境界ルールを違反
することなく素子E1、E2及びE14を囲む第1の区分け
ブロックPA124を引くことが可能になる。更に、前記
境界ルールを違反することなく素子E24、E5及びE6を
囲む第2の区分けブロックPA456を引くことが可能に
なる。
【0044】次に、図6の区分けされた論理設計を図5
の区分けされた論理設計に対して比較して、図6の方法
が有利かどうかを確認する。図5の論理設計は、各素子
E1、E2、E4、E5及びE6の機能を実行するために3
個の論理支持領域LA11、LA12、LA22を必要とした
が、図6の論理設計400は同じ機能を実行するために
唯2個の論理支持領域しか必要としない。注目すべきこ
とは、各素子E1、E2、E4、E5及びE6の機能を実行
するために必要な論理支持領域LAxyの数が、論理素子
の数を増大させる(素子E4を複製する)ことによって
3分の1に減ったことである。
【0045】ここでは、ノードN140とN22との接続
が、図5の領域外(領域間)接続W22によってではなく
領域内の導体W140によって形成される。ノードN240と
N61との接続が同様にして図5の接続線W61の代わりに
接続線W240によって行なわれる。図5のように2個ま
たは3個だけでなく、各関数発生器f11及びf12の全て
の4入力端子I11.1〜I11.4及びI12.1〜I12.4が使用
される。ノードN141とN20との間またはノードN242と
N60との間には領域間の遅れが存在しない。
【0046】前記素子複製ステップは、ファンインが2
の素子に限定されるものではない。前記境界ルールのフ
ァンインの限界(本実施例では、Ixy.1〜Ixy.4に
対応して4に設定されている)と等しいかそれ以下のフ
ァンインの値を有する素子を複製することができ、かつ
テストしてそのような複製によって遅延及び/または区
分けブロックPAzの数が減少したかどうか及びそれに
よって最終的に使用される論理支持領域LAxyの数が減
少したかどうかを確認することができる。
【0047】素子の複製が逆効果になり得る位置が存在
する。複製候補が比較的高いファンイン値(即ち、4入
力端子)または比較的高いファンアウト値(即ち、後に
続く億以上の入力ノードを駆動する)を有する場合に
は、素子の複製によって単に必要な関数発生器の数が多
くなり、または実質的により多くなかつ従って好ましく
ない数の新たな領域間接続線を前記論理設計に導入する
場合がある。即ち、前記素子複製過程は或る制限内で行
なわれるべきである。
【0048】図7には、最適の複製範囲を識別しかつ該
最適識別範囲に従って区分けされた論理設計を作成する
ために本発明によるコンピュータ自動レイアウトシステ
ム内で使用される自動化プロセス500のフロー図が示
されている。この自動化プセスは、コンピュータ援用設
計(CAD)に使用されるあらゆるコンピュータハード
ウエアを用いて実行することができる。米国カリフォル
ニア州マウンテンビュウに所在するサン・マイクロシス
テムズ(Sun Microsystems)から市販されているSun-4
・ワークステーションがその一例である。
【0049】自動化プロセス500はステップ501で
始まる。初期化ステップ510では、初期複製範囲が、
foL及びfoHをそれぞれファンアウト値の下限値及び
上限値としかつfiHをファンイン数の最大値とした場
合に、foL≦ファンアウト≦foH及びファンイン≦f
iHの制限を有するように設定される。図3の境界ルー
ル(BRxy=入力4以下/出力1)の場合、初期範囲と
してfoL=2、foH=3及びfiH=2として始める
ことができる。
【0050】初期化ステップ510は更に、先の最適選
択カウントを無限(または例えばFFFFhexのような
等価の大きな数)に設定しかつプロセス500に既定の
ループ限度を設定するようなハウスキーピング・サブス
テップを含んでいる。
【0051】次のステップ515では、前記論理設計を
サーチして前記複製範囲内にあるファンイン値及びファ
ンアウト値を有する素子を求め、これらの素子に複製候
補のタグを付加する。次にステップ520に於て、図6
のプロセスに従って前記複製候補を複製する。ステップ
525に於て、複製された前記素子を有する前記論理設
計を予備選択(pre-selected)区分けアルゴリズムを用
いて区分けする。この区分けアルゴリズムは、前記論理
領域のリソースを無駄にしないようにしつつ、各区分け
ブロックPAzが既定の境界ルール(即ち、各機能実行
領域LAxyについて入力端子がJ以下で出力端子がK以
下である)を満足するように、1個または複数の素子E
1、E2等からなるグループの周囲に区分けブロックPA
zを画定する。
【0052】ステップ530に於て区分けステップ52
5によって生じた区分けセクションの数を数える(セク
ション・カウント)。或る特定の実施例では、ステップ
530のセクション・カウントが、区分けステップ52
5によって消費されるべき関数発生器fxy(図3)の数
を表わす。以下により詳細に説明する本発明の別の実施
例では、ステップ530のセクション・カウントが、各
論理領域(例えば、図11のCLB600)が2個以上
の関数発生器(例えば、図12のfF、fG及びfH)を
有するような場合にステップ525の結果として消費さ
れるべき論理領域LAxyの数の推定値を表わす。後者の
場合には、前記推定値はステップ525によって消費さ
れた関数発生器の数から得られる。
【0053】現在のセクション・カウントが前最適セク
ション・カウントより小さいかどうかを決定するために
比較がなされる。そうである場合には、前記プロセスは
ステップ550に進み現在のカウントが新しい前最適セ
クション・カウントとなり、かつ区分けステップ525
で最後に作成された区分けに暫定最適区分けが得られた
というタグが付される。
【0054】次に、プロセス500はステップ540ま
たはステップ550のいずれかからステップ560に進
み、複製範囲を変更して何か別の複製範囲によって前記
前最適セクション・カウントより良好なカウントが得れ
るかどうかを確認する。例えば、複製範囲の制限fo
H、fiHの一方または両方をステップ560に於て1だ
け大きくすることができる。
【0055】プロセス500は、ステップ560からル
ープバックして(570)ステップ515に戻る。ステ
ップ515からステップ560までの各ステップが複数
回繰り返される。プロセス500の外側ループ570
は、最小数の区分けセクションを発生させる最適複製範
囲、従ってチップのレイアウト・コンフィグレーション
過程の最終段階に於て、最小数の機能実行領域(例え
は、LA11、LA12、LA13等)を用いた前記論理設計
の物理的インプリメンテーションに落ち着くように設計
される。ユーザによって定義されるループ限界がステッ
プ560でテストされて、越えている場合にはプロセス
500を終了する。この暫定最適区分け方法は、チップ
のレイアウト過程に使用される方法である。
【0056】図8には、信号のクリティカル・パスに於
ける信号伝搬時間を最小にする(またはそのような時間
を許容限度内に維持する)ためのプロセス580がフロ
ー図を用いて示されている。前記複製範囲はステップ5
96に於て調整されて、ユーザが画定するクリティカル
・パスに於ける信号伝搬時間を最小にする、または少な
くともユーザが画定する最大レベル以下に信号伝搬時間
を維持する論理設計区分けを作成する。図8の各ステッ
プ581、582、584、586、588、594、
596及び598は、図7の同様の位置に配置された各
ステップに対応する。
【0057】ステップ590はステップ588によって
マッピングされる関数発生器間に所定の領域間遅れを仮
定し、かつこれらの遅延をピラミッド状回路のユーザが
画定したブランチ即ち分枝に沿って加算していく。その
合計値が、予め決められたタイミングの制限を満足する
区分け方法を見出すために、先の最適合計値の組及び/
またはユーザが決めた最大値と比較される。クリティカ
ル・パスに於ける信号伝搬時間を最小にしまたは予め決
められた最大レベル以下に維持すると言う要求に対して
最小数の区分けセクションに対する要望をバランスさせ
る論理設計区分けを行なうために、プロセス500とプ
ロセス580とを組み合せることが考えられる。
【0058】図7に示されるプロセスの特定の実施例に
ついて特定の物理的なインプリメンテーション(後述す
る図11〜図13のCLAチップ)に適応する場合を詳
細に説明する。
【0059】幾つかの用語を予め定義することが必要で
ある。図9に関して、「インスタンス」の語は以下に於
てブール論理ツリーに於ける各ブール・プリミティブ
(例えば、ゲートI1、I2、I3)を表わすために用い
られる。「ピン」の語は、各インスタンスの入力及び出
力端子(例えば、インスタンスI1に属するピンP10、
P11、P12)を表わす。「ネット」の語は、2個または
それ以上のピンを接続する導電リンク(例えば、ピンP
10、P22、P31を接続するネットNt1)を意味する。
【0060】図10のA図に関して、「ネット・レコー
ド」は、コンピュータ読取り可能なメモリデバイス(図
示せず)に於て画定されるデジタルデータ構造(Nt−
Record)である。前記ネット・レコードは、対応
するネット(例えば、図9のNt1)に属する2個また
はそれ以上のピン(例えば、P10、P22、P31)を識別
する2つまたはそれ以上のピン識別データ部分からな
る。図10のA図に示す前記ネット・レコードは多くの
場合に、1個または2個以上の名前(例えば、「Nt
1」)によってネットを識別するために使用される1個
または2個以上のネット名データ部分を有する。前記ネ
ット・レコードは、任意により前記ネットが長いまたは
短い金属線によって実行される必要があるかどうか、そ
れが接地線であるかどうか等の前記ネットの特定の「属
性」を画定するデータ部分を更に有する場合がある。こ
のようなネット・レコードの集合を「ネット・テーブ
ル」(図示せず)と定義する。
【0061】図10のB図に関して、「インスタンス・
レコード」は、対応するインスタンスに属する2個また
はそれ以上のピン(例えば、P10、P11、P12)を識別
する2個またはそれ以上のピン識別データ部分を構成す
るようにコンピュータ読取り可能メモリデバイス内に定
義されるデータ構造(I−Record)である。この
インスタンス・レコードは多くの場合に、対応するイン
スタンス(例えば、「I1または「AND1」)及び別の
属性データを識別するために使用される1つまたは2つ
以上のインスタンス名データ部分を含んでいる。このイ
ンスタンス・レコードの集合が「インスタンス・テーブ
ル」(図示せず)と定義される。
【0062】図10のC図に関して、「ピン・レコー
ド」は、特異なピン(例えば、P31)を識別するため
に、及びそのピンを対応するインスタンス(例えば、I
3)及び対応するネット(例えば、Nt1)に関連させる
ためにコンピュータ読取り可能なメモリデバイス内に定
義されるデータ構造(P−Record)である。通
常、前記ピン・レコードは、例えばピンの機能を入力、
出力、双方向性のいずれでも良いものとして識別する追
加の属性データを含んでいる。ピン・レコードの集合が
「ピン・テーブル」と定義される。
【0063】「ネットリスト」は、コンピュータ読取り
可能メモリデバイス(例えば、磁気ディスク、テープ、
RAM、ROM等)に於て次の情報を含むように定義さ
れるデータベース構造体である。即ち、(A)「ネット
・テーブル」として知られるネット・レコードの表、及
び(B)「インスタンス・テーブル」として知られるイ
ンスタンス・レコードの表である。
【0064】ネット・テーブル(A)に於ける各ネット
・レコードは、次のような情報を定義する。即ち、 (A.1)前記ネットに割当てられた0個または1個以
上の名前(例えば、Nt1)、(A.2)前記ネット・
テーブルに於ける前記ネット・レコードの位置を表わす
インデックス番号(例えば、0、1、2、3・・・)、
(A.3)「ネットピン・テーブル」として知られる、
前記ネットに接続されたピンのリスト、及び(A.4)
前記ネットの属性を記述するブール・フラッグの組であ
る。これらに属性には、前記ネットが物理的回路に於て
物理的接続線として明確に表現されなければならない
か、またはそれが駆動するインスタンスが、前記ネット
が明確に表現されないように機能実行等価物(例えば、
関数発生器)内に吸収されるかどうかということ、及び
前記ネットが前記GNDまたはVCCネットを表わすか
どうか等が含まれる。
【0065】前記インスタンス・テーブル(B)に於け
る各インスタンス・レコードによって以下の情報が提示
される。 (B.1)前記ネットリストに於て或るインスタンスを
他の全てのインスタンスから明確に区別する少なくとも
1つの名前、(B.2)前記インスタンス・テーブルに
於けるインスタンス・レコードの位置を表わす数、
(B.3)例えばAND、ORまたはフリップフロップ
の動作を実行するかどうか等のような前記インスタンス
の機能を記述するインスタンスの種類の番号、(B.
4)「インスタンス−ピン・テーブル」として知られ
る、前記インスタンスに接続されたピンのリスト、
(B.5)前記インスタンスの属性を記述するルール・
フラッグの組である。前記属性フラッグ(B.5)に
は、本発明に従って前記インスタンスが複製可能である
かどうかを決定するために使用される複製候補認定フラ
ッグが含まれる。このフラッグがTRUE(ブール1)
に設定された場合には、前記インスタンスを複製するこ
とができる。前記フラッグがFALSE(ブール0)に
設定される場合には、コンピュータシステムは前記イン
スタンスを複製しないようにされる。
【0066】前記ネットピン及びインスタンスピン・テ
ーブルによって参照される各ピンは、以下の情報によっ
て表わされ、かつ(A)ネット・テーブル及び(B)イ
ンスタンス・テーブルを記憶する前記メモリデバイスに
記憶される。 (C.1)前記インスタンスに属する或るピンを他の全
てのピンから明確に区別する少なくとも1つの名前、
(C.2)ピンがどのインスタンスに属するかを示すイ
ンスタンスの番号、(C.3)ピンがどのネットに属す
るかを示すネットの番号、(C.4)ピンが入力ピン、
出力ピン、または双方向ピンであるかどうかを示す方向
値である。
【0067】「ブール・ゲート・ツリー」は、コンピュ
ータ読取り可能メモリデバイスに於て画定されかつ1個
または2個以上の信号入力端子及び/または1個または
2個以上の接続されたインスタンスによって構成される
デジタル論理構造である。この論理構造の各要素を本明
細書では「ツリー・ノード」と称する。「ファンアウト
−フリー」ブール・ゲート・ツリーは、1個の「根」の
ノードと該根のノードから出ている0個または1個以上
の「子孫」のノードとを有する論理構造として定義され
る。前記ツリーの各ノードは、コンピュータ読取り可能
メモリデバイスに記憶されているデータの次のデータの
集合によって記述される。
【0068】(D.1)存在するならば、現在のツリー
・ノードの親のノードを示す識別子。前記ツリーの前記
値のノードは親のノードを持たない。 (D.2)ノードの子として知られる次に続くノードの
表。ツリー・ノードが子を持たない場合には、「リーフ
・ノード」として知られる。 (D.3)現在のノードによって表されるネットリスト
のインスタンスの名前、または前記現在のノードが前記
ツリーに外部入力信号を供給する「実入力」端子を表し
ていることを示す特別な識別子。 (D.4)前記現在のツリー・ノードがインスタンスの
場合には、現在のインスタンスの出力ネット(現在のツ
リー・ノード)に対応するネット・レコードのネットリ
ストのネットの番号。 (D.5)このツリー・ノード及びその子を表すのに必
要な関数発生器の最小数。 (D.6)関数発生器(D.5)の最小数を用いて前記
ノード及びその子を表わす場合にこのツリー・ノードが
必要とする「実」入力の数。 (D.7)現在のツリー・ノードの属性を記述するブー
ル・フラッグの組。これらの属性には、前記ツリー・ノ
ードが達成された論理ゲートを表しているかどうか、前
記ノードが後述する特別のH関数発生器の1部分である
かどうか、前記ノードが親のノードから分岐されたもの
であるかどうか、及び前記ノードが該ノードの親を包含
する(この包含することが「暗示」されている)関数発
生器に於て表されるべきかどうかが含まれる。その包含
することが暗示されるべきインスタンスの一例が図5の
素子E1である。E1は、素子E2の子供である。親の素
子E2の機能が関数発生器によって実行される場合に
は、子E1の機能は、区分けブロックP12によって暗示
されるようにその関数発生器に含まれるべきである。
【0069】定義D.7の特殊な「H」関数発生器につ
いて以下に詳細に説明する。図3の前記論理アレイは、
各機能実行領域LAxy内に唯1個の関数発生器fxyを有
するように描かれている。これは、素子の複製がどのよ
うにして必要な完成発生器を少なくし、かつ従って機能
実行領域(LA11、LA12、LA13等)の数を少なくし
かつ/または信号伝搬時間を小さくし得るかを容易に理
解できるようにするためである。
【0070】前記論理領域はその境界内に2個以上の関
数発生器を有することができる。図11の平面図には、
コンフィグラブル論理ブロック(CLB)600、スイ
ッチングマトリックス(SWM)601、長い線60
2、短い線603及びキャリー伝搬線604からなるア
レイを有するより複雑な機能実行CLAチップ700の
一般的な構造が示されている。CLB600は、1個ま
たは2個以上の素子601〜604によって互いに接続
されている。
【0071】図12に関して、各コンフィグラブル論理
ブロック(CLD)600は、fF、fG、fHをそれぞ
れ付した第1乃至第3関数発生器を有する。第1関数発
生器fFは、それぞれにCLB600から延出する4個
の入力端子F1〜F4とCLB600内に設けられた1個
の出力端子F0とを有する。関数発生器fFが1個乃至4
個の入力項(ビット)と1個の出力項(ビット)とを有
するあらゆるブール論理関数を実行できるように、関数
発生器fF内には16個のユーザコンフィグラブル・メ
モリセルを有するメモリユニットM16を備える。デー
タは、図11に示される他のコンポーネントの他のユー
ザコンフィグラブル・メモリユニットM16、M8、M
2、Mを更に有する図示されない直列のチェーン状シフ
トレジスタを介してメモリユニットM16内にロードさ
れる。
【0072】第2の関数発生器fGは同様に、CLB6
00から延出する4個の入力端子G1〜G4と単一の出
力端子G0とを有する。また、関数発生器fGは、最大
4個の入力信号と1個の出力信号とを有するあらゆるブ
ール関数を実行するための16ビットユーザ・コンフィ
グラブル・メモリユニットM16を有する。
【0073】第3の関数発生器fHは唯3個の入力端子
H1〜H3を有し、それらの中の1個H1のみがCLB
600から延出している。他の2個の入力端子H3、H
2は、それぞれ第1及び第2関数発生器fF及びfGの出
力端子F0及びG0に接続している。第3の関数発生器
fHのユーザ・コンフィグラブル・メモリユニットM8
には8個のメモリセルのみが設けれている。
【0074】第3関数発生器fHの出力端子H0は、ユ
ーザ・プログラマブル・マルチプレクサ610の第1入
力端子に接続している。マルチプレクサ610の第2入
力端子は、第2関数発生器fGの出力端子G0に接続し
ている。マルチプレクサ610に属する1ビット・メモ
リセルMを適当に設定することによって、ユーザはいず
れかの端子G0またはH0の信号を緩衝CLB出力信号
Gのソースとして選択することができる。バッファリン
グ増幅器615がマルチプレクサ610の出力端子とC
LB出力ノードとの間に介装されている。
【0075】また、H0出力端子が、その他の入力端子
を関数発生器の出力端子F0に接続した同様にユーザ・
コンフィグラブルな第2マルチプレクサ620の一方の
入力端子に接続している。この第2のマルチプレクサ6
20は、増幅器617を通過する第2緩衝CLB出力信
号Fを供給する。
【0076】CLB600は、更に一対のフリップフロ
ップFF1及びFF2を有する。これらの各フリップフロ
ップFF1、FF2は、データ入力端子Q、クロック入力
端子>、クロックイネーブル端子EC、データプリセッ
ト端子SD及びデータリセット端子RDを有する。フリ
ップフロップFF1、FF2のQ出力信号は、それぞれ増
幅器616、614によって一時的に記憶されてCLB
レジスタ出力信号Q1及びQ2を生成する。
【0077】フリップフロップFF1及びFF2のクロッ
ク入力端子>にそれぞれ外部クロック信号Kの反転信号
K*または非反転信号Kのいずれかを供給するために、
ユーザ・プログラマブル・マルチプレクサ631、63
2がCLB600内に設けられている。更にCLB60
0内には、各フリップフロップFF1及びFF2のクロッ
クイネーブル端子ECに外部ブロックイネーブル信号C
4または一定の論理1信号を供給するためにユーザ・コ
ンフィグラブルマルチプレクサ641、642が設けら
れている。セット/リセット制御ユニット651、65
2は、外部S/R信号を(制御信号C3を付して表示)
に応答して各フリップフロップFF1及びFF2にセット
コマンドまたはリセットコマンドの一方を印加しまたは
双方共印加しないようにユーザが構成可能になってい
る。ユーザ・コンフィグラブル・マルチプレクサ66
1、662はフリップフロップFF1及びFF2の各デー
タ入力端子Dに関数F0、G0及びH0上の関数出力信
号のユーザが選択したいずれかの信号、または外部から
供給された入力信号DIN(制御信号Cとして表示)を
供給するために4個の入力端子を有する。
【0078】更に、CLB600内には、図11に示さ
れるように水平に延長するキャリー伝搬線604に沿っ
てCLB600のすぐ上方及び下方に配置された他の同
様のCLB図12)に向けてまたはそれらからすばやく
キャリー信号を伝搬するためにキャリー伝搬回路670
が設けられている。
【0079】図13に関して、各CLBはその関数入力
端子F1〜F4、G1〜G4及びH1が、レジスタ出力
Q1及びQ2と同様に図示されるように関数出力端子F
及びGと共に配設されている。(入力端子C1は、入力
端子C2、C3、C4をそれぞれ図11のDIN、S/
R、及びEC信号に対応させているが、関数発生器入力
端子H1と同じ意味である。)
【0080】CLB600が上述したような構造を有す
ることから、関数発生器fHのH0出力端子をCLB出
力端子(F、G、Q1またはQ2)のいずれかに接続
し、かつそのH2入力端子またはH3入力端子の一方ま
たは双方に存在する信号に応答してH0出力信号を生成
するように関数発生器fHを構成する(プログラムす
る)ことによって、各CLB600内でピラミッド状の
ネットワークを実行できることが分かる。
【0081】図14に関して、多くの場合に当然ながら
ツリー状ネットワークが論理設計に表れることが分か
る。例えば、第1及び第2の機能素子f71及びf72の出
力信号が第3機能素子f73の入力になる。第3機能素子
f73は、図示されるように機能素子f71及びf72の唯一
の子供である。機能設計素子f73が3個の入力端子を有
するのに対して、機能設計素子f71及び72はそれぞれ4
個の入力端子を有する。このような場合には、前記CL
Bのリソースが完全に利用されかつCLB間(CLB
外)ルーティング線が無駄とならないように、単一のC
LB600内に素子f71、f72及びf73によって形成さ
れる複合ツリー構造を実行することが好ましい。
【0082】再び図12に関して説明すると、関数発生
器fFが第1の設計素子f71の機能を実行し、関数発生
器fGが第2の設計素子f72の機能を実行し、かつ関数
発生器fHが第3の設計素子f73の機能を実行すること
になる。このf71〜f73からなるツリー構造は完全に前
記CLB内のFGHツリーパターンにマッピング即ち写
像されている。
【0083】図15では、f71〜f73からなるツリーの
機能を吸収したブロックがCLB123として図示されて
いる。同様に、機能素子f74〜f76を第2ブロックCL
B456に写像し、かつ機能素子f81〜f83を第3ブロッ
クCLB321に写像することが好ましい。更に、機能素
子f85及びf86を第4ブロックCLB654の各関数発生
器F、Hに写像すると好都合である。(これによって、
FGHツリーパターンではなくFHツリーパターンが定
義される。)第4ブロックCLB654の関数発生器Gは
設計素子f84の機能を吸収することができる。そして、
図14を完成させるためには、機能f77、f87及びf88
を第5ブロックCLB778に写像することが好ましい。
【0084】このような観点から、本発明の1つの特徴
は、このように設計素子を論理領域内に最適にマッピン
グ即ち写像する可能性が最大となるようにパーティショ
ニング即ち区分け過程を調整することである。これは、
CLAチップの機能実行領域がそれぞれ図3の単一の関
数発生器を有する論理領域LAxyではなく図12の多数
の関数発生器を有するCLBとして画定されるような場
合に適用される。例えば図7及び/または図8の区分け
調整方法は、結果的に得られる関数発生器の数及び/ま
たは関数発生器間伝搬遅れについてだけではなく結果と
して得られるCLBの数及びCLB間信号伝搬遅れにつ
いても注目するように構成されている。
【0085】最小数のCLBを実現するためのステップ
が、以下の表に示す擬似コードリストのように設定され
る。
【0086】
【表1】
【0087】
【表2】
【0088】
【表3】
【0089】
【表4】
【0090】
【表5】
【0091】
【表6】
【0092】
【表7】
【0093】
【表8】
【0094】
【表9】
【0095】
【表10】
【0096】
【表11】
【0097】
【表12】
【0098】上述の方法は、米国カリフォルニア州サン
ノゼに所在するザイリンクス・インコーポレイテッド
(Xilinx Inc.)のCLAチップのXC4000(登録
商標)ファミリーを構成(configure)するために同社
から販売されているXACT(登録商標)レイアウト・
ツールキットに適合するように構成されている。上述し
た方法で作成される区分けネットリスト・ファイルは、
コンピュータ読取り可能媒体に固定され、ユーザが定義
する機能技術を満足する物理的な回路を製造するべくレ
イアウト及びインプリメンテーションプロセスに於て使
用される製品である。
【0099】本発明の変形・変更については、当業者で
あれば上述の説明から容易に理解することができる。例
えば、異なる数またはパターンの関数発生器を有するC
LBを用いることができる。前記境界ルールは、1個の
チップに異なるCLBを混在させ使用しているような場
合には或るCLBから別のCLBに変更することができ
る。また、上述した実施例は単なる例示であって、本発
明はその技術的範囲内に於て様々な変形・変更を加えて
実施することができる。
【0100】
【図面の簡単な説明】
【図1】コンフィグラブル・論理アレイ(CLA)デバ
イスに於て実行されるべきサンプル・デジタル論理デバ
イスを示す回路図である。
【図2】図1に示される論理機能を実行するように構成
されるべきCLAデバイスを示す平面図である。
【図3】図2のCLAチップの1部分に存在する機能実
行サブセクションを詳細に示す拡大平面図である。
【図4】図3の各機能実行サブセクションの制限された
能力に対応する境界ルールを満足するように区分けを行
なう場合に或る設計部分の第1の区分けを示す回路図で
ある。
【図5】前記回路設計の第2の区分けを示す回路図であ
る。
【図6】素子複製過程及びそれによって可能となる区分
けを示す回路図である。
【図7】本発明による区分け最適化プロセスを示すフロ
ー図である。
【図8】本発明による伝搬遅れ最小化プロセスを示すフ
ロー図である。
【図9】本発明のネット、ピン及びインスタンスの概念
を示す回路図である。
【図10】A〜C図からなり、それぞれにネット・テー
ブル、インスタンス・テーブル及びピン・テーブルから
なるネットリスト・データベースを画定するコンピュー
タ読取り可能メモリデバイスの部分を示す図である。
【図11】その基板上に画定されるコンフィグラブル論
理ブロック(CLB)、スイッチングマトリックス(S
WM)及び接続バスのアレイを有するCLAチップの平
面図である。
【図12】コンフィグラブル論理ブロックCLBのブロ
ック図である。
【図13】外部接続線との関連に於て図11のCLB上
の入力端子及び出力端子の物理的な方向を示す平面図で
ある。
【図14】ブール・ツリー構造を示す図である。
【図15】図14のツリー構造のCLBの組への最適な
写像を示す図である。
【符号の説明】
10 設計図 20 チップ 21 水平線 22 垂直線 23 水平線 24 垂直線 25 入出力ピン 200 基板セクション 300、610 設計セクション 400 論理設計 500 自動化システム 501 開始ステップ 510 初期化ステップ 515 サーチステップ 520 複製ステップ 525 区分けステップ 530 カウントステップ 540 比較ステップ 550 設定ステップ 560 最終ステップ 570 ループバック 580 信号伝搬時間最小化プロセス 581 開始ステップ 582 複製範囲設定ステップ 584 サーチステップ 586 複製ステップ 588 区分けステップ 590 計算ステップ 592 比較ステップ 594 設定ステップ 596 最終ステップ 598 ループバック 600 CLB 601 SWM 602、603 接続線 604 キャリー伝搬線 610 ユーザ・プログラマブル・マルチプレクサ 614 増幅器 615 バッファリング増幅器 616 増幅器 617 増幅器 620 第2マルチプレクサ 631、632 ユーザ・コンフィグラブル・マルチプ
レクサ 641、642 ユーザ・コンフィグラブル・マルチプ
レクサ 651、652 セット/リセット制御ユニット 661、662 ユーザ・コンフィグラブル・マルチプ
レクサ 670 キャリー伝搬回路 700 CLAチップ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 相互に接続された多数の回路コンポー
    ネントを有する回路設計から物理的な回路を製造する方
    法に於て、前記各回路コンポーネントが少なくとも1個
    の信号出力端子と1個または2個以上の信号入力端子と
    を有し、少なくとも1個の前記回路コンポーネントの前
    記出力端子が、ピラミッド状回路を画定するように1個
    または2個以上の他の前記回路コンポーネントの各1個
    または2個以上の前記入力端子を駆動するように結合さ
    れ、前記物理的回路が複数の機能実行領域を有し、かつ
    第1の数J以下の数の独立した入力信号線と第2の数K
    以下の数の独立した出力信号線とが前記機能実行領域の
    境界を横切ることができるような所定の境界ルールによ
    って前記各機能実行領域が制限されており、 その前記信号出力端子が前記ピラミッド状回路の2個以
    上の他の前記回路コンポーネントの前記信号入力端子を
    駆動する或る前記回路コンポーネントを複製候補として
    識別する過程と、 その対応する信号入力端子が互いに接続されかつ対応す
    る信号出力端子が互いに独立しているような複数の複製
    コンポーネントで前記複製候補を置き換える過程とから
    なることを特徴とする物理的回路の製造方法。
  2. 【請求項2】 前記置換え過程の後に、それぞれに前
    記境界ルールを満足する設計部分に前記回路設計を区分
    けする過程を更に有することを特徴とする請求項1に記
    載の方法。
  3. 【請求項3】 前記区分け過程の後に、前記物理的回
    路の対応する前記機能実行領域にある各前記設計部分を
    実行する過程を更に有することを特徴とする請求項2に
    記載の方法。
  4. 【請求項4】 結果物である前記物理的回路が、その
    表面に前記機能実行領域を均一に配置したモノリシック
    基板を有することを特徴とする請求項1に記載の方法。
  5. 【請求項5】 前記各機能実行領域が、第1の数IF
    の入力項と第2の数OFの出力項とを有するブール論理
    関数を実行するための第1ルックアップ・テーブル手段
    Fを有することを特徴とする請求項1に記載の方法。
  6. 【請求項6】 前記各機能実行領域が第3の数IHの
    入力項と第4の数OHの出力項とを有するブール論理関
    数を実行するための第2のルックアップ・テーブル手段
    Hを有することを特徴とする請求項5に記載の方法。
  7. 【請求項7】 前記第1ルックアップ・テーブル手段
    Fの少なくとも1個の前記出力項が、前記第2ルックア
    ップ・テーブル手段Hの入力項としての機能を有するこ
    とを特徴とする請求項6に記載の方法。
  8. 【請求項8】 既定の論理設計の各部分を構成変更可
    能な論理アレイの機能実行領域に自動的に複写すること
    によって前記論理設計を実行するための装置であって、
    前記論理設計が順次結合された入力及び出力ノードを有
    する複数の回路要素を備え、かつ前記論理設計が機械読
    取り可能なメモリデバイスに含まれるネットリストデー
    タによって記述されており、 ファンアウト数を特徴付けされた或る前記回路要素の出
    力ノードによって駆動される次の前記入力ノードの特性
    数とした場合に、foL≦ファンアウト数≦foHとして
    複製範囲を画定する複製範囲画定手段と、 前記メモリデバイスの前記ネットリストデータをサーチ
    しかつ前記複製範囲を満足する回路要素を識別するため
    のサーチ手段と、 前記ネットリストの識別された前記各回路要素を複数の
    複製要素に置き換えるための回路要素複製手段とを備え
    ることを特徴とする論理設計の自動マッピング装置。
  9. 【請求項9】 前記複製範囲画定手段を変更して新し
    い複製範囲を画定するための調整手段と、 新しい前記複製範囲に従って構成される論理アレイの特
    性を先の複製範囲に従って構成される論理アレイの同様
    の特性と比較するための比較手段とを更に備えることを
    特徴とする請求項8に記載の装置。
  10. 【請求項10】 前記特性に、前記論理設計を実行す
    るために前記論理アレイに於て消費される関数発生器の
    総数が含まれることを特徴とする請求項9に記載の装
    置。
  11. 【請求項11】 前記特性に、前記論理設計を実行す
    るための前記論理アレイに於て消費される前記機能実行
    領域の総数が含まれることを特徴とする請求項9に記載
    の装置。
  12. 【請求項12】 前記特性に、前記論理設計の第1設
    計要素から第2設計要素への信号伝搬時間が含まれるこ
    とを特徴とする請求項9に記載の装置。
  13. 【請求項13】 第1の数の機能素子と前記機能素子
    を連結する第2の数のネットとを含む最初の機能定義か
    ら導出される回路を有する構成変更可能な論理アレイで
    あって、前記回路が、前記第1の数より大きな第3の数
    の機能素子を有し、かつ前記最初の機能定義に於て画定
    される機能素子の複製を有する複製包含機能定義から導
    出されることを特徴とする論理アレイ。
  14. 【請求項14】 既定の論理設計をサーチする過程
    と、 既定のファンアウト範囲を満足する前記論理設計内の或
    る一定の前記論理要素に複製候補としてタグ付けする過
    程と、 前記論理設計内の前記複製候補を複製する過程とからな
    ることを特徴とする回路のレイアウト方法。
JP3325142A 1990-11-13 1991-11-13 物理的回路の製造方法、論理設計の自動マツピング装置、論理アレイ及び回路のレイアウト方法 Pending JPH0540804A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61318990A 1990-11-13 1990-11-13
US07/613,189 1990-11-13

Publications (1)

Publication Number Publication Date
JPH0540804A true JPH0540804A (ja) 1993-02-19

Family

ID=24456242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3325142A Pending JPH0540804A (ja) 1990-11-13 1991-11-13 物理的回路の製造方法、論理設計の自動マツピング装置、論理アレイ及び回路のレイアウト方法

Country Status (4)

Country Link
EP (1) EP0486248A3 (ja)
JP (1) JPH0540804A (ja)
CA (1) CA2054290A1 (ja)
IT (1) IT1249833B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094014B2 (en) 2001-05-06 2015-07-28 Altera Corporation PLD architecture for flexible placement of IP function blocks

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW269074B (en) * 1994-10-14 1996-01-21 Ibm Circuit which includes cells with high fanout requirements which has a reduced RC delay
FR2775531B1 (fr) 1998-02-27 2001-10-12 Sgs Thomson Microelectronics Additionneur numerique rapide
US6467009B1 (en) 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6721840B1 (en) 2000-08-18 2004-04-13 Triscend Corporation Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory
US6725364B1 (en) 2001-03-08 2004-04-20 Xilinx, Inc. Configurable processor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094014B2 (en) 2001-05-06 2015-07-28 Altera Corporation PLD architecture for flexible placement of IP function blocks

Also Published As

Publication number Publication date
EP0486248A3 (en) 1994-06-22
IT1249833B (it) 1995-03-28
ITTO910116A1 (it) 1992-08-19
CA2054290A1 (en) 1992-05-14
ITTO910116A0 (it) 1991-02-19
EP0486248A2 (en) 1992-05-20

Similar Documents

Publication Publication Date Title
US5448493A (en) Structure and method for manually controlling automatic configuration in an integrated circuit logic block array
US6631510B1 (en) Automatic generation of programmable logic device architectures
Trimberger Effects of FPGA architecture on FPGA routing
Betz Architecture and CAD for speed and area optimization of FPGAs
US5513124A (en) Logic placement using positionally asymmetrical partitioning method
Chen et al. FPGA design automation: A survey
US7761828B2 (en) Partitioning electronic circuit designs into simulation-ready blocks
US20020188922A1 (en) Method for storing multiple levels of design data in a common database
US7043713B2 (en) Implementing programmable logic array embedded in mask-programmed ASIC
US5422833A (en) Method and system for propagating data type for circuit design from a high level block diagram
US7243315B2 (en) Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays
JPH07254019A (ja) フィールドプログラム可能なゲートアレイ・インプリメンテーションをマスクプログラム可能な論理セル・インプリメンテーションに変換するための方法と装置
US7269815B2 (en) Modifying a design to reveal the data flow of the design in order to create a more favorable input for block placement
Kuon et al. Design, layout and verification of an FPGA using automated tools
Chang et al. Layout driven logic synthesis for FPGAs
US8356358B2 (en) Preventing information leakage between components on a programmable chip in the presence of faults
CN115048893A (zh) 一种通过修改网表以简化布局的fpga布局方法
Rose et al. Architectural and physical design challenges for one-million gate FPGAs and beyond
US7730438B2 (en) Methods and apparatuses for designing multiplexers
Chaiyakul et al. Timing models for high-level synthesis
EP0486248A2 (en) Logic duplication method for reducing circuit size and delay time
US6615401B1 (en) Blocked net buffer insertion
Trick et al. Lassie: Structure to layout for behavioral synthesis tools
CN113761820A (zh) 可编程集成电路底层
Du Fast heuristic techniques for FPGA placement based on multilevel clustering