JP2017054511A - プログラム可能な論理チップのコンフィギュレーションを変更する方法 - Google Patents

プログラム可能な論理チップのコンフィギュレーションを変更する方法 Download PDF

Info

Publication number
JP2017054511A
JP2017054511A JP2016175573A JP2016175573A JP2017054511A JP 2017054511 A JP2017054511 A JP 2017054511A JP 2016175573 A JP2016175573 A JP 2016175573A JP 2016175573 A JP2016175573 A JP 2016175573A JP 2017054511 A JP2017054511 A JP 2017054511A
Authority
JP
Japan
Prior art keywords
logic
configuration
elements
programmable logic
chip
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.)
Granted
Application number
JP2016175573A
Other languages
English (en)
Other versions
JP6530358B2 (ja
JP2017054511A5 (ja
Inventor
メアテンス フランク
Mertens Frank
メアテンス フランク
ドレスラー マーク
Dressler Marc
ドレスラー マーク
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.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
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
Priority claimed from DE102015115022.0A external-priority patent/DE102015115022A1/de
Priority claimed from EP15184169.9A external-priority patent/EP3142032B1/de
Application filed by Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2017054511A publication Critical patent/JP2017054511A/ja
Publication of JP2017054511A5 publication Critical patent/JP2017054511A5/ja
Application granted granted Critical
Publication of JP6530358B2 publication Critical patent/JP6530358B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラム可能な論理チップを含む制御装置を開発する際に、公知のバイパッシングに匹敵する機能を可能にする。【解決手段】プログラム可能な論理チップのコンフィギュレーションを変更する方法は、ソースコンフィギュレーションを読み込むことにより論理記述が利用可能であり、ソースコンフィギュレーションの論理記述から付加的な論理素子を有するターゲットコンフィギュレーションの論理記述を作成し、対応付け情報に基づき複数のトランジションポイントを決定し、利用していない論理素子をフリーであるとマーキングし、マーキングされた論理素子にプレースメント設定し、利用していない接続素子を介してトランジションポイントに接続し、ターゲットコンフィギュレーションの論理記述から、変更したビットストリームを作成しプログラム可能な論理チップに書き込む。【選択図】図1

Description

本発明は、プログラム可能な論理チップのコンフィギュレーションを変更する方法と、制御機能を実行するように構成されたプログラム可能な論理チップを含む制御装置を適合化する方法と、プログラム可能な論理チップを書き込むプログラミング装置とに関する。
多くの技術分野において、物理的なプロセスを制御するために制御装置が使用されており、この制御装置のマイクロコントローラはサイクリックに1つのプログラムを実行し、ここでこのプログラムには、1つ以上のセンサの新しい測定値を求めることと、測定値と目標値との比較に基づいて1つ以上のアクチュエータを駆動制御することとが含まれている。新しい制御装置ないしは制御アルゴリズムの設計を促進するため、既存の制御装置に載置されて、個々の(部分的な)機能だけが置き換えられることが多い。バイパッシングという語でも知られているこの公知の手法は、既存の制御装置上で完全に実行できる(内部バイパッシング)か、又は、1つ以上の新しい機能の呼び出しのため、いわゆるバイパス機能のため、専用のRapid Control Prototyping System(略してRCPシステム)を用いることできる(外部バイパッシング)かいずれかである。個々の機能の置き換えは、好適にはジャンプ命令を適合化することによって行うことができる。
欧州特許出願公開第2869145号明細書からは、制御装置の制御プログラムを変更する方法が公知であり、この制御プログラムには、複数の第1の関数が含まれており、これらの関数のうちの少なくとも1つが1つのアクチュエータを制御するために形成されており、ここでは記憶装置が設けられており、この記憶装置は、これらの第1の関数に対応付けられているサブプログラムによって占有される記憶領域を有する。この制御プログラムは、バイナリのプログラムコードとして設けられており、この制御プログラムのプログラムコードには、上記の複数の第1の関数のうちの1つからの呼び出し際のジャンプアドレスが設けられており、このジャンプアドレスは、関数呼び出しに関連するサブプログラムのメモリアドレスをポイントしており、このサブプログラムは、複数のバイナリのプログラムコードの1つの列として設けられており、このサブプログラムのプログラムコードの列の終わりにはリターンジャンプ命令が設けられている。この制御プログラムのプログラムコードでは関数呼び出しが行われたか否かが調べられ、この関数呼び出しに関連したジャンプアドレス及びジャンプ命令のアドレスが求められる。ここではサイズを求めることにより、各プログラムによって占有される、メモリのメモリ領域が求められる。各第1の関数に対応するサイズ及びメモリ領域のアドレスを有する、第1の関数に対応する識別子は、コンピュータシステムの一部として形成されている表示ユニットに表示される。このコンピュータシステムにより、上記の複数の第1の関数のうちの少なくとも1つの第1の関数が、消去すべき関数として選択され、この選択された第1の関数のサイズ及びアドレスは、関数構造に記憶され、選択された第1の関数の少なくとも1つの関数呼び出しは非アクティベートされ、及び/又は、第1の関数が第2の関数によって置換され、ここでこの置換は、選択された第1の関数のプログラムコードが、第2の関数のプログラムサードによって上書きされることによって行われる。
極めてダイナミックなシステムをシミュレーション及び制御するため、Field Programmable Gate Array(略してFPGA)という語で公知のプログラム可能な論理チップがますます広範囲に使用されており、このプログラム可能な論理チップは、並列処理及び各応用に適応させた論理回路に起因して、高速に変化する区間も確実に制御する。マイクロプロセッサの場合とは異なってシーケンシャルな処理が行われないため、またジャンプ命令が設けられてないため、FPGA上に実現される制御機能に対しては、これまでバイパッシングが行われていない。FPGAを使用することの別の欠点は、個々の論理機能への小規模の適合化が限定的にしか行えないことにある。なぜならば、この回路はそれぞれ完全に新たに合成し直す必要があるからであり、これには、特にプレースメント設定及びルーティングの最適化に起因して長い時間がかかってしまうからである。したがってプログラム可能な論理チップに対しても論理機能の適合化を簡単にできるようにすることが望ましい。
部分的なリコンフィギュレーションの1つは、例えば米国特許第7902866号明細書から公知の手法であり、この手法により、FPGAのコンフィギュレーションを後でないしはランタイムに変更することできる。このための準備として、設計フェーズにおいて前もってFPGAコンフィギュレーションを複数のパーティションに分割する必要があり、すなわち例えば第1及び第2のパーティションが作成される。第1のパーティションには、変更のない論理機能もしくは常設の論理機能が準備される。この場合に第2のパーティションは、限定された領域であり、この領域に対しては、部分的な新たな合成及び部分的なリコンフィギュレーションが可能であるため、第2のパーティションに配置される複数の論理機能は基本的に変更可能である。しかしながらこの手法は、以下のような一連の欠点を有する。すなわち、
・ 初期設計においてすでに、パーティション分割箇所を計画して固定的に実現しなければならない。
・ 第2のパーティションに実現される機能ないしは実装される論理機能とは無関係に、固定した個数の論理ユニット及び接続素子がリザーブされる。最大限に収容すべき所要の論理素子数をこのためにリザーブしなればならなくなることにより、多くの場合に資源が利用されないままになってしまう。
・ 第1のパーティションに配置されるすべての論理機能は、実際に実現される第2のパーティションの機能がこれらを必要としない場合であっても固定のままであり、これらの機能の所要スペース及び所要エネルギはそのまま維持されてしまう、のである。
FPGAコンフィギュレーションの設計及び処理については、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において、FPGAコンフィギュレーションを記述するビットストリームの高速な変更の可能性について言及している。個々の基本ユニットをそれぞれ記述するマイクロビットストリームのライブラリを使用することにより、プレースメント設定が行われたネットリストに基づき、既存のコンフィギュレーションに別の複数の論理素子を追加することができる。
C. Lavin等による"RapidSmith: Do-it-Yourself CAD Tools for Xilinx FPGAs"、2011 21st International Conference on Field Programmable Logic and Applicationsにより、FPGAコンフィギュレーション用の別の設計ツールが公知になっている。これをベースにして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には、全体回路を新たにコンパイルないしは合成しなくても既存のFPGAコンフィギュレーションを変更する可能性について記載されている。これにより、これまで利用されていなかったFPGAの論理素子ないしは領域を使用して、上記に依拠しなければ変更されなかったFPGAコンフィギュレーションに、後付けで複数の測定回路を取り入れることができる。個々の論理機能の適合化ひいては出力される値ないしは信号の変更は行われない。
上記のことを背景とした本発明の課題は、従来技術を発展させると共に有利には、プログラム可能な論理チップを含む制御装置を開発する際に、公知のバイパッシングに匹敵する機能を可能にする方法及び装置を提供することである。
この課題は、請求項1に記載した特徴的構成を有する、プログラム可能な論理チップのコンフィギュレーションを変更する方法及び請求項16に記載した特徴的構成を有するプログラミング装置によって解決される。本発明の有利な実施形態は、従属請求項に記載されている。
すなわち、本発明によれば、プログラム可能な論理チップのコンフィギュレーションを変更する方法が提供され、ここでは、このプログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、このソースコンフィギュレーションの論理記述、特にプレースメント設定が行われたネットリストが少なくとも部分的に利用可能になっており、このプログラム可能な論理チップのソースコンフィギュレーションの論理記述から、1つ以上の論理素子及び/又は接続素子を、置き換えるか又はそのリコンフィギュレーションして、付加的な論理素子を全く有しないか又は1つ以上の付加的な論理素子を有するターゲットコンフィギュレーションの論理記述を作成し、ここでこのターゲットコンフィギュレーションにおいては、ソースコンフィギュレーションの素子が全く利用されないか又は1つ以上の素子が利用されない。複数の対応付け情報に基づき、複数のトランジションポイントを決定し、すなわち、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられておりかつターゲットコンフィギュレーションにおいて、変更した論理機能が設定される複数の論理素子又はそれらの入出力側、特にレジスタ及びドライバを決定し、ここでは少なくとも、ソースコンフィギュレーションにおいてすでに利用していない、プログラム可能な論理チップの論理素子をフリーであるとマーキングし、フリーであるとマーキングしたこれらの論理素子に、ターゲットコンフィギュレーションの付加的な論理素子をプレースメント設定し、利用していない接続素子を介して上記トランジションポイントに接続する。ターゲットコンフィギュレーションの論理記述から、変更したビットストリームを作成し、この変更したビットストリームをプログラム可能な論理チップに書き込む。
プログラム可能な論理チップには、特にFPGA、CPLD及びPLDという略語で公知の、複数の論理素子及び複数の接続素子を有するチップが含まれており、これらの論理チップの、詳細なコンフィギュレーションは、チップを新たにスタートさせた後、読み込まれるビットストリームによって決まる。このため、プログラム可能な論理チップは好適にはコンフィギュレーションメモリを有しており、このコンフィギュレーションメモリには、各論理素子及び各スイッチ可能な接続素子に対して少なくとも1ビットを有しており、またこのコンフィギュレーションメモリは有利には、スタティックなメモリセル(SRAM、特にFPGAの場合)又は不揮発性メモリ(FLASH、特にPLDの場合)から構成される。
ここで論理素子とは、レジスタ、真理表値及び遅延ユニットのようなプログラム可能な論理チップの基本ユニットのことであると理解される。論理素子には有利には、特にFPGAのインタフェースピン用のドライバも、また例えば複数の値を乗算するための、固定に設定される専用の論理回路も含まれる。論理素子のリコンフィギュレーションとは好適には、この論理素子の少なくとも1つの特性を変更することを意味する。例えば、真理表値のリコンフィギュレーションとは、この表の少なくとも1つの出力値をソースコンフィギュレーションとは変更することを意味し得る。専用論理回路の場合、リコンフィギュレーションは、例えば、クロックの印加ないしはこの専用論理回路のアクティベート又は非アクティベートであってもよい。
ソースコンフィギュレーションの1つ以上の論理素子及び/又は接続素子の置き換え又はリコンフィギュレーションは有利には複数の対応付け情報に基づいて行われ、これらの対応付け情報は特にソースコンフィギュレーションのメーカから供給され得る。ソースコンフィギュレーションの完全な論理記述が利用できない場合、有利には上記の対応付け情報には、少なくとも利用可能な複数の入力信号及び考えられ得る出力点が含まれる。これらの対応付け情報には、ソースコンフィギュレーションのメーカから直接示されたトランジションポイントのリストが含まれ得るが、択一的又は補足的にはユーザが1つ以上のトランジションポイントをあらかじめ設定することが可能である。トランジションポイントの入力側の信号路に少なくとも1つの付加的な論理素子又はリコンフィギュレーションされた論理素子が含まれる場合、特にこのトランジションポイントに、変更した論理機能が設定される。論理機能には好適には、所定の個数の連続した論理素子が含まれており、ここでは少なくとも部分的には第1の論理素子の出力側が第2の論理素子の入力側に接続されているため、この論理機能の入力側から出力側へと通じる1つの信号路が得られる。論理機能は有利には、信号を受信するためにコンフィギュレーションされた、プログラム可能な論理チップのインタフェースピンを起点として考察される。
ターゲットコンフィギュレーションの付加的な論理素子とは、ターゲットコンフィギュレーションでは信号路に配置されるが、ソースコンフィギュレーションでは、直接的にも、間接的にも、すなわち別の論理素子を介しても、プログラム可能な論理チップの出力側ないしはインタフェースピンに接続されていなかった論理素子のことである。さらにターゲットコンフィギュレーションを高いFPGAクロックレートで動作させることできるようにするため、有利にはフリーの論理素子を、各トランジションポイントの近傍(例えば所定の半径内)で使用する。これにより、長い信号路による過剰な遅延が回避される。
ここでは複数のレベルでFPGAのコンフィギュレーションを表すことができる。最も下のレベルにはコンフィギュレーションを記述するビットストリームがあり、このビットストリームは、FPGAのコンフィギュレーションメモリに直接書き込むことができる。つぎの高さのレベルには、プレースメント設定されたネットリストの形態の論理記述があり、ここでは所望の機能が、すでに論理素子及び接続素子にマッピングされており、したがってビットストリームに変換することができる。つぎの高さのレベルは、プレースメント設定されてないネットリストの形態の論理記述を構成しており、ここでは各FPGAチップの具体的な素子へのマッピングがまだ行われていない。コンフィギュレーションを作成する際の手法に応じて、さらに高い抽象化レベルを設けることができるため、VHDL又はSystemCのようなハードウェア記述言語でコンフィギュレーションを記述することでき、この記述は、引き続いてネットリストに変換される。この記述をMatlab又はSimulinkのような技術的な計算環境のブロック図の形態とすることも可能である。なぜならば例えばXilinx System Generatorを用いて、ハードウェア記述言語のFPGAコンフィギュレーションの表現にこのブロック図を変換できるからである。ここでは、このブロック図に基づいて自動的に、考えられ得るトランジションポイントのリストを作成することも可能であり、ここでこのリストには、例えば、ブロックないしはサブシステムの入力側及び出力側に対応する複数の論理素子が含まれている。
変更したビットストリームの書き込みは全体的に行うか又は差分的に行うことが可能であり、すなわち、有利には変更した論理素子又はリージョンだけに対して、変更したビットストリームを書き込む。プログラム可能な論理チップへの、変更したビットストリームの書き込みとは特に、このプログラム可能な論理チップのコンフィギュレーションメモリの書き込みのことを意味しており、差分書き込みの際には好適には、1つ以上のリコンフィギュレーションした論理素子もしくは接続素子、又は、付加的な論理素子もしくは接続素子を含む、コンフィギュレーションメモリのフレームないしはアドレス領域だけが書き込まれる。ここでは、プログラム可能な論理チップの初期化時に読み出されてコンフィギュレーションメモリのコンテンツが求められる不揮発性メモリに書き込むようにすることも可能であり、これにより、プログラム可能な論理チップへの、変更したビットストリームの書き込みを間接的に行うことができる。
本発明による方法の重要な利点は、論理機能における小規模の変更を極めて高速に実行できることである。なぜならば、論理機能の新たに追加した部分だけをプレースメント設定及びルーティングするだけでよいからである。これにより、FPGAを含む制御装置に対しても、内部バイパッシングに匹敵する機能が可能になる。したがって時間をわずかに費やすだけで多数の増分的な変化を実行してテストすることができ、これにより、制御器設計に対して確立されたワークフローが維持される。
ソースコンフィギュレーションのメーカが、オリジナルのビットストリームに加えて、関連する構造情報ないしは対応付け情報も提供することにより、このコンフィギュレーションのすべての論理記述を公開しなくても、論理機能の変更を行うことができる。これにより、メーカは、一方では詳細なソースコードを秘密にすることができ、他方では、実証された論理機能の高速な適合化をユーザができるようにするインタフェースを提供することができる。
さらに、あらかじめ実装されるパーティションインタフェースないしは「仮想ソケット」が不要であることは有利であり、また相応に空いた領域を伴う複数のパーティションへの分割が行われないことにより、FPGAチップの既存の論理素子及び接続素子を有効に利用することができる。
別の利点は、有利には不揮発性メモリに格納されるプログラミングビットストリームを適合化することにより、制御装置を新たにスタートさせた後、遅延なしに直ちに所望の機能が得られることである。プログラム可能な論理チップの初期化に使用される不揮発性メモリは、好適にはプログラム可能な論理チップと共にプリント基板に配置されるか又は制御装置に組み込まれているマイクロコントローラ、又は対応してコンフィギュレーションされたCPLDのような付加的な論理チップによって読み出すことができ、また基本的にはこのプログラム可能な論理チップは、不揮発性メモリを含むことも可能である。
ソースコンフィギュレーションにおいて十分に多くのフリーの論理素子が利用可能である場合には、もはや利用していない論理素子からトランジションポイントへの接続だけを除去し、はじめの段階ですでに利用されていない論理素子だけを用いて、変更した論理機能を実現することが可能である。これにより、上記の対応付け情報が、トランジションポイント及び元々フリーになっている論理素子のリストだけを含む場合も、プログラム可能な論理チップのコンフィギュレーションの変更が可能になる。
本発明の有利な実施形態によれば、ターゲットコンフィギュレーションにおいて利用されずかつ出力側が、少なくとも1つのトランジションポイントの1つ以上の入力側だけに接続されている、ソースコンフィギュレーションの論理素子もフリーであるとマーキングされる。すなわち、ソースコンフィギュレーションでは、論理素子の出力側がトランジションポイントの入力側に接続されているかまた接続されていたが、ターゲットコンフィギュレーションではこのトランジションポイントのこの入力側が他の論理素子に接続される場合、この論理素子は、ターゲットコンフィギュレーションでは利用されず、フリーであるとマーキングすることができる。さらに、有利には対応する接続素子が、利用されていないとマーキングされる。ここで、対応する接続素子には、特にスイッチ可能な接続素子が含まれており、これらの接続素子は、ソースコンフィギュレーションにおいて、フリーであるとマーキングされた論理素子の出力側と、1つ以上の導体路とを接続し、この1つ以上の導体路と、1つ以上のトランジションポイントの1つ以上の入力側とを接続し、また好適にはこれをターゲットコンフィギュレーションにおいて、接続されていない1つ以上の導体路と接続する。もはや利用されない論理素子を上記のように解放ないしはクリーンアップすることにより、リコンフィギュレーションに利用可能な論理素子のフリーの領域ないしは個数を最大化することができる。論理素子及び接続素子のこのような解放は、ソースコンフィギュレーションが、FPGAチップの資源をほぼ完全に占有している場合には特に有利である。
本発明の特に有利な実施形態では、前のステップにおいてフリーであるとマーキングした論理素子の入力側だけに出力側が接続されているすべての論理素子を同様にフリーであると再帰的にマーキングする。すなわち、論理素子の出力側が、前のステップにおいてフリーであるとマーキングした論理素子の入力側だけに接続されている場合には、これによって出力値が廃棄されることになるため、この論理素子はもはや利用されず、同様にフリーであるとマーキングすることが可能である。これにより、もはや必要のないすべての論理素子が段階的に解放され、また好適にはもはや必要な接続素子も段階的に解放される。
本発明の特に有利な別の実施形態によれば、あらかじめ設定したリージョンのすべての論理素子を、ソースコンフィギュレーションの1つ以上の置き換えられた論理素子だけ、又はトランジションポイントの入力側だけ、フリーであるとマーキングし、対応する接続素子を利用していないとマーキングし、引き続き、1つ以上の置き換えられた論理素子を除いて、あらかじめ設定されたリーションのすべての論理素子を新たにプレースメント設定して、利用していない接続素子と接続する。これにより、(例えば各トランジションポイントの周りの所定の半径に基づいて)上記のリージョンを適切に選択する際には、プレースメント設定ないしはルーティングの最適化も行うことができ、これによって必要な設計時間がわずかに増えるだけで、格段に最適化された時間的な特性が保証される。
本発明の極めて有利な実施形態では、ソースコンフィギュレーションにおいて使用されておりかつ上記のあらかじめ設定したリージョンにおいて複数の論理素子のうちの1つで終端する接続素子を、少なくとも、上記のあらかじめ設定したリージョン外のつぎに接続される論理素子まで、利用していないとマーキングする。これによって保証されるのは、このあらかじめ設定したリージョンにおいて、最適なルーティングのために十分な接続素子が利用できることである。
ソースコンフィギュレーションの読み込みのステップには好適には、ビットストリームの読み込みと、少なくともビットストリームの複数の部分に対して行われる、このビットストリームの、論理記述への変換とが含まれている。この変換は特に、使用されるプログラム可能な論理チップのアーキテクチャ情報に基づいて行うことができ、すなわち、ビットストリームにおける位置と、プログラム可能な論理チップにおける論理素子との間の関係が、使用されるプログラム可能な論理チップのアーキテクチャ情報に基づいて作成される。
ここで有利であるのは、変更したビットストリームが、ターゲットコンフィギュレーションに基づいて作成される場合であり、ここでこれは、変更した論理素子、したがってリコンフィギュレーションすべき論理素子に対して、ビットストリームにおける位置と、プログラム可能な論理チップにおける論路素子との間の関係が形成され、元々のビットストリームが、対応する位置において変更されることによって行われる。ここでは、変更した論理素子及び接続素子だけを記述するか又は少なくとも1つの変更した論理素子が存在するアドレス領域だけを含む差分ビットストリームを作成することが可能である。したがって適切なアーキテクチャ情報ないしは対応付け情報が利用できる場合には、最小のデータだけを書き込めばよい。
択一的に有利であるのは、上記の変更したビットストリームをターゲットコンフィギュレーションに基づいて作成する場合であり、ここでこれは、ターゲットコンフィギュレーションのプレースメント設定したネットリストを新しい完全なビットストリームに変換することによって行われる。ターゲットコンフィギュレーション全体のプレースメント設定したネットリストが利用できる場合、変更したビットストリームを高速に作成することができる。
有利には、少なくとも1つの信号路を含む、変更すべき論理機能に対し、少なくとも変更の後、信号伝搬時間を求める。有利にはプログラム可能な論理チップのターゲットコンフィギュレーションにおける信号路であって、その途中に少なくとも1つの付加的な又はリコンフィギュレーションされる論理素子又は接続素子が設けられている信号路に対し、信号伝搬時間を推定する。ここでこの推定は、ターゲットコンフィギュレーションにおいてこの信号路の順次連続している複数の論理素子の個数をカウントし、各論理素子に一定の信号伝搬時間を対応付けることによって行われる。択一的にはつぎのようにすることも可能である。すなわち、プログラム可能な論理チップのターゲットコンフィギュレーションにおける信号路であって、その途中に少なくとも1つの付加又はリコンフィギュレーションされる論理素子が設けられている信号路と、ソースコンフィギュレーションにおける対応する信号路とを比較することも可能であり、ここでこれは特に、ターゲットコンフィギュレーションにおける信号路の順次連続する論理素子の個数と、ソースコンフィギュレーションにおける対応する信号路の順次連続する論理素子の個数とをカウントして比較し、各論理素子に一定の信号伝搬時間を対応付けることによって行われる。これによって迅速かつ簡単に確認することができるのは、ターゲットコンフィギュレーションが、予測としてソースコンフィギュレーションと同じクロックレートが動作できることが否か、又はこの回路の時間特性において複数の問題が予想されるか否かである。
特に有利には、信号路における論理素子の個数に基づいて論理素子の信号伝搬時間を推定する代わりに、アーキテクチャ情報によって得られる最短及び最長の信号伝搬時間を求めて、これを後続の考察に使用する。好適には個々の論理素子のそれぞれ最短の信号伝搬時間及びそれぞれ最長の信号伝搬時間を1つの信号路にわたって足し合わせることができ、この総和が、特に後続の複数の論理素子の時間的な要求を満たしているか否かをチェックすることができる。
特に有利には、変更すべきすべての論理機能に対して少なくとも1つの信号伝搬時間を求め、1つ以上の閾値と比較する。ここでこの閾値は、特にこの変更した論理機能に続くトランジションポイントの時間的な要求を記述するものである。推定した又は計算した遅延の変化が、閾値を上回る場合、警告及び/又はターゲットコンフィギュレーションのプレースメント設定したネットリストの変更が行われる。例えばこの変更には、クロックの局所的な増大及び/又はレジスタの挿入が含まれ得る。これにより、クリティカルになり得る時間特性についてユーザに前もって指摘しておくことができ、また好適には、ターゲットコンフィギュレーションの所定の時間的な特性を確保するために手段を講じることができる。
ターゲットコンフィギュレーションには有利には少なくとも1つの第1マルチプレクサが含まれており、この第1マルチプレクサは特にトランジションポイントの直前に配置されている。ここで追加されるすべての論理素子は、第1マルチプレクサのただ1つの入力側を含む複数の新たな信号路に配置されている。これにより、バイパス機能をこのマルチプレクサの第1入力側に接続し、これまでの論理機能をこのマルチプレクサの第2入力側に接続することにより、ランタイムにも、すなわちターゲットコンフィギュレーションの実行中にも、バイパス機能とオリジナルの機能との間で切り換えを行うことができる。この際には、既存のマルチプレクサの空きの入力側を利用することができるか又はマルチプレクサを挿入することができる。
上記の複数の新しい信号路には特に、プログラム可能な論理チップの少なくとも1つのインタフェースピンが含まれており、この少なくとも1つのインタフェースピンは有利には、プログラム可能な論理チップのデバッギングインタフェースが割り当てられている。このインタフェースピンは、上記の新しい信号路だけに利用される必要はなく、別の複数の機能を提供することも可能である。有利にはプロトコルを設定して、上記のインタフェースピンを介して、この信号路に必要なデータをトンネルさせることも可能である。この点においてこのインタフェースピンは、物理的に設けられるピンである必要はなく、好適には上記のデバッグインタフェースを利用して形成されるインタフェースないしはデータチャネルとすることも可能である。すなわち、FPGAチップの少なくとも1つのインタフェースピンがまだ占有されていない、ないしは機能を補足することができる限りは、外部バイパッシングを行うことができるか又は種々異なる複数の内部的な論理機能間で切り換えるためにマルチプレクサを外部から駆動制御することも可能である。デバッギングインタフェースに割り当てられるインタフェースピンが他の機能によって占有されることはまれであり、したがって利用可能であることが多い。1つ以上の別のインタフェースピンがまだ占有されていない場合には、外部バイパッシングの際により高いデータレートを保証することも基本的に可能であり、ここでこれは、例えばLVDSのような適切なプロトコルにしたがって伝送するために上記の複数のインタフェースピンを使用することによって行われる。
ターゲットコンフィギュレーションが、特にトランジションポイントの直後に配置されている少なくとも1つの第2マルチプレクサを有すると有利であり、ここでこの第2マルチプレクサは、論理素子の少なくとも1つの入力側に接続されている。これによって可能になるのは、機能の入力信号を変更することであり、場合によっては元々の機能を上記の変更した入力信号によって引き続き使用することができる。
ターゲットコンフィギュレーションには有利には少なくとも1つの付加的なレジスタが含まれており、このレジスタの出力側は有利にはインタフェースピンに接続されており、このインタフェースピンは、特にプログラム可能な論理チップのデバッギングインタフェースに割り当てられている。このレジスタを信号路に配置することにより、デバッギングインタフェースに接続されているRCPシステムによって、対応する信号を検出して評価することもできる。
本発明はさらに、制御装置を適合化する方法に関しており、この制御装置には、制御機能を実行するために構成されたプログラム可能な論理チップが含まれており、ここでこのプログラム可能な論理チップは、本発明による方法によってリコンフィギュレーションされる。したがって本発明による方法を利用することにより、FPGAを含む制御装置も高速かつ容易に適合化することができるため、新しい制御機能を繰り返して開発することができる。本発明において制御機能という概念は好適には、上記の制御装置ないしはプログラム可能な論理チップによって提供されるすべての機能のことを意味し、特に閉制御ループのなしにアクチュエータを駆動制御することも意味する。
変更したビットストリームの、プログラム可能な論理チップへの書き込みのステップは好適には少なくともこのプログラム可能な論理チップの初期化時に行われ、特にマイクロプロセッサによって実行される。これにより、適合化された論理機能ないしはバイパス機能は、FPGAないしはこのFPGAを含む制御装置のスタート時点にはすぐに利用可能である。
本発明はさらに、プログラム可能な論理チップを書き込むためのプログラミング装置に関しており、このプログラミング装置には、プロセッサ、プログラミングインタフェース及び/又はデバッギングインタフェースが含まれており、このプログラミング装置は、本発明による方法を実行するように構成されている。
本発明はさらに、コンピュータ読み出し可能な記憶媒体を有するコンピュータプログラム製品に関しており、この記憶媒体には複数の命令が埋め込まれており、これらの複数の命令は、これらが計算ユニットによって実行される場合に、上記の計算ユニットを構成し、これによって本発明による方法が実行されるようにする。
以下、図面を参照して本発明を詳しく説明する。ここでは同じ部分に同じ参照符号が付されている。図示した実施形態は極めて概略的に示されており、すなわち間隔ならびに水平及び垂直方向の寸法は縮尺通りではなく、また特に断らない限り、導出可能な幾何学的な関係も互いに有しない。
本発明による方法の有利な第1実施形態の概略流れ図である。 プログラム可能な論理チップの変更したコンフィギュレーションを略示する図である。 本発明による方法の有利な第2実施形態を略示する図である。 本発明の方法によってリコンフィギュレーション可能な、プログラム可能な論理チップの概略図である。 プログラム可能な論理チップを有する制御装置及び本発明によるプログラム装置の概略図である。
FPGAチップには、複数の論理素子と、複数の接続素子と、複数のクロックリージョンを含み得るクロック供給部とが含まれている。論理素子には、例えばレジスタ、真理値表(ルックアップテーブルないしはLUTとも称される)、加算器、スイッチ及び遅延ユニットが含まれる。周波数発生器を設けることも可能である。FPGAチップの粒度に応じて、これらの素子のうちの複数を1つの基本ユニットにまとめることも可能である。接続素子には好適には種々異なる長さの、例えばFPGAの複数のリージョンを跨がり得る導体路、及び、これらの導体路と論理素子との間のスイッチ可能な接続部が含まれる。電圧供給部をオンにした後、FPGAはビットストリームによって初期化される。このビットストリームには好適には、論理素子毎に少なくとも1つのビットが含まれる。これにより、それぞれの応用に適応された論理回路が標準チップ上に実現可能になる。ここで論理素子のコンフィギュレーションのための1ビットとは、論理素子と信号とを接続するスイッチのことであると理解することも可能である。この意味において1つのANDゲートに1つ以上のコンフィギュレーションビットを対応付けることも可能である。
図1に示した図は、本発明による方法の有利な第1実施形態の概略流れ図を示している。
ステップS1(読み込み)では、ソースコンフィギュレーションの読み込みが行われ、ここでは入力データとして、オリジナルビットストリーム(ビットストリーム1)、ならびに、使用されるFPGAチップのアーキテクチャ及びソースコンフィギュレーションについての情報(情報)が受信される。この読み込みには、オリジナルコンフィギュレーションのプレースメント設定されたネットリストないしは論理記述へのビットストリームの変換が含まれ得る。択一的には、入力データとして、上記のビットストリームの他に、ソースコンフィギュレーションの複数の部分の少なくとも一部の論理記述、ならびに、考えられ得る入力信号及びソースコンフィギュレーションの考えられ得るトランジションポイントについての情報を受信することも可能である。この場合にはビットストリームの変換を省略することも可能である。
ターゲットコンフィギュレーションにおいて所望される変更は、ステップS2(変更)において、有利には論理記述ないしはプレースメント設定されていないネットリストのようなより高い抽象化レベルにおいて行われる。基本的にはターゲットコンフィギュレーションないしは所望の変更を示すためにVHDLのようなハードウェア記述言語を使用することも可能である。
例えばユーザは新しい入力信号を選択して、適合化させた論理機能を各トランジションポイントに設定することができる。上記のコンフィギュレーションの変更は、FPGAチップないしは制御装置に接続された標準のPC及び/又は専用のプログラミング装置上で実行されるプログラムにおいてインタラクティブに行うことも可能である。FPGAに接続可能な、外部接続式のデバッグインタフェースを有する標準のPCをプログラミング装置と称することも可能である。
以下ではFPGAマネージャと称されるプログラムは、例えばコンフィギュレーションメーカの対応付け情報を読み込むことでき、好適には、使用されるFPGAチップのアーキテクチャ情報ならびに少なくとも1つの論理記述、特にプレースメント設定したネットリスト、及び/又はソースコンフィギュレーションのビットストリームを読み込むことができる。このFPGAマネージャが、ソースコンフィギュレーションを、少なくとも部分的に、プレースメント設定していないネットリストの論理記述又はブロック図のようなより高い抽象レベルにおいて表すように構成されていると有利である。この場合、ユーザは、各抽象レベルの1つ以上の基本ユニットを選択して適合させることができる。好適には基本ユニットの消去又は挿入も行われる。これらの基本ユニットは、FPGAチップの1つ以上の論理ユニットを含んでいてよい。例えば、FPGAの複数の論理ユニットから、頻繁に使用される機能を基本ユニットとしてあらかじめ設定することも可能である。有利にはユーザはさらにFPGAのあらかじめ設定したトランジションポイント及び/又はインタフェースピンを選択して、変更した論理機能の信号をこれらに供給することができる。複数のあらかじめ設定した条件の検査を行うことも可能であり、ここでは特に、これらのあらかじめ設定した条件が満たされない場合、デバッグインタフェースを介して特別な信号を出力することができる。これにより、誤って設定された論理機能又は無効な入力データを迅速に識別することができる。
ステップS3(クリーンアップ)では好適には、もはや利用しなくなった論理素子をソースコンフィギュレーションから取り除いて、変更した論理機能を実現するためにより多くのフリーな論理素子が利用できるようにする。
ここでは、消去した基本ユニットに基づいて、上記のもはや利用しなくなった論理素子を求めるようにFPGAマネージャを構成することも可能である。
ステップS4(プレースメント設定)では、フリーの論理素子に、ターゲットコンフィギュレーションにおいて付け加えられる論理機能ないしは論理素子をプレースメント設定する。引き続いて、所望の信号路を得るため、接続素子をコンフィギュレーションする。これにより、プレースメント設定したネットリストとしてターゲットコンフィギュレーションが得られる。
論理機能ないしは論理素子のプレースメント設定及び接続の枠内において好適には、例えば、あらかじめ設定したクロック周波数を得るために必要な信号伝搬時間が維持されることなどのタイミングに関する要求を考慮する。
ここでは追加された基本ユニットに基づいて、付加された論理素子を求めるようにFPGAマネージャを構成することも可能である。
ステップS5(変換)では、プレースメント設定したネットリストが、変更したビットストリームに変換され、これによってこのビットストリームは、出力データ(ビットストリーム2)として利用可能になる。
特にソースコンフィギュレーションの論理記述が部分的にしか利用可能でない場合、上記の変換は実質的に、付加される論理ユニット及び/又は接続ユニットに適したマイクロビットストリームを生成し、このマイクロビットストリームを元々のビットストリームに加えて、上記の変更したビットストリームを得ることであってもよい。
FPGAチップはステップS6(書き込み)において、上記の変更したビットストリームで書き込まれ、これによってリコンフィギュレーションされる。時間を浪費するプレースメント設定及びルーティングは、変更した少数の論理素子だけに行われるため、このリコンフィギュレーションは高速に行うことが可能であり、また基本的には完全なネットリストがわからなくても可能である。
図2aに示した図には、プログラム可能な論理チップの変更したコンフィギュレーションが略示されている。
コンフィギュレーション201には、入力信号a及びbをそれぞれ供給する2つのトランジションポイント202及び203と、関数の結果yが設定されるトランジションポイント204とが含まれている。これらのトランジションポイントは、有利にはユーザにより、FPGAマネージャを用いて決定されるか、又は元々のコンフィギュレーションのメーカによって供給されかつ想定され得るトランジションポイントのリストに基づき、手動又は自動的に選択することが可能である。
ここに概略的に示されているのは、元々の論理関数fによって占有される領域205が開放されており、また付け加えた論理関数y=g(a,b)が、フリーないしは利用されていない論理素子及び接続素子を使用することによって領域206に実現されているため、コンフィギュレーション201の外側の領域は、この変更によって触れられないままになっていることである。
図2bに示した図には、本発明による方法の有利な第2実施形態が略示されている。
この方法のはじめには、このFPGAの元々のコンフィギュレーション210及び対応付け情報211が読み込まれる。FPGAビットストリーム1のソースコンフィギュレーションには論理関数y=f(a,b)が含まれており、これを置き換える。これに対する情報として、入力信号a及びbがそれぞれ設定されている2つのトランジションポイントと、関数値yを設定しようとしているトランジションポイントとが示されている。使用されるFPGAチップに依存してビットストリーム210は、一方では位置と論理素子との間の固定の対応付けを有することでき、又は、他方ではアドレス/コンフィギュレーションペアのリストを含むことができる。これによって基本的にはスタートアドレスを起点として、完全なアドレス領域(又は完全なFPGA)を新たに書き込むことができるか又はこれらの論理素子を個別にリコンフィギュレーションすることができる。
ステップ212では、ビットストリーム210が、プレースメント設定したネットリストに変換される。プレースメント設定したネットリスト213は、指定されたトランジションポイントと、好適にはこのFPGAのアーキテクチャ情報とを使用してステップ214で分析され、これに基づき、ステップ215ではクリーンアップが行われ、ここでは、使用されていない論理素子及び接続素子が、フリーないしは利用されていないとマーキングされる。これによって、クリーンアップしたこのFPGAネットリスト216は、フリーな論理素子ないしは領域を有しており、新たな機能を実現するためにこれらを使用することができる。
特にブロック図を用いて表すことができる新たな論理機能217は、有利には元々の関数と同じ入力信号a、bに基づいており、かつ、変更した値y=g(a,b)を出力する。したがってステップ218では、変更した論理機能の合成が行われ、すなわち部分機能の論理記述が、プレースメント設定していない部分ネットリスト219に変換される。
トランジションポイントについての情報211を起点として、ステップ220では、クリーンアップしたFPGAネットリスト216に部分ネットリスト219が挿入されるため、完全なコンフィギュレーションを記述するネットリスト221が得られる。
まだプレースメント設定していない新たな論理機能217は、ステップ222において、フリーの論理素子にプレースメント設定され、またこの論理機能は、利用されていない接続素子によってルーティングされる。ステップ223では、完全なネットリストが新たなビットストリーム224に変換される。これにより、ターゲットコンフィギュレーションを記述する完全なFPGAビットストリーム2が得られ、このビットストリームを直接又は間接的に、プログラム可能な論理チップに書き込むことができる。
図3に示した図には、プログラム可能な論理チップ1が略示されている。ここではインタフェースピン2、3、4、5、6、7を介してFPGA1に入力信号が供給される。図示した例示的なコンフィギュレーションは、簡略化して示された複数の機能ブロックを有しており、これらの機能ブロックは、基本的に真理値表及びフリップフロップのような一連の基本論理ユニットから組み立てられている。インタフェースピン2、3、4に加わる入力信号は、例えば、第1の論理機能を計算する機能ブロック8に供給される。これに相応してインタフェースピン5、6、7に加わる入力信号は、第2の論理機能を計算する機能ブロック9に供給される。機能ブロック8及び9の信号は、第3の論理機能を計算する別の機能ブロック10に供給される。第3論理機能の機能の結果は、マルチプレクサ11を介して、プログラム可能な論理チップ1のインタフェースピン12に供給され、これによって出力信号として出力される。例示的な信号路16は、破線で示されている。したがって出力信号がインタフェースピン12に出力される図示の論理機能には6個の信号路が含まれており、これらの信号路は、それぞれインタフェースピン2、3、4、5、6、7のうちの1つにおいて始まっている。
機能ブロック8、9又は10のうちの1つを変更又は置き換えることにより、出力される論理機能を変更することができる。元々の論理機能を完全に交換するのとは択一的に、この元々の論理機能を維持して、変更した論理機能をコンフィギュレーションに組み込む、及び、対応する機能ブロックの出力側にマルチプレクサを配置することによって切り換えができるようにすることも可能である。さらに、論理機能の入力信号の前処理部を挿入することも可能である。特に、1つ以上の条件に依存して複数の入力信号の妥当性についての真理値を出力する付加的な論理機能を組み込むことが可能である。データ整合性を維持するために付加的なレジスタを挿入することも可能である。これにより、このFPGA1を制御装置に使用する場合、内部バイパッシングを行うことができる。
出力ピン12に隣接して配置されたマルチプレクサ11の別の入力側と、別のインタフェースピン14とを接続することにより、インタフェースピン12に外部信号を出力することもできる。同期化の問題を回避するために好適であるのは、インタフェースピン14の信号をレジスタ15に供給して、所定の信号がマルチプレクサ11につねに加わるようにする場合である。インタフェースピン13を介して、マルチプレクサ11の所望の入力を選択して、信号路16に配置される出力信号を変更することができる。インタフェースピン14及び13が、JTAGのようなデバッギングインタフェースに対応付けられると有利である。なぜならば、これらのピンは、一般的に占有されておらず、及び/又は、好適には既存のデバッグ機能プロトコルを拡張して、このデバッギングインタフェースを介し、このFPGAに又はこのFPGAから複数の信号を伝送できるからである。これにより、このFPGA1を制御装置に使用する場合には外部的なバイパッシングも可能である。
図4に示した図には、プログラム可能な論理チップ33を備えた制御装置30及び本発明によるプログラミング装置40の概略図が示されている。
制御装置30には、特にフラッシュメモリである不揮発性メモリ32と、FPGA33とに接続されているマイクロコントローラ31が含まれている。マイクロコントローラ31はさらに、特に車両データバス用の1つ以上の図示しないインタフェース及び/又は別の周辺装置に接続することが可能である。
プログラム可能な論理チップ33は、有利には制御機能を提供し、かつ、図示の実施例においてセンサ37と、アクチュエータ36を駆動制御する駆動制御回路35とに接続されている。さらにFPGAはプログラミング及び/又はデバッギングインタフェース34を有する。
通常時、プログラミングインタフェース34は接続されておらず、この制御装置は、1つ以上の制御機能を提供し、例えばアクチュエータ36は、ブラシレス電動モータであってよく、その回転数及び/又は出力される回転トルクが、プログラム可能な論理チップ33によって制御される。
プログラミング装置40には、マイクロコントローラ41が含まれており、このマイクロコントローラは、特にフラッシュメモリである不揮発性メモリ42と、プログラミング及び/又はデバッギングインタフェース44とに接続されている。
破線で示した接続線路43を介して、プログラミング装置40と、制御装置30ないしはそこに配置されたFPGA33とを接続することができる。したがってプログラム可能な論理チップ33をリコンフィギュレーションすることにより、わずかなコストで制御機能を適合化することができる。
基本的には、プログラミング装置と、マイクロコントローラ31又は不揮発性メモリ32とを接続し、変更したコンフィギュレーションを不揮発性メモリ32にまず書き込み、その後、間接的にプログラム可能な論理チップ33に書き込むことにより、コンフィギュレーションの変更を行うことも可能である。このようにすることの利点は、制御装置30の後続の都度の初期化時にも、この変更したコンフィギュレーションが直ちに利用可能になることである。
図に示したデバッギングインタフェース34を利用することの利点は、このデバッギングインタフェースにより、種々異なる複数の論理機能ないしは制御機能間の切り換えが制御装置の動作中に可能になることである。このためには、変更したコンフィギュレーションにおいて、例えば、駆動制御回路35に接続されている、FPGA33のインタフェースピンの直前にマルチプレクサを配置することができ、ここでこのマルチプレクサの第1入力は有利には元々の制御機能に接続され、このマルチプレクサの第2入力は、変更した制御機能に接続される。
特に有利には、スルー接続すべき入力の選択は、切り換え入力に接続されているレジスタを介して行われるため、このレジスタの内容により、実際の制御機能が決定される。デバッギングインタフェース34を介してデータチャネルを構成することにより、レジスタの内容をプログラミング装置40によって書き込みことができる。これによってユーザは、プログラミング装置40を介して、種々異なる複数の制御機能間で切り換えることができる。これにより、新たな制御装置ないしは制御機能の設計がさらに促進される。
本発明の別の有利な実施形態では、ソースコンフィギュレーションの信号路にレジスタが配置され、このレジスタの出力側は好適には、デバッギングインタフェースに割り当てられたFPGAのピンに接続される。これにより、このレジスタは、ソースコンフィギュレーションの信号を検出して、この信号を外部のRCPシステムに伝送することができる。トリガ論理を付加することにより、あらかじめ設定した複数の条件の評価に基づいて検出の時点を求めることができる。択一的又は補足的には、上記の信号をプログラム可能な論理チップ上に一時的に記憶することも可能である。したがって本発明による方法によって可能になるのは、ソースコンフィギュレーションのソースコードないしは完全な論理記述がなくても測定機能を追加できることである。

Claims (17)

  1. プログラム可能な論理チップのコンフィギュレーションを変更する方法であって、
    当該プログラム可能な論理チップのソースコンフィギュレーションを読み込むことにより、当該ソースコンフィギュレーションの論理記述、特にプレースメント設定されたネットリストが少なくとも部分的に利用可能になっており、
    前記プログラム可能な論理チップの前記ソースコンフィギュレーションの前記論理記述から、1つ以上の論理素子及び/又は接続素子を置き換えるか又はリコンフィギュレーションして、1つ以上の付加的な論理素子を有するターゲットコンフィギュレーションの論理記述を作成し、この際に前記ターゲットコンフィギュレーションにおいて、前記ソースコンフィギュレーションの素子がまったく利用されないか又は1つ以上の素子が利用されず、
    複数の対応付け情報に基づき、複数のトランジションポイントを決定し、すなわち、ターゲットコンフィギュレーション及びソースコンフィギュレーションに設けられておりかつ前記ターゲットコンフィギュレーションにおいて、変更した論理機能が設定される複数の論理素子、特にレジスタ及びドライバを決定し、
    少なくとも、前記ソースコンフィギュレーションにおいて未だ利用していない、前記プログラム可能な論理チップの論理素子をフリーであるとマーキングし、
    当該フリーであるとマーキングした前記論理素子に、前記ターゲットコンフィギュレーションの付加的な論理素子をプレースメント設定し、利用していない接続素子を介して前記トランジションポイントに接続し、
    前記ターゲットコンフィギュレーションの前記論理記述から、変更したビットストリームを作成し、
    当該変更したビットストリームを前記プログラム可能な論理チップに書き込む、
    ことを特徴とする方法。
  2. 前記ターゲットコンフィギュレーションにおいて利用されず、かつ、出力側がトランジションポイントの入力側だけに接続されている、前記ソースコンフィギュレーションの前記論理素子もフリーであるとマーキングし、
    有利には、対応する前記接続素子を利用していないとマーキングする、
    請求項1に記載の方法。
  3. 前のステップにおいてフリーであるとマーキングした複数の論理素子の1つ以上の入力側だけに出力側が接続されているすべての論理素子を同様にフリーであると再帰的にマーキングし、
    有利には、対応する前記接続素子を利用していないとマーキングする、
    請求項2に記載の方法。
  4. あらかじめ設定したリージョンのすべての論理素子を、前記ソースコンフィギュレーションの1つ以上の置き換えられた論理素子だけ、又はトランジションポイントの入力側だけ、フリーであるとマーキングし、対応する前記接続素子を、利用していないとマーキングし、
    引き続き、1つ以上の前記置き換えられた論理素子を除いて、あらかじめ設定された前記リージョンにおけるすべての論理素子を新たにプレースメント設定して、利用していない接続素子に接続する、
    請求項2又は3に記載の方法。
  5. 前記ソースコンフィギュレーションに使用されておりかつ前記あらかじめ設定したリージョン内の複数の論理素子のうちの1つで終端する複数の前記接続素子を、少なくとも、前記あらかじめ設定したリージョン外のつぎに接続される論理素子まで、利用していないとマーキングする、
    請求項4に記載の方法。
  6. ソースコンフィギュレーションの読み込みの前記ステップには、ビットストリームの読み込みと、少なくとも当該ビットストリームの複数の部分に対して行われる、当該ビットストリームの、論理記述への変換とが含まれており、
    当該変換を特に、使用される前記プログラム可能な論理チップのアーキテクチャ情報に基づいて行う、
    請求項1から5までのいずれか1項に記載の方法。
  7. 前記変更したビットストリームを前記ターゲットコンフィギュレーションに基づいて作成し、
    当該作成を、
    変更ししたがってリコンフィギュレーションした論理素子及び/又は接続素子に対して、前記ビットストリームにおける位置と、前記プログラム可能な論理チップにおける論理素子又は接続素子との間の関係を形成し、元々のビットストリームを、対応する複数の位置において変更する、ことによって行う、
    請求項1から6までのいずれか1項に記載の方法。
  8. 前記変更したビットストリームを前記ターゲットコンフィギュレーションに基づいて作成し、
    当該作成を、
    前記ターゲットコンフィギュレーションのプレースメント設定した前記ネットリストを新しい完全なビットストリームに変換する、ことによって行う、
    請求項1から6までのいずれか1項に記載の方法。
  9. 少なくとも1つの信号路を含む変更すべき論理機能に対し、少なくとも変更の後、信号伝搬時間を求め、
    ここでは有利には、前記プログラム可能な論理チップの前記ターゲットコンフィギュレーションにおける信号路であって、その途中に少なくとも1つの付加的な又はリコンフィギュレーションされる論理素子又は接続素子が設けられている信号路に対し、信号伝搬時間を推定し、
    当該推定を、
    前記ターゲットコンフィギュレーションにおいて前記信号路の順次連続している複数の論理素子の個数をカウントし、各論理素子に一定の信号伝搬時間を対応付けることによって行う、
    請求項1から8までのいずれか1項に記載の方法。
  10. 変更すべきすべての論理機能及び/又は当該論理機能に含まれているすべての信号路に対し、少なくとも1つの信号伝搬時間を求めて、1つ以上の閾値と比較し、
    少なくとも1つの求めた信号伝搬時間が、前記閾値を上回るか又はあらかじめ設定した区間外にある場合に、警告及び/又は前記ターゲットコンフィギュレーションのプレースメント設定したネットリストの変更を行う、
    請求項1から9までのいずれか1項に記載の方法。
  11. 前記ターゲットコンフィギュレーションには少なくとも1つの第1マルチプレクサが含まれており、当該第1マルチプレクサは特にトランジションポイントの直前に配置されており、
    追加されるすべての論理素子は、前記第1マルチプレクサのただ1つの入力側を含む複数の新たな信号路に配置されている、
    請求項1から10までのいずれか1項に記載の方法。
  12. 複数の前記新しい信号路には前記プログラム可能な論理チップの少なくとも1つのインタフェースピンが含まれており、当該少なくとも1つのインタフェースピンには有利には、前記プログラム可能な論理チップのデバッギングインタフェースが割り当てられている、
    請求項11に記載の方法。
  13. 前記ターゲットコンフィギュレーションは、特にトランジションポイントの直後に配置されている少なくとも1つの第2マルチプレクサを有しており、
    当該第2マルチプレクサは、論理素子の少なくとも1つの入力側に接続されている、
    請求項1から12までのいずれか1項に記載の方法。
  14. 前記ターゲットコンフィギュレーションには少なくとも1つの付加的なレジスタが含まれており、
    前記レジスタの出力側は有利にはインタフェースピンに接続されており、当該インタフェースピンは特に前記プログラム可能な論理チップのデバッギングインタフェースに割り当てられている、
    請求項1から13までのいずれか1項に記載の方法。
  15. 制御装置を適合化する方法であって、
    前記該制御装置には、制御機能を実行するように構成されたプログラム可能な論理チップが含まれており、
    請求項1から14までのいずれ1項に記載の方法によって前記プログラム可能な論理チップのコンフィギュレーションを変更する、
    ことを特徴とする方法。
  16. プログラム可能な論理チップを書き込むためのプログラミング装置であって、
    プロセッサ、プログラミングインタフェース及び/又はデバッギングインタフェースを有しており、
    前記プログラミング装置は、請求項1から15までのいずれか1項に記載の方法を実行するように構成されている、
    ことを特徴とするプログラミング装置。
  17. コンピュータ読み出し可能な記憶媒体を有するコンピュータプログラム製品であって、
    前記記憶媒体には複数の命令が埋め込まれており、
    前記複数の命令は、当該複数の命令が計算ユニットによって実行される場合に、前記計算ユニットを構成し、これによって請求項1から15までのいずれか1項に記載の方法が実行されるようにする、
    ことを特徴とするコンピュータプログラム製品。
JP2016175573A 2015-09-08 2016-09-08 プログラム可能な論理チップのコンフィギュレーションを変更する方法 Active JP6530358B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102015115022.0A DE102015115022A1 (de) 2015-09-08 2015-09-08 Verfahren zum Ändern der Konfiguration eines programmierbaren Logikbausteins
EP15184169.9A EP3142032B1 (de) 2015-09-08 2015-09-08 Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins
EP15184169.9 2015-09-08
DE102015115022.0 2015-09-08

Publications (3)

Publication Number Publication Date
JP2017054511A true JP2017054511A (ja) 2017-03-16
JP2017054511A5 JP2017054511A5 (ja) 2018-12-13
JP6530358B2 JP6530358B2 (ja) 2019-06-12

Family

ID=58190614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016175573A Active JP6530358B2 (ja) 2015-09-08 2016-09-08 プログラム可能な論理チップのコンフィギュレーションを変更する方法

Country Status (2)

Country Link
US (1) US9929734B2 (ja)
JP (1) JP6530358B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004068A (ja) * 2018-06-28 2020-01-09 三菱電機株式会社 車載電子制御装置
JP2021536650A (ja) * 2018-08-27 2021-12-27 リキッド・インスツルメンツ・プロプライエタリー・リミテッドLiquid Instruments Pty. Ltd. 部分的リコンフィギュレーションを使用したフィールドプログラマブルゲートアレイのプログラミングプロセスの改善

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824786B1 (en) * 2016-10-05 2020-11-03 Xilinx, Inc. Extend routing range for partial reconfiguration
CN114994637B (zh) * 2022-07-28 2022-11-15 北京一径科技有限公司 可编程逻辑器件配置以及可编程逻辑器件
CN116302851B (zh) * 2023-05-24 2023-08-22 北京中科网威信息技术有限公司 Fpga逻辑异常监测与恢复方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000011010A (ja) * 1998-06-18 2000-01-14 Nec Saitama Ltd 回路修正に伴う論理合成方法
JP2001504958A (ja) * 1996-10-30 2001-04-10 アトメル・コーポレイション ロジックデバイスのアレイを構成するための方法およびシステム
JP2006048677A (ja) * 2004-07-29 2006-02-16 Temento Systems 電子回路をデバッグするデバイス及び方法
JP2009123129A (ja) * 2007-11-19 2009-06-04 Fujitsu Microelectronics Ltd データ処理装置
US8786310B1 (en) * 2012-08-17 2014-07-22 Xilinx, Inc. Partially programming an integrated circuit using control memory cells

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7902866B1 (en) 2007-08-27 2011-03-08 Virginia Tech Intellectual Properties, Inc. Wires on demand: run-time communication synthesis for reconfigurable computing
US7541833B1 (en) * 2007-10-09 2009-06-02 Xilinx, Inc. Validating partial reconfiguration of an integrated circuit
US7940082B1 (en) 2007-12-28 2011-05-10 Altera Corporation Circuits and method for bypassing a static configuration in a programmable logic device to implement a dynamic multiplexer
US7906984B1 (en) * 2008-02-26 2011-03-15 The United States Of America As Represented By The Secretary Of The Air Force Relocatable field programmable gate array bitstreams for fault tolerance
EP2869145B1 (de) 2013-10-29 2016-04-27 dSPACE digital signal processing and control engineering GmbH Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001504958A (ja) * 1996-10-30 2001-04-10 アトメル・コーポレイション ロジックデバイスのアレイを構成するための方法およびシステム
JP2000011010A (ja) * 1998-06-18 2000-01-14 Nec Saitama Ltd 回路修正に伴う論理合成方法
JP2006048677A (ja) * 2004-07-29 2006-02-16 Temento Systems 電子回路をデバッグするデバイス及び方法
JP2009123129A (ja) * 2007-11-19 2009-06-04 Fujitsu Microelectronics Ltd データ処理装置
US8786310B1 (en) * 2012-08-17 2014-07-22 Xilinx, Inc. Partially programming an integrated circuit using control memory cells

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004068A (ja) * 2018-06-28 2020-01-09 三菱電機株式会社 車載電子制御装置
US11390290B2 (en) 2018-06-28 2022-07-19 Mitsubishi Electric Corporation Vehicle electronic control apparatus
JP2021536650A (ja) * 2018-08-27 2021-12-27 リキッド・インスツルメンツ・プロプライエタリー・リミテッドLiquid Instruments Pty. Ltd. 部分的リコンフィギュレーションを使用したフィールドプログラマブルゲートアレイのプログラミングプロセスの改善
JP7411663B2 (ja) 2018-08-27 2024-01-11 リキッド・インスツルメンツ・プロプライエタリー・リミテッド 部分的リコンフィギュレーションを使用したフィールドプログラマブルゲートアレイのプログラミングプロセスの改善

Also Published As

Publication number Publication date
US9929734B2 (en) 2018-03-27
JP6530358B2 (ja) 2019-06-12
US20170070229A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
JP6530358B2 (ja) プログラム可能な論理チップのコンフィギュレーションを変更する方法
US8415974B1 (en) Methods and circuits enabling dynamic reconfiguration
US9494967B2 (en) Trigger circuits and event counters for an IC
US7730353B2 (en) Memory-based trigger generation scheme in an emulation environment
US8775986B1 (en) Software debugging of synthesized hardware
US8533655B1 (en) Method and apparatus for capturing data samples with test circuitry
US10061879B2 (en) Circuit design instrumentation for state visualization
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
US7822909B2 (en) Cross-bar switching in an emulation environment
CN107357948B (zh) 用于建立fpga网表的方法
US10318687B2 (en) Implementing a constant in FPGA code
CN106560819B (zh) 通过集成电路器件中的ip迁移来减小控制块尺寸
Robertson et al. Improved functional simulation of dynamically reconfigurable logic
McGregor et al. Self controlling dynamic reconfiguration: A case study
KR20220027235A (ko) 프로그래밍 가능 로직 디바이스들에서 패브릭들의 규칙성
de Andrés et al. Run-time reconfiguration for emulating transient faults in VLSI systems
de Andrés et al. Fast emulation of permanent faults in VLSI systems
JP5658077B2 (ja) 半導体集積回路の遅延解析方法、遅延解析プログラム、遅延解析装置
Haar Design Reconstruction for Partial Reconfigurable FPGA Systems
Kourfali et al. Test set generation almost for free using a run-time FPGA reconfiguration technique
Zhang Delay characterization in FPGA-based reconfigurable systems
JP2004127058A (ja) テスト回路および半導体装置
JP2008176485A (ja) 再構成可能な論理デバイスおよびそのデバッグシステム
Sunwoo et al. On embedded processor reconfiguration of logic BIST for FPGA cores in SoCs
US6978428B2 (en) Mode register in an integrated circuit that stores test scripts and operating parameters

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181102

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181102

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190516

R150 Certificate of patent or registration of utility model

Ref document number: 6530358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250