(57)【要約】【課題】複数の機能ブロックに対して設定データを高速に供給することができる集積回路を提供する。【解決手段】ホストコンピュータ２００からの要求に応じて、機能ブロック１０３〜１０５に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック１０２において実行され、機能ブロック１０３〜１０５では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック１０２より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路１００の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ２００からスタート信号ＳＴＡを与えるだけで自動的に実行される。これにより、ホストインターフェース部１０１で生じる遅延時間が削減されるため、機能ブロックに対する設定データの供給処理を高速化することができる。【選択図】      図１
2004362176.tif 000002
【特許請求の範囲】
【請求項１】
与えられる設定データに応じた所定の処理を実行する複数の機能ブロックを有する集積回路であって、
上位装置からの要求に応じて、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理を実行するシーケンス制御ブロックを有する、
集積回路。
【請求項２】
上記シーケンス制御ブロックは、上記シーケンス処理の第１のステップにおいて、上記機能ブロックから出力されるデータを読み出し、上記シーケンス処理の第２のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成する、
請求項１に記載の集積回路。
【請求項３】
上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記読み出しデータを上記上位装置に出力する、
請求項２に記載の集積回路。
【請求項４】
上記シーケンス制御ブロックは、上記シーケンス処理の第３のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、次に実行すべき上記シーケンス処理のステップを決定する、
請求項２に記載の集積回路。
【請求項５】
上記シーケンス制御ブロックは、上記シーケンス処理の第４のステップにおいて、上記機能ブロックから所定の割り込み信号が出力されるまでの間、次のステップへの移行を停止する、
請求項１に記載の集積回路。
【請求項６】
上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力する、
請求項１に記載の集積回路。
【請求項７】
上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記シーケンス処理を終了する、
請求項１に記載の集積回路。
【請求項８】
上記シーケンス制御ブロックは、
上記上位装置からスタート信号が与えられた場合に計数を開始する計数手段と、
上記計数手段の計数値に応じた命令コードを生成する命令コード生成手段と、
上記命令コードに応じた上記設定データを生成する設定データ生成手段と、を含む、
請求項１に記載の集積回路。
【請求項９】
上記設定データ生成手段は、上記命令コード生成手段において第１の命令コードが生成された場合、上記機能ブロックから出力されるデータを読み出すための設定データを生成し、上記命令コード生成手段において第２の命令コードが生成された場合、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成する、
請求項８に記載の集積回路。
【請求項１０】
上記シーケンス制御ブロックは、
上記機能ブロックからの読み出しデータを格納し、上記上位装置からの要求に応じて、格納した上記読み出しデータを上記上位装置に出力するレジスタを有する、
請求項９に記載の集積回路。
【請求項１１】
上記計数手段は、上記命令コード生成手段において第３の命令コードが生成された場合、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて計数値を更新する、
請求項９に記載の集積回路。
【請求項１２】
上記計数手段は、上記命令コード生成手段において第４の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記機能ブロックから所定の割り込み信号が出力された場合に計数動作を再開する、
請求項８に記載の集積回路。
【請求項１３】
上記設定データ生成手段は、上記命令コード生成手段において第５の命令コードが生成された場合、複数の設定データを順次生成し、当該設定データの生成後に確認応答信号を出力し、
上記計数手段は、上記命令コード生成手段において第５の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合に計数動作を再開する、
請求項８に記載の集積回路。
【請求項１４】
上記設定データ生成手段は、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力する、
請求項８に記載の集積回路。
【請求項１５】
上記計数手段は、上位装置からの要求に応じて、計数動作を停止するとともにその計数値を初期化する、
請求項８に記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、それぞれ所定の処理を実行する複数の機能ブロックを有する集積回路に関するものである。
【０００２】
【従来の技術】
半導体製造技術の進展とともに、集積回路の集積度は年々向上を続けている。こうした集積度の向上によって、従来は幾つかのＩＣチップによって構成されていた装置の機能を、ＩＣチップ上の１つの機能ブロックによって実現することが可能になってきた。
【０００３】
図１５は、そのような機能ブロックを複数有する集積回路の一般的な構成の一例を示すブロック図である。
図１５に示す集積回路１は、ホストコンピュータ６との間で通信を行うためのホストインターフェース部２と、それぞれ所定の処理を実行する３つの機能ブロック（３〜５）を有している。
【０００４】
機能ブロック３〜５は、それぞれ通信部と処理部を有している。
通信部は、ホストインターフェース部２を介し、ホストコンピュータ６との間でデータをやり取りする処理を行う。ホストコンピュータ６から機能ブロック３〜５に対して与えるデータは、機能ブロックにおける処理の進行やその内容を設定するためのデータあり、ここではこれを設定データと称することにする。設定データには、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなどが含まれる。
処理部は、通信部において得られるこうした設定データに応じて、所定の処理を実行する。その処理の過程で用いられるデータや生成されるデータは、例えば図１５に示すように、異なる機能ブロックの処理部の間で互いにやり取りされる。また、処理の進行状況や処理結果など、処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどが処理部から通信部へ送られ、通信部からホストインターフェース部２を介し、ホストコンピュータ６へ送信される。
【０００５】
一方、特許文献１の図１には、上述のホストコンピュータに相当するＣＰＵ（１０）と、複数の機能ブロック（２１〜２３）を有するＡＳＩＣ（２０）と、このＡＳＩＣ（２０）の各機能ブロックに設けられているレジスタの設定内容を更新するためのレジスタ更新情報が格納されたＳＤＲＡＭ（３０）とを有した、レジスタ更新システムが開示されている。
ＳＤＲＡＭ（３０）に格納されたレジスタ更新情報は、機能ブロック（２３）の制御によるＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）転送によって順次読み出され、機能ブロック（２１）のレジスタ更新情報バッファ（２１ｃ）に格納される。レジスタ更新情報バッファ（２１ｃ）に格納されたレジスタ更新情報は、機能ブロック（２１）によって順次読み出され、これに応じて各レジスタの内容が更新される。
【０００６】
【特許文献１】
特開２００２−２７８８２９号公報
【０００７】
【発明が解決しようとする課題】
図１５に示すシステムでは、機能ブロック３〜５に与えられる設定データを全てホストコンピュータ６が生成しており、実質的に、ホストコンピュータ６が各機能ブロックを個別に制御している。したがって、ある機能ブロックに処理を実行させるためには、必ずホストインターフェース部２経由で当該機能ブロックに設定データを与えなくてはならず、その度に、ホストインターフェース部２において数クロックの余計な遅延時間が発生する。同様な遅延時間は、機能ブロックのデータをホストコンピュータ６が読み出す際にも発生する。したがって、機能ブロックに設定データを送信する回数が増えると、これに比例して遅延時間が長くなる。こうした遅延時間は、特に、複数の機能ブロックへ大量の設定データを送信する必要がある大規模な集積回路において処理速度を低下させる大きな原因となる。
【０００８】
また、図１５に示す集積回路では、機能ブロックの通信部の間におけるデータの転送に、ホストコンピュータ６の仲介が必要となる。例えば図１６に示すように、機能ブロック５の通信部から機能ブロック３の通信部へデータを転送する場合、先ず機能ブロック３の通信部からホストインターフェース部２を介してホストコンピュータ６にデータを読み出し（Ｔａ，Ｔｂ）、この読み出したデータをホストコンピュータ６からホストインターフェース部２経由で機能ブロック３の通信部に送信しなくてはならない（Ｔｃ，Ｔｄ）。このような場合、ホストインターフェース部２において２重の遅延時間が発生することになる。したがって、こうしたデータの転送回数が多くなると、システムの処理速度が大幅に低下してしまうという不利益がある。
こうした不利益を回避するために、例えば、ホストコンピュータ６経由ではなく、機能ブロック間で直接データをやり取りする方法も考えられる。しかしながら、この方法では、ブロック間通信を行うための通信部を新たに設計する必要がある。特に、ＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）として入手された機能ブロックでは、その詳細な仕様が不明であることが多いため、新たな回路を付加することが困難であり、こうした方法を採用することができない。
【０００９】
これに対し、特許文献１に記載されるレジスタ更新システムによると、ＡＳＩＣ（２０）の各機能ブロックが有するレジスタは、図１５に示すシステムのように、ＣＰＵ（１０）によってその設定内容が直接更新されるのではなく、ＡＳＩＣ内部に設けられた機能ブロック（２１）によって設定内容が更新される。また、更新対象のレジスタのアドレスとその更新内容を指示するレジスタ更新情報は、ＤＭＡ転送によって外部のＳＤＲＡＭ（３０）からＡＳＩＣ内部のレジスタ更新情報バッファ（２１ｃ）へ転送される。これにより、ＣＰＵ（１０）が１つ１つのレジスタにアクセスして設定内容を更新する方法に比べて、ＣＰＵ（１０）の処理負担を軽減することができる。
【００１０】
しかしながら、このレジスタ更新システムでは、ＤＭＡ転送が行われる期間においてバスが使用できなくなるため、ＣＰＵ（２０）においてバスを利用した処理がある場合には、ＤＭＡ転送が終了するまでこれを待たせなくてはならない。こうした処理の待ち時間の存在は、高速な処理を必要とするシステムにとって、無視できない処理速度の低下を招くという不利益がある。
【００１１】
また、特許文献１に記載されるレジスタ更新システムでは、あるレジスタに格納されたデータを他のレジスタへ転送するための手段がＡＳＩＣ内部に設けられていない。このため、レジスタ間でデータを転送する場合には、図１５に示すシステムと同様に、レジスタのデータをＣＰＵ（２０）に一旦読み出して、これを別のレジスタへ書き込むという処理が必要になり、処理速度の低下を免れることができない。
【００１２】
本発明はかかる事情に鑑みてなされたものであり、その目的は、機能ブロックに対する設定データの供給処理をより高速化することができる集積回路を提供することにある。
また、本発明の他の目的は、ある機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる集積回路を提供することにある。
【００１３】
【課題を解決するための手段】
本発明の集積回路は、与えられる設定データに応じた所定の処理を実行する複数の機能ブロックを有する集積回路であって、上位装置からの要求に応じて、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理を実行するシーケンス制御ブロックを有する。
【００１４】
本発明によれば、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理が、上位装置からの要求に応じて、上記シーケンス制御ブロックにより実行される。すなわち、上記シーケンス処理において上記機能ブロックに与えられる設定データは、上記上位装置ではなく、上記シーケンス制御ブロックにおいて生成される。このため、上記上位装置から上記機能ブロックに直接設定データを与える方法に比べて、設定データの供給が高速化される。
【００１５】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第１のステップにおいて、上記機能ブロックから出力されるデータを読み出し、上記シーケンス処理の第２のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成しても良い。
これにより、上記シーケンス制御ブロックにおいて生成される設定データに、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方が反映される。
【００１６】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記読み出しデータを上記上位装置に出力しても良い。
これにより、上記機能ブロックから出力されるデータが、上記上位装置からの要求に応じて、上記上位装置に出力される。
【００１７】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第３のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、次に実行すべき上記シーケンス処理のステップを決定しても良い。
これにより、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、例えば、これらのデータの一方または両方が所定の条件を満たすか否かに応じて、上記シーケンス処理の流れが変更される。
【００１８】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第４のステップにおいて、上記機能ブロックから所定の割り込み信号が出力されるまでの間、次のステップへの移行を停止しても良い。
これにより、上記機能ブロックの状態に応じて、シーケンス処理の進行が停止される。
【００１９】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力しても良い。
これにより、上記機能ブロックに供給する設定データが、上記シーケンス制御ブロックではなく、上記上位装置において生成される。
【００２０】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記シーケンス処理を終了しても良い。
これにより、上記シーケンス処理の開始と終了が、上記上位装置によって制御される。
【００２１】
また、上記シーケンス制御ブロックは、上記上位装置からスタート信号が与えられた場合に計数を開始する計数手段と、上記計数手段の計数値に応じた命令コードを生成する命令コード生成手段と、上記命令コードに応じた上記設定データを生成する設定データ生成手段とを含んでも良い。
上記の構成によれば、上記計数手段において、上記上位装置からスタート信号が与えられることにより計数が開始されると、当該計数値に応じた命令コードが上記命令コード生成手段において生成される。上記設定データ生成手段では、上記命令コードに応じた上記設定データが生成される。
【００２２】
また、上記設定データ生成手段および上記計数手段は、次のように動作しても良い。
すなわち、上記設定データ生成手段は、上記命令コード生成手段において第５の命令コードが生成された場合、複数の設定データを順次生成し、当該設定データの生成後に確認応答信号を出力する。
上記計数手段は、上記命令コード生成手段において第５の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合に計数動作を再開する。
【００２３】
上記の動作によれば、上記命令コード生成手段において第５の命令コードが生成されると、上記計数手段の計数動作が停止されるとともに、上記設定データ生成手段において複数の設定データが順次生成される。上記設定データ生成手段では、上記複数の設定データの生成後に上記確認応答信号が出力される。一方、上記計数手段では、計数動作の停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合、計数動作が再開される。
【００２４】
【発明の実施の形態】
以下、本発明の２つの実施形態について、図面を参照して説明する。
【００２５】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る集積回路の構成の一例を示すブロック図である。
図１に示す集積回路１００は、ホストインターフェース部１０１と、シーケンス制御ブロック１０２と、機能ブロック１０３，１０４および１０５とを有する。
【００２６】
［ホストインターフェース部１０１］
ホストインターフェース部１０１は、ホストコンピュータ６とシーケンス制御部１０２との間で通信を行うためのインターフェース処理を行う。
【００２７】
［機能ブロック１０３〜１０５］
機能ブロック１０３〜１０５は、シーケンス制御ブロック１０２から与えられる設定データに応じた所定の処理を実行する。設定データは、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなど、機能ブロックにおける処理の進行やその内容を設定するためのデータある。
【００２８】
この機能ブロック１０３〜１０５は、図１の例において、通信部（１０３−１〜１０５−１）と処理部（１０３−２〜１０５−２）を有している。
【００２９】
（通信部１０３−１〜１０５−１）
通信部１０３−１〜１０５−１は、シーケンス制御ブロック１０２との間でデータ（Ｒ２〜Ｒ４）をやり取りする処理を行う。すなわち、シーケンス制御ブロック１０２から与えられた設定データを処理部（１０３−２〜１０５−２）に渡す処理や、処理部（１０３−２〜１０５−２）から出力されるデータをシーケンス制御ブロック１０２に渡す処理を行う。
この通信部１０３−１〜１０５−１は、例えば、１つまたは複数のレジスタと、アクセス対象のレジスタを選択するためのアドレスデコーダを有している。シーケンス制御ブロック１０２から出力されるアドレスに応じて、アドレスデコーダによりアクセス対象のレジスタが選択されると、この選択されたレジスタに対して、シーケンス制御ブロック１０２によるデータの書き込みまたは読み出しが実行される。
【００３０】
（処理部１０３−２〜１０５−２）
処理部１０３−２〜１０５−２は、通信部において得られる設定データに応じて、所定の処理を実行する。そして、処理の進行状況や処理結果などの処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどを通信部（１０３−１〜１０５−１）へ出力する。
なお、処理部１０３−２〜１０５−２において処理の過程で用いられるデータや生成されるデータは、例えば図１に示すように（Ｄ１〜Ｄ３）、異なる機能ブロックの間において、通信部１０３−１〜１０５−１を介さずに直接やり取りさせても良い。
【００３１】
［シーケンス制御ブロック１０２］
シーケンス制御ブロック１０２は、ホストコンピュータ２００からの要求に応じて、機能ブロック１０３〜１０５に与える一連の設定データを順に生成する所定のシーケンス処理を実行する。
【００３２】
このシーケンス制御ブロック１０２は、図１の例において、通信部５０と制御部８０を有している。
【００３３】
（通信部５０）
通信部５０は、ホストインターフェース部１０１を介してホストコンピュータ２００との間でデータをやり取りする処理を行う。すなわち、ホストインターフェース部１０１を介してホストコンピュータ２００から与えられる設定データを制御部８０に渡す処理や、制御部８０から出力されるデータをホストインターフェース部１０１経由でホストコンピュータ２００に渡す処理を行う。
この通信部５０は、例えば上述した通信部１０３−１〜１０５−１と同様に、１つまたは複数のレジスタとアドレスデコーダを有している。ホストコンピュータ２００から出力されるアドレスに応じて、特定のレジスタがアクセス対象として選択されると、これに対して、ホストコンピュータ２００によるデータの書き込みまたは読み出しが実行される。
【００３４】
（制御部８０）
制御部８０は、機能ブロック１０３〜１０５に与える一連の設定データを順に生成する所定のシーケンス処理を行う。
制御部８０は、例えば、シーケンスの開始を指示する図示しないスタート信号ＳＴＡがホストコンピュータ２００より出力された場合や、シーケンス開始を指示するホストコンピュータ２００からの設定データが通信部５０において取得された場合に、シーケンス処理を開始する。
【００３５】
図２は、シーケンス制御ブロック１０２の制御部８０から各機能ブロックに設定データが出力される様子を図解した図である。
図２に示すように、ホストコンピュータ２００からシーケンス制御ブロック１０２に対してシーケンス開始の指示が与えられると（Ｔ１，Ｔ２）、制御部８０は、所定のシーケンス処理に基づいて設定データ（Ｔ３〜Ｔ５）を生成し、これを設定対象の機能ブロック１０３〜１０５に与える。
【００３６】
また、制御部８０は、上述したシーケンス処理の過程において、機能ブロックの通信部（１０３−１〜１０５−１）からデータを読み出すためのステップ（読み出しステップ）を有している。そして、シーケンス処理の別のステップにおいて、この機能ブロックから読み出したデータ、または、通信部８０において取得されるホストコンピュータ２００からの設定データの少なくとも一方に基づいて、機能ブロック１０３〜１０５に与える設定データを生成する。
【００３７】
例えば図３に示すように、機能ブロックから読み出したデータを、他の機能ブロックに設定データとしてそのまま与える。図３の例では、機能ブロック１０４から読み出したデータを、ホストコンピュータ２００まで戻すことなく、機能ブロック１０５へ設定データとして転送している。
また、読み出したデータをそのまま転送するだけでなく、例えば、ある機能ブロックから読み出したデータに応じて、その機能ブロックまたは別の機能ブロックに与える設定データを生成しても良い。
あるいは、ホストコンピュータ２００からシーケンス制御ブロック１０２に対して、シーケンス処理の制御に係わる情報（例えばシステムの動作モードなどを指示する情報）が設定データとして与えられた場合に、こうした情報と機能ブロックから読み出したデータとに応じて、機能ブロックに与える設定データを生成しても良い。
【００３８】
さらに、制御部８０は、読み出しステップにおいて機能ブロックから読み出されたデータを、通信部５０へ出力する。
これにより、機能ブロックから読み出されたデータは、ホストコンピュータ２００からの読み出し要求に応じて、通信部５０からホストコンピュータ２００に出力される。
【００３９】
また、制御部８０は、上記したシーケンス処理の過程において、条件分岐を行うステップ（条件分岐ステップ）を有する。この条件分岐ステップにおいては、読み出しステップで機能ブロックから読み出したデータ、または、通信部８０において取得されるホストコンピュータ２００からの設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定する。
【００４０】
さらにまた、制御部８０は、ホストコンピュータ２００からの要求に応じて、ホストコンピュータ２００において生成される設定データをその設定対象の機能ブロックへ出力する。すなわち、図４に示すように、制御部８０が生成する設定データ（図２のＴ３〜Ｔ５）の替わりに、ホストコンピュータ２００が生成する設定データ（図４のＴ９〜Ｔ１１）をそのまま各機能ブロックに与える。
【００４１】
次に、上述した集積回路１００の更に詳細な構成について、図５および図６を参照して説明する。
【００４２】
図５は、集積回路１００の詳細な構成の一例を示すブロック図である。
図１と図５の同一符号は同一の構成要素を示している。
【００４３】
図５の例において、シーケンス制御ブロック１０２は、ホストインターフェース部１０１を介して、ホストコンピュータ２００から４つの信号（ＷＤ１，ＡＤ１，ＷＥ１，ＲＥ１）を入力するとともに、ホストコンピュータ２００へ１つの信号（ＲＤ１）を出力する。
書き込みデータＷＤ１は、シーケンス制御ブロック１０２や機能ブロック１０３〜１０５の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータＲＤ１は、シーケンス制御ブロック１０２や機能ブロック１０３〜１０５の通信部からホストコンピュータ２００へ出力されるデータである。
アドレスＡＤ１は、ホストコンピュータ２００によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号ＷＥ１は、ホストコンピュータ２００によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスＡＤ１で指定されるレジスタに書き込みデータＷＤ１が書き込まれる。
読み出しイネーブル信号ＲＥ１は、ホストコンピュータ２００によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスＡＤ１で指定されるレジスタから読み出しデータＲＤ１が読み出される。
以降の説明では、シーケンス制御ブロック１０２に入力されるこの４つの信号（ＷＤ１，ＡＤ１，ＷＥ１，ＲＥ１）を、設定データＳＤ１と称することにする。
【００４４】
また、図５の例において、シーケンス制御ブロック１０２は、ホストインターフェース部１０１を介さずに、ホストコンピュータ２００からスタート信号ＳＴＡを入力する。
スタート信号ＳＴＡは、シーケンス制御ブロック１０２におけるシーケンス処理を開始させるための信号である。
【００４５】
さらに、図５の例において、シーケンス制御ブロック１０２は、機能ブロック１０３〜１０５へ４つの共通な信号（ＷＤ２，ＡＤ２，ＷＥ２，ＲＥ２）を出力するとともに、機能ブロック１０３〜１０５から１つの共通な信号（ＲＤ２）を入力する。
書き込みデータＷＤ２は、機能ブロック１０３〜１０５の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータＲＤ２は、機能ブロック１０３〜１０５の通信部からシーケンス制御ブロック１０２へ出力されるデータである。
アドレスＡＤ２は、シーケンス制御ブロック１０２またはホストコンピュータ２００によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号ＷＥ２は、シーケンス制御ブロック１０２またはホストコンピュータ２００によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスＡＤ２で指定されるレジスタへ書き込みデータＷＤ２が書き込まれる。
読み出しイネーブル信号ＲＥ２は、シーケンス制御ブロック１０２またはホストコンピュータ２００によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスＡＤ２で指定されるレジスタから読み出しデータＲＤ２が読み出される。
以降の説明では、シーケンス制御ブロック１０２から出力されるこの４つの信号（ＷＤ２，ＡＤ２，ＷＥ２，ＲＥ２）を、設定データＳＤ２と称することにする。
【００４６】
また、図５の例において、機能ブロック１０３の処理部１０３−２は、ＣＣＤ等の撮像装置に与える不図示の制御信号を生成するとともに、撮像装置から入力される３原色のカラー画像データＩｍ１を、輝度信号とクロマ信号とからなる画像データＩｍ２に変換する処理を行う。
機能ブロック１０４の処理部１０４−２は、機能ブロック１０３から出力される画像データＩｍ２に画素数変換処理を施し、所望の画面サイズの画像データＩｍ３を生成する。
機能ブロック１０５の処理部１０５−２は、機能ブロック１０４から出力される画像データＩｍ３に例えばＪＰＥＧ方式やＭＰＥＧ方式などの画像データ符号化処理を施し、符号化画像データＩｍ４として出力する。
【００４７】
図６は、シーケンス制御ブロック１０２の詳細な構成の一例を示すブロック図である。図１および図５と図６の同一符号は同一の構成要素を示す。
【００４８】
図６に示すシーケンス制御ブロック１０２は、カウンタ１０と、命令コード生成部２０と、設定データ生成部３０と、カウンタ制御部４０と、通信部５０と、セレクタ６０とを有する。
カウンタ１０およびカウンタ制御部４０を含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部２０は、本発明の命令コード生成手段の一実施形態である。
設定データ生成部３０およびセレクタ６０を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【００４９】
｛カウンタ１０｝
カウンタ１０は、ホストコンピュータ２００からシーケンス処理の開始を指示するスタート信号ＳＴＡが与えられた場合に計数を開始する。
例えば、計数開始時の計数値ＰＣは‘０’であり、図示しないクロック信号のパルスが入力される度に、カウンタ１０は計数値ＰＣを‘１’ずつインクリメントする。また、計数値ＰＣがシーケンスの最終ステップに対応する‘ＦＦ’（１６進数）に達した場合、計数動作を停止し、再びスタート信号ＳＴＡが与えられた場合に、計数値を‘０’に初期化して、計数動作を開始する。
【００５０】
また、カウンタ１０は、後述するカウンタ制御部４０から計数値ＰＣの更新を指示する制御信号Ｃｓｅｔが入力された場合、この制御信号Ｃｓｅｔに応じて計数値Ｐｃを更新する。
【００５１】
｛命令コード生成部２０｝
命令コード生成部２０は、カウンタ１０の計数値ＰＣに応じた命令コードＣＣを生成する。
図７は、カウンタ１０の計数値ＰＣ（１６進数）に対応する命令コード生成部２０の命令コードＣＣ（２進数）の一例を示す図である。図７の例では、８ビットの計数値（‘０’〜‘ＦＦ’）に対応した６ビットの命令コードＣＣが生成される。
図７における計数値‘Ａ’、‘Ｆ９’、‘ＦＣ’に対応した命令コードは、上述した条件分岐ステップの命令コードである。この命令コードが生成されると、命令コードごとに設定された分岐条件が成立した場合に、後述するカウンタ制御部４０によって計数値ＰＣが変更される。
【００５２】
また、図８は、命令コード生成部２０のＲＴＬ（ｒｅｇｉｓｔｅｒ  ｔｒａｎｓｆｅｒ  ｌｅｖｅｌ）回路記述の一例を示す図である。図８の記述例において、入力信号ｃｎｔ＿ｎｕｍは計数値ＰＣに対応し、回路の出力信号ｆｕｎｃ＿ｃｏｄｅ＿ｄｅｃは命令コードＣＣに対応する。
図８の行番号Ｌ３〜Ｌ１３に示すように、計数値ＰＣと命令コードＣＣとの対応関係は、ＲＴＬ記述言語のＣＡＳＥ文を用いて記述することが可能である。シーケンス処理の流れは、この計数値ＰＣと命令コードＣＣとの対応関係によって決定されるため、設計の終了後に処理の流れを変更する必要が生じた場合でも、このＣＡＳＥ文を修正するのみで変更に対応することが可能であり、回路の修正や変更に伴う設計作業の負担を軽減することができる。
【００５３】
｛設定データ生成部３０｝
設定データ生成部３０は、命令コード生成部２０において生成される命令コードＣＣに応じた４つの信号（ＷＤ３，ＡＤ３，ＷＥ３，ＲＥ３）を生成する。
書き込みデータＷＤ３、アドレスＡＤ３、書き込みイネーブル信号ＷＥ３、および読み出しイネーブル信号ＲＥ３は、それぞれ、上述した書き込みデータＷＤ２、アドレスＡＤ２、書き込みイネーブル信号ＷＥ２、および読み出しイネーブル信号ＲＥ２に対応する信号である。
すなわち、書き込みデータＷＤ３は、機能ブロック１０３〜１０５の通信部に入力され、そのレジスタに書き込まれるデータである。
アドレスＡＤ３は、シーケンス制御ブロック１０２によるアクセスの対象となるレジスタを指定するアドレスである。
書き込みイネーブル信号ＷＥ３は、シーケンス制御ブロック１０２によるレジスタへの書き込みを有効にする信号である。
読み出しイネーブル信号ＲＥ３は、シーケンス制御ブロック１０２によるレジスタからのデータの読み出しを有効にする信号である。
読み出しデータＲＤ２は、機能ブロック１０３〜１０５の通信部からシーケンス制御ブロック１０２へ出力されるデータである。
以降の説明では、設定データ生成部３０から出力されるこの４つの信号（ＷＤ３，ＡＤ３，ＷＥ３，ＲＥ３）を、設定データＳＤ３と称することにする。
【００５４】
図９は、命令コードＣＣに対応する各ブロックの設定内容の例を示す図である。
図９の例では、命令コードＣＣの上位２ビットにおいて設定対象の機能ブロック（１０３〜１０５）が指示され、下位４ビットにおいてアクセスの内容（書き込みまたは読み出し）が指示される。
すなわち、上位２ビットが‘００’の場合、全機能ブロックが設定対象となり、初期化処理などが行なわれる。また、上位２ビットが‘０１’、‘１０’、‘１１’の場合、それぞれ機能ブロック１０３、１０４、１０５が設定対象となる。
下位４ビットにおいて書き込みアクセスが指示された場合、設定データ生成部３０は、書き込み先のレジスタのアドレスＡＤ３とその書き込みデータＷＤ３を生成し、書き込みイネーブル信号ＷＥ３をアクティブ状態、読み出しイネーブル信号ＲＥ３を非アクティブ状態に設定する。
また、下位４ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスＡＤ３を生成し、書き込みイネーブル信号ＷＥ３を非アクティブ状態、読み出しイネーブル信号ＲＥ３をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータＲＤ２が、読み出しレジスタ５２に格納される。
【００５５】
また、設定データ生成部３０は、所定の値の命令コードＣＣが生成された場合に、通信レジスタ５１や読み出しレジスタに格納されているデータ（ＤＡ１、ＤＡ２）に応じて、設定データＳＤ３を生成する。
例えば、読み出しレジスタ５２に格納されているある機能ブロックからの読み出しデータを、書き込みデータＷＤ３として別の機能ブロックのレジスタに出力する設定データＳＤ３を生成する。これにより、ある機能ブロックのレジスタに格納されたデータを別の機能ブロックのレジスタにそのまま転送することができる。
また、読み出したデータをそのまま転送するだけでなく、例えば、読み出しレジスタ５２に格納されているある機能ブロックの読み出したデータに応じて、その機能ブロックや別の機能ブロックに出力する設定データＳＤ３を生成しても良い。
あるいは、通信レジスタ５１に格納されているホストコンピュータ２００からのデータと、読み出しレジスタ５２に格納されている機能ブロックからの読み出したデータとに応じて、設定データＳＤ３を生成しても良い。
【００５６】
｛カウンタ制御部４０｝
カウンタ制御部４０は、命令コード生成部２０において生成される命令コードＣＣが条件分岐の命令コードである場合、通信レジスタ５１や読み出しレジスタに格納されているデータ（ＤＡ１、ＤＡ２）に応じて、カウンタ１０の計数値ＰＣの更新を指示する制御信号Ｃｓｅｔを出力する。例えば、読み出しレジスタに格納されている読み出しデータが所定の値を持つか否かに応じて、カウンタ１０の新しい計数値ＰＣを決定し、この決定した計数値への更新を指示する制御信号Ｃｓｅｔを出力する。
【００５７】
｛通信部５０｝
図６の例において、通信部５０は、通信レジスタ５１および読み出しレジスタ５２を有する。
通信レジスタ５１は、ホストコンピュータ２００からのアドレスＡＤ１が通信レジスタ５１を指示するアドレスであり、かつ、書き込みイネーブル信号ＷＥ１がアクティブ状態の場合、書き込みデータＷＤ１を格納する。
読み出しレジスタ５２は、ホストコンピュータ２００からのアドレスＡＤ１が読み出しレジスタ５２を指示するアドレスであり、かつ読み出しイネーブル信号ＲＥ１がアクティブ状態の場合、格納したデータを読み出しデータＲＤ１としてホストコンピュータ２００に出力する。
【００５８】
｛セレクタ６０｝
セレクタ６０は、通信レジスタ５１に格納されるデータＤＡ１に応じて、ホストコンピュータ２００からの設定データＳＤ１、または、設定データ生成部３０からの設定データＳＤ３の何れか一方を選択し、選択したデータを、シーケンス制御ブロック１０２の設定データＳＤ２として出力する。
すなわち、ホストコンピュータ２００によって通信レジスタ５１にデータＤＡ１が書き込まれると、このデータＤＡ１に応じて、設定データＳＤ１または設定データＳＤ３の何れか一方が選択され、機能ブロック１０３〜１０５に出力される。設定データＳＤ１が設定データＳＤ２として出力される場合、機能ブロック１０３〜１０５は、ホストコンピュータ２００によって直接制御されることになる。
【００５９】
ここで、上述した構成を有する図１および図５に示す集積回路１００の動作を説明する。
【００６０】
図１０は、シーケンス制御ブロック１０２において実行されるシーケンス処理の一例を示す図である。
【００６１】
シーケンス制御ブロック１０２によりシーケンス処理が実行される動作モード（以降、第１の動作モードと呼ぶ）においては、先ず、ホストコンピュータ２００から、セレクタ６０において設定データＳＤ３を選択するように指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納される。これにより、設定データ生成部３０の設定データＳＤ３がセレクタ６０において選択され、設定データＳＤ２としてシーケンス制御ブロック１０２から出力される状態となる。
【００６２】
次いで、ホストコンピュータ２００からシーケンス処理の開始を指示するスタート信号ＳＴＡが出力され、カウンタ１０において、初期値‘０’から計数動作が開始される。
計数値ＰＣがインクリメントされて‘１’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部２０において生成され、これに応じた設定データＳＤ３が設定データ生成部３０において生成されて、セレクタ６０を介し各機能ブロックに出力される。各機能ブロックでは、この設定データＳＤ３に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値ＰＣが‘２’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データＳＤ３が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値ＰＣが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データＳＤ３が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データＳＤ３に応じた所定の処理が実行される。
【００６３】
例えば、計数値ＰＣが‘２０’の場合において、機能ブロック１０３のレジスタからの読み出しを指示する命令コードＣＣが生成されると、設定データ生成部３０では、機能ブロック１０３のレジスタを指定するアドレスＡＤ３が生成されるとともに、読み出しイネーブル信号ＲＥ３がアクティブ状態に設定される。これにより、機能ブロック１０３のレジスタに格納されたデータが読み出しデータＲＤ２として出力され、読み出しレジスタ５２に格納される。
次いで、計数値ＰＣがインクリメントによって‘２１’となり、この計数値に応じて、機能ブロック１０４のレジスタへ読み出しレジスタ５２の格納データＤＡ２を書き込むことを指示する命令コードＣＣが生成されると、設定データ生成部３０では、機能ブロック１０４のレジスタを指定するアドレスＡＤ３が生成され、書き込みイネーブル信号ＷＥ３がアクティブ状態に設定される。更に、書き込みデータＷＤ３として、読み出しレジスタ５２の格納データＤＡ２と等しいデータが出力される。これにより、読み出しレジスタ５２の格納データＤＡ２が、機能ブロック１０４のレジスタへ書き込まれる。
このような２つの処理ステップによって、機能ブロック１０３のレジスタに格納されているデータが、機能ブロック１０４のレジスタへ転送される。
【００６４】
また、例えば、計数値ＰＣが‘Ｆ９’の場合に、読み出しレジスタ５２の格納データＤＡ２が‘２０’と一致することを条件として計数値ＰＣを‘Ｄ８’に更新することを指示する条件分岐の命令コードが生成されると、カウンタ制御部４０では、読み出しレジスタ５２に格納されたデータＤＡ２が‘２０’と等しいか否かの判定が行なわれる。この判定の結果、データＤＡ２が‘２０’と等しい場合には、計数値ＰＣを‘Ｄ８’に設定する制御信号Ｃｓｅｔがカウンタ制御部４０において生成される。これにより、次のステップにおいて、カウンタ１０の計数値ＰＣが‘Ｆ９’から‘Ｄ８’へ更新され、シーケンスの流れが変更される。また、上述した判定の結果、データＤＡ２が‘２０’と等しくない場合には、計数値ＰＣの更新が行なわれないため、次のステップにおいて、計数値ＰＣは‘Ｆ９’から‘ＦＡ’へ通常どおりにインクリメントされる。
【００６５】
こうしたシーケンス処理が順に実行され、計数値ＰＣが‘ＦＦ’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データＳＤ３が出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ１０の計数動作が停止される。
【００６６】
一方、ホストコンピュータ２００から各機能ブロックに対して設定データＳＤ１が直接与えられる動作モード（以降、第２の動作モードと呼ぶ）においては、ホストコンピュータ２００から、セレクタ６０において設定データＳＤ１を選択するように指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納される。これにより、ホストコンピュータ２００の設定データＳＤ１がセレクタ６０において選択され、設定データＳＤ２としてシーケンス制御ブロック１０２より各機能ブロックに出力される状態となる。
【００６７】
以上説明したように、本実施形態に係る集積回路１００によれば、ホストコンピュータ２００からの要求に応じて、機能ブロック１０３〜１０５に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック１０２において実行され、機能ブロック１０３〜１０５では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック１０２より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路１００の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ２００からスタート信号ＳＴＡを与えるだけで自動的に実行される。
したがって、内部の機能ブロックにおいて処理を実行させるために外部のホストコンピュータから設定データを逐一与えなくてはならない図１５に示すような集積回路に比べて、ホストインターフェース部で生じる遅延時間を大幅に削減できるため、機能ブロックに対する設定データの供給処理を高速化することができる。
また、各機能ブロックに設定データを与える一連の処理からホストコンピュータ２００を開放することができるため、ホストコンピュータ２００の処理負担を大きく軽減することができる。
さらに、ホストコンピュータ２００のプログラムを簡易化することができるため、その設計作業の負担を軽減することができる。
【００６８】
また、シーケンス処理の実行時において、特許文献１に記載のＡＳＩＣのように、外部の記憶装置から内部のバッファへ設定データを転送する必要がないため、外部のバスを占有することがない。したがって、このような集積回路を用いる場合に比べて、システム全体の処理速度を高速化することができる。
【００６９】
しかも、シーケンス制御ブロック１０２におけるシーケンス処理の全体の流れは、ＲＴＬ回路記述において図８に示すようにＣＡＳＥ文を用いて記述することが可能である。このため、設計の過程においてシーケンス処理に変更が生じた場合でも、回路の至るところの記述を修正する必要はなく、このＣＡＳＥ文の修正のみで容易に設計変更に対応することができる。したがって、設計作業の負担を一層軽減することができる。
【００７０】
また、集積回路１００によれば、シーケンス処理のあるステップにおいて、機能ブロックから出力されるデータをシーケンス制御ブロック１０２の読み出しレジスタ５２に格納し、シーケンス処理の別のステップにおいて、この格納した読み出したデータを設定データとして他の機能ブロックに与えることができる。すなわち、外部のホストコンピュータを経由することなく、集積回路の内部において機能ブロック間のデータの転送を行うことができる。したがって、図１５に示す集積回路や特許文献１のＡＳＩＣに比べて、機能ブロック間のデータ転送処理を高速化することができる。
加えて、シーケンス制御ブロック１０２は、機能ブロックから読み出したデータをそのまま転送するだけでなく、機能ブロックからの読み出しデータ、またはホストコンピュータ２００から与えられる設定データの少なくとも一方に応じて、設定データを生成することができる。したがって、様々な条件に応じた設定データを生成することができるため、ホストコンピュータ２００に負担を与えることなく、より多様なシーケンス処理を実行することができる。
【００７１】
また、機能ブロック間のデータ転送が集積回路内部で行われることから、各機能ブロックに特別な通信回路を設ける必要がない。したがって、ＩＰとして入手された機能ブロックが含まれる集積回路にも、本実施形態は適用可能である。
【００７２】
さらに、集積回路１００によれば、上記したシーケンス処理の過程において、条件分岐ステップを設けることができる。すなわち、この条件分岐ステップにおいて、機能ブロックからの読み出しデータ、または、ホストコンピュータ２００から与えら得る設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定することができる。したがって、ホストコンピュータ２００に負担を与えることなく、更に多様なシーケンス処理を実行することができる。
【００７３】
また、集積回路１００は、機能ブロックの制御に関する動作モードとして、第１の動作モードまたは第２の動作モードを有する。第１の動作モードでは、シーケンス制御ブロック１０２において上述した所定のシーケンス処理が実行される。第２の動作モードでは、ホストコンピュータ２００において生成された設定データＳＤ１がその設定対象の機能ブロックへ出力される。すなわち、ホストコンピュータ２００によって各機能ブロックが直接制御される。
このように、シーケンス制御ブロック１０２において全てのシーケンス処理を実行させることも、また、各機能ブロックの制御にホストコンピュータ２００を直接関与させることも可能になるため、機能ブロックの制御に関する設計の自由度が高くなり、設計の簡易化を図ることができる。また、シーケンス制御ブロック１０２とホストコンピュータ２００とが機能ブロックの制御に係わる度合いを、処理速度や回路規模などの条件に応じて適切に設定することが可能になる。
【００７４】
＜第２の実施形態＞
図１１は、本発明の第２の実施形態に係る集積回路１００Ａにおける、シーケンス制御ブロック１０２Ａの構成の一例を示すブロック図である。
【００７５】
本実施形態に係る集積回路１００Ａは、例えば図５に示すシーケンス制御ブロック１０２が図１１に示すシーケンス制御ブロック１０２Ａに置き換えられるとともに、機能ブロックが更に１つ加わる（機能ブロック１０６）。すなわち、機能ブロックが４つになる。
【００７６】
新たに加わる機能ブロック１０６は、機能ブロック１０３〜１０５と同様に、処理部と通信部を有する。これらの動作は既に述べたものと同一であるので、ここでは説明を省略する。
【００７７】
シーケンス制御ブロック１０２Ａは、図１１の例において、カウンタ１０Ａと、命令コード生成部２０Ａと、第１設定データ生成部３１〜第４設定データ生成部３４と、カウンタ制御部４０Ａと、通信部５０と、セレクタ６１および６２と、ＯＲ回路７０とを有する。
カウンタ１０Ａおよびカウンタ制御部４０Ａを含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部２０は、本発明の命令コード生成手段の一実施形態である。
第１設定データ生成部３１〜第４設定データ生成部３４、ＯＲ回路７０、セレクタ６１および６２を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【００７８】
ここで、シーケンス制御ブロック１０２Ａの各構成について詳しく説明する。ただし、通信部５０については、図６における同一符号の構成要素と同じであるため、ここでは説明を省略する。
【００７９】
｛カウンタ１０Ａ｝
カウンタ１０Ａは、カウンタ制御部４０Ａから出力される、シーケンス処理の開始または終了を指示する信号ＳＳに応じて、計数動作を開始または終了する。
例えば、計数開始時の計数値ＰＣＡは‘０’であり、シーケンス処理の開始を指示する信号ＳＳが入力された場合に、計数値ＰＣＡを‘１’ずつインクリメントする動作を開始する。また、計数値ＰＣＡがシーケンスの最終ステップに対応する‘１ＦＦ’（１６進数）に達した場合、計数動作を停止し、再びシーケンス処理の開始を指示する信号ＳＳが入力された場合、計数値を‘０’に初期化して、計数動作を開始する。
また、計数動作の途中でシーケンス処理の終了を指示する信号ＳＳが入力された場合には、計数動作を停止するとともに、その計数値ＰＣＡを‘０’に初期化する。
【００８０】
また、カウンタ１０Ａは、カウンタ制御部４０から出力される計数イネーブル信号Ｃｅｎがアクティブ状態の場合に計数動作を実行し、計数イネーブル信号Ｃｅｎが非アクティブ状態の場合に計数動作を停止する。
【００８１】
さらに、カウンタ１０Ａは、カウンタ制御部４０から計数値ＰＣＡの更新を指示する制御信号Ｃｓｅｔが入力された場合、この制御信号Ｃｓｅｔに応じて計数値ＰＣＡを更新する。この動作は、カウンタ１０と同様である。
【００８２】
｛命令コード生成部２０Ａ｝
命令コード生成部２０Ａは、カウンタ１０Ａの計数値ＰＣＡに応じた命令コードＣＣＡを生成する。
図１２は、カウンタ１０Ａの計数値ＰＣＡ（１６進数）に対応する命令コード生成部２０Ａの命令コードＣＣＡ（２進数）の一例を示す図である。
図１２の例では、９ビットの計数値（‘０’〜‘１ＦＦ’）に対応した８ビットの命令コードＣＣＡが生成される。
【００８３】
図１２における計数値‘Ａ’、‘１Ｆ９’、‘１ＦＣ’に対応した命令コードは、既に述べたものと同様な、条件分岐ステップの命令コードである。
また、計数値‘５’に対応した命令コードは、後述するアクノリッジ信号待ちステップの命令コードである。
計数値‘９’、‘１ＦＢ’に対応した命令コードは、後述する割込み信号待ちステップの命令コードである。
【００８４】
｛セレクタ６１｝
セレクタ６１は、命令コード生成部２０Ａにおいて生成される命令コードＣＣＡに応じて、第１設定データ生成部３１〜第４設定データ生成部３４の何れか１つを選択的に起動させるブロック選択信号Ｂｓｅｌを生成し、命令コードＣＣＡとともに、第１設定データ生成部３１〜第４設定データ生成部３４に出力する。
【００８５】
図１３は、命令コードＣＣＡに対応する各ブロックの設定内容の例を示す図である。
図１３の例において、命令コードＣＣＡの上位１ビットは、アクノリッジ信号待ちステップ、または割込み信号待ちステップの何れかの場合において‘１’となり、他の命令コードでは‘０’となる。
また、その次の中間３ビットは、設定対象の機能ブロック（１０３〜１０６）を指示する。
下位４ビットは、アクセスの内容（書き込みまたは読み出し）を指示する。
【００８６】
図１３の例によると、命令コードＣＣＡの中間３ビットが‘０００’または‘００１’の場合、全機能ブロックが設定対象となり、機能ブロックの初期化処理などが行なわれる。この場合、セレクタ６１は、全機能ブロックに対する設定信号を生成するブロックとして、第１設定データ生成部３１を起動させる。
また、中間３ビットが‘０１０’の場合、機能ブロック１０３が設定対象となる。この場合、セレクタ６１は、機能ブロック１０３に対する設定信号を生成するブロックとして、第１設定データ生成部３１を起動させる。なお、第１設定データ生成部３１は、全機能ブロックに対する設定信号を生成するブロックも兼用している。
中間３ビットが‘０１１’の場合、機能ブロック１０４が設定対象となる。この場合、セレクタ６１は、機能ブロック１０４に対する設定信号を生成するブロックとして、例えば第２設定データ生成部３２を起動させる。
中間３ビットが‘１００’または‘１０１’の場合、機能ブロック１０５が設定対象となる。この場合、セレクタ６１は、機能ブロック１０５に対する設定信号を生成するブロックとして、第３設定データ生成部３３を起動させる。
中間３ビットが‘１１０’または‘１１１’の場合、機能ブロック１０６が設定対象となる。この場合、セレクタ６１は、機能ブロック１０６に対する設定信号を生成するブロックとして、第４設定データ生成部３４を起動させる。
【００８７】
｛第１設定データ生成部３１〜第４設定データ生成部３４｝
第１設定データ生成部３１〜第４設定データ生成部３４は、セレクタ６１のブロック選択信号Ｂｓｅｌに応じて起動し、その起動状態において、それぞれ機能ブロック１０３〜１０６に与える設定データＳＤ３−１〜ＳＤ３−４を生成する。
ただし、上述したように、第１設定データ生成部３１については、例えば機能ブロックの初期化処理などにおいて必要となる、全機能ブロックに対する設定信号の生成も行う。
【００８８】
第１設定データ生成部３１〜第４設定データ生成部３４における設定データの生成動作の一部は、既に述べた設定データ生成部３０と同様である。
すなわち、第１設定データ生成部３１〜第４設定データ生成部３４は、命令コード生成部２０Ａの命令コードＣＣＡに応じて、書き込みデータ、アドレス、書き込みイネーブル信号、および読み出しイネーブル信号の４信号を含んだ、設定データ（ＳＤ３−１〜ＳＤ３−４）をそれぞれ生成する。
命令コードＣＣＡの下位４ビットにおいて書き込みアクセスが指示された場合、書き込み先のレジスタのアドレスとその書き込みデータを生成し、書き込みイネーブル信号をアクティブ状態、読み出しイネーブル信号を非アクティブ状態に設定する。
命令コードＣＣＡの下位４ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスを生成し、書き込みイネーブル信号を非アクティブ状態、読み出しイネーブル信号をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータが、読み出しレジスタ５２に格納される。
設定データの生成を指示する所定の命令コードＣＣが入力された場合は、通信レジスタ５１や読み出しレジスタに格納されているデータ（ＤＡ１、ＤＡ２）に応じて、その設定データを生成する。これにより、例えば、既に述べた機能ブロック間のデータ転送処理が可能になる。
【００８９】
また、第１設定データ生成部３１〜第４設定データ生成部３４は、設定データ生成部３０とは異なる動作として、アクノリッジ信号ＡＣＫ１〜ＡＣＫ４を生成する。
すなわち、第１設定データ生成部３１〜第４設定データ生成部３４は、命令コード生成部２０Ａにおいて生成される命令コードＣＣＡが、アクノリッジ信号待ちステップを指示する所定の命令コードである場合、複数の設定データを順次生成する。例えば、機能ブロック１０４から８つの画素データを順に読み出して、これを機能ブロック１０５に転送するといった処理を、複数の設定データを順次生成することによって実行する。
そして、この一連の設定データを出力し終えたところで、アクノリッジ信号（ＡＣＫ１〜ＡＣＫ４）をアクティブ状態に設定する。これにより、１つの命令コードＣＣＡによって複数の設定データを生成することが可能になる。
【００９０】
｛セレクタ６２｝
セレクタ６２は、通信レジスタ５１に格納されるデータＤＡ１および命令コードＣＣＡに応じて、設定データＳＤ１、設定データＳＤ３−１，…，設定データＳＤ３ー４の何れかを選択し、選択したデータを、シーケンス制御ブロック１０２Ａの設定データＳＤ２Ａとして出力する。
すなわち、ホストコンピュータ２００によって通信レジスタ５１にデータＤＡ１が書き込まれると、このデータＤＡ１に応じて、設定データＳＤ１を選択するか否かが決定される。設定データＳＤ１が選択される場合、集積回路１００Ａの動作モードは、ホストコンピュータ２００によって機能ブロックの制御が行われる第２の動作モードとなる。
また、設定データＳＤ１が選択されない場合には、命令コードＣＣＡに応じて、設定データＳＤ３−１〜ＳＤ３ー４の何れかが選択される。この場合、集積回路１００Ａの動作モードは、シーケンス制御ブロック１０２Ａによって機能ブロックの制御が行われる第１の動作モードとなる。
【００９１】
｛カウンタ制御部４０Ａ｝
カウンタ制御部４０Ａは、命令コード生成部２０Ａにおいて生成される命令コードＣＣＡが条件分岐の命令コードである場合、通信レジスタ５１や読み出しレジスタに格納されているデータ（ＤＡ１、ＤＡ２）に応じて、カウンタ１０Ａの計数値ＰＣＡの更新を指示する制御信号Ｃｓｅｔを出力する。この動作は、既に述べたカウンタ制御部４０と同様である。
【００９２】
また、カウンタ制御部４０Ａは、アクノリッジ信号待ちステップの命令コードが命令コード生成部２０Ａにおいて生成された場合、計数動作を停止する。これにより、次のステップへの移行が停止する。そして、この計数動作の停止後、ＯＲ回路７０から出力されるアクノリッジ信号ＡＣＫがアクティブ状態へ変化する場合に、計数動作を再開する。
【００９３】
さらに、カウンタ制御部４０Ａは、割り込み信号待ちステップの命令コードが命令コード生成部２０Ａにおいて生成された場合、同様に計数動作を停止する。そして、この計数動作の停止後、命令コードにおいて指定される機能ブロックから所定の割り込み信号が出力された場合に、計数動作を再開する。
【００９４】
｛ＯＲ回路７０｝
ＯＲ回路７０は、第１設定データ生成部３１〜第４設定データ生成部３４において生成されるアクノリッジ信号ＡＣＫ１〜ＡＣＫ４を入力し、何れか１つの信号がアクティブ状態の場合にアクティブとなり、全てが非アクティブ状態の場合に非アクティブとなるアクノリッジ信号ＡＣＫを出力する。
【００９５】
ここで、上述した構成を有する集積回路１００Ａの動作を説明する。
【００９６】
図１４は、シーケンス制御ブロック１０２Ａにおいて実行されるシーケンス処理の一例を示す図である。
【００９７】
第１の動作モードにおいては、先ず、ホストコンピュータ２００から、セレクタ６２において設定データＳＤ３−１〜ＳＤ３−４の何れかを選択するように指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納される。これにより、第１設定データ生成部３１〜第４設定データ生成部３４の設定データがシーケンス制御ブロック１０２Ａから出力され得る状態となる。
【００９８】
次いで、ホストコンピュータ２００からシーケンス処理の開始を指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納されると、カウンタ制御部４０Ａから計数動作の開始を指示する信号ＳＳが出力され、これにより、カウンタ１０Ａにおいて初期値‘０’から計数動作が開始される。
計数値ＰＣＡがインクリメントされて‘１’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部２０Ａにおいて生成され、これに応じた設定データＳＤ３−１が第１設定データ生成部３１において生成されて、セレクタ６２を介し各機能ブロックに出力される。各機能ブロックでは、この設定データＳＤ３−１に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値ＰＣＡが‘２’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データＳＤ３−１が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値ＰＣＡが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データＳＤ３−ｎ（ｎは１から４までの整数を示す）が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データＳＤ３−ｎに応じた所定の処理が実行される。
【００９９】
例えば、計数値ＰＣＡが‘５’の場合において、アクノリッジ信号待ちステップを指示する命令コードＣＣＡが生成されると、カウンタ制御部４０Ａによって計数イネーブル信号Ｃｅｎが非アクティブ状態に設定され、カウンタ１０Ａの計数動作が停止される。また、この命令コードＣＣＡが指示する設定データ生成部、例えば第２設定データ生成部３２において、機能ブロック１０４やその他の機能ブロックに対する一連の設定データＳＤ３−２が順次生成される。これらの設定データＳＤ３−２が全て出力されたところで、第２設定データ生成部３２からアクティブ状態のアクノリッジ信号ＡＣＫ２が出力される。これに応じて、カウンタ制御部４０Ａの計数イネーブル信号Ｃｅｎがアクティブ状態となり、カウンタ１０Ａの計数が再開される。
このように、アクノリッジ信号待ちステップでは、１つの命令コードで複数の設定データが生成される。
【０１００】
また、例えば、計数値ＰＣＡが‘１０Ｃ’の場合において、割り込み信号待ちステップを指示する命令コードＣＣＡが生成されると、カウンタ制御部４０Ａによって計数イネーブル信号Ｃｅｎが非アクティブ状態に設定され、カウンタ１０Ａの計数動作が停止される。この停止状態において、命令コードＣＣＡが指示する機能ブロック、例えば機能ブロック１０６について、その所定の割り込み信号が出力されているか否かの検出が行われる。そして、この割り込み信号が出力された場合に、カウンタ制御部４０Ａの計数イネーブル信号Ｃｅｎがアクティブ状態となり、カウンタ１０Ａの計数が再開される。
このように、割り込み信号待ちステップでは、ある機能ブロックから割り込み信号が出力されるまでの間、シーケンス処理が停止される。
【０１０１】
その他、機能ブロックからのデータの読み出し動作、通信部５０のレジスタ格納データ（ＤＡ１、ＤＡ２）に応じた設定データ（ＳＤ３−１〜ＳＤ３−４）の生成動作、条件分岐ステップの動作については、上述したシーケンス制御ブロック１０２と同様である。
【０１０２】
こうしたシーケンス処理が順に実行され、計数値ＰＣＡが‘１ＦＦ’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データＳＤ３−１が第１設定データ生成部３１から出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ１０Ａの計数動作が停止される。
【０１０３】
また、こうしたシーケンス処理の途中で、ホストコンピュータ２００からシーケンスの終了を指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納されると、カウンタ制御部４０からシーケンスの終了を指示する信号ＳＳが出力され、カウンタ１０Ａの計数動作が停止される。この場合、カウンタ１０Ａの計数値ＰＣＡは終了値‘１ＦＦ’に移動される。
【０１０４】
第２の動作モードにおいては、ホストコンピュータ２００から、セレクタ６２において設定データＳＤ１を選択するように指示する設定データＳＤ１が出力され、その書き込みデータＷＤ１が通信レジスタ５１に格納される。これにより、ホストコンピュータ２００の設定データＳＤ１がセレクタ６２において選択され、設定データＳＤ２Ａとしてシーケンス制御ブロック１０２より各機能ブロックに出力される状態となる。
【０１０５】
以上説明したように、本実施形態に係る集積回路１００Ａによれば、集積回路１００と同様な動作により同等な効果を奏することが可能であるとともに、次に述べるような効果を奏することができる。
【０１０６】
すなわち、集積回路１００Ａによれば、命令コード生成部２０Ａにおいてアクノリッジ信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部４０Ａにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ１０Ａの計数動作が停止される。また、設定データ生成部（３１〜３４）では、複数の設定データが順次生成される。そして、この設定データの生成が終了すると、設定データ生成部（３１〜３４）によってアクノリッジ信号（ＡＣＫ１〜ＡＣＫ４）がアクティブ状態に設定され、ＯＲ回路７０のアクノリッジ信号ＡＣＫがアクティブ状態になる。アクノリッジ信号ＡＣＫがアクティブ状態になると、カウンタ制御部４０Ａにおいて計数イネーブル信号がアクティブ状態となり、カウンタ１０Ａの計数動作が再開される。
このように、アクノリッジ信号待ちステップにおいて、１つの命令コードから複数の設定データを生成することが可能になる。したがって、より少ない命令コードで、多様なシーケンス処理を行うことができ、命令コード生成部の回路規模を小さくすることが可能になる。
【０１０７】
また、集積回路１００Ａによれば、命令コード生成部２０Ａにおいて割り込み信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部４０Ａにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ１０Ａの計数動作が停止される。そして、この計数動作の停止後に、機能ブロックから所定の割り込み信号が出力された場合、カウンタ制御部４０Ａにおいて計数イネーブル信号がアクティブ状態に設定され、カウンタ１０Ａの計数動作が再開される。
このように、割り込み信号待ちステップにおいて、機能ブロックからの割り込み信号が出力されるまでシーケンス処理を停止させることが可能になる。したがって、機能ブロックからの割り込み信号を待ってから処理を進めることが必要な場合でも、ホストコンピュータ２００の関与が不要になり、より効率的で高速な処理を行うことができる。
【０１０８】
また、条件分岐ステップに加えて、アクノリッジ信号待ちステップや割り込み信号待ちステップなどをシーケンスに設けることが可能になるため、これらの組み合わせにより、多様なシーケンス処理を実現することが可能になる。
【０１０９】
例えば、図１４の計数値‘８’において、機能ブロック１０３により所定の処理が開始され、続く計数値‘９’において、この処理の終了を示す機能ブロック１０３からの割り込み信号待ち状態となる。機能ブロック１０３において処理が終了し、その終了を知らせる割り込み信号が出力されると、カウンタ１０Ａの計数動作が再開され、計数値が‘９’から‘Ａ’へインクリメントされる。計数値‘Ａ’においては、機能ブロック１０３の通信部１０３−１からそのステータスを示すデータが読み出されて、読み出しレジスタ５２に格納される。計数値‘Ｂ’においては、読み出しレジスタ５２に格納されたデータＤＡ２が所定の条件を満たすか否かの判定が行われ、この判定結果に応じて、次に処理すべきステップが決定され、これに応じて、カウンタ１０Ａの計数値ＰＣＡが更新される。
このような処理ステップの組み合わせにより、各機能ブロックの処理結果が正常か否かの判断をシーケンス制御ブロック１０２Ａにおいて行うことが可能になる。すなわち、シーケンス制御ブロック１０２Ａにおいて、集積回路全体のステータスを把握することが可能になる。したがって、ホストコンピュータ２００は、シーケンス制御ブロック１０２Ａの通信部にアクセスするだけの簡単な処理で、集積回路全体のステータスを把握することができるため、ホストコンピュータ２００における集積回路のステータス管理を簡易化することができる。
【０１１０】
また、集積回路１００Ａによれば、ホストコンピュータ２００の要求に応じてシーケンス処理を終了させることができるため、シーケンス処理が終了しなくなるといった異常な状態を、ホストコンピュータ２００からの制御によって容易に解消することができる。
【０１１１】
また、集積回路１００Ａによれば、集積回路１００におけるスタート信号ＳＴＡのような特別な信号線を有しておらず、シーケンス制御ブロック１０２Ａとホストコンピュータ２００との通信がホストインターフェース部１０１を介して行われる。このため、信号ピンの数を減らすことが可能になる。
【０１１２】
なお、本発明は上述した実施形態に限定されない。
たとえば、上述した実施形態において示した種々の数値（機能ブロックの数、信号のビット幅、信号値など）は何れも説明上の一例に過ぎず、本発明はこれに限定されるものではない。
【０１１３】
また、上述した実施形態では、集積回路内における各機能ブロックが、データ線、アドレス線、書き込みイネーブル線、読み出しイネーブル線等を有するバスによって通信を行う例が示されているが、機能ブロック間の通信方式はこれに限定されず、他の種々の通信方式（例えばシリアル信号によるパケット方式など）を用いることも可能である。
【０１１４】
【発明の効果】
本発明の集積回路によれば、機能ブロックに対する設定データの供給処理をより高速化することができる。
また、機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る集積回路の構成の一例を示すブロック図である。
【図２】シーケンス制御ブロックの制御部から各機能ブロックに設定データが与えられる様子を図解した図である。
【図３】機能ブロック間においてデータが転送される様子を図解した図である。
【図４】ホストコンピュータからシーケンス制御ブロックを介して各機能ブロックに設定データが供給される様子を図解した図である。
【図５】第１の実施形態に係る集積回路の詳細な構成の一例を示すブロック図である。
【図６】第１の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図７】図６に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図８】命令コード生成部のＲＴＬ回路記述の一例を示す図である。
【図９】図６に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図１０】図６に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図１１】本発明の第２の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図１２】図１１に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図１３】図１１に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図１４】図１１に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図１５】複数の機能ブロックを有する集積回路の一般的な構成の一例を示すブロック図である。
【図１６】図１５に示す集積回路における、機能ブロック間のデータ転送処理の様子を図解した図である。
【符号の説明】
１０，１０Ａ…カウンタ、２０，２０Ａ…命令コード生成部、３０，３１〜３４…設定データ生成部、４０，４０Ａ…カウンタ制御部、５０…通信部、５１…通信レジスタ、５２…読み出しレジスタ、６０，６１，６２…セレクタ、７０…ＯＲ回路、８０…制御部、１００，１００Ａ…集積回路、１０１…ホストインターフェース部、１０２，１０２Ａ…シーケンス制御ブロック、１０３〜１０６…機能ブロック、２００…ホストコンピュータ
【図１】
2004362176.tif 000003
【図２】
2004362176.tif 000004
【図３】
2004362176.tif 000005
【図４】
2004362176.tif 000006
【図５】
2004362176.tif 000007
【図６】
2004362176.tif 000008
【図７】
2004362176.tif 000009
【図８】
2004362176.tif 000010
【図９】
2004362176.tif 000011
【図１０】
2004362176.tif 000012
【図１１】
2004362176.tif 000013
【図１２】
2004362176.tif 000014
【図１３】
2004362176.tif 000015
【図１４】
2004362176.tif 000016
【図１５】
2004362176.tif 000017
【図１６】
2004362176.tif 000018