説明

プログラマブルロジックデバイスおよびそれを用いた信号処理回路

【課題】電源が遮断されても機能を維持可能なPLDを提供する。
【解決手段】リコンフィギュアラブル回路10は、その回路形態がコンフィギュレーションデータCONFに応じて設定される。コンフィギュレーションメモリ20は、リコンフィギュアラブル回路10と付随して設けられ、リコンフィギュアラブル回路10のコンフィギュレーションを設定するコンフィギュレーションデータCONFを保持する。コンフィギュレーションメモリ20は、コンフィギュレーションデータCONFの各データを保持する複数のメモリセルを含む。各メモリセルは、フリップフロップFFと、対応するフリップフロップの状態を保持する不揮発性メモリMnvを含む。複数のメモリセルのフリップフロップは、デイジーチェインを構成するように直列に接続され、コンフィギュレーションデータCONFが、当該デイジーチェインを経由してロード可能に構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックデバイスに関する。
【背景技術】
【0002】
その機能を、半導体チップの製造者ではなく、ユーザによって自由に設計、変更可能なデバイスとして、プログラマブルロジックデバイス(以下、PLDと称す)が知られている。PLDは、回路の設定(コンフィギュレーション)を再設定することで、設計変更や修正が可能であるため、設計コストを低減することができる。
【0003】
PLDの代表として、FPGA(Field Programmable Gate Array)が広く利用される。FPGAは、ユーザが独自の論理回路を設計できるゲートアレイであり、任意の論理を構成可能な多入力の組み合わせ回路および順序回路からなる論理ブロックが、マトリクス状に配置されている。各論理ブロック間の結線態様は、スイッチによって自由に変更可能となっている。
【0004】
PLDに所望の機能を実行させるためには、PLDに設けられた複数のメモリセルに対して、コンフィギュレーションデータをロードする必要がある。PLD内の論理ブロックの機能および結線態様は、ロードされたコンフィギュレーションデータに応じて設定される。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−309459号公報
【特許文献2】特開平7−244120号公報
【特許文献3】特表2005−535178号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のPLDは、外部に設けられたホストプロセッサやフラッシュ、EEPROM(Electrically Erasable and Programmable Read Only Memory)などからコンフィギュレーションデータを受け、それをメモリセルに格納する構成となっている。メモリセルは、揮発性メモリであるため、PLDの電源が遮断されると、コンフィギュレーションデータが消失する。そのため、従来では、電源が投入される度に、コンフィギュレーションデータをメモリセルにロードする必要があった。
【0007】
本発明は係る課題に鑑みてなされたものであり、そのある態様の目的のひとつは、電源が遮断されても機能を維持可能なPLDの提供にある。
【課題を解決するための手段】
【0008】
本発明のある態様は、プログラマブルロジックデバイスに関する。プログラマブルロジックデバイスは、その回路形態がコンフィギュレーションデータに応じて設定されるリコンフィギュアラブル回路と、リコンフィギュアラブル回路と付随して設けられ、リコンフィギュアラブル回路のコンフィギュレーションを設定するコンフィギュレーションデータを保持するためのコンフィギュレーションメモリと、を備える。コンフィギュレーションメモリは、コンフィギュレーションデータの各データを保持する複数のメモリセルを含み、各メモリセルは、フリップフロップと、対応するフリップフロップの状態を保持する不揮発性メモリと、を含む。複数のメモリセルのフリップフロップは、デイジーチェインを構成するように直列に接続され、コンフィギュレーションデータが、当該デイジーチェインを経由してロード可能に構成されている。
【0009】
この態様によると、電源が遮断された場合であっても、不揮発性メモリによってコンフィギュレーションデータを保持することができるため、再度電源が投入された際に、コンフィギュレーションデータを再ロードする必要がなくなる。またフリップフロップを直列に接続することにより、いわゆるバウンダリスキャンの際のデータ伝送と同様に、すべてのフリップフロップにデータをロードすることができる。
【0010】
本発明の別の態様は、信号処理回路である。この信号処理回路は、入力信号に対し、設定されたコンフィギュレーションに応じた信号処理を施す上述のプログラマブルロジックデバイスと、入力信号に対して施すべき複数の種類の信号処理のそれぞれに応じたプログラマブルロジックデバイスのための複数のコンフィギュレーションデータを保持するメモリと、メモリから、入力信号に施すべき信号処理に対応したコンフィギュレーションデータを選択し、プログラマブルロジックデバイスにロードする展開部と、を備える。
【0011】
ある態様の信号処理回路は、プログラマブルロジックデバイスにロードされているコンフィギュレーションデータを特定するデータを保持する第2の不揮発性メモリをさらに備えてもよい。展開部は、入力信号に対して施すべき信号処理の種類が、第2の不揮発性メモリに保持されたデータに対応する信号処理の種類と一致しないとき、入力信号に対して施すべき信号処理の種類に対応したコンフィギュレーションデータをロードしてもよい。
【0012】
入力信号は、所定のフォーマットでエンコードされたデジタル信号であってもよい。メモリは、想定される複数のフォーマットそれぞれに対応する、プログラマブルロジックデバイスのコンフィギュレーションデータを保持してもよい。プログラマブルロジックデバイスは、ロードされたコンフィギュレーションに応じたデコード処理を入力信号に対して施してもよい。
【0013】
なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【0014】
本発明に係るPLDによれば、電源が遮断されても機能を維持できる。
【図面の簡単な説明】
【0015】
【図1】図1(a)〜(c)は、本発明の実施の形態に係るPLDの構成を示すブロック図である。
【図2】図1のPLDを用いた信号処理回路の構成を示すブロック図である。
【図3】図2の信号処理回路の動作を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【0017】
本明細書において、「部材Aが、部材Bと接続された状態」とは、部材Aと部材Bが物理的に直接的に接続される場合のほか、部材Aと部材Bが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
同様に、「部材Cが、部材Aと部材Bの間に設けられた状態」とは、部材Aと部材C、あるいは部材Bと部材Cが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【0018】
図1(a)〜(c)は、本発明の実施の形態に係るPLD100の構成を示すブロック図である。図1(a)は、PLD100の全体構成を示す。PLD100は、リコンフィギュアラブル回路10と、リコンフィギュアラブル回路10と付随して設けられたコンフィギュレーションメモリ20を備える。
【0019】
リコンフィギュアラブル回路10は、ブロックエレメントBEを単位として構成されており、各ブロックエレメントBE1〜BEnの機能(演算内容)が、付随するコンフィギュレーションメモリCM1〜CMnに格納されるコンフィギュレーションデータCONFに応じて設定可能となっている。また、各ブロックエレメントBE間の結線態様も、図示しないマトリクススイッチなどによって任意に切りかえ可能となっており、これらのスイッチの接続状態も、図示しないコンフィギュレーションメモリに格納されている。
【0020】
ユーザは、所望の機能に応じたコンフィギュレーションデータCONFを設計ツールなどを用いて生成し、コンフィギュレーションメモリ20に書き込むことで、PLD100に、必要な機能を実行させることができる。
【0021】
図1(b)は、ブロックエレメントBEの構成の一例を示す回路図である。ブロックエレメントBEは、3入力1出力の演算ユニットである。ブロックエレメントBEは、4つのセレクタSEL1〜SEL4と、論理演算装置(ALU:Arithmetic Logic Unit)を備える。また、このブロックエレメントBEには、セレクタSEL1〜SEL4ごとにメモリセルM1〜M4が設けられている。セレクタSEL1〜SEL4は、3入力A〜Cのうち、任意の2つを選択するマトリクススイッチである。論理演算装置ALUは、マトリクススイッチによって選択された2つの信号に対して、所定の演算を施す。たとえば論理演算装置ALUが乗算を行う場合、ブロックエレメントBEは、メモリセルM1〜M4に格納されたコンフィギュレーションデータに応じて、6通りの演算(A×B、B×C、C×A、A×A、B×B、C×C)のいずれかを実行することができる。メモリセルM1〜M4は、図1(a)のコンフィギュレーションメモリCMに対応する。なおブロックエレメントBEの構成は例示であり、本発明はこれに限定されない。
【0022】
図1(c)に示すように、各メモリセルM1〜M4は、フリップフロップFFと、対応するフリップフロップFFの状態(値)を保持する不揮発性メモリMnvを備える。不揮発性メモリMnvによって、回路の電源が遮断された場合においても、ブロックエレメントの機能が維持される。
【0023】
図1(c)に示すように、複数のメモリセルM1〜M4のフリップフロップFFは、デイジーチェインを構成するように直列に接続されている。あるブロックエレメントBEに付随するコンフィギュレーションメモリCMは、別のブロックエレメントBEに付随するコンフィギュレーションメモリCMと直列に接続されている。PLD100の内部のすべてのコンフィギュレーションメモリCM内のメモリセルは、ひとつの、あるいは複数のデイジーチェインを形成している。
【0024】
このPLD100において、コンフィギュレーションデータCONFは、デイジーチェインを経由して、すべてのフリップフロップFFにロード可能となっている。
【0025】
以上がPLD100の構成である。図1のPLD100によれば、電源が遮断された場合であっても、不揮発性メモリMnvによってコンフィギュレーションデータCONFを保持することができるため、再度電源が投入された際に、コンフィギュレーションデータCONFを再ロードする必要がなくなる。またコンフィギュレーションデータを保持するフリップフロップFFを直列に接続することにより、いわゆるバウンダリスキャンの際のデータ伝送と同様にして、すべてのフリップフロップにコンフィギュレーションデータをロードすることができる。
【0026】
このPLD100は、以下の2通りの方法で使用することができる。
(第1の利用方法)
PLD100を利用する設計者は、PLD100の最終出荷工程において、所望の機能に応じたコンフィギュレーションデータCONFをコンフィギュレーションメモリ20のデイジーチェインに対してロードする。それによってPLD100は出荷後において、恒久的に所望の機能を実行するデバイスとして動作する。つまり、PLD100の機能は、出荷前に一度だけ書き込まれ、その後変更されることはない。
【0027】
(第2の利用方法)
PLD100を利用する設計者は、PLD100を搭載する機器や製品に必要な機能、動作に応じて、コンフィギュレーションデータCONFを適用的に変化させる。つまり、PLD100が製品に実装された状態において、必要な機能に応じたコンフィギュレーションデータCONFをその都度、コンフィギュレーションメモリ20に対してロードする。第2の利用方法の詳細な実施の形態を以下で説明する。
【0028】
図2は、図1のPLD100を用いた信号処理回路200の構成を示すブロック図である。信号処理回路200は、入力信号SINに所定の信号処理を施し、出力信号SOUTとして出力する。本実施の形態において、信号処理回路200はデジタルエンコードされたオーディオ信号SINをデコードするデコーダである。入力信号SINは、複数種類のフォーマットのいずれかでエンコードされている。本実施の形態では、入力信号SINは、MP3(MPEG Audio Layer-3)、AAC(Advanced Audio Coding)、WMA(Windows Media Audio:登録商標)のいずれかのフォーマットでエンコードされているものとする。
【0029】
信号処理回路200は、図1のPLD100に加えて、ROM(Read Only Memory)30、展開部32(セレクタ32a、ローダ32b)、ログメモリ36、オーディオフォーマット検出部40、入力バッファ42を備える。
【0030】
入力バッファ42は入力信号SINを一時的に格納する。PLD100は入力バッファ42に格納された入力信号SINに対し、設定されたコンフィギュレーションCONF[i]に応じた信号処理を施す。
【0031】
ROM30は、入力信号SINに対して施すべき複数の種類の信号処理のそれぞれに応じた複数のコンフィギュレーションデータCONF[1]〜CONF[3]を保持する。オーディオフォーマット検出部40は入力信号SINを受け、そのエンコードフォーマットを判定する。オーディオフォーマット検出部40は、検出したフォーマットを示すデータ(フォーマットデータ)D1を、展開部32へと出力する。展開部32は、入力信号SINに施すべき信号処理に対応したコンフィギュレーションデータCONF1〜CONF3のうちのひとつを選択し、PLD100にロードする。
【0032】
展開部32は、セレクタ32a、ローダ32bを含む。セレクタ32aは、コンフィギュレーションデータCONF[1]〜CONF[3]のうち、フォーマットデータD1に応じたひとつCONF[i](i=1,2,3)を選択し、ローダ32bがアクセス可能な状態とする。つまりセレクタ32aはアドレスデコーダとして把握できる。ローダ32bは、セレクタ32aによって選択されたコンフィギュレーションデータCONFをPLD100のコンフィギュレーションメモリ20に対してロードする。ロード処理は、コンフィギュレーションデータCONFをデイジーチェインを形成するフリップフロップFFに対してシリアル形式で流し込むことにより実行される。
【0033】
ログメモリ36は、不揮発性メモリであり、PLD100にロードされているコンフィギュレーションデータCONF[i]を特定するデータ(最終ログデータ)D2を保持する。ローダ32bは、PLD100に対してコンフィギュレーションデータCONF[i]をロードするたびに、ロードしたコンフィギュレーションデータを示すデータ、つまり“変数i”と関連づけられたデータを、最終ログデータD2としてログメモリ36に書き込む。
【0034】
展開部32は、現在の入力信号SINに対して施すべき信号処理の種類(本実施の形態ではエンコード/デコードのフォーマット)が、ログメモリ36に保持された最終ログデータD2に対応する信号処理の種類と一致しないとき、入力信号SINに対して施すべき信号処理の種類に対応したコンフィギュレーションデータCONF[i]をPLD100に対してロードする。言い換えれば、フォーマットデータD1が最終ログデータD2と一致しない場合にコンフィギュレーションデータCONFをロードし、一致する場合にはロードしない。
【0035】
以上が信号処理回路200の構成である。続いてその動作を説明する。上述したように、信号処理回路200は、信号処理回路200の電源がオフ状態においてもコンフィギュレーションメモリ20に前回電源を遮断した際のコンフィギュレーションデータCONFを不揮発的に保持することができる。
【0036】
図3は、図2の信号処理回路200の動作を示すフローチャートである。
ユーザが信号処理回路200の電源を投入する(S100)。そうすると、PLD100は、コンフィギュレーションメモリ(不揮発性メモリ)20に格納されているコンフィギュレーションCONFに応じた信号処理を可能な状態、つまり前回の電源遮断時の入力信号SINのフォーマットをデコード可能な状態に直ちに遷移する。この遷移時間は、コンフィギュレーションデータCONFのデータの再ロードを要しないため非常に短い。
【0037】
続いてオーディオフォーマット検出部40は、入力信号SINのフォーマットを判定し、フォーマットデータD1を生成する(S102)。
【0038】
展開部32は、現在の入力信号SINのフォーマット(D1)を、ログメモリ36に格納された最終ログデータD2と比較し、一致・不一致を判定する(S104)。
【0039】
一致しない場合(S104のNO)、展開部32は判定したフォーマットに対応するコンフィギュレーションデータCONF[i]をPLD100のコンフィギュレーションメモリ20にロードする(S106)。続いてロードしたコンフィギュレーションデータCONFを示す最終ログデータD2をログメモリ36に書き込む。そして入力信号SINのデコード処理を開始する(S110)。
【0040】
もし、ステップS104において、一致した場合(S104のYES)、PLD100は直ちに入力信号SINのデコード処理を開始する(S110)。
【0041】
信号処理回路200は、電源がシャットダウンされない限り(S112のNO)、一連のシーケンスを繰り返し実行する。電源がシャットダウンされると(S112のYES)、シーケンスは終了する。
【0042】
以上が信号処理回路200の動作である。信号処理回路200によれば、単一のPLD100に対して異なるコンフィギュレーションデータをロードすることにより、様々なフォーマットの入力信号SINをデコードすることができる。またROM30に格納するコンフィギュレーションデータの種類を増やすことで、将来のフォーマットの拡張・変更にも柔軟に対応することができる。
【0043】
さらに、信号処理回路200によれば、前回の電源オフ時の入力信号SINのフォーマットと、今回の電源投入時の入力信号SINのフォーマットが一致する場合には、コンフィギュレーションデータCONFを再ロードする必要がないため、ただちにデコード処理を開始することができる。
【0044】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【0045】
図2の信号処理回路200は、オーディオ信号のデコーダであったが、本発明はそれに限定されず、デコーダであってもよいし、処理対象は画像信号であってもよい。
あるいは信号処理回路200は、通信用の変調器、フィルタ、復調器などであってもよい。この場合、通信方式や信号の周波数帯域に応じて、PLD100にロードするコンフィギュレーションデータCONFを変更してもよい。
【0046】
実施の形態にもとづき、特定の語句を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が可能である。
【符号の説明】
【0047】
100…PLD、10…リコンフィギュアラブル回路、20…コンフィギュレーションメモリ、M1…メモリセル、Mnv…不揮発性メモリ、BE…ブロックエレメント、30…ROM、32…展開部、32a…セレクタ、32b…ローダ、36…ログメモリ、40…オーディオフォーマット検出部、42…入力バッファ、200…信号処理回路。

【特許請求の範囲】
【請求項1】
その回路形態がコンフィギュレーションデータに応じて設定されるリコンフィギュアラブル回路と、
前記リコンフィギュアラブル回路と付随して設けられ、前記リコンフィギュアラブル回路のコンフィギュレーションを設定するコンフィギュレーションデータを保持するためのコンフィギュレーションメモリと、
を備え、
前記コンフィギュレーションメモリは、前記コンフィギュレーションデータの各データを保持する複数のメモリセルを含み、各メモリセルは、
フリップフロップと、
対応する前記フリップフロップの状態を保持する不揮発性メモリと、
を含み、
前記複数のメモリセルの前記フリップフロップは、デイジーチェインを構成するように直列に接続され、前記コンフィギュレーションデータが、当該デイジーチェインを経由してロード可能に構成されていることを特徴とするプログラマブルロジックデバイス。
【請求項2】
入力信号に対し、設定されたコンフィギュレーションに応じた信号処理を施す請求項1に記載のプログラマブルロジックデバイスと、
前記入力信号に対して施すべき複数の種類の信号処理のそれぞれに応じた前記プログラマブルロジックデバイスのための複数のコンフィギュレーションデータを保持するメモリと、
前記メモリから、前記入力信号に施すべき信号処理に対応したコンフィギュレーションデータを選択し、前記プログラマブルロジックデバイスにロードする展開部と、
を備えることを特徴とする信号処理回路。
【請求項3】
前記プログラマブルロジックデバイスにロードされているコンフィギュレーションデータを特定するデータを保持する第2の不揮発性メモリをさらに備え、
前記展開部は、前記入力信号に対して施すべき信号処理の種類が、前記第2の不揮発性メモリに保持されたデータに対応する信号処理の種類と一致しないとき、前記入力信号に対して施すべき信号処理の種類に対応したコンフィギュレーションデータをロードすることを特徴とする請求項2に記載の信号処理回路。
【請求項4】
前記入力信号は、所定のフォーマットでエンコードされたデジタル信号であり、
前記メモリは、想定される複数のフォーマットそれぞれに対応する、前記プログラマブルロジックデバイスのコンフィギュレーションデータを保持しており、
前記プログラマブルロジックデバイスは、ロードされたコンフィギュレーションに応じたデコード処理を前記入力信号に対して施すことを特徴とする請求項2または3に記載の信号処理回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate