(57)【要約】      （修正有）【課題】  デバイスコントローラに関し、集積回路内部のフリップフロップ回路（ＦＦ）の使用量を少なく抑え、集積回路内部の内部リソースの有効活用を図る。【解決手段】  中央処理装置（ＣＰＵ）１−１からのアクセス要求に対して、デバイスコントローラ１−２の集積回路内部において、ＣＰＵインタフェース１−２１を介して中央処理装置（ＣＰＵ）１−１からのアクセス要求を受け取り、ブロックＲＡＭを用いたシーケンサ１−２２で、時系列的に順次変化する制御信号を生成出力し、該制御信号を制御対象のデバイス１−３に加えることにより、該制御対象のデバイス１−３を制御する。ブロックＲＡＭに書き込まれた各データが、１クロック毎に順次シーケンス波形データＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］として出力され、該シーケンス波形データＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］は、制御対象デバイス１−３に制御信号として入力される。【選択図】図１
2005025688.tif 000002
【特許請求の範囲】
【請求項１】
内部に一定量の組み合わせ回路、フリップフロップ回路及びランダムアクセスメモリを有する集積回路により構成され、外部デバイスに対してデバイス制御信号を出力するデバイスコントローラにおいて、
外部へ出力するデバイス制御信号のシーケンス波形データを、前記集積回路内のランダムアクセスメモリに書き込む手段と、デバイス制御信号のシーケンス波形データを該ランダムアクセスメモリから読み出して外部のデバイスへ出力する手段と、を備えたことを特徴とするデバイスコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスコントローラに関し、特に、電子機器の回路基板上に搭載され、該回路基板上のデバイスをコントロールするために使用される特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）又はプログラミングが可能な集積回路であるＦＰＧＡ（Field Programable Gate Array）等の集積回路によるデバイスコントローラに関する。
【背景技術】
【０００２】
ＦＰＧＡは、ユーザが購入後に内部に論理回路を書き込むことができるＰＬＤ（Programable Logic Device）と総称される集積回路の一種で、フリップフロップ回路（ＦＦ）などの記憶素子を含み、論理ゲートをアレイ状に敷き詰め、その間を結線で変更することにより何度でも機能を変更することができる集積回路で、比較的大規模の回路をユーザの手元でプログラムすることができ、規模の小さいものには、遅延の小さいＯＲ固定型アレイを採用したＰＡＬ（Programmable Array Logic）や、低消費電力で消去／再書き込み可能なＧＡＬ（Generic Array Logic）と称されるものがある。
【０００３】
プリント板等の回路基板上に実装されたデバイスを制御するためには、ＦＰＧＡ等の集積回路により構成されるデバイスコントローラによって、該デバイスへ出力する制御信号を逐次変化させることが求められる。このような制御信号を生成出力するために、ＦＰＧＡ等の集積回路でデバイスコントローラを実現するには、通常、集積回路内部のフリップフロップ回路（ＦＦ）と組み合わせ回路とにより構成されるシーケンサによって制御信号を操作し出力している。
【０００４】
図９は従来のデバイスコントローラの構成を示している。同図に示すように、中央処理装置（ＣＰＵ）９−１からのアクセス要求に対して、デバイスコントローラ９−２の集積回路内部において、ＣＰＵインタフェース９−２１を介して中央処理装置（ＣＰＵ）９−１からのアクセス要求を受け取り、組み合わせ回路及び順序回路により構成されるシーケンサ９−２２で、時系列的に順次変化する制御信号を生成出力し、該制御信号を制御対象のデバイス９−３に加えることにより、該制御対象のデバイス９−３を制御する。
【０００５】
本発明に関連する先行技術文献として、下記の特許文献１には、ＲＯＭに格納されたシーケンスをＲＡＭとタイマとにより制御する間欠動作制御装置が記載されている。また、特許文献２には、ＲＡＭを用いてシーケンスプログラム翻訳を行うプログラマブル・シーケンスコントローラのシーケンスプログラム翻訳方式が記載されている。また、特許文献３には、ビット演算処理をＮＡＮＤゲートをＲＡＭ化したプログラマブルロジックアレイ（ＰＬＡ）で行う高速プログラマブルコントロール装置が記載されている。
【特許文献１】特開昭５７−１３９８０８号公報
【特許文献２】特開昭５６−３６７０６号公報
【特許文献３】特開昭６２−５４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図９に示すデバイスコントローラ９−２において、シーケンサ９−２２を集積回路内部の組み合わせ回路とフリップフロップ回路（ＦＦ）の順序回路とにより構成した場合は、アクセス対象のデバイス毎に要求される複数の制御シーケンサを個別に用意しなければならず、集積回路内部のフリップフロップ回路（ＦＦ）を大量に使用することになる。その結果、集積回路を例えばＦＰＧＡで構成した場合、容量増大に伴う大幅なコストの増加を招くことになる。本発明は、集積回路内部のフリップフロップ回路（ＦＦ）の使用量を少なく抑えることができるデバイスコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のデバイスコントローラは、内部に一定量の組み合わせ回路、フリップフロップ回路及びランダムアクセスメモリを有する集積回路により構成され、外部デバイスに対してデバイス制御信号を出力するデバイスコントローラにおいて、外部へ出力するデバイス制御信号のシーケンス波形データを、前記集積回路内のランダムアクセスメモリに書き込む手段と、デバイス制御信号のシーケンス波形データを該ランダムアクセスメモリから読み出して外部のデバイスへ出力する手段と、を備えたものである。
【０００８】
このように、従来、フリップフロップ回路（ＦＦ）と組み合わせ回路とにより構成されていたシーケンサ部分を、本発明では、集積回路内部のブロックＲＡＭに置き換える。すなわち、シーケンサの機能を内部ブロックＲＡＭで実現する。そして、デバイス制御信号のシーケンス波形を集積回路内部のブロックＲＡＭのデータパターンで制御するために、ブロックＲＡＭ内に予め出力波形のシーケンスに対応したビットデータを書き込み、そのビットデータをブロックＲＡＭから読み出して出力することにより、該ピットバターンに対応して変化する制御信号のシーケンス波形を出力することができる。
【発明の効果】
【０００９】
本発明のデバイスコントローラは、シーケンサ部分を集積回路内部のブロックＲＡＭを用いてシーケンス波形を出力することにより、集積回路内部のフリップフロップ回路（ＦＦ）の使用量を少なく抑えることができ、組み合わせ回路やフリップフロップ回路（ＦＦ）の内部リソースを他の用途に有効活用することができる。
【００１０】
また、従来のＦＰＧＡ等によるデバイスコントローラでは、プログラムを効率的に動作させるために、プログラムを作成した後に該作成後のプログラムを合成、最適化する必要があったが、本発明ではＲＡＭの内容を書き換えるだけでよいので、プログラムの合成、最適化等が不要となり、シーケンス波形のタイムチャートに対応したＲＡＭのビットパターンによって即時に制御信号のシーケンス波形が生成可能であり、回路修復等の後の機能変更への追従が容易に可能となる。
【００１１】
また、集積回路内部の論理機能を変更する場合に、従来のデバイスコントローラでは、リコンフィグレーションを行う必要があり、その間、動作を停止させなければならなかったが、本発明は、ＲＡＭの内容を書き換えるだけでよいので、オンライン状態でシーケンス波形タイミングを変化させることも可能になる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明によるデバイスコントローラの構成を示す。同図に示すように、中央処理装置（ＣＰＵ）１−１からのアクセス要求に対して、デバイスコントローラ１−２の集積回路内部において、ＣＰＵインタフェース１−２１を介して中央処理装置（ＣＰＵ）１−１からのアクセス要求を受け取り、ブロックＲＡＭを用いたシーケンサ１−２２で、時系列的に順次変化する制御信号を生成出力し、該制御信号を制御対象のデバイス１−３に加えることにより、該制御対象のデバイス１−３を制御する。
【００１３】
図１において、
・ＤＩＮ［ｎ：０］は、ブロックＲＡＭへの初期データ書き込みに用いられるデータである。即ち、使用開始時に、中央処理装置（ＣＰＵ）１−１からブロックＲＡＭに対して、ＤＩＮ［ｎ：０］経由で制御対象デバイス１−３への出力波形シーケンスデータを書き込む。
・ＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］は、対象デバイス１−３への制御信号のシーケンス出力波形のデータである。即ち、ブロックＲＡＭからＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］経由で出力されるビットデータの変化により、制御対象デバイス１−３のシーケンス制御を行う。
・ＤＩＮ［ｎ：０］，ＤＯＵＴ［ｎ，０］のｎは、制御対象デバイス１−３の制御線数に依存する。
・ＡＤＤ［ｋ：０］は、ブロックＲＡＭに対して、シーケンスデータＤＩＮ［ｎ：０］及びＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］の書き込み及び読み出しをそれぞれ行うためのアドレスである。
・ＡＤＤ［ｋ：０］のｋは、シーケンス出力波形のステート数に依存し、値は、０，１，２，・・・と変化する。
・ＲＥＱＥＳＴＢ，ＩＮＳＴ、ＤＡＴＡはそれぞれ制御対象デバイス１−３内で使用される制御用信号である。
【００１４】
図２に本発明によるデバイスコントローラから出力される制御信号波形のシーケンスの例を示している。同図に示すように、ブロックＲＡＭに書き込まれた各データが、１クロック毎に順次シーケンス波形データＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］として出力され、該シーケンス波形データＤＯＵＴ［０］〜ＤＯＵＴ［ｎ］は、制御対象デバイス１−３に制御信号として入力される。即ち、ブロックＲＡＭのシーケンス出力データがそのまま制御信号として割り当てられる。
【００１５】
上記の構成において、デバイスコントローラ１−２に用いられるＦＰＧＡ等の集積回路内部に無条件に搭載されているブロックＲＡＭをシーケンサ１−２２に有効活用することにより、フリップフロップ回路（ＦＦ）の使用量を削減することができる。
【実施例１】
【００１６】
図３に本発明によるデバイスコントローラ（ＣＡＭＣＮＴブロック）の外部インタフェース接続の例を示す。同図に示すデバイスコントローラ（ＣＡＭＣＮＴブロック）は、ＣＰＵインタフェースからのアクセス要求（Ｒｅａｄ、Ｗｒｉｔｅ等）により、制御対象デバイス（ＣＡＭ）へアクセスする。なお、ＣＡＭはＬＡＮ製品などで使用され、ＩＰパケットを振る分ける際に、その振り分け先情報を格納しておくメモリ等などとして機能するものである。
【００１７】
図３に示すデバイスコントローラ（ＣＡＭＣＮＴブロック）の外部インタフェース信号の機能説明を図４の一覧表にして示す。該一覧表に示すように、ＰＣＩＣＬＫはＣＰＵインタフェースからのクロックである。ＳＹＳＣＬＫは本ブロックのシステムクロックである。ＣＡＭＣＬＫはＣＡＭへのシステムクロックである。ＸＲＳＴは全てのフリップフロップ回路（ＦＦ）をネゲート方向に初期化するリセット信号である。ＣＳは本ブロックへのアクセスが選択されていることを示し、１は選択あり、０は選択なしを表す。
【００１８】
ＷＲＤＮはアクセスがＷｒｉｔｅ（書き込み）であるかＲｅａｄ（読み出し）であるかを示し、１はＷｒｉｔｅ、０はＲｅａｄを表す。ＨＩＴはアクセスの開始タイミングを示し、１は開始、０はそれ以外を表す。ＣＯＭＰはアクセスの完了タイミングを示し、１は完了、０はそれ以外を表す。ＢＥ［３：０］はバイトイネーブルを示し、１は該当バイト有効、０は該当バイト無効を表す。
【００１９】
ＡＤＲ［３１：０］はアクセスアドレスである。ＤＡＴＡ＿ＩＮ［３１：０］はＷｒｉｔｅデータである。ＤＡＴＡ＿ＯＵＴ［３１：０］はＲｅａｄデータである。ＲＥＱＳＴＢはＣＡＭアクセス開始タイミングを示す。ＩＮＳＴ［２：０］はＩＰＣへの命令である。ＬＴＩＮ［２：０］はＬｏｏｋｕｐ  Ｔｙｐｅの指定を行う。ＳＥＧＳＥＬ［２：０］はＳｅｇｍｅｎｔの選択を行う。ＧＭＡＳＫ［５：０］はＧｌｏｂａｌ  Ｍａｓｋレジスタである。
【００２０】
ＣＲＢ［５：０］はレジスタ選択フィールドである。ＲＥＱ＿ＤＡＴＡ［７１：０］はＣＡＭへのアドレス／データバスである。ＲＤＡＣＫはＣＡＭからのリードデータ出力タイミングを示す。ＨＩＴＡＣＫはＩｎｄｅｘ信号出力タイミングを示す。ＶＡＬＩＤはＩｎｄｅｘ信号出力タイミングを示す。ＰＥＯＵＴ＿ｎはパリティエラーを通知する。
【００２１】
ＭＭＯＵＴ＿ｎはＭｕｌｔｉｐｌｅ  ｈｉｔ発生を通知する。ＡＤＲ［１６：０］はＥｎｃｏｄｅ  ｌｏｃａｔｉｏｎを通知する。ＡＤＲ  Ｕ／ＬはＲｅｓｕｌｔが７２ｂｉｔの上位／下位どちらにあるかを表示する。ＤＥＶＯＵＴ［２：０］は未使用である。ＬＴＯＵＴ［２：０］はＬｏｏｋｕｐ  Ｔｙｐｅを表示する。ＸＣＡＭ＿ＲＳＴはＣＡＭへのリセットを示す。ＰＨＡＳＥＮはＣＡＭＣＬＫを２分周して２７０°位相を進めたクロックを示す。
【００２２】
図５にデバイスコントローラ（ＣＡＭＣＮＴブロック）のＲＡＭデータの読み出しシーケンスのタイミングチャートを示す。また、図６にデバイスコントローラ（ＣＡＭＣＮＴブロック）のＲＡＭデータの書き込みシーケンスのタイミングチャートを示す。また、図７にデバイスコントローラ（ＣＡＭＣＮＴブロック）のＣＡＭ検索シーケンスのタイミングチャートを示す。図５乃至図７に示すように、デバイスコントローラ（ＣＡＭＣＮＴブロック）のシーケンサ部は、読み出しシーケンス、書き込みシーケンス及びＣＡＭ検索シーケンスでそれぞれ異なるシーケンス波形を出力する必要がある。
【００２３】
図８に従来のデバイスコントローラと本発明によるデバイスコントローラとの内部リソース使用量の比較を示す。同図において、「ＦＦ」はフリップフロップ回路を表し、「ＬＵＴ」はルックアップテーブルを表し、論理回路部分の構成要素である。また、「ブロックＲＡＭ」は１個当たり２５６×３２ビットの容量のものである。それぞれ、従来の場合及び本発明を適用した場合の個数を「従来の技術」及び「本発明」の欄に示し、合わせてＦＰＧＡ集積回路内の全体のＦＦ、ＬＴＵ及びブロックＲＡＭの素子数を「全体数」の欄に示している。
【００２４】
従来のフリップフロップ回路（ＦＦ）と組み合わせ回路とにより構成されていたシーケンサ回路に比べ、本発明を適用して３個のブロックＲＡＭを使用することにより、従来では２，７８８個の内部フリップフロップ回路（ＦＦ）を使用したが、本発明では７７６個の使用で済み、使用量を約２７．８％に削減することができる。また、ＬＵＴは、従来では２，９０７個を使用したが、本発明では８２７個の使用で済み、使用量を約２８．４％に削減することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明によるデバイスコントローラの構成を示す図である。
【図２】本発明によるデバイスコントローラから出力される制御信号波形のシーケンスの例を示す図である。
【図３】本発明によるデバイスコントローラ（ＣＡＭＣＮＴブロック）の外部インタフェース接続の例を示す図である。
【図４】デバイスコントローラ（ＣＡＭＣＮＴブロック）の外部インタフェース信号の機能説明の一覧表を示す図である。
【図５】デバイスコントローラ（ＣＡＭＣＮＴブロック）のＲＡＭデータの読み出しシーケンスのタイミングチャートを示す図である。
【図６】デバイスコントローラ（ＣＡＭＣＮＴブロック）のＲＡＭデータの書き込みシーケンスのタイミングチャートを示す図である。
【図７】デバイスコントローラ（ＣＡＭＣＮＴブロック）のＣＡＭ検索シーケンスのタイミングチャートを示す図である。
【図８】従来技術と本発明のデバイスコントローラの内部リソース使用量の比較を示す図である。
【図９】従来のデバイスコントローラの構成を示す図である。
【符号の説明】
【００２６】
１−１  中央処理装置（ＣＰＵ）
１−２  デバイスコントローラ
１−２１  ＣＰＵインタフェース
１−２２  シーケンサ
１−３  制御対象デバイス
【図１】
2005025688.tif 000003
【図２】
2005025688.tif 000004
【図３】
2005025688.tif 000005
【図４】
2005025688.tif 000006
【図５】
2005025688.tif 000007
【図６】
2005025688.tif 000008
【図７】
2005025688.tif 000009
【図８】
2005025688.tif 000010
【図９】
2005025688.tif 000011