(57)【特許請求の範囲】
【請求項１】
プログラム可能な論理チップのコンフィギュレーションを変更する方法であって、
当該プログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、当該ソースコンフィギュレーションの論理記述が少なくとも部分的に利用可能になっており、
ターゲットコンフィギュレーションの論理記述を作成し、前記作成では、
前記ソースコンフィギュレーションの前記論理記述から、１つ以上の論理素子及び／又は接続素子を変更し、１つ以上の論理素子を前記ターゲットコンフィギュレーションに追加し、対応付け情報に基づき、複数のトランジションポイントを決定し、前記複数のトランジションポイントは、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられている複数の論理素子を備え、前記複数の論理素子は、レジスタ及びドライバを含み、
前記ソースコンフィギュレーションの未だ利用していない論理素子をフリーであるとマーキングし、
当該フリーであるとマーキングした前記論理素子に、前記ターゲットコンフィギュレーションの前記１つ以上の追加された論理素子をプレースメント設定し、
前記１つ以上の追加された論理素子を、利用していない接続素子を介して前記トランジションポイントに接続し、
前記ターゲットコンフィギュレーションの前記論理記述から、変更したビットストリームを作成し、
当該変更したビットストリームを前記プログラム可能な論理チップに書き込む、
ことを特徴とする方法。
【請求項２】
前記１つ以上の論理素子を変更することには、前記１つ以上の論理素子の削除が含まれ、前記ソースコンフィギュレーションの前記１つ以上の論理素子は、前記ターゲットコンフィギュレーションにおいて利用されない、
請求項１に記載の方法。
【請求項３】
出力側がトランジションポイントの入力側だけに接続されている、前記ソースコンフィギュレーションの前記削除された論理素子をフリーであるとマーキングし、
前記フリーであるとマーキングした論理素子に対応する前記接続素子を利用していないとマーキングする、
請求項２に記載の方法。
【請求項４】
前記フリーであるとマーキングした複数の論理素子の１つ以上の入力側だけに出力側が接続されているすべての論理素子を同様にフリーであると再帰的にマーキングし、
対応する前記接続素子を利用していないとマーキングする、
請求項３に記載の方法。
【請求項５】
あらかじめ設定したリージョンのすべての論理素子を、前記ソースコンフィギュレーションの１つ以上の置き換えられた論理素子だけ、又はトランジションポイントの入力側だけ、フリーであるとマーキングし、
対応する前記接続素子を、利用していないとマーキングし、
あらかじめ設定された前記リージョンにおける削除されなかった論理素子を新たにプレースメント設定して、利用していない接続素子に接続する、
請求項３又は４に記載の方法。
【請求項６】
前記ソースコンフィギュレーションに使用されておりかつ前記あらかじめ設定したリージョン内の複数の論理素子のうちの１つで終端する複数の前記接続素子を、少なくとも、前記あらかじめ設定したリージョン外のつぎに接続される論理素子まで、利用していないとマーキングする、
請求項５に記載の方法。
【請求項７】
前記ソースコンフィギュレーションを読み込むことには、ビットストリームを読み込むことと、当該ビットストリームの少なくとも１つの部分を、論理記述に変換することと、が含まれており、
当該変換を、前記プログラム可能な論理チップのアーキテクチャ情報に基づいて行う、
請求項１から６までのいずれか１項に記載の方法。
【請求項８】
前記変更したビットストリームを前記ターゲットコンフィギュレーションに基づいて作成し、
当該作成を、
前記ビットストリームにおける位置と、前記プログラム可能な論理チップにおける論理素子又は接続素子との間の関係を形成し、前記論理素子又は前記接続素子は、変更されており、元々のビットストリームを、対応する複数の位置において変更する、ことによって行う、
請求項１から７までのいずれか１項に記載の方法。
【請求項９】
前記変更したビットストリームを前記ターゲットコンフィギュレーションに基づいて作成し、
当該作成を、
前記ターゲットコンフィギュレーションのプレースメント設定したネットリストを新しい完全なビットストリームに変換する、ことによって行う、
請求項１から７までのいずれか１項に記載の方法。
【請求項１０】
変更される論理機能は、前記ターゲットコンフィギュレーションにおけるトランジションポイントに適用され、少なくとも１つの信号伝搬時間を求めて、１つ以上の閾値と比較し、
少なくとも１つの求めた信号伝搬時間が、前記閾値を上回るか又はあらかじめ設定した区間外にある場合に、警告及び／又は前記ターゲットコンフィギュレーションのプレースメント設定したネットリストの変更を行う、
請求項１から９までのいずれか１項に記載の方法。
【請求項１１】
前記ターゲットコンフィギュレーションには少なくとも１つの第１マルチプレクサが含まれており、当該第１マルチプレクサは、トランジションポイントの直前に配置されており、
前記ターゲットコンフィギュレーションに追加されるすべての論理素子は、前記第１マルチプレクサのただ１つの入力側を含む複数の新たな信号路に配置されている、
請求項１から１０までのいずれか１項に記載の方法。
【請求項１２】
複数の前記新しい信号路には前記プログラム可能な論理チップの少なくとも１つのインタフェースピンが含まれており、当該少なくとも１つのインタフェースピンには、前記プログラム可能な論理チップのデバッギングインタフェースが割り当てられている、
請求項１１に記載の方法。
【請求項１３】
前記ターゲットコンフィギュレーションは、トランジションポイントの直後に配置されている少なくとも１つの第２マルチプレクサを有しており、
当該第２マルチプレクサは、論理素子の少なくとも１つの入力側に接続されている、
請求項１から１２までのいずれか１項に記載の方法。
【請求項１４】
前記ターゲットコンフィギュレーションには少なくとも１つの付加的なレジスタが含まれており、
前記レジスタの出力側は、インタフェースピンに接続されており、当該インタフェースピンは前記プログラム可能な論理チップのデバッギングインタフェースに割り当てられている、
請求項１から１３までのいずれか１項に記載の方法。
【請求項１５】
制御装置を適合化するステップをさらに含み、
前記該制御装置には、制御機能を実行するように構成されたプログラム可能な論理チップが含まれている、
請求項１から１４までのいずれ１項に記載の方法。
【請求項１６】
プログラム可能な論理チップを書き込むためのプログラミング装置であって、
プロセッサ及びプログラミング命令を通信するためのプログラミングインタフェースを有しており、前記プログラミング命令によって、
当該プログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、当該ソースコンフィギュレーションの論理記述が少なくとも部分的に利用可能になっており、
ターゲットコンフィギュレーションの論理記述を作成し、前記作成では、
前記ソースコンフィギュレーションの前記論理記述から、１つ以上の論理素子及び／又は接続素子を変更し、１つ以上の論理素子を前記ターゲットコンフィギュレーションに追加し、対応付け情報に基づき、複数のトランジションポイントを決定し、前記複数のトランジションポイントは、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられている複数の論理素子を備え、前記複数の論理素子は、レジスタ及びドライバを含み、
前記ソースコンフィギュレーションの未だ利用していない論理素子をフリーであるとマーキングし、
当該フリーであるとマーキングした前記論理素子に、前記ターゲットコンフィギュレーションの前記１つ以上の追加された論理素子をプレースメント設定し、
前記１つ以上の追加された論理素子を、利用していない接続素子を介して前記トランジションポイントに接続し、
前記ターゲットコンフィギュレーションの前記論理記述から、変更したビットストリームを作成し、
当該変更したビットストリームを前記プログラム可能な論理チップに書き込む、
ことを特徴とするプログラミング装置。
【請求項１７】
非一時的なコンピュータ読み出し可能な記憶媒体を有するコンピュータプログラムであって、
前記記憶媒体には複数の命令が埋め込まれており、前記命令によって、
プログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、当該ソースコンフィギュレーションの論理記述が少なくとも部分的に利用可能になっており、
ターゲットコンフィギュレーションの論理記述を作成し、前記作成では、
前記ソースコンフィギュレーションの前記論理記述から、１つ以上の論理素子及び／又は接続素子を変更し、１つ以上の論理素子を前記ターゲットコンフィギュレーションに追加し、対応付け情報に基づき、複数のトランジションポイントを決定し、前記複数のトランジションポイントは、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられている複数の論理素子を備え、前記複数の論理素子は、レジスタ及びドライバを含み、
前記ソースコンフィギュレーションの未だ利用していない論理素子をフリーであるとマーキングし、
当該フリーであるとマーキングした前記論理素子に、前記ターゲットコンフィギュレーションの前記１つ以上の追加された論理素子をプレースメント設定し、
前記１つ以上の追加された論理素子を、利用していない接続素子を介して前記トランジションポイントに接続し、
前記ターゲットコンフィギュレーションの前記論理記述から、変更したビットストリームを作成し、
当該変更したビットストリームを前記プログラム可能な論理チップに書き込む、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム可能な論理チップのコンフィギュレーションを変更する方法と、制御機能を実行するように構成されたプログラム可能な論理チップを含む制御装置を適合化する方法と、プログラム可能な論理チップを書き込むプログラミング装置とに関する。
【０００２】
多くの技術分野において、物理的なプロセスを制御するために制御装置が使用されており、この制御装置のマイクロコントローラはサイクリックに１つのプログラムを実行し、ここでこのプログラムには、１つ以上のセンサの新しい測定値を求めることと、測定値と目標値との比較に基づいて１つ以上のアクチュエータを駆動制御することとが含まれている。新しい制御装置ないしは制御アルゴリズムの設計を促進するため、既存の制御装置に載置されて、個々の（部分的な）機能だけが置き換えられることが多い。バイパッシングという語でも知られているこの公知の手法は、既存の制御装置上で完全に実行できる（内部バイパッシング）か、又は、１つ以上の新しい機能の呼び出しのため、いわゆるバイパス機能のため、専用のRapid Control Prototyping System（略してＲＣＰシステム）を用いることできる（外部バイパッシング）かいずれかである。個々の機能の置き換えは、好適にはジャンプ命令を適合化することによって行うことができる。
【０００３】
欧州特許出願公開第２８６９１４５号明細書からは、制御装置の制御プログラムを変更する方法が公知であり、この制御プログラムには、複数の第１の関数が含まれており、これらの関数のうちの少なくとも１つが１つのアクチュエータを制御するために形成されており、ここでは記憶装置が設けられており、この記憶装置は、これらの第１の関数に対応付けられているサブプログラムによって占有される記憶領域を有する。この制御プログラムは、バイナリのプログラムコードとして設けられており、この制御プログラムのプログラムコードには、上記の複数の第１の関数のうちの１つからの呼び出し際のジャンプアドレスが設けられており、このジャンプアドレスは、関数呼び出しに関連するサブプログラムのメモリアドレスをポイントしており、このサブプログラムは、複数のバイナリのプログラムコードの１つの列として設けられており、このサブプログラムのプログラムコードの列の終わりにはリターンジャンプ命令が設けられている。この制御プログラムのプログラムコードでは関数呼び出しが行われたか否かが調べられ、この関数呼び出しに関連したジャンプアドレス及びジャンプ命令のアドレスが求められる。ここではサイズを求めることにより、各プログラムによって占有される、メモリのメモリ領域が求められる。各第１の関数に対応するサイズ及びメモリ領域のアドレスを有する、第１の関数に対応する識別子は、コンピュータシステムの一部として形成されている表示ユニットに表示される。このコンピュータシステムにより、上記の複数の第１の関数のうちの少なくとも１つの第１の関数が、消去すべき関数として選択され、この選択された第１の関数のサイズ及びアドレスは、関数構造に記憶され、選択された第１の関数の少なくとも１つの関数呼び出しは非アクティベートされ、及び／又は、第１の関数が第２の関数によって置換され、ここでこの置換は、選択された第１の関数のプログラムコードが、第２の関数のプログラムサードによって上書きされることによって行われる。
【０００４】
極めてダイナミックなシステムをシミュレーション及び制御するため、Field Programmable Gate Array（略してＦＰＧＡ）という語で公知のプログラム可能な論理チップがますます広範囲に使用されており、このプログラム可能な論理チップは、並列処理及び各応用に適応させた論理回路に起因して、高速に変化する区間も確実に制御する。マイクロプロセッサの場合とは異なってシーケンシャルな処理が行われないため、またジャンプ命令が設けられてないため、ＦＰＧＡ上に実現される制御機能に対しては、これまでバイパッシングが行われていない。ＦＰＧＡを使用することの別の欠点は、個々の論理機能への小規模の適合化が限定的にしか行えないことにある。なぜならば、この回路はそれぞれ完全に新たに合成し直す必要があるからであり、これには、特にプレースメント設定及びルーティングの最適化に起因して長い時間がかかってしまうからである。したがってプログラム可能な論理チップに対しても論理機能の適合化を簡単にできるようにすることが望ましい。
【０００５】
部分的なリコンフィギュレーションの１つは、例えば米国特許第７９０２８６６号明細書から公知の手法であり、この手法により、ＦＰＧＡのコンフィギュレーションを後でないしはランタイムに変更することできる。このための準備として、設計フェーズにおいて前もってＦＰＧＡコンフィギュレーションを複数のパーティションに分割する必要があり、すなわち例えば第１及び第２のパーティションが作成される。第１のパーティションには、変更のない論理機能もしくは常設の論理機能が準備される。この場合に第２のパーティションは、限定された領域であり、この領域に対しては、部分的な新たな合成及び部分的なリコンフィギュレーションが可能であるため、第２のパーティションに配置される複数の論理機能は基本的に変更可能である。しかしながらこの手法は、以下のような一連の欠点を有する。すなわち、
・  初期設計においてすでに、パーティション分割箇所を計画して固定的に実現しなければならない。
・  第２のパーティションに実現される機能ないしは実装される論理機能とは無関係に、固定した個数の論理ユニット及び接続素子がリザーブされる。最大限に収容すべき所要の論理素子数をこのためにリザーブしなればならなくなることにより、多くの場合に資源が利用されないままになってしまう。
・  第１のパーティションに配置されるすべての論理機能は、実際に実現される第２のパーティションの機能がこれらを必要としない場合であっても固定のままであり、これらの機能の所要スペース及び所要エネルギはそのまま維持されてしまう、のである。
【０００６】
ＦＰＧＡコンフィギュレーションの設計及び処理については、N. Steiner等による"Torc: Towards an Open Source Tool Flow"、Proceedings of the 19th Annual ACM/SIGDA International Symposium on Field Programmable Gate Arrays、2011に示されており、これは、例えば、プレースメント設定が行われていないネットリスト又はこれが行われているネットリストの形態の論理記述を読み出し及び書き込むことができる。これをベースにしてR. K. Soni等は、"Open-Source Bitstream Generation"、21st IEEE Annual International Symposium on Field-Programmable Custom Computing Machines 2013において、ＦＰＧＡコンフィギュレーションを記述するビットストリームの高速な変更の可能性について言及している。個々の基本ユニットをそれぞれ記述するマイクロビットストリームのライブラリを使用することにより、プレースメント設定が行われたネットリストに基づき、既存のコンフィギュレーションに別の複数の論理素子を追加することができる。
【０００７】
C. Lavin等による"RapidSmith: Do-it-Yourself CAD Tools for Xilinx FPGAs"、2011 21st International Conference on Field Programmable Logic and Applicationsにより、ＦＰＧＡコンフィギュレーション用の別の設計ツールが公知になっている。これをベースにしてB. L. Hutchings及びJ. Keeleyによる論文"Rapid Post-Map Insertion of Embedded Logic Analyzers for Xilinx FPGAs"、22nd IEEE Annual International Symposium on Field-Programmable Custom Computing Machines 2014には、全体回路を新たにコンパイルないしは合成しなくても既存のＦＰＧＡコンフィギュレーションを変更する可能性について記載されている。これにより、これまで利用されていなかったＦＰＧＡの論理素子ないしは領域を使用して、上記に依拠しなければ変更されなかったＦＰＧＡコンフィギュレーションに、後付けで複数の測定回路を取り入れることができる。個々の論理機能の適合化ひいては出力される値ないしは信号の変更は行われない。
【０００８】
上記のことを背景とした本発明の課題は、従来技術を発展させると共に有利には、プログラム可能な論理チップを含む制御装置を開発する際に、公知のバイパッシングに匹敵する機能を可能にする方法及び装置を提供することである。
【０００９】
この課題は、請求項１に記載した特徴的構成を有する、プログラム可能な論理チップのコンフィギュレーションを変更する方法及び請求項１６に記載した特徴的構成を有するプログラミング装置によって解決される。本発明の有利な実施形態は、従属請求項に記載されている。
【００１０】
すなわち、本発明によれば、プログラム可能な論理チップのコンフィギュレーションを変更する方法が提供され、ここでは、このプログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、このソースコンフィギュレーションの論理記述、特にプレースメント設定が行われたネットリストが少なくとも部分的に利用可能になっており、このプログラム可能な論理チップのソースコンフィギュレーションの論理記述から、１つ以上の論理素子及び／又は接続素子を、置き換えるか又はそのリコンフィギュレーションして、付加的な論理素子を全く有しないか又は１つ以上の付加的な論理素子を有するターゲットコンフィギュレーションの論理記述を作成し、ここでこのターゲットコンフィギュレーションにおいては、ソースコンフィギュレーションの素子が全く利用されないか又は１つ以上の素子が利用されない。複数の対応付け情報に基づき、複数のトランジションポイントを決定し、すなわち、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられておりかつターゲットコンフィギュレーションにおいて、変更した論理機能が設定される複数の論理素子又はそれらの入出力側、特にレジスタ及びドライバを決定し、ここでは少なくとも、ソースコンフィギュレーションにおいてすでに利用していない、プログラム可能な論理チップの論理素子をフリーであるとマーキングし、フリーであるとマーキングしたこれらの論理素子に、ターゲットコンフィギュレーションの付加的な論理素子をプレースメント設定し、利用していない接続素子を介して上記トランジションポイントに接続する。ターゲットコンフィギュレーションの論理記述から、変更したビットストリームを作成し、この変更したビットストリームをプログラム可能な論理チップに書き込む。
【００１１】
プログラム可能な論理チップには、特にＦＰＧＡ、ＣＰＬＤ及びＰＬＤという略語で公知の、複数の論理素子及び複数の接続素子を有するチップが含まれており、これらの論理チップの、詳細なコンフィギュレーションは、チップを新たにスタートさせた後、読み込まれるビットストリームによって決まる。このため、プログラム可能な論理チップは好適にはコンフィギュレーションメモリを有しており、このコンフィギュレーションメモリには、各論理素子及び各スイッチ可能な接続素子に対して少なくとも１ビットを有しており、またこのコンフィギュレーションメモリは有利には、スタティックなメモリセル（ＳＲＡＭ、特にＦＰＧＡの場合）又は不揮発性メモリ（ＦＬＡＳＨ、特にＰＬＤの場合）から構成される。
【００１２】
ここで論理素子とは、レジスタ、真理表値及び遅延ユニットのようなプログラム可能な論理チップの基本ユニットのことであると理解される。論理素子には有利には、特にＦＰＧＡのインタフェースピン用のドライバも、また例えば複数の値を乗算するための、固定に設定される専用の論理回路も含まれる。論理素子のリコンフィギュレーションとは好適には、この論理素子の少なくとも１つの特性を変更することを意味する。例えば、真理表値のリコンフィギュレーションとは、この表の少なくとも１つの出力値をソースコンフィギュレーションとは変更することを意味し得る。専用論理回路の場合、リコンフィギュレーションは、例えば、クロックの印加ないしはこの専用論理回路のアクティベート又は非アクティベートであってもよい。
【００１３】
ソースコンフィギュレーションの１つ以上の論理素子及び／又は接続素子の置き換え又はリコンフィギュレーションは有利には複数の対応付け情報に基づいて行われ、これらの対応付け情報は特にソースコンフィギュレーションのメーカから供給され得る。ソースコンフィギュレーションの完全な論理記述が利用できない場合、有利には上記の対応付け情報には、少なくとも利用可能な複数の入力信号及び考えられ得る出力点が含まれる。これらの対応付け情報には、ソースコンフィギュレーションのメーカから直接示されたトランジションポイントのリストが含まれ得るが、択一的又は補足的にはユーザが１つ以上のトランジションポイントをあらかじめ設定することが可能である。トランジションポイントの入力側の信号路に少なくとも１つの付加的な論理素子又はリコンフィギュレーションされた論理素子が含まれる場合、特にこのトランジションポイントに、変更した論理機能が設定される。論理機能には好適には、所定の個数の連続した論理素子が含まれており、ここでは少なくとも部分的には第１の論理素子の出力側が第２の論理素子の入力側に接続されているため、この論理機能の入力側から出力側へと通じる１つの信号路が得られる。論理機能は有利には、信号を受信するためにコンフィギュレーションされた、プログラム可能な論理チップのインタフェースピンを起点として考察される。
【００１４】
ターゲットコンフィギュレーションの付加的な論理素子とは、ターゲットコンフィギュレーションでは信号路に配置されるが、ソースコンフィギュレーションでは、直接的にも、間接的にも、すなわち別の論理素子を介しても、プログラム可能な論理チップの出力側ないしはインタフェースピンに接続されていなかった論理素子のことである。さらにターゲットコンフィギュレーションを高いＦＰＧＡクロックレートで動作させることできるようにするため、有利にはフリーの論理素子を、各トランジションポイントの近傍（例えば所定の半径内）で使用する。これにより、長い信号路による過剰な遅延が回避される。
【００１５】
ここでは複数のレベルでＦＰＧＡのコンフィギュレーションを表すことができる。最も下のレベルにはコンフィギュレーションを記述するビットストリームがあり、このビットストリームは、ＦＰＧＡのコンフィギュレーションメモリに直接書き込むことができる。つぎの高さのレベルには、プレースメント設定されたネットリストの形態の論理記述があり、ここでは所望の機能が、すでに論理素子及び接続素子にマッピングされており、したがってビットストリームに変換することができる。つぎの高さのレベルは、プレースメント設定されてないネットリストの形態の論理記述を構成しており、ここでは各ＦＰＧＡチップの具体的な素子へのマッピングがまだ行われていない。コンフィギュレーションを作成する際の手法に応じて、さらに高い抽象化レベルを設けることができるため、ＶＨＤＬ又はSystemCのようなハードウェア記述言語でコンフィギュレーションを記述することでき、この記述は、引き続いてネットリストに変換される。この記述をMatlab又はSimulinkのような技術的な計算環境のブロック図の形態とすることも可能である。なぜならば例えばXilinx System Generatorを用いて、ハードウェア記述言語のＦＰＧＡコンフィギュレーションの表現にこのブロック図を変換できるからである。ここでは、このブロック図に基づいて自動的に、考えられ得るトランジションポイントのリストを作成することも可能であり、ここでこのリストには、例えば、ブロックないしはサブシステムの入力側及び出力側に対応する複数の論理素子が含まれている。
【００１６】
変更したビットストリームの書き込みは全体的に行うか又は差分的に行うことが可能であり、すなわち、有利には変更した論理素子又はリージョンだけに対して、変更したビットストリームを書き込む。プログラム可能な論理チップへの、変更したビットストリームの書き込みとは特に、このプログラム可能な論理チップのコンフィギュレーションメモリの書き込みのことを意味しており、差分書き込みの際には好適には、１つ以上のリコンフィギュレーションした論理素子もしくは接続素子、又は、付加的な論理素子もしくは接続素子を含む、コンフィギュレーションメモリのフレームないしはアドレス領域だけが書き込まれる。ここでは、プログラム可能な論理チップの初期化時に読み出されてコンフィギュレーションメモリのコンテンツが求められる不揮発性メモリに書き込むようにすることも可能であり、これにより、プログラム可能な論理チップへの、変更したビットストリームの書き込みを間接的に行うことができる。
【００１７】
本発明による方法の重要な利点は、論理機能における小規模の変更を極めて高速に実行できることである。なぜならば、論理機能の新たに追加した部分だけをプレースメント設定及びルーティングするだけでよいからである。これにより、ＦＰＧＡを含む制御装置に対しても、内部バイパッシングに匹敵する機能が可能になる。したがって時間をわずかに費やすだけで多数の増分的な変化を実行してテストすることができ、これにより、制御器設計に対して確立されたワークフローが維持される。
【００１８】
ソースコンフィギュレーションのメーカが、オリジナルのビットストリームに加えて、関連する構造情報ないしは対応付け情報も提供することにより、このコンフィギュレーションのすべての論理記述を公開しなくても、論理機能の変更を行うことができる。これにより、メーカは、一方では詳細なソースコードを秘密にすることができ、他方では、実証された論理機能の高速な適合化をユーザができるようにするインタフェースを提供することができる。
【００１９】
さらに、あらかじめ実装されるパーティションインタフェースないしは「仮想ソケット」が不要であることは有利であり、また相応に空いた領域を伴う複数のパーティションへの分割が行われないことにより、ＦＰＧＡチップの既存の論理素子及び接続素子を有効に利用することができる。
【００２０】
別の利点は、有利には不揮発性メモリに格納されるプログラミングビットストリームを適合化することにより、制御装置を新たにスタートさせた後、遅延なしに直ちに所望の機能が得られることである。プログラム可能な論理チップの初期化に使用される不揮発性メモリは、好適にはプログラム可能な論理チップと共にプリント基板に配置されるか又は制御装置に組み込まれているマイクロコントローラ、又は対応してコンフィギュレーションされたＣＰＬＤのような付加的な論理チップによって読み出すことができ、また基本的にはこのプログラム可能な論理チップは、不揮発性メモリを含むことも可能である。
【００２１】
ソースコンフィギュレーションにおいて十分に多くのフリーの論理素子が利用可能である場合には、もはや利用していない論理素子からトランジションポイントへの接続だけを除去し、はじめの段階ですでに利用されていない論理素子だけを用いて、変更した論理機能を実現することが可能である。これにより、上記の対応付け情報が、トランジションポイント及び元々フリーになっている論理素子のリストだけを含む場合も、プログラム可能な論理チップのコンフィギュレーションの変更が可能になる。
【００２２】
本発明の有利な実施形態によれば、ターゲットコンフィギュレーションにおいて利用されずかつ出力側が、少なくとも１つのトランジションポイントの１つ以上の入力側だけに接続されている、ソースコンフィギュレーションの論理素子もフリーであるとマーキングされる。すなわち、ソースコンフィギュレーションでは、論理素子の出力側がトランジションポイントの入力側に接続されているかまた接続されていたが、ターゲットコンフィギュレーションではこのトランジションポイントのこの入力側が他の論理素子に接続される場合、この論理素子は、ターゲットコンフィギュレーションでは利用されず、フリーであるとマーキングすることができる。さらに、有利には対応する接続素子が、利用されていないとマーキングされる。ここで、対応する接続素子には、特にスイッチ可能な接続素子が含まれており、これらの接続素子は、ソースコンフィギュレーションにおいて、フリーであるとマーキングされた論理素子の出力側と、１つ以上の導体路とを接続し、この１つ以上の導体路と、１つ以上のトランジションポイントの１つ以上の入力側とを接続し、また好適にはこれをターゲットコンフィギュレーションにおいて、接続されていない１つ以上の導体路と接続する。もはや利用されない論理素子を上記のように解放ないしはクリーンアップすることにより、リコンフィギュレーションに利用可能な論理素子のフリーの領域ないしは個数を最大化することができる。論理素子及び接続素子のこのような解放は、ソースコンフィギュレーションが、ＦＰＧＡチップの資源をほぼ完全に占有している場合には特に有利である。
【００２３】
本発明の特に有利な実施形態では、前のステップにおいてフリーであるとマーキングした論理素子の入力側だけに出力側が接続されているすべての論理素子を同様にフリーであると再帰的にマーキングする。すなわち、論理素子の出力側が、前のステップにおいてフリーであるとマーキングした論理素子の入力側だけに接続されている場合には、これによって出力値が廃棄されることになるため、この論理素子はもはや利用されず、同様にフリーであるとマーキングすることが可能である。これにより、もはや必要のないすべての論理素子が段階的に解放され、また好適にはもはや必要な接続素子も段階的に解放される。
【００２４】
本発明の特に有利な別の実施形態によれば、あらかじめ設定したリージョンのすべての論理素子を、ソースコンフィギュレーションの１つ以上の置き換えられた論理素子だけ、又はトランジションポイントの入力側だけ、フリーであるとマーキングし、対応する接続素子を利用していないとマーキングし、引き続き、１つ以上の置き換えられた論理素子を除いて、あらかじめ設定されたリーションのすべての論理素子を新たにプレースメント設定して、利用していない接続素子と接続する。これにより、（例えば各トランジションポイントの周りの所定の半径に基づいて）上記のリージョンを適切に選択する際には、プレースメント設定ないしはルーティングの最適化も行うことができ、これによって必要な設計時間がわずかに増えるだけで、格段に最適化された時間的な特性が保証される。
【００２５】
本発明の極めて有利な実施形態では、ソースコンフィギュレーションにおいて使用されておりかつ上記のあらかじめ設定したリージョンにおいて複数の論理素子のうちの１つで終端する接続素子を、少なくとも、上記のあらかじめ設定したリージョン外のつぎに接続される論理素子まで、利用していないとマーキングする。これによって保証されるのは、このあらかじめ設定したリージョンにおいて、最適なルーティングのために十分な接続素子が利用できることである。
【００２６】
ソースコンフィギュレーションの読み込みのステップには好適には、ビットストリームの読み込みと、少なくともビットストリームの複数の部分に対して行われる、このビットストリームの、論理記述への変換とが含まれている。この変換は特に、使用されるプログラム可能な論理チップのアーキテクチャ情報に基づいて行うことができ、すなわち、ビットストリームにおける位置と、プログラム可能な論理チップにおける論理素子との間の関係が、使用されるプログラム可能な論理チップのアーキテクチャ情報に基づいて作成される。
【００２７】
ここで有利であるのは、変更したビットストリームが、ターゲットコンフィギュレーションに基づいて作成される場合であり、ここでこれは、変更した論理素子、したがってリコンフィギュレーションすべき論理素子に対して、ビットストリームにおける位置と、プログラム可能な論理チップにおける論路素子との間の関係が形成され、元々のビットストリームが、対応する位置において変更されることによって行われる。ここでは、変更した論理素子及び接続素子だけを記述するか又は少なくとも１つの変更した論理素子が存在するアドレス領域だけを含む差分ビットストリームを作成することが可能である。したがって適切なアーキテクチャ情報ないしは対応付け情報が利用できる場合には、最小のデータだけを書き込めばよい。
【００２８】
択一的に有利であるのは、上記の変更したビットストリームをターゲットコンフィギュレーションに基づいて作成する場合であり、ここでこれは、ターゲットコンフィギュレーションのプレースメント設定したネットリストを新しい完全なビットストリームに変換することによって行われる。ターゲットコンフィギュレーション全体のプレースメント設定したネットリストが利用できる場合、変更したビットストリームを高速に作成することができる。
【００２９】
有利には、少なくとも１つの信号路を含む、変更すべき論理機能に対し、少なくとも変更の後、信号伝搬時間を求める。有利にはプログラム可能な論理チップのターゲットコンフィギュレーションにおける信号路であって、その途中に少なくとも１つの付加的な又はリコンフィギュレーションされる論理素子又は接続素子が設けられている信号路に対し、信号伝搬時間を推定する。ここでこの推定は、ターゲットコンフィギュレーションにおいてこの信号路の順次連続している複数の論理素子の個数をカウントし、各論理素子に一定の信号伝搬時間を対応付けることによって行われる。択一的にはつぎのようにすることも可能である。すなわち、プログラム可能な論理チップのターゲットコンフィギュレーションにおける信号路であって、その途中に少なくとも１つの付加又はリコンフィギュレーションされる論理素子が設けられている信号路と、ソースコンフィギュレーションにおける対応する信号路とを比較することも可能であり、ここでこれは特に、ターゲットコンフィギュレーションにおける信号路の順次連続する論理素子の個数と、ソースコンフィギュレーションにおける対応する信号路の順次連続する論理素子の個数とをカウントして比較し、各論理素子に一定の信号伝搬時間を対応付けることによって行われる。これによって迅速かつ簡単に確認することができるのは、ターゲットコンフィギュレーションが、予測としてソースコンフィギュレーションと同じクロックレートが動作できることが否か、又はこの回路の時間特性において複数の問題が予想されるか否かである。
【００３０】
特に有利には、信号路における論理素子の個数に基づいて論理素子の信号伝搬時間を推定する代わりに、アーキテクチャ情報によって得られる最短及び最長の信号伝搬時間を求めて、これを後続の考察に使用する。好適には個々の論理素子のそれぞれ最短の信号伝搬時間及びそれぞれ最長の信号伝搬時間を１つの信号路にわたって足し合わせることができ、この総和が、特に後続の複数の論理素子の時間的な要求を満たしているか否かをチェックすることができる。
【００３１】
特に有利には、変更すべきすべての論理機能に対して少なくとも１つの信号伝搬時間を求め、１つ以上の閾値と比較する。ここでこの閾値は、特にこの変更した論理機能に続くトランジションポイントの時間的な要求を記述するものである。推定した又は計算した遅延の変化が、閾値を上回る場合、警告及び／又はターゲットコンフィギュレーションのプレースメント設定したネットリストの変更が行われる。例えばこの変更には、クロックの局所的な増大及び／又はレジスタの挿入が含まれ得る。これにより、クリティカルになり得る時間特性についてユーザに前もって指摘しておくことができ、また好適には、ターゲットコンフィギュレーションの所定の時間的な特性を確保するために手段を講じることができる。
【００３２】
ターゲットコンフィギュレーションには有利には少なくとも１つの第１マルチプレクサが含まれており、この第１マルチプレクサは特にトランジションポイントの直前に配置されている。ここで追加されるすべての論理素子は、第１マルチプレクサのただ１つの入力側を含む複数の新たな信号路に配置されている。これにより、バイパス機能をこのマルチプレクサの第１入力側に接続し、これまでの論理機能をこのマルチプレクサの第２入力側に接続することにより、ランタイムにも、すなわちターゲットコンフィギュレーションの実行中にも、バイパス機能とオリジナルの機能との間で切り換えを行うことができる。この際には、既存のマルチプレクサの空きの入力側を利用することができるか又はマルチプレクサを挿入することができる。
【００３３】
上記の複数の新しい信号路には特に、プログラム可能な論理チップの少なくとも１つのインタフェースピンが含まれており、この少なくとも１つのインタフェースピンは有利には、プログラム可能な論理チップのデバッギングインタフェースが割り当てられている。このインタフェースピンは、上記の新しい信号路だけに利用される必要はなく、別の複数の機能を提供することも可能である。有利にはプロトコルを設定して、上記のインタフェースピンを介して、この信号路に必要なデータをトンネルさせることも可能である。この点においてこのインタフェースピンは、物理的に設けられるピンである必要はなく、好適には上記のデバッグインタフェースを利用して形成されるインタフェースないしはデータチャネルとすることも可能である。すなわち、ＦＰＧＡチップの少なくとも１つのインタフェースピンがまだ占有されていない、ないしは機能を補足することができる限りは、外部バイパッシングを行うことができるか又は種々異なる複数の内部的な論理機能間で切り換えるためにマルチプレクサを外部から駆動制御することも可能である。デバッギングインタフェースに割り当てられるインタフェースピンが他の機能によって占有されることはまれであり、したがって利用可能であることが多い。１つ以上の別のインタフェースピンがまだ占有されていない場合には、外部バイパッシングの際により高いデータレートを保証することも基本的に可能であり、ここでこれは、例えばＬＶＤＳのような適切なプロトコルにしたがって伝送するために上記の複数のインタフェースピンを使用することによって行われる。
【００３４】
ターゲットコンフィギュレーションが、特にトランジションポイントの直後に配置されている少なくとも１つの第２マルチプレクサを有すると有利であり、ここでこの第２マルチプレクサは、論理素子の少なくとも１つの入力側に接続されている。これによって可能になるのは、機能の入力信号を変更することであり、場合によっては元々の機能を上記の変更した入力信号によって引き続き使用することができる。
【００３５】
ターゲットコンフィギュレーションには有利には少なくとも１つの付加的なレジスタが含まれており、このレジスタの出力側は有利にはインタフェースピンに接続されており、このインタフェースピンは、特にプログラム可能な論理チップのデバッギングインタフェースに割り当てられている。このレジスタを信号路に配置することにより、デバッギングインタフェースに接続されているＲＣＰシステムによって、対応する信号を検出して評価することもできる。
【００３６】
本発明はさらに、制御装置を適合化する方法に関しており、この制御装置には、制御機能を実行するために構成されたプログラム可能な論理チップが含まれており、ここでこのプログラム可能な論理チップは、本発明による方法によってリコンフィギュレーションされる。したがって本発明による方法を利用することにより、ＦＰＧＡを含む制御装置も高速かつ容易に適合化することができるため、新しい制御機能を繰り返して開発することができる。本発明において制御機能という概念は好適には、上記の制御装置ないしはプログラム可能な論理チップによって提供されるすべての機能のことを意味し、特に閉制御ループのなしにアクチュエータを駆動制御することも意味する。
【００３７】
変更したビットストリームの、プログラム可能な論理チップへの書き込みのステップは好適には少なくともこのプログラム可能な論理チップの初期化時に行われ、特にマイクロプロセッサによって実行される。これにより、適合化された論理機能ないしはバイパス機能は、ＦＰＧＡないしはこのＦＰＧＡを含む制御装置のスタート時点にはすぐに利用可能である。
【００３８】
本発明はさらに、プログラム可能な論理チップを書き込むためのプログラミング装置に関しており、このプログラミング装置には、プロセッサ、プログラミングインタフェース及び／又はデバッギングインタフェースが含まれており、このプログラミング装置は、本発明による方法を実行するように構成されている。
【００３９】
本発明はさらに、コンピュータ読み出し可能な記憶媒体を有するコンピュータプログラム製品に関しており、この記憶媒体には複数の命令が埋め込まれており、これらの複数の命令は、これらが計算ユニットによって実行される場合に、上記の計算ユニットを構成し、これによって本発明による方法が実行されるようにする。
【００４０】
以下、図面を参照して本発明を詳しく説明する。ここでは同じ部分に同じ参照符号が付されている。図示した実施形態は極めて概略的に示されており、すなわち間隔ならびに水平及び垂直方向の寸法は縮尺通りではなく、また特に断らない限り、導出可能な幾何学的な関係も互いに有しない。
【図面の簡単な説明】
【００４１】
【図１】本発明による方法の有利な第１実施形態の概略流れ図である。
【図２ａ】プログラム可能な論理チップの変更したコンフィギュレーションを略示する図である。
【図２ｂ】本発明による方法の有利な第２実施形態を略示する図である。
【図３】本発明の方法によってリコンフィギュレーション可能な、プログラム可能な論理チップの概略図である。
【図４】プログラム可能な論理チップを有する制御装置及び本発明によるプログラム装置の概略図である。
【００４２】
ＦＰＧＡチップには、複数の論理素子と、複数の接続素子と、複数のクロックリージョンを含み得るクロック供給部とが含まれている。論理素子には、例えばレジスタ、真理値表（ルックアップテーブルないしはＬＵＴとも称される）、加算器、スイッチ及び遅延ユニットが含まれる。周波数発生器を設けることも可能である。ＦＰＧＡチップの粒度に応じて、これらの素子のうちの複数を１つの基本ユニットにまとめることも可能である。接続素子には好適には種々異なる長さの、例えばＦＰＧＡの複数のリージョンを跨がり得る導体路、及び、これらの導体路と論理素子との間のスイッチ可能な接続部が含まれる。電圧供給部をオンにした後、ＦＰＧＡはビットストリームによって初期化される。このビットストリームには好適には、論理素子毎に少なくとも１つのビットが含まれる。これにより、それぞれの応用に適応された論理回路が標準チップ上に実現可能になる。ここで論理素子のコンフィギュレーションのための１ビットとは、論理素子と信号とを接続するスイッチのことであると理解することも可能である。この意味において１つのＡＮＤゲートに１つ以上のコンフィギュレーションビットを対応付けることも可能である。
【００４３】
図１に示した図は、本発明による方法の有利な第１実施形態の概略流れ図を示している。
【００４４】
ステップＳ１（読み込み）では、ソースコンフィギュレーションの読み込みが行われ、ここでは入力データとして、オリジナルビットストリーム（ビットストリーム１）、ならびに、使用されるＦＰＧＡチップのアーキテクチャ及びソースコンフィギュレーションについての情報（情報）が受信される。この読み込みには、オリジナルコンフィギュレーションのプレースメント設定されたネットリストないしは論理記述へのビットストリームの変換が含まれ得る。択一的には、入力データとして、上記のビットストリームの他に、ソースコンフィギュレーションの複数の部分の少なくとも一部の論理記述、ならびに、考えられ得る入力信号及びソースコンフィギュレーションの考えられ得るトランジションポイントについての情報を受信することも可能である。この場合にはビットストリームの変換を省略することも可能である。
【００４５】
ターゲットコンフィギュレーションにおいて所望される変更は、ステップＳ２（変更）において、有利には論理記述ないしはプレースメント設定されていないネットリストのようなより高い抽象化レベルにおいて行われる。基本的にはターゲットコンフィギュレーションないしは所望の変更を示すためにＶＨＤＬのようなハードウェア記述言語を使用することも可能である。
【００４６】
例えばユーザは新しい入力信号を選択して、適合化させた論理機能を各トランジションポイントに設定することができる。上記のコンフィギュレーションの変更は、ＦＰＧＡチップないしは制御装置に接続された標準のＰＣ及び／又は専用のプログラミング装置上で実行されるプログラムにおいてインタラクティブに行うことも可能である。ＦＰＧＡに接続可能な、外部接続式のデバッグインタフェースを有する標準のＰＣをプログラミング装置と称することも可能である。
【００４７】
以下ではＦＰＧＡマネージャと称されるプログラムは、例えばコンフィギュレーションメーカの対応付け情報を読み込むことでき、好適には、使用されるＦＰＧＡチップのアーキテクチャ情報ならびに少なくとも１つの論理記述、特にプレースメント設定したネットリスト、及び／又はソースコンフィギュレーションのビットストリームを読み込むことができる。このＦＰＧＡマネージャが、ソースコンフィギュレーションを、少なくとも部分的に、プレースメント設定していないネットリストの論理記述又はブロック図のようなより高い抽象レベルにおいて表すように構成されていると有利である。この場合、ユーザは、各抽象レベルの１つ以上の基本ユニットを選択して適合させることができる。好適には基本ユニットの消去又は挿入も行われる。これらの基本ユニットは、ＦＰＧＡチップの１つ以上の論理ユニットを含んでいてよい。例えば、ＦＰＧＡの複数の論理ユニットから、頻繁に使用される機能を基本ユニットとしてあらかじめ設定することも可能である。有利にはユーザはさらにＦＰＧＡのあらかじめ設定したトランジションポイント及び／又はインタフェースピンを選択して、変更した論理機能の信号をこれらに供給することができる。複数のあらかじめ設定した条件の検査を行うことも可能であり、ここでは特に、これらのあらかじめ設定した条件が満たされない場合、デバッグインタフェースを介して特別な信号を出力することができる。これにより、誤って設定された論理機能又は無効な入力データを迅速に識別することができる。
【００４８】
ステップＳ３（クリーンアップ）では好適には、もはや利用しなくなった論理素子をソースコンフィギュレーションから取り除いて、変更した論理機能を実現するためにより多くのフリーな論理素子が利用できるようにする。
【００４９】
ここでは、消去した基本ユニットに基づいて、上記のもはや利用しなくなった論理素子を求めるようにＦＰＧＡマネージャを構成することも可能である。
【００５０】
ステップＳ４（プレースメント設定）では、フリーの論理素子に、ターゲットコンフィギュレーションにおいて付け加えられる論理機能ないしは論理素子をプレースメント設定する。引き続いて、所望の信号路を得るため、接続素子をコンフィギュレーションする。これにより、プレースメント設定したネットリストとしてターゲットコンフィギュレーションが得られる。
【００５１】
論理機能ないしは論理素子のプレースメント設定及び接続の枠内において好適には、例えば、あらかじめ設定したクロック周波数を得るために必要な信号伝搬時間が維持されることなどのタイミングに関する要求を考慮する。
【００５２】
ここでは追加された基本ユニットに基づいて、付加された論理素子を求めるようにＦＰＧＡマネージャを構成することも可能である。
【００５３】
ステップＳ５（変換）では、プレースメント設定したネットリストが、変更したビットストリームに変換され、これによってこのビットストリームは、出力データ（ビットストリーム２）として利用可能になる。
【００５４】
特にソースコンフィギュレーションの論理記述が部分的にしか利用可能でない場合、上記の変換は実質的に、付加される論理ユニット及び／又は接続ユニットに適したマイクロビットストリームを生成し、このマイクロビットストリームを元々のビットストリームに加えて、上記の変更したビットストリームを得ることであってもよい。
【００５５】
ＦＰＧＡチップはステップＳ６（書き込み）において、上記の変更したビットストリームで書き込まれ、これによってリコンフィギュレーションされる。時間を浪費するプレースメント設定及びルーティングは、変更した少数の論理素子だけに行われるため、このリコンフィギュレーションは高速に行うことが可能であり、また基本的には完全なネットリストがわからなくても可能である。
【００５６】
図２ａに示した図には、プログラム可能な論理チップの変更したコンフィギュレーションが略示されている。
【００５７】
コンフィギュレーション２０１には、入力信号ａ及びｂをそれぞれ供給する２つのトランジションポイント２０２及び２０３と、関数の結果ｙが設定されるトランジションポイント２０４とが含まれている。これらのトランジションポイントは、有利にはユーザにより、ＦＰＧＡマネージャを用いて決定されるか、又は元々のコンフィギュレーションのメーカによって供給されかつ想定され得るトランジションポイントのリストに基づき、手動又は自動的に選択することが可能である。
【００５８】
ここに概略的に示されているのは、元々の論理関数ｆによって占有される領域２０５が開放されており、また付け加えた論理関数ｙ＝ｇ(ａ，ｂ)が、フリーないしは利用されていない論理素子及び接続素子を使用することによって領域２０６に実現されているため、コンフィギュレーション２０１の外側の領域は、この変更によって触れられないままになっていることである。
【００５９】
図２ｂに示した図には、本発明による方法の有利な第２実施形態が略示されている。
【００６０】
この方法のはじめには、このＦＰＧＡの元々のコンフィギュレーション２１０及び対応付け情報２１１が読み込まれる。ＦＰＧＡビットストリーム１のソースコンフィギュレーションには論理関数ｙ＝ｆ（ａ，ｂ）が含まれており、これを置き換える。これに対する情報として、入力信号ａ及びｂがそれぞれ設定されている２つのトランジションポイントと、関数値ｙを設定しようとしているトランジションポイントとが示されている。使用されるＦＰＧＡチップに依存してビットストリーム２１０は、一方では位置と論理素子との間の固定の対応付けを有することでき、又は、他方ではアドレス／コンフィギュレーションペアのリストを含むことができる。これによって基本的にはスタートアドレスを起点として、完全なアドレス領域（又は完全なＦＰＧＡ）を新たに書き込むことができるか又はこれらの論理素子を個別にリコンフィギュレーションすることができる。
【００６１】
ステップ２１２では、ビットストリーム２１０が、プレースメント設定したネットリストに変換される。プレースメント設定したネットリスト２１３は、指定されたトランジションポイントと、好適にはこのＦＰＧＡのアーキテクチャ情報とを使用してステップ２１４で分析され、これに基づき、ステップ２１５ではクリーンアップが行われ、ここでは、使用されていない論理素子及び接続素子が、フリーないしは利用されていないとマーキングされる。これによって、クリーンアップしたこのＦＰＧＡネットリスト２１６は、フリーな論理素子ないしは領域を有しており、新たな機能を実現するためにこれらを使用することができる。
【００６２】
特にブロック図を用いて表すことができる新たな論理機能２１７は、有利には元々の関数と同じ入力信号ａ、ｂに基づいており、かつ、変更した値ｙ＝ｇ（ａ，ｂ）を出力する。したがってステップ２１８では、変更した論理機能の合成が行われ、すなわち部分機能の論理記述が、プレースメント設定していない部分ネットリスト２１９に変換される。
【００６３】
トランジションポイントについての情報２１１を起点として、ステップ２２０では、クリーンアップしたＦＰＧＡネットリスト２１６に部分ネットリスト２１９が挿入されるため、完全なコンフィギュレーションを記述するネットリスト２２１が得られる。
【００６４】
まだプレースメント設定していない新たな論理機能２１７は、ステップ２２２において、フリーの論理素子にプレースメント設定され、またこの論理機能は、利用されていない接続素子によってルーティングされる。ステップ２２３では、完全なネットリストが新たなビットストリーム２２４に変換される。これにより、ターゲットコンフィギュレーションを記述する完全なＦＰＧＡビットストリーム２が得られ、このビットストリームを直接又は間接的に、プログラム可能な論理チップに書き込むことができる。
【００６５】
図３に示した図には、プログラム可能な論理チップ１が略示されている。ここではインタフェースピン２、３、４、５、６、７を介してＦＰＧＡ１に入力信号が供給される。図示した例示的なコンフィギュレーションは、簡略化して示された複数の機能ブロックを有しており、これらの機能ブロックは、基本的に真理値表及びフリップフロップのような一連の基本論理ユニットから組み立てられている。インタフェースピン２、３、４に加わる入力信号は、例えば、第１の論理機能を計算する機能ブロック８に供給される。これに相応してインタフェースピン５、６、７に加わる入力信号は、第２の論理機能を計算する機能ブロック９に供給される。機能ブロック８及び９の信号は、第３の論理機能を計算する別の機能ブロック１０に供給される。第３論理機能の機能の結果は、マルチプレクサ１１を介して、プログラム可能な論理チップ１のインタフェースピン１２に供給され、これによって出力信号として出力される。例示的な信号路１６は、破線で示されている。したがって出力信号がインタフェースピン１２に出力される図示の論理機能には６個の信号路が含まれており、これらの信号路は、それぞれインタフェースピン２、３、４、５、６、７のうちの１つにおいて始まっている。
【００６６】
機能ブロック８、９又は１０のうちの１つを変更又は置き換えることにより、出力される論理機能を変更することができる。元々の論理機能を完全に交換するのとは択一的に、この元々の論理機能を維持して、変更した論理機能をコンフィギュレーションに組み込む、及び、対応する機能ブロックの出力側にマルチプレクサを配置することによって切り換えができるようにすることも可能である。さらに、論理機能の入力信号の前処理部を挿入することも可能である。特に、１つ以上の条件に依存して複数の入力信号の妥当性についての真理値を出力する付加的な論理機能を組み込むことが可能である。データ整合性を維持するために付加的なレジスタを挿入することも可能である。これにより、このＦＰＧＡ１を制御装置に使用する場合、内部バイパッシングを行うことができる。
【００６７】
出力ピン１２に隣接して配置されたマルチプレクサ１１の別の入力側と、別のインタフェースピン１４とを接続することにより、インタフェースピン１２に外部信号を出力することもできる。同期化の問題を回避するために好適であるのは、インタフェースピン１４の信号をレジスタ１５に供給して、所定の信号がマルチプレクサ１１につねに加わるようにする場合である。インタフェースピン１３を介して、マルチプレクサ１１の所望の入力を選択して、信号路１６に配置される出力信号を変更することができる。インタフェースピン１４及び１３が、ＪＴＡＧのようなデバッギングインタフェースに対応付けられると有利である。なぜならば、これらのピンは、一般的に占有されておらず、及び／又は、好適には既存のデバッグ機能プロトコルを拡張して、このデバッギングインタフェースを介し、このＦＰＧＡに又はこのＦＰＧＡから複数の信号を伝送できるからである。これにより、このＦＰＧＡ１を制御装置に使用する場合には外部的なバイパッシングも可能である。
【００６８】
図４に示した図には、プログラム可能な論理チップ３３を備えた制御装置３０及び本発明によるプログラミング装置４０の概略図が示されている。
【００６９】
制御装置３０には、特にフラッシュメモリである不揮発性メモリ３２と、ＦＰＧＡ３３とに接続されているマイクロコントローラ３１が含まれている。マイクロコントローラ３１はさらに、特に車両データバス用の１つ以上の図示しないインタフェース及び／又は別の周辺装置に接続することが可能である。
【００７０】
プログラム可能な論理チップ３３は、有利には制御機能を提供し、かつ、図示の実施例においてセンサ３７と、アクチュエータ３６を駆動制御する駆動制御回路３５とに接続されている。さらにＦＰＧＡはプログラミング及び／又はデバッギングインタフェース３４を有する。
【００７１】
通常時、プログラミングインタフェース３４は接続されておらず、この制御装置は、１つ以上の制御機能を提供し、例えばアクチュエータ３６は、ブラシレス電動モータであってよく、その回転数及び／又は出力される回転トルクが、プログラム可能な論理チップ３３によって制御される。
【００７２】
プログラミング装置４０には、マイクロコントローラ４１が含まれており、このマイクロコントローラは、特にフラッシュメモリである不揮発性メモリ４２と、プログラミング及び／又はデバッギングインタフェース４４とに接続されている。
【００７３】
破線で示した接続線路４３を介して、プログラミング装置４０と、制御装置３０ないしはそこに配置されたＦＰＧＡ３３とを接続することができる。したがってプログラム可能な論理チップ３３をリコンフィギュレーションすることにより、わずかなコストで制御機能を適合化することができる。
【００７４】
基本的には、プログラミング装置と、マイクロコントローラ３１又は不揮発性メモリ３２とを接続し、変更したコンフィギュレーションを不揮発性メモリ３２にまず書き込み、その後、間接的にプログラム可能な論理チップ３３に書き込むことにより、コンフィギュレーションの変更を行うことも可能である。このようにすることの利点は、制御装置３０の後続の都度の初期化時にも、この変更したコンフィギュレーションが直ちに利用可能になることである。
【００７５】
図に示したデバッギングインタフェース３４を利用することの利点は、このデバッギングインタフェースにより、種々異なる複数の論理機能ないしは制御機能間の切り換えが制御装置の動作中に可能になることである。このためには、変更したコンフィギュレーションにおいて、例えば、駆動制御回路３５に接続されている、ＦＰＧＡ３３のインタフェースピンの直前にマルチプレクサを配置することができ、ここでこのマルチプレクサの第１入力は有利には元々の制御機能に接続され、このマルチプレクサの第２入力は、変更した制御機能に接続される。
【００７６】
特に有利には、スルー接続すべき入力の選択は、切り換え入力に接続されているレジスタを介して行われるため、このレジスタの内容により、実際の制御機能が決定される。デバッギングインタフェース３４を介してデータチャネルを構成することにより、レジスタの内容をプログラミング装置４０によって書き込みことができる。これによってユーザは、プログラミング装置４０を介して、種々異なる複数の制御機能間で切り換えることができる。これにより、新たな制御装置ないしは制御機能の設計がさらに促進される。
【００７７】
本発明の別の有利な実施形態では、ソースコンフィギュレーションの信号路にレジスタが配置され、このレジスタの出力側は好適には、デバッギングインタフェースに割り当てられたＦＰＧＡのピンに接続される。これにより、このレジスタは、ソースコンフィギュレーションの信号を検出して、この信号を外部のＲＣＰシステムに伝送することができる。トリガ論理を付加することにより、あらかじめ設定した複数の条件の評価に基づいて検出の時点を求めることができる。択一的又は補足的には、上記の信号をプログラム可能な論理チップ上に一時的に記憶することも可能である。したがって本発明による方法によって可能になるのは、ソースコンフィギュレーションのソースコードないしは完全な論理記述がなくても測定機能を追加できることである。
【図１】
0006530358.tif 000002
【図２ａ】
0006530358.tif 000003
【図２ｂ】
0006530358.tif 000004
【図３】
0006530358.tif 000005
【図４】
0006530358.tif 000006