JP3217991B2 - プログラム可能アレイにおける論理セル構成の決定方法 - Google Patents

プログラム可能アレイにおける論理セル構成の決定方法

Info

Publication number
JP3217991B2
JP3217991B2 JP15481997A JP15481997A JP3217991B2 JP 3217991 B2 JP3217991 B2 JP 3217991B2 JP 15481997 A JP15481997 A JP 15481997A JP 15481997 A JP15481997 A JP 15481997A JP 3217991 B2 JP3217991 B2 JP 3217991B2
Authority
JP
Japan
Prior art keywords
logical
programmable
representation
logic
physical
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.)
Expired - Fee Related
Application number
JP15481997A
Other languages
English (en)
Other versions
JPH1070193A (ja
Inventor
サリー・ボタラ
エリック・アーネスト・ミルハム
ガルサン・イェーサー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1070193A publication Critical patent/JPH1070193A/ja
Application granted granted Critical
Publication of JP3217991B2 publication Critical patent/JP3217991B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にはプログラ
ム可能集積回路に関し、具体的にはプログラム可能ゲー
ト・アレイの構成を決定する方法に係わる。
【0002】
【従来の技術】当技術分野では、プログラム可能論理素
子(PLD)、プログラム可能アレイ論理(PAL)、
プログラム可能論理アレイ(PLA)など様々なプログ
ラム可能集積回路が知られており、それぞれ入力AND
論理の後にOR論理が続く。したがって、入力項の積の
和である出力関数を計算することができる。
【0003】プログラム可能回路の一般的な手法では、
プログラム可能ゲート・アレイ(PGA)に個別の専用
化されていない論理セルのアレイを設ける。通常は、プ
ログラム可能相互接続網を設けて論理セルを相互接続
し、アレイとの間でデータの入出力を行う。特定の用途
のために、論理セルおよび相互接続網のカスタマイズま
たはプログラミングを行う。このようなアレイの1つ
は、マスク・プログラム可能ゲート・アレイ(MPG
A)であり、集積回路のメタライズの最終層を追加する
際に論理セルと相互接続網の構成が行われる。他のこの
ようなアレイは、フィールド・プログラム可能ゲート・
アレイ(FPGA)であり、ユーザが現場で構成を行う
ことができる。このような構成は、プログラミング情報
(たとえば構成情報)を、電気的にプログラム可能なヒ
ュージブル・リンク、アンチヒューズ、メモリ制御トラ
ンジスタ、フローティングゲート・トランジスタ、また
は同様のものなどに何らかの形で送ることによって行う
ことができる。
【0004】プログラム可能ゲート・アレイを使用する
回路を設計する従来の方法は、論理セルによって実現可
能な各論理状態に名前を付け、名前を付けた論理状態の
それぞれの表現を共通ライブラリに記憶する。これらの
表現のそれぞれをライブラリ要素またはマクロと呼ぶこ
とができる。プログラム可能ゲート・アレイ・アプリケ
ーションを開発する際、設計者はライブラリからマクロ
を選択して、アレイに適用し、マクロ間の論理入出力の
関係を指定する。一般には、自動配置およびルーティン
グ(APR)ソフトウェアを使用して、選択したマクロ
をどこに位置づけ、相互接続網をどのように構成して、
指定した入出力関係を満たすかを決める。自動配置およ
びルーティングの後、ソフトウェアを実際の素子に適用
可能なプログラミング情報(たとえば「ビット列」)に
デコードすることによってマクロとそれに付随する接続
をデコードし、所望のカスタマイズを実現する。
【0005】設計が期待通りに機能するかどうかの検証
は、物理素子にビット列を適用するか、または、実際の
素子の動作をモデリングするシミュレーション・ソフト
ウェアを使用して行うことができる。後者の場合、ビッ
ト列はシミュレーション・ソフトウェアに直接適用する
ことはできず、まずシミュレーション・ソフトウェアが
受け付けることができる形式に変換しなければならな
い。どちらの場合も、テストでは、可能なすべての入力
の組合せを表すテスト・パターンを適用して現実のゲー
ト・アレイまたはシミュレートするプログラム可能ゲー
ト・アレイをシミュレートし、出力値を観察する必要が
ある。1つのプログラム可能ゲート・アレイをテストす
るのに必要な大量のテスト・パターンを考えると、検証
には厖大な時間がかかる場合がある。
【0006】プログラム可能ゲート設計の構成と検証の
過程ではいくつかの問題が生じる。第1の問題は、構成
技法に関係する。所与の論理セルにN個のプログラム可
能点がある場合、前述の構成方法によって、2N個の名
前付き論理状態が生じ、マクロ・ライブラリを収容する
のにN×2Nビットの記憶域が必要になる。典型的な論
理セルは10以上のプログラム可能点を持つことがあ
り、この方法ではすべての表現を記憶するために大量の
メモリを必要とし、その結果、大量のメモリを使用し、
ライブラリ・アクセス時間がそれに比例して遅くなる。
さらに、新しいマクロを組み込むためにライブラリを拡
張するたびに、適切なデコードのためにその新しいマク
ロを認識するようにデコーディング・プログラムも更新
しなければならない。さらに、ライブラリ・マクロの記
憶の仕方は、論理セル内の特定のプログラム可能要素の
論理状態に対応する情報を保持せず、そのような情報は
本質的に使用することができない。
【0007】もう1つの問題は、従来の方法による回路
空間の非効率的使用に関係する。たとえば、従来のAP
Rソフトウェアは、使用可能な論理セルに同時に複数の
マクロを収容することができるかどうかにかかわらず、
使用可能な論理セルに1つの論理セル・マクロしか配置
しない。
【0008】他の問題は、検証に費用がかかることに関
する。検証によって、検証を行うのに要する時間と検証
結果が得られるようになる設計サイクル内の時点の両方
に関して製品開発サイクル時間全体が大幅に増える。後
者の時点については、検証結果は通常、プログラム可能
ゲート・アレイ全体を設計し終わった後でなければ得ら
れず、したがって誤りが検出された場合には費用のかか
る再設計が必要になる。
【0009】必要なのは、プログラム可能ゲート・アレ
イで実施された回路の設計、構成、および検証を行う改
良された方法である。
【0010】
【発明が解決しようとする課題】本発明の目的は、プロ
グラム可能ゲート・アレイで実施された回路の設計、構
成、および検証を行う改良された方法を提供することで
ある。
【0011】本発明の目的は、マクロ・ライブラリと自
動配置およびルーティング・ソフトウェアと検証ソフト
ウェアとが使用する共通の表現を使用して、プログラム
可能ゲート・アレイで実施された回路の設計、構成、検
証を行う改良された方法を提供することである。
【0012】本発明の他の目的は、1つの論理セルに複
数の論理セル・マクロを入れる方法を提供することであ
る。
【0013】
【課題を解決するための手段】本発明の方法は、相互接
続網によって接続可能な、複数のプログラム可能要素を
持つ複数のプログラム可能論理セルを有するプログラム
可能ゲート・アレイを対象とする。この方法は、a)論
理セルのプログラム可能要素に関する論理状態情報が別
々に識別可能であることを特徴とする所望の論理セル構
成の論理表現を提供するステップと、b)論理表現を論
理セルの物理表現と組み合わせる(merge)ステップ
と、c)組み合わされた表現の自動的な配置および経路
指定を行い、配置され経路指定されたプログラム可能ゲ
ート・アレイ表現を形成するステップとを含む。この方
法は、配置し、経路指定されたプログラム可能ゲート・
アレイ表現からプログラミング・ビット列を生成するス
テップ、または論理表現が物理表現と整合しているかど
うかを検証するステップ、あるいはその両方のステップ
も含む。
【0014】
【発明の実施の形態】図1を参照すると、複数の論理セ
ル12を含むプログラム可能ゲート・アレイ10のレイ
アウト例が図示されている。この特定の例では、複数の
プログラム可能論理セルが、セルのセクタに分けられた
56×56配列の論理セル12を含み、各セクタが8×
8グループの論理セル12によって画定されている。ま
た、アレイの周縁に沿って、データ入出力に使用するこ
とができる入出力ピン(I/Oピン)14も図示されて
いる。さらに、特定のピンは、アレイ10のプログラム
可能要素をプログラムする構成ピンとして、またはクロ
ック・ピンまたはリセット・ピンとして使用することが
できる。
【0015】図2を参照すると、図1のアレイのプログ
ラム可能論理セルの1つのセクタ16が図示されてい
る。1つのセクタ16は論理セル181,1ないし188,8
を含む。論理セル181,6を参照すると、この論理セル
は縦方向の相互接続導線20aおよび20bと横方向の
相互接続導線22aおよび22bとによって全体的に囲
まれているのが図示されている。これらの横および縦方
向の相互接続導線はアレイの各行および列の間に配置さ
れ、アレイ内の2つの論理セル間、またはアレイ内の論
理セルと入出力ピンとの間の接続を行う。相互接続導線
が組合わさってプログラム可能アレイの相互接続網全体
を形成する。プログラム可能論理セル内に設けられたプ
ログラム可能要素に加えて、相互接続網内にプログラム
可能要素を設けることができる。相互接続網内のプログ
ラム可能要素には、たとえば、2つの縦方向の導線間で
の信号の伝送を可能にするスイッチング要素24が含ま
れる。さらに、バス・ターン(図示せず)を使用して、
指定された縦方向と指定された横方向の相互接続導線の
間にプログラム可能相互接続を設けることができる。
【0016】図3に、論理セル18と近接相互接続導線
の間で使用可能な接続例を詳細に図示する。相互接続導
線は、セル・アクセス点26でセル・アクセスを行うこ
とができるローカル・バスL1〜L4と、エクスプレス
・バスE1〜E2と、スーパーバスS1とを含む。各バ
スは縦方向と横方向の両方に延びる。図3には、隣接す
る論理セルとの間の複数の直接接続部28も図示されて
いる。図4は、エクスプレス・バス・ターンとローカル
・バス・ターンとセル・アクセス点と直接接続部とを示
す、図3の記号の凡例である。
【0017】図5に、様々なプログラム可能要素を有す
るプログラム可能論理セル40の例を図示する。入力選
択のためのプログラム可能入力マルチプレクサ42a、
42b、42c、および42d(それぞれE、F、G、
およびH)が設けられ、SRAMメモリ・ビットM1〜
M15によって制御されるパス・ゲート・マルチプレク
サを含む。選択可能入力には、たとえばローカル・バス
入力L1〜L4、クロック入力CLOCK、または隣接
論理セルからの直接接続部(たとえばF、G)が含まれ
る。プログラム可能入力インバータ44a、44b、4
4c、および44d(これらのインバータの出力をそれ
ぞれM、N、O、Pと呼ぶ)が、プログラム可能入力マ
ルチプレクサ42によって供給される反転信号または非
反転信号をプログラム可能な方式で選択するように設け
られ、SRAMメモリ・ビットM16〜M19によって
制御することができる。他のプログラム可能要素には、
構成可能論理ゲート46aおよび46bが含まれ、その
それぞれがたとえば図5に示すようにNAND関数また
はNOR関数など、複数の論理関数のうちの1つを実行
することができる。実行される関数は、たとえばゲート
46aおよび46bの制御入力端子にその状態が送られ
るSRAMメモリ・セルM20をプログラムすることに
よって決めることができる。さらに、下流のプログラム
可能マルチプレクサ48aおよび48bを独立して制御
して複数の入力信号のうちのいずれか1つをそれぞれの
論理セル・ノード49aおよび49bに供給することが
できる。下流のプログラム可能マルチプレクサ48aお
よび48bは、SRAMビットM21〜M24によって
制御されるパス・ゲート・マルチプレクサを含むことが
できる。また、制御マルチプレクサ54による制御とト
ライステート・ドライバ58による駆動に従って、ノー
ド49aの信号をローカル・バス(たとえば、L1〜L
4)に選択的に送ることができる出力マルチプレクサ5
0も図示されている。マルチプレクサ50および54
は、それぞれSRAMメモリ・セルM25〜M28およ
びM29によって制御されるゲートを有するパス・ゲー
ト・トランジスタで実施することができる。また、図5
には直接転送マルチプレクサ60も図示されており、入
力信号の一部を(任意選択でプログラム可能インバータ
44で反転させて)出力マルチプレクサ50に選択的に
渡すために使用することができる。
【0018】図6に、本発明の方法を高水準で図示した
ブロック図を示す。図6を参照すると、ブロック100
で、最初のステップは各論理セルの所望の論理構成を、
所望の構成に対応する、論理セルの独立してプログラム
可能な各要素(たとえばプログラム可能な点)の様々な
状態で表し、それによってプログラム可能要素の情報を
別々に識別することができるようにすることを含む。た
とえば、各プログラム可能要素に、その所望のプログラ
ムされた状態を表すより大きなプログラミング・ストリ
ング内の1つまたは複数の明確に異なる各プログラミン
グ・フィールドを割り当てることができる。異なる各プ
ログラミング・フィールドはそれぞれ別々にアクセス可
能である。各プログラミング要素を表す際に、データ圧
縮を可能にするために何らかのレベルの所定のコード化
を行うことが望ましい場合がある。例として、このステ
ップについて後で図10を参照しながら詳述する。
【0019】図6を続けて参照すると、ブロック200
で次のステップは、導き出された論理表現を記憶し、ブ
ロック100に示すステップで使用したコード化を、ポ
ートの接続、内部配線、使用ゲートなどの物理情報を含
むマクロの物理ライブラリに定義する。言い換えると、
物理ライブラリは、物理ライブラリにとって既知の物理
要素で表される論理表現を定義する。このステップの結
果、所与のライブラリ要素の論理定義と物理定義の両方
を有する組合せ表現(merged representation)ができ
る。この組合せ表現は、前記のプログラミング・ストリ
ング内のフィールドの独立性を維持することに留意され
たい。
【0020】ブロック300で、物理ライブラリを検証
して、論理表現と物理要素が確実に整合するようにする
ことができる。この検証ステップについては、図7を参
照しながら後で詳述する。
【0021】ブロック400で、組み合わされ検証され
た物理ライブラリの表現をコンパイルし、FPGAチッ
プの論理セルの自動的配置および経路指定(APR)を
行うために使用するソフトウェアに供給する。
【0022】図6を続けて参照すると、ブロック500
で、組み合わされた論理/物理表現が自動的に配置され
経路指定される。単に物理表現のみを使用する配置およ
び経路指定は一般に当技術分野で周知であり、本明細書
では詳述しない。しかし、組合せ論理/物理表現は、従
来技術のAPR方法では得られない重要な利点を備え
る。組合せ論理/物理表現は、独立してプログラム可能
な要素ごとに別々のフィールドを維持するため、この自
動配置および経路指定(APR)ステップはそのような
情報を使用して2つの独立した論理関数を単一の論理セ
ル内に配置することができるかどうかを判断することが
でき、したがってより少数の論理セルにより多数の論理
関数を凝縮し、空間を節約することができるので有利で
ある。二重配置が適切な場合の判断の詳細については、
図8を参照しながら詳述する。APRステップ500
で、相互接続網内のプログラム可能要素の所望のプログ
ラミング状態も決定する。このステップが完了すると、
すべての組合せ表現が特定の論理セルに配置され、配置
された論理セル間の特定の相互接続が割り当てられ(た
とえば特定のバスの割り当てやバス・ターンの位置付け
など)、その結果、配置および経路指定されたPGA表
現になる。
【0023】ブロック600で、最終ステップは、配置
され経路指定されたプログラム可能アレイのプログラミ
ング・ビットストリングの生成を含む。このステップに
ついては、後で図9を参照しながら詳述する。
【0024】コードの使用法の例示の助けとなるよう
に、図5および図10を参照しながら、本発明の方法全
体の論理セル40を表すコーディング方式の例について
詳述する。例示をわかりやすくし、明確にするために、
このコーディング方式例は図5に図示する論理セル・ア
ーキテクチャに合わせて作られている。しかし、本明細
書の開示に照らせば、本発明の方法は本明細書に記載の
アーキテクチャには限定されず、適切な変更を加えた任
意のアーキテクチャに容易に適用可能であることが、当
業者ならわかるであろう。
【0025】図10には、図5で示されている論理セル
内のプログラム可能要素を表すために使用する複数のフ
ィールドを、各プログラム可能要素の様々な論理状態を
表すために使用する対応するコード化と共に示した表が
図示されている。この特定の実施例では、8個の1ビッ
ト・フィールドを使用するが、様々なサイズのこれより
少ないかまたは多い数のフィールドを使用して様々な論
理セル・アーキテクチャに対応することができる。この
図の例では、プログラム可能要素を表すために使用する
フィールドを示すコードは、任意の十六進文字(たとえ
ば0〜F)とすることができる。Hフィールドは任意選
択であり、単にそれに続くビットの性質(たとえば所定
の方式でコード化されていること)を識別し、ビットの
1グループを次のグループから分離するために使用され
るヘッダ・フィールドに過ぎない。たとえば、1つの文
字を使用して論理セルのコード化方式を示し、別の文字
を使用してFPGAの境界論理セル付近にある入出力イ
ンタフェースのコード化方式を示すことができる。
【0026】先頭フィールドは、左側の入力マルチプレ
クサ42aおよび42bと、左側のプログラム可能イン
バータ44aおよび44bに関する情報を提供する。マ
ルチプレクサ42aおよび42bのどちらも使用しない
場合は、インバータ44a(その出力をMと呼ぶ)およ
び44b(その出力をNと呼ぶ)のどちらも使用しない
ことを意味し、割り当てられる十六進コードは「0」で
ある。両方のマルチプレクサEおよびFを反転なしで使
用したい場合は、十六進コード「4」を割り当てる。十
六進コード「5」および「6」は、両方のマルチプレク
サEおよびFを使用し、そのうちの一方を反転させるこ
とを示す。十六進コード「7」は、両方のマルチプレク
サEおよびFを使用し、その出力を両方とも反転させる
ことを示す。
【0027】2番目のフィールドは、右側の入力マルチ
プレクサ42cおよび42dと、右側のプログラム可能
インバータ44cおよび44dに関する情報を提供し、
先頭フィールドに関して上述したのと同じ規則に従う。
【0028】上述のコードは、特定の論理セル構成にマ
ルチプレクサE、F、G、およびHを使用するかどうか
を示すが、マルチプレクサが複数の使用可能な入力のう
ちのどの入力を選択するかは示さないことがわかるであ
ろう。マルチプレクサE、G、およびHについては、こ
の選択は一般にAPRアルゴリズムに任される。マルチ
プレクサFに関しては、フィールド7でさらに構成情報
が供給され、それについては後述する。
【0029】3番目のフィールドは、構成可能論理ゲー
ト46aおよび46bに関する情報を供給する。論理ゲ
ートを使用しない場合は十六進コード「0」を割り当て
る。これを行うのは、たとえば直接転送マルチプレクサ
60を使用して入力信号をトライステート・ドライバ5
8を介して出力マルチプレクサ50に直接、選択的に渡
したい場合である。十六進コード「1」および「2」
は、それぞれNAND関数またはNOR関数を示すため
に割り当てられる。
【0030】4番目と5番目のフィールドはそれぞれ、
左側のプログラム可能マルチプレクサ48aと右側のプ
ログラム可能マルチプレクサ48bに関する情報を供給
する。どちらの場合も、マルチプレクサを使用しない場
合は十六進コード「0」を割り当てる(たとえば「ナ
ル」)。単一段の論理を表す入力、言い換えると、それ
ぞれマルチプレクサ48aおよび48bの入力Iおよび
Jを選択する場合は、十六進コード「1」を割り当て
る。二重段の論理を表す入力、言い換えるとそれぞれマ
ルチプレクサ48aおよび48bの入力NおよびXを選
択する場合は、十六進コード「2」を割り当てる。公差
出力を持つ二重段の論理を表す入力を選択した場合、言
い換えると、それぞれマルチプレクサ48aおよび48
bの入力LおよびAを選択した場合は、十六進コード
「3」を割り当てる。最後にフィールド4は、直接転送
マルチプレクサ60を使用する場合は十六進コード
「4」を割り当てる。
【0031】6番目のフィールドは、出力マルチプレク
サ50(Lマルチプレクサとも呼ぶ)への入力を制御す
る制御マルチプレクサ54に関する情報を提供する。出
力マルチプレクサ50をGマルチプレクサ42cの入力
によって制御したい場合は、十六進コード「1」を割り
当てる。したがって、信号線52が「1」状態を伝達す
る場合、トライステート・インバータ58はマルチプレ
クサ48aの出力を出力マルチプレクサ50を介してロ
ーカル・バスに渡すことになる。信号線52が「0」状
態を伝達する場合には、トライステート・インバータ5
8は高インピーダンス成端をローカル・バス線L1から
L4に供給する。APRアルゴリズムでマルチプレクサ
48aの出力をローカル・バスに送るかどうかを判断す
るようにしたい場合は、6番目のフィールドに十六進コ
ード「0」を割り当てる。
【0032】最後に、7番目のフィールドは、Fマルチ
プレクサ42bの追加の構成情報を供給する。十六進コ
ード「0」は、このマルチプレクサを使用しないかまた
は自動配置および経路指定ソフトウェアを使用して隣接
論理セルからの複数の直接接続またはクロック接続のう
ちのどれを使用するかを決定するために使用することが
できる。十六進コード「1」は、フィードバック入力5
6を選択することを示す。最後に、十六進コード「2」
および「3」をそれぞれ使用して、論理「1」または
「0」を表すそれぞれの入力を選択することを示す。
【0033】図11および図12は共に、I/O(入力
/出力)インタフェース70の例と、論理セルの前述の
コード化方式と類似した対応するコード化方式の例を示
している。図11を参照すると、I/Oインタフェース
70はI/O経路指定および制御マルチプレクサ74に
よって相互接続網72に結合されている。I/Oインタ
フェース70は、プログラム可能ドライバ/受信器76
と、受信器78と、プルアップ装置80とプルダウン装
置82を含む。
【0034】I/Oインタフェースは、様々な方法で構
成することができ、それぞれが図12で3つのコード化
フィールドとヘッダ・フィールドで示されている。図1
2を参照すると、Hフィールドすなわちヘッダ・フィー
ルドは、その後に続くビットの性質(たとえば所定の方
式でコード化されていること)を示すためと、1グルー
プのビットを次のグループから分離するために使用され
る。この例では、HフィールドにはIが入り、次に続く
ビットがI/Oインタフェースのコード化方式であるこ
とを示している。
【0035】フィールド1は、プログラム可能ドライバ
/受信器をドライバまたは受信器あるいはその両方のい
ずれとして構成するかに関する情報を提供する。また、
いくつかのドライバ構成の速度および出力インピーダン
ス・オプションも提供する。具体的には、受信器のみの
構成を示すには十六進コード「4」を使用する。図12
に示すような様々な速度/出力インピーダンスの組合せ
(たとえば低速/低出力インピーダンス、低速/高出力
インピーダンス、高速/低出力インピーダンス、高速/
高出力インピーダンス)のドライバのみの構成を示すに
は、十六進コード「8」、「9」、「A」、および
「B」を使用する。十六進コード「C」〜「F」を使用
して、ドライバ/受信器を様々な速度/出力インピーダ
ンスの組合せ(たとえば低速/低出力インピーダンス、
低速/高出力インピーダンス、高速/低出力インピーダ
ンス、高速/高出力インピーダンス)のドライバ/受信
器二重機能用に構成することができる。
【0036】フィールド2は、どのような種類のドライ
バ構成を使用するかに関する情報を提供する。具体的に
は、十六進コード「0」で標準ドライバを示し、十六進
コード「1」および「2」を使用してそれぞれトライス
テート・ドライバとオープンドレイン・ドライバを示す
ことができる。
【0037】フィールド3は、受信器/ドライバ76を
プルアップ装置80またはプルダウン装置82と組み合
わせて使用するかどうかに関する情報を提供する。十六
進コード「0」は、プルアップ装置もプルダウン装置も
使用しないことを示す。十六進コード「1」はプルアッ
プ装置80を使用することを示す。十六進コード「2」
はプルダウン装置82を使用することを示す。
【0038】図7を参照しながら、図6のステップ30
0に示す物理ライブラリの検証の詳細について以下に詳
述する。全般的に図7の左側は論理セルの物理モデルに
関わり、図7の右側は論理セルの論理属性に関わる。
【0039】ステップ314で、ステップ308で定義
した特定のコード(たとえば図10を参照しながら前述
したのと同様のコード)と、ステップ310で定義した
そのコードに関連づけられた特定の構造体(たとえば汎
用論理セルアーキテクチャ内の特定の入力マルチプレク
サ、特定の論理ゲートなど)と、ステップ312で定義
したそのコードおよび構造体に関連づけられた論理関数
とを組み合わせて、特定の物理ライブラリ要素を定義す
る。ステップ314で、これらの定義のそれぞれを特定
の物理ライブラリ要素に組み込む。
【0040】ステップ314で定義した特定の物理ライ
ブラリ要素のために、定義に組み込んだ論理関数と構造
体に従って、ステップ316で特定の真理値表を生成
し、ステップ320で特定の論理関数スキマティックを
生成する。この特定の論理関数スキマティックに基づい
て、ステップ322で論理モデル(たとえば論理式)を
生成する。ステップ318で、論理モデルと真理値表を
比較して、論理モデルの正確度を検証する。不一致が見
つかった場合は、手作業またはその他の方法で適切な修
正を加えてから検証を繰り返すことができる。
【0041】少なくともステップ308、310、およ
び312と並行して行うことができるステップ302
で、汎用論理セルの物理モデル(たとえば、プログラム
可能要素に特定の論理状態を割り当てない、図5に示す
ような論理セル・アーキテクチャの物理モデル)を使用
して、そのアーキテクチャで可能なあらゆる組合せと順
列をテストするように作成されたテスト・パターンの網
羅的なセットを生成する。ステップ304で、ステップ
308で定義した特定のコードに基づいて、このテスト
・パターンの網羅的なセットの中から、その特定のコー
ドをテストするの適合した特定のテスト・パターンと期
待出力値を選択する。
【0042】最後に、ステップ306で、特定のコード
のために選択したテスト・パターンを、検証済み論理モ
デルに適用し、期待出力値と比較して、物理ライブラリ
要素の定義の検証を完了し、その結果、検証され組み合
わされた物理/論理表現ができる。
【0043】図8を参照しながら、前に図6のステップ
500の説明で言及した自動配置および経路指定の詳細
を以下に説明する。まず、ステップ502で、未占有論
理セルに特定の組合せ物理/論理表現(たとえば第1の
コード)を割り当てる。ステップ504で、(たとえば
図10を参照しながら前述したように)そのコード内の
特定のフィールドを所定の意味に従って解釈する。ステ
ップ506で、解釈したコードと1組の配線規則508
に基づいて、それぞれ左側のマルチプレクサ(42a、
42b、48a)と右側のマルチプレクサ(42c、4
2d、48b)に関して割り当てられた配線接続を表す
第1および第2の配線カウンタをしかるべく増加させ
る。ステップ512で、所望の配線経路のタイプと配線
規則508に基づいて配線カウンタを再びしかるべく増
加させる。ステップ516で、配線競合、すなわち同じ
経路を複数回使用する要求がないかどうかをAPRによ
って調べる。競合がない場合、APRソフトウェアはそ
の論理セルを経路指定する。競合する配線がある場合
は、別の方法を再試行する。
【0044】ブロック524で、所定の組合せ規則52
0に基づいて、APRアルゴリズムによって、第2の組
合せ論理/物理表現522(たとえば第2のコード)を
前に配置した組合せ表現、たとえば第1のコードと単一
の論理セルに同時に配置することができるかどうかを判
断する。APRは、前に配線した論理セルの全部または
一部を配線カウンタの状態に基づいて検査することがで
きる。組合せ規則に違反することなく第2のコードの配
置と経路指定を行うことができる場合、ステップ526
で第2のコードを前に配線した論理セルに割り当てる。
ステップ528で、第2のコード内の特定のフィールド
をステップ504と同様にして解釈する。ステップ53
0で、解釈したコードと配線規則508に基づいて配線
カウンタを増加させる。ステップ524で第2のコード
を前に配線したセルに配置し経路指定することができな
いと判断された場合、未占有論理セルに割り当ててステ
ップ502、504、506、512、516、および
518と同様の方式で配線する。
【0045】図9を参照しながら、前に図6のステップ
600の説明で言及したプログラミング・ビット列の構
築の詳細を以下に説明する。ステップ602で、組合せ
規則520に基づいてコードを検証する。具体的にはコ
ードを検査してどのような種類の要素(たとえば論理セ
ルまたはI/Oセルなど)を表しているかを調べ、長さ
と値がその種類の要素にとって有効であることを確認す
る。ステップ606で、フィールド値内の十六進数の整
数値に従って、コードの各フィールドに二進ビットを割
り当てる。たとえば、十六進コードAは二進形式では1
010と表される。ステップ608で、各プログラム可
能要素の所定の許容される状態に基づいて各プログラム
可能要素のビット値を検証する。たとえば、特定のフィ
ールドの許容十六進コードが8(整数値=8、二進値=
1000)の場合、A(整数値=10、二進値=101
0)とC(整数値=12、二進値=1100)とE(整
数値=14、二進値=1110)の場合、最下位ビット
と最上位ビットをテストして二進値がこの4つの許容可
能状態のうちの1つであることを確認する。ステップ6
12で、各セルの二進ビットを組み合わせて所定の順序
を有するビット列にする。
【0046】本発明の方法には様々な利点がある。プロ
グラム可能ゲート・アレイを構成する際に行う様々なタ
スクに一貫性のある表現を使用することによって、効率
性が得られる。第1に、物理ライブラリに必要なメモリ
量が少なくなり、新しいマクロを組み込むためのライブ
ラリの拡張がより簡単になる。第2に、物理ライブラリ
は、論理セルまたはI/Oインタフェース内の特定のプ
ログラム可能要素の論理状態に対応する情報を保持し、
それによってその情報を検証時と自動配置および経路指
定時とビット列生成時に使用することができるようにな
り、新しいマクロを組み込むためにこれらのタスクを行
うのに使用する各ソフトウェア・プログラムを変更する
必要がない。このような情報を検証に使用することがで
きるようにすることによって、設計プロセスの初期に検
証を完了することが可能になる。このような情報をAP
Rに使用することができるようにすることによって、単
一の論理セルに2つの独立した論理関数を配置すること
が可能になる。
【0047】アレイをプログラム可能にする様々な技法
が当業者には周知である。本明細書に記載のプログラム
可能アレイの例に示すようなSRAMメモリ・セルの使
用に加えて、それらの様々な技法のいずれでも本発明の
方法と組み合わせて使用することができる。たとえば、
ヒュージブル・リンクまたはアンチヒューズを使用して
永久(不揮発性)プログラミングを実現することができ
る。消去可能プログラム可能読取り専用メモリ(EPR
OM)および電気的消去可能プログラム可能読取り専用
メモリ(EEEPROM)デバイスを使用して半永久プ
ログラミングを実現することができる。EPROMとE
EPROMは両方とも電気的にプログラム可能であり、
電力が除去されてもその状態を保持する。しかし、特別
な消去手続きを使用してこれらのデバイスを再構成する
ことができる。最後に、全面的にプログラム可能であ
り、再プログラム可能であるが、電力が除去された場合
そのプログラムされた状態を失う揮発性ランダム・アク
セス・メモリ(RAM)デバイスも使用可能である。
【0048】本発明の方法は、コンピュータ・プログラ
ムを含む、機械によって読み取ることができ機械によっ
て実行可能なプログラム記憶装置内で実施することがで
きる。
【0049】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0050】(1)相互接続網によって接続可能で、複
数のプログラム可能要素を含む複数のプログラム可能論
理セルを含むプログラム可能ゲート・アレイを構成する
方法であって、論理セルのプログラム可能要素の論理状
態情報が別々に識別可能であることを特徴とする、所望
の論理セル構成の論理表現を提供するステップと、論理
表現を論理セルの物理表現と組み合わせるステップと、
組み合わされた表現の自動的な配置および経路指定を行
い、配置され経路指定されたプログラム可能ゲート・ア
レイ表現を形成するステップとを含む方法。 (2)配置され経路指定されたプログラム可能ゲート・
アレイ表現からプログラミング・ビット列を生成するス
テップをさらに含む、上記(1)に記載の方法。 (3)論理表現が物理表現と整合していることを検証す
るステップをさらに含む、上記(1)に記載の方法。 (4)論理表現が物理表現と整合していることを検証す
るステップをさらに含む、上記(2)に記載の方法。 (5)検証するステップが、特定の論理表現と特定の構
造定義と特定の論理関数とで表して物理ライブラリ要素
を定義するステップと、ライブラリ要素定義に基づいて
論理モデルを作成するステップと、論理モデルの正確さ
を検証するステップと、汎用論理セル物理モデルに基づ
いて1組のテスト・パターンを生成するステップと、論
理表現に基づいて選択されたテスト・パターンを、検証
した論理モデルに適用し、テスト出力値を生成するステ
ップと、テスト出力値を期待出力値と比較するステップ
とを含むことを特徴とする、上記(2)に記載の方法。 (6)自動的な配置と経路指定を行うステップが、組み
合わされた表現を検査して2つの独立した論理関数を単
一の論理セル内に配置することができるかどうかを判断
するステップを含むことを特徴とする、上記(1)に記
載の方法。 (7)独立した論理関数の1つが識別関数であることを
特徴とする、上記(6)に記載の方法。 (8)論理表現が所定の順序で配置された十六進コード
のグループを含み、各十六進コードが1つまたは複数の
プログラム可能要素の論理状態を記述することを特徴と
する、上記(1)に記載の方法。 (9)ビット列を生成するステップが、配置され経路指
定されたプログラム可能ゲート・アレイ表現が所定の組
合せ規則と整合していることを確認するステップを含む
ことを特徴とする、上記(2)に記載の方法。 (10)相互接続網によって接続可能で複数のプログラ
ム可能要素を含む複数のプログラム可能論理セルを含む
プログラム可能ゲート・アレイを構成する方法のステッ
プを行うために機械によって実行可能な命令から成るプ
ログラムを有形に実施する機械可読プログラム記憶装置
であって、前記方法は、論理セルのプログラム可能要素
の論理状態情報が別々に識別可能であることを特徴とす
る、所望の論理セル構成の論理表現を提供するステップ
と、論理セルの物理表現と論理表現を組み合わせるステ
ップと、組み合わされた表現の自動的な配置と経路指定
を行い、配置され経路指定されたプログラム可能ゲート
・アレイ表現を形成するステップとを含む、プログラム
記憶装置。 (11)前記方法が、配置され経路指定されたプログラ
ム可能ゲート・アレイ表現からプログラミング・ビット
列を生成するステップをさらに含むことを特徴とする、
上記(1)に記載のプログラム記憶装置。 (12)前記方法が、論理表現が物理表現と整合してい
ることを検証するステップをさらに含むことを特徴とす
る、上記(1)に記載のプログラム記憶装置。 (13)前記方法が、論理表現が物理表現と整合してい
ることを検証するステップをさらに含むことを特徴とす
る、上記(2)に記載のプログラム記憶装置。 (14)検証する前記方法ステップが、物理ライブラリ
要素を特定の論理表現と特定の構造定義と特定の論理関
数とで表して定義するステップと、ライブラリ要素定義
に基づいて論理モデルを作成するステップと、論理モデ
ルの正確さを検証するステップと、汎用論理セル物理モ
デルに基づいて1組のテスト・パターンを生成するステ
ップと、論理表現に基づいて選択されたテスト・パター
ンを検証された論理モデルに適用してテスト出力を生成
するステップと、テスト出力値を期待出力値と比較する
ステップとを含むことを特徴とする、上記(2)に記載
のプログラム記憶装置。 (15)自動的な配置と経路指定を行う方法ステップ
が、組み合わされた表現を検査して2つの独立した論理
関数を単一の論理セル内に配置することができるかどう
かを判断するステップを含むことを特徴とする、上記
(1)に記載の記憶装置。 (16)独立した論理関数の1つが識別関数であること
を特徴とする、上記(6)に記載の記憶装置。 (17)所定の順序で配列された論理表現が十六進コー
ドのグループを含み、各十六進コードが1つまたは複数
のプログラム可能要素の論理状態を記述することを特徴
とする、上記(1)に記載の記憶装置。 (18)ビット列を生成する方法ステップが、配置され
経路指定されたプログラム可能ゲート・アレイ表現が所
定の組合せ規則と整合していることを確認するステップ
を含むことを特徴とする、上記(2)に記載の記憶装
置。
【図面の簡単な説明】
【図1】複数のプログラム可能論理セルを有するプログ
ラム可能ゲート・アレイの例を示す図である。
【図2】その中に配列された複数のプログラム可能論理
セルを有するプログラム可能ゲート・アレイと、プログ
ラム可能論理セル間を接続する相互接続網の例の一部を
示す図である。
【図3】図2に示す1つのプログラム可能論理セルとそ
れを囲む相互接続網との間の接続を示す図である。
【図4】図3で使用している記号の凡例を示す図であ
る。
【図5】複数のプログラム可能要素を有する単一の論理
セルを示す図である。
【図6】本発明の方法のステップを高水準で示すフロー
・チャートである。
【図7】図6に示す検証ステップ300の詳細を示すフ
ロー・チャートである。
【図8】図6に示すAPRステップ500の詳細を示す
フロー・チャートである。
【図9】図6に示すビット列生成ステップ600の詳細
を示すフロー・チャートである。
【図10】図5に示す論理セルのコード化方式の例を示
す図である。
【図11】入出力セルの例を示す図である。
【図12】図11の入出力セルに対応するコード化方式
の例を示す図である。
【符号の説明】
10 プログラム可能ゲート・アレイ 12 論理セル 14 入出力ピン 16 セクタ 18 論理セル 26 セル・アクセス点 28 直接接続部 42 プログラム可能入力マルチプレクサ 44 プログラム可能入力インバータ 46 論理ゲート 48 プログラム可能マルチプレクサ 50 出力マルチプレクサ 54 制御マルチプレクサ 58 トライステート・インバータ 60 直接転送マルチプレクサ 70 I/Oインタフェース
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI H01L 21/82 T (72)発明者 エリック・アーネスト・ミルハム アメリカ合衆国05401 バーモント州バ ーリントンノース・アベニュー 33 ナ ンバー4 (72)発明者 ガルサン・イェーサー アメリカ合衆国05403 バーモント州サ ウス・バーリントン ストーンヘッジ・ ドライブ ディー16 (56)参考文献 特開 平6−232259(JP,A) 特開 平8−237110(JP,A) 特開 平9−246954(JP,A) 特開 平9−127201(JP,A) (58)調査した分野(Int.Cl.7,DB名) H01L 21/82 G06F 17/50 H03K 19/177

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】相互接続網によって接続可能で、複数のプ
    ログラム可能要素を含む複数のプログラム可能論理セル
    を含むプログラム可能ゲート・アレイを構成する方法で
    あって、 論理セルのプログラム可能要素の論理状態情報が別々に
    識別可能であることを特徴とする、所望の論理セル構成
    の論理表現を提供するステップと、 前記論理表現を論理セルの物理表現と組み合わせるステ
    ップと、 組み合わされた表現の自動的な配置および経路指定を行
    い、配置され経路指定されたプログラム可能ゲート・ア
    レイ表現を形成するステップとを含む方法。
  2. 【請求項2】前記配置され経路指定されたプログラム可
    能ゲート・アレイ表現からプログラミング・ビット列を
    生成するステップをさらに含む、請求項1に記載の方
    法。
  3. 【請求項3】前記論理表現が前記物理表現と整合してい
    ることを検証するステップをさらに含む、請求項1また
    は2に記載の方法。
  4. 【請求項4】前記検証するステップが、 特定の論理表現と特定の構造定義と特定の論理関数とで
    表して物理ライブラリ要素を定義するステップと、 ライブラリ要素定義に基づいて論理モデルを作成するス
    テップと、 論理モデルの正確さを検証するステップと、 汎用論理セル物理モデルに基づいて1組のテスト・パタ
    ーンを生成するステップと、 論理表現に基づいて選択されたテスト・パターンを、検
    証した論理モデルに適用し、テスト出力値を生成するス
    テップと、 テスト出力値を期待出力値と比較するステップとを含む
    ことを特徴とする、請求項3に記載の方法。
  5. 【請求項5】自動的な配置と経路指定を行うステップ
    が、組み合わされた表現を検査して2つの独立した論理
    関数を単一の論理セル内に配置することができるかどう
    かを判断するステップを含むことを特徴とする、請求項
    1に記載の方法。
  6. 【請求項6】論理表現が所定の順序で配置された十六進
    コードのグループを含み、各十六進コードが1つまたは
    複数のプログラム可能要素の論理状態を記述することを
    特徴とする、請求項1に記載の方法。
  7. 【請求項7】前記ビット列を生成するステップが、配置
    され経路指定されたプログラム可能ゲート・アレイ表現
    が所定の組合せ規則と整合していることを確認するステ
    ップを含むことを特徴とする、請求項2に記載の方法。
JP15481997A 1996-06-14 1997-06-12 プログラム可能アレイにおける論理セル構成の決定方法 Expired - Fee Related JP3217991B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66381996A 1996-06-14 1996-06-14
US08/663819 1996-06-14

Publications (2)

Publication Number Publication Date
JPH1070193A JPH1070193A (ja) 1998-03-10
JP3217991B2 true JP3217991B2 (ja) 2001-10-15

Family

ID=24663382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15481997A Expired - Fee Related JP3217991B2 (ja) 1996-06-14 1997-06-12 プログラム可能アレイにおける論理セル構成の決定方法

Country Status (1)

Country Link
JP (1) JP3217991B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131909B1 (en) 2007-09-19 2012-03-06 Agate Logic, Inc. System and method of signal processing engines with programmable logic fabric
US7970979B1 (en) * 2007-09-19 2011-06-28 Agate Logic, Inc. System and method of configurable bus-based dedicated connection circuits
US20110299346A1 (en) * 2010-06-03 2011-12-08 Ryan Fung Apparatus for source-synchronous information transfer and associated methods

Also Published As

Publication number Publication date
JPH1070193A (ja) 1998-03-10

Similar Documents

Publication Publication Date Title
US5764954A (en) Method and system for optimizing a critical path in a field programmable gate array configuration
JP3414770B2 (ja) マルチプレクサ相互接続を用いた高密度な消去可能型プログラマブル論理デバイスのアーキテクチャ
JP3477313B2 (ja) プログラマブル・アレイ、プログラマブル・アレイを構成する方法及びシステム
US6487709B1 (en) Run-time routing for programmable logic devices
US6195788B1 (en) Mapping heterogeneous logic elements in a programmable logic device
US5224056A (en) Logic placement using positionally asymmetrical partitioning algorithm
US6779158B2 (en) Digital logic optimization using selection operators
US5699283A (en) Logic emulation system
CN1716568A (zh) 用于掩膜可编程逻辑器件的开关方法
US6938236B1 (en) Method of creating a mask-programmed logic device from a pre-existing circuit design
Chang et al. Postlayout logic restructuring using alternative wires
KR100274855B1 (ko) 반도체 집적회로의 설계방법 및 자동설계장치
US4742471A (en) Method for improving wirability of master-image DCVS chips
US6791355B2 (en) Spare cell architecture for fixing design errors in manufactured integrated circuits
US6993731B2 (en) Optimization of digital designs
JP3217991B2 (ja) プログラム可能アレイにおける論理セル構成の決定方法
US6357035B1 (en) Method and apparatus for the automated generation of programmable interconnect matrices
WO2002103757A2 (en) Digital circuits with selection operators
WO2003023581A2 (en) Universal programmable delay cell
EP0486248A2 (en) Logic duplication method for reducing circuit size and delay time
US7178117B1 (en) Apparatus and method for RTL based full chip modeling of a programmable logic device
JP2872216B1 (ja) マクロの設計方法
Crow Variable ordering for robdd-based fpga logic synthesis
GB2457126A (en) Inclusion of spare interconnections and logic gates to change integrated circuit design
US7426665B1 (en) Tileable field-programmable gate array architecture

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees