以下の実施例においては便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施例において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施例において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施例において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施例における各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。なお、実施例では、MISFET(Metal Insulator Semiconductor Field Effect Transistor)の一例としてMOSFET(Metal Oxide Semiconductor Field Effect Transistor)(MOSトランジスタと略す)を用いるが、ゲート絶縁膜として非酸化膜を除外するものではない。
以下、本発明の実施例を図面に基づいて詳細に説明する。実施例を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
本実施例1では、例えば、各4ビットで構成された複数のフリップフロップ(レジスタ)の各ビットに任意の値を書き込めるように構成した半導体集積回路装置の例を説明する。
《半導体集積回路装置(主要部)の構成》
図1は、本発明の実施例1による半導体集積回路装置において、その主要部の構成例を示す概略図である。図1に示す半導体集積回路装置は、ツリー構造のネットワーク上に適宜配置された複数の分岐回路101〜110およびレジスタ121〜131を備えている。端子150には外部から供給される制御信号が接続される。制御信号は、ここで3ビットの下り信号で構成され、このうちの1ビットはクロック信号、他の1ビットはアドレス兼データ信号、更に他の1ビットはマーカ信号である。クロック信号は、一定の周期で「0」と「1」を繰り返す信号である。アドレス兼データ信号は、各分岐回路における分岐方向を示すアドレス情報やレジスタの各ビットに書き込む値を指示するデータ情報を供給する信号である。マーカ信号は、アドレス信号の先頭を示す信号である。
各分岐回路101〜110は、全て同じ機能を持ち、次の機能を持つように構成される。各分岐回路は、1組の制御信号が入力され2組の制御信号を出力する。出力の制御信号の各組を、それぞれ‘0’側または‘1’側と称することにする。図1の各分岐回路101〜110の左側に表記した3本の線は入力側、右上側に表記した3本の線は‘0’側出力、右下側に表記した3本の線は‘1’側出力の制御信号をそれぞれ表わす。各分岐回路は、クロック信号を入力側から両方の出力側に伝達する。この際に、クロック信号には、分岐回路内のバッファに伴う遅延が加わる。
また、各分岐回路101〜110は、アドレス兼データ信号に対してクロック信号の1サイクル分の遅延を加え、入力側から両方の出力側に伝達する。この時、各分岐回路は、クロック信号の立ち上りエッジに同期してアドレス兼データ信号の入力を取り込み、クロック信号の立ち下りエッジに同期して出力する。さらに、各分岐回路は、マーカ信号の入力が「1」の時のアドレス兼データ信号が示す情報(‘0’側又は‘1’側)に基づいて、いずれか一方の出力側にのみマーカ信号を伝達する。この際に、各分岐回路は、マーカ信号に対してクロック信号の2サイクル分の遅延を加えることで、アドレス兼データ信号との間のクロック信号の位相関係を1サイクル分シフトさせる。すなわち、マーカ信号入力が「1」の時から2サイクル後に、マーカ信号出力側の一方に「1」が出力され、他方に「0」が出力される。マーカ信号入力が「0」の時から2サイクル後には、マーカ信号出力側の両方に「0」が出力される。各分岐回路は、マーカ信号に対しても、クロック信号の立ち上りエッジに同期してその入力を取り込み、立ち下りエッジに同期して出力を行う。
《分岐回路およびレジスタの詳細》
図2は、図1における分岐回路の詳細な構成例を示す回路図である。近年のLSI設計ツールを使用すれば上記のような仕様を記述するだけでその機能を持つ回路を自動設計することができるが、もし手作業で設計するなら分岐回路は例えば図2のような構成になる。図2に示す分岐回路は、エッジトリガ型のフリップフロップ(以下FFと略す場合有り)201〜207、AND回路211,212、インバータ回路221、ロジック機能の無いバッファ231〜237を備える。
この回路により、クロック信号は、入力(CLKin)から両方の出力(CLKout0,CLKout1)に向けてバッファ231と234(もしくは237)の遅延時間だけかかって伝搬する。アドレス兼データ信号は、入力(A&Din)から両方の出力(A&Dout0,A&Dout1)に向けて、立ち上がりエッジトリガ型FF201、立ち下がりエッジトリガ型FF203、およびバッファ232を介して伝搬され、その結果、1サイクルかかって伝搬する。
また、マーカ信号入力(MKRin)は、立ち上がりエッジトリガ型FF202によってラッチされる。ここで当該ラッチデータが「1」の場合、アドレス兼データ信号に基づいてAND回路211,212の一方が「1」を他方が「0」を出力する。当該各出力は、2段の立ち下がりエッジトリガ型FF(204,205と206,207)とバッファ(233,236)を介して出力(MKRout0,MKRout1)に伝搬される。その結果、マーカ信号入力の「1」は、マーカ信号出力の一方に向けて2サイクルかかって伝搬され、その時のマーカ信号出力の他方には「0」が伝搬される。マーカ信号入力が「0」であれば、その2サイクル後には両方のマーカ信号出力が「0」になる。なお、この回路は一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
図3は、図1におけるレジスタの詳細な構成例を示す回路図である。ここでは、図1の各レジスタ121〜131は、全て同じ機能を持つものとし、例えば次のような機能を持つものとする。各レジスタは、3ビットの制御信号で制御され、4ビットの情報(BIT0〜3)を保持する。3ビットの制御信号は、クロック信号(CLK)、データ信号(DAT)、マーカ信号(MKR)により構成される。クロック信号は、一定の周期で「0」と「1」を繰り返す信号である。データ信号は、保持するべき4ビットの値を指示する信号である。マーカ信号は、データ信号の先頭を示す信号である。図1に示したように、各レジスタには、分岐回路の出力の内の1組を介して制御信号が入力される。すなわち、各レジスタには、図2の分岐回路のクロック信号出力(CLKout0又は1)、アドレス兼データ信号出力(A&Dout0又は1)、マーカ信号出力(MKRout0又は1)を介してそれぞれクロック信号(CLK)、データ信号(DAT)、マーカ信号(MKR)が入力される。
マーカ信号は通常は「0」であり、マーカ信号が「0」である限り4ビットの保持内容(BIT0〜3)は変化せずに保持される。マーカ信号が「1」となった時には、そのサイクルのデータ信号をBIT3、次のサイクルのデータ信号をBIT2、更に次のサイクルのデータ信号をBIT1、更に次のサイクルのデータ信号をBIT0として、計4ビットの情報が取り込まれ、保持される。この場合、クロック信号の立ち上りエッジに同期してデータ信号およびマーカ信号が取り込まれ、立ち下りエッジに同期してBIT0〜3の保持内容が更新される。また、BIT0〜3に対応するデータ信号が全て到達した後、BIT0〜3に保持する内容が一斉に更新される。
このような機能を持つ回路も近年のLSI設計ツールを使用すれば上記のような仕様を記述するだけでその機能を持つ回路を自動設計することができるが、もし手作業で設計するならレジスタは例えば図3のような構成になる。図3に示すレジスタは、エッジトリガ型のフリップフロップ300〜303,310〜313,320〜323、AND回路331、インバータ回路341,342を備える。この回路では、1サイクルごとのデータ信号(DAT)の内容がクロック信号(CLK)の立ち上りエッジに同期してフリップフロップ300〜303に逐次伝送されていく。そして、マーカ信号(MKR)が「1」となったサイクルから4サイクル後のクロック信号(CLK)の立ち下りエッジにおいて、フリップフロップ300〜303の内容がフリップフロップ310〜313に一斉に取り込まれBIT0〜3として保持される。これにより、上述の各レジスタとしての機能を実現できる。この回路も一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
《半導体集積回路装置(主要部)の動作》
図4は、図1の半導体集積回路装置の動作例を示す波形図である。ここでは、例えばレジスタ123のBIT3〜0(図3参照)にそれぞれ「1」「0」「1」「0」の各値を保持させたい場合を例とする。図4には、図1の端子150に加える制御信号(分岐回路101の制御信号入力)と、ツリー構造の途中の分岐回路103,106とレジスタ123における各制御信号入力の信号波形(クロック信号(CLKin,CLK)、マーカ信号(MKRin,MKR)、アドレス兼データ信号(A&Din)またはデータ信号(DAT))が示されている。この図は左から右に向かって時間の経過を表わし、クロックの0サイクル目から18サイクル目までの各信号値を示している。なお、クロック周波数は、分岐回路の各段を通る信号の伝搬時間と比べて十分遅くなるように設定される。
ここで、レジスタ123にアクセスする場合、分岐回路101→103→106の順に‘1’側→‘1’側→‘0’側を選択することになるため、図4に示すように、分岐回路101のアドレス兼データ信号(A&Din)におけるアドレス信号(ADR)として、1サイクル目と2サイクル目に「1」、3サイクル目に「0」が入力される。更に、前述したようにBIT3〜0の順に「1」「0」「1」「0」を保持させるため、アドレス兼データ信号(A&Din)におけるデータ信号(DATin)として、アドレス信号に引き続く4サイクル目〜7サイクル目に「1」「0」「1」「0」がそれぞれ入力される。また、分岐回路101に入力されるマーカ信号(MKRin)は、1サイクル目だけが「1」とされ、他は「0」とされる。
すると、分岐回路101に入力される制御信号は、マーカ信号(MKRin)が「1」のサイクルでアドレス兼データ信号(A&Din)が「1」であるから、分岐回路101は、‘1’側出力にのみマーカ信号の「1」を伝搬する。この際に、分岐回路101は、アドレス兼データ信号(A&Din)を1サイクル、マーカ信号(MKRin)を2サイクルそれぞれ遅延させた上で‘1’側出力に伝搬する。これが分岐回路103に制御信号として入力される。一方、分岐回路101の‘0’側出力(すなわち図1の分岐回路102に入力される制御信号)は、クロック信号とアドレス兼データ信号は伝搬するが、マーカ信号は「0」固定のままである。
以下同様に、分岐回路103、分岐回路106、レジスタ123の順に、マーカ信号は2サイクルずつ、アドレス兼データ信号は1サイクルずつ、それぞれ遅れながら伝搬していく。他の経路を伝搬していく制御信号は、クロック信号とアドレス兼データ信号は伝搬するが、マーカ信号は全て「0」固定のままである。これに伴い、例えば、分岐回路103では、分岐回路101の場合と比較して、アドレス兼データ信号(A&Din)内でマーカ信号(MKRin)が「1」となるサイクル位置が1サイクル分だけ遅延する。その結果、分岐回路101がアドレス兼データ信号(A&Din)内の先頭から1サイクル目をアドレス信号として認識したのに対して、分岐回路103は先頭から2サイクル目をアドレス信号として認識することができる。
また、レジスタ123にのみマーカ信号(MKR)の「1」が到達し、他のレジスタのマーカ信号は全て「0」固定のままである。これを受けて、例えば図3の回路を持つレジスタ123は、マーカ信号(MKR)が「1」の時のデータ信号「1」をBIT3に、次のサイクルのデータ信号「0」をBIT2に、更に次のサイクルのデータ信号「1」をBIT1に、更に次のサイクルのデータ信号「0」をBIT0にそれぞれ保持する。他のレジスタは全てマーカ信号が「0」固定であるため、その保持内容は変化しない。
なお、他のレジスタの保持内容も変えたい場合は、例えば、レジスタ123に供給する制御信号が全て終了した後(すなわち図4の例では8サイクル目以降)に、そのレジスタを指定するアドレスと保持させたいデータをアドレス兼データ信号として順に入力し、そのアドレス信号の最初のタイミングでマーカ信号を「1」にすればよい。すると、そのアドレス信号が示すレジスタにのみマーカ信号の「1」が到達し、レジスタ123の場合と同様にしてレジスタの保持内容が変更される。
なお、図1において、レジスタ123や122にアクセスする場合のアドレス信号は3ビットであるが、レジスタ124〜131にアクセスする場合のアドレス信号は4ビットである。また、レジスタ121にアクセスする場合のアドレス信号は2ビットである。アドレス信号のビット数が異なるとレジスタにアクセスするために必要なサイクル数は異なるが、レジスタに到達する時点のデータ信号とマーカ信号のタイミング関係はアドレス信号のビット数にかかわらず同じであるため、同様にして各レジスタの保持内容を変更することができる。
《半導体集積回路装置(主要部)の主要な効果等》
以上、本実施例1の半導体集積回路装置を用いることで、代表的には、例えば次のような効果が得られる。第1に、半導体集積回路装置における設計の容易化が実現可能となる。比較例として、例えば、ツリー構造の分岐回路およびレジスタと共にアドレスデコード回路等を設け、アドレスデコード回路が外部アドレスをデコードすることで各分岐回路に対して並列に分岐先を指示するような方式が考えられる。ただし、この場合、既に完成したツリー構造に対して分岐回路の追加等が生じると、例えば、各分岐回路に対する外部アドレスの割り当て方法が変わり、アドレスデコード回路の変更や、アドレスデコード回路とツリー構造との間の配線変更等が必要とされる場合が有る。このような変更が生じると、変更後の状態でもツリー構造内の経路選択が正常に行えることを保証するため、既に完成した筈のツリー構造を含めて再検証等を行う必要性が生じ得る。
一方、本実施例1の方式では、ツリー構造が一旦完成すると、当該ツリー構造は、独立した回路として取り扱うことができるため、新たに分岐回路を加えても、当該ツリー構造における回路・配線変更や、当該ツリー構造を含めた再検証等は不要となる。例えば、図1の分岐回路101の前段に新たに分岐回路を加える場合には、当該新たに加えた分岐回路の出力信号が正常であることさえ保証できれば、分岐回路101以降となる既に完成したツリー構造に対する回路・配線変更は不要であり、当該ツリー構造を含めた再検証も不要である。このように、設計の途中で既に完成したツリー構造に対して分岐回路を追加する必要性が生じ、分岐回路の段数を変える必要性が生じても、これに伴い既に完成したツリー構造は特に影響を受けることがないため、検証を含めた設計の手戻りが無くなり、設計の容易化が図れる。
第2に、少ない数の制御信号(図1の例では3本)によりレジスタにアクセスを行えるため、半導体集積回路装置の小型化等が実現可能となる。第3に、ツリー構造に伴い、スキャンFF方式等と比較して、各レジスタに対する最長アクセス時間を短縮できる。すなわち、スキャンFF方式の場合、各レジスタに対する最長アクセス時間は、レジスタの数を倍数として増大するが、ツリー構造の場合、レジスタの数の対数程度でしか増大しない。したがって、半導体集積回路装置の大規模化が進むほど、より有益な効果が得られる。
なお、実施例1ではレジスタ121〜131は全て4ビット構成として説明したが、勿論、4ビット構成に限定されるものではなく、任意のビット数のレジスタが使用可能である。更に、レジスタ121〜131の中の一部を4ビット構成、他の一部を8ビット構成、更に他の一部を12ビット構成にするなど、ビット数の異なるレジスタを混在させることも可能である。この場合、レジスタによってデータ信号のビット数が異なりデータを送るために必要なサイクル数が異なるが、分岐回路の構成は共通でかまわない。また、実施例1ではマーカ信号以外の制御信号は分岐回路101〜110全部とレジスタ121〜131全部に到達する構成としたが、マーカ信号以外の制御信号についても必要の無い方向には伝達させないように各分岐回路を構成することも可能である。この場合、ハードウエアの規模は大きくなるが、不必要な消費電力を削減することができる。
さらに、図1におけるツリー構造における分岐回路やレジスタの設置箇所は、勿論、図1の箇所に限定されるものではなく、少なくとも1個の分岐回路を介してレジスタが設置されるように構成すれば、任意の箇所に定めることが可能である。また、図1に示す各レジスタ121〜131は、例えば、所定のデータの保存用として使用することや、あるいは、一般的な論理回路において各組み合わせ回路間に配置されるフリップフロップのように、データ転送用として使用することも可能である。この場合、例えば、各レジスタ(例えばレジスタ121)を1ビットのFFで構成すると共にその入力部に選択回路を設け、当該選択回路が、前段の分岐回路(例えば分岐回路102)からの経路か所定の組み合わせ回路からの経路を選択すればよい。
本実施例2では、実施例1で説明したようにレジスタの各ビットに任意の値を書き込めるだけでなく、レジスタの各ビットに保持されている値を読み出すこともできるように構成した半導体集積回路装置の例を説明する。この実施例2でも、各レジスタがそれぞれ4ビットで構成されるものとして説明する。
《半導体集積回路装置(主要部)の構成(応用例[1])》
図5は、本発明の実施例2による半導体集積回路装置において、その主要部の構成例を示す概略図である。図5の半導体集積回路装置は、図1の構成例と異なり、下り方向の3ビットの制御信号に加えて、上り方向の1ビットの読み出し信号を備えている。この読み出し信号は、各レジスタから読み出した情報を伝達させるための信号である。
各分岐回路101〜110における下り方向の機能は、実施例1の場合と同じである。一方、上り方向に関して、各分岐回路101〜110は、下位の分岐回路またはレジスタから送られてくる読み出し信号の論理和を、1サイクル遅らせて上位に伝達する機能を有する。この時、例えば、クロック信号の立ち上りエッジに同期して読み出し信号の入力を取り込み、クロック信号の立ち下りエッジに同期して出力する。
《分岐回路およびレジスタの詳細(応用例[1])》
図5で述べた機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図6のような構成になる。図6は、図5における分岐回路の詳細な構成例を示す回路図である。図6に示す分岐回路は、図2の構成例に対して、エッジトリガ型のフリップフロップ601,602、OR回路611、ロジック機能の無いバッファ631が加わった構成となっている。これにより、下位側から送られて来る2個の読み出し信号(RDin0,RDin1)をOR回路611で受け、その論理和を立ち上がりエッジトリガ型FF601および立ち下がりエッジトリガ型FF602により1サイクル遅らせて、バッファ631を介して上位側(RDout)に伝達することができる。下り方向は、図2と同じ回路および動作である。この回路も一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
図7は、図5におけるレジスタの詳細な構成例を示す回路図である。この実施例2において、図5の各レジスタ121〜131は、例えば次のような機能を持つ。マーカ信号が「1」となるサイクルにおいてデータ信号が「0」であれば、保持内容を変更せず、その次のサイクルから4サイクルにわたって保持内容(BIT3〜0)を読み出し信号として順次出力する。マーカ信号が「1」となるサイクルにおいてデータ信号が「1」であれば、その次のサイクルから4サイクルにわたって順次送られてくるデータ信号をBIT3〜0として取り込み保持する。5サイクル以上にわたってマーカ信号が「0」である時は、保持内容を変更せず、読み出し信号として「0」を出力する。
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図7のような構成になる。図7に示すレジスタは、図3の構成例に対して、エッジトリガ型のフリップフロップ700〜703,720、セレクタ711〜713、AND回路710,731、ロジック機能の無いバッファ732が加わったものとなっている。この回路は、クロック信号(CLK)の立ち上りエッジに同期してフリップフロップ320がマーカ信号(MKR)の「1」を取り込むと、フリップフリップ700にアンド回路710を介してBIT0の値が入力され、フリップフロップ701〜703にそれぞれセレクタ711〜713を介してBIT1〜3の値が入力される。すなわち、フリップフロップ310〜313の保持内容がフリップフロップ700〜703に入力される。そして、フリップフリップ700〜703は、その半サイクル後のクロック信号の立ち下りエッジに同期して当該入力を取り込む。なお、その時点でフリップフロップ703からBIT3の値が読み出し信号(RD)として出力される。
ここで、前述したフリップフロップ320が、マーカ信号(MKR)として1サイクルだけ「1」を取り込んだのち次のサイクルで「0」を取り込むと、これに応じてセレクタ711〜713の選択先が変わり、フリップフロップ700〜703はシフトレジスタとして機能する。この場合、フリップフロップ703において、前述したBIT3の読み出し信号の出力に続いて、次のサイクルから、1サイクルごとにBIT2〜0の値が読み出し信号(RD)として順次出力される。マーカ信号が「0」となってから5サイクル以上経過すると、この5サイクル以上の箇所に対応する読み出し信号は、フリップフロップ320およびAND回路710を介して「0」に定められているため、読み出し信号には「0」が出力される。これにより読み出し動作が実現できる。
一方、マーカ信号(MKR)が「1」となるサイクルでデータ信号(DAT)も「1」であれば、アンド回路731、フリップフロップ720,321〜323、アンド回路331を介して、その4サイクル半後にワンショットのクロック信号が生成される。フリップフロップ310〜313は、このクロック信号の立ち下りエッジに同期してフリップフロップ300〜303の内容を一斉に取り込み、BIT0〜3として保持する。それ以外の場合にはそれまでのBIT0〜3の内容が保持される。なお、図7の回路で書き込み動作が行なわれる場合にはその直前のBIT3〜0の内容を読み出す動作も行なわれるが、書き込みを行なう時に読み出した結果を使用しないようにすれば特に支障はない。
《半導体集積回路装置(主要部)の動作(応用例[1])》
図8は、図5の半導体集積回路装置における書き込み時の動作例を示す波形図である。ここでは、図4の場合と同様に、レジスタ123のBIT3〜0にそれぞれ「1」「0」「1」「0」の各値を保持させたい場合を例とする。図8と図4の違いは、アドレス兼データ信号(A&Din)におけるアドレス信号(ADR)を送るサイクルとデータ信号(DATin)を送るサイクルとの間に1サイクルの空きサイクルを設け、このサイクルで読み書き選択信号(R/W)として書き込みを指示する「1」を送ることにある。
制御信号が分岐回路101→103→106を通っている期間は、マーカ信号(MKRin)の「1」はアドレス信号(ADR)内のサイクルに位置しているため、図4の場合と同様にレジスタ123にのみマーカ信号の「1」が到達し、他のレジスタのマーカ信号は「0」に固定されたままである。一方、レジスタ123では、マーカ信号(MKR)が「1」となるサイクルの読み書き選択信号(R/W)が「1」であるため、その次のサイクルから4サイクル分のデータ信号(DAT)「1」「0」「1」「0」がBIT3〜0として取り込まれ保持される。他のレジスタはマーカ信号が「0」固定であるため保持内容は変化しない。
図9は、図5の半導体集積回路装置における読み出し時の動作例を示す波形図である。レジスタ123の内容を読み出したい場合は、図9に示すようにアドレス信号(ADR)を送るサイクルの次のサイクルで読み書き選択信号(R/W)として「0」を送る。するとレジスタ123では、マーカ信号(MKR)が「1」となるサイクルの読み書き選択信号(R/W)が「0」であるため保持内容は変化せず、その次のサイクルから読み出し信号(RD)としてBIT3〜0の内容を順に出力する。図9には、保持内容が「1」「0」「1」「0」であった場合の例を示す。
他のレジスタは全てマーカ信号が「0」固定であるため、読み出し信号(RD)として全て「0」を出力する。従って、レジスタ123の出力が1サイクルごとに分岐回路106→103→101の順に伝送され(RDout)、図5の端子150から読み出すことができる。なお、最上位の分岐回路101から目標のレジスタまでの分岐回路の段数によって上り信号が返ってくるタイミングが異なるので、1つのレジスタの内容を読み出してから他のレジスタの内容を読み出すまでの間は、上り信号が返ってくるタイミングが重ならないように必要なサイクル数を空ける。書き込みを行なう時にも意図しない上り信号が返ってくるので、1つのレジスタに書き込んでから他のレジスタの内容を読み出すまでの間も同様に必要なサイクル数を空ける。
以上、本実施例2の半導体集積回路装置を用いることで、実施例1の場合と同様の効果が得られ、代表的には、設計の容易化等が実現可能になる。さらに、レジスタの読み出し機能も実現可能になり、半導体集積回路装置の機能性を高めることが可能になる。なお、この実施例2でも実施例1の場合と同様に、レジスタ121〜131の一部または全部を4ビット以外の構成としたり、マーカ信号以外の制御信号も所望の方向にのみ伝達させる構成にしたり等、様々に変更することが可能である。
本実施例3では、実施例1や実施例2で説明した機能に加えて、各レジスタの各ビットにそれぞれ設計時点で定めたデフォルト値を一斉に書き込めるように構成した半導体集積回路装置の例を説明する。
《半導体集積回路装置(主要部)の構成(応用例[2])》
図10は、本発明の実施例3による半導体集積回路装置において、その主要部の構成例を示す概略図である。図10に示す半導体集積回路装置は、ここでは実施例2の構成例に本実施例3の機能を加えたものとなっている。図10において、図5の構成例との違いは、下り方向の制御信号として更に1ビットのリセット信号が加わったことにある。これにより、下り方向は全部で4ビット、上り方向は1ビットとなる。
各分岐回路では、リセット信号は他の信号の状態にかかわらず出力側の両方に伝達させる。リセット信号は、クロック信号と同様にバッファの遅延時間分の遅れだけで入力側から出力側に伝達させるように構成することも可能であるし、アドレス兼データ信号と同様にクロック信号の1サイクル分の遅延を加えて伝達させるように構成することも可能である。
各レジスタは、例えばリセット信号が「1」の時には設計時点で定めたデフォルト値を取り込み、リセット信号が「0」の時には実施例2と同じ動作をするように構成される。特に限定はされないが、具体的には、例えば、図7のフリップフロップ310〜313の入力部にフリップフロップ300〜303の出力かデフォルト値かをリセット信号によって選択する回路を設け、加えて、AND回路331の出力とリセット信号のオア演算によって各フリップフロップ310〜313にクロック信号を供給すればよい。なお、デフォルト値の取り込みは、リセット信号が「1」になった時点で取り込むように構成することも可能であるし、リセット信号が「1」となった後のクロック信号の立ち上りエッジまたは立ち下りエッジに同期して取り込むように構成することも可能である。
この実施例3では、最初にリセット信号として「1」を送って全てのレジスタにデフォルト値を書き込んだ後、リセット信号を「0」にして、変更が必要なレジスタにだけ個別に任意の値を設定することが可能である。これにより、デフォルト値からの変更が必要なレジスタの数が少ない場合には、書き込みに必要な時間を短縮できる。また、勿論、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。
本実施例4では、実施例2の構成において書き込みと読み出しの区別を示す情報を読み書き選択信号(R/W)で送る代わりにマーカ信号(MKRin,MKR)で送ることにより、アドレス信号とデータ信号の間の1サイクルを省略できる半導体集積回路装置の例を説明する。具体的には、マーカ信号を1サイクルだけ「1」にした時には読み出しを示し、2サイクル連続で「1」にした時には書き込みを示す。本実施例4では、分岐回路とレジスタの接続方法は実施例2(図5)と同じであるが、各分岐回路や各レジスタの機能は実施例2と異なる。
《分岐回路およびレジスタの詳細(応用例[3])》
図11は、本発明の実施例4による半導体集積回路装置において、図5における分岐回路の詳細な構成例を示す回路図である。ここでは、各分岐回路は、マーカ信号(MKRin)が2サイクル連続で「1」となった時は、その先頭の「1」に対応するサイクルにおけるアドレス兼データ信号(A&Din)に基づいてマーカ信号を出力する方向を決めるように構成する。1サイクルだけ「1」となった時は、実施例2と同様にそのサイクルにおけるアドレス兼データ信号(A&Din)に基づいてマーカ信号を出力する方向を決める。その他の機能は、実施例2で使用する分岐回路(図6)と同じである。
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図11のような構成になる。図11に示す分岐回路は、図6の構成例に対して、フリップフリップ204〜207が削除され、代わりにエッジトリガ型のフリップフロップ1101〜1104、セレクタ1111、AND回路1121が加わった構成となっている。この回路は、クロック信号(CLKin)の立ち上りエッジに同期してフリップフロップ202が取り込んだマーカ信号(MKRin)が「1」であり、且つその直前のサイクルのマーカ信号(フリップフリップ1101の保持内容)が「0」である場合に限り、AND回路1121が「1」を出力する。セレクタ1111は、このAND回路1121の「1」を受けてフリップフロップ201の出力を選択する。
その時にフリップフロップ201には、上記のマーカ信号が「1」となったサイクルにおけるアドレス兼データ信号(A&Din)が取り込まれている。したがって、その情報が、セレクタ1111を介して半サイクル後のクロック信号(CLKin)の立ち下りエッジに同期してフリップフロップ1102に取り込まれる。その他のサイクルではフリップフロップ1102の内容は保持される。そして、そのフリップフロップ1102に保持した内容が「0」であれば‘0’側の出力(MKRout0)のみに、「1」であれば‘1’側の出力(MKRout1)のみに、フリップフロップ1103,1104を介して2サイクル遅らせたマーカ信号が出力される。すなわち、マーカ信号(MKRin)が連続して「1」になった場合も1サイクルだけ「1」になった場合も、マーカ信号が「0」から「1」になった直後のサイクルにおけるアドレス兼データ信号(A&Din)に基づいてマーカ信号を出力する方向が決められる。その他の機能は図6の分岐回路と同じである。
図12は、本発明の実施例4による半導体集積回路装置において、図5におけるレジスタの詳細な構成例を示す回路図である。ここでは、各レジスタは、マーカ信号(MKR)が2サイクル連続で「1」となった時は、その先頭の「1」に対応するサイクル以降のデータ信号を取り込んで保持する。1サイクルだけ「1」となった時は、実施例2と同様に読み出し信号としてレジスタの内容を順次出力する。
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図12のような構成になる。図12に示すレジスタは、図7の構成例を基準として、マーカ信号(MKR)周りの回路構成が変更されたものとなっている。すなわち、図7の構成例では、フリップフロップ320の出力が、AND回路731と4段のフリップフロップ720,321〜323を介してAND回路331に入力されるのに対して、図12の構成例では、フリップフロップ320の出力が、3段のフリップフロップ321〜323を介してAND回路331に入力される。この段数の違いは、実施例2のような読み書き選択信号(R/W)のサイクルを用いないことによる。更に、この際に、図7と異なる位置に配置されたAND回路731によって、フリップフロップ321の出力とフリップフロップ322の出力のアンド演算結果がフリップフロップ323の入力として与えられる。
この回路では、マーカ信号(MKR)が2サイクル連続で「1」となった際にAND回路731が「1」を出力し、その時に限り、マーカ信号の先頭の「1」から4サイクル後にAND回路331を介してワンショットのクロック信号が出力される。フリップフロップ310〜313は、当該クロック信号の立ち下りエッジに同期して、フリップフロップ300〜303の内容を取り込んでBIT0〜3として保持する。その時のフリップフロップ300〜303には、直前の4サイクル分のデータ信号が保持されているため、結果としてマーカ信号が2サイクル連続で「1」となった先頭のサイクルから4サイクル分のデータ信号がBIT3〜0として保持される。一方、マーカ信号(MKR)が1サイクルだけ「1」となった時はフリップフロップ310〜313の内容は変化しない。その場合の読み出しの動作は図7のレジスタと同様である。なお、この図11および図12の構成例では、マーカ信号が3サイクル以上連続して「1」にならないことを前提としている。
《半導体集積回路装置(主要部)の動作(応用例[3])》
図13は、本発明の実施例4による半導体集積回路装置において、その書き込み時の動作例を示す波形図である。ここでは、図5の構成例に対して図11および図12の構成例を適用し、図4の場合と同様に、レジスタ123のBIT3〜0にそれぞれ「1」「0」「1」「0」の各値を保持させたい場合を例とする。図13と図4の違いは、マーカ信号(MKRin,MKR)が2サイクル連続で「1」になっていることにある。
マーカ信号(MKRin)が連続して「1」になった場合は先頭の「1」に対応するサイクルのアドレス信号(ADR)によって分岐方向が決まるため、連続したマーカ信号は同じように連続したまま2サイクルずつ遅延して、1つの方向にのみ伝達していく。そして図4の場合と同様に、分岐回路101から分岐回路103、106を経てレジスタ123にマーカ信号が到達する。他のレジスタのマーカ信号は「0」に固定されたままである。そしてレジスタ123では、マーカ信号が最初に「1」となるサイクルから4サイクル分のデータ信号「1」「0」「1」「0」がBIT3〜0に取り込まれ保持される。他のレジスタはマーカ信号が「0」固定であるため保持内容は変化しない。
図14は、本発明の実施例4による半導体集積回路装置において、その読み出し時の動作例を示す波形図である。ここでは、図5の構成例に対して図11および図12の構成例を適用し、レジスタ123の内容を読み出す場合を例とする。この場合、図14に示すように、マーカ信号(MKRin,MKR)として1サイクルだけ「1」が送られる。マーカ信号が1サイクルだけ「1」である場合は、分岐回路もレジスタも実施例2と同じ動作をするため、図9と同じ結果になる。
この実施例4でも、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。さらに、実施例2の場合と異なり、ここでは読み書き選択信号(R/W)が不要となるため、その分だけレジスタに対するアクセスの高速化が図れる。なお、この実施例4では、マーカ信号を1サイクルだけ「1」にした時に読み出し動作を行ない2サイクル連続で「1」にした時に書き込み動作を行なうように構成した場合について説明したが、勿論これに限定されるものではない。例えば、マーカ信号が2サイクル連続で「1」の時に読み出し動作を行ない3サイクル連続で「1」の時に書き込み動作を行なうように構成することも可能であり、その他任意のサイクル数の組み合わせで定義することも可能である。
本実施例5では、実施例4の構成において、実施例3で説明したリセットを指示する信号もマーカ信号を使って送ることにより、3ビットの下り制御信号と1ビットの上り読み出し信号だけでリセットの機能も実現できる半導体集積回路装置の例を説明する。具体的には、例えばマーカ信号を3サイクル以上連続して「1」にした時にリセットの動作が行われる。マーカ信号の「1」の連続回数が2サイクル以下の場合には実施例4と同じように機能する。本実施例5では、分岐回路とレジスタの接続方法は実施例2や実施例4(すなわち図5)と同じであるが、各分岐回路や各レジスタの機能は実施例2や実施例4と異なる。
《分岐回路およびレジスタの詳細(応用例[4])》
図15は、本発明の実施例5による半導体集積回路装置において、図5における分岐回路の詳細な構成例を示す回路図である。ここでは、各分岐回路は、マーカ信号が3サイクル以上連続して「1」となった時は、両側のマーカ信号出力に、少なくとも3サイクル以上連続して「1」を出力するように構成される。また、マーカ信号が3サイクル以内の少なくとも1サイクルで「0」となる場合は、実施例4に使用する分岐回路と同じ動作をするように構成される。
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図15のような構成になる。図15に示す分岐回路は、図11の構成例に対して、更にエッジトリガ型のフリップフロップ1501、2ビットカウンタ1502、OR回路1511,1512、AND回路1513、NAND回路1514が加わったものとなっている。ここで、2ビットカウンタ1502は、AND回路1513の出力が「0」であればクロック信号(CLKin)の立ち下りエッジに同期してカウント値を1カウントずつ上昇させ、カウント値が「3」となった際には上昇を停止する。一方、AND回路1513の出力が「1」であればクロック信号(CLKin)の立ち下りエッジに同期してカウント値を「0」にする。その他の機能は、図11に使用する分岐回路と同様である。
図16は、図15の分岐回路の主な動作例を示す波形図である。図16に示すように、マーカ信号(MKRin)が3サイクル連続して「1」になると、3サイクル目のクロック信号(CLKin)の立ち上りエッジに同期してAND回路1513の出力が「1」となり、その半サイクル後のクロック信号の立ち下りエッジに同期してカウンタ1502のカウント値が「0」になる。カウンタ1502のカウント値がひとたび「0」になると、カウント値が「3」になるまでの間はNAND回路1514の出力は「1」である。従って、少なくとも3サイクルの間は両側のマーカ信号出力に「1」が出力される。
一方、マーカ信号(MKRin)の先頭の「1」に対応するアドレス兼データ信号(A&Din)に基づいてマーカ信号の出力先(図16の例では‘0’側のMKRout0)が定まる。当該マーカ信号の出力先には、入力から2サイクル後に「1」が出力され始めるため、その側には1サイクル多く「1」が出力される。また、マーカ信号の入力が4サイクル以上連続して「1」になると、AND回路1513の出力が「1」となる期間が複数サイクルとなり、その間はカウンタ1502がリセットされたままとなる。いずれにしても、マーカ信号の入力が3サイクル以上連続して「1」になると、両側のマーカ信号の出力に少なくとも3サイクル以上連続して「1」が出力される。また、連続する3サイクルの間の少なくとも1サイクル以上でマーカ信号の入力が「0」になるサイクルがあれば、AND回路1513の出力は「0」固定となり、NAND回路1514の出力も「0」固定となる。従って、この場合は図11の分岐回路と同じ動作をする。
図17は、本発明の実施例5による半導体集積回路装置において、図5におけるレジスタの詳細な構成例を示す回路図である。ここでは、各レジスタは、マーカ信号(MKR)が3サイクル以上連続して「1」となった時は、設計時にあらかじめ決めておいたデフォルト値を取り込むように構成される。さらに、マーカ信号が2サイクルだけ連続して「1」となりその前後のサイクルが「0」である場合や、1サイクルだけ孤立して「1」となりその前後のサイクルが「0」である場合や、「0」だけが連続する場合などは、全て実施例4のレジスタと同じ動作をするように構成される。
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図17のような構成になる。図17に示すレジスタは、図12の構成例に対して、更にセレクタ1700〜1703、エッジトリガ型のフリップフロップ1710、AND回路1720が加わったものとなっている。設計時にあらかじめ決めておくデフォルト値は、端子1750〜1753をハイレベルまたはローレベルの電圧に接続することにより設定される。
この回路は、マーカ信号(MKR)が3サイクル以上連続して「1」となると、その先頭の「1」がフリップフロップ1710に到達した時にはAND回路1720の出力が「1」となり、これに応じてセレクタ1700〜1703は端子1750〜1753による設定値を選択する。すると、その半サイクル後のクロック信号(CLK)の立ち下りエッジに同期してフリップフロップ310〜313が端子1750〜1753による設定値をセレクタ1700〜1703を介して取り込み、BIT0〜3として保持する。マーカ信号の「1」の連続回数が2サイクル以下の場合には、AND回路1720の出力は「0」固定となり、セレクタ1700〜1703は常にフリップフロップ300〜303の出力を選択する。従って、図12のレジスタと同じ動作をする。
このように、本実施例5では、マーカ信号を3サイクル以上連続して「1」にすれば全てのレジスタに対して規定のデフォルト値を設定でき、マーカ信号を2サイクルだけ連続して「1」にすれば所望のレジスタに所望の値を書き込むことができ、マーカ信号を1サイクルだけ孤立して「1」にすれば所望のレジスタの値を読み出すことができる。これにより、実施例3(図10)のように制御信号の数を増やすことなく各レジスタの初期設定を行うことができ、半導体集積回路装置の小型化と共に、実施例3と同様に書き込みに必要な時間を短縮できる。また、勿論、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。
なお、この実施例5では、マーカ信号を3サイクル以上連続で「1」にした時にリセットが行われる構成について説明したが、勿論これに限定されるものではない。例えば、マーカ信号を4サイクル以上連続で「1」にした時にリセットが行われるように構成することも可能であり、また、それ以上の任意のサイクル数でリセットが行われるように構成することも可能である。
前述した実施例1〜5では、1個の分岐回路においてそれぞれ1組の制御信号が入力され2組の制御信号を出力することを前提としてきたが、1組の制御信号が入力され3組以上の制御信号を出力するような構成であってもよい。その例として、ここでは、1組の制御信号が入力され4組の制御信号を出力するような分岐回路について説明する。
《分岐回路の詳細(応用例[5])》
図18は、本発明の実施例6による半導体集積回路装置において、それに含まれる分岐回路の詳細な構成例を示す回路図である。図18に示す分岐回路は、図2の分岐回路に対して、更にエッジトリガ型のフリップフロップ1801,1802,1804〜1807、AND回路1811,1812、ロジック機能の無いバッファ1832〜1837が追加された構成となっている。この回路は、図2の分岐回路を修正し4組の制御信号を出力できるように拡張したものである。
図19は、図18の分岐回路の動作例を示す波形図である。図19に示すように、クロック信号(CLKin)は、実施例1の分岐回路(図2)と同様に、バッファによる遅延だけで入力側から出力側に伝達される。アドレス兼データ信号(A&Din)も、図2と同様に、クロック信号の1サイクル分の遅延で入力側から出力側に伝達される。一方、マーカ信号(MKRin)の使用方法は図2と異なっており、マーカ信号が「1」になるサイクルのアドレス兼データ信号とその次のサイクルのアドレス兼データ信号の2ビットを使って分岐方向が決められ、その方向のマーカ信号にのみ「1」が出力される。他のマーカ信号出力は「0」のままである。
この分岐回路では、分岐方向を決めるために2ビットのアドレス信号を使うため、マーカ信号とアドレス兼データ信号のタイミング関係を2サイクルずらす必要がある。そのため、図18においてフリップフロップ202の後段にフリップフロップ1802が設けられ、これにより、図19に示すように、マーカ信号は、クロック信号(CLKin)の3サイクル分の遅延で入力側(MKRin)から出力側(ここではMKRout1)に伝達される。また、図18におけるフリップフロップ1801およびAND回路1811,1812は、フリップフロップ201およびAND回路211,212を含めて2ビットのアドレス信号をデコードするために設けられる。
この実施例6でも、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。なお、実施例1において、分岐回路の一部または全部をこの実施例6の分岐回路に置き換えてツリー構造のネットワークを構成することも可能である。また、実施例2〜5においても同様に、各分岐回路を、所定の機能を保持した状態で3組以上の制御信号を出力するように拡張し、ツリー構造のネットワークの一部または全部の分岐回路に適用することも可能である。
これまでの各実施例で述べたようなツリー構造のネットワークは、例えば1個のLSI(半導体チップ)内で構成することも、1個のLSIの枠を越えて複数のLSI(半導体チップ)で構成することも可能である。
《半導体集積回路装置(主要部)の構成(応用例[6])》
図20は、本発明の実施例7による半導体集積回路装置において、その主要部の構成例を示す概略図である。図20に示す半導体集積回路装置は、複数(ここでは2個)のLSI(2001,2002)を備え、各LSIは、これまでに述べたようなツリー構造のネットワーク上に、分岐回路またはレジスタに加えて入力回路2011,2012、出力回路2021,2022が配置された構成を備える。
この構成例では、LSI(2001)内の端子(外部端子)150からの制御信号が入力回路2011を介して分岐回路101に入力される。そして、分岐回路101から分岐した制御信号の1組が出力回路2021を介してLSI(2001)の外部に出力され、当該制御信号がLSI(2002)内の入力回路2012を介して分岐回路103に入力される。すなわち、LSI(2001)内の分岐回路101から分岐した制御信号の1組を使って、別のLSI(2002)が制御される。更に、LSI(2002)内の分岐回路103から分岐した制御信号の1組が、出力回路2022および端子(外部端子)2050を介してLSI(2002)の外部に出力され、これによって更に他のLSIが制御される。なお、ここでは、1個のLSIから1組の制御信号を外部に出力する構成としたが、複数組の制御信号を外に取り出し、複数個のLSIを制御することも可能である。
この実施例7でも、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。すなわち、例えば、LSI(2001)やLSI(2002)の設計が一旦完了した場合、その後に生じた仕様変更に応じて、例えば、LSI(2001)とLSI(2002)の接続の順序を入れ替えたり、更に他のLSIと接続したり、その接続順序を入れ替えたりすること等で対応することができる。この際には、LSI(2001,2002)内部の回路修正や当該LSIの内部回路を対象とした再検証等は不要である。
《半導体集積回路装置(主要部)の構成(応用例[7])》
前述した各実施例から分かるように、各実施例の制御方式は、アドレス信号やデータ信号がシリアル伝送される第1制御信号と、活性化によって第1制御信号における一部のクロックサイクルを指定するマーカ信号とを用いて、1個以上の分岐回路を介してレジスタに対してアクセスを行うものである。そして、この際に、各分岐回路は、マーカ信号に基づいて指定クロックサイクルにおける第1制御信号の値を判別し、当該判別結果に基づいて分岐先を選択し、当該分岐先に向けて第1制御信号とマーカ信号を出力する。ただし、この際に、分岐回路は、マーカ信号に対しては、第1制御信号よりも大きい遅延を加えることで第1制御信号における指定クロックサイクルの位置をシフトさせる。
これにより、各分岐回路は、マーカ信号に基づいて第1制御信号内の異なるクロックサイクルを自身に向けたアドレス信号として認識することができ、レジスタも、マーカ信号に基づいて第1制御信号内の所定のクロックサイクルを自身に向けたデータ信号として認識することができる。より具体的には、例えば、図19に示したように、各分岐回路で使用するアドレス信号がnビットのシリアル信号である場合、各分岐回路は、第1制御信号に対して加える遅延サイクルよりもnサイクルだけ多い遅延サイクルをマーカ信号に対して加える。
このように、分岐回路を経由する毎に、第1制御信号を基準としてマーカ信号の活性化サイクルをシフトさせながら、ツリー構造のネットワーク上で所望の方向に信号を伝送する方式が各実施例の主要な特徴の一つであり、当該方式を利用する限り、各実施例で述べた内容を代表として各種変形を行うことが可能である。更に、各実施例で述べた内容以外にも各種変形を行うことが可能である。
例えば、各分岐回路が、第1制御信号に含まれるアドレス信号部分を用いて分岐先の選択を行うと共にマーカ信号の活性化サイクルを当該アドレス信号部分の後にシフトさせたのち、各分岐回路の先に結合される各レジスタは、当該マーカ信号の活性化サイクルを受け、それを起点として自身に対して何らかの命令が行われたことを認識することができる。したがって、この命令のフォーマットが予め定められている限り、この第1制御信号の中でアドレス信号に続いて様々な命令を配置することができ、例えば、図8のように当該命令部分を読み書き選択信号(R/W)とデータ信号(DATin)からなるフォーマットとすることができる。
また、勿論、このフォーマットに限らず、当該命令部分を、例えば複数ビットのコマンド信号と複数ビットのデータ信号からなるフォーマットとし、当該コマンド信号を用いてレジスタのリセット等を行うようなことも可能である。この観点で、分岐回路の先に結合されるのは、必ずしもレジスタに限らず、例えば図21に示すような所望の処理回路を結合することも可能である。
図21は、本発明の実施例8による半導体集積回路装置において、その主要部の概略構成例を示す機能ブロック図である。図21に示す半導体集積回路装置は、分岐回路2101と、その複数の出力先のいずれかに結合された分岐回路2102と、その複数の出力先のいずれかに結合された処理回路2103を備える。分岐回路2101,2102のそれぞれには、入力ポートから制御信号としてアドレス兼命令信号(A&Cin)およびマーカ信号(MKRin)が入力される。なお、クロック信号(CLKin)は、前述した各実施例に示したように分岐回路を介して伝送することも、一般的なクロックツリー回路を介して各分岐回路および処理回路2103に供給することも可能である。ただし、アドレス兼命令信号(A&Cin)およびマーカ信号(MKRin)との間のタイミング関係を維持する観点からは分岐回路を介して伝送する方が望ましい。
分岐回路2101,2102において、出力先選択部2111は、各実施例で述べたように、マーカ信号(MKRin)に基づいてアドレス兼命令信号(A&Cin)(ここではアドレス信号)の値を判別し、その判別結果に応じてk(k≧2)個の出力ポートのいずれか1個を選択する。ここでは、k(k≧2)個のスイッチブロックSWBK[1]〜SWBK[k]の中のいずれか1個をオンに制御し、残りをオフに制御することで出力ポートの選択が行われる。
例えば、スイッチブロックSWBK[1]がオンに制御されると、アドレス兼命令信号(A&Cin)が1段のフリップフリップ2112を介して第1出力ポート(A&Cout[1])に伝送され、マーカ信号(MKRin)が2段のフリップフリップからなる遅延部2113を介して第1出力ポート(A&Cout[1])に伝送される。同様に、スイッチブロックSWBK[k]がオンに制御されると、アドレス兼命令信号(A&Cin)が1段のフリップフリップ2112を介して第k出力ポート(A&Cout[k])に伝送され、マーカ信号(MKRin)が遅延部2113を介して第k出力ポート(A&Cout[k])に伝送される。なお、選択されなかった(スイッチブロックがオフに制御された)出力ポートは、図示はしないが、例えば「0」に固定される。
一方、処理回路2103は、前段の分岐回路2102からのアドレス兼命令信号(A&C)およびマーカ信号(MKR)を受けて、所定の処理を実行する。ここでは、例えば、アドレス兼命令信号(A&C)に含まれる命令信号の部分が複数ビットの命令コードとそれに伴う複数ビットのデータからなるフォーマットを持つものとする。処理回路2103において、デコード回路2121は、マーカ信号(MKR)に基づいてアドレス兼命令信号(A&C)における命令信号の始点を認識し、この始点から前述したフォーマットに応じて定められる複数サイクル(複数ビットの命令コードおよび複数ビットのデータ)を取り込んでシリアル・パラレル変換を行う。そして、命令コードの部分を解読して、それに応じた命令を演算処理部2122に指示し、また、併せてデータの部分も演算処理部2122に送信する。演算処理部2122は、これに応じて所定の処理を実行する。
この実施例8でも、実施例1および実施例2の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。なお、ここでは、命令コードによって様々な命令を指示できる構成としたが、実施例4や実施例5等で述べたようにマーカ信号の長さを利用して様々な命令を発行することも可能である。例えば、マーカ信号の長さが所定のサイクル数よりも長い場合には、ブロードキャスト命令が発行されるように構成することができる。具体的には、例えば、マーカ信号の長さが所定のサイクル数よりも長い場合、各分岐回路は全出力ポートに向けて出力を行い、これを受けて、全処理回路は、自身のリセット動作を行う、或いは命令コードを解釈し、それに応じた共通の処理を行う、といった構成が挙げられる。
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施例は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、前述したアドレス兼データ信号(A&D)は、半導体集積回路装置の小型化や低消費電力化等の観点では1本とすることが望ましいが、必ずしもこれに限定されるものではなく、場合によっては2本等に増加させることも可能である。この場合、1本の場合に比べてツリー構造のネットワークの段数を削減する(例えば、各分岐回路の分岐先を4個とし、1クロックサイクルでその内の1個を各分岐回路に選択させる)ことが可能になる。