(57)【要約】【課題】意図した以外のコンフィグレーションデータによりプログラマブルロジックがコンフィグレーションされることがないようにする。【解決手段】供給されたコンフィグレーションデータが書き込まれるコンフィグレーションＲＡＭ１２と、そのコンフィグレーションＲＡＭ１２に書き込まれたコンフィグレーションデータによって定義される回路を構成するロジックモジュール１１と、コンフィグレーションＲＡＭ１２ヘのコンフィグレーションデータの書き込みを管理する管理回路１３とを有し、管理回路１３において、前記コンフィグレーションデータのリビジョンに応じて、前記コンフィグレーションデータの前記コンフィグレーションＲＡＭ１２への供給を管理する。【選択図】図１
2007235625.tif 000002
【特許請求の範囲】
【請求項１】
供給されたコンフィグレーションデータが書き込まれるコンフィグレーションＲＡＭと、該コンフィグレーションＲＡＭに書き込まれたコンフィグレーションデータによって定義される回路を構成するロジックモジュールと、前記コンフィグレーションＲＡＭヘの前記コンフィグレーションデータの供給を管理する管理回路とを有し、
前記管理回路が、前記コンフィグレーションデータと前記コンフィグレーションデータのリビジョン情報を受信し、該リビジョン情報に従って、前記コンフィグレーションデータの前記コンフィグレーションＲＡＭヘの供給を管理することを特徴とするプログラマブルロジックシステム。
【請求項２】
前記管理回路が、前記コンフィグレーションＲＡＭおよび前記ロジックモジュールと同一の半導体チップ上に集積されていることを特徴とする請求項１記載のプログラマブルロジックシステム。
【請求項３】
前記管理回路が、前記コンフィグレーションＲＡＭおよび前記ロジックモジュールと別の半導体チップ上に集積されていることを特徴とする請求項１記載のプログラマブルロジックシステム。
【請求項４】
前記管理回路は、管理リビジョンを有し、該管理リビジョンと前記コンフィグレーションデータのリビジョンとを比較して、前記コンフィグレーションデータの前記コンフィグレーションＲＡＭヘの供給の可否を決定することを特徴とする請求項１、２または３記載のプログラマブルロジックシステム。
【請求項５】
前記管理回路の前記管理リビジョンは、設定ピンによって外部から設定されることを特徴とする請求項４記載のプログラマブルロジックシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Field Programmble Gate Array)等のプログラムロジックのコンフィグレーションＲＡＭに対するコンフィグレーションデータの供給の可否を制御できるようにしたプログラムロジックシステムに関するものである。
【背景技術】
【０００２】
プログラマブルロジック、例えばＦＰＧＡに回路を構成する際は、図３に示すように、コンピュータ３０により、コンフィグレーションデータ５０を取り込んでコンフィグレーションＲＯＭ（通常はＥＥＰＲＯＭ）２０Ａに書き込み、そのコンフィグレーションＲＯＭ２０Ａに書き込まれたコンフィグレーションデータをＪＴＡＧ等のインターフェースを用いてＦＰＧＡ１０Ａ内のコンフィグレーションＲＡＭ（通常はＳＲＡＭ）１２に読み込んで、ロジックモジュール１１に対してコンフィグレーションデータで定義される回路を構成すると共に、その状態を保持する。従って、必要とする回路の仕様が変更になった場合、その仕様に応じたコンフィグレーションデータを作成し、コンフィグレーションＲＯＭ２０Ａに書き込んで供給することにより、迅速にＦＰＧＡ１０Ａ内の回路変更を行うことができる。
【０００３】
ＦＰＧＡによる回路生成では、通常、ＣＡＤツールを用いて生成した回路データ（ＲＴＬデータ）を、使用するＦＰＧＡのメーカの供給するツールを用いてコンパイルし、さらに、使用する品種に合わせたロジックエレメントの配置およびその間の配線が定義されたコンフィグレーションデータを作成する。当然、回路データが異なればコンフィグレーションデータは異なる。また、同じ回路データから作成したコンフィグレーションデータであっても、設定によって異なるコンフィグレーションデータが生成される。従って、異なる回路データに対応するもの、および、同一の回路データに対応するものを含めて、複数のコンフィグレーションデータが生成される。
【０００４】
これらの複数のコンフィグレーションデータの中から、当該のＦＰＧＡに記憶させるべきものが指定されると、そのコンフィグレーションデータがコンフィグレーションＲＯＭに書き込まれる。間違ったコンフィグレーションデータをコンフィグレーションＲＯＭに記憶させたのでは、所望の動作が行われない（同じ回路データから生成したコンフィグレーションデータであっても、異なる設定で生成したコンフィグレーションデータでは正常に動作しない場合もある）ので、当該のコンフィグレーションＲＯＭがどのコンフィグレーションデータが書き込まれたものであるかが識別できることが好ましい。
【０００５】
従来では、この識別のため、そのコンフィグレーションデータに関するファイル名、フォルダ名、更新日付等の固有データを示す番号や記号等からなるリビジョン情報を作成し、このリビジョン情報が表示されたラベルを用意して、このラベルをコンフィグレーションＲＯＭに貼り付け、そのコンフィグレーションＲＯＭ（もしくは、ＲＯＭに書き込まれたコンフィグレーションデータ）のリビジョン管理が行われていた。
【０００６】
しかし、ラベルでは、コンフィグレーションＲＯＭが取り付けられたボードを機器から取り外さないとリビジョン情報が確認できないという問題がある。また、ラベルの表示が不鮮明になったり、間違ったラベルが貼り付けられたりする場合もあった。
【０００７】
そこで、コンフィグレーションデータの一部としてバージョン情報（リビジョン情報と同じ）を付与し、ＦＰＧＡ内にそのバージョン情報を格納する記憶部を設けることが提案されている（例えば、特許文献１）。
【特許文献１】特開２００２−１６９７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、ＦＰＧＡ内にバージョン情報を格納する記憶部を設ける手法では、バージョン情報がＦＰＧＡとして構成される回路として生成されるので、設計者が回路のデータの一部として予め作り込まなければならず、作業者の負担が大きく、まちがいが起こりやすい。しかも、ＦＰＧＡ内にバージョン情報を格納するため、そのバージョン情報は、コンフィグレーションデータをＦＰＧＡに読み込んだ（コンフィグレーションを行った）後でないと確認することができない。
【０００９】
本発明の目的は、意図したリビジョン以外のリビジョンのコンフィグレーションデータによりプログラマブルロジックがコンフィグレーションされることがないようにしたプログラマブルロジックシステムを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１にかかる発明のプログラマブルロジックシステムは、供給されたコンフィグレーションデータが書き込まれるコンフィグレーションＲＡＭと、該コンフィグレーションＲＡＭに書き込まれたコンフィグレーションデータによって定義される回路を構成するロジックモジュールと、前記コンフィグレーションＲＡＭヘの前記コンフィグレーションデータの供給を管理する管理回路とを有し、前記管理回路が、前記コンフィグレーションデータと前記コンフィグレーションデータのリビジョン情報を受信し、該リビジョン情報に従って、前記コンフィグレーションデータの前記コンフィグレーションＲＡＭヘの供給を管理することを特徴とする。
請求項２にかかる発明は、請求項１にかかる発明において、前記管理回路が、前記コンフィグレーションＲＡＭおよび前記ロジックモジュールと同一の半導体チップ上に集積されていることを特徴とする。
請求項３にかかる発明は、請求項１にかかる発明において、前記管理回路が、前記コンフィグレーションＲＡＭおよび前記ロジックモジュールと別の半導体チップ上に集積されていることを特徴とする。
請求項４にかかる発明は、請求項１、２または３にかかる発明において、前記管理回路は、管理リビジョンを有し、該管理リビジョンと前記コンフィグレーションデータのリビジョンとを比較して、前記コンフィグレーションデータの前記コンフィグレーションＲＡＭヘの供給の可否を決定することを特徴とする。
請求項５にかかる発明は、請求項４にかかる発明において、前記管理回路の前記管理リビジョンは、設定ピンによって外部から設定されることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、管理回路によって、コンフィグレーションデータのリビジョン情報に基づき、コンフィグレーションＲＡＭへのコンフィグレーションデータの供給が管理されるので、所望のコンフィグレーションデータ以外の例えば古いコンフィグレーションデータによってプログラマブルロジックがコンフィグレーションされ、回路構成されることを防止することができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施例では、ＦＰＧＡのコンフィグレーションＲＡＭに書き込むコンフィグレーションデータを、管理回路により、リビジョン情報に基づき管理して、所望のコンフィグレーションデータ以外のコンフィグレーションデータによってＦＰＧＡが回路構成されることがないようにする。
【００１３】
図１は管理回路を備えたＦＰＧＡ書き込みシステムの構成を示す図である。１０はＦＰＧＡであり、所望の回路を生成するロジックモジュール１１と、該ロジックモジュール１１に生成させる回路を定義するコンフィグレーションデータを保持するコンフィグレーションＲＡＭ１２と、コンフィグレーションデータのコンフィグレーションＲＡＭ１２への書き込みを管理する管理回路１３とを有する。１４はこの管理回路１３に管理リビジョンを設定するための外部信号が入力する設定ピンである。２０はコンフィグレーションＲＯＭであり、ＦＰＧＡ１０をコンフィグレーションするためのコンフィグレーションデータ格納部２１とそのコンフィグレーションデータ格納部２１に格納されたコンフィグレーションデータのリビジョン情報を格納するためのリビジョン情報格納部２２をもつ。３０はＲＯＭライタとしても機能するコンピュータであり、コンフィグレーションデータやリビジョン情報をコンフィグレーションＲＯＭ１０に書き込んだり、コンフィグレーションデータの書き込み履歴の管理、その他の処理を行う。４０はその書き込み履歴を格納するデータベース、５０は複数のコンフィグレーションデータを記憶する記憶部である。
【００１４】
さて、ＦＰＧＡ１０への回路書き込みに際しては、まずコンフィグレーションＲＯＭ２０の書き換えを行うプログラム上で、そのコンフィグレーションＲＯＭ２０に書き込むコンフィグレーションデータを、記憶部１０に記憶された複数のコンフィグレーションデータの中から指定する。すると、プログラムが、そのコンフィグレーションデータの固定データを抽出する。この固定データとして使用できるものとしては、ファイル名、フォルダ名、更新日時、コンフィグレーションデータ作成の際に発生させるランダムデータ等がある。書き込み履歴のデータベース４０へ格納する履歴データとしては、この固定データとその書き込み日時等の付加情報を使用する。
【００１５】
図２はコンフィグレーションＲＯＭ２０へのコンフィグレーションデータの書き込みの処理のフローチャートである。書き込むべき１つのコンフィグレーションデータを、複数のコンフィグレーションデータの中から指定（Ｓ１）する。複数のコンフィグレーションデータには、同一の回路情報から異なる設定で生成した異なるコンフィグレーションデータが含まれる。次に、その指定したコンフィグレーションデータについて過去に書き込まれた経緯があるか否かの書き込み履歴を、当該コンフィグレーションデータの固定データをキーとしてデータベース４０を参照して検索する（Ｓ２）。
【００１６】
そのデータベース４０にその書き込み履歴がない場合（Ｓ３−Ｎ）は、前記指定したコンフィグレーションデータの固定データを示す番号や記号からなるリビジョン情報を生成して（Ｓ４）から、コンフィグレーションＲＯＭ２０のコンフィグレーションデータ格納部２１に対して該指定したコンフィグレーションデータを書き込み、且つそのリビジョン情報格納部２２にリビジョン情報を書き込む（Ｓ６）。そして、データベース４０の書き込み履歴に、当該書き込んだコンフィグレーションデータの固有データと付加情報に加えて、リビジョン情報を格納し、その履歴を更新する（Ｓ７）。
【００１７】
一方、指定したコンフィグレーションデータの書き込み履歴がデータベース４０で検索できたとき（Ｓ３−Ｙ）は、書き込み履歴を参照して、当該指定したコンフィグレーションデータのリビジョン情報を読み取り（Ｓ５）、コンフィグレーションＲＯＭ２０に対して該指定したコンフィグレーションデータおよびそのリビジョン情報を、前記と同様に書き込む（Ｓ６）。さらに、データベース４０の書き込み履歴に、書き込み日時を示す付加情報を追加し、その履歴を更新してもよい（Ｓ７）。
【００１８】
以上のようにして、コンフィグレーションＲＯＭ２０にコンフィグレーションデータとリビジョン情報が書き込まれたら、次にそのコンフィグレーションデータをＦＰＧＡ１０のコンフィグレーションＲＡＭ１２に対して書き込み、ロジックモジュール１１にそのコンフィグレーションデータで定義された回路を構成する、つまりコンフィグレーションを実行する。
【００１９】
このときは、図３に示すように、ＦＰＧＡ１０の管理回路１３によってコンフィグレーションＲＯＭ２０内のリビジョン情報を読み出し（Ｓ１１）、管理回路１３において、設定ピン１４によって設定された管理リビジョンと前記コンフィグレーションＲＯＭ２０から読み出した現リビジョンとを比較し（Ｓ１２）、コンフィグレーションが可能か否かを判定する（Ｓ１３）。そして、可能であれば（Ｓ１３−Ｙ）、コンフィグレーションＲＯＭ１０のコンフィグレーションデータをコンフィグレーションＲＡＭ１２に読み込んで、ロジックモジュール１１にコンフィグレーションデータで定義された回路を構成する（Ｓ１４）。可能でなければ（Ｓ１３−Ｎ）、エラー表示を行う（Ｓ１５）。
【００２０】
図４は設定回路１３に管理リビジョンを設定する設定ピン１４の説明図である。設定ピン１４は、書き込み許可のリビジョンを「１」、「０」のビットで設定する許可リビジョン設定ピン１４ａ（８ビット）と、許可リビジョン設定ピン１４ａで設定されたリビジョンのビットの一部又は全部をマスク（無関係に）するマスクピン１４ｂ（８ビット）からなる。
【００２１】
図４(a)に示すように、マスクピン１４ｂのすべてのビットに「１」の信号を加えたときは、許可リビジョン設定ピン１４ａのすべてのビットがマスクされる（なお、許可リビジョン設定ピン１４ａはここでは開放されているが、どのような設定が行われていてもマスクされる）ので、コンフィグレーションＲＯＭ２０から読み出したリビジョンの如何に拘わらず、そのコンフィグレーションＲＯＭ２０から読み出したコンフィグレーションデータをコンフィグレーションＲＡＭ１２に書き込み、コンフィグレーションが行われる。つまり、リビジョン情報による管理は行われない。
【００２２】
一方、図４(b)に示すように、許可リビジョン設定ピン１４ａの上位４桁のビットのみに「０００１」を立て、且つマスクピン１４ｂの下位４桁のビットに「１１１１」を立てて下位４桁のビットをマスクしたときは、上位４桁に「０００１」をもつリビジョンのコンフィグレーションデータが書き込み許可となる。つまり、「０００１００００」以下の古いリビジョンのコンフィグレーションデータは書き込み禁止となる。
【００２３】
以上により、ＦＰＧＡ１０では、設定ピン１４の設定および管理回路１３により、許可されたリビジョンの１又は２以上のコンフィグレーションデータがコンフィグレーションＲＡＭ２０に書き込まれるので、予め設定ピン１４で書き込むべきコンフィグレーションデータのリビジョンを設定しておくことにより、所望以外のコンフィグレーションデータによりＦＰＧＡ１０に回路構成が行われる事態を回避することができる。
【００２４】
なお、以上説明した実施例では、管理回路１３をＦＰＧＡ１０と同一の半導体チップ上に設けたが、この管理回路１３はＦＰＧＡ１０とは別に独立して設けることができることは勿論である。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施例の管理回路を備えたＦＰＧＡ書き込みシステムの構成図である。
【図２】コンフィグレーションＲＯＭへの書き込みの処理のフローチャートである。
【図３】コンフィグレーションＲＡＭへの書き込みの処理のフローチャートである。
【図４】管理回路の設定ピンの説明図である。
【図５】従来のＦＰＧＡ書き込みシステムの構成図である。
【符号の説明】
【００２６】
１０，１０Ａ：ＦＰＧＡ、１１：ロジックモジュール、１２：コンフィグレーションＲＡＭ、１３：管理回路、１４：設定ピン
２０、２０Ａ：コンフィグレーションＲＯＭ、２１：コンフィグレーションデータ格納部、２２：リビジョン情報格納部
３０：コンピュータ
４０：データベース
５０：記憶部
【図１】
2007235625.tif 000003
【図２】
2007235625.tif 000004
【図３】
2007235625.tif 000005
【図４】
2007235625.tif 000006
【図５】
2007235625.tif 000007