(57)【特許請求の範囲】
【請求項１】
それぞれ、第１入力ポートおよび複数の第１出力ポートを備え、前記第１入力ポートから入力される制御信号を前記複数の第１出力ポートの中のいずれか１個に伝送する第１および第２分岐回路と、
第２入力ポートを備え、所定の処理を実行する処理回路とを有し、
前記第２分岐回路の前記第１入力ポートは、前記第１分岐回路における前記複数の第１出力ポートの中のいずれか１個に結合され、
前記第２入力ポートは、前記第２分岐回路における前記複数の第１出力ポートの中のいずれか１個に結合され、
前記制御信号は、第１および第２制御信号線を含む複数の制御信号線によって伝送され、
前記第１制御信号線には、クロック信号を用いてシリアル伝送されるアドレス信号と前記アドレス信号の後にシリアル伝送される第１信号とを含む第１制御信号が伝送され、
前記第２制御信号線には、活性化によって前記第１制御信号における一部のクロックサイクルを指定クロックサイクルとして指定するマーカ信号が伝送され、
前記第１および第２分岐回路のそれぞれは、
前記第１入力ポートから入力される前記マーカ信号に伴い前記指定クロックサイクルで指定される前記アドレス信号の値を判別し、当該判別結果に基づいて前記複数の第１出力ポートのいずれか１個を選択し、当該選択ポートに向けて前記第１入力ポートから入力される前記第１制御信号および前記マーカ信号を伝送する選択回路部と、
前記マーカ信号を伝送する際に、前記マーカ信号に対して前記第１制御信号よりも大きい遅延を加えることで前記第１制御信号における前記指定クロックサイクルの位置をシフトさせ、当該シフト後のマーカ信号を前記選択回路部に伝送させる遅延回路部とを有し、
前記処理回路は、前記第２入力ポートから入力される前記マーカ信号に伴い前記指定クロックサイクルで指定される前記第１信号の値を参照し、前記第１信号の値を用いた所定の処理を実行する半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記処理回路は、レジスタであり、
前記レジスタは、前記第１信号の値の書き込み動作を行う半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関し、例えば、複数のフリップフロップ（レジスタ）に対するアクセス回路を含む半導体集積回路装置に関する。
【背景技術】
【０００２】
例えば、特開２０１２−３４７１号公報（特許文献１）には、複数のスキャンＦＦを対象として、各スキャンＦＦのスキャン端子間の配線長が最短となるようにスキャンチェーンを形成する方法が記載されている。また、特開２００５−１１２９６号公報（特許文献２）には、従来のツリー構造特有の論理構造の明瞭さを受け継ぎながら、より操作性を高めたファイル管理操作を実現するためのファイルシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−３４７１号公報
【特許文献２】特開２００５−１１２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ＬＳＩ（Large Scale Integrated circuit）の中のフリップフロップは、高速のクロック信号に同期してデータを逐次転送させる際や、ある程度長い時間にわたってパラメータ値等を保持させる（所謂レジスタとして用いられる）際など、種々の目的で使用される。特に後者の場合、いくつかのフリップフロップに所望の値を設定したい場合がある。
【０００５】
ＬＳＩの中のいくつかのフリップフロップに所望の値を設定したい場合、例えば特許文献１に記載されたように対象とするフリップフロップをスキャンチェーンで接続する方法が一般的である。ただし、この方法では、対象とするフリップフロップの数が多くなるとアクセスに要する時間が長くなる恐れがある。すなわち、例えば、対象とするフリップフロップのうちの１個だけに特定の値を設定したい場合でも、そのフリップフロップがスキャンチェーンの後方にある場合には、データがそこにたどり着くまでに多くのクロックサイクル数を要することになる。
【０００６】
これを避ける方法として、例えば特許文献２に示されるようなファイル構造を応用して、スキャンチェーンの代わりに、各フリップフロップをツリー構造で接続することが考えられる。この場合、例えば、各分岐点に対し、予め最上位から何段目に配置されるかに応じてアドレス信号内の特定の桁を割り当てておき、各分岐点は、自身に割り当てられた桁の値が０であるか１であるかに基づいて分岐方向を決定すればよい。これにより、スキャンの対象となるフリップフロップの数が増えても、１個のフリップフロップのアクセスに要する時間がフリップフロップの数の対数程度でしか増えないようなネットワークを構築することができる。
【０００７】
しかしながら、実際上、ＬＳＩの設計を進めていく過程において、様々な理由により仕様が変更される場合が多く発生する。その時に、ツリー構造の各分岐点が最上位から何段目に当たるかが変更になる場合がある。例えば、ＬＳＩの中の一部のブロックの設計が終了した後にその上流のブロックで仕様変更があると、設計が終了したブロックの中の各分岐点において最上位からの段数が一斉に変更になる場合もある。すると、この設計が終了したブロックのように実質的な仕様変更が無いブロックにおいても、回路修正や再度の検証作業等が必要となり得る。特に、一度試作して一部の機能の実機検証を終えたＬＳＩを改良する際などで、実質的に仕様変更が無いブロックに対して回路修正を行う場合、検証作業などの工数が増大するだけでなく、修正ミスや検証漏れなどのリスクも増大する。
【０００８】
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、設計の容易化を実現可能な半導体集積回路装置を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１０】
本実施の形態による半導体集積回路装置は、複数のレジスタと、複数段に結合される複数の分岐回路とを備え、複数の分岐回路を介して特定のレジスタに制御信号を伝送する。制御信号は、クロック信号に応じてシリアルに伝送されるアドレス信号と、これを基準とした相対的な遷移タイミングによって分岐回路の何段目まで通過したかを示すマーカ信号とを含む。各分岐回路は、入力された制御信号内のマーカ信号に基づいて定められるアドレス信号内の特定ビットを参照することで、複数組の出力先の中からいずれか１組を選択してマーカ信号を伝達すると共に、当該１組の出力先あるいは複数組の出力先にアドレス信号を伝達する。この際に、各分岐回路は、所定サイクル数だけマーカ信号の遷移タイミングをずらす。
【発明の効果】
【００１１】
複数のフリップフロップ（レジスタ）を備えた半導体集積回路装置において、設計の容易化が実現可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１による半導体集積回路装置において、その主要部の構成例を示す概略図である。
【図２】図１における分岐回路の詳細な構成例を示す回路図である。
【図３】図１におけるレジスタの詳細な構成例を示す回路図である。
【図４】図１の半導体集積回路装置の動作例を示す波形図である。
【図５】本発明の実施例２による半導体集積回路装置において、その主要部の構成例を示す概略図である。
【図６】図５における分岐回路の詳細な構成例を示す回路図である。
【図７】図５におけるレジスタの詳細な構成例を示す回路図である。
【図８】図５の半導体集積回路装置における書き込み時の動作例を示す波形図である。
【図９】図５の半導体集積回路装置における読み出し時の動作例を示す波形図である。
【図１０】本発明の実施例３による半導体集積回路装置において、その主要部の構成例を示す概略図である。
【図１１】本発明の実施例４による半導体集積回路装置において、図５における分岐回路の詳細な構成例を示す回路図である。
【図１２】本発明の実施例４による半導体集積回路装置において、図５におけるレジスタの詳細な構成例を示す回路図である。
【図１３】本発明の実施例４による半導体集積回路装置において、その書き込み時の動作例を示す波形図である。
【図１４】本発明の実施例４による半導体集積回路装置において、その読み出し時の動作例を示す波形図である。
【図１５】本発明の実施例５による半導体集積回路装置において、図５における分岐回路の詳細な構成例を示す回路図である。
【図１６】図１５の分岐回路の主な動作例を示す波形図である。
【図１７】本発明の実施例５による半導体集積回路装置において、図５におけるレジスタの詳細な構成例を示す回路図である。
【図１８】本発明の実施例６による半導体集積回路装置において、それに含まれる分岐回路の詳細な構成例を示す回路図である。
【図１９】図１８の分岐回路の動作例を示す波形図である。
【図２０】本発明の実施例７による半導体集積回路装置において、その主要部の構成例を示す概略図である。
【図２１】本発明の実施例８による半導体集積回路装置において、その主要部の概略構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下の実施例においては便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施例において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１４】
さらに、以下の実施例において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施例において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１５】
また、実施例における各機能ブロックを構成する回路素子は、特に制限されないが、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。なお、実施例では、ＭＩＳＦＥＴ（Metal Insulator Semiconductor Field Effect Transistor）の一例としてＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）（ＭＯＳトランジスタと略す）を用いるが、ゲート絶縁膜として非酸化膜を除外するものではない。
【００１６】
以下、本発明の実施例を図面に基づいて詳細に説明する。実施例を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【実施例１】
【００１７】
本実施例１では、例えば、各４ビットで構成された複数のフリップフロップ（レジスタ）の各ビットに任意の値を書き込めるように構成した半導体集積回路装置の例を説明する。
【００１８】
《半導体集積回路装置（主要部）の構成》
図１は、本発明の実施例１による半導体集積回路装置において、その主要部の構成例を示す概略図である。図１に示す半導体集積回路装置は、ツリー構造のネットワーク上に適宜配置された複数の分岐回路１０１〜１１０およびレジスタ１２１〜１３１を備えている。端子１５０には外部から供給される制御信号が接続される。制御信号は、ここで３ビットの下り信号で構成され、このうちの１ビットはクロック信号、他の１ビットはアドレス兼データ信号、更に他の１ビットはマーカ信号である。クロック信号は、一定の周期で「０」と「１」を繰り返す信号である。アドレス兼データ信号は、各分岐回路における分岐方向を示すアドレス情報やレジスタの各ビットに書き込む値を指示するデータ情報を供給する信号である。マーカ信号は、アドレス信号の先頭を示す信号である。
【００１９】
各分岐回路１０１〜１１０は、全て同じ機能を持ち、次の機能を持つように構成される。各分岐回路は、１組の制御信号が入力され２組の制御信号を出力する。出力の制御信号の各組を、それぞれ‘０’側または‘１’側と称することにする。図１の各分岐回路１０１〜１１０の左側に表記した３本の線は入力側、右上側に表記した３本の線は‘０’側出力、右下側に表記した３本の線は‘１’側出力の制御信号をそれぞれ表わす。各分岐回路は、クロック信号を入力側から両方の出力側に伝達する。この際に、クロック信号には、分岐回路内のバッファに伴う遅延が加わる。
【００２０】
また、各分岐回路１０１〜１１０は、アドレス兼データ信号に対してクロック信号の１サイクル分の遅延を加え、入力側から両方の出力側に伝達する。この時、各分岐回路は、クロック信号の立ち上りエッジに同期してアドレス兼データ信号の入力を取り込み、クロック信号の立ち下りエッジに同期して出力する。さらに、各分岐回路は、マーカ信号の入力が「１」の時のアドレス兼データ信号が示す情報（‘０’側又は‘１’側）に基づいて、いずれか一方の出力側にのみマーカ信号を伝達する。この際に、各分岐回路は、マーカ信号に対してクロック信号の２サイクル分の遅延を加えることで、アドレス兼データ信号との間のクロック信号の位相関係を１サイクル分シフトさせる。すなわち、マーカ信号入力が「１」の時から２サイクル後に、マーカ信号出力側の一方に「１」が出力され、他方に「０」が出力される。マーカ信号入力が「０」の時から２サイクル後には、マーカ信号出力側の両方に「０」が出力される。各分岐回路は、マーカ信号に対しても、クロック信号の立ち上りエッジに同期してその入力を取り込み、立ち下りエッジに同期して出力を行う。
【００２１】
《分岐回路およびレジスタの詳細》
図２は、図１における分岐回路の詳細な構成例を示す回路図である。近年のＬＳＩ設計ツールを使用すれば上記のような仕様を記述するだけでその機能を持つ回路を自動設計することができるが、もし手作業で設計するなら分岐回路は例えば図２のような構成になる。図２に示す分岐回路は、エッジトリガ型のフリップフロップ（以下ＦＦと略す場合有り）２０１〜２０７、ＡＮＤ回路２１１，２１２、インバータ回路２２１、ロジック機能の無いバッファ２３１〜２３７を備える。
【００２２】
この回路により、クロック信号は、入力（ＣＬＫｉｎ）から両方の出力（ＣＬＫｏｕｔ０，ＣＬＫｏｕｔ１）に向けてバッファ２３１と２３４（もしくは２３７）の遅延時間だけかかって伝搬する。アドレス兼データ信号は、入力（Ａ＆Ｄｉｎ）から両方の出力（Ａ＆Ｄｏｕｔ０，Ａ＆Ｄｏｕｔ１）に向けて、立ち上がりエッジトリガ型ＦＦ２０１、立ち下がりエッジトリガ型ＦＦ２０３、およびバッファ２３２を介して伝搬され、その結果、１サイクルかかって伝搬する。
【００２３】
また、マーカ信号入力（ＭＫＲｉｎ）は、立ち上がりエッジトリガ型ＦＦ２０２によってラッチされる。ここで当該ラッチデータが「１」の場合、アドレス兼データ信号に基づいてＡＮＤ回路２１１，２１２の一方が「１」を他方が「０」を出力する。当該各出力は、２段の立ち下がりエッジトリガ型ＦＦ（２０４，２０５と２０６，２０７）とバッファ（２３３，２３６）を介して出力（ＭＫＲｏｕｔ０，ＭＫＲｏｕｔ１）に伝搬される。その結果、マーカ信号入力の「１」は、マーカ信号出力の一方に向けて２サイクルかかって伝搬され、その時のマーカ信号出力の他方には「０」が伝搬される。マーカ信号入力が「０」であれば、その２サイクル後には両方のマーカ信号出力が「０」になる。なお、この回路は一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
【００２４】
図３は、図１におけるレジスタの詳細な構成例を示す回路図である。ここでは、図１の各レジスタ１２１〜１３１は、全て同じ機能を持つものとし、例えば次のような機能を持つものとする。各レジスタは、３ビットの制御信号で制御され、４ビットの情報（ＢＩＴ０〜３）を保持する。３ビットの制御信号は、クロック信号（ＣＬＫ）、データ信号（ＤＡＴ）、マーカ信号（ＭＫＲ）により構成される。クロック信号は、一定の周期で「０」と「１」を繰り返す信号である。データ信号は、保持するべき４ビットの値を指示する信号である。マーカ信号は、データ信号の先頭を示す信号である。図１に示したように、各レジスタには、分岐回路の出力の内の１組を介して制御信号が入力される。すなわち、各レジスタには、図２の分岐回路のクロック信号出力（ＣＬＫｏｕｔ０又は１）、アドレス兼データ信号出力（Ａ＆Ｄｏｕｔ０又は１）、マーカ信号出力（ＭＫＲｏｕｔ０又は１）を介してそれぞれクロック信号（ＣＬＫ）、データ信号（ＤＡＴ）、マーカ信号（ＭＫＲ）が入力される。
【００２５】
マーカ信号は通常は「０」であり、マーカ信号が「０」である限り４ビットの保持内容（ＢＩＴ０〜３）は変化せずに保持される。マーカ信号が「１」となった時には、そのサイクルのデータ信号をＢＩＴ３、次のサイクルのデータ信号をＢＩＴ２、更に次のサイクルのデータ信号をＢＩＴ１、更に次のサイクルのデータ信号をＢＩＴ０として、計４ビットの情報が取り込まれ、保持される。この場合、クロック信号の立ち上りエッジに同期してデータ信号およびマーカ信号が取り込まれ、立ち下りエッジに同期してＢＩＴ０〜３の保持内容が更新される。また、ＢＩＴ０〜３に対応するデータ信号が全て到達した後、ＢＩＴ０〜３に保持する内容が一斉に更新される。
【００２６】
このような機能を持つ回路も近年のＬＳＩ設計ツールを使用すれば上記のような仕様を記述するだけでその機能を持つ回路を自動設計することができるが、もし手作業で設計するならレジスタは例えば図３のような構成になる。図３に示すレジスタは、エッジトリガ型のフリップフロップ３００〜３０３，３１０〜３１３，３２０〜３２３、ＡＮＤ回路３３１、インバータ回路３４１，３４２を備える。この回路では、１サイクルごとのデータ信号（ＤＡＴ）の内容がクロック信号（ＣＬＫ）の立ち上りエッジに同期してフリップフロップ３００〜３０３に逐次伝送されていく。そして、マーカ信号（ＭＫＲ）が「１」となったサイクルから４サイクル後のクロック信号（ＣＬＫ）の立ち下りエッジにおいて、フリップフロップ３００〜３０３の内容がフリップフロップ３１０〜３１３に一斉に取り込まれＢＩＴ０〜３として保持される。これにより、上述の各レジスタとしての機能を実現できる。この回路も一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
【００２７】
《半導体集積回路装置（主要部）の動作》
図４は、図１の半導体集積回路装置の動作例を示す波形図である。ここでは、例えばレジスタ１２３のＢＩＴ３〜０（図３参照）にそれぞれ「１」「０」「１」「０」の各値を保持させたい場合を例とする。図４には、図１の端子１５０に加える制御信号（分岐回路１０１の制御信号入力）と、ツリー構造の途中の分岐回路１０３，１０６とレジスタ１２３における各制御信号入力の信号波形（クロック信号（ＣＬＫｉｎ，ＣＬＫ）、マーカ信号（ＭＫＲｉｎ，ＭＫＲ）、アドレス兼データ信号（Ａ＆Ｄｉｎ）またはデータ信号（ＤＡＴ））が示されている。この図は左から右に向かって時間の経過を表わし、クロックの０サイクル目から１８サイクル目までの各信号値を示している。なお、クロック周波数は、分岐回路の各段を通る信号の伝搬時間と比べて十分遅くなるように設定される。
【００２８】
ここで、レジスタ１２３にアクセスする場合、分岐回路１０１→１０３→１０６の順に‘１’側→‘１’側→‘０’側を選択することになるため、図４に示すように、分岐回路１０１のアドレス兼データ信号（Ａ＆Ｄｉｎ）におけるアドレス信号（ＡＤＲ）として、１サイクル目と２サイクル目に「１」、３サイクル目に「０」が入力される。更に、前述したようにＢＩＴ３〜０の順に「１」「０」「１」「０」を保持させるため、アドレス兼データ信号（Ａ＆Ｄｉｎ）におけるデータ信号（ＤＡＴｉｎ）として、アドレス信号に引き続く４サイクル目〜７サイクル目に「１」「０」「１」「０」がそれぞれ入力される。また、分岐回路１０１に入力されるマーカ信号（ＭＫＲｉｎ）は、１サイクル目だけが「１」とされ、他は「０」とされる。
【００２９】
すると、分岐回路１０１に入力される制御信号は、マーカ信号（ＭＫＲｉｎ）が「１」のサイクルでアドレス兼データ信号（Ａ＆Ｄｉｎ）が「１」であるから、分岐回路１０１は、‘１’側出力にのみマーカ信号の「１」を伝搬する。この際に、分岐回路１０１は、アドレス兼データ信号（Ａ＆Ｄｉｎ）を１サイクル、マーカ信号（ＭＫＲｉｎ）を２サイクルそれぞれ遅延させた上で‘１’側出力に伝搬する。これが分岐回路１０３に制御信号として入力される。一方、分岐回路１０１の‘０’側出力（すなわち図１の分岐回路１０２に入力される制御信号）は、クロック信号とアドレス兼データ信号は伝搬するが、マーカ信号は「０」固定のままである。
【００３０】
以下同様に、分岐回路１０３、分岐回路１０６、レジスタ１２３の順に、マーカ信号は２サイクルずつ、アドレス兼データ信号は１サイクルずつ、それぞれ遅れながら伝搬していく。他の経路を伝搬していく制御信号は、クロック信号とアドレス兼データ信号は伝搬するが、マーカ信号は全て「０」固定のままである。これに伴い、例えば、分岐回路１０３では、分岐回路１０１の場合と比較して、アドレス兼データ信号（Ａ＆Ｄｉｎ）内でマーカ信号（ＭＫＲｉｎ）が「１」となるサイクル位置が１サイクル分だけ遅延する。その結果、分岐回路１０１がアドレス兼データ信号（Ａ＆Ｄｉｎ）内の先頭から１サイクル目をアドレス信号として認識したのに対して、分岐回路１０３は先頭から２サイクル目をアドレス信号として認識することができる。
【００３１】
また、レジスタ１２３にのみマーカ信号（ＭＫＲ）の「１」が到達し、他のレジスタのマーカ信号は全て「０」固定のままである。これを受けて、例えば図３の回路を持つレジスタ１２３は、マーカ信号（ＭＫＲ）が「１」の時のデータ信号「１」をＢＩＴ３に、次のサイクルのデータ信号「０」をＢＩＴ２に、更に次のサイクルのデータ信号「１」をＢＩＴ１に、更に次のサイクルのデータ信号「０」をＢＩＴ０にそれぞれ保持する。他のレジスタは全てマーカ信号が「０」固定であるため、その保持内容は変化しない。
【００３２】
なお、他のレジスタの保持内容も変えたい場合は、例えば、レジスタ１２３に供給する制御信号が全て終了した後（すなわち図４の例では８サイクル目以降）に、そのレジスタを指定するアドレスと保持させたいデータをアドレス兼データ信号として順に入力し、そのアドレス信号の最初のタイミングでマーカ信号を「１」にすればよい。すると、そのアドレス信号が示すレジスタにのみマーカ信号の「１」が到達し、レジスタ１２３の場合と同様にしてレジスタの保持内容が変更される。
【００３３】
なお、図１において、レジスタ１２３や１２２にアクセスする場合のアドレス信号は３ビットであるが、レジスタ１２４〜１３１にアクセスする場合のアドレス信号は４ビットである。また、レジスタ１２１にアクセスする場合のアドレス信号は２ビットである。アドレス信号のビット数が異なるとレジスタにアクセスするために必要なサイクル数は異なるが、レジスタに到達する時点のデータ信号とマーカ信号のタイミング関係はアドレス信号のビット数にかかわらず同じであるため、同様にして各レジスタの保持内容を変更することができる。
【００３４】
《半導体集積回路装置（主要部）の主要な効果等》
以上、本実施例１の半導体集積回路装置を用いることで、代表的には、例えば次のような効果が得られる。第１に、半導体集積回路装置における設計の容易化が実現可能となる。比較例として、例えば、ツリー構造の分岐回路およびレジスタと共にアドレスデコード回路等を設け、アドレスデコード回路が外部アドレスをデコードすることで各分岐回路に対して並列に分岐先を指示するような方式が考えられる。ただし、この場合、既に完成したツリー構造に対して分岐回路の追加等が生じると、例えば、各分岐回路に対する外部アドレスの割り当て方法が変わり、アドレスデコード回路の変更や、アドレスデコード回路とツリー構造との間の配線変更等が必要とされる場合が有る。このような変更が生じると、変更後の状態でもツリー構造内の経路選択が正常に行えることを保証するため、既に完成した筈のツリー構造を含めて再検証等を行う必要性が生じ得る。
【００３５】
一方、本実施例１の方式では、ツリー構造が一旦完成すると、当該ツリー構造は、独立した回路として取り扱うことができるため、新たに分岐回路を加えても、当該ツリー構造における回路・配線変更や、当該ツリー構造を含めた再検証等は不要となる。例えば、図１の分岐回路１０１の前段に新たに分岐回路を加える場合には、当該新たに加えた分岐回路の出力信号が正常であることさえ保証できれば、分岐回路１０１以降となる既に完成したツリー構造に対する回路・配線変更は不要であり、当該ツリー構造を含めた再検証も不要である。このように、設計の途中で既に完成したツリー構造に対して分岐回路を追加する必要性が生じ、分岐回路の段数を変える必要性が生じても、これに伴い既に完成したツリー構造は特に影響を受けることがないため、検証を含めた設計の手戻りが無くなり、設計の容易化が図れる。
【００３６】
第２に、少ない数の制御信号（図１の例では３本）によりレジスタにアクセスを行えるため、半導体集積回路装置の小型化等が実現可能となる。第３に、ツリー構造に伴い、スキャンＦＦ方式等と比較して、各レジスタに対する最長アクセス時間を短縮できる。すなわち、スキャンＦＦ方式の場合、各レジスタに対する最長アクセス時間は、レジスタの数を倍数として増大するが、ツリー構造の場合、レジスタの数の対数程度でしか増大しない。したがって、半導体集積回路装置の大規模化が進むほど、より有益な効果が得られる。
【００３７】
なお、実施例１ではレジスタ１２１〜１３１は全て４ビット構成として説明したが、勿論、４ビット構成に限定されるものではなく、任意のビット数のレジスタが使用可能である。更に、レジスタ１２１〜１３１の中の一部を４ビット構成、他の一部を８ビット構成、更に他の一部を１２ビット構成にするなど、ビット数の異なるレジスタを混在させることも可能である。この場合、レジスタによってデータ信号のビット数が異なりデータを送るために必要なサイクル数が異なるが、分岐回路の構成は共通でかまわない。また、実施例１ではマーカ信号以外の制御信号は分岐回路１０１〜１１０全部とレジスタ１２１〜１３１全部に到達する構成としたが、マーカ信号以外の制御信号についても必要の無い方向には伝達させないように各分岐回路を構成することも可能である。この場合、ハードウエアの規模は大きくなるが、不必要な消費電力を削減することができる。
【００３８】
さらに、図１におけるツリー構造における分岐回路やレジスタの設置箇所は、勿論、図１の箇所に限定されるものではなく、少なくとも１個の分岐回路を介してレジスタが設置されるように構成すれば、任意の箇所に定めることが可能である。また、図１に示す各レジスタ１２１〜１３１は、例えば、所定のデータの保存用として使用することや、あるいは、一般的な論理回路において各組み合わせ回路間に配置されるフリップフロップのように、データ転送用として使用することも可能である。この場合、例えば、各レジスタ（例えばレジスタ１２１）を１ビットのＦＦで構成すると共にその入力部に選択回路を設け、当該選択回路が、前段の分岐回路（例えば分岐回路１０２）からの経路か所定の組み合わせ回路からの経路を選択すればよい。
【実施例２】
【００３９】
本実施例２では、実施例１で説明したようにレジスタの各ビットに任意の値を書き込めるだけでなく、レジスタの各ビットに保持されている値を読み出すこともできるように構成した半導体集積回路装置の例を説明する。この実施例２でも、各レジスタがそれぞれ４ビットで構成されるものとして説明する。
【００４０】
《半導体集積回路装置（主要部）の構成（応用例［１］）》
図５は、本発明の実施例２による半導体集積回路装置において、その主要部の構成例を示す概略図である。図５の半導体集積回路装置は、図１の構成例と異なり、下り方向の３ビットの制御信号に加えて、上り方向の１ビットの読み出し信号を備えている。この読み出し信号は、各レジスタから読み出した情報を伝達させるための信号である。
【００４１】
各分岐回路１０１〜１１０における下り方向の機能は、実施例１の場合と同じである。一方、上り方向に関して、各分岐回路１０１〜１１０は、下位の分岐回路またはレジスタから送られてくる読み出し信号の論理和を、１サイクル遅らせて上位に伝達する機能を有する。この時、例えば、クロック信号の立ち上りエッジに同期して読み出し信号の入力を取り込み、クロック信号の立ち下りエッジに同期して出力する。
【００４２】
《分岐回路およびレジスタの詳細（応用例［１］）》
図５で述べた機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図６のような構成になる。図６は、図５における分岐回路の詳細な構成例を示す回路図である。図６に示す分岐回路は、図２の構成例に対して、エッジトリガ型のフリップフロップ６０１，６０２、ＯＲ回路６１１、ロジック機能の無いバッファ６３１が加わった構成となっている。これにより、下位側から送られて来る２個の読み出し信号（ＲＤｉｎ０，ＲＤｉｎ１）をＯＲ回路６１１で受け、その論理和を立ち上がりエッジトリガ型ＦＦ６０１および立ち下がりエッジトリガ型ＦＦ６０２により１サイクル遅らせて、バッファ６３１を介して上位側（ＲＤｏｕｔ）に伝達することができる。下り方向は、図２と同じ回路および動作である。この回路も一例であり、同じ機能を持つ回路の構成方法は他に多数考えられる。
【００４３】
図７は、図５におけるレジスタの詳細な構成例を示す回路図である。この実施例２において、図５の各レジスタ１２１〜１３１は、例えば次のような機能を持つ。マーカ信号が「１」となるサイクルにおいてデータ信号が「０」であれば、保持内容を変更せず、その次のサイクルから４サイクルにわたって保持内容（ＢＩＴ３〜０）を読み出し信号として順次出力する。マーカ信号が「１」となるサイクルにおいてデータ信号が「１」であれば、その次のサイクルから４サイクルにわたって順次送られてくるデータ信号をＢＩＴ３〜０として取り込み保持する。５サイクル以上にわたってマーカ信号が「０」である時は、保持内容を変更せず、読み出し信号として「０」を出力する。
【００４４】
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図７のような構成になる。図７に示すレジスタは、図３の構成例に対して、エッジトリガ型のフリップフロップ７００〜７０３，７２０、セレクタ７１１〜７１３、ＡＮＤ回路７１０，７３１、ロジック機能の無いバッファ７３２が加わったものとなっている。この回路は、クロック信号（ＣＬＫ）の立ち上りエッジに同期してフリップフロップ３２０がマーカ信号（ＭＫＲ）の「１」を取り込むと、フリップフリップ７００にアンド回路７１０を介してＢＩＴ０の値が入力され、フリップフロップ７０１〜７０３にそれぞれセレクタ７１１〜７１３を介してＢＩＴ１〜３の値が入力される。すなわち、フリップフロップ３１０〜３１３の保持内容がフリップフロップ７００〜７０３に入力される。そして、フリップフリップ７００〜７０３は、その半サイクル後のクロック信号の立ち下りエッジに同期して当該入力を取り込む。なお、その時点でフリップフロップ７０３からＢＩＴ３の値が読み出し信号（ＲＤ）として出力される。
【００４５】
ここで、前述したフリップフロップ３２０が、マーカ信号（ＭＫＲ）として１サイクルだけ「１」を取り込んだのち次のサイクルで「０」を取り込むと、これに応じてセレクタ７１１〜７１３の選択先が変わり、フリップフロップ７００〜７０３はシフトレジスタとして機能する。この場合、フリップフロップ７０３において、前述したＢＩＴ３の読み出し信号の出力に続いて、次のサイクルから、１サイクルごとにＢＩＴ２〜０の値が読み出し信号（ＲＤ）として順次出力される。マーカ信号が「０」となってから５サイクル以上経過すると、この５サイクル以上の箇所に対応する読み出し信号は、フリップフロップ３２０およびＡＮＤ回路７１０を介して「０」に定められているため、読み出し信号には「０」が出力される。これにより読み出し動作が実現できる。
【００４６】
一方、マーカ信号（ＭＫＲ）が「１」となるサイクルでデータ信号（ＤＡＴ）も「１」であれば、アンド回路７３１、フリップフロップ７２０，３２１〜３２３、アンド回路３３１を介して、その４サイクル半後にワンショットのクロック信号が生成される。フリップフロップ３１０〜３１３は、このクロック信号の立ち下りエッジに同期してフリップフロップ３００〜３０３の内容を一斉に取り込み、ＢＩＴ０〜３として保持する。それ以外の場合にはそれまでのＢＩＴ０〜３の内容が保持される。なお、図７の回路で書き込み動作が行なわれる場合にはその直前のＢＩＴ３〜０の内容を読み出す動作も行なわれるが、書き込みを行なう時に読み出した結果を使用しないようにすれば特に支障はない。
【００４７】
《半導体集積回路装置（主要部）の動作（応用例［１］）》
図８は、図５の半導体集積回路装置における書き込み時の動作例を示す波形図である。ここでは、図４の場合と同様に、レジスタ１２３のＢＩＴ３〜０にそれぞれ「１」「０」「１」「０」の各値を保持させたい場合を例とする。図８と図４の違いは、アドレス兼データ信号（Ａ＆Ｄｉｎ）におけるアドレス信号（ＡＤＲ）を送るサイクルとデータ信号（ＤＡＴｉｎ）を送るサイクルとの間に１サイクルの空きサイクルを設け、このサイクルで読み書き選択信号（Ｒ／Ｗ）として書き込みを指示する「１」を送ることにある。
【００４８】
制御信号が分岐回路１０１→１０３→１０６を通っている期間は、マーカ信号（ＭＫＲｉｎ）の「１」はアドレス信号（ＡＤＲ）内のサイクルに位置しているため、図４の場合と同様にレジスタ１２３にのみマーカ信号の「１」が到達し、他のレジスタのマーカ信号は「０」に固定されたままである。一方、レジスタ１２３では、マーカ信号（ＭＫＲ）が「１」となるサイクルの読み書き選択信号（Ｒ／Ｗ）が「１」であるため、その次のサイクルから４サイクル分のデータ信号（ＤＡＴ）「１」「０」「１」「０」がＢＩＴ３〜０として取り込まれ保持される。他のレジスタはマーカ信号が「０」固定であるため保持内容は変化しない。
【００４９】
図９は、図５の半導体集積回路装置における読み出し時の動作例を示す波形図である。レジスタ１２３の内容を読み出したい場合は、図９に示すようにアドレス信号（ＡＤＲ）を送るサイクルの次のサイクルで読み書き選択信号（Ｒ／Ｗ）として「０」を送る。するとレジスタ１２３では、マーカ信号（ＭＫＲ）が「１」となるサイクルの読み書き選択信号（Ｒ／Ｗ）が「０」であるため保持内容は変化せず、その次のサイクルから読み出し信号（ＲＤ）としてＢＩＴ３〜０の内容を順に出力する。図９には、保持内容が「１」「０」「１」「０」であった場合の例を示す。
【００５０】
他のレジスタは全てマーカ信号が「０」固定であるため、読み出し信号（ＲＤ）として全て「０」を出力する。従って、レジスタ１２３の出力が１サイクルごとに分岐回路１０６→１０３→１０１の順に伝送され（ＲＤｏｕｔ）、図５の端子１５０から読み出すことができる。なお、最上位の分岐回路１０１から目標のレジスタまでの分岐回路の段数によって上り信号が返ってくるタイミングが異なるので、１つのレジスタの内容を読み出してから他のレジスタの内容を読み出すまでの間は、上り信号が返ってくるタイミングが重ならないように必要なサイクル数を空ける。書き込みを行なう時にも意図しない上り信号が返ってくるので、１つのレジスタに書き込んでから他のレジスタの内容を読み出すまでの間も同様に必要なサイクル数を空ける。
【００５１】
以上、本実施例２の半導体集積回路装置を用いることで、実施例１の場合と同様の効果が得られ、代表的には、設計の容易化等が実現可能になる。さらに、レジスタの読み出し機能も実現可能になり、半導体集積回路装置の機能性を高めることが可能になる。なお、この実施例２でも実施例１の場合と同様に、レジスタ１２１〜１３１の一部または全部を４ビット以外の構成としたり、マーカ信号以外の制御信号も所望の方向にのみ伝達させる構成にしたり等、様々に変更することが可能である。
【実施例３】
【００５２】
本実施例３では、実施例１や実施例２で説明した機能に加えて、各レジスタの各ビットにそれぞれ設計時点で定めたデフォルト値を一斉に書き込めるように構成した半導体集積回路装置の例を説明する。
【００５３】
《半導体集積回路装置（主要部）の構成（応用例［２］）》
図１０は、本発明の実施例３による半導体集積回路装置において、その主要部の構成例を示す概略図である。図１０に示す半導体集積回路装置は、ここでは実施例２の構成例に本実施例３の機能を加えたものとなっている。図１０において、図５の構成例との違いは、下り方向の制御信号として更に１ビットのリセット信号が加わったことにある。これにより、下り方向は全部で４ビット、上り方向は１ビットとなる。
【００５４】
各分岐回路では、リセット信号は他の信号の状態にかかわらず出力側の両方に伝達させる。リセット信号は、クロック信号と同様にバッファの遅延時間分の遅れだけで入力側から出力側に伝達させるように構成することも可能であるし、アドレス兼データ信号と同様にクロック信号の１サイクル分の遅延を加えて伝達させるように構成することも可能である。
【００５５】
各レジスタは、例えばリセット信号が「１」の時には設計時点で定めたデフォルト値を取り込み、リセット信号が「０」の時には実施例２と同じ動作をするように構成される。特に限定はされないが、具体的には、例えば、図７のフリップフロップ３１０〜３１３の入力部にフリップフロップ３００〜３０３の出力かデフォルト値かをリセット信号によって選択する回路を設け、加えて、ＡＮＤ回路３３１の出力とリセット信号のオア演算によって各フリップフロップ３１０〜３１３にクロック信号を供給すればよい。なお、デフォルト値の取り込みは、リセット信号が「１」になった時点で取り込むように構成することも可能であるし、リセット信号が「１」となった後のクロック信号の立ち上りエッジまたは立ち下りエッジに同期して取り込むように構成することも可能である。
【００５６】
この実施例３では、最初にリセット信号として「１」を送って全てのレジスタにデフォルト値を書き込んだ後、リセット信号を「０」にして、変更が必要なレジスタにだけ個別に任意の値を設定することが可能である。これにより、デフォルト値からの変更が必要なレジスタの数が少ない場合には、書き込みに必要な時間を短縮できる。また、勿論、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。
【実施例４】
【００５７】
本実施例４では、実施例２の構成において書き込みと読み出しの区別を示す情報を読み書き選択信号（Ｒ／Ｗ）で送る代わりにマーカ信号（ＭＫＲｉｎ，ＭＫＲ）で送ることにより、アドレス信号とデータ信号の間の１サイクルを省略できる半導体集積回路装置の例を説明する。具体的には、マーカ信号を１サイクルだけ「１」にした時には読み出しを示し、２サイクル連続で「１」にした時には書き込みを示す。本実施例４では、分岐回路とレジスタの接続方法は実施例２（図５）と同じであるが、各分岐回路や各レジスタの機能は実施例２と異なる。
【００５８】
《分岐回路およびレジスタの詳細（応用例［３］）》
図１１は、本発明の実施例４による半導体集積回路装置において、図５における分岐回路の詳細な構成例を示す回路図である。ここでは、各分岐回路は、マーカ信号（ＭＫＲｉｎ）が２サイクル連続で「１」となった時は、その先頭の「１」に対応するサイクルにおけるアドレス兼データ信号（Ａ＆Ｄｉｎ）に基づいてマーカ信号を出力する方向を決めるように構成する。１サイクルだけ「１」となった時は、実施例２と同様にそのサイクルにおけるアドレス兼データ信号（Ａ＆Ｄｉｎ）に基づいてマーカ信号を出力する方向を決める。その他の機能は、実施例２で使用する分岐回路（図６）と同じである。
【００５９】
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図１１のような構成になる。図１１に示す分岐回路は、図６の構成例に対して、フリップフリップ２０４〜２０７が削除され、代わりにエッジトリガ型のフリップフロップ１１０１〜１１０４、セレクタ１１１１、ＡＮＤ回路１１２１が加わった構成となっている。この回路は、クロック信号（ＣＬＫｉｎ）の立ち上りエッジに同期してフリップフロップ２０２が取り込んだマーカ信号（ＭＫＲｉｎ）が「１」であり、且つその直前のサイクルのマーカ信号（フリップフリップ１１０１の保持内容）が「０」である場合に限り、ＡＮＤ回路１１２１が「１」を出力する。セレクタ１１１１は、このＡＮＤ回路１１２１の「１」を受けてフリップフロップ２０１の出力を選択する。
【００６０】
その時にフリップフロップ２０１には、上記のマーカ信号が「１」となったサイクルにおけるアドレス兼データ信号（Ａ＆Ｄｉｎ）が取り込まれている。したがって、その情報が、セレクタ１１１１を介して半サイクル後のクロック信号（ＣＬＫｉｎ）の立ち下りエッジに同期してフリップフロップ１１０２に取り込まれる。その他のサイクルではフリップフロップ１１０２の内容は保持される。そして、そのフリップフロップ１１０２に保持した内容が「０」であれば‘０’側の出力（ＭＫＲｏｕｔ０）のみに、「１」であれば‘１’側の出力（ＭＫＲｏｕｔ１）のみに、フリップフロップ１１０３，１１０４を介して２サイクル遅らせたマーカ信号が出力される。すなわち、マーカ信号（ＭＫＲｉｎ）が連続して「１」になった場合も１サイクルだけ「１」になった場合も、マーカ信号が「０」から「１」になった直後のサイクルにおけるアドレス兼データ信号（Ａ＆Ｄｉｎ）に基づいてマーカ信号を出力する方向が決められる。その他の機能は図６の分岐回路と同じである。
【００６１】
図１２は、本発明の実施例４による半導体集積回路装置において、図５におけるレジスタの詳細な構成例を示す回路図である。ここでは、各レジスタは、マーカ信号（ＭＫＲ）が２サイクル連続で「１」となった時は、その先頭の「１」に対応するサイクル以降のデータ信号を取り込んで保持する。１サイクルだけ「１」となった時は、実施例２と同様に読み出し信号としてレジスタの内容を順次出力する。
【００６２】
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図１２のような構成になる。図１２に示すレジスタは、図７の構成例を基準として、マーカ信号（ＭＫＲ）周りの回路構成が変更されたものとなっている。すなわち、図７の構成例では、フリップフロップ３２０の出力が、ＡＮＤ回路７３１と４段のフリップフロップ７２０，３２１〜３２３を介してＡＮＤ回路３３１に入力されるのに対して、図１２の構成例では、フリップフロップ３２０の出力が、３段のフリップフロップ３２１〜３２３を介してＡＮＤ回路３３１に入力される。この段数の違いは、実施例２のような読み書き選択信号（Ｒ／Ｗ）のサイクルを用いないことによる。更に、この際に、図７と異なる位置に配置されたＡＮＤ回路７３１によって、フリップフロップ３２１の出力とフリップフロップ３２２の出力のアンド演算結果がフリップフロップ３２３の入力として与えられる。
【００６３】
この回路では、マーカ信号（ＭＫＲ）が２サイクル連続で「１」となった際にＡＮＤ回路７３１が「１」を出力し、その時に限り、マーカ信号の先頭の「１」から４サイクル後にＡＮＤ回路３３１を介してワンショットのクロック信号が出力される。フリップフロップ３１０〜３１３は、当該クロック信号の立ち下りエッジに同期して、フリップフロップ３００〜３０３の内容を取り込んでＢＩＴ０〜３として保持する。その時のフリップフロップ３００〜３０３には、直前の４サイクル分のデータ信号が保持されているため、結果としてマーカ信号が２サイクル連続で「１」となった先頭のサイクルから４サイクル分のデータ信号がＢＩＴ３〜０として保持される。一方、マーカ信号（ＭＫＲ）が１サイクルだけ「１」となった時はフリップフロップ３１０〜３１３の内容は変化しない。その場合の読み出しの動作は図７のレジスタと同様である。なお、この図１１および図１２の構成例では、マーカ信号が３サイクル以上連続して「１」にならないことを前提としている。
【００６４】
《半導体集積回路装置（主要部）の動作（応用例［３］）》
図１３は、本発明の実施例４による半導体集積回路装置において、その書き込み時の動作例を示す波形図である。ここでは、図５の構成例に対して図１１および図１２の構成例を適用し、図４の場合と同様に、レジスタ１２３のＢＩＴ３〜０にそれぞれ「１」「０」「１」「０」の各値を保持させたい場合を例とする。図１３と図４の違いは、マーカ信号（ＭＫＲｉｎ，ＭＫＲ）が２サイクル連続で「１」になっていることにある。
【００６５】
マーカ信号（ＭＫＲｉｎ）が連続して「１」になった場合は先頭の「１」に対応するサイクルのアドレス信号（ＡＤＲ）によって分岐方向が決まるため、連続したマーカ信号は同じように連続したまま２サイクルずつ遅延して、１つの方向にのみ伝達していく。そして図４の場合と同様に、分岐回路１０１から分岐回路１０３、１０６を経てレジスタ１２３にマーカ信号が到達する。他のレジスタのマーカ信号は「０」に固定されたままである。そしてレジスタ１２３では、マーカ信号が最初に「１」となるサイクルから４サイクル分のデータ信号「１」「０」「１」「０」がＢＩＴ３〜０に取り込まれ保持される。他のレジスタはマーカ信号が「０」固定であるため保持内容は変化しない。
【００６６】
図１４は、本発明の実施例４による半導体集積回路装置において、その読み出し時の動作例を示す波形図である。ここでは、図５の構成例に対して図１１および図１２の構成例を適用し、レジスタ１２３の内容を読み出す場合を例とする。この場合、図１４に示すように、マーカ信号（ＭＫＲｉｎ，ＭＫＲ）として１サイクルだけ「１」が送られる。マーカ信号が１サイクルだけ「１」である場合は、分岐回路もレジスタも実施例２と同じ動作をするため、図９と同じ結果になる。
【００６７】
この実施例４でも、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。さらに、実施例２の場合と異なり、ここでは読み書き選択信号（Ｒ／Ｗ）が不要となるため、その分だけレジスタに対するアクセスの高速化が図れる。なお、この実施例４では、マーカ信号を１サイクルだけ「１」にした時に読み出し動作を行ない２サイクル連続で「１」にした時に書き込み動作を行なうように構成した場合について説明したが、勿論これに限定されるものではない。例えば、マーカ信号が２サイクル連続で「１」の時に読み出し動作を行ない３サイクル連続で「１」の時に書き込み動作を行なうように構成することも可能であり、その他任意のサイクル数の組み合わせで定義することも可能である。
【実施例５】
【００６８】
本実施例５では、実施例４の構成において、実施例３で説明したリセットを指示する信号もマーカ信号を使って送ることにより、３ビットの下り制御信号と１ビットの上り読み出し信号だけでリセットの機能も実現できる半導体集積回路装置の例を説明する。具体的には、例えばマーカ信号を３サイクル以上連続して「１」にした時にリセットの動作が行われる。マーカ信号の「１」の連続回数が２サイクル以下の場合には実施例４と同じように機能する。本実施例５では、分岐回路とレジスタの接続方法は実施例２や実施例４（すなわち図５）と同じであるが、各分岐回路や各レジスタの機能は実施例２や実施例４と異なる。
【００６９】
《分岐回路およびレジスタの詳細（応用例［４］）》
図１５は、本発明の実施例５による半導体集積回路装置において、図５における分岐回路の詳細な構成例を示す回路図である。ここでは、各分岐回路は、マーカ信号が３サイクル以上連続して「１」となった時は、両側のマーカ信号出力に、少なくとも３サイクル以上連続して「１」を出力するように構成される。また、マーカ信号が３サイクル以内の少なくとも１サイクルで「０」となる場合は、実施例４に使用する分岐回路と同じ動作をするように構成される。
【００７０】
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図１５のような構成になる。図１５に示す分岐回路は、図１１の構成例に対して、更にエッジトリガ型のフリップフロップ１５０１、２ビットカウンタ１５０２、ＯＲ回路１５１１，１５１２、ＡＮＤ回路１５１３、ＮＡＮＤ回路１５１４が加わったものとなっている。ここで、２ビットカウンタ１５０２は、ＡＮＤ回路１５１３の出力が「０」であればクロック信号（ＣＬＫｉｎ）の立ち下りエッジに同期してカウント値を１カウントずつ上昇させ、カウント値が「３」となった際には上昇を停止する。一方、ＡＮＤ回路１５１３の出力が「１」であればクロック信号（ＣＬＫｉｎ）の立ち下りエッジに同期してカウント値を「０」にする。その他の機能は、図１１に使用する分岐回路と同様である。
【００７１】
図１６は、図１５の分岐回路の主な動作例を示す波形図である。図１６に示すように、マーカ信号（ＭＫＲｉｎ）が３サイクル連続して「１」になると、３サイクル目のクロック信号（ＣＬＫｉｎ）の立ち上りエッジに同期してＡＮＤ回路１５１３の出力が「１」となり、その半サイクル後のクロック信号の立ち下りエッジに同期してカウンタ１５０２のカウント値が「０」になる。カウンタ１５０２のカウント値がひとたび「０」になると、カウント値が「３」になるまでの間はＮＡＮＤ回路１５１４の出力は「１」である。従って、少なくとも３サイクルの間は両側のマーカ信号出力に「１」が出力される。
【００７２】
一方、マーカ信号（ＭＫＲｉｎ）の先頭の「１」に対応するアドレス兼データ信号（Ａ＆Ｄｉｎ）に基づいてマーカ信号の出力先（図１６の例では‘０’側のＭＫＲｏｕｔ０）が定まる。当該マーカ信号の出力先には、入力から２サイクル後に「１」が出力され始めるため、その側には１サイクル多く「１」が出力される。また、マーカ信号の入力が４サイクル以上連続して「１」になると、ＡＮＤ回路１５１３の出力が「１」となる期間が複数サイクルとなり、その間はカウンタ１５０２がリセットされたままとなる。いずれにしても、マーカ信号の入力が３サイクル以上連続して「１」になると、両側のマーカ信号の出力に少なくとも３サイクル以上連続して「１」が出力される。また、連続する３サイクルの間の少なくとも１サイクル以上でマーカ信号の入力が「０」になるサイクルがあれば、ＡＮＤ回路１５１３の出力は「０」固定となり、ＮＡＮＤ回路１５１４の出力も「０」固定となる。従って、この場合は図１１の分岐回路と同じ動作をする。
【００７３】
図１７は、本発明の実施例５による半導体集積回路装置において、図５におけるレジスタの詳細な構成例を示す回路図である。ここでは、各レジスタは、マーカ信号（ＭＫＲ）が３サイクル以上連続して「１」となった時は、設計時にあらかじめ決めておいたデフォルト値を取り込むように構成される。さらに、マーカ信号が２サイクルだけ連続して「１」となりその前後のサイクルが「０」である場合や、１サイクルだけ孤立して「１」となりその前後のサイクルが「０」である場合や、「０」だけが連続する場合などは、全て実施例４のレジスタと同じ動作をするように構成される。
【００７４】
このような機能を持つ回路も自動設計可能であるが、もし手作業で設計するなら例えば図１７のような構成になる。図１７に示すレジスタは、図１２の構成例に対して、更にセレクタ１７００〜１７０３、エッジトリガ型のフリップフロップ１７１０、ＡＮＤ回路１７２０が加わったものとなっている。設計時にあらかじめ決めておくデフォルト値は、端子１７５０〜１７５３をハイレベルまたはローレベルの電圧に接続することにより設定される。
【００７５】
この回路は、マーカ信号（ＭＫＲ）が３サイクル以上連続して「１」となると、その先頭の「１」がフリップフロップ１７１０に到達した時にはＡＮＤ回路１７２０の出力が「１」となり、これに応じてセレクタ１７００〜１７０３は端子１７５０〜１７５３による設定値を選択する。すると、その半サイクル後のクロック信号（ＣＬＫ）の立ち下りエッジに同期してフリップフロップ３１０〜３１３が端子１７５０〜１７５３による設定値をセレクタ１７００〜１７０３を介して取り込み、ＢＩＴ０〜３として保持する。マーカ信号の「１」の連続回数が２サイクル以下の場合には、ＡＮＤ回路１７２０の出力は「０」固定となり、セレクタ１７００〜１７０３は常にフリップフロップ３００〜３０３の出力を選択する。従って、図１２のレジスタと同じ動作をする。
【００７６】
このように、本実施例５では、マーカ信号を３サイクル以上連続して「１」にすれば全てのレジスタに対して規定のデフォルト値を設定でき、マーカ信号を２サイクルだけ連続して「１」にすれば所望のレジスタに所望の値を書き込むことができ、マーカ信号を１サイクルだけ孤立して「１」にすれば所望のレジスタの値を読み出すことができる。これにより、実施例３（図１０）のように制御信号の数を増やすことなく各レジスタの初期設定を行うことができ、半導体集積回路装置の小型化と共に、実施例３と同様に書き込みに必要な時間を短縮できる。また、勿論、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。
【００７７】
なお、この実施例５では、マーカ信号を３サイクル以上連続で「１」にした時にリセットが行われる構成について説明したが、勿論これに限定されるものではない。例えば、マーカ信号を４サイクル以上連続で「１」にした時にリセットが行われるように構成することも可能であり、また、それ以上の任意のサイクル数でリセットが行われるように構成することも可能である。
【実施例６】
【００７８】
前述した実施例１〜５では、１個の分岐回路においてそれぞれ１組の制御信号が入力され２組の制御信号を出力することを前提としてきたが、１組の制御信号が入力され３組以上の制御信号を出力するような構成であってもよい。その例として、ここでは、１組の制御信号が入力され４組の制御信号を出力するような分岐回路について説明する。
【００７９】
《分岐回路の詳細（応用例［５］）》
図１８は、本発明の実施例６による半導体集積回路装置において、それに含まれる分岐回路の詳細な構成例を示す回路図である。図１８に示す分岐回路は、図２の分岐回路に対して、更にエッジトリガ型のフリップフロップ１８０１，１８０２，１８０４〜１８０７、ＡＮＤ回路１８１１，１８１２、ロジック機能の無いバッファ１８３２〜１８３７が追加された構成となっている。この回路は、図２の分岐回路を修正し４組の制御信号を出力できるように拡張したものである。
【００８０】
図１９は、図１８の分岐回路の動作例を示す波形図である。図１９に示すように、クロック信号（ＣＬＫｉｎ）は、実施例１の分岐回路（図２）と同様に、バッファによる遅延だけで入力側から出力側に伝達される。アドレス兼データ信号（Ａ＆Ｄｉｎ）も、図２と同様に、クロック信号の１サイクル分の遅延で入力側から出力側に伝達される。一方、マーカ信号（ＭＫＲｉｎ）の使用方法は図２と異なっており、マーカ信号が「１」になるサイクルのアドレス兼データ信号とその次のサイクルのアドレス兼データ信号の２ビットを使って分岐方向が決められ、その方向のマーカ信号にのみ「１」が出力される。他のマーカ信号出力は「０」のままである。
【００８１】
この分岐回路では、分岐方向を決めるために２ビットのアドレス信号を使うため、マーカ信号とアドレス兼データ信号のタイミング関係を２サイクルずらす必要がある。そのため、図１８においてフリップフロップ２０２の後段にフリップフロップ１８０２が設けられ、これにより、図１９に示すように、マーカ信号は、クロック信号（ＣＬＫｉｎ）の３サイクル分の遅延で入力側（ＭＫＲｉｎ）から出力側（ここではＭＫＲｏｕｔ１）に伝達される。また、図１８におけるフリップフロップ１８０１およびＡＮＤ回路１８１１，１８１２は、フリップフロップ２０１およびＡＮＤ回路２１１，２１２を含めて２ビットのアドレス信号をデコードするために設けられる。
【００８２】
この実施例６でも、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。なお、実施例１において、分岐回路の一部または全部をこの実施例６の分岐回路に置き換えてツリー構造のネットワークを構成することも可能である。また、実施例２〜５においても同様に、各分岐回路を、所定の機能を保持した状態で３組以上の制御信号を出力するように拡張し、ツリー構造のネットワークの一部または全部の分岐回路に適用することも可能である。
【実施例７】
【００８３】
これまでの各実施例で述べたようなツリー構造のネットワークは、例えば１個のＬＳＩ（半導体チップ）内で構成することも、１個のＬＳＩの枠を越えて複数のＬＳＩ（半導体チップ）で構成することも可能である。
【００８４】
《半導体集積回路装置（主要部）の構成（応用例［６］）》
図２０は、本発明の実施例７による半導体集積回路装置において、その主要部の構成例を示す概略図である。図２０に示す半導体集積回路装置は、複数（ここでは２個）のＬＳＩ（２００１，２００２）を備え、各ＬＳＩは、これまでに述べたようなツリー構造のネットワーク上に、分岐回路またはレジスタに加えて入力回路２０１１，２０１２、出力回路２０２１，２０２２が配置された構成を備える。
【００８５】
この構成例では、ＬＳＩ（２００１）内の端子（外部端子）１５０からの制御信号が入力回路２０１１を介して分岐回路１０１に入力される。そして、分岐回路１０１から分岐した制御信号の１組が出力回路２０２１を介してＬＳＩ（２００１）の外部に出力され、当該制御信号がＬＳＩ（２００２）内の入力回路２０１２を介して分岐回路１０３に入力される。すなわち、ＬＳＩ（２００１）内の分岐回路１０１から分岐した制御信号の１組を使って、別のＬＳＩ（２００２）が制御される。更に、ＬＳＩ（２００２）内の分岐回路１０３から分岐した制御信号の１組が、出力回路２０２２および端子（外部端子）２０５０を介してＬＳＩ（２００２）の外部に出力され、これによって更に他のＬＳＩが制御される。なお、ここでは、１個のＬＳＩから１組の制御信号を外部に出力する構成としたが、複数組の制御信号を外に取り出し、複数個のＬＳＩを制御することも可能である。
【００８６】
この実施例７でも、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。すなわち、例えば、ＬＳＩ（２００１）やＬＳＩ（２００２）の設計が一旦完了した場合、その後に生じた仕様変更に応じて、例えば、ＬＳＩ（２００１）とＬＳＩ（２００２）の接続の順序を入れ替えたり、更に他のＬＳＩと接続したり、その接続順序を入れ替えたりすること等で対応することができる。この際には、ＬＳＩ（２００１，２００２）内部の回路修正や当該ＬＳＩの内部回路を対象とした再検証等は不要である。
【実施例８】
【００８７】
《半導体集積回路装置（主要部）の構成（応用例［７］）》
前述した各実施例から分かるように、各実施例の制御方式は、アドレス信号やデータ信号がシリアル伝送される第１制御信号と、活性化によって第１制御信号における一部のクロックサイクルを指定するマーカ信号とを用いて、１個以上の分岐回路を介してレジスタに対してアクセスを行うものである。そして、この際に、各分岐回路は、マーカ信号に基づいて指定クロックサイクルにおける第１制御信号の値を判別し、当該判別結果に基づいて分岐先を選択し、当該分岐先に向けて第１制御信号とマーカ信号を出力する。ただし、この際に、分岐回路は、マーカ信号に対しては、第１制御信号よりも大きい遅延を加えることで第１制御信号における指定クロックサイクルの位置をシフトさせる。
【００８８】
これにより、各分岐回路は、マーカ信号に基づいて第１制御信号内の異なるクロックサイクルを自身に向けたアドレス信号として認識することができ、レジスタも、マーカ信号に基づいて第１制御信号内の所定のクロックサイクルを自身に向けたデータ信号として認識することができる。より具体的には、例えば、図１９に示したように、各分岐回路で使用するアドレス信号がｎビットのシリアル信号である場合、各分岐回路は、第１制御信号に対して加える遅延サイクルよりもｎサイクルだけ多い遅延サイクルをマーカ信号に対して加える。
【００８９】
このように、分岐回路を経由する毎に、第１制御信号を基準としてマーカ信号の活性化サイクルをシフトさせながら、ツリー構造のネットワーク上で所望の方向に信号を伝送する方式が各実施例の主要な特徴の一つであり、当該方式を利用する限り、各実施例で述べた内容を代表として各種変形を行うことが可能である。更に、各実施例で述べた内容以外にも各種変形を行うことが可能である。
【００９０】
例えば、各分岐回路が、第１制御信号に含まれるアドレス信号部分を用いて分岐先の選択を行うと共にマーカ信号の活性化サイクルを当該アドレス信号部分の後にシフトさせたのち、各分岐回路の先に結合される各レジスタは、当該マーカ信号の活性化サイクルを受け、それを起点として自身に対して何らかの命令が行われたことを認識することができる。したがって、この命令のフォーマットが予め定められている限り、この第１制御信号の中でアドレス信号に続いて様々な命令を配置することができ、例えば、図８のように当該命令部分を読み書き選択信号（Ｒ／Ｗ）とデータ信号（ＤＡＴｉｎ）からなるフォーマットとすることができる。
【００９１】
また、勿論、このフォーマットに限らず、当該命令部分を、例えば複数ビットのコマンド信号と複数ビットのデータ信号からなるフォーマットとし、当該コマンド信号を用いてレジスタのリセット等を行うようなことも可能である。この観点で、分岐回路の先に結合されるのは、必ずしもレジスタに限らず、例えば図２１に示すような所望の処理回路を結合することも可能である。
【００９２】
図２１は、本発明の実施例８による半導体集積回路装置において、その主要部の概略構成例を示す機能ブロック図である。図２１に示す半導体集積回路装置は、分岐回路２１０１と、その複数の出力先のいずれかに結合された分岐回路２１０２と、その複数の出力先のいずれかに結合された処理回路２１０３を備える。分岐回路２１０１，２１０２のそれぞれには、入力ポートから制御信号としてアドレス兼命令信号（Ａ＆Ｃｉｎ）およびマーカ信号（ＭＫＲｉｎ）が入力される。なお、クロック信号（ＣＬＫｉｎ）は、前述した各実施例に示したように分岐回路を介して伝送することも、一般的なクロックツリー回路を介して各分岐回路および処理回路２１０３に供給することも可能である。ただし、アドレス兼命令信号（Ａ＆Ｃｉｎ）およびマーカ信号（ＭＫＲｉｎ）との間のタイミング関係を維持する観点からは分岐回路を介して伝送する方が望ましい。
【００９３】
分岐回路２１０１，２１０２において、出力先選択部２１１１は、各実施例で述べたように、マーカ信号（ＭＫＲｉｎ）に基づいてアドレス兼命令信号（Ａ＆Ｃｉｎ）（ここではアドレス信号）の値を判別し、その判別結果に応じてｋ（ｋ≧２）個の出力ポートのいずれか１個を選択する。ここでは、ｋ（ｋ≧２）個のスイッチブロックＳＷＢＫ［１］〜ＳＷＢＫ［ｋ］の中のいずれか１個をオンに制御し、残りをオフに制御することで出力ポートの選択が行われる。
【００９４】
例えば、スイッチブロックＳＷＢＫ［１］がオンに制御されると、アドレス兼命令信号（Ａ＆Ｃｉｎ）が１段のフリップフリップ２１１２を介して第１出力ポート（Ａ＆Ｃｏｕｔ［１］）に伝送され、マーカ信号（ＭＫＲｉｎ）が２段のフリップフリップからなる遅延部２１１３を介して第１出力ポート（Ａ＆Ｃｏｕｔ［１］）に伝送される。同様に、スイッチブロックＳＷＢＫ［ｋ］がオンに制御されると、アドレス兼命令信号（Ａ＆Ｃｉｎ）が１段のフリップフリップ２１１２を介して第ｋ出力ポート（Ａ＆Ｃｏｕｔ［ｋ］）に伝送され、マーカ信号（ＭＫＲｉｎ）が遅延部２１１３を介して第ｋ出力ポート（Ａ＆Ｃｏｕｔ［ｋ］）に伝送される。なお、選択されなかった（スイッチブロックがオフに制御された）出力ポートは、図示はしないが、例えば「０」に固定される。
【００９５】
一方、処理回路２１０３は、前段の分岐回路２１０２からのアドレス兼命令信号（Ａ＆Ｃ）およびマーカ信号（ＭＫＲ）を受けて、所定の処理を実行する。ここでは、例えば、アドレス兼命令信号（Ａ＆Ｃ）に含まれる命令信号の部分が複数ビットの命令コードとそれに伴う複数ビットのデータからなるフォーマットを持つものとする。処理回路２１０３において、デコード回路２１２１は、マーカ信号（ＭＫＲ）に基づいてアドレス兼命令信号（Ａ＆Ｃ）における命令信号の始点を認識し、この始点から前述したフォーマットに応じて定められる複数サイクル（複数ビットの命令コードおよび複数ビットのデータ）を取り込んでシリアル・パラレル変換を行う。そして、命令コードの部分を解読して、それに応じた命令を演算処理部２１２２に指示し、また、併せてデータの部分も演算処理部２１２２に送信する。演算処理部２１２２は、これに応じて所定の処理を実行する。
【００９６】
この実施例８でも、実施例１および実施例２の場合と同様の効果も得られ、代表的には、設計の容易化等が実現可能になる。なお、ここでは、命令コードによって様々な命令を指示できる構成としたが、実施例４や実施例５等で述べたようにマーカ信号の長さを利用して様々な命令を発行することも可能である。例えば、マーカ信号の長さが所定のサイクル数よりも長い場合には、ブロードキャスト命令が発行されるように構成することができる。具体的には、例えば、マーカ信号の長さが所定のサイクル数よりも長い場合、各分岐回路は全出力ポートに向けて出力を行い、これを受けて、全処理回路は、自身のリセット動作を行う、或いは命令コードを解釈し、それに応じた共通の処理を行う、といった構成が挙げられる。
【００９７】
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施例は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９８】
例えば、前述したアドレス兼データ信号（Ａ＆Ｄ）は、半導体集積回路装置の小型化や低消費電力化等の観点では１本とすることが望ましいが、必ずしもこれに限定されるものではなく、場合によっては２本等に増加させることも可能である。この場合、１本の場合に比べてツリー構造のネットワークの段数を削減する（例えば、各分岐回路の分岐先を４個とし、１クロックサイクルでその内の１個を各分岐回路に選択させる）ことが可能になる。
【符号の説明】
【００９９】
１０１〜１１０，２１０１，２１０２  分岐回路
１２１〜１３１  レジスタ
１５０，１７５０〜１７５３  端子
１５０２  ２ビットカウンタ
１５１４  ＮＡＮＤ回路
２００１，２００２  ＬＳＩ
２０１〜２０７，３００〜３０３，３１０〜３１３，３２０〜３２３，６０１，６０２，７００〜７０３，７２０，１１０１〜１１０４，１５０１，１７１０，１８０１，１８０２，１８０４〜１８０７，２１１２  フリップフロップ
２０１１，２０１２  入力回路
２０２１，２０２２  出力回路
２１０３  処理回路
２１１，２１２，３３１，７１０，７３１，１１２１，１５１３，１７２０，１８１１，１８１２  ＡＮＤ回路
２１１１  出力先選択部
２１１３  遅延部
２１２１  デコード回路
２１２２  演算処理部
２２１，３４１，３４２  インバータ回路
２３１〜２３７，６３１，７３２，１８３２〜１８３７  バッファ
６１１，１５１１，１５１２  ＯＲ回路
７１１〜７１３，１１１１，１７００〜１７０３  セレクタ
Ａ＆Ｃｉｎ  アドレス兼命令信号
Ａ＆Ｄ，Ａ＆Ｄｉｎ，Ａ＆Ｄｏｕｔ  アドレス兼データ信号
ＡＤＲ  アドレス信号
ＢＩＴ  レジスタの保持内容
ＣＬＫ，ＣＬＫｉｎ，ＣＬＫｏｕｔ  クロック信号
ＤＡＴ，ＤＡＴｉｎ  データ信号
ＭＫＲ，ＭＫＲｉｎ，ＭＫＲｏｕｔ  マーカ信号
Ｒ／Ｗ  読み書き選択信号
ＲＤ，ＲＤｉｎ，ＲＤｏｕｔ  読み出し信号
ＳＷＢＫ  スイッチブロック
【図１】
0005856542.tif 000002
【図２】
0005856542.tif 000003
【図３】
0005856542.tif 000004
【図４】
0005856542.tif 000005
【図５】
0005856542.tif 000006
【図６】
0005856542.tif 000007
【図７】
0005856542.tif 000008
【図８】
0005856542.tif 000009
【図９】
0005856542.tif 000010
【図１０】
0005856542.tif 000011
【図１１】
0005856542.tif 000012
【図１２】
0005856542.tif 000013
【図１３】
0005856542.tif 000014
【図１４】
0005856542.tif 000015
【図１５】
0005856542.tif 000016
【図１６】
0005856542.tif 000017
【図１７】
0005856542.tif 000018
【図１８】
0005856542.tif 000019
【図１９】
0005856542.tif 000020
【図２０】
0005856542.tif 000021
【図２１】
0005856542.tif 000022