(57)【要約】【課題】直列、並列、又はこれらの任意の組合せであるように再構成可能な、ロジックブロックのアレイを有するデバイスを提供する。【解決手段】両端に配置された第１及び第２接続手段をそれぞれが有する一連の並列なロジックブロックチェーンを含むプログラマブルロジック回路のためのプログラミングインタフェースデバイスであって、各ロジックブロックチェーンの第１及び第２の接続手段とのインタフェースをそれぞれ行う第１及び第２のインタフェース手段と、複数の直列に接続されたロジックブロックを構成するようにそれぞれが配列された、少なくとも１つのプログラミング回路と、並列なロジックブロックチェーンが、並列、直列、又はこれらの任意の組合せであるように構成され得るように、各ロジックブロックチェーンの接続手段を、他のロジックブロックチェーンの接続手段に接続又は直接前記少なくとも１つのプログラミング回路に接続するプログラマブル接続手段とを備える。【選択図】図５
2010093814.tif 000002
【特許請求の範囲】
【請求項１】
両端に配置された第１及び第２接続手段をそれぞれが有する一連の並列なロジックブロックチェーンを含むプログラマブルロジック回路のためのプログラミングインタフェースデバイスであって、
各ロジックブロックチェーンの第１及び第２の接続手段とのインタフェースをそれぞれ行う第１及び第２のインタフェース手段と、
複数の直列に接続されたロジックブロックを構成するようにそれぞれが配列された、少なくとも１つのプログラミング回路と、
前記並列なロジックブロックチェーンが、並列、直列、又はこれらの任意の組合せであるように構成され得るように、各ロジックブロックチェーンの前記接続手段を、他のロジックブロックチェーンの前記接続手段に接続又は直接前記少なくとも１つのプログラミング回路に接続するプログラマブル接続手段とを備える
プログラミングインタフェースデバイス。
【請求項２】
前記プログラマブル接続手段は、各ロジックブロックチェーンの前記接続手段を他のロジックブロックチェーンの前記接続手段に接続するループバック接続を更に備える
請求項１のプログラミングインタフェースデバイス。
【請求項３】
前記プログラミング回路の制御、及びさもなければ前記デバイスの各プログラミング回路に共通であろう機能の集約的な実行をする制御デバイスを更に備える
請求項１又は２のプログラミングインタフェースデバイス。
【請求項４】
前記少なくとも１つのプログラミング回路は、有限状態機械（ＦＳＭ）である
請求項１〜３のいずれか１項のプログラミングインタフェースデバイス。
【請求項５】
請求項１〜４のいずれか１項のプログラミングインタフェースデバイスを少なくとも１つ備える
プログラマブルロジックデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギャラブルロジックデバイスの部分を形成するアレイの構成に関する。
【背景技術】
【０００２】
芽生えつつあるリコンフィギャラブルロジックデバイスのアーキテクチャの中には、リコンフィギャラブルロジックブロックが繰り返された格子状のものを有しているものがある。このようなアーキテクチャでは、各ブロックは、プログラムメモリと、プログラムメモリへのプログラムデータ入力及びプログラムメモリからのプログラムデータ出力のための接続手段とを有していることがある。これらのブロック間が相互に接続されているときには、接続手段は連結しあってブロックのチェーンを形成する。いくつかのチェーンが並んで配置されている時には、ブロックのアレイが生成され得る。
【０００３】
各アレイはハードマクロである。すなわち、各アレイは、その要素間の物理的な経路及び配線パターンで予め構成されている。このため、いったんアレイが結線されると、再構成することは、不可能ではないとしても困難である。いくつかの異なるタイプのアレイが存在し、それぞれが特有の利点を有している。
【０００４】
例えば、あるタイプのアレイは、完全に並列な（fully parallel）アレイである。完全に並列なアレイは、ブロックのいくつかのチェーンを有し、その始まりと終わりは、それぞれプログラミングインタフェースに接続されている。完全に並列なアレイは、すばやく構成可能である点で有利である。しかし、この種のアレイを構成する必要があるプログラミングインタフェースは、より複雑である必要があり、したがってより多くのオーバーヘッドを有する。
【０００５】
他のタイプのアレイとして、完全に直列な（fully serial）アレイがある。完全に直列なアレイは、ブロックのより小さな相互に接続されたチェーンからなる、ブロックの単一チェーンを有する。このブロックのチェーンの始まりと終わりは、単一のプログラミングインタフェースに接続される。このタイプのアレイの構成に必要なプログラミングインタフェースは、比較的簡単であるが、アレイの実際のプログラミングには、完全に並列なアレイよりかなり長い時間がかかる。
【０００６】
理解されるように、異なるタイプのアレイは、それぞれ特有の利点及び不利な点を有する。このため、あるアレイはあるタイプのアプリケーションに特に適するかも知れないが、他のアプリケーションには適さないかも知れない。
【０００７】
例えば、同時に（他のサブタスクの進行に関連付けられることなく）実行可能な複数のサブタスクに分割可能なタスクがある。ゆえに、どのようなタスクにも、次々と（直列に）実行されなければならない多数のサブタスクと、同時に（並列に）実行され得る多数のサブタスクとが存在する。
【０００８】
並列処理の可能性を活用すると、典型的には、全てのサブタスクが直列に実行される場合よりタスク全体が速くなる。しかし、並列処理に関連する構造的なオーバーヘッドがたいてい存在する。アレイ構成の場合には、このオーバーヘッドはより複雑なプログラミングインタフェースの形をとる。タスクの並列化の利益とコストとの間のバランスをとる必要があるということは、よくある技術上のジレンマである。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、デバイスを複数のアプリケーション用に設計したり、デバイスの購入の目的となるアプリケーションを現在のところまだ設計していない顧客のためにデバイスを設計する場合には、問題が生じる。このような場合には、並列処理の最適な程度の推定をすることが、デバイスを生成するためには必要である。推定と実際の要求との間にいかなる違いがあっても、システムパフォーマンスの低下（すなわち、構成に要する時間が長すぎる）や、費用対効果の低下（すなわち、必要以上に大きな回路が生成されてしまう）の原因になる。
【００１０】
したがって、直列、並列、又はこれらの任意の組合せであるように再構成可能な、ロジックブロックのアレイを有するデバイスの必要性が明確に存在する。
【課題を解決するための手段】
【００１１】
従来技術に関する問題を解決するために、本発明は、両端に配置された第１及び第２接続手段をそれぞれが有する一連の並列なロジックブロックチェーンを含むプログラマブルロジック回路のためのプログラミングインタフェースデバイスを提供する。前記プログラミングインタフェースデバイスは、各ロジックブロックチェーンの第１及び第２の接続手段とのインタフェースをそれぞれ行う第１及び第２のインタフェース手段と、複数の直列に接続されたロジックブロックを構成するようにそれぞれが配列された、少なくとも１つのプログラミング回路と、前記並列なロジックブロックチェーンが、並列、直列、又はこれらの任意の組合せであるように構成され得るように、各ロジックブロックチェーンの前記接続手段を、他のロジックブロックチェーンの前記接続手段に接続又は直接前記少なくとも１つのプログラミング回路に接続するプログラマブル接続手段とを備える。
【００１２】
前記プログラマブル接続手段は、各ロジックブロックチェーンの前記接続手段を他のロジックブロックチェーンの前記接続手段に接続するループバック接続を更に備えていてもよい。
【００１３】
前記プログラミングインタフェースデバイスは、前記プログラミング回路の制御、及びさもなければ前記デバイスの各プログラミング回路に共通であろう機能の集約的な実行をする制御デバイスを更に備えていてもよい。
【００１４】
前記少なくとも１つのプログラミング回路は、有限状態機械（ＦＳＭ）であってもよい。
【００１５】
また、本願発明は、前記プログラミングインタフェースデバイスを少なくとも１つ備えるプログラマブルロジックデバイスを提供する。
【発明の効果】
【００１６】
理解されるように、本発明はいくつかの利点を有している。例えば、構成スピード及びオーバーヘッドに関して異なる要求をそれぞれ有する複数のシステムで実行されるアプリケーションの性能を最適化するために、本発明によるデバイスは再構成可能である。また、単一のジェネリックアレイを複数のシステムに適用可能であるので、意図された目的を知ることなしにアレイの設計を済ませることができる。更に、プログラミングインタフェースがユーザ（すなわち、製造者に対立するものとしてのシステムインテグレータ）によってパラメータで表され得るので、結果として得られる設計をユーザの特定の必要に合わせることができ、オーバーヘッド及び構成スピードの点で設計の柔軟性を向上させ、コストを抑えることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明によるデバイスに含まれるアレイで使われるチェーンを構成するために相互に接続され得る２つのブロックを表す図である。
【図２】本発明によるデバイスで用いられる、相互に接続されたブロックのアレイを表す図である。
【図３】結線によるコンフィギュレーションパスを有する相互接続ブロックのアレイを示す図である。
【図４】図３のアレイをより詳細に表す図である。
【図５】本発明によるデバイスを示す図である。
【図６】本発明によるデバイスを用いることにより得られる第１の配置を示す図である。
【図７】本発明によるデバイスを用いることにより得られる第２の配置を示す図である。
【図８】本発明によるデバイスを用いることにより得られる第３の配置を示す図である。
【図９】本発明によるデバイスを用いることにより得られる第４の配置を示す図である。
【図１０】本発明によるデバイスを用いることにより得られる第５の配置を示す図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら説明する。
【００１９】
図１は、本発明のデバイスで用いられるアーキテクチャの基本的な構成ブロックを示す。プログラマブルデバイスにおけるプログラムは、通常、そのデバイスの全体にわたって分布しているメモリに格納されたデータのビットマップである。プログラムされ得るデバイスの各要素のために、特定のメモリユニットに格納された関連データが存在する。
【００２０】
リコンフィギャラブルロジック技術の中には、ブロックが繰り返された格子状のものを有するものがある。各ブロックは、入力及び出力接続手段を有し、プログラムメモリを含んでいる。
【００２１】
ここで、図２を参照して、本発明によるデバイスで用いられる、相互に接続されたブロックのアレイについて説明する。図１のブロックが積み重ねられると、各ブロックの上及び下の接続手段が結合する。ブロックのチェーンの最上部及び最下部では、接続手段は露出した状態にされる。このため、チェーン内の各ブロックは、各コラム内のつながった接続手段を通してプログラムされ得る。
【００２２】
図３は、複数のタイル３１で構成されたプログラマブルロジックデバイス３０を表す図を示している。各タイル３１は、コンフィギュレーションデータパス３２によって連結された複数のコンフィギュレーションレジスタ（図示せず）を含んでいる。
【００２３】
発明をよりよく説明するために、本発明によるシステムのユーザプログラマブルロジックブロックの構成の詳細な説明を行う。図４は、専用のコンフィギュレーション配線又はリコンフィギャラブルデバイス／ファブリックの一般的なルーティングネットワークの一部を成す配線を用いてつなげられた内部レジスタ４１を有するユーザプログラマブルロジックブロック４０を示している。
【００２４】
動作時には、コンフィギュレーションデータがチェーン４２を伝って、チェーンの各レジスタ４１がデータを格納するまでシフトされる。これは、内部レジスタのチェーンを経由してデバイス／ファブリックにも供給され得るコンフィギュレーション制御信号の制御下で行われる。しかし、特定のチェーンの全てのレジスタは、どのような時にも同様にアドレス／アクセスされるので、準グローバルなレジスタに格納されない信号によって、制御データをコンフィギュレーションデータチェーンの全段に配信してもよい。次に、プログラマブルロジックブロック内のコンフィギュレーションチェーン及び関連するコンフィギュレーションセル４３のデータにリード／ライト／シフト演算を行うために、制御情報は各段でデコードされる。
【００２５】
図５を参照して、本発明の一実施形態について説明する。本発明によるデバイス５０は、並列又は直列コンフィギュレーションの選択を、アレイ自身においてではなく、プログラミングインタフェースにおいて決定させる接続の配列を、プログラミングインタフェース内に有している。典型的には、アレイ（すなわち、アレイの上及び下）の各プログラミングインタフェースは、本発明によるデバイス５０を有する。
【００２６】
図５に示されているように、本発明によるデバイス５０は、可変数の有限状態機械（ＦＳＭ：Finite State Machine）５２と、可変数のループバック接続５３とを有している。ループバック接続５３の入力及び出力の中には、アレイコラムの端における入力／出力接続部に直接接続するものもある。理解されるように、有限状態機械は、その現在の状態（何らかの形の内部メモリに格納される）及び外部入力に応じた動作のシーケンスを制御するためによく用いられる。このように、ＦＳＭ５２は、外部制御信号に応じて、メモリ素子への書き込み及びメモリ素子からの読み出しを行わせるのに必要な制御信号を生成する。なお、ＦＳＭに代えて任意の他の適当なプログラマブル接続手段を用いることも可能である。
【００２７】
完全を期すために、ループバック接続５３と、各アレイコラム用のＦＳＭ５２との両方が示されている。しかしながら、理解されるように、実際のプログラミングインタフェースでは、各アレイコラムの各入力／出力は、ループバック接続５３及びＦＳＭ５２のいずれかに効率的に接続されている。このため、ループバック接続５３の数及び位置、並びにＦＳＭ５２の数及び接続性は変化する。
【００２８】
したがって、本発明によるプログラマブルロジックデバイスは、各アレイコラムの各入力／出力を露出させたジェネリックアレイと、少なくとも１つのカスタマイズされたプログラミングインタフェースとを有している。
【００２９】
このことの利点は、コンフィギュレーションスピード及びオーバーヘッドに関して各々が異なる要求を有する複数のユーザによる複数のシステムに、同一のアレイ設計を組み込むことができるということである。更に、並列処理をさまざまな程度で可能とするように、プログラミングインタフェースを定める多くの方法がある。並列処理の程度を（ゆえにオーバーヘッドも）きめ細かく制御できるのは、有利な点である。
【００３０】
本発明のデバイスは、ＦＳＭ５２の制御、並びにシステムの他の部分からの入力及びシステムの他の部分への出力の制御を行う制御ブロック５１を更に有していてもよい。制御ブロック５１は、全てのＦＳＭ５２に共通のいくつかの機能をも実行してもよく、これにより、これらの機能を各ＦＳＭ５２において繰り返す必要性をできるだけ小さくすることができる。例えば、制御ブロック５１は、プログラミングデータからリセットコマンドをデコードしてもよく、このコマンドが制御ブロック５１にＦＳＭ５２の全てをリセットさせる。制御ブロック５１は、入力プログラミングデータにエラーチェックを実行してもよい。
【００３１】
図６は、本発明の完全に直列な実施例を示す。この構成においては、アレイの露出したアレイコラム接続部は、２つを除き、ループバック接続５３に接続されている。１つの縦配線に接続されたリソースをプログラムするための時間がＴであるとすると、図示された配置は、プログラムに８Ｔを要する。プログラミングインタフェースがあるサイズの１つのＦＳＭ５２を含んでいることがオーバーヘッドとなる。
【００３２】
図７は、アレイの全ての露出したアレイコラム接続部が複数のループバック接続５３を経由して１つのＦＳＭ５２に接続されている、本発明の完全に並列な実施例を示す。この実施形態では、アレイをプログラムするための時間はＴであり、オーバーヘッドは８ＦＳＭである。
【００３３】
図８は、露出したアレイコラムの接続部が４グループに分割されている、本発明の半並列（half-parallel）の実施例を示す。この実施形態では、アレイをプログラムするために必要な時間は２Ｔであり、オーバーヘッドは４ＦＳＭ５２である。
【００３４】
図９は、露出したアレイコラムの接続部が２グループに分割されている、本発明の他の実施例を示す。この実施形態では、アレイをプログラムするために必要な時間は４Ｔであり、オーバーヘッドは２ＦＳＭ５２である。
【００３５】
最後に、図１０は、露出したアレイコラムの接続部が４グループに分割されている、本発明の半並列の変形例を示す。この実施例は、２つのＦＳＭ５２が上方のプログラミングインタフェースで用いられ、２つのＦＳＭ５２が下方のプログラミングインタフェースで用いられているという点で、図８の実施例とは異なっている。しかし、図８の実施形態と同様に、アレイをプログラムするために必要な時間は２Ｔであり、オーバーヘッドは４ＦＳＭ５２である。
【図１】
2010093814.tif 000003
【図２】
2010093814.tif 000004
【図３】
2010093814.tif 000005
【図４】
2010093814.tif 000006
【図５】
2010093814.tif 000007
【図６】
2010093814.tif 000008
【図７】
2010093814.tif 000009
【図８】
2010093814.tif 000010
【図９】
2010093814.tif 000011
【図１０】
2010093814.tif 000012