説明

プログラマブル論理回路

【課題】 コンフィギュレーションに際して容易に上位機器と接続でき、一旦基盤に実装した後も再利用が可能なプログラマブル論理回路を提供すること。
【解決手段】 FPGA1に上位機器10,基盤30とUSB接続するUSBI/F1aを設ける。USBI/F1aにより上位機器10と接続されたとき、上位機器10にコンフィギュレーションデータを作成するためのソフトウェアを起動せしめる。このソフトウェアにより作成されたコンフィギュレーションデータが、USBI/F1aを介して受信されたことに応じて、当該コンフィギュレーションデータに基づく論理回路を論理回路部2のユーザ領域6に設計する。その後、USBI/F1aにより基盤30と接続されたとき、ユーザ領域6に設計した論理回路に基づいて入力信号を処理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、論理回路の書き換えが可能なプログラマブル論理回路いわゆるFPGA(Field Programmable Gate Array)に関する。
【背景技術】
【0002】
従来、電子機器などの制御回路には、それぞれの用途に応じた集積回路であるASIC(Application Specific Integrated Circuit)が用いられている。ASICの開発にあたっては、ユーザが望む機能を実現する集積回路を設計した後に評価用のASICを作製し、評価結果や機能変更等を反映して再度評価用のASICを作成し直すという作業が繰り返される。このような繰り返し作業が多数行われる場合には、開発期間の長期化を招いてしまう。また、開発が完了したASICを大量生産したにもかかわらず、回路設計に不具合が発見されたときには、これらのASICを破棄する他ないため、大きな損害が生じてしまう。
【0003】
そこで、近年ではユーザが論理回路をプログラミングすることができるFPGAを使用するケースが多い。このFPGAを用いて、たとえばASICの試作を行うことにより開発期間の短縮が可能となるため、製品の早期市場投入が実現できる。
【0004】
なお、FPGAを搭載した電子機器としては、例えば特許文献1に記載のコンピュータシステムが知られている。
【特許文献1】特開平2001−290758号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、FPGAは、本体から多数演出した0.5mm幅程度のピンを電子機器内の基盤に半田付けして実装するため、一旦基盤に実装してしまうと取外して他の電子機器に再利用することが困難である。そのため、FPGAにプログラムされた論理回路を書き換えるためには、FPGAのコンフィギュレーションソフトウェアがインストールされた上位機器をFPGAが実装された基盤近辺まで運び、専用のコネクタをFPGAに接続してコンフィギュレーションを行う必要があるため面倒であった。
【0006】
また、高性能なFPGAは大変高価なため、実装された基盤から取外して再利用することができれば大幅なコスト削減に繋がる。
【0007】
本発明は、上記のような事情に基づいてなされたものであり、その目的は、コンフィギュレーションに際して容易に上位機器と接続でき、一旦基盤に実装した後も再利用が可能なプログラマブル論理回路を提供することである。
【課題を解決するための手段】
【0008】
本発明は、上位機器から受信したコンフィギュレーションデータに基づいて論理回路を設計する論理回路部を備え、基盤に実装された際、前記論理回路部に設計された論理回路に基づいて入力信号を処理するプログラマブル論理回路において、前記上位機器および基盤をUSB接続するUSBインターフェイスと、前記USBインターフェイスにより前記上位機器と接続されたとき、当該上位機器に前記コンフィギュレーションデータを作成するためのソフトウェアを起動せしめるソフトウェア起動手段と、このソフトウェア起動手段が前記上位機器に起動せしめた前記ソフトウェアにより作成されたコンフィギュレーションデータが、前記USBインターフェイスを介して受信されたことに応じて、当該コンフィギュレーションデータに基づく論理回路を前記論理回路部に設計するコンフィギュレーション制御手段とを備え、前記USBインターフェイスにより前記基盤と接続されたとき、前記コンフィギュレーション制御手段が前記論理回路部に設計した論理回路に基づいて入力信号を処理することを特徴としている。
【発明の効果】
【0009】
かかる手段を講じた本発明によれば、コンフィギュレーションに際して容易に上位機器と接続でき、一旦基盤に実装した後も再利用が可能なプログラマブル論理回路を提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の一実施形態について、図面を用いて説明する。
図1は、本発明に係るプログラマブル論理回路であるFPGA1の構成を説明するためのブロック図である。FPGA1は、USB(登録商標)インターフェイス(I/F)1aと、電源の供給が停止した後も情報を保持する書き換え可能な論理回路部2とを備えた不揮発性のFPGAである。
【0011】
USBインターフェイス1aは、FPGA1のコンフィギュレーションを実行する上位機器10に設けられたUSBインターフェイス10aや、FPGA1を実装する電子機器の基盤30に設けられたUSBインターフェイス30aとの接続を司る。
【0012】
論理回路部2は、LUT(Look Up Table)を定義可能な不揮発性メモリを備えた多数の論理モジュールを規則的に並べ、その間に各論理モジュールの接続を切り替えるためのスイッチとこれらスイッチの切り替え情報を記憶した不揮発性メモリとを備えた配線領域を設けて構成されている。ユーザは、後述のコンフィギュレーションにより、各論理モジュールのLUTの定義および配線領域のスイッチの接続を変更することで、所望の論理回路を実現することができる。
【0013】
本実施の形態において、論理回路部2には、予めUSBドライバ回路4、ソフトウェア起動回路5およびコンフィギュレーション(CONFIG)制御回路7が設計されている。そして、ユーザが自由に回路を設計するための領域としてユーザ領域6が用意されている。USBドライバ回路4は、USBインターフェイス1aにより接続された上位機器10や基盤30との通信を制御する。ソフトウェア起動回路5は、USBインターフェイス1aに上位機器10が接続されたことを検知して、上位機器10が備える後述のコンフィギュレーション(CONFIG)ソフトウェア16aを起動せしめる。コンフィギュレーション制御回路7は、上位機器10から受信するコンフィギュレーションデータに基づく論理回路をユーザ領域6に設計する。
【0014】
続いて、上位機器10について説明する。図2は、上位機器10の制御回路を示すブロック図である。上位機器10は、内部に制御主体であるCPU11を備えている。このCPU11に対し、データ受渡しの管理等の情報流通を制御するチップセット12、システムの起動を司るBIOS(Basic Input/Output System)を記憶したBIOS−ROM13、各種処理プログラムなどの固定的なデータを記憶したROM14、処理場面に応じた作業用の記憶領域を形成するRAM15、コンフィギュレーションソフトウェア16aを記憶したハードディスクドライブ(HDD)16、ディスプレイ17aを接続したディスプレイコントローラ17、USBインターフェイス10aを接続したUSBドライバ18およびキーボード19aを接続したキーボードコントローラ19などを、例えばPCIバス等のバスライン20を介して接続している。
【0015】
上記ディスプレイコントローラ17は、CPU11により情報処理されたデータのディスプレイ17aへの表示を制御する。上記USBドライバ18は、USBインターフェイス10aに接続された機器との通信を制御する。上記キーボードコントローラ19は、キーボード19aに設けられた置数キーやアルファベットキーなどが操作された際に出力される電気信号を検知してCPU11に伝達する。
【0016】
上記コンフィギュレーションソフトウェア16aは、FPGA1の論理回路部2に設けられたユーザ領域6をコンフィギュレーションするためのソフトウェアである。具体的には、ユーザによるプログラミングを受け付けて、当該プログラミングに基づいて論理回路を構築するためのコンフィギュレーションデータを作成する機能、および作成されたコンフィギュレーションデータをUSBインターフェイス10aに接続されたFPGA1に送信し、論理回路部2に設けられたユーザ領域6のコンフィギュレーションを指示する機能を備えている。
【0017】
次に、上記のようなFPGA1の構成による作用について説明する。
図3は、FPGA1で実行される処理の流れ図である。FPGA1のUSBインターフェイス1aが、上位機器10のUSBインターフェイス10aあるいは電子機器の基盤30が備えるUSBインターフェイス30aに接続されたときには、上位機器10または基盤30側からUSBインターフェイス1aを介して電源の供給が開始されるとともに、上位機器10または基盤30がFPGA1を認識するための初期信号が入力される。このときST1として、USBドライバ回路4が上記初期信号に基づいて、接続先が上位機器10あるいは基盤30のいずれであるかを判別する。
【0018】
USBドライバ回路4により接続先が上位機器であると判別されたときには(ST1の“上位機器”)、ST2として、ソフトウェア起動回路5が上位機器10にコンフィギュレーションソフトウェア16aを起動せしめる。具体的には、USBインターフェイス1aを介して上位機器10にコンフィギュレーションソフトウェア16aの起動コマンドを送信する。この信号を受けたことに応じて、上位機器10のCPU11がコンフィギュレーションソフトウェア16aの実行プログラムをRAM15にロードして実行する。
【0019】
かくして起動されたコンフィギュレーションソフトウェア16aの制御の下、キーボード19aからの操作入力に応じてコンフィギュレーションデータが作成される。そして、所定の操作によりコンフィギュレーションの実行がユーザから指示されたことに応じて、USBドライバ18が当該コンフィギュレーションデータをFPGA1に送信し、コンフィギュレーションの実行を指示する。
【0020】
ST2の処理にて上位機器にコンフィギュレーションソフトウェア16aを起動せしめた後、FPGA1では、USBドライバ回路4がコンフィギュレーションデータの受信を待機している(ST3のNo)。そして、コンフィギュレーションデータを受信するとともにコンフィギュレーションの実行が指示されたときには(ST3のYes)、ST4として、コンフィギュレーション制御回路7が当該コンフィギュレーションデータに基づく論理回路をユーザ領域6に設計する。具体的には、当該コンフィギュレーションデータが示す内容にユーザ領域6を構成する各論理モジュールのLUTを定義し、配線領域のスイッチの接続を変更する。そして、一連のコンフィギュレーションが完了した後、当該処理を終了する。
【0021】
一方、ST1の処理にてUSBドライバ回路4がUSBインターフェイス1aの接続先が電子機器の基盤30であると判別したときには(ST1の“基盤”)、ST5として、その後USBインターフェイス1aを介して入力される信号をユーザ領域6に設計された論理回路に基づいて処理する。この処理は、その後電源の供給が停止するまで継続されることとなる。
【0022】
以上説明したように、本発明に係るFPGA1は、半田付けなどを要せずにUSBインターフェイス1aを介して電子機器の基盤30に実装可能である。これにより、一旦基盤30に実装した後でも容易に取外して再利用することができるので、コスト削減に繋がる。
【0023】
また、このように基盤30から取外した後、他の電子機器で用いるために論理回路部2のユーザ領域6をコンフィギュレートする際にも、USBインターフェイス1aを介して容易に上位機器10と接続することができる。そのため、いちいちコンフィギュレーションのために上位機器10をFPGA1が実装された基盤近辺まで運び、専用のコネクタを接続するというような面倒な作業を省略することができる。
【0024】
また、USBインターフェイス1aを介してFPGA1を上位機器10に接続した際には、ソフトウェア起動回路5により自動的にコンフィギュレーションソフトウェア16aが起動されるので、ユーザはすぐにコンフィギュレーションデータのプログラミングに取り掛かることができ、コンフィギュレーションに要する作業時間の短縮に繋がる。
【0025】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階においては、その要旨を逸脱しない範囲内にて各構成要素を適宜変形して具体化することができる。
【0026】
例えば、USBドライバ回路4、ソフトウェア起動回路5およびコンフィギュレーション制御回路7は、論理回路部2に設計されたものでなくとも、その全てあるいはいずれかがFPGA1内に設けた別途の回路であってもよい。
【0027】
また、上記実施形態では、本発明を不揮発性の論理回路部を備えたFPGAに適用した場合について説明したが、本発明は揮発性の論理回路部を備えたFPGAにも適用できる。本発明を揮発性の論理回路部を備えたFPGAに適用する場合には、FPGAにコンフィギュレーションデータを格納するための不揮発性メモリを設ける。そして、コンフィギュレーションの際、当該不揮発性メモリにコンフィギュレーションデータを格納する。その後、基盤に実装されて電源の供給が開始されたことに応じて、当該不揮発性メモリに記憶されたコンフィギュレーションデータに基づく論理回路を論理回路部に設計するようにする。かかる構成としても、上記実施形態と同様の効果を得ることができる。
【0028】
この他、前記実施形態に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成することができる。例えば、実施形態に示される全体構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施形態におけるFPGAの構成を説明するためのブロック図。
【図2】同実施形態における上位機器の制御回路を示すブロック図。
【図3】同実施形態においてFPGAで実行される処理の流れ図。
【符号の説明】
【0030】
1…FPGA、1a…USBインターフェイス、2…論理回路部、4…USBドライバ回路、5…ソフトウェア起動回路、6…ユーザ領域、7…コンフィギュレーション制御回路、10…上位機器、10a…USBインターフェイス、30…基盤、30a…USBインターフェイス

【特許請求の範囲】
【請求項1】
上位機器から受信したコンフィギュレーションデータに基づいて論理回路を設計する論理回路部を備え、基盤に実装された際、前記論理回路部に設計された論理回路に基づいて入力信号を処理するプログラマブル論理回路において、
前記上位機器および基盤をUSB接続するUSBインターフェイスと、
前記USBインターフェイスにより前記上位機器と接続されたとき、当該上位機器に前記コンフィギュレーションデータを作成するためのソフトウェアを起動せしめるソフトウェア起動手段と、
このソフトウェア起動手段が前記上位機器に起動せしめた前記ソフトウェアにより作成されたコンフィギュレーションデータが、前記USBインターフェイスを介して受信されたことに応じて、当該コンフィギュレーションデータに基づく論理回路を前記論理回路部に設計するコンフィギュレーション制御手段とを備え、
前記USBインターフェイスにより前記基盤と接続されたとき、前記コンフィギュレーション制御手段が前記論理回路部に設計した論理回路に基づいて入力信号を処理することを特徴とするプログラマブル論理回路。
【請求項2】
前記ソフトウェア起動手段と前記コンフィギュレーション制御手段とは、前記論理回路部に設計された論理回路により実現されていることを特徴とする請求項1に記載のプログラマブル論理回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate