(57)【特許請求の範囲】
【請求項１】
プログラムを実行するための中央処理装置と、
上記中央処理装置で実行されるプログラムを格納するメモリと、
ユーザ論理をプログラマブルに実現するためのプログラマブル集積回路とを含むデータ処理装置において、
上記メモリは上記中央処理装置で実行されるプログラムとともに、上記ユーザ論理情報を格納し、上記中央処理装置は、上記メモリ内のユーザ論理情報を上記プログラマブル集積回路に転送する転送手段を含み、上記転送手段は、上記メモリから上記ユーザ論理情報を読み込み、上記プログラマブル集積回路に転送することを特徴とするデータ処理装置。
【請求項２】
上記中央処理装置と上記プログラマブル集積回路とがシリアル信号伝達系で結合され、上記メモリからパラレル形式で読み出されたユーザ論理情報が上記中央処理装置でシリアル形式に変換されて上記プログラマブル集積回路に伝達される請求項１記載のデータ処理装置。
【請求項３】
上記中央処理装置、上記プログラマブル集積回路、及び上記メモリがバスで結合され、上記プログラマブル集積回路へパラレル形式でユーザ論理情報が伝達される請求項１記載のデータ処理装置。
【請求項４】
プログラムを実行するための中央処理装置と、
上記中央処理装置で実行されるプログラムを格納するメモリと、
ユーザ論理をプログラマブルに実現するためのプログラマブル集積回路と、
上記プログラマブル集積回路にユーザ論理情報を転送する転送手段とを含むデータ処理装置において、
上記メモリは上記中央処理装置で実行されるプログラムとともに、上記ユーザ論理情報を格納し、上記転送する手段は、上記中央処理装置からの指示に従って、上記メモリから上記ユーザ論理情報を読み込み、上記プログラマブル集積回路に転送することを特徴とするデータ処理装置。
【請求項５】
上記転送手段と上記プログラマブル集積回路とがシリアル信号伝達系で結合され、上記メモリからパラレル形式で読み出されたユーザ論理情報が上記転送手段でシリアル形式に変換されて上記プログラマブル集積回路に伝達される請求項４記載のデータ処理装置。
【請求項６】
上記転送手段、上記プログラマブル集積回路、及び上記メモリがバスで結合され、上記プログラマブル集積回路へパラレル形式でユーザ論理情報が伝達される請求項４記載のデータ処理装置。
【請求項７】
上記プログラマブル集積回路は、ユーザ論理情報の転送を意味する転送コマンドを設定する第１設定手段、上記プログラマブル集積回路へのユーザ論理情報の書き込みの開始アドレスを設定する第２設定手段、及びユーザ論理情報の転送バイト数を設定する第３設定手段を含む請求項１乃至６のいずれか１項記載のデータ処理装置。
【請求項８】
プログラムを実行するための中央処理装置と、
ユーザ論理をプログラマブルに実現するためのプログラマブル集積回路と、
上記プログラマブル集積回路にユーザ論理情報を転送する転送手段を含むデータ処理装置において、
上記転送する手段は、上記中央処理装置からの指示に従って、上記中央処理装置が実行するためのプログラムを格納するのと同じメモリから上記ユーザ論理情報を読み込み、上記プログラマブル集積回路に転送することを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザ論理をプログラマブルに実現可能なプログラマブル集積回路を含むデータ処理装置に関する。
【０００２】
【従来の技術】
結線情報や論理機能などの回路機能を定義する回路データをメモリセルなどに記憶させ、必要な回路機能をプログラミングできるようにしたプログラマブル集積回路が知られている。このようなプログラマブル集積回路は、回路データを書き換えることにより回路機能の変更が可能であり、特に論理回路などのディジタル回路を設計する際に試作を繰り返すことなく容易に回路機能の変更が可能となる。そのようなプログラマブル集積回路としては、ＰＬＤ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）や、ＰＧＡ（Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が知られている。ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）はＰＧＡの一例とされる。
【０００３】
一般に中央処理装置（「ＣＰＵ」という）と、ＳＲＡＭタイプのプログラマブル集積回路とを用いたシステムの場合、ＣＰＵのプログラムを格納するプログラムＲＯＭ（リード・オンリー・メモリ）と、ＦＰＧＡ用のユーザ論理を格納するＲＯＭが互いに別々に実装されている。
【０００４】
尚、プログラマブル集積回路について記載された文献の例としては、特開平２−１３００２３号公報がある。
【０００５】
【発明が解決しようとする課題】
現在、大規模ＦＰＧＡのほとんどはＳＲＡＭタイプであり、システムのブート時にＦＰＧＡ専用のＲＯＭからユーザ論理を読み出して初期設定される形をとっている。しかし、中央処理装置にもプログラムを格納するためのＲＯＭが存在しており、インタフェース形式こそ違え、同じ機能を持ったＩＣが一つのシステムに二種類存在することになり、しかも、プログラムＲＯＭの記憶容量は、１Ｍビットの次は４Ｍビットというようにあまり細分化されていないため、使用されない記憶領域が比較的多く残っている場合が少なくないことを考えると無駄が多い。
【０００６】
本発明の目的は、プログラマブル集積回路を含むデータ処理装置の小型化、低消費電力化を図ることにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【０００８】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、プログラムを実行するＣＰＵ（１０）と、このＣＰＵで実行されるプログラムを格納するメモリ（１２）と、ユーザ論理をプログラマブルに実現するプログラマブル集積回路（１１）とを含んでデータ処理装置が構成されるとき、上記メモリに、上記ＣＰＵで実行されるプログラムとともに上記ユーザ論理情報を格納し、上記ＣＰＵに上記メモリ内のユーザ論理情報を上記プログラマブル集積回路に転送する手段を設ける。
【００１０】
上記した手段によれば、プログラマブル集積回路のユーザ論理がＣＰＵのプログラムが記憶されているメモリに格納されることにより、プログラマブル集積回路のユーザ論理を格納するための専用メモリを省略することができる。これにより、データ処理装置の小型化、低消費電力化を達成する。また、ユーザ論理情報がＣＰＵによってプログラマブル集積回路に転送されるため、ユーザ論理情報をプログラマブル集積回路に転送するための専用のローダー回路の形成を省略することができる。
【００１１】
このとき、上記中央処理装置と上記プログラマブル集積回路とがシリアル信号伝達系で結合され、上記メモリからパラレル形式で読み出されたユーザ論理情報が上記中央処理装置でシリアル形式に変換されて上記プログラマブル集積回路に伝達されるように構成することができる。
【００１２】
また、上記ＣＰＵ、上記プログラマブル集積回路、及び上記メモリがバスで結合され、上記メモリから上記プログラマブル集積回路へパラレル形式でユーザ論理情報が伝達されるように構成することができる。
【００１３】
さらに、上記プログラマブル集積回路は、ユーザ論理情報の転送を意味する転送コマンドを設定可能な第１設定手段（１１４）、上記プログラマブル集積回路へのユーザ論理情報書き込みの開始アドレスを設定可能な第２設定手段（１１７）、及びユーザ論理情報の転送バイト数を設定可能な第３設定手段（１１５）を含んで構成することができる。
【００１４】
【発明の実施の形態】
図１には本発明にかかるデータ処理装置が示される。
【００１５】
図１に示されるようにこのデータ処理装置は、特に制限されないが、ＣＰＵ１０、ＦＰＧＡ１１、及びＲＯＭ１２が結合されて成る。ＣＰＵ１０、ＦＰＧＡ１１、及びＲＯＭ１２は、それぞれ公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。ＲＯＭ１２は本来ＣＰＵ１０で実行されるプログラムを格納するものであるが、このデータ処理装置においては、ＲＯＭ１２内にはＣＰＵ１０のプログラムとともに、ＦＰＧＡ１１に設定されるユーザ論理情報が格納されている。このユーザ論理情報の設定はＣＰＵ１０によって行われるようになっている。
【００１６】
ＣＰＵ１０は、シリアル形式で信号のやり取りを可能とするシリアルコントローラを内蔵する。ＣＰＵ１０には、同期クロックを出力するためのＳＣＫ０端子、コマンドやユーザ論理情報などを送信するためのＴＸＤ０端子、ステータス受信のためのＲＸＤ０端子が設けられており、ＦＰＧＡ１１には、上記ＣＰＵ１０からの同期クロックを取り込むためのＳＣＫ１端子、上記ＣＰＵ１０からのコマンドやユーザ論理情報などを取り込むためのＲＸＤ１端子、上記ＣＰＵ１０へステータスを出力するためのＴＸＤ１端子、及び設定された論理の信号入出力を可能とする入出力端子Ｉ／Ｏが設けられている。また、ＣＰＵ１０には、ＲＯＭ１２を選択するチップセレクト信号を出力するためのＲＯＭ−ＣＳ０端子、リード信号を出力するためのＲＤ０端子、ＲＯＭ１２からの読み出しデータを取り込むためのＤＡＴＡ０端子が設けられ、ＲＯＭ１２には、ＣＰＵ１０からのチップセレクト信号を取り込むためのＣＳ２端子、ＣＰＵ１０からのリード信号を取り込むためのＯＥ２端子、記憶情報をＣＰＵ１０へ出力するためのＤＡＴＡ２端子が設けられている。
【００１７】
図７には上記ＦＰＧＡ１１の構成例が示される。
【００１８】
ＳＣＫ１端子から入力される同期クロックに同期して、ＲＸＤ１端子からのコマンドやユーザ論理情報などを順次取り込んでパラレル形式に変換するための受信レジスタ１１１や、ＳＣＫ１端子から入力される同期クロックに同期して、シリアルインタフェースコントロール部１１３からのパラレルデータをシリアルデータに変換して、ＴＸＤ１端子を介して外部出力するための送信レジスタ１１２が設けられる。コマンドを保持するためのコマンドレジスタ１１４、転送バイト数を計数するための転送カウンタ１１５、データを一時的に保持するためのデータレジスタ１１６、アドレスを一時的に保持するためのアドレスレジスタ１１７、書き換えにより所望の論理を実現可能なＦＰＧＡメモリセル１１９が設けられる。このＦＰＧＡメモリセル１１９の論理書き換えを可能とするメモリセル書き換えバス、及びＦＰＧＡメモリセル１１９のユーザ論理へのアクセスを可能とするためのユーザ論理バスが設けられ、このメモリセル書き換えバス、ユーザ論理バスを選択するためのバス選択回路１１８が設けられている。バス選択回路１１８のバス選択により、ユーザ論理書き換えモード、及びユーザ論理アクセスモードが実現される。このバス選択動作はシリアルインタフェースコントロール部１１３が、コマンドレジスタ１１４に保持されている内容をもとに制御する。
【００１９】
メモリセル書き換えバス、ユーザ論理バスは、それぞれそれぞれアドレスバス及びデータバスを含む。ユーザ論理書き換えモードにおいては、メモリセル書き換えバスがバス選択回路１１８により選択的にデータレジスタ１１６及びアドレスレジスタ１１７に接続される。この状態で、ＣＰＵ１０からＦＰＧＡメモリセル１１９の書き換えを行うことができる。また、ユーザ論理アクセスモードにおいては、ユーザ論理バスがバス選択部１１８により選択的にデータレジスタ１１６及びアドレスレジスタ１１７に接続され、この状態で、ＣＰＵ１０からＦＰＧＡメモリセル１１９におけるユーザ論理のアクセスが可能とされる。
【００２０】
図２には図１に示される構成のＣＰＵ１０から見たユーザ論理転送プロトコルが示される。
【００２１】
ＦＰＧＡ１１へのユーザ論理情報転送は次のように行われる。
【００２２】
ユーザ論理情報の転送は電源投入後の初期設定の段階で行われるが、必要に応じて何度でも行うことができる。
【００２３】
先ずＣＰＵ１０のＴＸＤ０端子からユーザ論理転送の開始を示すコマンドが出力され、それに続いてＦＰＧＡメモリセル１１９のどこから書き始めるかを示す開始アドレス、どれだけ書き換えるかを示す転送バイト数が順に出力される。それにより、ＦＰＧＡ１１はユーザ論理書き換えモードに入り、以降転送バイト数だけの受信データがＦＰＧＡメモリセル１１９に書き込まれる。
【００２４】
具体的には、ＣＰＵ１０から転送コマンド、開始アドレス、転送バイト数がＦＰＧＡ１１に順次伝達されると、それに対して、ＦＰＧＡ１１からコマンド受信、アドレス受信、バイト数受信のステータスが出力される。ＣＰＵ１０は、上記転送バイト数をＦＰＧＡ１１に出力した後、ＲＯＭ＿ＣＳ０端子からの出力信号をローレベルにアサートすることで、ＲＯＭ１２を選択し、ＲＤ０端子からの出力信号をローレベルにアサートすることでＲＯＭ１２に格納されているデータの出力を指示する。この指示により、ＲＯＭ１２からＣＰＵ１０にデータＤ０が出力され、さらに、このデータＤ０がＣＰＵ１０においてシリアル形式に変換されてからＴＸＤ０端子から出力されることで、ＦＰＧＡ１１に伝達される。同様にデータＤ１など、データＤ０に続くデータがＲＯＭ１２から読み出されて、ＦＰＧＡ１１に転送される。ＦＰＧＡ１１では、転送コマンドが入力されると、それがコマンドレジスタ１１４に保持され、ユーザ論理書き換えモードに遷移される。このモードでは、バス選択部１１８によってメモリ書き換えバスが選択される。転送コマンドに続いて開始アドレス、転送バイト数、データの順に転送されてくるから、シリアルインタフェースコントロール部１１３は、開始アドレスをアドレスレジスタ１１７にセットし、転送バイト数を転送カウンタ１１５にセットし、データをデータレジスタ１１６にセットする。データが転送される毎にデータレジスタ１１６の保持内容が更新され、また、アドレスレジスタ１１７にセットされたアドレスがインクリメントされて、データレジスタ１１６に保持されているデータが、ＦＰＧＡメモリセル１１９に書き込まれる。書き込まれる毎に転送カウンタ１１５がダウンカウントされる。書き込みアドレスはアドレスレジスタ１１７の出力アドレスとされる。このデータ書込みは転送カウンタ１１５のカウント出力値が零になるまで行われる。零になると、指定された全てのユーザ論理情報がＦＰＧＡメモリセル１１９に書き込まれたことになる。
【００２５】
ＦＰＧＡ１１では、コマンドやデータが受信されると、それに対するステータスがＦＰＧＡ１１のＴＸＤ１端子から出力される。つまり、ＦＰＧＡ１１内のシリアルインタフェースコントロール部１１３は、受信レジスタ１１１を介してコマンドやデータが入力される毎に送信レジスタ１１２を介して、対応するステータスを外部出力する。ＣＰＵ１０は、ＦＰＧＡ１１のＴＸＤ１端子から出力されるステータスをモニタしており、もし、ステータスに異常があると判断した場合には、そのままではＦＰＧＡ１１へのユーザ論理の転送を正常に行うことができないから、ＦＰＧＡ１１内のシリアルインタフェース部１１３をリセットする。これにより、ＦＰＧＡ１１は初期化され、再び上記転送処理が行われる。
【００２６】
図３には図１に示される構成のＣＰＵ１０から見たユーザ論理アクセスプロトコルが示される。
【００２７】
ＦＰＧＡを使用する場合、ユーザ論理のモード設定や外部からのデータ取り込みなど、ＣＰＵ１０とＦＰＧＡ１１との間で通信するケースが非常に多い。通常この通信のためのインタフェースをユーザ論理で作成し、限られたＩ／Ｏピンを使用して実現しているが、本装置の場合、ＣＰＵ１０とＦＰＧＡ１１との間の専用のインタフェースが設けられているから、これを利用する。
【００２８】
ＦＰＧＡメモリセル１１９のユーザ論理へのライト動作は次のように行われる。
【００２９】
ＦＰＧＡメモリセル１１９のユーザ論理に書き込みを行う場合、ＦＰＧＡ１１のコマンド待ちの状態において、ライトコマンド、アドレス、ライトデータの順にＣＰＵ１０からＦＰＧＡ１１に送信される。ライトコマンドがコマンドレジスタ１１４に保持されてユーザ論理への書き込みモードに遷移される。ライトコマンドに続くアドレス、及びライトデータはそれぞれアドレスレジスタ１１７、及びデータレジスタ１１６に書き込まれる。シリアルインタフェースコントロール部１１３の制御により、バス選択部１１８はユーザ論理バスを選択的にデータレジスタ１１６、アドレスレジスタ１１７へ結合させる。それにより、データレジスタ１１６の保持情報をＦＰＧＡメモリセル１１９のユーザ論理へ書き込むことができる。このライト動作においてもＦＰＧＡ１１のＴＸＤ１からステータスが出力され、それがＣＰＵ１０においてチェックされる。そしてこのステータスに異常があれば、ＣＰＵ１０によりシリアルインタフェースコントロール部１１３をリセットし、再びライトコマンドから送信し直す事が出来る。
【００３０】
また、ＦＰＧＡメモリセル１１９のユーザ論理からのリード動作は次のように行われる。
【００３１】
ＦＰＧＡメモリセル１１９のユーザ論理から読み出しを行う場合、ＦＰＧＡ１１のコマンド待ちの状態において、リードコマンド、アドレス、ダミーコマンドの順にＣＰＵ１０からＦＰＧＡ１１に送信される。リードコマンドがコマンドレジスタ１１４に保持されてユーザ論理からの読み出しモードに遷移される。リードコマンドに続くアドレスはアドレスレジスタ１１７に書き込まれる。ダミーコマンドを必要とするのは次の理由による。すなわち、ＦＰＧＡメモリセル１１９のユーザ論理から読み出されたデータをＣＰＵ１０に取り込む際に同期クロックが必要であり、この同期クロックをＣＰＵ１０のＳＣＫ０端子から出力させるために、ダミーコマンドをＣＰＵ１０から出力させるようにしている。それにより、このダミーコマンド送信に同期して、ＦＰＧＡメモリセル１１９のユーザ論理から読み出されたデータをＣＰＵ１０に取り込むことができる。
【００３２】
上記した例によれば、以下の作用効果を得ることができる。
【００３３】
（１）ＦＰＧＡ１１のユーザ論理がＣＰＵ１０のプログラムＲＯＭ１２に格納されることにより、ＦＰＧＡ１１のユーザ論理を格納するための専用メモリを省略することができる。これにより、データ処理装置の小型化、低消費電力化を図ることができる。また、ユーザ論理情報がＣＰＵ１０によってＦＰＧＡ１１に転送されるため、ユーザ論理情報をＦＰＧＡに転送するための専用のローダー回路を形成する必要がない。
【００３４】
（２）ＦＰＧＡ１１のユーザ論理の転送をＣＰＵ１０で管理することで、フェーズ毎に必要な論理をダイナミックに変更することができるようになり、ＦＰＧＡ１１のゲート規模の縮小化を図ることができる。例えば、ディジタルスチルカメラにおいては、撮影するときにはＪＰＥＧ（カラー静止画像）圧縮のためのＤＣＴ（離散コサイン変換）演算が行われ、閲覧するときにはＪＰＥＧ伸張のための逆ＤＣＴ演算がそれぞれ必要であるが、必ずしも両演算ユニットの論理が同時に必要となるわけではない。撮影時にはＤＣＴ演算ユニットの論理を、閲覧時には逆ＤＣＴ演算ユニットの論理をそれぞれ必要に応じてＲＯＭ１２からＦＰＧＡ１１に転送してやれば良く、それによればＪＰＥＧ圧縮のためのＤＣＴ演算機能と、ＪＰＥＧ伸張のための逆ＤＣＴ演算機能とを同時に実現する場合に比べてＦＰＧＡの規模が約１／２で足りることになる。
【００３５】
システムの開発段階においても、従来はＦＰＧＡの論理を変更する毎にユーザ論理情報を専用ＲＯＭに書き込んで交換しなければならなかったが、上記したデータ処理装置においては、プログラム開発と同様にユーザ論理をエミュレータにダウンロードするだけで論理情報の変更が可能となる。
【００３６】
図４には本発明にかかるデータ処理装置の別の構成例が示される。
【００３７】
図４に示されるようにこのデータ処理装置は、特に制限されないが、ＣＰＵ１５、ＦＰＧＡ１６、及びＲＯＭ１７が結合されて成る。ＣＰＵ１５、ＦＰＧＡ１６、及びＲＯＭ１７は、それぞれ公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。
【００３８】
ＣＰＵ１５は、ＦＰＧＡ１６を選択するチップセレクト信号を出力するＦＰＧＡ＿ＣＳ５端子、読み出しを指示する信号を出力するためのＲＤ５端子、アドレスを出力するためのＡＤＲｎ５端子、データ入出力のためのＤＡＴＡ５端子、ＲＯＭ１７を選択するチップセレクト信号を出力するためのＲＯＭ＿ＣＳ５端子を有する。
【００３９】
ＦＰＧＡ１６は、上記ＣＰＵ１５のＦＰＧＡ＿ＣＳ５端子から出力されたチップセレクト信号を取り込むためのＣＳ６端子、ＣＰＵ１５のＲＤ５端子から出力された読み出し指示信号をアウトプットイネーブル信号として取り込むＯＥ６端子、ＣＰＵ１５のＡＤＲｎ５端子から出力されたアドレス信号を取り込むためのＡＤＲｎ６端子、及びデータ入出力ためのＤＡＴＡ６端子を有する。
【００４０】
ＲＯＭ１７は、上記ＣＰＵ１５で実行されるプログラムとともに、上記ＦＰＧＡ１６のユーザ論理情報を格納する。そのようなＲＯＭ１７には、データ出力のためのＤＡＴＡ７端子、ＣＰＵ１５のＲＯＭ＿ＣＳ５端子から出力されたチップセレクト信号を取り込むためのＣＳ７端子、ＣＰＵ１５のＲＤ５端子から出力された読み出し指示信号をアウトプットイネーブル信号として取り込むＯＥ７端子が設けられている。
【００４１】
ＣＰＵ１５のデータ入出力端子ＤＡＴＡ５と、ＦＰＧＡ１６のデータ入出力端子ＤＡＴＡ６と、ＲＯＭ１７のデータ出力端子ＤＡＴＡ７は、バスＢＵＳにより互いに信号のやり取りが可能に結合されている。ＣＰＵ１５で実行されるプログラムは、バスＢＵＳを介してＲＯＭ１７からＣＰＵ１５に転送される。また、ＲＯＭ１７内のユーザ論理情報もバスＢＵＳを介してＦＰＧＡ１６に転送される。
【００４２】
図８にはＦＰＧＡ１６の構成例が示される。
【００４３】
メモリインタフェース制御を行うためのメモリインタフェースコントロール部１６１が設けられ、このメモリインタフェースコントロール部１６１に、ＣＳ６端子からの入力信号、ＯＥ６端子からの入力信号、ＷＥ６端子からの入力信号、ＡＤＲｎ６端子からの入力信号が取り込まれるようになっている。コマンドを保持するためのコマンドレジスタ１６２、転送バイト数を計数するための転送カウンタ１６３、入力アドレスを保持するアドレスレジスタ１６４、メモリ書き換えバスとユーザ論理バスとを選択するためのバス選択部１６５とが設けられる。
【００４４】
メモリ書き換えバス及びユーザ論理バスはそれぞれデータバス及びアドレスバスを有し、アドレスバスについてはバス選択部１６５により選択的にアドレスレジスタ１６４に結合され、データバスについてはバス選択部１６５により選択的に内部バスＩＢＵＳに結合される。
【００４５】
図５には、図４に示される構成のＣＰＵ１５から見たユーザ論理転送プロトコルが示される。
【００４６】
バスＢＵＳを介してコマンド、アドレス及びデータの転送が行われるため、ＣＰＵ１５のアドレスバスのうち１本だけが、コマンド入力のためのコマンドレジスタと、それ以外のアクセスを行うデータレジスタとを区別するためにＡＤＲｎ５端子として使用されている。つまり、ＡＤＲｎ５端子の出力論理値が“０”ならコマンド入力を示し、論理値“１”ならデータ入力を示している。ここにいうデータは、開始アドレス及び転送アドレスである。
【００４７】
ＤＡＴＡ５端子を介して、転送コマンド、開始アドレス、転送バイト数の順に転送され、ＷＲ５端子がローレベルにアサートされる毎に、転送コマンド、開始アドレス、転送バイト数が書き込まれる。転送コマンドはコマンドレジスタ１６２に、開始アドレスはアドレスレジスタ１６４へ、転送バイト数は転送カウンタ１６３にセットされる。
【００４８】
ＲＯＭ＿ＣＳ５端子がローレベルにアサートされてＲＯＭ１７が選択されてＣＰＵ１５のＲＤ５端子がローレベルにアサートされることで、ＲＯＭ１７の記憶データが読み出され、ＣＰＵ１５のＷＲ５端子がローレベルにアサートされる毎にバスＢＵＳのデータのＦＰＧＡ１６内への取り込みが指示され、それが、ＦＰＧＡメモリセル１６６に書き込まれる。データが転送される毎に、アドレスレジスタ１６４にセットされたアドレスはインクリメントされ、転送カウンタ１６３はダウンカウントされる。
【００４９】
図６には図４に示される構成のＣＰＵ１０から見たユーザ論理アクセスプロトコルが示される。
【００５０】
先ず、リード動作について説明する。
【００５１】
ＣＰＵ１５のＷＲ５端子がローレベルにアサートされて、コマンドレジスタ１６２にアクセスコマンドが書き込まれ、アドレスレジスタ１６３に読み出しアドレスが書き込まれる。上記アクセスコマンドの書き込みにより、ＦＰＧＡ１６はユーザ論理アクセスモードに移行される。バス選択部１６５により、ユーザ論理バスにおけるアドレスバスが選択的にアドレスレジスタ１６４に結合される。また、バス選択部１６５により、ユーザ論理バスにおけるデータバスが内部バスＩＢＵＳに結合される。ＤＡＴＡ５端子からアドレス信号を与えられると、それはアドレスレジスタ１６４に保持され、当該アドレスに呼応するデータがＦＰＧＡメモリセル１６６から読み出されてＤＡＴＡ６端子を介してＣＰＵ１５に伝達される。
【００５２】
ライト動作について説明する。
【００５３】
ライトする場合は、ＣＰＵ１５のＷＲ５端子がローレベルにアサートされて書き込みアドレスがアドレスレジスタ１６４に書き込まれ、次にＣＰＵ１５のＷＲ５端子がローレベルにアサートされるタイミングでライトデータがＣＰＵ１５のＤＡＴＡ５端子から出力されることで、当該ライトデータがＦＰＧＡ１６内のＦＰＧＡメモリセル１６６へ書き込まれる。
【００５４】
このように図４、図８に示されるデータ処理装置においても、ＦＰＧＡのユーザ論理がＣＰＵのプログラムＲＯＭに格納されることにより、ＦＰＧＡのユーザ論理を格納するための専用メモリを省略することができ、それにより、データ処理装置の小型化、低消費電力化を図ることができるなど、図１、図７に示されるデータ処理装置と同様の作用効果を得ることができる。
【００５５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５６】
例えば、ＣＰＵとＳＲＡＭタイプのＦＰＧＡをワンチップ化し、それをプログラマブルな内蔵周辺機能として提供することができる。また、ＣＰＵコアを含むＣＢＩＣ開発顧客への評価チップとすることができる。
【００５７】
ＦＰＧＡユーザ論理とＣＰＵのソースプログラム間でシンボルレベルでの互換性を持たせ、ユーザ論理の一部だけをダイナミックに書き換えられるようにする。
【００５８】
ＣＰＵコアにＳＲＡＭタイプのＦＰＧＡを内蔵し、ユーザ定義のＣＰＵ命令を追加、実行可能とする。
【００５９】
一つのＦＰＧＡにＳＲＡＭ論理とＥＥＰＲＯＭ論理セルの両方を持たせ、固定して使用する論理や電源投入直後から使用する論理をＥＥＰＲＯＭに、ダイナミックに変更して使用する論理をＳＲＡＭに格納するとよい。
【００６０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＦＰＧＡを備えたデータ処理装置に適用した場合について説明したが、本発明はそれに限定されるものではなく、プログラマブル集積回路を備えたデータ処理装置に広く適用することができる。
【００６１】
本発明は、少なくともプログラマブル集積回路を含むことを条件に適用することができる。
【００６２】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００６３】
すなわち、プログラマブル集積回路のユーザ論理が中央処理装置のプログラムが記憶されているメモリに格納されることにより、プログラマブル集積回路のユーザ論理を格納するための専用メモリを省略することができる。これにより、データ処理装置の小型化、低消費電力化を達成する。また、ユーザ論理情報がＣＰＵによってプログラマブル集積回路に転送されるため、ユーザ論理情報をプログラマブル集積回路に転送するための専用のローダー回路を形成を省略することができる。
【図面の簡単な説明】
【図１】本発明にかかるデータ処理装置の構成例ブロック図である。
【図２】図１に示される構成のＣＰＵから見たユーザ論理転送プロトコル説明のためのタイミング図である。
【図３】図１に示される構成のＣＰＵから見たユーザ論理アクセスプロトコル説明のためのタイミング図である。
【図４】本発明にかかるデータ処理装置の別の構成例ブロック図である。
【図５】図４に示される構成のＣＰＵから見たユーザ論理転送プロトコル説明のためのタイミング図である。
【図６】図４に示される構成のＣＰＵから見たユーザ論理アクセスプロトコル説明のためのタイミング図である。
【図７】図１に示されるＦＰＧＡの構成例ブロック図である。
【図８】図４に示されるＦＰＧＡの構成例ブロック図である。
【符号の説明】
１０，１５  ＣＰＵ
１１，１６  ＦＰＧＡ
１２，１７  ＲＯＭ
１１１  受信レジスタ
１１２  送信レジスタ
１１３  シリアルインタフェースコントロール部
１１４，１６２  コマンドレジスタ
１１５，１６３  転送カウンタ
１１６  データレジスタ
１１７，１６４  アドレスレジスタ
１１８，１６５  バス選択回路
１１９，１６６  ＦＰＧＡメモリセル
１６１  メモリインタフェースコントロール部
【図１】
0003571886.tif 000002
【図２】
0003571886.tif 000003
【図３】
0003571886.tif 000004
【図４】
0003571886.tif 000005
【図５】
0003571886.tif 000006
【図６】
0003571886.tif 000007
【図７】
0003571886.tif 000008
【図８】
0003571886.tif 000009