JP2004362176A - 集積回路 - Google Patents
集積回路 Download PDFInfo
- Publication number
- JP2004362176A JP2004362176A JP2003158572A JP2003158572A JP2004362176A JP 2004362176 A JP2004362176 A JP 2004362176A JP 2003158572 A JP2003158572 A JP 2003158572A JP 2003158572 A JP2003158572 A JP 2003158572A JP 2004362176 A JP2004362176 A JP 2004362176A
- Authority
- JP
- Japan
- Prior art keywords
- setting data
- data
- instruction code
- integrated circuit
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】複数の機能ブロックに対して設定データを高速に供給することができる集積回路を提供する。
【解決手段】ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック102において実行され、機能ブロック103〜105では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック102より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路100の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ200からスタート信号STAを与えるだけで自動的に実行される。これにより、ホストインターフェース部101で生じる遅延時間が削減されるため、機能ブロックに対する設定データの供給処理を高速化することができる。
【選択図】 図1
【解決手段】ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック102において実行され、機能ブロック103〜105では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック102より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路100の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ200からスタート信号STAを与えるだけで自動的に実行される。これにより、ホストインターフェース部101で生じる遅延時間が削減されるため、機能ブロックに対する設定データの供給処理を高速化することができる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、それぞれ所定の処理を実行する複数の機能ブロックを有する集積回路に関するものである。
【0002】
【従来の技術】
半導体製造技術の進展とともに、集積回路の集積度は年々向上を続けている。こうした集積度の向上によって、従来は幾つかのICチップによって構成されていた装置の機能を、ICチップ上の1つの機能ブロックによって実現することが可能になってきた。
【0003】
図15は、そのような機能ブロックを複数有する集積回路の一般的な構成の一例を示すブロック図である。
図15に示す集積回路1は、ホストコンピュータ6との間で通信を行うためのホストインターフェース部2と、それぞれ所定の処理を実行する3つの機能ブロック(3〜5)を有している。
【0004】
機能ブロック3〜5は、それぞれ通信部と処理部を有している。
通信部は、ホストインターフェース部2を介し、ホストコンピュータ6との間でデータをやり取りする処理を行う。ホストコンピュータ6から機能ブロック3〜5に対して与えるデータは、機能ブロックにおける処理の進行やその内容を設定するためのデータあり、ここではこれを設定データと称することにする。設定データには、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなどが含まれる。
処理部は、通信部において得られるこうした設定データに応じて、所定の処理を実行する。その処理の過程で用いられるデータや生成されるデータは、例えば図15に示すように、異なる機能ブロックの処理部の間で互いにやり取りされる。また、処理の進行状況や処理結果など、処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどが処理部から通信部へ送られ、通信部からホストインターフェース部2を介し、ホストコンピュータ6へ送信される。
【0005】
一方、特許文献1の図1には、上述のホストコンピュータに相当するCPU(10)と、複数の機能ブロック(21〜23)を有するASIC(20)と、このASIC(20)の各機能ブロックに設けられているレジスタの設定内容を更新するためのレジスタ更新情報が格納されたSDRAM(30)とを有した、レジスタ更新システムが開示されている。
SDRAM(30)に格納されたレジスタ更新情報は、機能ブロック(23)の制御によるDMA(direct memory access)転送によって順次読み出され、機能ブロック(21)のレジスタ更新情報バッファ(21c)に格納される。レジスタ更新情報バッファ(21c)に格納されたレジスタ更新情報は、機能ブロック(21)によって順次読み出され、これに応じて各レジスタの内容が更新される。
【0006】
【特許文献1】
特開2002−278829号公報
【0007】
【発明が解決しようとする課題】
図15に示すシステムでは、機能ブロック3〜5に与えられる設定データを全てホストコンピュータ6が生成しており、実質的に、ホストコンピュータ6が各機能ブロックを個別に制御している。したがって、ある機能ブロックに処理を実行させるためには、必ずホストインターフェース部2経由で当該機能ブロックに設定データを与えなくてはならず、その度に、ホストインターフェース部2において数クロックの余計な遅延時間が発生する。同様な遅延時間は、機能ブロックのデータをホストコンピュータ6が読み出す際にも発生する。したがって、機能ブロックに設定データを送信する回数が増えると、これに比例して遅延時間が長くなる。こうした遅延時間は、特に、複数の機能ブロックへ大量の設定データを送信する必要がある大規模な集積回路において処理速度を低下させる大きな原因となる。
【0008】
また、図15に示す集積回路では、機能ブロックの通信部の間におけるデータの転送に、ホストコンピュータ6の仲介が必要となる。例えば図16に示すように、機能ブロック5の通信部から機能ブロック3の通信部へデータを転送する場合、先ず機能ブロック3の通信部からホストインターフェース部2を介してホストコンピュータ6にデータを読み出し(Ta,Tb)、この読み出したデータをホストコンピュータ6からホストインターフェース部2経由で機能ブロック3の通信部に送信しなくてはならない(Tc,Td)。このような場合、ホストインターフェース部2において2重の遅延時間が発生することになる。したがって、こうしたデータの転送回数が多くなると、システムの処理速度が大幅に低下してしまうという不利益がある。
こうした不利益を回避するために、例えば、ホストコンピュータ6経由ではなく、機能ブロック間で直接データをやり取りする方法も考えられる。しかしながら、この方法では、ブロック間通信を行うための通信部を新たに設計する必要がある。特に、IP(intellectual property)として入手された機能ブロックでは、その詳細な仕様が不明であることが多いため、新たな回路を付加することが困難であり、こうした方法を採用することができない。
【0009】
これに対し、特許文献1に記載されるレジスタ更新システムによると、ASIC(20)の各機能ブロックが有するレジスタは、図15に示すシステムのように、CPU(10)によってその設定内容が直接更新されるのではなく、ASIC内部に設けられた機能ブロック(21)によって設定内容が更新される。また、更新対象のレジスタのアドレスとその更新内容を指示するレジスタ更新情報は、DMA転送によって外部のSDRAM(30)からASIC内部のレジスタ更新情報バッファ(21c)へ転送される。これにより、CPU(10)が1つ1つのレジスタにアクセスして設定内容を更新する方法に比べて、CPU(10)の処理負担を軽減することができる。
【0010】
しかしながら、このレジスタ更新システムでは、DMA転送が行われる期間においてバスが使用できなくなるため、CPU(20)においてバスを利用した処理がある場合には、DMA転送が終了するまでこれを待たせなくてはならない。こうした処理の待ち時間の存在は、高速な処理を必要とするシステムにとって、無視できない処理速度の低下を招くという不利益がある。
【0011】
また、特許文献1に記載されるレジスタ更新システムでは、あるレジスタに格納されたデータを他のレジスタへ転送するための手段がASIC内部に設けられていない。このため、レジスタ間でデータを転送する場合には、図15に示すシステムと同様に、レジスタのデータをCPU(20)に一旦読み出して、これを別のレジスタへ書き込むという処理が必要になり、処理速度の低下を免れることができない。
【0012】
本発明はかかる事情に鑑みてなされたものであり、その目的は、機能ブロックに対する設定データの供給処理をより高速化することができる集積回路を提供することにある。
また、本発明の他の目的は、ある機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる集積回路を提供することにある。
【0013】
【課題を解決するための手段】
本発明の集積回路は、与えられる設定データに応じた所定の処理を実行する複数の機能ブロックを有する集積回路であって、上位装置からの要求に応じて、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理を実行するシーケンス制御ブロックを有する。
【0014】
本発明によれば、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理が、上位装置からの要求に応じて、上記シーケンス制御ブロックにより実行される。すなわち、上記シーケンス処理において上記機能ブロックに与えられる設定データは、上記上位装置ではなく、上記シーケンス制御ブロックにおいて生成される。このため、上記上位装置から上記機能ブロックに直接設定データを与える方法に比べて、設定データの供給が高速化される。
【0015】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第1のステップにおいて、上記機能ブロックから出力されるデータを読み出し、上記シーケンス処理の第2のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成しても良い。
これにより、上記シーケンス制御ブロックにおいて生成される設定データに、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方が反映される。
【0016】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記読み出しデータを上記上位装置に出力しても良い。
これにより、上記機能ブロックから出力されるデータが、上記上位装置からの要求に応じて、上記上位装置に出力される。
【0017】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第3のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、次に実行すべき上記シーケンス処理のステップを決定しても良い。
これにより、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、例えば、これらのデータの一方または両方が所定の条件を満たすか否かに応じて、上記シーケンス処理の流れが変更される。
【0018】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第4のステップにおいて、上記機能ブロックから所定の割り込み信号が出力されるまでの間、次のステップへの移行を停止しても良い。
これにより、上記機能ブロックの状態に応じて、シーケンス処理の進行が停止される。
【0019】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力しても良い。
これにより、上記機能ブロックに供給する設定データが、上記シーケンス制御ブロックではなく、上記上位装置において生成される。
【0020】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記シーケンス処理を終了しても良い。
これにより、上記シーケンス処理の開始と終了が、上記上位装置によって制御される。
【0021】
また、上記シーケンス制御ブロックは、上記上位装置からスタート信号が与えられた場合に計数を開始する計数手段と、上記計数手段の計数値に応じた命令コードを生成する命令コード生成手段と、上記命令コードに応じた上記設定データを生成する設定データ生成手段とを含んでも良い。
上記の構成によれば、上記計数手段において、上記上位装置からスタート信号が与えられることにより計数が開始されると、当該計数値に応じた命令コードが上記命令コード生成手段において生成される。上記設定データ生成手段では、上記命令コードに応じた上記設定データが生成される。
【0022】
また、上記設定データ生成手段および上記計数手段は、次のように動作しても良い。
すなわち、上記設定データ生成手段は、上記命令コード生成手段において第5の命令コードが生成された場合、複数の設定データを順次生成し、当該設定データの生成後に確認応答信号を出力する。
上記計数手段は、上記命令コード生成手段において第5の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合に計数動作を再開する。
【0023】
上記の動作によれば、上記命令コード生成手段において第5の命令コードが生成されると、上記計数手段の計数動作が停止されるとともに、上記設定データ生成手段において複数の設定データが順次生成される。上記設定データ生成手段では、上記複数の設定データの生成後に上記確認応答信号が出力される。一方、上記計数手段では、計数動作の停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合、計数動作が再開される。
【0024】
【発明の実施の形態】
以下、本発明の2つの実施形態について、図面を参照して説明する。
【0025】
<第1の実施形態>
図1は、本発明の第1の実施形態に係る集積回路の構成の一例を示すブロック図である。
図1に示す集積回路100は、ホストインターフェース部101と、シーケンス制御ブロック102と、機能ブロック103,104および105とを有する。
【0026】
[ホストインターフェース部101]
ホストインターフェース部101は、ホストコンピュータ6とシーケンス制御部102との間で通信を行うためのインターフェース処理を行う。
【0027】
[機能ブロック103〜105]
機能ブロック103〜105は、シーケンス制御ブロック102から与えられる設定データに応じた所定の処理を実行する。設定データは、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなど、機能ブロックにおける処理の進行やその内容を設定するためのデータある。
【0028】
この機能ブロック103〜105は、図1の例において、通信部(103−1〜105−1)と処理部(103−2〜105−2)を有している。
【0029】
(通信部103−1〜105−1)
通信部103−1〜105−1は、シーケンス制御ブロック102との間でデータ(R2〜R4)をやり取りする処理を行う。すなわち、シーケンス制御ブロック102から与えられた設定データを処理部(103−2〜105−2)に渡す処理や、処理部(103−2〜105−2)から出力されるデータをシーケンス制御ブロック102に渡す処理を行う。
この通信部103−1〜105−1は、例えば、1つまたは複数のレジスタと、アクセス対象のレジスタを選択するためのアドレスデコーダを有している。シーケンス制御ブロック102から出力されるアドレスに応じて、アドレスデコーダによりアクセス対象のレジスタが選択されると、この選択されたレジスタに対して、シーケンス制御ブロック102によるデータの書き込みまたは読み出しが実行される。
【0030】
(処理部103−2〜105−2)
処理部103−2〜105−2は、通信部において得られる設定データに応じて、所定の処理を実行する。そして、処理の進行状況や処理結果などの処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどを通信部(103−1〜105−1)へ出力する。
なお、処理部103−2〜105−2において処理の過程で用いられるデータや生成されるデータは、例えば図1に示すように(D1〜D3)、異なる機能ブロックの間において、通信部103−1〜105−1を介さずに直接やり取りさせても良い。
【0031】
[シーケンス制御ブロック102]
シーケンス制御ブロック102は、ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理を実行する。
【0032】
このシーケンス制御ブロック102は、図1の例において、通信部50と制御部80を有している。
【0033】
(通信部50)
通信部50は、ホストインターフェース部101を介してホストコンピュータ200との間でデータをやり取りする処理を行う。すなわち、ホストインターフェース部101を介してホストコンピュータ200から与えられる設定データを制御部80に渡す処理や、制御部80から出力されるデータをホストインターフェース部101経由でホストコンピュータ200に渡す処理を行う。
この通信部50は、例えば上述した通信部103−1〜105−1と同様に、1つまたは複数のレジスタとアドレスデコーダを有している。ホストコンピュータ200から出力されるアドレスに応じて、特定のレジスタがアクセス対象として選択されると、これに対して、ホストコンピュータ200によるデータの書き込みまたは読み出しが実行される。
【0034】
(制御部80)
制御部80は、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理を行う。
制御部80は、例えば、シーケンスの開始を指示する図示しないスタート信号STAがホストコンピュータ200より出力された場合や、シーケンス開始を指示するホストコンピュータ200からの設定データが通信部50において取得された場合に、シーケンス処理を開始する。
【0035】
図2は、シーケンス制御ブロック102の制御部80から各機能ブロックに設定データが出力される様子を図解した図である。
図2に示すように、ホストコンピュータ200からシーケンス制御ブロック102に対してシーケンス開始の指示が与えられると(T1,T2)、制御部80は、所定のシーケンス処理に基づいて設定データ(T3〜T5)を生成し、これを設定対象の機能ブロック103〜105に与える。
【0036】
また、制御部80は、上述したシーケンス処理の過程において、機能ブロックの通信部(103−1〜105−1)からデータを読み出すためのステップ(読み出しステップ)を有している。そして、シーケンス処理の別のステップにおいて、この機能ブロックから読み出したデータ、または、通信部80において取得されるホストコンピュータ200からの設定データの少なくとも一方に基づいて、機能ブロック103〜105に与える設定データを生成する。
【0037】
例えば図3に示すように、機能ブロックから読み出したデータを、他の機能ブロックに設定データとしてそのまま与える。図3の例では、機能ブロック104から読み出したデータを、ホストコンピュータ200まで戻すことなく、機能ブロック105へ設定データとして転送している。
また、読み出したデータをそのまま転送するだけでなく、例えば、ある機能ブロックから読み出したデータに応じて、その機能ブロックまたは別の機能ブロックに与える設定データを生成しても良い。
あるいは、ホストコンピュータ200からシーケンス制御ブロック102に対して、シーケンス処理の制御に係わる情報(例えばシステムの動作モードなどを指示する情報)が設定データとして与えられた場合に、こうした情報と機能ブロックから読み出したデータとに応じて、機能ブロックに与える設定データを生成しても良い。
【0038】
さらに、制御部80は、読み出しステップにおいて機能ブロックから読み出されたデータを、通信部50へ出力する。
これにより、機能ブロックから読み出されたデータは、ホストコンピュータ200からの読み出し要求に応じて、通信部50からホストコンピュータ200に出力される。
【0039】
また、制御部80は、上記したシーケンス処理の過程において、条件分岐を行うステップ(条件分岐ステップ)を有する。この条件分岐ステップにおいては、読み出しステップで機能ブロックから読み出したデータ、または、通信部80において取得されるホストコンピュータ200からの設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定する。
【0040】
さらにまた、制御部80は、ホストコンピュータ200からの要求に応じて、ホストコンピュータ200において生成される設定データをその設定対象の機能ブロックへ出力する。すなわち、図4に示すように、制御部80が生成する設定データ(図2のT3〜T5)の替わりに、ホストコンピュータ200が生成する設定データ(図4のT9〜T11)をそのまま各機能ブロックに与える。
【0041】
次に、上述した集積回路100の更に詳細な構成について、図5および図6を参照して説明する。
【0042】
図5は、集積回路100の詳細な構成の一例を示すブロック図である。
図1と図5の同一符号は同一の構成要素を示している。
【0043】
図5の例において、シーケンス制御ブロック102は、ホストインターフェース部101を介して、ホストコンピュータ200から4つの信号(WD1,AD1,WE1,RE1)を入力するとともに、ホストコンピュータ200へ1つの信号(RD1)を出力する。
書き込みデータWD1は、シーケンス制御ブロック102や機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータRD1は、シーケンス制御ブロック102や機能ブロック103〜105の通信部からホストコンピュータ200へ出力されるデータである。
アドレスAD1は、ホストコンピュータ200によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号WE1は、ホストコンピュータ200によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD1で指定されるレジスタに書き込みデータWD1が書き込まれる。
読み出しイネーブル信号RE1は、ホストコンピュータ200によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD1で指定されるレジスタから読み出しデータRD1が読み出される。
以降の説明では、シーケンス制御ブロック102に入力されるこの4つの信号(WD1,AD1,WE1,RE1)を、設定データSD1と称することにする。
【0044】
また、図5の例において、シーケンス制御ブロック102は、ホストインターフェース部101を介さずに、ホストコンピュータ200からスタート信号STAを入力する。
スタート信号STAは、シーケンス制御ブロック102におけるシーケンス処理を開始させるための信号である。
【0045】
さらに、図5の例において、シーケンス制御ブロック102は、機能ブロック103〜105へ4つの共通な信号(WD2,AD2,WE2,RE2)を出力するとともに、機能ブロック103〜105から1つの共通な信号(RD2)を入力する。
書き込みデータWD2は、機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータRD2は、機能ブロック103〜105の通信部からシーケンス制御ブロック102へ出力されるデータである。
アドレスAD2は、シーケンス制御ブロック102またはホストコンピュータ200によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号WE2は、シーケンス制御ブロック102またはホストコンピュータ200によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD2で指定されるレジスタへ書き込みデータWD2が書き込まれる。
読み出しイネーブル信号RE2は、シーケンス制御ブロック102またはホストコンピュータ200によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD2で指定されるレジスタから読み出しデータRD2が読み出される。
以降の説明では、シーケンス制御ブロック102から出力されるこの4つの信号(WD2,AD2,WE2,RE2)を、設定データSD2と称することにする。
【0046】
また、図5の例において、機能ブロック103の処理部103−2は、CCD等の撮像装置に与える不図示の制御信号を生成するとともに、撮像装置から入力される3原色のカラー画像データIm1を、輝度信号とクロマ信号とからなる画像データIm2に変換する処理を行う。
機能ブロック104の処理部104−2は、機能ブロック103から出力される画像データIm2に画素数変換処理を施し、所望の画面サイズの画像データIm3を生成する。
機能ブロック105の処理部105−2は、機能ブロック104から出力される画像データIm3に例えばJPEG方式やMPEG方式などの画像データ符号化処理を施し、符号化画像データIm4として出力する。
【0047】
図6は、シーケンス制御ブロック102の詳細な構成の一例を示すブロック図である。図1および図5と図6の同一符号は同一の構成要素を示す。
【0048】
図6に示すシーケンス制御ブロック102は、カウンタ10と、命令コード生成部20と、設定データ生成部30と、カウンタ制御部40と、通信部50と、セレクタ60とを有する。
カウンタ10およびカウンタ制御部40を含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部20は、本発明の命令コード生成手段の一実施形態である。
設定データ生成部30およびセレクタ60を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【0049】
{カウンタ10}
カウンタ10は、ホストコンピュータ200からシーケンス処理の開始を指示するスタート信号STAが与えられた場合に計数を開始する。
例えば、計数開始時の計数値PCは‘0’であり、図示しないクロック信号のパルスが入力される度に、カウンタ10は計数値PCを‘1’ずつインクリメントする。また、計数値PCがシーケンスの最終ステップに対応する‘FF’(16進数)に達した場合、計数動作を停止し、再びスタート信号STAが与えられた場合に、計数値を‘0’に初期化して、計数動作を開始する。
【0050】
また、カウンタ10は、後述するカウンタ制御部40から計数値PCの更新を指示する制御信号Csetが入力された場合、この制御信号Csetに応じて計数値Pcを更新する。
【0051】
{命令コード生成部20}
命令コード生成部20は、カウンタ10の計数値PCに応じた命令コードCCを生成する。
図7は、カウンタ10の計数値PC(16進数)に対応する命令コード生成部20の命令コードCC(2進数)の一例を示す図である。図7の例では、8ビットの計数値(‘0’〜‘FF’)に対応した6ビットの命令コードCCが生成される。
図7における計数値‘A’、‘F9’、‘FC’に対応した命令コードは、上述した条件分岐ステップの命令コードである。この命令コードが生成されると、命令コードごとに設定された分岐条件が成立した場合に、後述するカウンタ制御部40によって計数値PCが変更される。
【0052】
また、図8は、命令コード生成部20のRTL(register transfer level)回路記述の一例を示す図である。図8の記述例において、入力信号cnt_numは計数値PCに対応し、回路の出力信号func_code_decは命令コードCCに対応する。
図8の行番号L3〜L13に示すように、計数値PCと命令コードCCとの対応関係は、RTL記述言語のCASE文を用いて記述することが可能である。シーケンス処理の流れは、この計数値PCと命令コードCCとの対応関係によって決定されるため、設計の終了後に処理の流れを変更する必要が生じた場合でも、このCASE文を修正するのみで変更に対応することが可能であり、回路の修正や変更に伴う設計作業の負担を軽減することができる。
【0053】
{設定データ生成部30}
設定データ生成部30は、命令コード生成部20において生成される命令コードCCに応じた4つの信号(WD3,AD3,WE3,RE3)を生成する。
書き込みデータWD3、アドレスAD3、書き込みイネーブル信号WE3、および読み出しイネーブル信号RE3は、それぞれ、上述した書き込みデータWD2、アドレスAD2、書き込みイネーブル信号WE2、および読み出しイネーブル信号RE2に対応する信号である。
すなわち、書き込みデータWD3は、機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
アドレスAD3は、シーケンス制御ブロック102によるアクセスの対象となるレジスタを指定するアドレスである。
書き込みイネーブル信号WE3は、シーケンス制御ブロック102によるレジスタへの書き込みを有効にする信号である。
読み出しイネーブル信号RE3は、シーケンス制御ブロック102によるレジスタからのデータの読み出しを有効にする信号である。
読み出しデータRD2は、機能ブロック103〜105の通信部からシーケンス制御ブロック102へ出力されるデータである。
以降の説明では、設定データ生成部30から出力されるこの4つの信号(WD3,AD3,WE3,RE3)を、設定データSD3と称することにする。
【0054】
図9は、命令コードCCに対応する各ブロックの設定内容の例を示す図である。
図9の例では、命令コードCCの上位2ビットにおいて設定対象の機能ブロック(103〜105)が指示され、下位4ビットにおいてアクセスの内容(書き込みまたは読み出し)が指示される。
すなわち、上位2ビットが‘00’の場合、全機能ブロックが設定対象となり、初期化処理などが行なわれる。また、上位2ビットが‘01’、‘10’、‘11’の場合、それぞれ機能ブロック103、104、105が設定対象となる。
下位4ビットにおいて書き込みアクセスが指示された場合、設定データ生成部30は、書き込み先のレジスタのアドレスAD3とその書き込みデータWD3を生成し、書き込みイネーブル信号WE3をアクティブ状態、読み出しイネーブル信号RE3を非アクティブ状態に設定する。
また、下位4ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスAD3を生成し、書き込みイネーブル信号WE3を非アクティブ状態、読み出しイネーブル信号RE3をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータRD2が、読み出しレジスタ52に格納される。
【0055】
また、設定データ生成部30は、所定の値の命令コードCCが生成された場合に、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、設定データSD3を生成する。
例えば、読み出しレジスタ52に格納されているある機能ブロックからの読み出しデータを、書き込みデータWD3として別の機能ブロックのレジスタに出力する設定データSD3を生成する。これにより、ある機能ブロックのレジスタに格納されたデータを別の機能ブロックのレジスタにそのまま転送することができる。
また、読み出したデータをそのまま転送するだけでなく、例えば、読み出しレジスタ52に格納されているある機能ブロックの読み出したデータに応じて、その機能ブロックや別の機能ブロックに出力する設定データSD3を生成しても良い。
あるいは、通信レジスタ51に格納されているホストコンピュータ200からのデータと、読み出しレジスタ52に格納されている機能ブロックからの読み出したデータとに応じて、設定データSD3を生成しても良い。
【0056】
{カウンタ制御部40}
カウンタ制御部40は、命令コード生成部20において生成される命令コードCCが条件分岐の命令コードである場合、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、カウンタ10の計数値PCの更新を指示する制御信号Csetを出力する。例えば、読み出しレジスタに格納されている読み出しデータが所定の値を持つか否かに応じて、カウンタ10の新しい計数値PCを決定し、この決定した計数値への更新を指示する制御信号Csetを出力する。
【0057】
{通信部50}
図6の例において、通信部50は、通信レジスタ51および読み出しレジスタ52を有する。
通信レジスタ51は、ホストコンピュータ200からのアドレスAD1が通信レジスタ51を指示するアドレスであり、かつ、書き込みイネーブル信号WE1がアクティブ状態の場合、書き込みデータWD1を格納する。
読み出しレジスタ52は、ホストコンピュータ200からのアドレスAD1が読み出しレジスタ52を指示するアドレスであり、かつ読み出しイネーブル信号RE1がアクティブ状態の場合、格納したデータを読み出しデータRD1としてホストコンピュータ200に出力する。
【0058】
{セレクタ60}
セレクタ60は、通信レジスタ51に格納されるデータDA1に応じて、ホストコンピュータ200からの設定データSD1、または、設定データ生成部30からの設定データSD3の何れか一方を選択し、選択したデータを、シーケンス制御ブロック102の設定データSD2として出力する。
すなわち、ホストコンピュータ200によって通信レジスタ51にデータDA1が書き込まれると、このデータDA1に応じて、設定データSD1または設定データSD3の何れか一方が選択され、機能ブロック103〜105に出力される。設定データSD1が設定データSD2として出力される場合、機能ブロック103〜105は、ホストコンピュータ200によって直接制御されることになる。
【0059】
ここで、上述した構成を有する図1および図5に示す集積回路100の動作を説明する。
【0060】
図10は、シーケンス制御ブロック102において実行されるシーケンス処理の一例を示す図である。
【0061】
シーケンス制御ブロック102によりシーケンス処理が実行される動作モード(以降、第1の動作モードと呼ぶ)においては、先ず、ホストコンピュータ200から、セレクタ60において設定データSD3を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、設定データ生成部30の設定データSD3がセレクタ60において選択され、設定データSD2としてシーケンス制御ブロック102から出力される状態となる。
【0062】
次いで、ホストコンピュータ200からシーケンス処理の開始を指示するスタート信号STAが出力され、カウンタ10において、初期値‘0’から計数動作が開始される。
計数値PCがインクリメントされて‘1’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部20において生成され、これに応じた設定データSD3が設定データ生成部30において生成されて、セレクタ60を介し各機能ブロックに出力される。各機能ブロックでは、この設定データSD3に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値PCが‘2’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データSD3が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値PCが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データSD3が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データSD3に応じた所定の処理が実行される。
【0063】
例えば、計数値PCが‘20’の場合において、機能ブロック103のレジスタからの読み出しを指示する命令コードCCが生成されると、設定データ生成部30では、機能ブロック103のレジスタを指定するアドレスAD3が生成されるとともに、読み出しイネーブル信号RE3がアクティブ状態に設定される。これにより、機能ブロック103のレジスタに格納されたデータが読み出しデータRD2として出力され、読み出しレジスタ52に格納される。
次いで、計数値PCがインクリメントによって‘21’となり、この計数値に応じて、機能ブロック104のレジスタへ読み出しレジスタ52の格納データDA2を書き込むことを指示する命令コードCCが生成されると、設定データ生成部30では、機能ブロック104のレジスタを指定するアドレスAD3が生成され、書き込みイネーブル信号WE3がアクティブ状態に設定される。更に、書き込みデータWD3として、読み出しレジスタ52の格納データDA2と等しいデータが出力される。これにより、読み出しレジスタ52の格納データDA2が、機能ブロック104のレジスタへ書き込まれる。
このような2つの処理ステップによって、機能ブロック103のレジスタに格納されているデータが、機能ブロック104のレジスタへ転送される。
【0064】
また、例えば、計数値PCが‘F9’の場合に、読み出しレジスタ52の格納データDA2が‘20’と一致することを条件として計数値PCを‘D8’に更新することを指示する条件分岐の命令コードが生成されると、カウンタ制御部40では、読み出しレジスタ52に格納されたデータDA2が‘20’と等しいか否かの判定が行なわれる。この判定の結果、データDA2が‘20’と等しい場合には、計数値PCを‘D8’に設定する制御信号Csetがカウンタ制御部40において生成される。これにより、次のステップにおいて、カウンタ10の計数値PCが‘F9’から‘D8’へ更新され、シーケンスの流れが変更される。また、上述した判定の結果、データDA2が‘20’と等しくない場合には、計数値PCの更新が行なわれないため、次のステップにおいて、計数値PCは‘F9’から‘FA’へ通常どおりにインクリメントされる。
【0065】
こうしたシーケンス処理が順に実行され、計数値PCが‘FF’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データSD3が出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ10の計数動作が停止される。
【0066】
一方、ホストコンピュータ200から各機能ブロックに対して設定データSD1が直接与えられる動作モード(以降、第2の動作モードと呼ぶ)においては、ホストコンピュータ200から、セレクタ60において設定データSD1を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、ホストコンピュータ200の設定データSD1がセレクタ60において選択され、設定データSD2としてシーケンス制御ブロック102より各機能ブロックに出力される状態となる。
【0067】
以上説明したように、本実施形態に係る集積回路100によれば、ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック102において実行され、機能ブロック103〜105では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック102より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路100の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ200からスタート信号STAを与えるだけで自動的に実行される。
したがって、内部の機能ブロックにおいて処理を実行させるために外部のホストコンピュータから設定データを逐一与えなくてはならない図15に示すような集積回路に比べて、ホストインターフェース部で生じる遅延時間を大幅に削減できるため、機能ブロックに対する設定データの供給処理を高速化することができる。
また、各機能ブロックに設定データを与える一連の処理からホストコンピュータ200を開放することができるため、ホストコンピュータ200の処理負担を大きく軽減することができる。
さらに、ホストコンピュータ200のプログラムを簡易化することができるため、その設計作業の負担を軽減することができる。
【0068】
また、シーケンス処理の実行時において、特許文献1に記載のASICのように、外部の記憶装置から内部のバッファへ設定データを転送する必要がないため、外部のバスを占有することがない。したがって、このような集積回路を用いる場合に比べて、システム全体の処理速度を高速化することができる。
【0069】
しかも、シーケンス制御ブロック102におけるシーケンス処理の全体の流れは、RTL回路記述において図8に示すようにCASE文を用いて記述することが可能である。このため、設計の過程においてシーケンス処理に変更が生じた場合でも、回路の至るところの記述を修正する必要はなく、このCASE文の修正のみで容易に設計変更に対応することができる。したがって、設計作業の負担を一層軽減することができる。
【0070】
また、集積回路100によれば、シーケンス処理のあるステップにおいて、機能ブロックから出力されるデータをシーケンス制御ブロック102の読み出しレジスタ52に格納し、シーケンス処理の別のステップにおいて、この格納した読み出したデータを設定データとして他の機能ブロックに与えることができる。すなわち、外部のホストコンピュータを経由することなく、集積回路の内部において機能ブロック間のデータの転送を行うことができる。したがって、図15に示す集積回路や特許文献1のASICに比べて、機能ブロック間のデータ転送処理を高速化することができる。
加えて、シーケンス制御ブロック102は、機能ブロックから読み出したデータをそのまま転送するだけでなく、機能ブロックからの読み出しデータ、またはホストコンピュータ200から与えられる設定データの少なくとも一方に応じて、設定データを生成することができる。したがって、様々な条件に応じた設定データを生成することができるため、ホストコンピュータ200に負担を与えることなく、より多様なシーケンス処理を実行することができる。
【0071】
また、機能ブロック間のデータ転送が集積回路内部で行われることから、各機能ブロックに特別な通信回路を設ける必要がない。したがって、IPとして入手された機能ブロックが含まれる集積回路にも、本実施形態は適用可能である。
【0072】
さらに、集積回路100によれば、上記したシーケンス処理の過程において、条件分岐ステップを設けることができる。すなわち、この条件分岐ステップにおいて、機能ブロックからの読み出しデータ、または、ホストコンピュータ200から与えら得る設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定することができる。したがって、ホストコンピュータ200に負担を与えることなく、更に多様なシーケンス処理を実行することができる。
【0073】
また、集積回路100は、機能ブロックの制御に関する動作モードとして、第1の動作モードまたは第2の動作モードを有する。第1の動作モードでは、シーケンス制御ブロック102において上述した所定のシーケンス処理が実行される。第2の動作モードでは、ホストコンピュータ200において生成された設定データSD1がその設定対象の機能ブロックへ出力される。すなわち、ホストコンピュータ200によって各機能ブロックが直接制御される。
このように、シーケンス制御ブロック102において全てのシーケンス処理を実行させることも、また、各機能ブロックの制御にホストコンピュータ200を直接関与させることも可能になるため、機能ブロックの制御に関する設計の自由度が高くなり、設計の簡易化を図ることができる。また、シーケンス制御ブロック102とホストコンピュータ200とが機能ブロックの制御に係わる度合いを、処理速度や回路規模などの条件に応じて適切に設定することが可能になる。
【0074】
<第2の実施形態>
図11は、本発明の第2の実施形態に係る集積回路100Aにおける、シーケンス制御ブロック102Aの構成の一例を示すブロック図である。
【0075】
本実施形態に係る集積回路100Aは、例えば図5に示すシーケンス制御ブロック102が図11に示すシーケンス制御ブロック102Aに置き換えられるとともに、機能ブロックが更に1つ加わる(機能ブロック106)。すなわち、機能ブロックが4つになる。
【0076】
新たに加わる機能ブロック106は、機能ブロック103〜105と同様に、処理部と通信部を有する。これらの動作は既に述べたものと同一であるので、ここでは説明を省略する。
【0077】
シーケンス制御ブロック102Aは、図11の例において、カウンタ10Aと、命令コード生成部20Aと、第1設定データ生成部31〜第4設定データ生成部34と、カウンタ制御部40Aと、通信部50と、セレクタ61および62と、OR回路70とを有する。
カウンタ10Aおよびカウンタ制御部40Aを含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部20は、本発明の命令コード生成手段の一実施形態である。
第1設定データ生成部31〜第4設定データ生成部34、OR回路70、セレクタ61および62を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【0078】
ここで、シーケンス制御ブロック102Aの各構成について詳しく説明する。ただし、通信部50については、図6における同一符号の構成要素と同じであるため、ここでは説明を省略する。
【0079】
{カウンタ10A}
カウンタ10Aは、カウンタ制御部40Aから出力される、シーケンス処理の開始または終了を指示する信号SSに応じて、計数動作を開始または終了する。
例えば、計数開始時の計数値PCAは‘0’であり、シーケンス処理の開始を指示する信号SSが入力された場合に、計数値PCAを‘1’ずつインクリメントする動作を開始する。また、計数値PCAがシーケンスの最終ステップに対応する‘1FF’(16進数)に達した場合、計数動作を停止し、再びシーケンス処理の開始を指示する信号SSが入力された場合、計数値を‘0’に初期化して、計数動作を開始する。
また、計数動作の途中でシーケンス処理の終了を指示する信号SSが入力された場合には、計数動作を停止するとともに、その計数値PCAを‘0’に初期化する。
【0080】
また、カウンタ10Aは、カウンタ制御部40から出力される計数イネーブル信号Cenがアクティブ状態の場合に計数動作を実行し、計数イネーブル信号Cenが非アクティブ状態の場合に計数動作を停止する。
【0081】
さらに、カウンタ10Aは、カウンタ制御部40から計数値PCAの更新を指示する制御信号Csetが入力された場合、この制御信号Csetに応じて計数値PCAを更新する。この動作は、カウンタ10と同様である。
【0082】
{命令コード生成部20A}
命令コード生成部20Aは、カウンタ10Aの計数値PCAに応じた命令コードCCAを生成する。
図12は、カウンタ10Aの計数値PCA(16進数)に対応する命令コード生成部20Aの命令コードCCA(2進数)の一例を示す図である。
図12の例では、9ビットの計数値(‘0’〜‘1FF’)に対応した8ビットの命令コードCCAが生成される。
【0083】
図12における計数値‘A’、‘1F9’、‘1FC’に対応した命令コードは、既に述べたものと同様な、条件分岐ステップの命令コードである。
また、計数値‘5’に対応した命令コードは、後述するアクノリッジ信号待ちステップの命令コードである。
計数値‘9’、‘1FB’に対応した命令コードは、後述する割込み信号待ちステップの命令コードである。
【0084】
{セレクタ61}
セレクタ61は、命令コード生成部20Aにおいて生成される命令コードCCAに応じて、第1設定データ生成部31〜第4設定データ生成部34の何れか1つを選択的に起動させるブロック選択信号Bselを生成し、命令コードCCAとともに、第1設定データ生成部31〜第4設定データ生成部34に出力する。
【0085】
図13は、命令コードCCAに対応する各ブロックの設定内容の例を示す図である。
図13の例において、命令コードCCAの上位1ビットは、アクノリッジ信号待ちステップ、または割込み信号待ちステップの何れかの場合において‘1’となり、他の命令コードでは‘0’となる。
また、その次の中間3ビットは、設定対象の機能ブロック(103〜106)を指示する。
下位4ビットは、アクセスの内容(書き込みまたは読み出し)を指示する。
【0086】
図13の例によると、命令コードCCAの中間3ビットが‘000’または‘001’の場合、全機能ブロックが設定対象となり、機能ブロックの初期化処理などが行なわれる。この場合、セレクタ61は、全機能ブロックに対する設定信号を生成するブロックとして、第1設定データ生成部31を起動させる。
また、中間3ビットが‘010’の場合、機能ブロック103が設定対象となる。この場合、セレクタ61は、機能ブロック103に対する設定信号を生成するブロックとして、第1設定データ生成部31を起動させる。なお、第1設定データ生成部31は、全機能ブロックに対する設定信号を生成するブロックも兼用している。
中間3ビットが‘011’の場合、機能ブロック104が設定対象となる。この場合、セレクタ61は、機能ブロック104に対する設定信号を生成するブロックとして、例えば第2設定データ生成部32を起動させる。
中間3ビットが‘100’または‘101’の場合、機能ブロック105が設定対象となる。この場合、セレクタ61は、機能ブロック105に対する設定信号を生成するブロックとして、第3設定データ生成部33を起動させる。
中間3ビットが‘110’または‘111’の場合、機能ブロック106が設定対象となる。この場合、セレクタ61は、機能ブロック106に対する設定信号を生成するブロックとして、第4設定データ生成部34を起動させる。
【0087】
{第1設定データ生成部31〜第4設定データ生成部34}
第1設定データ生成部31〜第4設定データ生成部34は、セレクタ61のブロック選択信号Bselに応じて起動し、その起動状態において、それぞれ機能ブロック103〜106に与える設定データSD3−1〜SD3−4を生成する。
ただし、上述したように、第1設定データ生成部31については、例えば機能ブロックの初期化処理などにおいて必要となる、全機能ブロックに対する設定信号の生成も行う。
【0088】
第1設定データ生成部31〜第4設定データ生成部34における設定データの生成動作の一部は、既に述べた設定データ生成部30と同様である。
すなわち、第1設定データ生成部31〜第4設定データ生成部34は、命令コード生成部20Aの命令コードCCAに応じて、書き込みデータ、アドレス、書き込みイネーブル信号、および読み出しイネーブル信号の4信号を含んだ、設定データ(SD3−1〜SD3−4)をそれぞれ生成する。
命令コードCCAの下位4ビットにおいて書き込みアクセスが指示された場合、書き込み先のレジスタのアドレスとその書き込みデータを生成し、書き込みイネーブル信号をアクティブ状態、読み出しイネーブル信号を非アクティブ状態に設定する。
命令コードCCAの下位4ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスを生成し、書き込みイネーブル信号を非アクティブ状態、読み出しイネーブル信号をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータが、読み出しレジスタ52に格納される。
設定データの生成を指示する所定の命令コードCCが入力された場合は、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、その設定データを生成する。これにより、例えば、既に述べた機能ブロック間のデータ転送処理が可能になる。
【0089】
また、第1設定データ生成部31〜第4設定データ生成部34は、設定データ生成部30とは異なる動作として、アクノリッジ信号ACK1〜ACK4を生成する。
すなわち、第1設定データ生成部31〜第4設定データ生成部34は、命令コード生成部20Aにおいて生成される命令コードCCAが、アクノリッジ信号待ちステップを指示する所定の命令コードである場合、複数の設定データを順次生成する。例えば、機能ブロック104から8つの画素データを順に読み出して、これを機能ブロック105に転送するといった処理を、複数の設定データを順次生成することによって実行する。
そして、この一連の設定データを出力し終えたところで、アクノリッジ信号(ACK1〜ACK4)をアクティブ状態に設定する。これにより、1つの命令コードCCAによって複数の設定データを生成することが可能になる。
【0090】
{セレクタ62}
セレクタ62は、通信レジスタ51に格納されるデータDA1および命令コードCCAに応じて、設定データSD1、設定データSD3−1,…,設定データSD3ー4の何れかを選択し、選択したデータを、シーケンス制御ブロック102Aの設定データSD2Aとして出力する。
すなわち、ホストコンピュータ200によって通信レジスタ51にデータDA1が書き込まれると、このデータDA1に応じて、設定データSD1を選択するか否かが決定される。設定データSD1が選択される場合、集積回路100Aの動作モードは、ホストコンピュータ200によって機能ブロックの制御が行われる第2の動作モードとなる。
また、設定データSD1が選択されない場合には、命令コードCCAに応じて、設定データSD3−1〜SD3ー4の何れかが選択される。この場合、集積回路100Aの動作モードは、シーケンス制御ブロック102Aによって機能ブロックの制御が行われる第1の動作モードとなる。
【0091】
{カウンタ制御部40A}
カウンタ制御部40Aは、命令コード生成部20Aにおいて生成される命令コードCCAが条件分岐の命令コードである場合、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、カウンタ10Aの計数値PCAの更新を指示する制御信号Csetを出力する。この動作は、既に述べたカウンタ制御部40と同様である。
【0092】
また、カウンタ制御部40Aは、アクノリッジ信号待ちステップの命令コードが命令コード生成部20Aにおいて生成された場合、計数動作を停止する。これにより、次のステップへの移行が停止する。そして、この計数動作の停止後、OR回路70から出力されるアクノリッジ信号ACKがアクティブ状態へ変化する場合に、計数動作を再開する。
【0093】
さらに、カウンタ制御部40Aは、割り込み信号待ちステップの命令コードが命令コード生成部20Aにおいて生成された場合、同様に計数動作を停止する。そして、この計数動作の停止後、命令コードにおいて指定される機能ブロックから所定の割り込み信号が出力された場合に、計数動作を再開する。
【0094】
{OR回路70}
OR回路70は、第1設定データ生成部31〜第4設定データ生成部34において生成されるアクノリッジ信号ACK1〜ACK4を入力し、何れか1つの信号がアクティブ状態の場合にアクティブとなり、全てが非アクティブ状態の場合に非アクティブとなるアクノリッジ信号ACKを出力する。
【0095】
ここで、上述した構成を有する集積回路100Aの動作を説明する。
【0096】
図14は、シーケンス制御ブロック102Aにおいて実行されるシーケンス処理の一例を示す図である。
【0097】
第1の動作モードにおいては、先ず、ホストコンピュータ200から、セレクタ62において設定データSD3−1〜SD3−4の何れかを選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、第1設定データ生成部31〜第4設定データ生成部34の設定データがシーケンス制御ブロック102Aから出力され得る状態となる。
【0098】
次いで、ホストコンピュータ200からシーケンス処理の開始を指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納されると、カウンタ制御部40Aから計数動作の開始を指示する信号SSが出力され、これにより、カウンタ10Aにおいて初期値‘0’から計数動作が開始される。
計数値PCAがインクリメントされて‘1’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部20Aにおいて生成され、これに応じた設定データSD3−1が第1設定データ生成部31において生成されて、セレクタ62を介し各機能ブロックに出力される。各機能ブロックでは、この設定データSD3−1に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値PCAが‘2’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データSD3−1が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値PCAが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データSD3−n(nは1から4までの整数を示す)が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データSD3−nに応じた所定の処理が実行される。
【0099】
例えば、計数値PCAが‘5’の場合において、アクノリッジ信号待ちステップを指示する命令コードCCAが生成されると、カウンタ制御部40Aによって計数イネーブル信号Cenが非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。また、この命令コードCCAが指示する設定データ生成部、例えば第2設定データ生成部32において、機能ブロック104やその他の機能ブロックに対する一連の設定データSD3−2が順次生成される。これらの設定データSD3−2が全て出力されたところで、第2設定データ生成部32からアクティブ状態のアクノリッジ信号ACK2が出力される。これに応じて、カウンタ制御部40Aの計数イネーブル信号Cenがアクティブ状態となり、カウンタ10Aの計数が再開される。
このように、アクノリッジ信号待ちステップでは、1つの命令コードで複数の設定データが生成される。
【0100】
また、例えば、計数値PCAが‘10C’の場合において、割り込み信号待ちステップを指示する命令コードCCAが生成されると、カウンタ制御部40Aによって計数イネーブル信号Cenが非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。この停止状態において、命令コードCCAが指示する機能ブロック、例えば機能ブロック106について、その所定の割り込み信号が出力されているか否かの検出が行われる。そして、この割り込み信号が出力された場合に、カウンタ制御部40Aの計数イネーブル信号Cenがアクティブ状態となり、カウンタ10Aの計数が再開される。
このように、割り込み信号待ちステップでは、ある機能ブロックから割り込み信号が出力されるまでの間、シーケンス処理が停止される。
【0101】
その他、機能ブロックからのデータの読み出し動作、通信部50のレジスタ格納データ(DA1、DA2)に応じた設定データ(SD3−1〜SD3−4)の生成動作、条件分岐ステップの動作については、上述したシーケンス制御ブロック102と同様である。
【0102】
こうしたシーケンス処理が順に実行され、計数値PCAが‘1FF’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データSD3−1が第1設定データ生成部31から出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ10Aの計数動作が停止される。
【0103】
また、こうしたシーケンス処理の途中で、ホストコンピュータ200からシーケンスの終了を指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納されると、カウンタ制御部40からシーケンスの終了を指示する信号SSが出力され、カウンタ10Aの計数動作が停止される。この場合、カウンタ10Aの計数値PCAは終了値‘1FF’に移動される。
【0104】
第2の動作モードにおいては、ホストコンピュータ200から、セレクタ62において設定データSD1を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、ホストコンピュータ200の設定データSD1がセレクタ62において選択され、設定データSD2Aとしてシーケンス制御ブロック102より各機能ブロックに出力される状態となる。
【0105】
以上説明したように、本実施形態に係る集積回路100Aによれば、集積回路100と同様な動作により同等な効果を奏することが可能であるとともに、次に述べるような効果を奏することができる。
【0106】
すなわち、集積回路100Aによれば、命令コード生成部20Aにおいてアクノリッジ信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部40Aにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。また、設定データ生成部(31〜34)では、複数の設定データが順次生成される。そして、この設定データの生成が終了すると、設定データ生成部(31〜34)によってアクノリッジ信号(ACK1〜ACK4)がアクティブ状態に設定され、OR回路70のアクノリッジ信号ACKがアクティブ状態になる。アクノリッジ信号ACKがアクティブ状態になると、カウンタ制御部40Aにおいて計数イネーブル信号がアクティブ状態となり、カウンタ10Aの計数動作が再開される。
このように、アクノリッジ信号待ちステップにおいて、1つの命令コードから複数の設定データを生成することが可能になる。したがって、より少ない命令コードで、多様なシーケンス処理を行うことができ、命令コード生成部の回路規模を小さくすることが可能になる。
【0107】
また、集積回路100Aによれば、命令コード生成部20Aにおいて割り込み信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部40Aにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。そして、この計数動作の停止後に、機能ブロックから所定の割り込み信号が出力された場合、カウンタ制御部40Aにおいて計数イネーブル信号がアクティブ状態に設定され、カウンタ10Aの計数動作が再開される。
このように、割り込み信号待ちステップにおいて、機能ブロックからの割り込み信号が出力されるまでシーケンス処理を停止させることが可能になる。したがって、機能ブロックからの割り込み信号を待ってから処理を進めることが必要な場合でも、ホストコンピュータ200の関与が不要になり、より効率的で高速な処理を行うことができる。
【0108】
また、条件分岐ステップに加えて、アクノリッジ信号待ちステップや割り込み信号待ちステップなどをシーケンスに設けることが可能になるため、これらの組み合わせにより、多様なシーケンス処理を実現することが可能になる。
【0109】
例えば、図14の計数値‘8’において、機能ブロック103により所定の処理が開始され、続く計数値‘9’において、この処理の終了を示す機能ブロック103からの割り込み信号待ち状態となる。機能ブロック103において処理が終了し、その終了を知らせる割り込み信号が出力されると、カウンタ10Aの計数動作が再開され、計数値が‘9’から‘A’へインクリメントされる。計数値‘A’においては、機能ブロック103の通信部103−1からそのステータスを示すデータが読み出されて、読み出しレジスタ52に格納される。計数値‘B’においては、読み出しレジスタ52に格納されたデータDA2が所定の条件を満たすか否かの判定が行われ、この判定結果に応じて、次に処理すべきステップが決定され、これに応じて、カウンタ10Aの計数値PCAが更新される。
このような処理ステップの組み合わせにより、各機能ブロックの処理結果が正常か否かの判断をシーケンス制御ブロック102Aにおいて行うことが可能になる。すなわち、シーケンス制御ブロック102Aにおいて、集積回路全体のステータスを把握することが可能になる。したがって、ホストコンピュータ200は、シーケンス制御ブロック102Aの通信部にアクセスするだけの簡単な処理で、集積回路全体のステータスを把握することができるため、ホストコンピュータ200における集積回路のステータス管理を簡易化することができる。
【0110】
また、集積回路100Aによれば、ホストコンピュータ200の要求に応じてシーケンス処理を終了させることができるため、シーケンス処理が終了しなくなるといった異常な状態を、ホストコンピュータ200からの制御によって容易に解消することができる。
【0111】
また、集積回路100Aによれば、集積回路100におけるスタート信号STAのような特別な信号線を有しておらず、シーケンス制御ブロック102Aとホストコンピュータ200との通信がホストインターフェース部101を介して行われる。このため、信号ピンの数を減らすことが可能になる。
【0112】
なお、本発明は上述した実施形態に限定されない。
たとえば、上述した実施形態において示した種々の数値(機能ブロックの数、信号のビット幅、信号値など)は何れも説明上の一例に過ぎず、本発明はこれに限定されるものではない。
【0113】
また、上述した実施形態では、集積回路内における各機能ブロックが、データ線、アドレス線、書き込みイネーブル線、読み出しイネーブル線等を有するバスによって通信を行う例が示されているが、機能ブロック間の通信方式はこれに限定されず、他の種々の通信方式(例えばシリアル信号によるパケット方式など)を用いることも可能である。
【0114】
【発明の効果】
本発明の集積回路によれば、機能ブロックに対する設定データの供給処理をより高速化することができる。
また、機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る集積回路の構成の一例を示すブロック図である。
【図2】シーケンス制御ブロックの制御部から各機能ブロックに設定データが与えられる様子を図解した図である。
【図3】機能ブロック間においてデータが転送される様子を図解した図である。
【図4】ホストコンピュータからシーケンス制御ブロックを介して各機能ブロックに設定データが供給される様子を図解した図である。
【図5】第1の実施形態に係る集積回路の詳細な構成の一例を示すブロック図である。
【図6】第1の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図7】図6に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図8】命令コード生成部のRTL回路記述の一例を示す図である。
【図9】図6に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図10】図6に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図11】本発明の第2の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図12】図11に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図13】図11に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図14】図11に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図15】複数の機能ブロックを有する集積回路の一般的な構成の一例を示すブロック図である。
【図16】図15に示す集積回路における、機能ブロック間のデータ転送処理の様子を図解した図である。
【符号の説明】
10,10A…カウンタ、20,20A…命令コード生成部、30,31〜34…設定データ生成部、40,40A…カウンタ制御部、50…通信部、51…通信レジスタ、52…読み出しレジスタ、60,61,62…セレクタ、70…OR回路、80…制御部、100,100A…集積回路、101…ホストインターフェース部、102,102A…シーケンス制御ブロック、103〜106…機能ブロック、200…ホストコンピュータ
【発明の属する技術分野】
本発明は、それぞれ所定の処理を実行する複数の機能ブロックを有する集積回路に関するものである。
【0002】
【従来の技術】
半導体製造技術の進展とともに、集積回路の集積度は年々向上を続けている。こうした集積度の向上によって、従来は幾つかのICチップによって構成されていた装置の機能を、ICチップ上の1つの機能ブロックによって実現することが可能になってきた。
【0003】
図15は、そのような機能ブロックを複数有する集積回路の一般的な構成の一例を示すブロック図である。
図15に示す集積回路1は、ホストコンピュータ6との間で通信を行うためのホストインターフェース部2と、それぞれ所定の処理を実行する3つの機能ブロック(3〜5)を有している。
【0004】
機能ブロック3〜5は、それぞれ通信部と処理部を有している。
通信部は、ホストインターフェース部2を介し、ホストコンピュータ6との間でデータをやり取りする処理を行う。ホストコンピュータ6から機能ブロック3〜5に対して与えるデータは、機能ブロックにおける処理の進行やその内容を設定するためのデータあり、ここではこれを設定データと称することにする。設定データには、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなどが含まれる。
処理部は、通信部において得られるこうした設定データに応じて、所定の処理を実行する。その処理の過程で用いられるデータや生成されるデータは、例えば図15に示すように、異なる機能ブロックの処理部の間で互いにやり取りされる。また、処理の進行状況や処理結果など、処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどが処理部から通信部へ送られ、通信部からホストインターフェース部2を介し、ホストコンピュータ6へ送信される。
【0005】
一方、特許文献1の図1には、上述のホストコンピュータに相当するCPU(10)と、複数の機能ブロック(21〜23)を有するASIC(20)と、このASIC(20)の各機能ブロックに設けられているレジスタの設定内容を更新するためのレジスタ更新情報が格納されたSDRAM(30)とを有した、レジスタ更新システムが開示されている。
SDRAM(30)に格納されたレジスタ更新情報は、機能ブロック(23)の制御によるDMA(direct memory access)転送によって順次読み出され、機能ブロック(21)のレジスタ更新情報バッファ(21c)に格納される。レジスタ更新情報バッファ(21c)に格納されたレジスタ更新情報は、機能ブロック(21)によって順次読み出され、これに応じて各レジスタの内容が更新される。
【0006】
【特許文献1】
特開2002−278829号公報
【0007】
【発明が解決しようとする課題】
図15に示すシステムでは、機能ブロック3〜5に与えられる設定データを全てホストコンピュータ6が生成しており、実質的に、ホストコンピュータ6が各機能ブロックを個別に制御している。したがって、ある機能ブロックに処理を実行させるためには、必ずホストインターフェース部2経由で当該機能ブロックに設定データを与えなくてはならず、その度に、ホストインターフェース部2において数クロックの余計な遅延時間が発生する。同様な遅延時間は、機能ブロックのデータをホストコンピュータ6が読み出す際にも発生する。したがって、機能ブロックに設定データを送信する回数が増えると、これに比例して遅延時間が長くなる。こうした遅延時間は、特に、複数の機能ブロックへ大量の設定データを送信する必要がある大規模な集積回路において処理速度を低下させる大きな原因となる。
【0008】
また、図15に示す集積回路では、機能ブロックの通信部の間におけるデータの転送に、ホストコンピュータ6の仲介が必要となる。例えば図16に示すように、機能ブロック5の通信部から機能ブロック3の通信部へデータを転送する場合、先ず機能ブロック3の通信部からホストインターフェース部2を介してホストコンピュータ6にデータを読み出し(Ta,Tb)、この読み出したデータをホストコンピュータ6からホストインターフェース部2経由で機能ブロック3の通信部に送信しなくてはならない(Tc,Td)。このような場合、ホストインターフェース部2において2重の遅延時間が発生することになる。したがって、こうしたデータの転送回数が多くなると、システムの処理速度が大幅に低下してしまうという不利益がある。
こうした不利益を回避するために、例えば、ホストコンピュータ6経由ではなく、機能ブロック間で直接データをやり取りする方法も考えられる。しかしながら、この方法では、ブロック間通信を行うための通信部を新たに設計する必要がある。特に、IP(intellectual property)として入手された機能ブロックでは、その詳細な仕様が不明であることが多いため、新たな回路を付加することが困難であり、こうした方法を採用することができない。
【0009】
これに対し、特許文献1に記載されるレジスタ更新システムによると、ASIC(20)の各機能ブロックが有するレジスタは、図15に示すシステムのように、CPU(10)によってその設定内容が直接更新されるのではなく、ASIC内部に設けられた機能ブロック(21)によって設定内容が更新される。また、更新対象のレジスタのアドレスとその更新内容を指示するレジスタ更新情報は、DMA転送によって外部のSDRAM(30)からASIC内部のレジスタ更新情報バッファ(21c)へ転送される。これにより、CPU(10)が1つ1つのレジスタにアクセスして設定内容を更新する方法に比べて、CPU(10)の処理負担を軽減することができる。
【0010】
しかしながら、このレジスタ更新システムでは、DMA転送が行われる期間においてバスが使用できなくなるため、CPU(20)においてバスを利用した処理がある場合には、DMA転送が終了するまでこれを待たせなくてはならない。こうした処理の待ち時間の存在は、高速な処理を必要とするシステムにとって、無視できない処理速度の低下を招くという不利益がある。
【0011】
また、特許文献1に記載されるレジスタ更新システムでは、あるレジスタに格納されたデータを他のレジスタへ転送するための手段がASIC内部に設けられていない。このため、レジスタ間でデータを転送する場合には、図15に示すシステムと同様に、レジスタのデータをCPU(20)に一旦読み出して、これを別のレジスタへ書き込むという処理が必要になり、処理速度の低下を免れることができない。
【0012】
本発明はかかる事情に鑑みてなされたものであり、その目的は、機能ブロックに対する設定データの供給処理をより高速化することができる集積回路を提供することにある。
また、本発明の他の目的は、ある機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる集積回路を提供することにある。
【0013】
【課題を解決するための手段】
本発明の集積回路は、与えられる設定データに応じた所定の処理を実行する複数の機能ブロックを有する集積回路であって、上位装置からの要求に応じて、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理を実行するシーケンス制御ブロックを有する。
【0014】
本発明によれば、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理が、上位装置からの要求に応じて、上記シーケンス制御ブロックにより実行される。すなわち、上記シーケンス処理において上記機能ブロックに与えられる設定データは、上記上位装置ではなく、上記シーケンス制御ブロックにおいて生成される。このため、上記上位装置から上記機能ブロックに直接設定データを与える方法に比べて、設定データの供給が高速化される。
【0015】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第1のステップにおいて、上記機能ブロックから出力されるデータを読み出し、上記シーケンス処理の第2のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成しても良い。
これにより、上記シーケンス制御ブロックにおいて生成される設定データに、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方が反映される。
【0016】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記読み出しデータを上記上位装置に出力しても良い。
これにより、上記機能ブロックから出力されるデータが、上記上位装置からの要求に応じて、上記上位装置に出力される。
【0017】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第3のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、次に実行すべき上記シーケンス処理のステップを決定しても良い。
これにより、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、例えば、これらのデータの一方または両方が所定の条件を満たすか否かに応じて、上記シーケンス処理の流れが変更される。
【0018】
また、上記シーケンス制御ブロックは、上記シーケンス処理の第4のステップにおいて、上記機能ブロックから所定の割り込み信号が出力されるまでの間、次のステップへの移行を停止しても良い。
これにより、上記機能ブロックの状態に応じて、シーケンス処理の進行が停止される。
【0019】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力しても良い。
これにより、上記機能ブロックに供給する設定データが、上記シーケンス制御ブロックではなく、上記上位装置において生成される。
【0020】
また、上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記シーケンス処理を終了しても良い。
これにより、上記シーケンス処理の開始と終了が、上記上位装置によって制御される。
【0021】
また、上記シーケンス制御ブロックは、上記上位装置からスタート信号が与えられた場合に計数を開始する計数手段と、上記計数手段の計数値に応じた命令コードを生成する命令コード生成手段と、上記命令コードに応じた上記設定データを生成する設定データ生成手段とを含んでも良い。
上記の構成によれば、上記計数手段において、上記上位装置からスタート信号が与えられることにより計数が開始されると、当該計数値に応じた命令コードが上記命令コード生成手段において生成される。上記設定データ生成手段では、上記命令コードに応じた上記設定データが生成される。
【0022】
また、上記設定データ生成手段および上記計数手段は、次のように動作しても良い。
すなわち、上記設定データ生成手段は、上記命令コード生成手段において第5の命令コードが生成された場合、複数の設定データを順次生成し、当該設定データの生成後に確認応答信号を出力する。
上記計数手段は、上記命令コード生成手段において第5の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合に計数動作を再開する。
【0023】
上記の動作によれば、上記命令コード生成手段において第5の命令コードが生成されると、上記計数手段の計数動作が停止されるとともに、上記設定データ生成手段において複数の設定データが順次生成される。上記設定データ生成手段では、上記複数の設定データの生成後に上記確認応答信号が出力される。一方、上記計数手段では、計数動作の停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合、計数動作が再開される。
【0024】
【発明の実施の形態】
以下、本発明の2つの実施形態について、図面を参照して説明する。
【0025】
<第1の実施形態>
図1は、本発明の第1の実施形態に係る集積回路の構成の一例を示すブロック図である。
図1に示す集積回路100は、ホストインターフェース部101と、シーケンス制御ブロック102と、機能ブロック103,104および105とを有する。
【0026】
[ホストインターフェース部101]
ホストインターフェース部101は、ホストコンピュータ6とシーケンス制御部102との間で通信を行うためのインターフェース処理を行う。
【0027】
[機能ブロック103〜105]
機能ブロック103〜105は、シーケンス制御ブロック102から与えられる設定データに応じた所定の処理を実行する。設定データは、例えば、処理の開始や終了を指示するデータ、処理内容・処理モードを指示するデータなど、機能ブロックにおける処理の進行やその内容を設定するためのデータある。
【0028】
この機能ブロック103〜105は、図1の例において、通信部(103−1〜105−1)と処理部(103−2〜105−2)を有している。
【0029】
(通信部103−1〜105−1)
通信部103−1〜105−1は、シーケンス制御ブロック102との間でデータ(R2〜R4)をやり取りする処理を行う。すなわち、シーケンス制御ブロック102から与えられた設定データを処理部(103−2〜105−2)に渡す処理や、処理部(103−2〜105−2)から出力されるデータをシーケンス制御ブロック102に渡す処理を行う。
この通信部103−1〜105−1は、例えば、1つまたは複数のレジスタと、アクセス対象のレジスタを選択するためのアドレスデコーダを有している。シーケンス制御ブロック102から出力されるアドレスに応じて、アドレスデコーダによりアクセス対象のレジスタが選択されると、この選択されたレジスタに対して、シーケンス制御ブロック102によるデータの書き込みまたは読み出しが実行される。
【0030】
(処理部103−2〜105−2)
処理部103−2〜105−2は、通信部において得られる設定データに応じて、所定の処理を実行する。そして、処理の進行状況や処理結果などの処理に係わる種々の状態を示すステータス・データや、処理の過程で生成されたデータなどを通信部(103−1〜105−1)へ出力する。
なお、処理部103−2〜105−2において処理の過程で用いられるデータや生成されるデータは、例えば図1に示すように(D1〜D3)、異なる機能ブロックの間において、通信部103−1〜105−1を介さずに直接やり取りさせても良い。
【0031】
[シーケンス制御ブロック102]
シーケンス制御ブロック102は、ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理を実行する。
【0032】
このシーケンス制御ブロック102は、図1の例において、通信部50と制御部80を有している。
【0033】
(通信部50)
通信部50は、ホストインターフェース部101を介してホストコンピュータ200との間でデータをやり取りする処理を行う。すなわち、ホストインターフェース部101を介してホストコンピュータ200から与えられる設定データを制御部80に渡す処理や、制御部80から出力されるデータをホストインターフェース部101経由でホストコンピュータ200に渡す処理を行う。
この通信部50は、例えば上述した通信部103−1〜105−1と同様に、1つまたは複数のレジスタとアドレスデコーダを有している。ホストコンピュータ200から出力されるアドレスに応じて、特定のレジスタがアクセス対象として選択されると、これに対して、ホストコンピュータ200によるデータの書き込みまたは読み出しが実行される。
【0034】
(制御部80)
制御部80は、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理を行う。
制御部80は、例えば、シーケンスの開始を指示する図示しないスタート信号STAがホストコンピュータ200より出力された場合や、シーケンス開始を指示するホストコンピュータ200からの設定データが通信部50において取得された場合に、シーケンス処理を開始する。
【0035】
図2は、シーケンス制御ブロック102の制御部80から各機能ブロックに設定データが出力される様子を図解した図である。
図2に示すように、ホストコンピュータ200からシーケンス制御ブロック102に対してシーケンス開始の指示が与えられると(T1,T2)、制御部80は、所定のシーケンス処理に基づいて設定データ(T3〜T5)を生成し、これを設定対象の機能ブロック103〜105に与える。
【0036】
また、制御部80は、上述したシーケンス処理の過程において、機能ブロックの通信部(103−1〜105−1)からデータを読み出すためのステップ(読み出しステップ)を有している。そして、シーケンス処理の別のステップにおいて、この機能ブロックから読み出したデータ、または、通信部80において取得されるホストコンピュータ200からの設定データの少なくとも一方に基づいて、機能ブロック103〜105に与える設定データを生成する。
【0037】
例えば図3に示すように、機能ブロックから読み出したデータを、他の機能ブロックに設定データとしてそのまま与える。図3の例では、機能ブロック104から読み出したデータを、ホストコンピュータ200まで戻すことなく、機能ブロック105へ設定データとして転送している。
また、読み出したデータをそのまま転送するだけでなく、例えば、ある機能ブロックから読み出したデータに応じて、その機能ブロックまたは別の機能ブロックに与える設定データを生成しても良い。
あるいは、ホストコンピュータ200からシーケンス制御ブロック102に対して、シーケンス処理の制御に係わる情報(例えばシステムの動作モードなどを指示する情報)が設定データとして与えられた場合に、こうした情報と機能ブロックから読み出したデータとに応じて、機能ブロックに与える設定データを生成しても良い。
【0038】
さらに、制御部80は、読み出しステップにおいて機能ブロックから読み出されたデータを、通信部50へ出力する。
これにより、機能ブロックから読み出されたデータは、ホストコンピュータ200からの読み出し要求に応じて、通信部50からホストコンピュータ200に出力される。
【0039】
また、制御部80は、上記したシーケンス処理の過程において、条件分岐を行うステップ(条件分岐ステップ)を有する。この条件分岐ステップにおいては、読み出しステップで機能ブロックから読み出したデータ、または、通信部80において取得されるホストコンピュータ200からの設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定する。
【0040】
さらにまた、制御部80は、ホストコンピュータ200からの要求に応じて、ホストコンピュータ200において生成される設定データをその設定対象の機能ブロックへ出力する。すなわち、図4に示すように、制御部80が生成する設定データ(図2のT3〜T5)の替わりに、ホストコンピュータ200が生成する設定データ(図4のT9〜T11)をそのまま各機能ブロックに与える。
【0041】
次に、上述した集積回路100の更に詳細な構成について、図5および図6を参照して説明する。
【0042】
図5は、集積回路100の詳細な構成の一例を示すブロック図である。
図1と図5の同一符号は同一の構成要素を示している。
【0043】
図5の例において、シーケンス制御ブロック102は、ホストインターフェース部101を介して、ホストコンピュータ200から4つの信号(WD1,AD1,WE1,RE1)を入力するとともに、ホストコンピュータ200へ1つの信号(RD1)を出力する。
書き込みデータWD1は、シーケンス制御ブロック102や機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータRD1は、シーケンス制御ブロック102や機能ブロック103〜105の通信部からホストコンピュータ200へ出力されるデータである。
アドレスAD1は、ホストコンピュータ200によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号WE1は、ホストコンピュータ200によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD1で指定されるレジスタに書き込みデータWD1が書き込まれる。
読み出しイネーブル信号RE1は、ホストコンピュータ200によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD1で指定されるレジスタから読み出しデータRD1が読み出される。
以降の説明では、シーケンス制御ブロック102に入力されるこの4つの信号(WD1,AD1,WE1,RE1)を、設定データSD1と称することにする。
【0044】
また、図5の例において、シーケンス制御ブロック102は、ホストインターフェース部101を介さずに、ホストコンピュータ200からスタート信号STAを入力する。
スタート信号STAは、シーケンス制御ブロック102におけるシーケンス処理を開始させるための信号である。
【0045】
さらに、図5の例において、シーケンス制御ブロック102は、機能ブロック103〜105へ4つの共通な信号(WD2,AD2,WE2,RE2)を出力するとともに、機能ブロック103〜105から1つの共通な信号(RD2)を入力する。
書き込みデータWD2は、機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
読み出しデータRD2は、機能ブロック103〜105の通信部からシーケンス制御ブロック102へ出力されるデータである。
アドレスAD2は、シーケンス制御ブロック102またはホストコンピュータ200によるアクセスの対象となるレジスタを指定するためのアドレスである。
書き込みイネーブル信号WE2は、シーケンス制御ブロック102またはホストコンピュータ200によるレジスタへの書き込みを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD2で指定されるレジスタへ書き込みデータWD2が書き込まれる。
読み出しイネーブル信号RE2は、シーケンス制御ブロック102またはホストコンピュータ200によるレジスタからのデータの読み出しを有効にする信号であり、この信号がアクティブ状態の場合に、アドレスAD2で指定されるレジスタから読み出しデータRD2が読み出される。
以降の説明では、シーケンス制御ブロック102から出力されるこの4つの信号(WD2,AD2,WE2,RE2)を、設定データSD2と称することにする。
【0046】
また、図5の例において、機能ブロック103の処理部103−2は、CCD等の撮像装置に与える不図示の制御信号を生成するとともに、撮像装置から入力される3原色のカラー画像データIm1を、輝度信号とクロマ信号とからなる画像データIm2に変換する処理を行う。
機能ブロック104の処理部104−2は、機能ブロック103から出力される画像データIm2に画素数変換処理を施し、所望の画面サイズの画像データIm3を生成する。
機能ブロック105の処理部105−2は、機能ブロック104から出力される画像データIm3に例えばJPEG方式やMPEG方式などの画像データ符号化処理を施し、符号化画像データIm4として出力する。
【0047】
図6は、シーケンス制御ブロック102の詳細な構成の一例を示すブロック図である。図1および図5と図6の同一符号は同一の構成要素を示す。
【0048】
図6に示すシーケンス制御ブロック102は、カウンタ10と、命令コード生成部20と、設定データ生成部30と、カウンタ制御部40と、通信部50と、セレクタ60とを有する。
カウンタ10およびカウンタ制御部40を含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部20は、本発明の命令コード生成手段の一実施形態である。
設定データ生成部30およびセレクタ60を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【0049】
{カウンタ10}
カウンタ10は、ホストコンピュータ200からシーケンス処理の開始を指示するスタート信号STAが与えられた場合に計数を開始する。
例えば、計数開始時の計数値PCは‘0’であり、図示しないクロック信号のパルスが入力される度に、カウンタ10は計数値PCを‘1’ずつインクリメントする。また、計数値PCがシーケンスの最終ステップに対応する‘FF’(16進数)に達した場合、計数動作を停止し、再びスタート信号STAが与えられた場合に、計数値を‘0’に初期化して、計数動作を開始する。
【0050】
また、カウンタ10は、後述するカウンタ制御部40から計数値PCの更新を指示する制御信号Csetが入力された場合、この制御信号Csetに応じて計数値Pcを更新する。
【0051】
{命令コード生成部20}
命令コード生成部20は、カウンタ10の計数値PCに応じた命令コードCCを生成する。
図7は、カウンタ10の計数値PC(16進数)に対応する命令コード生成部20の命令コードCC(2進数)の一例を示す図である。図7の例では、8ビットの計数値(‘0’〜‘FF’)に対応した6ビットの命令コードCCが生成される。
図7における計数値‘A’、‘F9’、‘FC’に対応した命令コードは、上述した条件分岐ステップの命令コードである。この命令コードが生成されると、命令コードごとに設定された分岐条件が成立した場合に、後述するカウンタ制御部40によって計数値PCが変更される。
【0052】
また、図8は、命令コード生成部20のRTL(register transfer level)回路記述の一例を示す図である。図8の記述例において、入力信号cnt_numは計数値PCに対応し、回路の出力信号func_code_decは命令コードCCに対応する。
図8の行番号L3〜L13に示すように、計数値PCと命令コードCCとの対応関係は、RTL記述言語のCASE文を用いて記述することが可能である。シーケンス処理の流れは、この計数値PCと命令コードCCとの対応関係によって決定されるため、設計の終了後に処理の流れを変更する必要が生じた場合でも、このCASE文を修正するのみで変更に対応することが可能であり、回路の修正や変更に伴う設計作業の負担を軽減することができる。
【0053】
{設定データ生成部30}
設定データ生成部30は、命令コード生成部20において生成される命令コードCCに応じた4つの信号(WD3,AD3,WE3,RE3)を生成する。
書き込みデータWD3、アドレスAD3、書き込みイネーブル信号WE3、および読み出しイネーブル信号RE3は、それぞれ、上述した書き込みデータWD2、アドレスAD2、書き込みイネーブル信号WE2、および読み出しイネーブル信号RE2に対応する信号である。
すなわち、書き込みデータWD3は、機能ブロック103〜105の通信部に入力され、そのレジスタに書き込まれるデータである。
アドレスAD3は、シーケンス制御ブロック102によるアクセスの対象となるレジスタを指定するアドレスである。
書き込みイネーブル信号WE3は、シーケンス制御ブロック102によるレジスタへの書き込みを有効にする信号である。
読み出しイネーブル信号RE3は、シーケンス制御ブロック102によるレジスタからのデータの読み出しを有効にする信号である。
読み出しデータRD2は、機能ブロック103〜105の通信部からシーケンス制御ブロック102へ出力されるデータである。
以降の説明では、設定データ生成部30から出力されるこの4つの信号(WD3,AD3,WE3,RE3)を、設定データSD3と称することにする。
【0054】
図9は、命令コードCCに対応する各ブロックの設定内容の例を示す図である。
図9の例では、命令コードCCの上位2ビットにおいて設定対象の機能ブロック(103〜105)が指示され、下位4ビットにおいてアクセスの内容(書き込みまたは読み出し)が指示される。
すなわち、上位2ビットが‘00’の場合、全機能ブロックが設定対象となり、初期化処理などが行なわれる。また、上位2ビットが‘01’、‘10’、‘11’の場合、それぞれ機能ブロック103、104、105が設定対象となる。
下位4ビットにおいて書き込みアクセスが指示された場合、設定データ生成部30は、書き込み先のレジスタのアドレスAD3とその書き込みデータWD3を生成し、書き込みイネーブル信号WE3をアクティブ状態、読み出しイネーブル信号RE3を非アクティブ状態に設定する。
また、下位4ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスAD3を生成し、書き込みイネーブル信号WE3を非アクティブ状態、読み出しイネーブル信号RE3をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータRD2が、読み出しレジスタ52に格納される。
【0055】
また、設定データ生成部30は、所定の値の命令コードCCが生成された場合に、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、設定データSD3を生成する。
例えば、読み出しレジスタ52に格納されているある機能ブロックからの読み出しデータを、書き込みデータWD3として別の機能ブロックのレジスタに出力する設定データSD3を生成する。これにより、ある機能ブロックのレジスタに格納されたデータを別の機能ブロックのレジスタにそのまま転送することができる。
また、読み出したデータをそのまま転送するだけでなく、例えば、読み出しレジスタ52に格納されているある機能ブロックの読み出したデータに応じて、その機能ブロックや別の機能ブロックに出力する設定データSD3を生成しても良い。
あるいは、通信レジスタ51に格納されているホストコンピュータ200からのデータと、読み出しレジスタ52に格納されている機能ブロックからの読み出したデータとに応じて、設定データSD3を生成しても良い。
【0056】
{カウンタ制御部40}
カウンタ制御部40は、命令コード生成部20において生成される命令コードCCが条件分岐の命令コードである場合、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、カウンタ10の計数値PCの更新を指示する制御信号Csetを出力する。例えば、読み出しレジスタに格納されている読み出しデータが所定の値を持つか否かに応じて、カウンタ10の新しい計数値PCを決定し、この決定した計数値への更新を指示する制御信号Csetを出力する。
【0057】
{通信部50}
図6の例において、通信部50は、通信レジスタ51および読み出しレジスタ52を有する。
通信レジスタ51は、ホストコンピュータ200からのアドレスAD1が通信レジスタ51を指示するアドレスであり、かつ、書き込みイネーブル信号WE1がアクティブ状態の場合、書き込みデータWD1を格納する。
読み出しレジスタ52は、ホストコンピュータ200からのアドレスAD1が読み出しレジスタ52を指示するアドレスであり、かつ読み出しイネーブル信号RE1がアクティブ状態の場合、格納したデータを読み出しデータRD1としてホストコンピュータ200に出力する。
【0058】
{セレクタ60}
セレクタ60は、通信レジスタ51に格納されるデータDA1に応じて、ホストコンピュータ200からの設定データSD1、または、設定データ生成部30からの設定データSD3の何れか一方を選択し、選択したデータを、シーケンス制御ブロック102の設定データSD2として出力する。
すなわち、ホストコンピュータ200によって通信レジスタ51にデータDA1が書き込まれると、このデータDA1に応じて、設定データSD1または設定データSD3の何れか一方が選択され、機能ブロック103〜105に出力される。設定データSD1が設定データSD2として出力される場合、機能ブロック103〜105は、ホストコンピュータ200によって直接制御されることになる。
【0059】
ここで、上述した構成を有する図1および図5に示す集積回路100の動作を説明する。
【0060】
図10は、シーケンス制御ブロック102において実行されるシーケンス処理の一例を示す図である。
【0061】
シーケンス制御ブロック102によりシーケンス処理が実行される動作モード(以降、第1の動作モードと呼ぶ)においては、先ず、ホストコンピュータ200から、セレクタ60において設定データSD3を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、設定データ生成部30の設定データSD3がセレクタ60において選択され、設定データSD2としてシーケンス制御ブロック102から出力される状態となる。
【0062】
次いで、ホストコンピュータ200からシーケンス処理の開始を指示するスタート信号STAが出力され、カウンタ10において、初期値‘0’から計数動作が開始される。
計数値PCがインクリメントされて‘1’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部20において生成され、これに応じた設定データSD3が設定データ生成部30において生成されて、セレクタ60を介し各機能ブロックに出力される。各機能ブロックでは、この設定データSD3に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値PCが‘2’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データSD3が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値PCが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データSD3が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データSD3に応じた所定の処理が実行される。
【0063】
例えば、計数値PCが‘20’の場合において、機能ブロック103のレジスタからの読み出しを指示する命令コードCCが生成されると、設定データ生成部30では、機能ブロック103のレジスタを指定するアドレスAD3が生成されるとともに、読み出しイネーブル信号RE3がアクティブ状態に設定される。これにより、機能ブロック103のレジスタに格納されたデータが読み出しデータRD2として出力され、読み出しレジスタ52に格納される。
次いで、計数値PCがインクリメントによって‘21’となり、この計数値に応じて、機能ブロック104のレジスタへ読み出しレジスタ52の格納データDA2を書き込むことを指示する命令コードCCが生成されると、設定データ生成部30では、機能ブロック104のレジスタを指定するアドレスAD3が生成され、書き込みイネーブル信号WE3がアクティブ状態に設定される。更に、書き込みデータWD3として、読み出しレジスタ52の格納データDA2と等しいデータが出力される。これにより、読み出しレジスタ52の格納データDA2が、機能ブロック104のレジスタへ書き込まれる。
このような2つの処理ステップによって、機能ブロック103のレジスタに格納されているデータが、機能ブロック104のレジスタへ転送される。
【0064】
また、例えば、計数値PCが‘F9’の場合に、読み出しレジスタ52の格納データDA2が‘20’と一致することを条件として計数値PCを‘D8’に更新することを指示する条件分岐の命令コードが生成されると、カウンタ制御部40では、読み出しレジスタ52に格納されたデータDA2が‘20’と等しいか否かの判定が行なわれる。この判定の結果、データDA2が‘20’と等しい場合には、計数値PCを‘D8’に設定する制御信号Csetがカウンタ制御部40において生成される。これにより、次のステップにおいて、カウンタ10の計数値PCが‘F9’から‘D8’へ更新され、シーケンスの流れが変更される。また、上述した判定の結果、データDA2が‘20’と等しくない場合には、計数値PCの更新が行なわれないため、次のステップにおいて、計数値PCは‘F9’から‘FA’へ通常どおりにインクリメントされる。
【0065】
こうしたシーケンス処理が順に実行され、計数値PCが‘FF’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データSD3が出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ10の計数動作が停止される。
【0066】
一方、ホストコンピュータ200から各機能ブロックに対して設定データSD1が直接与えられる動作モード(以降、第2の動作モードと呼ぶ)においては、ホストコンピュータ200から、セレクタ60において設定データSD1を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、ホストコンピュータ200の設定データSD1がセレクタ60において選択され、設定データSD2としてシーケンス制御ブロック102より各機能ブロックに出力される状態となる。
【0067】
以上説明したように、本実施形態に係る集積回路100によれば、ホストコンピュータ200からの要求に応じて、機能ブロック103〜105に与える一連の設定データを順に生成する所定のシーケンス処理がシーケンス制御ブロック102において実行され、機能ブロック103〜105では、このシーケンス処理の各ステップにおいて、シーケンス制御ブロック102より与えられる設定データに応じた所定の処理が実行される。すなわち、集積回路100の各機能ブロックに設定データを与える一連の処理が、ホストコンピュータ200からスタート信号STAを与えるだけで自動的に実行される。
したがって、内部の機能ブロックにおいて処理を実行させるために外部のホストコンピュータから設定データを逐一与えなくてはならない図15に示すような集積回路に比べて、ホストインターフェース部で生じる遅延時間を大幅に削減できるため、機能ブロックに対する設定データの供給処理を高速化することができる。
また、各機能ブロックに設定データを与える一連の処理からホストコンピュータ200を開放することができるため、ホストコンピュータ200の処理負担を大きく軽減することができる。
さらに、ホストコンピュータ200のプログラムを簡易化することができるため、その設計作業の負担を軽減することができる。
【0068】
また、シーケンス処理の実行時において、特許文献1に記載のASICのように、外部の記憶装置から内部のバッファへ設定データを転送する必要がないため、外部のバスを占有することがない。したがって、このような集積回路を用いる場合に比べて、システム全体の処理速度を高速化することができる。
【0069】
しかも、シーケンス制御ブロック102におけるシーケンス処理の全体の流れは、RTL回路記述において図8に示すようにCASE文を用いて記述することが可能である。このため、設計の過程においてシーケンス処理に変更が生じた場合でも、回路の至るところの記述を修正する必要はなく、このCASE文の修正のみで容易に設計変更に対応することができる。したがって、設計作業の負担を一層軽減することができる。
【0070】
また、集積回路100によれば、シーケンス処理のあるステップにおいて、機能ブロックから出力されるデータをシーケンス制御ブロック102の読み出しレジスタ52に格納し、シーケンス処理の別のステップにおいて、この格納した読み出したデータを設定データとして他の機能ブロックに与えることができる。すなわち、外部のホストコンピュータを経由することなく、集積回路の内部において機能ブロック間のデータの転送を行うことができる。したがって、図15に示す集積回路や特許文献1のASICに比べて、機能ブロック間のデータ転送処理を高速化することができる。
加えて、シーケンス制御ブロック102は、機能ブロックから読み出したデータをそのまま転送するだけでなく、機能ブロックからの読み出しデータ、またはホストコンピュータ200から与えられる設定データの少なくとも一方に応じて、設定データを生成することができる。したがって、様々な条件に応じた設定データを生成することができるため、ホストコンピュータ200に負担を与えることなく、より多様なシーケンス処理を実行することができる。
【0071】
また、機能ブロック間のデータ転送が集積回路内部で行われることから、各機能ブロックに特別な通信回路を設ける必要がない。したがって、IPとして入手された機能ブロックが含まれる集積回路にも、本実施形態は適用可能である。
【0072】
さらに、集積回路100によれば、上記したシーケンス処理の過程において、条件分岐ステップを設けることができる。すなわち、この条件分岐ステップにおいて、機能ブロックからの読み出しデータ、または、ホストコンピュータ200から与えら得る設定データの少なくとも一方に基づいて、次に実行すべきシーケンス処理のステップを決定することができる。したがって、ホストコンピュータ200に負担を与えることなく、更に多様なシーケンス処理を実行することができる。
【0073】
また、集積回路100は、機能ブロックの制御に関する動作モードとして、第1の動作モードまたは第2の動作モードを有する。第1の動作モードでは、シーケンス制御ブロック102において上述した所定のシーケンス処理が実行される。第2の動作モードでは、ホストコンピュータ200において生成された設定データSD1がその設定対象の機能ブロックへ出力される。すなわち、ホストコンピュータ200によって各機能ブロックが直接制御される。
このように、シーケンス制御ブロック102において全てのシーケンス処理を実行させることも、また、各機能ブロックの制御にホストコンピュータ200を直接関与させることも可能になるため、機能ブロックの制御に関する設計の自由度が高くなり、設計の簡易化を図ることができる。また、シーケンス制御ブロック102とホストコンピュータ200とが機能ブロックの制御に係わる度合いを、処理速度や回路規模などの条件に応じて適切に設定することが可能になる。
【0074】
<第2の実施形態>
図11は、本発明の第2の実施形態に係る集積回路100Aにおける、シーケンス制御ブロック102Aの構成の一例を示すブロック図である。
【0075】
本実施形態に係る集積回路100Aは、例えば図5に示すシーケンス制御ブロック102が図11に示すシーケンス制御ブロック102Aに置き換えられるとともに、機能ブロックが更に1つ加わる(機能ブロック106)。すなわち、機能ブロックが4つになる。
【0076】
新たに加わる機能ブロック106は、機能ブロック103〜105と同様に、処理部と通信部を有する。これらの動作は既に述べたものと同一であるので、ここでは説明を省略する。
【0077】
シーケンス制御ブロック102Aは、図11の例において、カウンタ10Aと、命令コード生成部20Aと、第1設定データ生成部31〜第4設定データ生成部34と、カウンタ制御部40Aと、通信部50と、セレクタ61および62と、OR回路70とを有する。
カウンタ10Aおよびカウンタ制御部40Aを含むユニットは、本発明の計数手段の一実施形態である。
命令コード生成部20は、本発明の命令コード生成手段の一実施形態である。
第1設定データ生成部31〜第4設定データ生成部34、OR回路70、セレクタ61および62を含むユニットは、本発明の設定データ生成手段の一実施形態である。
【0078】
ここで、シーケンス制御ブロック102Aの各構成について詳しく説明する。ただし、通信部50については、図6における同一符号の構成要素と同じであるため、ここでは説明を省略する。
【0079】
{カウンタ10A}
カウンタ10Aは、カウンタ制御部40Aから出力される、シーケンス処理の開始または終了を指示する信号SSに応じて、計数動作を開始または終了する。
例えば、計数開始時の計数値PCAは‘0’であり、シーケンス処理の開始を指示する信号SSが入力された場合に、計数値PCAを‘1’ずつインクリメントする動作を開始する。また、計数値PCAがシーケンスの最終ステップに対応する‘1FF’(16進数)に達した場合、計数動作を停止し、再びシーケンス処理の開始を指示する信号SSが入力された場合、計数値を‘0’に初期化して、計数動作を開始する。
また、計数動作の途中でシーケンス処理の終了を指示する信号SSが入力された場合には、計数動作を停止するとともに、その計数値PCAを‘0’に初期化する。
【0080】
また、カウンタ10Aは、カウンタ制御部40から出力される計数イネーブル信号Cenがアクティブ状態の場合に計数動作を実行し、計数イネーブル信号Cenが非アクティブ状態の場合に計数動作を停止する。
【0081】
さらに、カウンタ10Aは、カウンタ制御部40から計数値PCAの更新を指示する制御信号Csetが入力された場合、この制御信号Csetに応じて計数値PCAを更新する。この動作は、カウンタ10と同様である。
【0082】
{命令コード生成部20A}
命令コード生成部20Aは、カウンタ10Aの計数値PCAに応じた命令コードCCAを生成する。
図12は、カウンタ10Aの計数値PCA(16進数)に対応する命令コード生成部20Aの命令コードCCA(2進数)の一例を示す図である。
図12の例では、9ビットの計数値(‘0’〜‘1FF’)に対応した8ビットの命令コードCCAが生成される。
【0083】
図12における計数値‘A’、‘1F9’、‘1FC’に対応した命令コードは、既に述べたものと同様な、条件分岐ステップの命令コードである。
また、計数値‘5’に対応した命令コードは、後述するアクノリッジ信号待ちステップの命令コードである。
計数値‘9’、‘1FB’に対応した命令コードは、後述する割込み信号待ちステップの命令コードである。
【0084】
{セレクタ61}
セレクタ61は、命令コード生成部20Aにおいて生成される命令コードCCAに応じて、第1設定データ生成部31〜第4設定データ生成部34の何れか1つを選択的に起動させるブロック選択信号Bselを生成し、命令コードCCAとともに、第1設定データ生成部31〜第4設定データ生成部34に出力する。
【0085】
図13は、命令コードCCAに対応する各ブロックの設定内容の例を示す図である。
図13の例において、命令コードCCAの上位1ビットは、アクノリッジ信号待ちステップ、または割込み信号待ちステップの何れかの場合において‘1’となり、他の命令コードでは‘0’となる。
また、その次の中間3ビットは、設定対象の機能ブロック(103〜106)を指示する。
下位4ビットは、アクセスの内容(書き込みまたは読み出し)を指示する。
【0086】
図13の例によると、命令コードCCAの中間3ビットが‘000’または‘001’の場合、全機能ブロックが設定対象となり、機能ブロックの初期化処理などが行なわれる。この場合、セレクタ61は、全機能ブロックに対する設定信号を生成するブロックとして、第1設定データ生成部31を起動させる。
また、中間3ビットが‘010’の場合、機能ブロック103が設定対象となる。この場合、セレクタ61は、機能ブロック103に対する設定信号を生成するブロックとして、第1設定データ生成部31を起動させる。なお、第1設定データ生成部31は、全機能ブロックに対する設定信号を生成するブロックも兼用している。
中間3ビットが‘011’の場合、機能ブロック104が設定対象となる。この場合、セレクタ61は、機能ブロック104に対する設定信号を生成するブロックとして、例えば第2設定データ生成部32を起動させる。
中間3ビットが‘100’または‘101’の場合、機能ブロック105が設定対象となる。この場合、セレクタ61は、機能ブロック105に対する設定信号を生成するブロックとして、第3設定データ生成部33を起動させる。
中間3ビットが‘110’または‘111’の場合、機能ブロック106が設定対象となる。この場合、セレクタ61は、機能ブロック106に対する設定信号を生成するブロックとして、第4設定データ生成部34を起動させる。
【0087】
{第1設定データ生成部31〜第4設定データ生成部34}
第1設定データ生成部31〜第4設定データ生成部34は、セレクタ61のブロック選択信号Bselに応じて起動し、その起動状態において、それぞれ機能ブロック103〜106に与える設定データSD3−1〜SD3−4を生成する。
ただし、上述したように、第1設定データ生成部31については、例えば機能ブロックの初期化処理などにおいて必要となる、全機能ブロックに対する設定信号の生成も行う。
【0088】
第1設定データ生成部31〜第4設定データ生成部34における設定データの生成動作の一部は、既に述べた設定データ生成部30と同様である。
すなわち、第1設定データ生成部31〜第4設定データ生成部34は、命令コード生成部20Aの命令コードCCAに応じて、書き込みデータ、アドレス、書き込みイネーブル信号、および読み出しイネーブル信号の4信号を含んだ、設定データ(SD3−1〜SD3−4)をそれぞれ生成する。
命令コードCCAの下位4ビットにおいて書き込みアクセスが指示された場合、書き込み先のレジスタのアドレスとその書き込みデータを生成し、書き込みイネーブル信号をアクティブ状態、読み出しイネーブル信号を非アクティブ状態に設定する。
命令コードCCAの下位4ビットにおいて読み出しアクセスが指示された場合には、読み出し先のレジスタのアドレスを生成し、書き込みイネーブル信号を非アクティブ状態、読み出しイネーブル信号をアクティブ状態に設定する。これにより、読み出し先のレジスタから出力される読み出しデータが、読み出しレジスタ52に格納される。
設定データの生成を指示する所定の命令コードCCが入力された場合は、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、その設定データを生成する。これにより、例えば、既に述べた機能ブロック間のデータ転送処理が可能になる。
【0089】
また、第1設定データ生成部31〜第4設定データ生成部34は、設定データ生成部30とは異なる動作として、アクノリッジ信号ACK1〜ACK4を生成する。
すなわち、第1設定データ生成部31〜第4設定データ生成部34は、命令コード生成部20Aにおいて生成される命令コードCCAが、アクノリッジ信号待ちステップを指示する所定の命令コードである場合、複数の設定データを順次生成する。例えば、機能ブロック104から8つの画素データを順に読み出して、これを機能ブロック105に転送するといった処理を、複数の設定データを順次生成することによって実行する。
そして、この一連の設定データを出力し終えたところで、アクノリッジ信号(ACK1〜ACK4)をアクティブ状態に設定する。これにより、1つの命令コードCCAによって複数の設定データを生成することが可能になる。
【0090】
{セレクタ62}
セレクタ62は、通信レジスタ51に格納されるデータDA1および命令コードCCAに応じて、設定データSD1、設定データSD3−1,…,設定データSD3ー4の何れかを選択し、選択したデータを、シーケンス制御ブロック102Aの設定データSD2Aとして出力する。
すなわち、ホストコンピュータ200によって通信レジスタ51にデータDA1が書き込まれると、このデータDA1に応じて、設定データSD1を選択するか否かが決定される。設定データSD1が選択される場合、集積回路100Aの動作モードは、ホストコンピュータ200によって機能ブロックの制御が行われる第2の動作モードとなる。
また、設定データSD1が選択されない場合には、命令コードCCAに応じて、設定データSD3−1〜SD3ー4の何れかが選択される。この場合、集積回路100Aの動作モードは、シーケンス制御ブロック102Aによって機能ブロックの制御が行われる第1の動作モードとなる。
【0091】
{カウンタ制御部40A}
カウンタ制御部40Aは、命令コード生成部20Aにおいて生成される命令コードCCAが条件分岐の命令コードである場合、通信レジスタ51や読み出しレジスタに格納されているデータ(DA1、DA2)に応じて、カウンタ10Aの計数値PCAの更新を指示する制御信号Csetを出力する。この動作は、既に述べたカウンタ制御部40と同様である。
【0092】
また、カウンタ制御部40Aは、アクノリッジ信号待ちステップの命令コードが命令コード生成部20Aにおいて生成された場合、計数動作を停止する。これにより、次のステップへの移行が停止する。そして、この計数動作の停止後、OR回路70から出力されるアクノリッジ信号ACKがアクティブ状態へ変化する場合に、計数動作を再開する。
【0093】
さらに、カウンタ制御部40Aは、割り込み信号待ちステップの命令コードが命令コード生成部20Aにおいて生成された場合、同様に計数動作を停止する。そして、この計数動作の停止後、命令コードにおいて指定される機能ブロックから所定の割り込み信号が出力された場合に、計数動作を再開する。
【0094】
{OR回路70}
OR回路70は、第1設定データ生成部31〜第4設定データ生成部34において生成されるアクノリッジ信号ACK1〜ACK4を入力し、何れか1つの信号がアクティブ状態の場合にアクティブとなり、全てが非アクティブ状態の場合に非アクティブとなるアクノリッジ信号ACKを出力する。
【0095】
ここで、上述した構成を有する集積回路100Aの動作を説明する。
【0096】
図14は、シーケンス制御ブロック102Aにおいて実行されるシーケンス処理の一例を示す図である。
【0097】
第1の動作モードにおいては、先ず、ホストコンピュータ200から、セレクタ62において設定データSD3−1〜SD3−4の何れかを選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、第1設定データ生成部31〜第4設定データ生成部34の設定データがシーケンス制御ブロック102Aから出力され得る状態となる。
【0098】
次いで、ホストコンピュータ200からシーケンス処理の開始を指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納されると、カウンタ制御部40Aから計数動作の開始を指示する信号SSが出力され、これにより、カウンタ10Aにおいて初期値‘0’から計数動作が開始される。
計数値PCAがインクリメントされて‘1’になると、シーケンスのスタート処理を指示する命令コードが命令コード生成部20Aにおいて生成され、これに応じた設定データSD3−1が第1設定データ生成部31において生成されて、セレクタ62を介し各機能ブロックに出力される。各機能ブロックでは、この設定データSD3−1に応じて、シーケンスのスタートに伴う所定の処理が実行される。
次いで、計数値PCAが‘2’になると、各機能ブロックの初期化処理を指示する命令コードが生成され、これに応じた設定データSD3−1が生成されて、各機能ブロックに出力される。各機能ブロックでは、初期化に伴う所定の処理が実行される。
以降同様に、計数値PCAが順次インクリメントされると、インクリメント後の計数値に応じた命令コードが生成され、これに応じた設定データSD3−n(nは1から4までの整数を示す)が生成されて、各機能ブロックに出力される。各機能ブロックでは、設定データSD3−nに応じた所定の処理が実行される。
【0099】
例えば、計数値PCAが‘5’の場合において、アクノリッジ信号待ちステップを指示する命令コードCCAが生成されると、カウンタ制御部40Aによって計数イネーブル信号Cenが非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。また、この命令コードCCAが指示する設定データ生成部、例えば第2設定データ生成部32において、機能ブロック104やその他の機能ブロックに対する一連の設定データSD3−2が順次生成される。これらの設定データSD3−2が全て出力されたところで、第2設定データ生成部32からアクティブ状態のアクノリッジ信号ACK2が出力される。これに応じて、カウンタ制御部40Aの計数イネーブル信号Cenがアクティブ状態となり、カウンタ10Aの計数が再開される。
このように、アクノリッジ信号待ちステップでは、1つの命令コードで複数の設定データが生成される。
【0100】
また、例えば、計数値PCAが‘10C’の場合において、割り込み信号待ちステップを指示する命令コードCCAが生成されると、カウンタ制御部40Aによって計数イネーブル信号Cenが非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。この停止状態において、命令コードCCAが指示する機能ブロック、例えば機能ブロック106について、その所定の割り込み信号が出力されているか否かの検出が行われる。そして、この割り込み信号が出力された場合に、カウンタ制御部40Aの計数イネーブル信号Cenがアクティブ状態となり、カウンタ10Aの計数が再開される。
このように、割り込み信号待ちステップでは、ある機能ブロックから割り込み信号が出力されるまでの間、シーケンス処理が停止される。
【0101】
その他、機能ブロックからのデータの読み出し動作、通信部50のレジスタ格納データ(DA1、DA2)に応じた設定データ(SD3−1〜SD3−4)の生成動作、条件分岐ステップの動作については、上述したシーケンス制御ブロック102と同様である。
【0102】
こうしたシーケンス処理が順に実行され、計数値PCAが‘1FF’に到達すると、各機能ブロックには、シーケンスの終了処理を指示する設定データSD3−1が第1設定データ生成部31から出力され、これに応じた所定の処理が各機能ブロックにおいて実行される。その後、カウンタ10Aの計数動作が停止される。
【0103】
また、こうしたシーケンス処理の途中で、ホストコンピュータ200からシーケンスの終了を指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納されると、カウンタ制御部40からシーケンスの終了を指示する信号SSが出力され、カウンタ10Aの計数動作が停止される。この場合、カウンタ10Aの計数値PCAは終了値‘1FF’に移動される。
【0104】
第2の動作モードにおいては、ホストコンピュータ200から、セレクタ62において設定データSD1を選択するように指示する設定データSD1が出力され、その書き込みデータWD1が通信レジスタ51に格納される。これにより、ホストコンピュータ200の設定データSD1がセレクタ62において選択され、設定データSD2Aとしてシーケンス制御ブロック102より各機能ブロックに出力される状態となる。
【0105】
以上説明したように、本実施形態に係る集積回路100Aによれば、集積回路100と同様な動作により同等な効果を奏することが可能であるとともに、次に述べるような効果を奏することができる。
【0106】
すなわち、集積回路100Aによれば、命令コード生成部20Aにおいてアクノリッジ信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部40Aにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。また、設定データ生成部(31〜34)では、複数の設定データが順次生成される。そして、この設定データの生成が終了すると、設定データ生成部(31〜34)によってアクノリッジ信号(ACK1〜ACK4)がアクティブ状態に設定され、OR回路70のアクノリッジ信号ACKがアクティブ状態になる。アクノリッジ信号ACKがアクティブ状態になると、カウンタ制御部40Aにおいて計数イネーブル信号がアクティブ状態となり、カウンタ10Aの計数動作が再開される。
このように、アクノリッジ信号待ちステップにおいて、1つの命令コードから複数の設定データを生成することが可能になる。したがって、より少ない命令コードで、多様なシーケンス処理を行うことができ、命令コード生成部の回路規模を小さくすることが可能になる。
【0107】
また、集積回路100Aによれば、命令コード生成部20Aにおいて割り込み信号待ちステップを指示する命令コードが生成された場合、カウンタ制御部40Aにおいて計数イネーブル信号が非アクティブ状態に設定され、カウンタ10Aの計数動作が停止される。そして、この計数動作の停止後に、機能ブロックから所定の割り込み信号が出力された場合、カウンタ制御部40Aにおいて計数イネーブル信号がアクティブ状態に設定され、カウンタ10Aの計数動作が再開される。
このように、割り込み信号待ちステップにおいて、機能ブロックからの割り込み信号が出力されるまでシーケンス処理を停止させることが可能になる。したがって、機能ブロックからの割り込み信号を待ってから処理を進めることが必要な場合でも、ホストコンピュータ200の関与が不要になり、より効率的で高速な処理を行うことができる。
【0108】
また、条件分岐ステップに加えて、アクノリッジ信号待ちステップや割り込み信号待ちステップなどをシーケンスに設けることが可能になるため、これらの組み合わせにより、多様なシーケンス処理を実現することが可能になる。
【0109】
例えば、図14の計数値‘8’において、機能ブロック103により所定の処理が開始され、続く計数値‘9’において、この処理の終了を示す機能ブロック103からの割り込み信号待ち状態となる。機能ブロック103において処理が終了し、その終了を知らせる割り込み信号が出力されると、カウンタ10Aの計数動作が再開され、計数値が‘9’から‘A’へインクリメントされる。計数値‘A’においては、機能ブロック103の通信部103−1からそのステータスを示すデータが読み出されて、読み出しレジスタ52に格納される。計数値‘B’においては、読み出しレジスタ52に格納されたデータDA2が所定の条件を満たすか否かの判定が行われ、この判定結果に応じて、次に処理すべきステップが決定され、これに応じて、カウンタ10Aの計数値PCAが更新される。
このような処理ステップの組み合わせにより、各機能ブロックの処理結果が正常か否かの判断をシーケンス制御ブロック102Aにおいて行うことが可能になる。すなわち、シーケンス制御ブロック102Aにおいて、集積回路全体のステータスを把握することが可能になる。したがって、ホストコンピュータ200は、シーケンス制御ブロック102Aの通信部にアクセスするだけの簡単な処理で、集積回路全体のステータスを把握することができるため、ホストコンピュータ200における集積回路のステータス管理を簡易化することができる。
【0110】
また、集積回路100Aによれば、ホストコンピュータ200の要求に応じてシーケンス処理を終了させることができるため、シーケンス処理が終了しなくなるといった異常な状態を、ホストコンピュータ200からの制御によって容易に解消することができる。
【0111】
また、集積回路100Aによれば、集積回路100におけるスタート信号STAのような特別な信号線を有しておらず、シーケンス制御ブロック102Aとホストコンピュータ200との通信がホストインターフェース部101を介して行われる。このため、信号ピンの数を減らすことが可能になる。
【0112】
なお、本発明は上述した実施形態に限定されない。
たとえば、上述した実施形態において示した種々の数値(機能ブロックの数、信号のビット幅、信号値など)は何れも説明上の一例に過ぎず、本発明はこれに限定されるものではない。
【0113】
また、上述した実施形態では、集積回路内における各機能ブロックが、データ線、アドレス線、書き込みイネーブル線、読み出しイネーブル線等を有するバスによって通信を行う例が示されているが、機能ブロック間の通信方式はこれに限定されず、他の種々の通信方式(例えばシリアル信号によるパケット方式など)を用いることも可能である。
【0114】
【発明の効果】
本発明の集積回路によれば、機能ブロックに対する設定データの供給処理をより高速化することができる。
また、機能ブロックから出力されるデータを別の機能ブロックに設定データとして供給する処理をより高速化することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る集積回路の構成の一例を示すブロック図である。
【図2】シーケンス制御ブロックの制御部から各機能ブロックに設定データが与えられる様子を図解した図である。
【図3】機能ブロック間においてデータが転送される様子を図解した図である。
【図4】ホストコンピュータからシーケンス制御ブロックを介して各機能ブロックに設定データが供給される様子を図解した図である。
【図5】第1の実施形態に係る集積回路の詳細な構成の一例を示すブロック図である。
【図6】第1の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図7】図6に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図8】命令コード生成部のRTL回路記述の一例を示す図である。
【図9】図6に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図10】図6に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図11】本発明の第2の実施形態に係るシーケンス制御ブロックの詳細な構成の一例を示すブロック図である。
【図12】図11に示すシーケンス制御ブロックにおける、計数値と命令コードとの対応例を示す図である。
【図13】図11に示すシーケンス制御ブロックにおける、命令コードと各ブロックの設定内容との対応例を示す図である。
【図14】図11に示すシーケンス制御ブロックにおいて実行されるシーケンス処理の一例を示す図である。
【図15】複数の機能ブロックを有する集積回路の一般的な構成の一例を示すブロック図である。
【図16】図15に示す集積回路における、機能ブロック間のデータ転送処理の様子を図解した図である。
【符号の説明】
10,10A…カウンタ、20,20A…命令コード生成部、30,31〜34…設定データ生成部、40,40A…カウンタ制御部、50…通信部、51…通信レジスタ、52…読み出しレジスタ、60,61,62…セレクタ、70…OR回路、80…制御部、100,100A…集積回路、101…ホストインターフェース部、102,102A…シーケンス制御ブロック、103〜106…機能ブロック、200…ホストコンピュータ
Claims (15)
- 与えられる設定データに応じた所定の処理を実行する複数の機能ブロックを有する集積回路であって、
上位装置からの要求に応じて、上記機能ブロックに与える一連の設定データを順に生成する所定のシーケンス処理を実行するシーケンス制御ブロックを有する、
集積回路。 - 上記シーケンス制御ブロックは、上記シーケンス処理の第1のステップにおいて、上記機能ブロックから出力されるデータを読み出し、上記シーケンス処理の第2のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成する、
請求項1に記載の集積回路。 - 上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記読み出しデータを上記上位装置に出力する、
請求項2に記載の集積回路。 - 上記シーケンス制御ブロックは、上記シーケンス処理の第3のステップにおいて、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、次に実行すべき上記シーケンス処理のステップを決定する、
請求項2に記載の集積回路。 - 上記シーケンス制御ブロックは、上記シーケンス処理の第4のステップにおいて、上記機能ブロックから所定の割り込み信号が出力されるまでの間、次のステップへの移行を停止する、
請求項1に記載の集積回路。 - 上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力する、
請求項1に記載の集積回路。 - 上記シーケンス制御ブロックは、上記上位装置からの要求に応じて、上記シーケンス処理を終了する、
請求項1に記載の集積回路。 - 上記シーケンス制御ブロックは、
上記上位装置からスタート信号が与えられた場合に計数を開始する計数手段と、
上記計数手段の計数値に応じた命令コードを生成する命令コード生成手段と、
上記命令コードに応じた上記設定データを生成する設定データ生成手段と、を含む、
請求項1に記載の集積回路。 - 上記設定データ生成手段は、上記命令コード生成手段において第1の命令コードが生成された場合、上記機能ブロックから出力されるデータを読み出すための設定データを生成し、上記命令コード生成手段において第2の命令コードが生成された場合、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて、上記設定データを生成する、
請求項8に記載の集積回路。 - 上記シーケンス制御ブロックは、
上記機能ブロックからの読み出しデータを格納し、上記上位装置からの要求に応じて、格納した上記読み出しデータを上記上位装置に出力するレジスタを有する、
請求項9に記載の集積回路。 - 上記計数手段は、上記命令コード生成手段において第3の命令コードが生成された場合、上記機能ブロックからの読み出しデータ、または、上記上位装置から与えられる設定データの少なくとも一方に基づいて計数値を更新する、
請求項9に記載の集積回路。 - 上記計数手段は、上記命令コード生成手段において第4の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記機能ブロックから所定の割り込み信号が出力された場合に計数動作を再開する、
請求項8に記載の集積回路。 - 上記設定データ生成手段は、上記命令コード生成手段において第5の命令コードが生成された場合、複数の設定データを順次生成し、当該設定データの生成後に確認応答信号を出力し、
上記計数手段は、上記命令コード生成手段において第5の命令コードが生成された場合、計数動作を停止し、当該停止後に、上記設定データ生成手段から上記確認応答信号が出力された場合に計数動作を再開する、
請求項8に記載の集積回路。 - 上記設定データ生成手段は、上記上位装置からの要求に応じて、上記上位装置において生成される設定データをその設定対象の機能ブロックへ出力する、
請求項8に記載の集積回路。 - 上記計数手段は、上位装置からの要求に応じて、計数動作を停止するとともにその計数値を初期化する、
請求項8に記載の集積回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003158572A JP2004362176A (ja) | 2003-06-03 | 2003-06-03 | 集積回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003158572A JP2004362176A (ja) | 2003-06-03 | 2003-06-03 | 集積回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004362176A true JP2004362176A (ja) | 2004-12-24 |
Family
ID=34051932
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003158572A Pending JP2004362176A (ja) | 2003-06-03 | 2003-06-03 | 集積回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004362176A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7571260B2 (en) | 2005-10-04 | 2009-08-04 | Denso Corporation | CPU address decoding with multiple target resources |
| JP2020087242A (ja) * | 2018-11-30 | 2020-06-04 | 株式会社デンソー | 電子制御装置 |
-
2003
- 2003-06-03 JP JP2003158572A patent/JP2004362176A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7571260B2 (en) | 2005-10-04 | 2009-08-04 | Denso Corporation | CPU address decoding with multiple target resources |
| JP2020087242A (ja) * | 2018-11-30 | 2020-06-04 | 株式会社デンソー | 電子制御装置 |
| JP7183745B2 (ja) | 2018-11-30 | 2022-12-06 | 株式会社デンソー | 電子制御装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20050075722A (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
| JPH0652102A (ja) | データ転送装置 | |
| US20080040700A1 (en) | Behavioral synthesizer, debugger, writing device and computer aided design system and method | |
| KR20170049191A (ko) | 이미지 처리 장치 및 이미지 처리 방법 | |
| JP5856434B2 (ja) | バス接続回路、半導体装置及びバス接続回路の動作方法 | |
| US8402251B2 (en) | Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address | |
| CN101295241A (zh) | 传送数据 | |
| JP6294732B2 (ja) | データ転送制御装置及びメモリ内蔵装置 | |
| JP2004362176A (ja) | 集積回路 | |
| US20070073953A1 (en) | Performing an N-bit write access to an MxN-bit-only peripheral | |
| US7664890B2 (en) | System control device | |
| JPWO2010029682A1 (ja) | 情報処理装置 | |
| WO2010013427A1 (ja) | 集積回路 | |
| US9424040B2 (en) | LSI and LSI manufacturing method | |
| JP2007323491A (ja) | ダイレクトメモリアクセス制御装置および制御方法 | |
| JP4647578B2 (ja) | レーダ信号処理装置 | |
| JP3647078B2 (ja) | プロセッサ | |
| JP4682786B2 (ja) | マイクロコンピュータ | |
| US7272680B2 (en) | Method of transferring data between computer peripherals | |
| JP6246585B2 (ja) | 論理回路設計方法及び方法 | |
| US20130097343A1 (en) | Arrangement, method, integrated circuit and device for routing requests | |
| CN101127030A (zh) | 半导体器件 | |
| JP3981373B2 (ja) | 半導体集積回路 | |
| JP4750446B2 (ja) | 半導体集積回路 | |
| JPH11282888A (ja) | システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 |