(57)【特許請求の範囲】
【請求項１】
同一基板上に不揮発性メモリを内蔵するＦＰＧＡと、前記ＦＰＧＡの外部に設けられた外部不揮発性メモリと、前記ＦＰＧＡと前記外部不揮発性メモリとを外部回路に電気的に接続するコネクタとを備えたＦＰＧＡ用ＩＣ基板において、
前記同一基板上に実装され、前記ＦＰＧＡの機能書き換えを、前記不揮発性メモリ又は前記外部不揮発性メモリに格納されているコンフィグレーションデータ、あるいは前記コネクタを介して入力するコンフィグレーションデータのいずれのコンフィグレーションデータにより前記ＦＰＧＡの機能の書き換えを行うかを制御するコンフィグレーションデータ切り替え手段を備えたことを特徴とするＦＰＧＡ用ＩＣ基板。
【請求項２】
前記コンフィグレーションデータ切り替え手段は、前記コネクタを介して入力するコンフィグレーションデータを前記不揮発性メモリ又は前記外部不揮発性メモリのいずれに格納するかを制御することを特徴とする請求項１に記載のＦＰＧＡ用ＩＣ基板。
【請求項３】
前記コンフィグレーションデータ切り替え手段における前記不揮発性メモリと前記外部不揮発性メモリの切り替え手段は、スライドスイッチであることを特徴とする請求項１又は２に記載のＦＰＧＡ用ＩＣ基板。
【請求項４】
前記コンフィグレーションデータ切り替え手段における前記不揮発性メモリと前記外部不揮発性メモリの切り替え手段は、ジャンパースイッチであることを特徴とする請求項１又は２に記載のＦＰＧＡ用ＩＣ基板。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＣ基板に関し、特にＦＰＧＡ（Field Programmable Gate Array）とコンフィグレーションデータを格納する不揮発性メモリとを同一基板上に搭載するＦＰＧＡ用ＩＣ基板に関する。
【背景技術】
【０００２】
従来、電子機器の開発、試作等で用いられるＩＣ基板においては、単にＩＣのPINピッチ、配列を変更するＩＣ基板とＦＰＧＡ用に特化したＦＰＧＡとコンフィグレーションデータ格納用不揮発性メモリとを同一基板上に搭載したＦＰＧＡ用のＩＣ基板とが知られている。ＦＰＧＡは、高速動作及び低消費電力というハードウェア的特徴を有するとともに、論理回路をソフトウェア的に設計することができるという特徴を有することから、近年、その用途が広がってきている。
【０００３】
下記特許文献１には、２つのＦＰＧＡを有して構成されたシステムにおいて、それぞれのＦＰＧＡについてコンフィグレーション専用ＲＯＭを実装すると、システムコストが高くなってしまうという課題を解決するための技術を開示している。
【０００４】
特許文献１では、プロセッサーからコンフィグレーションデータを入力して、不揮発性メモリに書き込むための第１のパスと、不揮発性メモリからコンフィグレーションデータを読み出して、第１のＦＰＧＡ、および第２のＦＰＧＡにそれぞれコンフィグレーションを行うための第２のパスと、を切り換え可能に構成することで、かかる課題を解決する技術を開示している。
【０００５】
下記特許文献２は、ＦＰＧＡのコンフィグレーションデータの内容を容易に変更可能とすることで、効率的に開発を行うことができ且つコストを低減することができる技術を開示している。
【０００６】
特許文献２が開示する技術は、ＣＰＵ１０と不揮発性メモリ１４、メモリ１５、及び周辺ＩＯ装置１６等の周辺装置との間にＦＰＧＡ１１を備えるコンピュータ装置であって、周辺装置の１つとしての不揮発性メモリ１４は、ＣＰＵ１０に処理させるプログラムとＦＰＧＡ１１のコンフィグレーションデータとを格納する。制御装置１３はＦＰＧＡ１１のコンフィグレーション時に、不揮発性メモリ１４からコンフィグレーションデータを読み込みＦＰＧＡ１１に出力する、というものである。
【０００７】
これらはいずれもＦＰＧＡの機能の書き換えを効率的に行う技術に関するものであるが、特許文献１に記載の技術も、特許文献２に記載の技術も、同一ＩＣ基板上に複数の不揮発性メモリを実装していない。このため、ＦＰＧＡの機能を書き換えるには、その都度、外部からコンフィグレーションデータを不揮発性メモリに書き込み、その不揮発性メモリに格納されるコンフィグレーションデータによりＦＰＧＡをコンフィグレーションする必要がある。そのため、ＦＰＧＡの機能の書き換えに時間がかかるという課題がある。
【０００８】
また、特許文献１、特許文献２の技術では、外部からのコンフィグレーションデータにより直接ＦＰＧＡの機能の書き換え、あるいは不揮発性メモリに一旦データを格納し、必要に応じて不揮発性メモリに格納されているコンフィグレーションデータによりＦＰＧＡの機能を書き換えるなど、複数の不揮発性メモリに格納されているコンフィグレーションを必要の都度選択し、ＦＰＧＡをコンフィグレーションすることができない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2014-175891号公報
【特許文献２】特開2003-44303号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
そこで、本発明の課題は、ＦＰＧＡ機能の書き換えを、コンフィグレーションデータを直接ＦＰＧＡに書き込む場合と、ＦＰＧＡと同一基板に実装されたＦＰＧＡの外部不揮発性メモリにコンフィグレーションデータを書き込む場合と、かかる外部不揮発性メモリに格納されているコンフィグレーションデータによりＦＰＧＡの機能を書き換える等、求められるＦＰＧＡの機能に応じて、コンフィグレーションデータを切り替えることが可能なＦＰＧＡ用ＩＣ基板を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、請求項１に記載の発明は、同一基板上に不揮発性メモリを内蔵するＦＰＧＡと、前記ＦＰＧＡの外部に設けられた外部不揮発性メモリと、前記ＦＰＧＡと前記外部不揮発性メモリとを外部回路に電気的に接続するコネクタとを備えたＦＰＧＡ用ＩＣ基板において、
前記同一基板上に実装され、前記ＦＰＧＡの機能書き換えを、前記不揮発性メモリ又は前記外部不揮発性メモリに格納されているコンフィグレーションデータ、あるいは前記コネクタを介して入力するコンフィグレーションデータのいずれのコンフィグレーションデータにより前記ＦＰＧＡの機能の書き換えを行うかを制御するコンフィグレーションデータ切り替え手段を備えたことを特徴とするＦＰＧＡ用ＩＣ基板である。
【００１２】
請求項２に記載発明は、請求項１に記載のＦＰＧＡ用ＩＣ基板であって、前記コンフィグレーションデータ切り替え手段は、前記コネクタを介して入力するコンフィグレーションデータを前記不揮発性メモリ又は前記外部不揮発性メモリのいずれに格納するかを制御することを特徴とする。
【００１３】
請求項３に記載の発明は、請求項１又は２に記載のＦＰＧＡ用ＩＣ基板であって、前記コンフィグレーションデータ切り替え手段における前記不揮発性メモリと前記外部不揮発性メモリの切り替え手段は、スライドスイッチであることを特徴とする。  
【００１４】
請求項４の発明は、請求項１又は２に記載のＦＰＧＡ用ＩＣ基板であって、前記コンフィグレーションデータ切り替え手段における前記不揮発性メモリと前記外部不揮発性メモリの切り替え手段は、ジャンパースイッチであることを特徴とする。
【００１５】
なお、請求項１から４のいずれかに記載のＦＰＧＡ用ＩＣ基板であって、前記ＦＰＧＡの入出力信号の引き出し位置のピッチは2.54mmピッチ、1.27mmピッチ、2.00mmピッチのいずれかとすることは好ましい。
【発明の効果】
【００１６】
上述したように本発明によれば、ＦＰＧＡ機能の書き換えを、コンフィグレーションデータを直接ＦＰＧＡに書き込む場合と、ＦＰＧＡと同一基板に実装されたＦＰＧＡの外部不揮発性メモリにコンフィグレーションデータを書き込む場合と、その外部不揮発性メモリに格納されているコンフィグレーションデータによりＦＰＧＡの機能を書き換える等、求められるＦＰＧＡの機能に応じて、コンフィグレーションデータを切り替えることが可能なＦＰＧＡ用ＩＣ基板を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態の概念を示すブロック図である。
【図２】本発明の一実施例示した回路ブロック図である。
【図３】ＳＲＡＭにコンフィグレーションデータを書き込むときのタイミングチャートである。
【図４】ＳＲＡＭにコンフィグレーションデータを書き込むときのフローチャートである。
【図５】ＭＥＭＯＲＹ３０にコンフィグレーションデータを書き込むときのタイミングチャートである。
【図６】ＭＥＭＯＲＹ３０にコンフィグレーションデータを書き込むときのフローチャートである。
【図７】外部不揮発性メモリ３０のデータによりＦＰＧＡ２０をコンフィグレーションする場合のタイミングチャートである。
【図８】外部不揮発性メモリ３０のデータによりＦＰＧＡ２０をコンフィグレーションするときのフローチャートである。
【図９】不揮発性メモリ２１にコンフィグレーションデータを書き込むときのタイミングチャートである。
【図１０】不揮発性メモリ２１にコンフィグレーションデータを書き込むときのフローチャートである。
【図１１】不揮発性メモリ２１によりＦＰＧＡ２０をコンフィグレーションするときのタイミングチャートである。
【図１２】不揮発性メモリ２１によりＦＰＧＡ２０をコンフィグレーションするときのフローチャートである。
【図１３】本発明の他の実施例を示した回路ブロック図である。
【図１４】本発明の他の実例を示した回路ブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施の形態について図面を参照して説明する。図１は本発明の概念を示すブロック図である。図１において、ＦＰＧＡ２０の機能を書き換えるコンフィグレーションデータは、コネクタ４０を介してコネクタ４０と電気的に接続しているコンフィグレーションコンフィグレーションデータ切り替え手段５０により、ＦＰＧＡの外部不揮発性メモリ３０、またはＦＰＧＡに内蔵される不揮発性メモリ２１、あるいはＦＰＧＡに内蔵されるＳＲＡＭ２２のいずれかに格納される。
【００１９】
ＦＰＧＡ２０の機能の書き換えは、上述したＦＰＧＡに内蔵されるＳＲＡＭ２２にコンフィグレーションデータを直接書き込むか、あるいは外部不揮発性メモリ３０に格納されているコンフィグレーションデータ、又は不揮発性メモリ２１に格納されているコンフィグレーションデータのいずれかを選択し、書き込むかで実行される。
【００２０】
なお、これらの選択（切り替え）を行うのがコンフィグレーションデータ切り替え手段５０である。所望の機能に書き換えられたＦＰＧＡ２０はコネクタ１０を介して接続している外部の様々な装置と所定の処理を実行する。
【実施例１】
【００２１】
図２は本発明の一実施例示した回路ブロック図である。先ず、コンフィグレーションデータを外部不揮発性メモリ３０に格納するときはＳＷ５１１=ON、ＳＷ５１２=OFF、ＳＷ５１３=OFFにする。またはＳＷ５１１=ON、ＳＷ５１２=ON、ＳＷ５１３=OFFまたはＳＷ５１１=ON、ＳＷ５１２=OFF、ＳＷ５１３=ONのいずれかであっても良い。
【００２２】
コンフィグレーションデータをＦＰＧＡ２０に内蔵される不揮発性メモリ２１に格納するときは、ＳＷ５１１=OFF、ＳＷ５１２=OFF、ＳＷ５１３=ONの状態に設定する。コンフィグレーションデータをＦＰＧＡ２０に内蔵されるＳＲＡＭ２２に格納するときは、ＳＷ５１１=OFF、ＳＷ５１２=OFF、ＳＷ５１３=ONの状態に設定する。
【００２３】
次に、外部不揮発性メモリ３０に格納されたコンフィグレーションデータを使用してＦＰＧＡ２０のコンフィグレーションを行うときはＳＷ５１１=ON、ＳＷ５１２=OFF、ＳＷ５１３=OFF、またはＳＷ５１１=ON、ＳＷ５１２=ON、ＳＷ５１３=OFFの状態に設定する。
【００２４】
ＦＰＧＡ２０に内蔵される不揮発性メモリ２１に格納されたコンフィグレーションデータを使用してＦＰＧＡ２０のコンフィグレーションを行うときはＳＷ５１１=OFF、ＳＷ５１２=ON,ＳＷ５１３=OFFの状態に設定する。
【００２５】
不揮発性メモリ２１に格納されたコンフィグレーションデータを使用してＦＰＧＡ２０のコンフィグレーションを行うときはコンフィグレーション動作制御スイッチＳＷ５１４をON、OFFすることによりＦＰＧＡのConfiguration RESET _Negative （ＣＲＥＳＥＴ＿Ｂ）にコンフィグレーションの開始トリガー信号を与えるか、またはコネクタ４０のＣＲＥＳＥＴ＿Ｂに接続される端子に基板の外部から開始トリガー信号を与える。
【００２６】
コンフィグレーションデータをＦＰＧＡ２０に内蔵されるＳＲＡＭ２２に格納する形でＦＰＧＡ２０のコンフィグレーションを行うときは、コネクタ４０のＣＲＥＳＥＴ＿Ｂ信号に接続される端子に基板の外部から開始トリガー信号を与える。
【００２７】
図３から図１３は、上述した各動作についてのタイミングチャートとフローチャートである。図３から図１３を参照してコンフィグレーションデータの切り替えについて詳細に説明する。
【００２８】
図３はＳＲＡＭ２２にコンフィグレーションデータを書き込むときのタイミングチャートである。この動作のときはＦＰＧＡ２０の外部にある外部不揮発性メモリ３０からのデータ出力を防止するためにＳＷ５１１をOFFにする。そしてChip Select Negative2(ＣＳＮ2)をプルアップ抵抗５０２を介してHighに固定した状態にする。次にＳＷ５１４をOFFにして(ＣＲＥＳＥＴ＿Ｂにコネクタ４００から信号が入力できる状態にする。
【００２９】
次に、コネクタ４００のそれぞれＣＲＥＳＥＴ＿Ｂ、Serial ClocK（ＳＣＫ）、Chip Select Negative（ＣＳＮ）、Serial Output（ＳＯ）の各端子に図３に示すような信号を入力する。このときの動作フローを図４により説明する。先ず、ＣＲＥＳＥＴ＿Ｂ＝０とし（Ｓ１）、次に、ＣＳＮ＝０，ＳＣＫ＝１とする（Ｓ２）。所定時間待ち（Ｓ３）、ＣＲＲＳＥＴ＿Ｂ＝１とする（Ｓ４）。
【００３０】
所定時間待った後（Ｓ５）、ＳＣＫを図３に示すようなパルスとし、ＳＯのデータとしてＦＰＧＡ２０に書き込むコンフィグレーションデータの入力を開始する。入力が完了したら（Ｓ７）、所定時間待った後（Ｓ８）、コンフィグレーションデータが完了したどうかをチェックし（Ｓ９）、正常であれば終了し（Ｓ１１）、異常があればエラー終了する（Ｓ１０）。なお、コンフィグレーションが完了すると図３に示すようにDONE信号がHighレベルとなる。
【００３１】
図５は外部不揮発性メモリ３０にコンフィグレーションデータを書き込むタイムチャートであり、図６はそのときの動作フローを示した図である。この動作のときはＦＰＧＡ２０の外部にある外部不揮発性メモリ３０からのデータ出力を可能にするためにＳＷ５１１をＯＮ、ＳＷ５１２とＳＷ５１３をＯＦＦ、又はいずれかをＯＮの状態にする。また、ＳＷ５１４はＯＦＦとし、ＣＲＥＳＥＴ＿Ｂにコネクタ４０からのデータが入力可能な状態とする。
【００３２】
この状態において、ＣＲＥＳＥＴ＿Ｂ、ＳＣＫ、ＣＳＮ、Serial Intput（ＳＩ）の各端子に図５に示すような信号を入力する。このときの動作フローを図６により説明する。先ず、ＣＲＥＳＥＴ＿Ｂ＝０とし（Ｓ１）、次に、ＣＳＮ＝０，ＳＣＫ＝１とする（Ｓ２）．所定時間待ち（Ｓ３）、ＳＣＫにパルス入力、ＳＩにメモリ制御データとコンフィグレーションデータとを入力する（Ｓ４）。所定時間待って（Ｓ５）、ＣＳＮ＝１、ＳＣＫ＝１とし（Ｓ６）、終了する（Ｓ７）。
【００３３】
次に、ＦＰＧＡ２０の外部不揮発性メモリ３０に格納されているデータによりＦＰＧＡ２０をコンフィグレーションする場合について、図７のタイムチャート、図８のフローチャートにより説明する。この動作のときはＦＰＧＡ２０の外部にある外部不揮発性メモリ３０からのデータ出力を可能とするためにＳＷ５１１をOＮ、ＳＷ５１２、ＳＷ５１３をＯＦＦ、又はＳＷ５１２をＯＮ，ＳＷ５１３をＯＦＦにする。そしてＳＷ５１４をＯＮにした後、ＯＦＦの状態にする。
【００３４】
または、コネクタ４０のＣＲＥＳＥＴ＿ＢをＬＯＷにした後、ＨＩＧＨにする。そして外部不揮発性メモリ３０に対して、 図７に示すようなＳＣＫ、ＣＳＮ信号を出力する。このときＦＰＧＡ外部不揮発性メモリ３０は、ＳＣＫに同期してＳＯにコンフィグレーションデータを出力する。
【００３５】
図８にそのときのフローチャートを示す。ＣＲＥＳＥＴ＿Ｂ＝０とし（Ｓ１）、所定時間まった後（Ｓ２）、ＣＲＥＳＥＴ＿Ｂ＝１とする（Ｓ３）。そしてＭＥＭＯＲＹ２１が有効か否をチェックし（Ｓ４）、有効であればＭＥＭＯＲＹ２１はコンフィグレーションモードとなる（Ｓ１０）。
【００３６】
ＭＥＭＯＲＹ２１が有効でなければ、ＣＳＮ＝０，ＳＣＫ＝１とし（Ｓ５）、図７に示すＳＣＫのパルスと、ＳＯのコンフィグレーションデータを入力する。ＳＯデータの入力が終了すると（Ｓ７）、ＤＯＮＥ＝１か否かをチェックし（Ｓ８）、ＤＯＮＥであれば正常終了し（Ｓ９）、そうでなければエラー終了する（Ｓ１１）。
【００３７】
不揮発性メモリ２１にコンフィグレーションデータを書き込む場合について、図９のタイムチャート、図１０のフローチャートにより説明する。このときの動作は、ＦＰＧＡ２０の外部不揮発性メモリ３０を非アクティブにするため、ＳＷ５１１をＯＦＦにし、ＣＳＮ２をＨｉｇｈにし、ＳＷ５１２をＯＦＦ，ＳＷ５１３をＯＮとし、ＣＳＮをＬＯＷに設定する。また、ＳＷ５１４はＯＦＦに固定しコネクタ４０からＣＲＥＳＥＴ＿Ｂが入力できるようにする。この状態で、コネクタ４０から図９に示すようなデータをＦＰＧＡ２０に出力する。
【００３８】
このときの動作フローを図１０により説明する。先ず、ＣＲＥＳＥＴ＿Ｂ＝０とし（Ｓ１）、次に、ＣＳＮ＝０，ＳＣＫ＝１とする（Ｓ２）．所定時間待ち（Ｓ３）、ＳＣＫにパルス入力、ＳＯにデータを入力する（Ｓ４）。所定時間待って（Ｓ５）、ＣＳＮ＝１、ＳＣＫ＝１とし（Ｓ６）、終了する（Ｓ７）。
【００３９】
次に不揮発性メモリ２１のデータによりＦＰＧＡをコンフィグレーションする場合について、図１１のタイムチャートと図１２のフローチャートにより説明する。この動作のときは、ＦＰＧＡの外部不揮発性メモリ３０を非アクティブにするため、ＳＷ５１１をＯＦＦ状態とし、ＣＳＮ２をＨｉｇｈとし、ＳＷ５１２をＯＮ、ＳＷ５１３をＯＦＦとして、ＣＳＮをＨｉｇｈとする。
【００４０】
この状態でＳＷ５１４をＯＮにした後、ＯＦＦとするか、又はコネクタ４０のＣＲＳＥＴ＿Ｂに外部からの信号によりＬｏｗにした後、Ｈｉｇｈとする。これにより図１１に示すようなデータがＦＰＧＡ内部で出力され、不揮発性メモリ２１はＳＣＫに同期してデータを出力し、ＦＰＧＡにコンフィグレーションデータを書き込む。
【００４１】
このときの動作フローを図１２により説明する。先ず、ＣＲＥＳＥＴ＿Ｂ＝０とし（Ｓ１）、所定時間待ち（Ｓ２）、ＣＲＲＳＥＴ＿Ｂ＝１とする（Ｓ３）。
【００４２】
ＭＥＭＯＲＹ２１がアクティブな状態であるかどうかを判断し（Ｓ４）、アクティブであればコンフィグレーションモードであり（Ｓ５）、ＣＳＮ＝０、ＳＣＫ＝１とし（Ｓ６）、ＳＣＫとＳＯのデータとを出力する（Ｓ５，Ｓ７）。アクティブでなければＭＥＭＯＲＹ３０がコンフィグレーションモードである（Ｓ１２）。
【００４３】
コンフィグレーションデータが完了したどうかをチェックし（Ｓ９）、正常であれば終了し（Ｓ１１）、異常があればエラー終了する（Ｓ１０）。なお、コンフィグレーションが完了すると図１２に示すようにDONE信号がHighレベルとなる。
【実施例２】
【００４４】
図１３に示す実施例２では、ＳＷ５１２，ＳＷ５１３は同時にONになることはないので図１３のジャンパースイッチ２００のような３端子のジャンパースイッチとすることができる。またＳＷ５１１はONとOFFどちらかであるので２端子のジャンパースイッチとすることができる。図１３は、そのような回路ブロックを示したものである。
【実施例３】
【００４５】
図１４に示す実施例３では、ＦＰＧＡ２０のDONE信号にＬＥＤ７０の接続を行うことによりＦＰＧＡ２０のコンフィグレーション中にＬＥＤが点灯し、コンフィグレーションが正常に完了したときにＬＥＤが消灯する回路としている。図１４は、そのような回路ブロックを示したものである。
【産業上の利用可能性】
【００４６】
本発明のＦＰＧＡ用ＩＣ基板は製品開発時の機能評価用の機器及び装置、少量生産が予測される機器及び装置に利用することができる。
【符号の説明】
【００４７】
１  ＦＰＧＡ用ＩＣ基板
１０  外部装置とＦＰＧＡ用ＩＣ基板とを電気的に接続するコネクタ
２０  ＦＰＧＡ
２１  ＦＰＧＡの内蔵不揮発性メモリ
２２  ＦＰＧＡのＳＲＡＭ（Static Random Access Memory）
３０  外部不揮発性メモリ
４０  外部データ装置とデータ切り替え手段とを電気的に接続するコネクタ
７０  ＬＥＤ
２００  ジャンパースイッチ
５０１，５０２  ５０３  ５０５  プルアップ抵抗
５０４  プルアップ、プルダウン設定切り替え抵抗
５１１，５１２，５１３  切り替えスイッチ 
５１４  コンフィグレーション動作制御スイッチ
【図１】
0006488683.tif 000002
【図２】
0006488683.tif 000003
【図３】
0006488683.tif 000004
【図４】
0006488683.tif 000005
【図５】
0006488683.tif 000006
【図６】
0006488683.tif 000007
【図７】
0006488683.tif 000008
【図８】
0006488683.tif 000009
【図９】
0006488683.tif 000010
【図１０】
0006488683.tif 000011
【図１１】
0006488683.tif 000012
【図１２】
0006488683.tif 000013
【図１３】
0006488683.tif 000014
【図１４】
0006488683.tif 000015