(57)【要約】【課題】汎用性を確保しつつプログラマブル論理デバイス上に構成する回路の動作速度／消費電力を切替可能とする。【解決手段】プリンタＩ／Ｆカードに搭載されたＦＰＧＡ上に、複数のシーケンサを含むＩ／Ｆ回路を構成させるにあたり、Ｉ／Ｆカードに複数台のプリンタが接続されＩ／Ｆ回路中の一部のシーケンサが高速で動作することが要求される場合には、前記一部のシーケンサがone-hotタイプの状態遷移回路((B)参照）を含むシーケンサで構成された高速動作版のＩ／Ｆ回路をＦＰＧＡ上に構成させ、Ｉ／Ｆカードにプリンタが１台のみ接続され消費電力低減が重視される場合には、Ｉ／Ｆ回路中の全てのシーケンサがgrayタイプの状態遷移回路((C)参照）を含むシーケンサで構成された低消費電力版のＩ／Ｆ回路をＦＰＧＡ上に構成させる。【選択図】図７
2007180810.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理回路セルと、個々の前記論理回路セルの間に設けられ前記個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスと、
入力されたクロック信号に同期して所定処理を行う第１回路を前記プログラマブル論理デバイス上に構成させるための第１構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第１回路よりも少なく動作可能なクロック信号の周波数帯域が前記第１回路よりも低い第２回路を前記プログラマブル論理デバイス上に構成させるための第２構成情報を各々記憶する記憶手段と、
前記記憶手段に記憶されている前記第１構成情報又は前記第２構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させる再構成手段と、
を含む電子回路。
【請求項２】
前記プログラマブル論理デバイスの個々の論理回路セルは、複数の論理回路要素と、個々の前記論理回路要素の間に設けられ前記個々の論理回路要素の間の電気的な接続を再構成可能な配線が設けられ、複数種の論理回路を選択的に構成可能でかつ論理回路の構成の再構成が可能とされており、
前記再構成手段は、前記記憶手段に記憶されている前記第１構成情報又は前記第２構成情報に従い、前記プログラマブル論理デバイスの個々の論理回路セルのうち、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させる際に使用する論理回路セルについて、前記複数種の論理回路のうちの何れかの論理回路を各々構成させることで、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させることを特徴とする請求項１記載の電子回路。
【請求項３】
前記プログラマブル論理デバイスには、前記個々の論理回路セルに供給するクロック信号を発生させると共に、当該クロック信号の周波数を変更設定可能なクロック信号発生回路が設けられており、
前記第１及び第２構成情報には、前記プログラマブル論理デバイス上に前記第１回路が構成された場合の前記クロック信号の周波数が、前記プログラマブル論理デバイス上に前記第２回路が構成された場合の前記クロック信号の周波数よりも高くなるように、前記クロック信号の周波数を規定する周波数規定情報も付加されており、
前記再構成手段は、前記周波数規定情報に従って前記クロック信号の周波数を設定することを特徴とする請求項１記載の電子回路。
【請求項４】
前記第１及び第２回路は、現在の内部状態を表す情報を保持すると共に、所定の事象が発生する毎に、前記保持している内部状態を遷移させる状態遷移回路を備え、前記所定の処理として、前記状態遷移回路に保持されている現在の内部状態に応じた処理を行うシーケンサを含んで構成されていることを特徴とする請求項１記載の電子回路。
【請求項５】
前記シーケンサの前記状態遷移回路は、各々１ビットの値を保持する保持回路と、現在の内部状態がｍ種類の内部状態のうちの特定内部状態か否かを表す１ビットの値を前記保持回路に保持させると共に、前記特定内部状態への遷移又は前記特定内部状態からの遷移に関連する所定の事象が発生する毎に、前記保持回路に保持されている１ビットの値を変更する変更回路と、が前記内部状態の種類数ｍと同数だけ各々設けられ、個々の前記変更回路は、個々の前記保持回路に前記ｍ種類の内部状態のうちの互いに異なる内部状態に対応する１ビットの値を保持させることを特徴とする請求項４記載の電子回路。
【請求項６】
前記シーケンサの前記状態遷移回路は、２を底とする前記内部状態の種類数ｍの対数値以上のｎ個設けられ各々１ビットの値を保持する保持回路と、現在の内部状態を表すｎビットの値を前記ｎ個の保持回路に保持させると共に、所定の事象が発生する毎に、前記ｎ個の保持回路に保持されているｎビットの値を、発生した事象の種類に応じた内部状態を表すｎビットの値に変更する単一の変更回路と、を含んで構成されていることを特徴とする請求項４記載の電子回路。
【請求項７】
前記ｍ種類の内部状態の何れかに各々対応しているｍ種類のｎビットの値は、当該値が前記変更回路によって変更された際の変更後のｎビットの値が、変更前のｎビットの値に対してｎビット中の１ビットのみが変化するように定められていることを特徴とする請求項６記載の電子回路。
【請求項８】
前記プログラマブル論理デバイスの個々の論理回路セルには、個々の論理回路セルに入力されたクロック信号を論理回路セル内の論理回路に入力するか入力を遮断するかを変更可能な遮断回路が各々設けられており、
少なくとも前記第２構成情報には、前記プログラマブル論理デバイスの個々の論理回路セルのうち、前記プログラマブル論理デバイス上に前記第２回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、前記クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報が付加されており、
前記再構成手段は、前記プログラマブル論理デバイス上に前記第２回路を構成させる場合に、前記第２構成情報に付加されている前記遮断制御情報に従い、前記使用されない論理回路セルに設けられた遮断回路を前記遮断状態に切り替えることを特徴とする請求項１記載の電子回路。
【請求項９】
複数の論理回路セルと、前記個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを使用するにあたり、
入力されたクロック信号に同期して所定処理を行う第１回路を前記プログラマブル論理デバイス上に構成させるための第１構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第１回路よりも少なく動作可能なクロック信号の周波数帯域が前記第１回路よりも低い第２回路を前記プログラマブル論理デバイス上に構成させるための第２構成情報を記憶手段に各々記憶しておき、
前記記憶手段に記憶されている前記第１構成情報又は前記第２構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させる
ことを特徴とするプログラマブル論理デバイスの使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子回路及びプログラマブル論理デバイスの使用方法に係り、特に、複数の論理回路セルと、個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ一旦構成した回路を変更可能なプログラマブル論理デバイスを備えた電子回路及び該電子回路に適用可能なプログラマブル論理デバイスの使用方法に関する。
【背景技術】
【０００２】
近年、ＡＳＩＣ(Application Specific Integrated Circuit)の開発コストの増大を背景として、プログラム可能な論理ＩＣであるプログラマブル論理デバイス(ＰＬＤ：Programmable Logic Device)が普及してきている。ＰＬＤは、ＡＮＤ回路やＯＲ回路、ＮＯＴ回路、ＬＵＴ（LookUp Table)回路、Ｄフリップフロップ等の論理素子がチップ内に多数収められていると共に、個々の論理素子の間の接続を外部から設定可能に構成されており、個々の論理素子の間の接続等を規定する構成情報を与えることで所望の回路を構成可能で、ＰＬＤに与える構成情報を変更することで回路構成を変更（再構成）することも可能とされている。なお、ＰＬＤにはＳＰＬＤ(Simple PLD)、ＣＰＬＤ(Complex PLD)、ＦＰＧＡ(Field Programmable Gate Array)等があり、最近では構成情報を１クロックサイクルで再ローディング可能なＤＡＰ／ＤＮＡも出回ってきている。
【０００３】
また、ＰＬＤ上に構成する回路を再構成可能であることを利用して、ＰＬＤ上に構成する回路を適宜切り替える技術も提案されており、例えば特許文献１，２には、回路構成が書き替え可能なプログラマブルデバイス上に構成するＣＰＵの個数やＣＰＵに接続されるバスのビット幅を変更することで、ＣＰＵの使用効率を向上させると共に消費電力を低減する技術が開示されている。
【０００４】
また、特許文献３には、パイプライン処理の段数が異なる複数の回路情報を記憶しておき、ＦＰＧＡの温度が高い場合には、動作周波数を下げると共にパイプライン処理の段数が少ない回路をＦＰＧＡ上に構成し、ＦＰＧＡの温度が低い場合には、動作周波数を上げると共にパイプライン処理の段数が多い回路をＦＰＧＡ上に構成する技術が開示されている。
【特許文献１】特開２００３−１８６６８０号公報
【特許文献２】特開２００５−５０３６３号公報
【特許文献３】特開２００４−２２７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１〜３のように、高速な回路をＰＬＤ上に構成するか低消費電力の回路をＰＬＤ上に構成するかを各種の条件に応じて切り替える技術は、様々な用途に使用可能な汎用性の高い技術として発展が期待される。
【０００６】
しかしながら、特許文献１，２に記載の技術は、ＣＰＵの個数やＣＰＵに接続されるバスのビット幅を切り替えることで回路の動作速度／消費電力を切り替えるものであり、バスのビット幅を切り替えると、ＰＬＤ上に構成した回路と外部回路との間のデータ送受のＩ／Ｆ（ビット幅やデータ転送レート等）を切り替える必要が生ずる可能性がある。従って、特許文献１，２に記載の技術は、ＰＬＤ上に形成した回路の構成を切り替えても、ＰＬＤ上に構成した回路と外部との間のデータ送受のＩ／Ｆは変更したくない等の場合に適用が難しいという問題がある。
【０００７】
また、特許文献３に記載の技術は、パイプライン処理の段数を変化させることで動作速度／消費電力を切り替えているので、ＰＬＤ上に構成する回路がパイプライン化に適した処理を行う回路に限られ、例えばシーケンサ等のようにパイプライン化に適さない処理を行う回路には適用が困難であるという問題がある。
【０００８】
本発明は上記事実を考慮して成されたもので、汎用性を確保しつつ回路の動作速度／消費電力を切替可能な電子回路及びプログラマブル論理デバイスの使用方法を得ることが目的である。
【課題を解決するための手段】
【０００９】
上記目的を達成するために請求項１記載の発明に係る電子回路は、複数の論理回路セルと、個々の前記論理回路セルの間に設けられ前記個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスと、入力されたクロック信号に同期して所定処理を行う第１回路を前記プログラマブル論理デバイス上に構成させるための第１構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第１回路よりも少なく動作可能なクロック信号の周波数帯域が前記第１回路よりも低い第２回路を前記プログラマブル論理デバイス上に構成させるための第２構成情報を各々記憶する記憶手段と、前記記憶手段に記憶されている前記第１構成情報又は前記第２構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させる再構成手段と、を含んで構成されている。
【００１０】
請求項１記載の発明に係る電子回路は、複数の論理回路セルと、個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを備えている。このプログラマブル論理デバイスとしては、ＰＬＤ、より詳しくはＳＰＬＤ、ＣＰＬＤ、ＦＰＧＡ、ＤＡＰ／ＤＮＡ等を適用することができる。
【００１１】
ところで、回路のスイッチング動作は回路の消費電力に大きな影響を及ぼし、回路の消費電力は回路動作中のスイッチング回数に比例して変化する。これに基づき請求項１記載の発明では、入力されたクロック信号に同期して所定処理を行う第１回路をプログラマブル論理デバイス上に構成させるための第１構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第１回路よりも少なく動作可能なクロック信号の周波数帯域が前記第１回路よりも低い第２回路をプログラマブル論理デバイス上に構成させるための第２構成情報が記憶手段に各々記憶されており、再構成手段は、記憶手段に記憶されている第１構成情報又は第２構成情報に従って、少なくともプログラマブル論理デバイスに設けられた配線を再構成させることで、プログラマブル論理デバイス上に第１回路又は第２回路を構成させる。
【００１２】
このように、請求項１記載の発明では、プログラマブル論理デバイス上に構成する回路を、第１回路又は所定処理を行う際のスイッチング回数が第１回路よりも少なく動作可能なクロック信号の周波数帯域が第１回路よりも低い第２回路へ切替可能とされており、プログラマブル論理デバイス上に第１回路を構成した場合は高速動作が可能となる一方、プログラマブル論理デバイス上に第２回路を構成した場合は消費電力が低減されるので、プログラマブル論理デバイス上に構成する回路の動作速度／消費電力を切替えることができる。
【００１３】
また、請求項１記載の発明は、プログラマブル論理デバイス上に構成する回路の動作速度／消費電力を切替えることを、同一処理を行う際のスイッチング回数が異なる回路をプログラマブル論理デバイス上に選択的に構成することで実現しており、動作速度／消費電力を切替えるにあたって、バスのビット幅を切り替えたり、パイプライン処理の段数を切り替える必要はない。従って、動作速度／消費電力を切替えることに伴って、プログラマブル論理デバイス上に構成した回路と外部との間のデータ送受のＩ／Ｆ（ビット幅やデータ転送レート等）が変化することを回避できると共に、パイプライン化が困難な処理を行う回路（例えばシーケンサ等）をプログラマブル論理デバイス上に構成することも可能となり、様々な用途に使用可能な高い汎用性が得られる。
【００１４】
なお、請求項１記載の発明に係るプログラマブル論理デバイスは、プログラマブル論理デバイスの個々の論理回路セルが、複数の論理回路要素（例えばフリップフロップやルックアップテーブル等）と、個々の論理回路要素の間に設けられ個々の論理回路要素の間の電気的な接続を再構成可能な配線が設けられ、複数種の論理回路を選択的に構成可能でかつ論理回路の構成の再構成が可能な構成であってもよい。上記構成に該当するプログラマブル論理デバイスとしては、ＦＰＧＡやＤＡＰ／ＤＮＡ等が挙げられる。プログラマブル論理デバイスが上記構成である場合、再構成手段は、例えば請求項２に記載したように、記憶手段に記憶されている第１構成情報又は第２構成情報に従い、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第１回路又は第２回路を構成させる際に使用する論理回路セルについて、複数種の論理回路のうちの何れかの論理回路を各々構成させることで、プログラマブル論理デバイス上に第１回路又は第２回路を構成させるように構成することができる。これにより、個々の論理回路セルが一定構成の場合と比較して、複数種の論理回路を組合わせて回路を構成することができ、プログラマブル論理デバイス上に構成可能な回路構成の自由度が向上する。
【００１５】
また、請求項１記載の発明において、第１回路は第２回路よりも動作可能なクロック信号の周波数帯域が高くされているが、プログラマブル論理デバイスに、個々の論理回路セルに供給するクロック信号を発生させると共に、当該クロック信号の周波数を変更設定可能なクロック信号発生回路が設けられている場合、プログラマブル論理デバイス上に第１回路を構成した場合に第１回路に入力されるクロック信号の周波数と、プログラマブル論理デバイス上に第２回路を構成した場合に第１回路に入力されるクロック信号の周波数を切り替えることは、例えば請求項３に記載したように、第１及び第２構成情報に、プログラマブル論理デバイス上に第１回路が構成された場合のクロック信号の周波数が、プログラマブル論理デバイス上に第２回路が構成された場合のクロック信号の周波数よりも高くなるように、クロック信号の周波数を規定する周波数規定情報も付加しておき、再構成手段を、周波数規定情報に従ってクロック信号の周波数を設定するように構成することで実現できる。これにより、プログラマブル論理デバイス上に第１回路を構成した場合のクロック信号の周波数が、プログラマブル論理デバイス上に第２回路を構成した場合のクロック信号の周波数よりも高くなり、プログラマブル論理デバイス上に第１回路を構成した場合の動作速度（所定処理の処理速度）をプログラマブル論理デバイス上に第２回路を構成した場合よりも高速化することができる。
【００１６】
また、請求項１記載の発明において、第１及び第２回路としては、所定の処理として任意の処理を行う回路を適用可能であり、例えば請求項４に記載したように、現在の内部状態を表す情報を保持すると共に、所定の事象が発生する毎に、保持している内部状態を遷移させる状態遷移回路を備え、所定の処理として、状態遷移回路に保持されている現在の内部状態に応じた処理を行うシーケンサを含んで構成することができる。
【００１７】
また、請求項４記載の発明のように、第１及び第２回路としてシーケンサを含む回路を適用する場合、シーケンサの状態遷移回路としては、例えば請求項５に記載したように、各々１ビットの値を保持する保持回路（例えばフリップフロップ等）と、現在の内部状態がｍ種類の内部状態のうちの特定内部状態か否かを表す１ビットの値を保持回路に保持させると共に、特定内部状態への遷移又は特定内部状態からの遷移に関連する所定の事象が発生する毎に、保持回路に保持されている１ビットの値を変更する変更回路と、が内部状態の種類数ｍと同数だけ各々設けられ、個々の変更回路が、個々の保持回路にｍ種類の内部状態のうちの互いに異なる内部状態に対応する１ビットの値を保持させる構成（所謂one-hotタイプの状態遷移回路）を採用することができる。
【００１８】
上記構成の状態遷移回路は、ｍ個の保持回路の各々に保持されている１ビットの値が、ｍ種類の内部状態のうちの互いに異なる内部状態に対応しており、現在の内部状態を表すｍビットの値がｍ個の保持回路に保持される。従って、保持回路と同数設けられ保持回路に保持されている値を変更する個々の変更回路は、上記の所定の事象が発生する毎に対応する保持回路に保持されている１ビットの値を変更する処理を、他の変更回路と独立に行うことができるので、高速動作が可能（動作可能なクロック信号の周波数帯域が高い）という特長を有しており、第１回路に設けるシーケンサの状態遷移回路として好適である。
【００１９】
一方、請求項５に記載の状態遷移回路は、内部状態を変更すべき事象が発生する毎に、対応する保持回路に保持されている１ビットの値を変更する処理が２個の変更回路によって各々行われるので、スイッチング回数が比較的多く消費電力が高いという欠点がある。このため、請求項４記載の発明のように、第１及び第２回路としてシーケンサを含む回路を適用する場合、シーケンサの状態遷移回路としては、例えば請求項６に記載したように、２を底とする内部状態の種類数ｍの対数値以上のｎ個設けられ各々１ビットの値を保持する保持回路（例えばフリップフロップ等）と、現在の内部状態を表すｎビットの値をｎ個の保持回路に保持させると共に、所定の事象が発生する毎に、ｎ個の保持回路に保持されているｎビットの値を、発生した事象の種類に応じた内部状態を表すｎビットの値に変更する単一の変更回路と、を含んだ構成の状態遷移回路（所謂binaryタイプ又はgrayタイプの状態遷移回路）を採用してもよい。なお、保持回路の数ｎとしては、「２を底とする内部状態の種類数ｍの対数値」が整数値であれば該整数値を、「２を底とする内部状態の種類数ｍの対数値」が小数点以下の値を含む値であれば該小数点以下の値を切り上げた値を用いることができる。
【００２０】
上記構成の状態遷移回路は、ｍ種類存在している内部状態のうちの現在の内部状態がｎビットの値としてｎ個の保持回路に保持されるので（ｎ＜ｍ）、所定の事象の発生に伴ってｎ個の保持回路に保持されているｎビットの値を変更するにあたり、変更回路は新たな内部状態をｎビットの値へ変換する必要があり、動作速度の点で不利（動作可能なクロック信号の周波数帯域が低い）という欠点がある。しかし、請求項５に記載の状態遷移回路と比較して、内部状態を変更すべき事象が発生した際に、保持されている１ビットの値が変更される保持回路の数の平均値が２よりも小さく、消費電力が低いという特長を有しているので、第２回路に設けるシーケンサの状態遷移回路として好適である。
【００２１】
また、上述した請求項６記載の発明において、ｍ種類の内部状態の何れかに各々対応しているｍ種類のｎビットの値は、例えば請求項７に記載したように、当該値が変更回路によって変更された際の変更後のｎビットの値が、変更前のｎビットの値に対してｎビット中の１ビットのみが変化するように定められていることが好ましい（所謂grayタイプの状態遷移回路）。内部状態を変更すべき事象が発生した際に保持されている１ビットの値が変更される保持回路の数が常に１となり、請求項６に記載のシーケンサの状態遷移回路としてbinaryタイプの状態遷移回路を用いる場合よりも更に消費電力を低減することができる。
【００２２】
また請求項１記載の発明において、例えば請求項８に記載したように、プログラマブル論理デバイスの個々の論理回路セルには、個々の論理回路セルに入力されたクロック信号を論理回路セル内の論理回路に入力するか入力を遮断するかを変更可能な遮断回路が各々設けられており、少なくとも第２構成情報には、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第２回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報が付加されており、再構成手段は、プログラマブル論理デバイス上に第２回路を構成させる場合に、第２構成情報に付加されている遮断制御情報に従い、使用されない論理回路セルに設けられた遮断回路を遮断状態に切り替えるように構成することが好ましい。
【００２３】
これにより、プログラマブル論理デバイス上に第２回路を構成した状態で、プログラマブル論理デバイスに設けられている複数の論理回路セルのうち、使用されない論理回路セルへのクロック信号の入力が遮断回路によって遮断されるので、プログラマブル論理デバイス上に第２回路を構成した場合の消費電力を更に低減することができる。なお、請求項８記載の発明において、更に、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第１回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報を第１構成情報に付加しておき、再構成手段を、プログラマブル論理デバイス上に第１回路を構成させる場合に、第１構成情報に付加されている遮断制御情報に従い、使用されない論理回路セルに設けられた遮断回路を遮断状態に切り替えるように構成してもよい。これにより、プログラマブル論理デバイス上に第１回路を構成した場合の消費電力も低減できるので好ましい。
【００２４】
請求項９記載の発明に係るプログラマブル論理デバイスの使用方法は、複数の論理回路セルと、前記個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを使用するにあたり、入力されたクロック信号に同期して所定処理を行う第１回路を前記プログラマブル論理デバイス上に構成させるための第１構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第１回路よりも少なく動作可能なクロック信号の周波数帯域が前記第１回路よりも低い第２回路を前記プログラマブル論理デバイス上に構成させるための第２構成情報を記憶手段に各々記憶しておき、前記記憶手段に記憶されている前記第１構成情報又は前記第２構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第１回路又は前記第２回路を構成させることを特徴としているので、請求項１記載の発明と同様に、汎用性を確保しつつ回路の動作速度／消費電力を切替えることが可能となる。
【発明の効果】
【００２５】
以上説明したように本発明は、複数の論理回路セルと、個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイス上に、入力されたクロック信号に同期して所定処理を行う第１回路を構成させるための第１構成情報と、入力されたクロック信号に同期して所定処理を行う際のスイッチング回数が第１回路よりも少なく動作可能なクロック信号の周波数帯域が第１回路よりも低い第２回路を構成させるための第２構成情報を各々記憶しておき、第１構成情報又は前記第２構成情報に従ってプログラマブル論理デバイス上に第１回路又は第２回路を構成させるようにしたので、汎用性を確保しつつ回路の動作速度／消費電力を切替えることが可能となる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には、本発明に係る電子回路に相当するプリンタＩ／Ｆ（インタフェース）カード３０が搭載され、プリントサーバとして機能することが可能なコンピュータ１０が示されている。
【００２７】
コンピュータ１０はＯＳ(Operating System)の制御下で各種プログラムを実行するＣＰＵ１２を備えており、ＣＰＵ１２はプロセッサ直結バスであるＦＳＢ(FrontSide Bus)１４と接続されている。また、コンピュータ１０にはＰＣＩバス(Peripheral Component Interconnect Bus)１６が設けられており、ＦＳＢ１４はＣＰＵブリッジ(ホスト−ＰＣＩブリッジ)１８を介してＰＣＩバス１６と接続されている。ＣＰＵブリッジ１８はメモリ２０へのアクセス動作を制御するためのメモリコントローラ機能や、ＦＳＢ１８とＰＣＩバス２０の間のデータ転送速度の差を吸収するためのデータバッファ等を含んで構成されている。
【００２８】
メモリ２０はＣＰＵブリッジ１８に接続され、ＣＰＵ１２が実行する各種のプログラム（ＯＳや各種デバイスドライバ、ＢＩＯＳ(Basic Input/Output System)、各種のアプリケーション・プログラム等）を読み込んだり、前記プログラムで処理されたデータを書き込む作業領域として利用される。またＣＰＵブリッジ１８には、ビデオサブシステムを介してディスプレイが接続されている（図示省略）。ビデオサブシステムは、ＣＰＵ１２からの描画命令を実際に処理し、処理した描画情報をビデオメモリ(ＶＲＡＭ)に一旦書き込むと共に、ＶＲＡＭから描画情報を読み出してディスプレイに描画データとして出力するビデオコントローラを含んで構成されている。
【００２９】
また、ＰＣＩバス１６にはＩ／Ｏブリッジ２２が接続されており、Ｉ／Ｏブリッジ２２にはＨＤＤ(Hard Disk Drive)２４が接続されている。Ｉ／Ｏブリッジ２２は、ＰＣＩバス１６とＩＳＡバス(図示省略）とのブリッジ機能、ＤＭＡコントローラ機能、プログラマブル割り込みコントローラ(ＰＩＣ)機能、プログラマブル・インターバル・タイマ(ＰＩＴ)機能、ＩＤＥ(Integrated Drive Electronics)インタフェース機能、ＵＳＢ(Universal Serial Bus)機能、ＳＭＢ(System Management Bus)インタフェース機能を備えている。ＤＭＡコントローラ機能は、周辺機器（例えばＨＤＤ２４）とメモリ２０との間のデータ転送をＣＰＵ１２の介在なしに実行するための機能である。またＰＩＣ機能は、周辺機器からの割り込み要求(ＩＲＱ)に応答して所定のプログラム(割り込みハンドラ)を実行させる機能であり、ＰＩＴ機能はタイマ信号を所定周期で発生させる機能である。
【００３０】
また、ＰＣＩバス１６にはプリンタＩ／Ｆカード３０が接続されている。プリンタＩ／Ｆカード３０は、独自Ｉ／Ｆを有する最大２台のプリンタ２６Ａ，２６Ｂをコンピュータに接続しコンピュータからの指示に応じてプリンタ２６で印刷処理を行わせるためのＩ／Ｆカードであり、コンピュータ１０に設けられた図示しないＰＣＩスロットに挿入されることでＰＣＩバス１６に接続されている。プリンタＩ／Ｆカード３０には、ＰＣＩバス１６経由での制御信号やデータの送受を司るＰＣＩ  Ｉ／Ｆ部３２と、プリンタＩ／Ｆカード３０の各部を制御するＣＰＵ３４と、ＣＰＵ３４によって実行されるプログラムや各種の情報が書き込まれたフラッシュＲＯＭ３６と、ＤＲＡＭ等から成るメモリ３８と、本発明に係るプログラマブル論理デバイスとしてのＦＰＧＡ(Field Programmable Gate Array)４０と、プリンタ２６の接続ケーブル４４を接続するための２個のコネクタ４２が各々設けられている。なお、プリンタＩ／Ｆカード３０に搭載された回路は本発明に係る電子回路に対応している。
【００３１】
ＦＰＧＡ４０は、チップに構成情報を与えることで当該構成情報に応じた任意の回路を構成させることが可能なＰＬＤの一種であり、ＦＰＧＡ４０のチップ上には、例として図２に示すように、多数個の論理回路セル４６がマトリクス上に配列されている。
【００３２】
個々の論理回路セル４６は各々同一構成とされており、図３に示すように、４入力２出力のＬＵＴ（ルックアップテーブル）６０、Ｄ−ＦＦ（フリップフロップ）６２、６個のプログラマブル・マルチプレクサ（以下、単にＭＵＸという）６４，６６，６８，７０，７２，７４、バッファ７６を備えている。論理回路セル４６の３本の入力信号線Ａ〜ＣはＬＵＴ６０の入力端に各々接続され、入力信号線ＤはＭＵＸ６４の２個の入力端の一方とＭＵＸ６６の２個の入力端の一方に各々接続されている。ＭＵＸ６４の他方の入力端はＤ−ＦＦ６２のＱ端子に接続され、ＭＵＸ６４の出力端はＬＵＴ６０の残りの入力端に接続されており、ＭＵＸ６６の他方の入力端はＬＵＴ６０の出力端Ｇに接続され、ＭＵＸ６６の出力端はＤ−ＦＦ６２のＲ端子に接続されている。
【００３３】
また、入力信号線ＡはＭＵＸ６８の２個の入力端の一方に接続されており、ＭＵＸ６８の他方の入力端はＬＵＴ６０の出力端Ｆに、ＭＵＸ６８の出力端はＤ−ＦＦ６２のＳ端子に接続されている。またＭＵＸ７０の３個の入力端は、ＬＵＴ６０の出力端Ｇ、ＭＵＸ６４の出力端及びクロック信号入力線Ｋに各々接続され、ＭＵＸ７０の出力端はバッファ７６の入力端に接続されている。バッファ７６の出力端は抵抗７８を介して給電ラインに接続されると共に、Ｄ−ＦＦ６２の同期信号入力端に接続されている。また、Ｄ−ＦＦ６２のＤ端子はＬＵＴ６０の出力端Ｆに接続され、ＭＵＸ７２，７４の３個の入力端はＬＵＴ６０の出力端Ｆ、ＬＵＴ６０の出力端Ｇ、Ｄ−ＦＦ６２のＱ端子に各々接続され、ＭＵＸ７２の出力端は出力信号線Ｘに、ＭＵＸ７４の出力端は出力信号線Ｙに各々接続されている。
【００３４】
ＦＰＧＡ４０に与える構成情報には、ＦＰＧＡ４０上の個々の論理回路セル４６に与えるセル構成情報と、ＦＰＧＡ４０上の個々のスイッチマトリクス５０及び個々のＩ／Ｏブロック５４（何れも後述）に与える配線構成情報を含んで構成されており、論理回路セル４６に設けられた個々のＭＵＸ６４，６６，６８，７０，７２，７４は、ＦＰＧＡ４０に与えられた構成情報のうち、対応する論理回路セル４６に与えられたセル構成情報に従い、複数個の入力端を介して入力される複数の信号のうちの何れか１つを選択的に出力する。従って、論理回路セル４６に与えるセル構成情報の内容を切り替えることで、論理回路セル４６によって実現される論理回路も、図４(Ａ)〜(Ｃ)に示すように切り替わることになる。また、ＬＵＴ６０は変換に使用する変換データを切り替えることで様々な機能（変換）を実現できるが、論理回路セル４６に与えるセル構成情報を切り替えることでＬＵＴ６０に設定する変換データも切り替え可能とされており、図４(Ａ)〜(Ｃ)に示す論理回路においてＬＵＴ６０に設定する変換データを切り替えることで、単一の論理回路セル４６によって多様な論理回路を実現することができる。
【００３５】
なお、論理回路セル４６に設けられたバッファ７６は、前記論理回路セル４６に与えられたセル構成情報に従い、ＭＵＸ７０から入力端を介して入力された信号（通常はクロック信号）をＤ−ＦＦ６２の同期信号入力端へそのまま出力する第１状態、及び、入力信号に拘わらず出力端をハイインピーダンスにする第２状態に切り替わる。バッファ７６が第２状態となっている間、Ｄ−ＦＦ６２の同期信号入力端の電位は、抵抗７８を介して接続された給電ラインによって一定レベルに維持される。なお、上記のバッファ７６は請求項８に記載の遮断回路に対応している。
【００３６】
また図２に示すように、ＦＰＧＡ４０のチップ上において、マトリクス上に配列された個々の論理回路セル４６の間には、各々複数本の配線から成る配線群４８がＸ方向及びＹ方向に沿って各々配設されており、Ｘ方向に延びる配線群４８とＹ方向に延びる配線群４８との交差位置には、配線群４８を構成する個々の配線の接続を切替可能なスイッチマトリクス５０が各々設けられている。スイッチマトリクス５０は、ＦＰＧＡ４０に与えられた構成情報のうち対応する配線構成情報に従って個々の配線の接続を切り替える。またＦＰＧＡ４０には、外部から入力された基準クロック信号に基づいて、ＰＬＬ制御によって所定周波数のクロック信号を生成・出力するＰＬＬ回路５２が設けられている。ＰＬＬ回路５２の出力端は配線群４８のうちの何れか１つの配線に接続されており、ＰＬＬ回路５２に接続された配線はクロック信号伝送線として機能する。
【００３７】
また、ＦＰＧＡ４０のチップ上の周縁部には多数個のＩ／Ｏブロック５４が配列されており、個々のＩ／Ｏブロック５４には、配線群４８の複数本の配線及びＦＰＧＡ４０のパッケージに設けられた多数個のピンのうちの何れか１つが各々接続されている。図示は省略するがＩ／Ｏブロック５４もＭＵＸ（プログラマブル・マルチプレクサ）を含んで構成されており、ＦＰＧＡ４０に与えられた構成情報のうち対応する配線構成情報に従ってＭＵＸが切り替わることで、接続されたピンを入力端子として使用し前記ピンを介して入力された信号を接続された特定配線へ出力したり、接続されたピンを出力端子として使用し接続された特定配線を介して入力された信号を前記ピンへ出力したり、接続された第１の配線を介して入力された信号を接続された第２の配線へ出力する等の複数の状態に切り替わるように構成されている。
【００３８】
そして、ＦＰＧＡ４０のチップ上に設けられた個々の論理回路セル４６は、図示は省略するが配線群４８の個々の配線に各々接続されている。従って、ＦＰＧＡ４０に構成情報（セル構成情報や配線構成情報等）を与えることで、ＦＰＧＡ４０上に設けられた論理回路セル４６のうちの所定数の論理回路セル４６を使用し、使用する個々の論理回路セル４６を所定の構成の論理回路として各々機能させ、かつこれらの論理回路を所定の順序で接続することが可能となり、ＦＰＧＡ４０上に所定の構成の回路を構成することができる。また、ＦＰＧＡ４０に与える構成情報を切り替えることで、使用する論理回路セル４６の数や個々の論理回路セル４６によって実現される論理回路の構成、個々の論理回路の接続順序の少なくとも１つを切り替えることができ、ＦＰＧＡ４０上に任意の構成の回路を再構成することができる。
【００３９】
本実施形態では、ＦＰＧＡ４０に与える構成情報がフラッシュＲＯＭ３６に記憶されており、プリンタＩ／Ｆカード３０のＣＰＵ３４は、コンピュータ１０の電源が投入されてプリンタＩ／Ｆカード３０に電力が供給されると、フラッシュＲＯＭ３６から構成情報を読み出し、読み出した構成情報をＦＰＧＡ４０のチップ上に設けられた構成情報保持用のメモリセル（図示省略）に書き込むことで、ＦＰＧＡ４０に構成情報を与える。これにより、ＦＰＧＡ４０に設けられたＭＵＸやスイッチマトリクス５０等が構成情報保持用のメモリセルに書き込まれた構成情報に応じて切り替わることで、前記構成情報に対応する回路がＦＰＧＡ４０上に再構成されることになる。また、本実施形態に係るフラッシュＲＯＭ３６には、ＦＰＧＡ４０に与える構成情報として複数種の構成情報が記憶されており、ＣＰＵ３４は、電源投入時やＦＰＧＡ４０上に構成している回路を切り替える必要が生ずる毎に、複数種の構成情報のうちの何れか１つの構成情報を選択的にフラッシュＲＯＭ３６から読み出し、読み出した構成情報をＦＰＧＡ４０に与える処理を行う。
【００４０】
次に本実施形態の作用として、まずＦＰＧＡ４０に構成される回路について説明する。本実施形態では、プリンタＩ／Ｆカード３０を、最大２台のプリンタ２６Ａ，２６Ｂをコンピュータに接続しコンピュータからの指示に応じてプリンタ２６で印刷処理を行わせるＩ／Ｆカードとして機能させるために、フラッシュＲＯＭ３６に記憶されている複数種の構成情報は、何れも図５に示すＩ／Ｆ回路８０がＦＰＧＡ４０上に構成されるように設定されている。
【００４１】
Ｉ／Ｆ回路８０は、ＰＣＩ  Ｉ／Ｆ部３２と接続されＰＣＩ  Ｉ／Ｆ部３２から入力されるデータを処理する入力Ｉ／Ｆ部８２と、コネクタ４２と接続されプリンタ２６への出力用としてメモリ３８から読み出されたデータを処理する複数の出力Ｉ／Ｆ部８４と、ＣＰＵ３４と接続されＣＰＵ３４から入力されたアドレスを処理すると共にＣＰＵ３４との間でデータの送受を行うＣＰＵ  Ｉ／Ｆ部８６と、メモリ３８及び各Ｉ／Ｆ部８２〜８６と各々接続され各Ｉ／Ｆ部８２〜８６からの指示に従いメモリ３８に対するデータの書き込み及び読み出しを行うと共にメモリ３８のリフレッシュを制御するメモリＩ／Ｆ部８８と、ＰＬＬ回路５２と接続されＰＬＬ回路５２から供給されたクロック信号から各Ｉ／Ｆ部８２〜８８が必要とする周波数のクロック信号を生成して各Ｉ／Ｆ部８２〜８８へ供給するクロック発生回路９０を含んで構成されている。
【００４２】
図６(Ａ)に示すように、入力Ｉ／Ｆ部８２は、入力ＤＭＡシーケンサ９２と少量（例えば512バイト程度）のバッファメモリを備えた入力ＤＭＡバッファ９４を含んで構成されており、入力ＤＭＡシーケンサ９２は、入力ＤＭＡバッファ９４のバッファメモリの状態（満杯か空か）を監視しながらＰＣＩ  Ｉ／Ｆ部３２にデータの入力を要求し、ＰＣＩ  Ｉ／Ｆ部３２からＤＭＡ転送により入力されたデータ（印刷用データ）を入力ＤＭＡバッファ９４のバッファメモリに一時記憶させると共に、入力ＤＭＡバッファ９４のバッファメモリに一時記憶させたデータのメモリ３８への書き込みをメモリＩ／Ｆ部８８へ要求し、メモリ３８への書き込みが可能な状態になると、メモリＩ／Ｆ部８８へ書込アドレス（内部アドレス）を通知すると共に入力ＤＭＡバッファ９４のバッファメモリに一時記憶させたデータをＤＭＡ転送によってメモリＩ／Ｆ部８８へ出力させる処理を行う。
【００４３】
また図６(Ｂ)に示すように、出力Ｉ／Ｆ部８４は、出力ＤＭＡシーケンサ９６と少量（例えば512バイト程度）のバッファメモリを備えた出力ＤＭＡバッファ９８を含んで構成されており、出力ＤＭＡシーケンサ９６は、出力ＤＭＡバッファ９８のバッファメモリの状態（満杯か空か）を監視しながらメモリＩ／Ｆ部８８に対してメモリ３８からのデータの読み出しを要求し、メモリ３８からの読み出しが可能な状態になると、メモリＩ／Ｆ部８８へ読出アドレス（内部アドレス）を通知してメモリ３８からデータを読み出させ、ＤＭＡ転送によってメモリＩ／Ｆ部８８から入力されたデータ（印刷用データ）を出力ＤＭＡバッファ９８のバッファメモリに一時記憶させると共に、出力ＤＭＡバッファ９８のバッファメモリに一時記憶させたデータをコネクタ４２、接続ケーブル４４を介してプリンタ２６へ転送する処理を行う。
【００４４】
また図６(Ｃ)に示すように、ＣＰＵ  Ｉ／Ｆ部８６は、ＣＰＵアクセス制御シーケンサ１００とデータバス制御部１０２を含んで構成されており、ＣＰＵアクセス制御シーケンサ１００は、ＣＰＵ３４から読出又は書込アドレスが通知されてメモリ３８からのデータの読み出し又はメモリ３８へのデータの書き込みがＣＰＵ３４から指示される毎に、指示に応じてデータの読み出し又は書き込みをメモリＩ／Ｆ部８８に要求すると共に、通知されたアドレスを内部アドレスへ変換してメモリＩ／Ｆ部８８へ通知する。またＣＰＵアクセス制御シーケンサ１００は、データの読み出し時には、メモリＩ／Ｆ部８８からデータバス制御部１０２に入力された読出データをＣＰＵ３４へ転送させ、データの書き込み時には、ＣＰＵ３４からデータバス制御部１０２に入力された書込データをメモリＩ／Ｆ部８８へ転送させる。
【００４５】
更に、図６(Ｄ)に示すように、メモリＩ／Ｆ部８８は、メモリ制御シーケンサ１０４、データバス制御部１０６及びリフレッシュカウンタ１０８を含んで構成されており、メモリ制御シーケンサ１０４は、入力Ｉ／Ｆ部８２又はＣＰＵ  Ｉ／Ｆ部８６からメモリ３８へのデータの書き込みが指示され、指示された書き込みを実行可能な状態である場合には、読み出しを指示する制御信号をメモリ３８へ出力すると共に、書込要求元（入力Ｉ／Ｆ部８２又はＣＰＵ  Ｉ／Ｆ部８６）から通知された内部アドレスを書込アドレスとしてメモリ３８へ通知し、書込要求元からデータバス制御部１０６に入力された書込データをメモリ３８へ出力させる。また、メモリ制御シーケンサ１０４は、出力Ｉ／Ｆ部８４又はＣＰＵ  Ｉ／Ｆ部８６よりメモリ３８からのデータの読み出しが指示され、指示された読み出しを実行可能な状態である場合には、読み出しを指示する制御信号をメモリ３８へ出力すると共に、読出要求元（出力Ｉ／Ｆ部８４又はＣＰＵ  Ｉ／Ｆ部８６）から通知された内部アドレスを読出アドレスとしてメモリ３８へ通知し、メモリ３８からデータバス制御部１０６に入力された読出データを読出要求元へ転送させる。
【００４６】
また、リフレッシュカウンタ１０８はメモリ３８に対するリフレッシュの実行周期を管理しており、メモリ制御シーケンサ１０４は、リフレッシュを実行すべき時期が到来したことを表す信号がリフレッシュカウンタ１０８から入力されると、メモリ３８に対してリフレッシュの実行を指示すると共に、リフレッシュの実行中に入力された読出／書込要求に対してはビジー応答を返し、リフレッシュの実行完了がメモリ３８から通知されると、リフレッシュカウンタ１０８のカウント値をリセットさせる信号をリフレッシュカウンタ１０８へ出力する。
【００４７】
上述したように、Ｉ／Ｆ回路８０を構成する入力Ｉ／Ｆ部８２、出力Ｉ／Ｆ部８４、ＣＰＵ  Ｉ／Ｆ部８６及びメモリＩ／Ｆ部８８は各々シーケンサを備えている。シーケンサは、現在の内部状態を保持すると共に、所定の事象が発生する毎に、保持している内部状態を遷移させると共に、遷移後の内部状態に応じた処理を行う回路であり、一例として図７(Ａ)に示す状態遷移では、内部状態が「状態Ａ」の場合は、条件１を満たす事象が発生する迄は「状態Ａ」を維持し、条件１を満たす事象が発生すると「状態Ｂ」へ遷移し、内部状態が「状態Ｂ」の場合は、条件２を満たす事象が発生する迄は「状態Ｂ」を維持し、条件２を満たす事象が発生すると「状態Ｃ」へ遷移し、内部状態が「状態Ｃ」の場合は、条件３を満たす事象が発生する迄は「状態Ｃ」を維持し、条件３を満たす事象が発生すると「状態Ｄ」へ遷移し、内部状態が「状態Ｄ」の場合は、条件４を満たす事象が発生する迄は「状態Ｄ」を維持し、条件４を満たす事象が発生すると「状態Ａ」へ遷移する。
【００４８】
上記のような状態遷移を行うために、シーケンサは内部状態を保持・更新する状態遷移回路を含んで構成されているが、状態遷移回路の構成には複数種あり、そのうちの１つとして、例えば図７(Ｂ)に示すように、シーケンサの内部状態の種類数をｍとしたときに、１ビットの値を保持する保持回路（図ではフリップフロップとして示す）１１２と、現在の内部状態がｍ種類の内部状態のうちの特定の内部状態か否かを表す１ビットの値を保持回路１１２に保持させると共に、特定の内部状態への遷移又は特定内部状態からの遷移に関連する所定の事象（例えば図７(Ａ)に示す状態遷移において、特定内部状態が「状態Ａ」であれば条件１を満たす事象又は条件４を満たす事象）が発生する毎に、保持回路１１２に保持されている１ビットの値を変更する状態遷移管理部１１４が、内部状態の種類数ｍと同数だけ各々設けられた構成（one-hotタイプ）の状態遷移回路１１０がある。なお、図７はシーケンサの内部状態の種類数ｍ＝４を前提としており、状態遷移回路１１０には保持回路１１２が４個設けられている。
【００４９】
また、状態遷移回路の別の構成として、例えば図７(Ｃ)に示すように、２を底とする内部状態の種類数ｍの対数値以上のｎ個設けられ各々１ビットの値を保持する保持回路（図ではフリップフロップとして示す）１１８と、現在の内部状態を表すｎビットの値をｎ個の保持回路１１８に保持させると共に、内部状態を変更すべき所定の事象が発生する毎に、ｎ個の保持回路１１８に保持されているｎビットの値を、発生した事象の種類に応じた内部状態を表すｎビットの値に変更する単一の状態遷移管理部１２０と、を含んだ構成（binaryタイプ又はgrayタイプ）の状態遷移回路１１６もある。なお、内部状態の種類数ｍ＝４の場合、２を底とする内部状態の種類数ｍの対数値＝２となるので、状態遷移回路１１６には前記対数値と同数（ｎ＝２）個の保持回路１１８が設けられている。
【００５０】
図７(Ｂ)に示すone-hotタイプの状態遷移回路１１０は、４個の保持回路１１２の各々に保持されている１ビットの値が、４種類の内部状態のうちの互いに異なる内部状態に対応しており（図７(Ｂ)に示す図表も参照）、現在の内部状態を表す４ビットの値が４個の保持回路１１２に保持される。従って、保持回路１１２と同数設けられ保持回路１１２に保持されている値を変更する個々の状態遷移管理部１１４は、上記の所定の事象が発生する毎に対応する保持回路１１２に保持されている１ビットの値を変更する処理を、他の状態遷移管理部１１４と独立に行うことができるので、高速動作が可能である（動作可能なクロック信号の周波数帯域が高い）。但し、one-hotタイプの状態遷移回路１１０では、内部状態の変更時に必ず２個の保持回路１１２で保持している１ビットの値が変化するので、スイッチング回数が比較的多く消費電力が高いという欠点がある。
【００５１】
一方、図７(Ｃ)に示すbinaryタイプ又はgrayタイプの状態遷移回路１１６では、４種類の内部状態のうちの現在の内部状態が２ビットの値にエンコードされて２個の保持回路１１８に保持されるので、図７(Ｃ)にも示すように、状態遷移管理部１２０は、現在の内部状態を認識するにあたって２個の保持回路１１８に保持されている２ビットの値を現在の内部状態を表す４ビットの値へデコードする処理を行う必要があると共に、内部状態の変更時には、変更後の内部状態を表す４ビットの値を２ビットの値へエンコードした後に２個の保持回路１１８に保持させる処理を行う必要があるので、動作速度の点で不利である（動作可能なクロック信号の周波数帯域が低い）。しかし、内部状態を変更すべき事象が発生した際に、保持されている１ビットの値が変更される保持回路１１８の数の平均値が２よりも小さく、one-hotタイプの状態遷移回路１１０よりも消費電力が低い。
【００５２】
また、状態遷移回路１１６において、シーケンサの個々の内部状態へのｎビットの値の割当方式としては、状態遷移順に並べた個々の内部状態に対し、ｎビットの２進数の昇順に並べたｎビットの値を割り当てる方式（binaryタイプ：図７(Ｃ)にbinaryタイプと表記して示す図表も参照）と、状態遷移順に並べた個々の内部状態に対し、状態遷移時に値が変化するビットの数が常に１となるように並べたｎビットの値を割り当てる方式（grayタイプ：図７(Ｃ)にgrayタイプと表記して示す図表も参照）がある。grayタイプは、内部状態を変更すべき事象が発生した際に、保持されている１ビットの値が変更される保持回路１１８の数が常に１になるので、binaryタイプよりもgrayタイプを採用した方が状態遷移回路１１６の消費電力が低くなる。
【００５３】
上記に基づき本実施形態では、Ｉ／Ｆ回路８０をＦＰＧＡ４０上に構成させる構成情報として、Ｉ／Ｆ回路８０を構成する各Ｉ／Ｆ部８２〜８８のシーケンサに占めるone-hotタイプの状態遷移回路１１０を備えたシーケンサ及びgrayタイプの状態遷移回路１１６の割合が異なる２種類のＩ／Ｆ回路８０の何れかをＦＰＧＡ４０上に構成させる２種類の構成情報を用意し、各Ｉ／Ｆ部８２〜８８のシーケンサに占めるone-hotタイプの状態遷移回路１１０を備えたシーケンサの割合が高い高速動作版のＩ／Ｆ回路８０をＦＰＧＡ４０上に構成させる第１の構成情報と、各Ｉ／Ｆ部８２〜８８のシーケンサに占めるgrayタイプの状態遷移回路１１６を備えたシーケンサの割合が高い低消費電力版のＩ／Ｆ回路８０をＦＰＧＡ４０上に構成させる第２の構成情報をフラッシュＲＯＭ３６に予め各々記憶させている。なお、高速動作版のＩ／Ｆ回路８０は本発明に係る第１回路、低消費電力版のＩ／Ｆ回路８０は本発明に係る第２回路に対応しており、第１及び第２の構成情報を記憶するフラッシュＲＯＭ３６は本発明に係る記憶手段に対応している。
【００５４】
高速動作版のＩ／Ｆ回路８０及び低消費電力版のＩ／Ｆ回路８０において、各Ｉ／Ｆ部８２〜８８のシーケンサに占めるone-hotタイプの状態遷移回路１１０を備えたシーケンサ及びgrayタイプの状態遷移回路１１６の割合は、高速動作版のＩ／Ｆ回路８０及び低消費電力版のＩ／Ｆ回路８０に対する要求性能に応じて定めることができる。
【００５５】
本実施形態に係るプリンタＩ／Ｆカード３０は最大２台のプリンタ２６Ａ，２６Ｂをコンピュータ１０に接続可能なＩ／Ｆカードであり、プリンタＩ／Ｆカード３０を介してコンピュータ１０に接続されるプリンタ２６の台数は１台の場合と２台の場合がある。このため、以下では、コンピュータ１０に２台のプリンタ２６が接続されている場合は、第１の構成情報を用いてＦＰＧＡ４０上に高速動作版のＩ／Ｆ回路８０を構成させ、コンピュータ１０に１台のプリンタ２６のみが接続されている場合は、第２の構成情報を用いてＦＰＧＡ４０上に低消費電力版のＩ／Ｆ回路８０を構成させる態様を例に、高速動作版のＩ／Ｆ回路８０及び低消費電力版のＩ／Ｆ回路８０の構成の一例について、具体的な数値を挙げて説明する。なお、本発明は以下に記載した数値に限定されるものではないことを付記しておく。
【００５６】
例として図８(Ａ)に示すように、入力Ｉ／Ｆ部８２とＰＣＩ  Ｉ／Ｆ部３２との間の情報伝送が32ビット幅で33ＭＨｚのクロック信号に同期して行われ（伝送速度（ビットレート）＝1056Ｍbps)、出力Ｉ／Ｆ部８４とプリンタ２６Ａとの間の情報伝送が32ビット幅で55ＭＨｚのクロック信号に同期して行われ（伝送速度（ビットレート）＝1980Ｍbps)、出力Ｉ／Ｆ部８４とプリンタ２６Ｂとの間の情報伝送が32ビット幅で66ＭＨｚのクロック信号に同期して行われ（伝送速度（ビットレート）＝2376Ｍbps)、ＣＰＵ  Ｉ／Ｆ部８６とＣＰＵ３４との間の情報伝送が32ビット幅で66ＭＨｚのクロック信号に同期して行われる（伝送速度（ビットレート）＝2112Ｍbps)場合を考える。
【００５７】
プリンタＩ／Ｆカード３０に２台のプリンタ２６Ａ，２６Ｂが接続された場合、上記各Ｉ／Ｆ部８２〜８６が各々メモリＩ／Ｆ部８８を介してメモリ３８にアクセスするので、メモリＩ／Ｆ部８８がＩ／Ｆ回路８０の処理速度のボトルネックとなることを回避するためには、メモリＩ／Ｆ部８８の処理速度（ビットレート）を、上記各Ｉ／Ｆ部８２〜８６におけるビットレートの合計値7524Ｍbpsよりも大きくする必要がある。ここで、メモリＩ／Ｆ部８８とメモリ３８との間の情報伝送が64ビット幅で120ＭＨｚのクロック信号に同期して行われたとすると伝送速度（ビットレート）は7680Ｍbpsとなり、上記の要求値を上回るので、メモリＩ／Ｆ部８８がＩ／Ｆ回路８０の処理速度のボトルネックとなることを回避できる。
【００５８】
但し、grayタイプの状態遷移回路１１６の動作可能周波数帯域の上限は現状で100ＭＨｚ程度であり、メモリＩ／Ｆ部８８のメモリ制御シーケンサ１０４としてgrayタイプの状態遷移回路１１６を備えたシーケンサを適用することは困難である。このため、高速動作版のＩ／Ｆ回路８０では、Ｉ／Ｆ部８２〜８６のシーケンサとしてgrayタイプの状態遷移回路１１６を備えたシーケンサが適用される一方、メモリＩ／Ｆ部８８のメモリ制御シーケンサ１０４としてone-hotタイプの状態遷移回路１１０を備えたシーケンサが適用された構成となるように第１の構成情報が設定されている。また、第１の構成情報の中には、高速動作版のＩ／Ｆ回路８０のクロック発生回路９０が、入力Ｉ／Ｆ部８２に33ＭＨｚのクロック信号を供給し、プリンタ２６Ａとの情報伝送を行う出力Ｉ／Ｆ部８４に55ＭＨｚのクロック信号を供給し、プリンタ２６Ａとの情報伝送を行う出力Ｉ／Ｆ部８４及びＣＰＵ  Ｉ／Ｆ部８６に66ＭＨｚのクロック信号を供給し、メモリＩ／Ｆ部８８に120ＭＨｚのクロック信号を供給する構成となるように設定された情報（請求項３に記載の周波数規定情報に相当する情報）も含まれている。
【００５９】
一方、プリンタＩ／Ｆカード３０にプリンタ２６Ａのみが接続された場合、図８(Ｂ)に示すように、２個の出力Ｉ／Ｆ部８４のうちプリンタ２６Ｂと接続される出力Ｉ／Ｆ部８４（図８(Ｂ)に「出力ＢＩ／Ｆ部」と表記して示す出力Ｉ／Ｆ部８４）とプリンタ２６Ｂとの間の情報伝送が行われないので、各Ｉ／Ｆ部８２〜８６のうち当該出力Ｉ／Ｆ部８４を除いたＩ／Ｆ部におけるビットレートの合計値は5148Ｍbpsになる。このため、メモリＩ／Ｆ部８８とメモリ３８との間の情報伝送を64ビット幅で81ＭＨｚのクロック信号に同期して行うようにすれば伝送速度（ビットレート）が5184Ｍbpsとなり、上記の要求値を上回るので、メモリＩ／Ｆ部８８がＩ／Ｆ回路８０の処理速度のボトルネックとなることを回避できる。そして、上記の周波数81ＭＨｚはgrayタイプの状態遷移回路１１６の動作可能周波数帯域の上限よりも低い。
【００６０】
このため、低消費電力版のＩ／Ｆ回路８０では、メモリＩ／Ｆ部８８を含む全てのＩ／Ｆ部８２〜８８のシーケンサとしてgrayタイプの状態遷移回路１１６を備えたシーケンサが適用された構成となるように第２の構成情報が設定されている。また、第２の構成情報の中には、低消費電力版のＩ／Ｆ回路８０のクロック発生回路９０が、入力Ｉ／Ｆ部８２に33ＭＨｚのクロック信号を供給し、プリンタ２６Ａとの情報伝送を行う出力Ｉ／Ｆ部８４に55ＭＨｚのクロック信号を供給し、ＣＰＵ  Ｉ／Ｆ部８６に66ＭＨｚのクロック信号を供給し、メモリＩ／Ｆ部８８に81ＭＨｚのクロック信号を供給する構成となるように設定された情報（請求項３に記載の周波数規定情報に相当する情報）も含まれている。。
【００６１】
回路の消費電力は動作周波数におよそ比例するので、高速動作版のＩ／Ｆ回路８０に対し、低消費電力版のＩ／Ｆ回路８０におけるメモリＩ／Ｆ部８８の動作周波数が120ＭＨｚから81ＭＨｚに低下することで、高速動作版のＩ／Ｆ回路８０におけるメモリＩ／Ｆ部８８の消費電力を100％とすると、低消費電力版のＩ／Ｆ回路８０におけるメモリＩ／Ｆ部８８の消費電力は、
100×(81÷120)＝67.5％ 
に低下する。
【００６２】
また、高速動作版のＩ／Ｆ回路８０では、メモリＩ／Ｆ部８８のメモリ制御シーケンサ１０４としてone-hotタイプの状態遷移回路１１０を備えたシーケンサを適用しているのに対し、低消費電力版のＩ／Ｆ回路８０では、メモリＩ／Ｆ部８８のメモリ制御シーケンサ１０４としてgrayタイプの状態遷移回路１１６を備えたシーケンサを適用しており、one-hotタイプの状態遷移回路１１０では、内部状態を変更すべき事象が発生した際に、保持している１ビットの値が変更される保持回路１１２の数が常に２になるののに対し、grayタイプの状態遷移回路１１６では、内部状態を変更すべき事象が発生した際に、保持している１ビットの値が変更される保持回路１１２の数が常に１であり、スイッチング回数が１／２になるので、低消費電力版のＩ／Ｆ回路８０におけるメモリＩ／Ｆ部８８の消費電力は、上記のように動作周波数を低下させることに加えて、メモリ制御シーケンサ１０４を、grayタイプの状態遷移回路１１６を備えたシーケンサへ変更することで更に低減されることになる。
【００６３】
また、本実施形態に係る第１及び第２の構成情報は、ＦＰＧＡ４０に設けられている論理回路セル４６のうち、ＦＰＧＡ４０上に構成するＩ／Ｆ回路８０の一部を構成する個々の論理回路セル４６については、論理回路セル４６内のバッファ７６が入力されたクロック信号をＤ−ＦＦ６２の同期信号入力端へそのまま出力する第１状態となり、ＦＰＧＡ４０上にＩ／Ｆ回路８０を構成する際に使用しないそれ以外の論理回路セル４６については、論理回路セル４６内のバッファ７６が入力信号に拘わらず出力端をハイインピーダンスにする第２状態になるように設定されている。これにより、ＦＰＧＡ４０上に高速動作版及び低消費電力版の何れのＩ／Ｆ回路８０を構成した場合にも、使用しない論理回路セル４６内のＤ−ＦＦ６２へのクロック信号の供給が遮断されるので、高速動作版及び低消費電力版の何れのＩ／Ｆ回路８０についても消費電力が更に低減される。なお、第１及び第２の構成情報のうち、使用しない論理回路セル４６に対し、論理回路セル４６内のバッファ７６を第２状態に切り替える情報は、請求項８に記載の遮断制御情報に対応している。
【００６４】
ところで、上記のように、ＦＰＧＡ４０上に高速動作版のＩ／Ｆ回路８０を構成させるか低消費電力版のＩ／Ｆ回路８０を構成させるかを、プリンタＩ／Ｆカード３０を介してコンピュータ１０に接続されたプリンタ２６の台数に応じて切り替える場合、プリンタＩ／Ｆカード３０のＣＰＵ３４は、コンピュータ１０の電源が投入されて電力が供給されると、まずプリンタＩ／Ｆカード３０に接続されているプリンタ２６の台数を検知し、検知した台数が２台であればフラッシュＲＯＭ３６から第１の構成情報を読み出し、読み出した第１の構成情報をＦＰＧＡ４０に与えることで、ＦＰＧＡ４０上に高速動作版のＩ／Ｆ回路８０を構成させ、検知した台数が１台であればフラッシュＲＯＭ３６から第２の構成情報を読み出し、読み出した第２の構成情報をＦＰＧＡ４０に与えることで、ＦＰＧＡ４０上に低消費電力版のＩ／Ｆ回路８０を構成させる。このように、ＣＰＵ３４は本発明に係る再構成手段に対応している。これにより、プリンタＩ／Ｆカード３０に接続されているプリンタ２６の台数に応じて変化するＩ／Ｆ回路８０に対する要求性能に応じて、ＦＰＧＡ４０上に構成されるＩ／Ｆ回路８０の構成を切り替えることができる。
【００６５】
また、プリンタ２６とのインタフェースが、コンピュータ１０が稼働している状態で接続ケーブル４４の抜き差し（所謂ホットプラグ）が可能なインタフェースである場合は、プリンタＩ／Ｆカード３０に接続されているプリンタ２６の台数を検知し、前回検知した台数と比較する処理を周期的に行い、前回検知した台数と相違していた場合には、検知した最新の台数に対応する構成情報をフラッシュＲＯＭ３６から読み出し、読み出した構成情報をＦＰＧＡ４０に与えることで、プリンタＩ／Ｆカード３０に現在接続されているプリンタ２６の台数に対応するＩ／Ｆ回路８０をＦＰＧＡ４０上に構成させる処理を行うように、ＣＰＵ３４が実行するプログラムを構成すればよい。
【００６６】
なお、上記ではＦＰＧＡ４０上に高速動作版のＩ／Ｆ回路８０を構成させるか低消費電力版のＩ／Ｆ回路８０を構成させるかを、プリンタＩ／Ｆカード３０を介してコンピュータ１０に接続されたプリンタ２６の台数に応じて切り替える態様を説明したが、これに限定されるものではない。例えばプリンタＩ／Ｆカード３０とプリンタ２６との間の伝送速度（ビットレート）が、プリンタ２６に加わっている負荷の大きさ等に応じて切り替わる仕様となっていたり、ＰＣＩバス１６を介してプリンタＩ／Ｆカード３０に入力されるデータの実質的な転送レートがコンピュータ１０に加わっている負荷の大きさによって変化する等のように、プリンタＩ／Ｆカード３０（Ｉ／Ｆ回路８０）に対する要求性能は時々刻々変化する可能性があるので、プリンタＩ／Ｆカード３０（Ｉ／Ｆ回路８０）に対する要求性能を検知し、検知した要求性能に応じてＦＰＧＡ４０上に構成するＩ／Ｆ回路８０を切り替えるようにしてもよい。
【００６７】
また、ＦＰＧＡ等のプログラマブル論理デバイスでは、チップ上の個々の論理回路セル４６の間に設けられた個々の配線や個々の論理回路セル４６内の個々の配線毎に、容量や信号遅延に関する特性が相違している。このため、例えば図９に示すように容量が大きく信号遅延が小さい配線Ａと、容量が小さく信号遅延が大きい配線Ｂがプログラマブル論理デバイス上に存在していた場合に、プログラマブル論理デバイス上に構成する回路のうち、動作速度を重視した高速動作版の回路については配線Ａを使用することで動作速度を更に高速化し、消費電力を重視した低消費電力版の回路については配線Ｂを使用することで消費電力を更に抑制する等、個々の回路で重視される項目に適した特性を有する配線を用いて回路が構成されるように、個々の回路の構成情報を設定するようにしてもよい。これにより、回路構成自体は同一であっても個々の回路の性能（動作速度又は消費電力）を更に向上させることができる。
【００６８】
また、上記ではＦＰＧＡ４０上に高速動作版のＩ／Ｆ回路８０を構成させるための第１の構成情報と低消費電力版のＩ／Ｆ回路８０を構成させるための第２の構成情報をフラッシュＲＯＭ３６に記憶させた態様を説明したが、ＦＰＧＡ４０上に構成する回路の種類数（構成情報の種類数）は上記に限られるものではなく、より多数種類の構成情報を用意しておき、各構成情報に対応するより多数種の回路の中からＦＰＧＡ４０上に構成する回路の選択・切り替えを行うようにしてもよい。
【００６９】
また、上記ではプリンタＩ／Ｆカード３０に搭載したＦＰＧＡ４０上にＩ／Ｆ回路８０を構成する場合を例に説明したが、本発明を適用可能なプログラマブル論理デバイスはＦＰＧＡに限られるものではなく、例えば構成情報の記憶及び書替えが可能なフラッシュメモリが搭載されたＰＬＤ（具体的には、例えばアルテラ社製のＭＡＸＩＩ等）、或いはＤＡＰ／ＤＮＡ等のように、回路構成の再構成が可能なプログラマブル論理デバイスであれば本発明を適用可能である。また、プログラマブル論理デバイス上に構成する回路がＩ／Ｆ回路８０に限られるものではなく、またプログラマブル論理デバイスを含む本発明に係る電子回路がプリンタＩ／Ｆカード３０に搭載した回路に限られるものでもなく、本発明はプログラマブル論理デバイスを含む任意の構成の電子回路に適用可能であり、該電子回路の構成や該電子回路に対する要求性能に応じて、任意の構成の第１回路及び該第１回路よりもスイッチング回数が少なく動作可能なクロック信号の周波数帯域が低い任意の構成の第２回路をプログラマブル論理デバイス上に選択的に構成する場合に本発明を適用可能であることは言うまでもない。
【図面の簡単な説明】
【００７０】
【図１】本実施形態に係るコンピュータ及びプリンタＩ／Ｆカードの概略構成を示すブロック図である。
【図２】ＦＰＧＡのチップ上の概略構成を示す平面図である。
【図３】ＦＰＧＡの論理回路セルの構成の一例を示す回路図である。
【図４】(Ａ)〜(Ｃ)は図３の論理回路セルによって実現可能な論理回路の一例を示すブロック図である。
【図５】プリンタＩ／ＦカードのＦＰＧＡ上に構成される回路の一例を示すブロック図である。
【図６】(Ａ)〜(Ｄ)は図５の回路中の各Ｉ／Ｆ部の概略構成を示すブロック図である。
【図７】(Ａ)はシーケンサの状態遷移の一例を示す概念図、(Ｂ)はone-hotタイプ、(Ｃ)はgrayタイプのシーケンサの概略構成図及び各フリップフロップに保持されている値と内部状態との関係を示す図表である。
【図８】プリンタＩ／Ｆカードに、(Ａ)は２台のプリンタが接続された場合、(Ｂ)はプリンタが１台のみ接続された場合の要求性能の一例を説明するための説明図である。
【図９】特性の異なる配線を選択することによる回路の性能向上を説明するための概念図である。
【符号の説明】
【００７１】
３０  プリンタＩ／Ｆカード
３４  ＣＰＵ
３６  フラッシュＲＯＭ
３８  メモリ
４０  ＦＰＧＡ
４６  論理回路セル
４８  配線群
６２  Ｄ−ＦＦ
７６  バッファ
１１０  状態遷移回路
１１６  状態遷移回路
【図１】
2007180810.tif 000003
【図２】
2007180810.tif 000004
【図３】
2007180810.tif 000005
【図４】
2007180810.tif 000006
【図５】
2007180810.tif 000007
【図６】
2007180810.tif 000008
【図７】
2007180810.tif 000009
【図８】
2007180810.tif 000010
【図９】
2007180810.tif 000011