(57)【要約】本発明によるプログラマブル・ロジック・アレイ（ＰＬＡ）は、論理機能を実施し且つ将来の再プログラミングのための融通性を維持しながらプログラム可能な接続の最大量の間引き達成する。更に、本発明によるＰＬＡは、どんな機能がプログラムされても、装置の性能特性が維持されるように構築できる。更に、本発明のＰＬＡは、規則的なアレイ構造を必要としない。
2004512710.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の記述を受け取り、
その記述された機能を実施するのに必要なプログラム可能な接続のみを含むＰＬＡモデルを準備し、
他の機能のプログラミングを許すために上記ＰＬＡモデルにプログラム可能な接続を選択的に追加する、
という段階を備えた方法。
【請求項２】
プログラム可能な接続を選択的に追加する上記段階は、記述された機能でプログラムされたＰＬＡがある性能特性を有し、そして他の機能でプログラムされたＰＬＡが同じ性能特性を有するようにプログラム可能な接続を追加することを含む請求項１に記載の方法。
【請求項３】
上記ＰＬＡモデルは、非規則的な物理的構造を有する請求項１に記載の方法。
【請求項４】
最小性能目標を受け取り、
プログラム可能な接続を選択的に追加した後に、ＰＬＡモデルをテストして、それが上記最小性能目標を満足するか又はそれを越えるか決定し、
ＰＬＡ設計が上記最小性能目標を越える場合は、ＰＬＡモデルが上記最小性能目標を丁度満足するか又は最小限越えるだけであるまで更に別のプログラム可能な接続を選択的に追加する、
という段階を更に備えた請求項１に記載の方法。
【請求項５】
上記受け取る段階は、機能についての複数の記述を受け取ることを含み、各記述は、ＰＬＡにより独立して実施されるべきものであり、
上記準備する段階は、上記記述の記述された機能を実施するのに必要なプログラム可能な接続のみを含むＰＬＡモデルを準備することを含む請求項１に記載の方法。
【請求項６】
上記記述を評価して、アレイ前又はアレイ後ロジックが有用であるかどうか決定する段階を更に備えた請求項１に記載の方法。
【請求項７】
プログラム可能な接続を選択的に追加する上記段階は、共用及び予備の項に対してプログラム可能な接続を追加することを含む請求項１に記載の方法。
【請求項８】
プログラム可能な接続を選択的に追加する上記段階は、補数項に対してプログラム可能な接続を追加することを含む請求項１に記載の方法。
【請求項９】
プログラム可能な接続を選択的に追加する上記段階は、積の項の補数部分に対してプログラム可能な接続を追加することを含む請求項１に記載の方法。
【請求項１０】
上記プログラム可能な接続の各々は、記憶装置及び論理ゲートを含み、そして
上記ＰＬＡは、ゲートツリーで形成された積の項及び和の項を含む請求項１に記載の方法。
【請求項１１】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の記述を受け取り、
間引かれたアレイをもつＰＬＡモデルを準備し、
他の機能のプログラミングを許すために上記ＰＬＡモデルのアレイを選択的に再実装する、
という段階を備えた方法。
【請求項１２】
上記間引かれたアレイは、ＡＮＤアレイである請求項１１に記載の方法。
【請求項１３】
上記間引かれたアレイは、ＯＲアレイである請求項１１に記載の方法。
【請求項１４】
上記アレイは、非規則的な物理的構造体である請求項１１に記載の方法。
【請求項１５】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の記述を受け取り、
記述された機能を受け入れるサイズにされそしてプログラム可能な接続で完全に実装されたＰＬＡモデルを準備し、
上記記述された機能を実施するのに必要でない全てのプログラム可能な接続をＰＬＡモデルから除去し、
ＰＬＡモデルにプログラム可能な接続を選択的に追加し、そして
ＰＬＡモデルに基づいてＰＬＡを構築する、
という段階を備えた方法。
【請求項１６】
選択的に追加する上記段階は、共用及び予備の積の項に対してＰＬＡモデルにプログラム可能な接続を選択的に追加することを含む請求項１５に記載の方法。
【請求項１７】
上記構築する段階は、非規則的な物理的構造を有するＰＬＡを構築することを含む請求項１５に記載の方法。
【請求項１８】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の複数の記述を受け取り、
上記記述の記述された機能を実施するのに必要なプログラム可能な接続のみを含むＰＬＡモデルを準備し、そして
他の機能のプログラミングを許すためにＰＬＡモデルにプログラム可能な接続を選択的に追加する、
という段階を備えた方法。
【請求項１９】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の複数の記述を受け取り、
上記複数の記述における最も大きな記述された機能を受け入れるサイズにされたＰＬＡモデルを準備し、そして
上記記述の記述された機能を実施するのに必要でないプログラム可能な接続をＰＬＡモデルから除去する、
という段階を備えた方法。
【請求項２０】
他の機能のプログラミングを許すためにＰＬＡモデルにプログラム可能な接続を選択的に追加するという段階を更に含む請求項１９に記載の方法。
【請求項２１】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成する方法において、
ＰＬＡにより実施されるべき機能の記述を受け取り、
ＰＬＡの速度を向上させるか又はサイズを減少するためにアレイ前ロジックが有用であるかアレイ後ロジックが有用であるかを決定し、そして
上記決定段階に基づいてＰＬＡモデルを準備する、
という段階を備えた方法。
【請求項２２】
上記準備段階は、更に、少なくとも部分的に間引かれたアレイをもつＰＬＡモデルを準備することを含む請求項２１に記載の方法。
【請求項２３】
上記ＰＬＡモデルに基づいてＰＬＡを構築する段階を更に備えた請求項２１に記載の方法。
【請求項２４】
非規則的構造を有するプログラマブル・ロジック・アレイ（ＰＬＡ）を備えた集積回路。
【請求項２５】
上記ＰＬＡは、そのＰＬＡにより実施されるべきある機能を実施するのに必要なプログラム可能な接続しか含まないように間引かれている請求項２４に記載の集積回路。
【請求項２６】
上記ＰＬＡは、
そのＰＬＡにより実施されるべきある既知の機能を実施するのに必要なプログラム可能な接続と、
他の機能の将来のプログラミングを受け入れるために戦略的に選択されたが、プログラム可能な接続の完全実装状態には至らないようなプログラム可能な接続と、
を備えた請求項２４に記載の集積回路。
【請求項２７】
上記ＰＬＡは、
記憶装置及び論理ゲートを含むプログラム可能な接続と、
ゲートツリーで形成された積の項及び和の項と、
を備えた請求項２４に記載の集積回路。
【請求項２８】
上記ＰＬＡは、一対の記憶装置及びマルチプレクサを含むプログラム可能な接続を備えた請求項２４に記載の集積回路。
【請求項２９】
上記ＰＬＡは、
一対の記憶装置及びマルチプレクサを各々含むプログラム可能な接続を有するＡＮＤアレイと、
１つの記憶装置及び論理ゲートだけを各々含むプログラム可能な接続を有するＯＲアレイと、
を備えた請求項２４に記載の集積回路。
【請求項３０】
上記ＰＬＡは、再プログラミングに対してその性能特性を維持するように構成された請求項２４に記載の集積回路。
【請求項３１】
ある既知の機能を実施することが必要なところにしかプログラム可能な接続を含まないように間引かれそして他の機能の将来のプログラミングを受け入れるために選択的に最小限再実装されるプログラマブル・ロジック・アレイ（ＰＬＡ）を備えた集積回路。
【請求項３２】
既知の機能でプログラムされたＰＬＡは、ある性能特性を有し、そして他の機能でプログラムされたＰＬＡは、同じ性能特性を有する請求項３１に記載の集積回路。
【請求項３３】
上記プログラム可能な接続は、記憶装置及び論理ゲートを含み、そして
上記ＰＬＡは、ゲートツリーで形成された積の項及び和の項を含む請求項３１に記載の集積回路。
【請求項３４】
上記記憶装置は、ラッチ又はフリップ−フロップの１つであり、そして
上記論理ゲートは、ＯＲゲートである請求項３３に記載の集積回路。
【請求項３５】
上記記憶装置は、ラッチ又はフリップ−フロップの１つであり、そして
上記論理ゲートは、マルチプレクサである請求項３３に記載の集積回路。
【請求項３６】
上記プログラム可能な接続は、一対の記憶装置及びマルチプレクサを含む請求項３１に記載の集積回路。
【請求項３７】
上記ＰＬＡは、
第１形式のプログラム可能な接続をもつＡＮＤアレイと、
第２形式のプログラム可能な接続をもつＯＲアレイと、
を備えた請求項３１に記載の集積回路。
【請求項３８】
上記ＰＬＡは、
一対の記憶装置及びマルチプレクサを各々含むプログラム可能な接続を有するＡＮＤアレイと、
１つの記憶装置及び論理ゲートのみを各々含むプログラム可能な接続を有するＯＲアレイと、
を備えた請求項３１に記載の集積回路。
【請求項３９】
上記ＰＬＡは、共用項、予備項及び補数項に対するプログラム可能な接続を含む請求項３１に記載の集積回路。
【請求項４０】
ある既知の機能を実施することが必要なところにしかプログラム可能な接続を含まずそして他の機能の将来のプログラミングを受け入れるために選択的に最小限再実装される間引かれたアレイを有するプログラマブル・ロジック・アレイ（ＰＬＡ）を備えた集積回路。
【請求項４１】
上記間引かれたアレイは、ＡＮＤアレイである請求項４０に記載の集積回路。
【請求項４２】
上記間引かれたアレイは、ＯＲアレイである請求項４０に記載の集積回路。
【請求項４３】
記憶装置及び論理ゲートを含むプログラム可能な接続と、
ゲートツリーを含む積の項と、
を備えたプログラマブル・ロジック・アレイ。
【請求項４４】
上記記憶装置は、ラッチ又はフリップ−フロップの１つであり、そして
上記論理ゲートは、マルチプレクサ又はＯＲゲートの１つである請求項４３に記載のプログラマブル・ロジック・アレイ。
【請求項４５】
一対の記憶装置及びマルチプレクサを含むプログラム可能な接続を備えたプログラマブル・ロジック・アレイ。
【請求項４６】
ＡＮＤツリーで形成された積の項と、
ＯＲツリーで形成された和の項と、
を更に備えた請求項４５に記載のプログラマブル・ロジック・アレイ。
【請求項４７】
第１形式のプログラム可能な接続を含むＡＮＤアレイと、
第２形式のプログラム可能な接続を含むＯＲアレイと、
を備えたプログラマブル・ロジック・アレイ（ＰＬＡ）。
【請求項４８】
上記第１形式のプログラム可能な接続は、一対の記憶装置及びマルチプレクサを含み、そして
上記第２形式のプログラム可能な接続は、１つの記憶装置及び論理ゲートのみを含む請求項４７に記載のＰＬＡ。
【請求項４９】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成するのに使用される命令であって、コンピュータにより実行されるときに、コンピュータが、
ＰＬＡにより実施されるべき機能の記述を受け取り、
その記述された機能を実施するのに必要なプログラム可能な接続のみを含むＰＬＡモデルを準備し、
他の機能のプログラミングを許すために上記ＰＬＡモデルにプログラム可能な接続を選択的に追加する、
という段階を実行するようにさせる命令が記憶されたコンピュータ読み取り可能な記憶媒体。
【請求項５０】
プログラマブル・ロジック・アレイ（ＰＬＡ）を形成するのに使用される命令であって、コンピュータにより実行されるときに、コンピュータが、
ＰＬＡにより実施されるべき機能の記述を受け取り、
間引かれたアレイをもつＰＬＡモデルを準備し、
他の機能のプログラミングを許すために上記ＰＬＡモデルのアレイを選択的に再実装する、
という段階を実行するようにさせる命令が記憶されたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【関連出願の相互参照】
本出願は、２０００年９月８日に出願された米国仮出願第６０／２３１，０５９号の優先権を請求するものである。本出願は、参考としてここに取り上げる「Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ａｒｒａｙ Ｅｍｂｅｄｄｅｄ ｉｎ Ｍａｓｋ−Ｐｒｏｇｒａｍｍｅｄ ＡＳＩＣ」と題する２０００年２月２５日に出願された米国特許出願第０９／５１２，７８３号に関連したものである。
【０００２】
【技術分野】
本発明は、一般に、プログラマブル・ロジック・アレイ（ＰＬＡ）に係り、より詳細には、ＰＬＡの速度及びサイズを最小にすることに係る。
【０００３】
【背景技術】
プログラマブル・ロジック・アレイ（ＰＬＡ）は、半導体産業において長年にわたって使用されている。それらは、本質的に、種々の論理機能を与えるようにプログラムすることのできる一般的な電子回路である。ＰＬＡは、この技術で良く理解されているが、以下に簡単に説明する。
【０００４】
ＰＬＡでは、実施されるべき論理機能が、積の項（ＡＮＤ項）と和の項（ＯＲ項）で表わされる。各々の積の項は、ＰＬＡへの入力のサブセットのＡＮＤと、それらの補数とを形成するようにプログラムできる回路により発生される。積の項は、次いで、付加的なプログラマブル回路によって加算され即ちオアされる。
【０００５】
より詳細には、図１の一般化された回路図に示されたように、ＰＬＡは、一般に、入力ラインが積のラインに直交する通常のアレイの形態で構成される。図１は、ＰＡＬとして知られているＰＬＡの一形式を示す。図１において、ＰＡＬ１００は、入力１０２、Ａ−Ｄを含み、各入力及びその補数がライン１０６を経てプログラマブルＡＮＤアレイ１０４へ入力される。ＡＮＤライン１０８は、ライン１０６に直交して形成される。入力項ライン１０６とＡＮＤライン１０８との間の選択された交点がプログラムされたときには、「ＡＮＤ項」又は「積の項」１１０が形成される。積の項１１０は、次いで、ＯＲゲート１１２へ供給され、「和の項」１１４を形成する。
【０００６】
この技術で理解されているように、積の項は、ワイヤードＯＲ機構でしばしば実施され、この場合、ライン１０６及び１０８の各交点にプログラム可能なトランジスタ１１５が使用される。図２の一般化された回路図に示されたように、プルアップ１１６も使用される。プルアップ１１６は、図２では、抵抗器として示されているが、バイアス型Ｐチャンネルトランジスタで受動的プルアップがしばしば実施される。図２の構造を使用するときには、図１に示されたＡＮＤゲート１０９は、実際には物理的に存在せず、むしろ、図１では、ＡＮＤゲート１０９は、実行される機能を論理的に表わすことに注意されたい。
【０００７】
第２形式のＰＬＡ構造体（「全ＰＬＡ」とも称される）が図３に示されており、これは、プログラム可能なＡＮＤアレイ１０４及びプログラム可能なＯＲアレイ１１７の両方を有している。換言すれば、積の項及び和の項の両方をプログラムすることができる。従って、図３のデバイスは、入力、出力及び積の項の数のみによって制限されるいかなるの組合せ論理のセットも実施できる。
【０００８】
図１のデバイスに対し、図３のデバイスは、速度をある程度犠牲にするが、大きなプログラミングの融通性を有し、状態マシンを実施するのに良好である。又、図１のデバイスとは異なり、図３のデバイスでは、各積の項を、全ての和の項によって使用することができ、即ちそれらの間で共用することができる。更に、図４に示すように、あるＰＬＡデバイスは、積の項の選択されたグループが、和の項の選択されたグループ間で共用されるＯＲアレイを形成する。
【０００９】
図１及び３のものを含むＰＬＡ構造体の融通性は、１つ以上の出力にフリップ−フロップ１１８（図３に示す）を追加して、汎用のシーケンシャル回路を形成することにより、更に改善することができる。図５に示すように、ＩＰＴのような反転された積の項も、ＡＮＤアレイに直接フィードバックすることができる。ここで使用する補数項は、この技術において通常そうであるように、「！」又は上にバーを付して示される。図５ａに示すように、多数の積の項が反転されそしてフィードバックされるときには、ＮＡＮＤ−ＮＡＮＤ（又はＮＯＲ−ＮＯＲ）アレイとして知られているものを形成する。
【００１０】
又、多数のＰＬＡデバイスは、図６に示すようなアレイ後論理構造体も含む。このような構造体に最も頻繁に必要とされるのは、論理関数の補数を取ることであり、さもなければ、関数の補数を取るために、ドモルガンの法則（！（ＡＢ）＝（！Ａ＋！Ｂ））に依存せねばならず、これは、通常、プログラムする必要がある以上に多数の積の項を生じさせる。ＸＯＲゲート１２０は、このようなアレイ後構造体として使用される。反転は、（１）複素関数を表わす和の項（ＸＯＲゲート１２０１に関して）、（２）単一の積の項（ＸＯＲゲート１２０２に関して）又は（３）論理「１」（Ｖｄｄ）又は「０」（Ｖｓｓ）にプログラムすることのできる単一の論理値（ＸＯＲゲート１２０３に関して）によって制御することができる。
【００１１】
同様に、アレイ前論理構造体１２２も、図７に示すようにしばしば使用される。このようなアレイ前論理構造体は、アキュムレータのような演算機能を遂行するのにしばしば有用である。アレイ前及びアレイ後の両論理構造体は、必要とされる積の項の数を減少し、ひいては、小型で且つ高速なＰＬＡデバイスの使用を許すために使用される。
【００１２】
図１ないし７を参照して述べた従来のＰＬＡ構造体の各々は、通常、個別デバイスであり、そしてこの技術で知られたように、特殊なプログラミングデバイス又はイン・システムのいずれかを使用してユーザによりプログラム及び再プログラムすることができる。図１ないし７から、この技術において明らかなように、多数の形式のＰＬＡを入手することができ、上述したものは、ほんの一例に過ぎない。
【００１３】
アレイ前及びアレイ後構造体の上記説明で言及したように、占有スペース及び速度の理由で、入手可能な最小のＰＬＡデバイスを使用するのが一般に望ましい。このため、「ＰＬＡ折り返し（ｆｏｌｄｉｎｇ）」について研究がなされ、１９９２年のフェリーラ及びソング著の「Ａｃｈｉｅｖｉｎｇ Ｏｐｔｉｍａｌｉｔｙ ｆｏｒ Ｇａｔｅ Ｍａｔｒｉｘ Ｌａｙｏｕｔ ａｎｄ ＰＬＡ Ｆｏｌｄｉｎｇ： ａ Ｇｒａｐｈ Ｔｈｅｏｒｅｔｉｃ Ａｐｐｒｏａｃｈ」に説明されている。一般に、ＰＬＡ折り返しとは、或るＰＬＡが与えられると、占有スペースの小さい同等のＰＬＡを形成するように試みる技術である。例えば、ＰＬＡによって実施されるべき次の論理関数について考える。
【数１】
2004512710.tif 000003
これらの関数は、図８において「ドット」がプログラムされた接続を表わす従来のＰＬＡで実施されて示されている。一連のマトリクス操作及び行の再配列による折り返しの結果が図９に示されている。この例の更なる詳細は、フェリーラ及びソング（上述した）において見ることができる。図９に示すように、折り返されたＰＬＡは、非常にコンパクトであり、積の項のグループをタイル張りすることによりできるだけ著しい物理的規則性を保持している。
【００１４】
更に、このＰＬＡ折り返し技術は、実用的な用途をあまり得ていない。折り返し技術を効果的に使用するためには、エンジニアが、プログラムされるべき関数を比較的確実に知らねばならない。更に、機能に対して変更を行う自由度は、「折り目」によって甚だしく制限される。更に、ＰＬＡは、通常、固定の特性をもつ固定サイズの個別デバイス（例えば、ＰＬＤ）として入手できるに過ぎない。従って、折り返し技術は、理論的には有用であるが、それらを利用したデバイスは本質的に皆無である。
【００１５】
【発明の開示】
本発明によるＰＬＡは、ＰＬＡによって実施されるべき初期論理を知った後に設計される。このような論理が分かると、その論理に対して特にサイズが決められたＰＬＡがモデリングされる。次いで、不必要なプログラム可能な接続が除去され、所与の機能を実施するための比較的小さいが高速なＰＬＡが形成される。次いで、将来の再プログラミングを許すために付加的なプログラム可能な接続がモデルに再追加される。最終的に、モデリングされたＰＬＡが構成される。
【００１６】
その結果、論理機能を実施し且つ将来の再プログラミングのための融通性を維持しながら、最大量の間引き（ｄｅｐｏｐｕｌａｔｉｏｎ）を達成するＰＬＡが得られる。更に、本発明によるＰＬＡは、どんな機能がプログラムされようと、デバイスに対する性能特性が同一に保たれるように構築することができる。
【００１７】
本発明によるＰＬＡは、規則的なアレイ構造を必要としない。それ故、このようなＰＬＡは、特に、大きな回路において他の論理と一体化されるときに、場所やルートを考慮する上で融通性がある。
【００１８】
【発明を実施するための最良の形態】
以下、添付図面を参照して、本発明の特定の実施形態を説明する。
ＰＬＡ構造体の美しさは、いかなる論理機能も構造体のサイズ内に適合するように実施できることであり、ここで、サイズは、積の項（ｐ項）、和の項、入力、登録された出力及びフィードバック項の数によって決定される。ＰＬＡの融通性及びプログラム可能性は、完全に検証されない回路又は将来変更の必要がある回路について特に望まれるものである。しかしながら、ＰＬＡの一般性は、考えられる全ての全体的機能をサポートするための物理的経路及びゲートを構成しなければならないので、ＰＬＡのサイズを著しく大きなものにする。実際に、プログラムされるＰＬＡは、通常、使用される論理機能の僅かな割合に過ぎない。従来のＰＬＡが実施する論理に対しそのＰＬＡのサイズが大きいのに加えて、駆動回路の付加的な容量性負荷と、アレイの全サイズが大きいことによる長い駆動ラインのキャパシタンスとによって回路の速度も遅くなる。
【００１９】
しかし、ＰＬＡを物理的に構成する前にＰＬＡの機能が分かる場合には、特定の機能を遂行する必要のないＰＬＡの部分を排除できるような方法を使用することができる。この「間引き（ｄｅｐｏｐｕｌａｔｉｏｎ）」が作用する状態でも、ある量の付加的な積の項の能力がアレイに含まれる場合には、変更や改善を依然として実施することができる。初期機能が分かった後に構築されたＰＬＡの一例が、参考としてここに取り上げる「Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ａｒｒａｙ Ｅｍｂｅｄｄｅｄ ｉｎ Ｍａｓｋ−Ｐｒｏｇｒａｍｍｅｄ ＡＳＩＣ」と題する２０００年２月２５日出願の特許出願第０９／５１２，７９３号に見ることができ、これは、他の場合なら再プログラム可能でないＡＳＩＣにおいて実施される再プログラム可能なＰＬＡについて説明している。
【００２０】
従って、本発明によれば、ＰＬＡの選択されたプログラム可能な接続（例えば、交点）が除去されて、ＰＬＡを「間引き」し、スペースを最小にすると共に、ＰＬＡの速度を最大にする。除去される接続は、ＰＬＡに最初にプログラムされる機能によって使用されない接続である。しかし、最初に意図されたものとは異なる機能でアレイを将来再プログラミングするのを許すために、最初に必要でないあるプログラム可能な接続がアレイに選択的に配置される。
【００２１】
間引き（ｄｅｐｏｐｕｌａｔｉｏｎ）
図１０は、「完全実装された（ｐｏｐｕｌａｔｅｄ）ＰＬＡ」２００を示す。入力ライン２０６とＡＮＤライン２０８との間のＡＮＤアレイ２０４における各交点は、ここではコアセル２０３として示されたプログラム可能な接続を含み、これは、以下で詳細に説明されるもので、［Ｑ］とマークされている。同様に、ＯＲアレイ２１７における各交点も、同様のコアセル２０３を有する。バッファ２２０は、ある実施形態では、種々の信号を駆動するために使用される。しかし、潜在的なプログラム可能な信号の数により、各列に１つのバッファでは充分でなく、それ故、負荷を充分に駆動するにはバッファツリーが必要となる。
【００２２】
ＰＬＡ２００は、ユーザにより定義された機能を受け入れるように特有に設計及び構成される。これを行うために、ユーザは、機能の記述をＨＤＬ又は他の同様の言語で与える。この記述は、ある実施形態では、ソフトウェア（例えば、ＰＬＡコンパイラー）によって分析され、機能を受け入れるサイズにされたＰＬＡが生じる。換言すれば、論理を受け入れるための最小数の入力、出力（和の項）及びｐ項を有する完全にプログラム可能なＰＬＡが設計される。次いで、再プログラミング変更を取り扱うための僅かな割合の付加的な容量（少量の付加的なｐ項又は和の項）が追加され、図１０のＰＬＡ構造体の設計が生じる。
【００２３】
図１１は、間引きされたＯＲアレイ２１７を有するように再設計されたＰＬＡ２００を示し、これは、ここでは「中程度実装されたＰＬＡ」とも称される。プログラム可能な接続（コアセル２０３）の多くは、プログラム可能な接続がその位置にないことを示す交点の「Ｘ」で示されたように除去（間引き）されている。間引きされるべき交点は、ＰＬＡにより最初に実施されるべき機能の記述（ユーザにより与えられた）に基づいて選択される。ユーザが定義した機能により要求されない交点は、除去される。更に、積の項（ｐ項）が、ＰＴ１及びＰＴ２のようなＯＲゲートによって共用されないところでは、プログラム可能な接続が除去され、そして固定接続又はハードワイヤード接続２２２がそれに代わって挿入される。プログラム可能な全ての接続が除去されそして固定接続に置き換えられた完全に間引きされたＯＲアレイは、従来のＰＡＬデバイスに見られるような固定のＯＲアレイ構造体を生じることに注意されたい。
【００２４】
プログラム可能な接続が除去されると、ＰＬＡのサイズが減少され、即ちプログラム可能な接続のためのデバイスが除去されるだけでなく、ＯＲツリー２１２（以下で詳細に述べる）もサイズが減少される。その結果、デバイスの全体的な速度が高くなる。
【００２５】
しかし、あるプログラム可能な接続は、図１１において戦略的に保持されている。例えば、積の項が、ＰＴ３のような２つ以上のＯＲゲート間で共用されるところでは、使用される交点にプログラム可能な接続が残され、即ちいったん共用されたｐ項がその後に変更されて、もはや和の項の一部分でなくなる場合には、その和の項からプログラム可能に切断することができる。更に、プログラム可能な接続は、将来のプログラミングを受け入れるために、ＰＴ４のような予備のｐ項に対しＯＲアレイに残される。予備のｐ項は、一般に、ユーザの初期機能では使用されず、その後のプログラミングの融通性を付加するために設けられる。
【００２６】
図１２は、間引きされたＯＲアレイ２１７及び間引きされたＡＮＤアレイ２０４の両方を有するように更に再設計されたＰＬＡ２００を示し、これは、「最小限実装されたＰＬＡ」とも称される。図１０及び１１の構造体と比較すると、図１２の構成は、最も小さく且つ最も高速なＰＬＡを形成するが、他の２つの構造体に見られる融通性はある程度犠牲にする。この場合も、間引きは、ＰＬＡのユーザにより定義されるようにＰＬＡにより初期に実施されるべき機能に基づいて決定され、即ち実施されるべき初期論理機能に入力変数が実際に使用されるところ以外ではプログラム可能な接続が除去される。次いで、戦略の組合せに基づいてアレイが実際に構成される前に、選択された交点が再実装される。
【００２７】
ＡＮＤアレイを選択的に再実装する１つの戦略は、入力変数がフリップ−フロップ２１８又は他のレジスタからフィードバックされる全ての列２２４、２２６に完全実装状態を維持することである（例えば、逐次論理機能を構成するのに使用される状態ビット又は他の登録された信号）。例えば、逐次論理においては、出力を変更して、波形のエッジが異なる状態で生じるようにそのエッジを変更するような将来の変更が何回も生じる。このような変更は、フィードバックビットに対して異なる論理条件を選択することにより容易に達成できるのがほとんどであるが、既存のｐ項でそのようにするには、必要なフィードバック信号を実装しなければならない。
【００２８】
別の戦略は、ある入力変数（ある列）を完全に実装しなければならないことをＰＬＡユーザが特定するのを許すことである。他の実施形態では、ユーザは、特定の出力（和の項）に接続されるあるｐ項又は全てのｐ項に対しある入力変数を完全に実装することを特定してもよい。
【００２９】
更に、ＰＴ４のような予備のｐ項が完全に実装される。プログラムされるべき将来の機能は未知であるから、予備のｐ項の完全なプログラム可能性を許すのが最良である。
【００３０】
ＯＲアレイを選択的に再実装する戦略は、中程度に実装されたＰＬＡについて述べたものと同様である。各アレイを選択的に再実装する他の戦略を他の実施形態に使用してもよく、ここに述べるものは、例示に過ぎない。
【００３１】
要約すれば、本発明によれば、ＰＬＡにおいて実施されるべき機能の記述が、ＰＬＡコンパイラーのようなプログラムにより受け取られる。この記述が分析され、そして完全実装されたＰＬＡがモデリングされる。次いで、そのモデルにおいて全ての不必要なプログラム可能な接続を除去するように、ＯＲアレイ、ＡＮＤアレイ又はその両方が間引きされる。戦略的に選択された交点は、次いで、将来の再プログラミングを許すためにモデル内においてプログラム可能な接続で再実装される。最終的に、ＰＬＡは、モデリングされたＰＬＡに基づいて物理的に構成される。
【００３２】
コアセル
上述したように、コアセル２０３は、プログラム可能な接続である。コアセルは、本発明によるＰＬＡの１つの実施形態では、図２を参照して説明した従来のＰＬＡに非常に良く似ており、例えば、多数のトランジスタをＡＮＤラインに接続することによりワイヤードＯＲ機構で実施された積の項に良く似ている。換言すれば、各コアセルは、本質的に、プログラム可能なトランジスタである。しかしながら、このワイヤードＯＲ解決策は、通常、規則的なアレイ、即ち同じ長さ及び負荷をもつワイヤードＯＲラインを有するアレイを伴うＰＬＡ構造を必要とする。というのは、センス増幅器が通常ＡＮＤラインに接続されて信号を増幅するからである。ワイヤードＯＲラインが全て同じ長さ及び同じ負荷でない場合には、センス増幅器も、当然、異なるようにしなければならず、複雑な設計上の問題を招く。
【００３３】
従って、本発明の他の実施形態では、ｐ項が、従来のワイヤードＯＲ構造体とは異なるように実施される。例えば、図１３は、コアセル２０３が積の項をプログラムするＡＮＤアレイの一部分を示す。図１３ａに示すように、２つのラッチ又は２つのフリップフロップを使用して、このようなコアセル２０３を形成することができる。説明上、コアセルにおけるこれらのデバイスは、ここでは、単にラッチとして示すが、種々の実施形態においてはフリップ−フロップでもよいことを理解されたい。コアセル２０３は、ラッチ２３０及びラッチ２３２を含む。各ラッチ２３０、２３２は、ＭＵＸ２３６に接続される。ＭＵＸ２３６へのセレクトライン２０６は、ＡＮＤアレイの入力である。ＭＵＸ出力２３８は、多入力ＡＮＤゲート２１４（図１３）への入力であり、その出力は積の項を形成する。ＡＮＤゲート２１４は、公知技術で明らかなように、ＡＮＤゲートのツリーを使用して形成することができる。本発明の説明では、単一のＡＮＤラインがＡＮＤゲートへ延びるように示されているが、図１３（及び図１４）に示すような実施形態では、実際に、多数のラインがＡＮＤゲート２１４に接続されることを理解されたい。
【００３４】
各ラッチ２３０、２３２は、コアセル２０３がライン２０６を経て入力信号を受信した際にいかに振舞うかを指示する値を記憶するようにプログラムされる。プログラミングは、テーブル１に基づいて行われる。
2004512710.tif 000004
【００３５】
従って、ラッチ２３０が論理１を記憶し、そしてラッチ２３２が論理０を記憶するときには、ライン２０６の信号入力がライン２３８の出力となる。ラッチ２３０が論理０を記憶し、そしてラッチ２３２が論理１を記憶するときには、ライン２０６の信号入力がライン２３８において反転される。両ラッチ２３０及び２３２が論理１を記憶するときには、「ドント・ケア」状態、即ちライン２０６に何が入力されても、積の項に影響が及ばないことを指示する。しかし、ラッチ２３０及び２３２が両方とも論理０を記憶する場合には、ｐ項全体がディスエイブルされる（ＡＮＤゲートへの０入力は、常に、０出力を生じる）。
【００３６】
ＯＲアレイをプログラムするのに使用するときには、コアセルは、テーブル２に基づいてプログラムされる。
2004512710.tif 000005
【００３７】
ＰＬＡのコアセル２０３の別の実施形態が図１４及び１４ａに示されている。図１４ａにおいて、単一ラッチ又はフリップ−フロップ２４０がＯＲゲート２４２に接続される。２入力ＯＲゲート２４２への第２入力２０６（又は２０６’）は、入力信号又はその補数で形成される。ラッチ２４０が論理０を記憶するときには、ＯＲゲート２４２の出力が、ライン２０６（又は２０６’）に入力される信号の値を搬送する。ラッチ２４０が論理１を記憶するときには、入力が「ドント・ケア」になり、即ちｐ項に影響しない。
【００３８】
図１３と１４を比較すると、図１４では、１つの記憶装置２４０しか必要とされないが、アレイへの各信号入力に対して２つの物理的入力ライン２０６、２０６’（１つが正で、１つが負）がアレイを経て延びねばならず、一方、図１３では、２つの記憶装置２３０、２３２が使用されるが、各入力に対して１つの物理的入力ライン２０６がアレイを経て延びればよい。更に、図１３では、ＡＮＤゲート２１４は、図１４の場合の半分の巾しかない。両実施形態は有用であるが、図１３は、深いサブミクロン半導体技術において全ワイヤ長さが半分にカットされたという効果を有する。図１３における扇状の広がりに依存する負荷は、図１４の場合の２倍であるが、今日の半導体デバイスの遅延を決定する主なファクタは、扇状に広がる負荷ではなく、絶対的なワイヤ長さである。
【００３９】
しかし、本発明のある実施形態は、図１３ａ及び１４ａの両実施形態を使用する。例えば、１つの実施形態は、ＡＮＤアレイに図１３ａのセル構造を使用する一方、ＯＲアレイに図１４ａのセル構造を使用する。ＯＲアレイは、テーブル２に示した４つの全ての順列を常に必要とするのではなく、ケア／ドント・ケア関数しか必要としないので、図１４ａの実施形態を使用することは、小型のＯＲアレイを考慮している。
【００４０】
図１３及び１４に示す両実施形態は、図２のようなワイヤードＯＲ構造に勝る効果を有する。先ず、図１３及び１４の構造は、規則的なアレイ構造を必要としない。それ故、本発明によるＰＬＡは、規則的なアレイ構造の制約を伴わずに、できるだけ小さく形成することができる。ある場合には、このＰＬＡの部分を、２０００年２月２５日に出願された「Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ａｒｒａｙ Ｅｍｂｅｄｄｅｄ ｉｎ Ｍａｓｋ−Ｐｒｏｇｒａｍｍｅｄ ＡＳＩＣ」と題する特許出願第０９／５１２，７８３号に開示されたＡＳＩＣのような大きなカスタムチップの他の回路と混合することもできる。更に、ＰＬＡの全ての部分が互いに接近配置されていても、これら部分をスクランブル状態にすることができる。従って、本発明によるＰＬＡは、図中では規則的な構造を有するように見えるが、このような規則性は、説明の明瞭化のために示したに過ぎない。本発明によるＰＬＡは、その物理的な実施において、何ら規則的構造をもつ必要がなく、又、従来の対応部分に全く類似する必要もない。
【００４１】
更に、ワイヤードＯＲ構造は、いつでもＡＮＤラインが低く引っ張られて電流が流れるので、静的な電力消費について周知である。しかし、図１３及び１４の構造は、ゲートを使用するので、静的な電力消費を最小にすることができる。
【００４２】
タイミング及び性能
図１５には、ＡＮＤ及びＯＲアレイの両方が間引きされた（図１２と同様に）最小限実装されたＰＬＡ３００が例示されている。間引きされたＯＲアレイは、当業者に明らかなように、ＯＲゲート３０６−３１２及び３１３−３１５で示されたような多数のＯＲツリーを生じる。この例のＰＬＡ３００は、２つの出力３０２及び３０４を有し、その出力３０２は、多数のｐ項を有する。最長臨界経路は、通常、最大ＯＲツリーにあり、この経路は、中程度及び最小限実装構造において固定である。図１５では、最長経路は、３つのＯＲゲート、例えば、３０６、３１０及び３１２を通らねばならない。
【００４３】
共用及び予備のｐ項は、図示されたように、コアセル３１６−３１９を経て進み、それ故、将来の変更を行うときにｐ項を異なる出力へ操向するのを許す（又はｐ項をディスエイブルする）ある程度のプログラム可能性を有する。予備及び共用ｐ項の経路にこれらのコアセルを有すると、各経路にある程度の遅延が追加されるが、ＰＬＡにおけるこの遅延の全影響は、著しいものではなく、即ち共用及び予備のｐ項の経路は、大きなＯＲツリーを、ツリーの出力段に近づけて接合する。換言すれば、コアセルの付加的な遅延は、大きなＯＲツリーに生じる長い経路に比して短い経路で生じる。図１５の例では、最大経路は、３つのＯＲゲートを通らねばならないが、共用／予備の項は、２つのＯＲゲート３１１、３１２を通るだけであり、プログラムされたコアセル３１６又は３１７を経ての遅延を出力３０２に対して取るに足らないものにする。
【００４４】
従って、ＰＬＡを構築するときに、全ての経路（共用及び予備経路を含む）を分析して最大及び最小遅延経路を決定できるように、ＰＬＡ構造体のタイミングモデルを形成することができる。従って、このようなタイミングモデルを使用することにより、おそらく後日に行うことのできる全ての変更は、最大及び最小遅延に対する最初の仕様内に入る遅延を生じる。従って、このような方法を使用すると、ＰＬＡ機能を変更しても、タイミングは変化しない。これは、特に重要である。というのは、多くの公知ＦＰＧＡでは、装置の機能を変更したときにタイミングを予想できないからである。
【００４５】
アレイ前及びアレイ後構造の使用
アレイ前及びアレイ後論理３３０、３３２の使用も、本発明の実施形態では、図１６（中程度に実装された構造を示す；ＡＮＤアレイのコアセルは示されていない）に示すように容易に受け入れられる。１つの実施形態では、ＰＬＡのＨＤＬ記述が受け取られたときに、その記述が分析されて、ＰＬＡのサイズを減少するために固定論理機能がアレイ前論理として実施されるのが良いか、アレイ後論理として実施されるのが良いか決定する。決定されると、ユーザは、どの機能をアレイ前論理又はアレイ後論理として実施すべきか選択し、そしてその選択に基づいてＰＬＡが発生される。或いは又、本発明の実施形態は、ある設計目標、例えば、考えられる最小構造を満足するためのアレイ前及びアレイ後構造を自動的に選択することができる。
【００４６】
補数が取られたｐ項
本発明の実施形態によれば、ｐ項も容易に実施することができる。例えば、図１７に示すように、積の項ＡをＡＮＤアレイにフィードバックし、全ての考えられるｐ項（列３４０）に接続することができる。フィードバックされたｐ項の補数は、テーブル１に基づき、列３４０の受信コアセルにより選択することができる。これは、融通性のある解決策を与えるが、考えられる全てのｐ項を駆動することは、アレイを経て２回のトリップを行うために既に長いものである単一経路に遅延を付加する。しかし、実施されるべきユーザ論理は既知であるから、別の実施形態では、フィードバック項のための列３４０は、図１８に示すように、間引きすることができる。従って、図１９に示すＮＡＮＤ−ＮＡＮＤ（又はＮＯＲ−ＮＯＲ）アレイを実施することができる。
【００４７】
図１７及び１８の両方において、信号Ａに対するフィードバックループは、別のｐ項に組み込まれるｐ項の補数を取るのに使用される。しかし、ｐ項全体の補数を取る必要がある場合には、それを単にインバーターに通しそしてＯＲゲートへと送ることができる。もちろん、図１７及び１８に示すように、インバーターに代わってコアセル３４２を使用することもできる。というのは、これは、ｐ項をプログラム可能に反転しそしてディスエイブルという２つのことを行えるからである。全ｐ項Ａが、コアセル３４２に通されそしてＯＲツリー３４４（４入力ＯＲゲートとして示される）へ直接送られることにより補数が取られるときには、図５で述べたのと同様に、ＯＲツリーをその端に向けて接合して、追加遅延を最小にしなければならない。
【００４８】
ｐ項の一部分の補数を取るだけでよいときは、例えば、フィードバックが使用される場合にはアレイに２回完全に通すことにより付加的な遅延を生じることなくｐ項の補数を取り、そして同時に、ｐ項のデモルガン等価式を実行するために多数のｐ項を追加しないことによりアレイを小さく保持することが望まれる。従って、図２０に示す本発明の１つの実施形態では、補数をとられるべき大きなｐ項の一部分を表わす積の項Ａがコアセル３５０に通され、該セルは、反転をプログラム可能に実行し、そして別のｐ項のＡＮＤツリー３５２を接合する。この場合も、ツリー３５２をその端に向かって接合することにより、コアセルによるほとんど全ての遅延が並列に生じ、最小限の付加的な遅延しか追加されないようにする。
【００４９】
図２１は、図２０と同様であるが、ｐ項Ａは、付加的なコアセル３５４によりプログラム可能にその全体の補数をとりそしてＯＲツリー３５６へ送ることができ、及び／又はその補数を取って別のｐ項に使用することができ、そして図１７の場合と同様にＡＮＤツリー３５２を接合する更に別の実施形態を示す。図示されたように、コアセルを使用することにより、信号を異なる出力へ操向させ、真の状態で通過させ、補数を取り、又はディスエイブルできるという点で、大巾な融通性が得られる。
【００５０】
ＡＮＤツリー／ＯＲツリー
ＡＮＤツリー及びＯＲツリー（並びにバッファツリー）について上述した。本発明によるＰＬＡを構築するときには、これらのツリーをＰＬＡコンパイラー（入力ＰＬＡ記述を分析しそしてＰＬＡに対する構造上のネットリストを発生するプログラム）によりオンザフライで必要に応じて形成することができる。或いは又、ＡＮＤ及びＯＲツリーは、ツリーを構築するのに使用される所定の１組のゲートプリミティブに制限することができる。このようなプリミティブは、それらプリミティブに対するあるピン／入力がそれらの速度の利点により有利になり（例えば、ツリーの端に向かうピン／入力）、共用／予備のｐ項においてどこに追加すべきか決定する上で有用であるように設計される。ツリーを発生する更に別の方法は、この技術で良く知られたシノプシス・デザイン・コンパイラーのような合成ツールを使用して必要となるであろう全ての考えられるツリーのライブラリーを形成することである。ツリーは、最大速度に対して合成され、そしてＰＬＡが構成されたときに必要なサイズのツリーが選択される。この場合も、このようなツリーは、あるピン／入力がそれらの速度の利点により有利になるように設計することができる。
【００５１】
特殊な実施形態
本発明の実施形態によるＰＬＡは、２つの別々のタスクを実行するように設計できる。換言すれば、単一のＰＬＡを構築できるが、それを２つの個別のアプリケーションに適用できる回路に使用することができる。このような場合に、各タスクに対するＰＬＡの機能は異なり、そしてＰＬＡは、一方の組の機能又は他方に基づいてプログラムされる。本発明の実施形態によれば、ＰＬＡのサイズは、大きい方の組の機能に基づいて発生され、次いで、どんな予備のｐ項が形成されそして間引きがいかに行われるか決定する際に両組の機能が考慮される。
【００５２】
更に別の実施形態では、ユーザは、ＰＬＡのサイズに関与しなくてよく、ＰＬＡが充分高速に保たれそしてある性能特性を示す限り、できるだけ大きな融通性を維持するよう望むことができる。このような場合に、間引きされたＰＬＡは、本明細書に述べたようにモデリングし、次いで、性能を測定するようにテストすることができる。その性能が、選択された最小性能目標（例えば、速度）を越える場合には、予備のｐ項がモデルに追加される。次いで、装置が再びテストされ、目標を満足するまでプロセスが繰り返され、例えば、装置がその最小許容速度特性を丁度満足するか又は最小限越えるまで予備のｐ項が追加される。
【００５３】
それ故、小型で、高速で、しかも、融通性のあるＰＬＡを形成できるようにする装置について説明した。従来の「折り返し」技術とは異なり、本発明による装置は、規則的なアレイ構造を必要としない。更に、折り返しとは異なり、本発明による装置は、ＰＬＡを最大に間引きすることができ、次いで、再プログラミングにおける将来の融通性を許すために選択的に再実装することができる。
【００５４】
上述した特定の実施形態は、本発明の原理を単に例示するものに過ぎず、当業者でアレイば、本発明の精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、本発明の範囲は、特許請求の範囲のみによって限定されるものとする。
【図面の簡単な説明】
【図１】
従来のＰＡＬ型ＰＬＡの機能図である。
【図２】
従来のワイヤードＯＲ構造を示す図である。
【図３】
従来の全ＰＬＡの機能図である。
【図４】
従来のＰＬＡ構造における積の項の共用を示す図である。
【図５】
従来のＰＬＡ構造における補数を取った積の項を示す図である。
【図５ａ】
従来のＮＡＮＤ−ＮＡＮＤアレイを示す図である。
【図６】
従来のＰＬＡ構造におけるアレイ後論理を示す図である。
【図７】
従来のＰＬＡ構造におけるアレイ前論理を示す図である。
【図８】
ＰＬＡ折り返しの一例を示す図である。
【図９】
ＰＬＡ折り返しの一例を示す図である。
【図１０】
本発明の実施形態による完全実装ＰＬＡの機能図である。
【図１１】
本発明の実施形態による中程度実装ＰＬＡの機能図である。
【図１２】
本発明の実施形態による最小限実装ＰＬＡの機能図である。
【図１３】
本発明の実施形態によるコアセルを機能的に示す図である。
【図１３ａ】
本発明の実施形態によるコアセルを機能的に示す図である。
【図１４】
本発明の別の実施形態によるコアセルを機能的に示す図である。
【図１４ａ】
本発明の別の実施形態によるコアセルを機能的に示す図である。
【図１５】
本発明の実施形態の機能図である。
【図１６】
アレイ前及びアレイ後論理を伴う本発明の実施形態を示す図である。
【図１７】
本発明の実施形態による補数を取ったＰ項を示す図である。
【図１８】
本発明の実施形態による補数を取ったＰ項を示す図である。
【図１９】
本発明の実施形態による補数を取ったＰ項を示す図である。
【図２０】
本発明の実施形態による補数を取ったＰ項を示す図である。
【図２１】
本発明の実施形態による補数を取ったＰ項を示す図である。
【図１】
2004512710.tif 000006
【図３】
2004512710.tif 000007
【図８】
2004512710.tif 000008
【図１０】
2004512710.tif 000009
【図１１】
2004512710.tif 000010
【図１２】
2004512710.tif 000011
【図１３−１３ａ】
2004512710.tif 000012
【図１４−１４ａ】
2004512710.tif 000013
【図１５】
2004512710.tif 000014
【図１６】
2004512710.tif 000015
【図２０】
2004512710.tif 000016
【図２１】
2004512710.tif 000017
【国際公開パンフレット】
2004512710.tif 000018
2004512710.tif 000019
2004512710.tif 000020
2004512710.tif 000021
2004512710.tif 000022
2004512710.tif 000023
2004512710.tif 000024
2004512710.tif 000025
2004512710.tif 000026
2004512710.tif 000027
2004512710.tif 000028
2004512710.tif 000029
2004512710.tif 000030
2004512710.tif 000031
2004512710.tif 000032
2004512710.tif 000033
2004512710.tif 000034
2004512710.tif 000035
2004512710.tif 000036
2004512710.tif 000037
2004512710.tif 000038
2004512710.tif 000039
2004512710.tif 000040
2004512710.tif 000041
2004512710.tif 000042
2004512710.tif 000043
2004512710.tif 000044
2004512710.tif 000045
2004512710.tif 000046
2004512710.tif 000047
2004512710.tif 000048
2004512710.tif 000049
2004512710.tif 000050
2004512710.tif 000051
2004512710.tif 000052
2004512710.tif 000053
2004512710.tif 000054
2004512710.tif 000055
2004512710.tif 000056
2004512710.tif 000057
2004512710.tif 000058
2004512710.tif 000059
2004512710.tif 000060
2004512710.tif 000061
2004512710.tif 000062
2004512710.tif 000063
【国際公開パンフレット（コレクトバージョン）】
2004512710.tif 000064
【国際調査報告】
2004512710.tif 000065
2004512710.tif 000066
2004512710.tif 000067
2004512710.tif 000068
2004512710.tif 000069