(57)【要約】【課題】信頼性の高いシステムＬＳＩを短期間に開発および設計することができる集積回路装置の構造を提供する。【解決手段】機能領域ＦＡには回路ブロックＦＢがアレイ状に配置され、各々のＦＢ１１では、カスタマイズ要素を含んだ上部配線層２１により、ユーザクロックφｕｃにより稼動するＦＵ５０の機能が決定され、上部配線層２１により機能が決定される基本回路要素を提供する下部配線層２２により、デバッグクロックφｄｃで稼動するデバッグ機能がＦＢ制御ユニット６２および出力回路６３により実現される集積回路装置を提供する。この集積回路装置では、カスタマイズされるＦＵ５０の内部データをモニタできるデバッグ機能を開発および設計の負担にならないように組み込むことができる。したがって、信頼性の高いシステムＬＳＩを短時間に低コストで市場に出すことができる。【選択図】        図８
2004214369.tif 000002
【特許請求の範囲】
【請求項１】
多層配線により全体の機能が実現される集積回路装置であって、
カスタマイズ要素を含んだ上部配線層が積層される下部配線層が配置された機能領域を有し、
前記上部配線層により、第１のクロック信号により稼動する第１の機能が決定され、前記下部配線層により、前記第１のクロック信号と異なる第２のクロック信号により稼動する第２の機能が主に実現される集積回路装置。
【請求項２】
請求項１において、前記第２の機能は、前記第１の機能の出力の少なくとも一部をモニタ可能なデバック機能である集積回路装置。
【請求項３】
請求項２において、外部から基本クロック信号を受け入れるクロック端子と、外部からデバッグ信号を受け入れるデバッグ端子と、
前記基本クロック信号より前記第１のクロック信号および第２のクロック信号を生成するクロック供給ユニットと、
前記第２の機能を制御するデバッグプロセッサとを有し、
前記クロック供給ユニットは、前記デバッグ信号に基づき前記第２のクロック信号を前記デバッグプロセッサおよび前記第２の機能へ供給を開始し、前記デバッグプロセッサからの信号により前記第１のクロック信号を停止する集積回路装置。
【請求項４】
請求項２において、前記第２のクロック信号は、前記第１のクロック信号を分周した信号である集積回路装置。
【請求項５】
請求項１において、前記下部配線層により、前記上部配線層により論理が決定される機能ユニットが割り付けられた回路ブロックが複数形成されている集積回路装置。
【請求項６】
請求項５において、前記回路ブロックは、前記機能ユニットの出力を保持可能なデータレジスタを備えており、
前記第２の機能は、前記データレジスタの内容をモニタ可能なデバッグ機能である集積回路装置。
【請求項７】
請求項６において、前記第２の機能は、前記第２のクロック信号に同期して１または複数の前記データレジスタの内容を前記機能領域の外側のデバッグプロセッサに出力する集積回路装置。
【請求項８】
請求項５において、前記下部配線層は、複数の前記回路ブロックにおよぶ配線であって、前記カスタマイズ要素により接続可能な複数のグローバル配線を備えている集積回路装置。
【請求項９】
請求項８において、前記グローバル配線は、前記第１のクロック信号を分配するのに適した配置となっている集積回路装置。
【請求項１０】
請求項９において、前記回路ブロックは、前記機能ユニットの出力を保持可能な複数のデータレジスタと、これらのデータレジスタに対して前記第１のクロック信号を供給するローカルクロック配線とを備えており、
前記ローカルクロック配線は、前記カスタマイズ要素により前記グローバル配線と接続可能である集積回路装置。
【請求項１１】
請求項８において、前記グローバル配線の入力側にバッファセルが接続されている集積回路装置。
【請求項１２】
請求項１１において、前記バッファセルは、イネーブル端子付きである集積回路装置。
【請求項１３】
請求項１２において、前記バッファセルは、前記第２の機能から制御できる集積回路装置。
【請求項１４】
請求項８において、前記回路ブロックは、前記機能ユニットの出力を保持可能な複数のデータレジスタと、これらのデータレジスタをセット・リセットするローカルセット・リセット配線とを備えており、
前記ローカルセット・リセット配線は、前記カスタマイズ要素により前記グローバル配線と接続可能である集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多層配線を有する集積回路装置に関するものである。
【０００２】
【従来の技術】
ユーザ固有の論理を実現するＬＳＩあるいはシステムＬＳＩとして設計・製造されたものはカスタムＬＳＩあるいはＡＳＩＣと称されている。システムＬＳＩには、ロジックだけではなく、メモリなど様々な機能の集積化が要求される。短期間に、このようなカスタムＬＳＩを実現する手法としてスタンダードセル方式が知られている。スタンダードセル方式では、よく使われる基本的な回路ブロック（マクロセル）をあらかじめ設計して、コンピュータ内のデータベースとして蓄えておき、ユーザの要求に応じてこれらの回路ブロックを自動配置することによりシステムＬＳＩを短期間で設計しようというものである。
【０００３】
【特許文献１】
特開平９−１９９５９８号公報
【０００４】
【発明が解決しようとする課題】
一方、ユニフォームなハードウェアを提供して、プログラミングにより回路を選択できるようにしたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）が知られている。このＦＰＧＡは、トランジスタレベルで接続可能な配線をあらかじめ用意し、多数のパストランジスタ・スイッチを介して埋め込んで、フィールド、すなわちユーザサイドでカスタマイズ可能（配線経路選択可能）とし、システムＬＳＩを短期間で提供可能にしようとするものである。
【０００５】
半導体技術の進展に伴い、チップ上に搭載可能なゲート数は増大する一方である。ユーザ固有の論理ＬＳＩを具現するＡＳＩＣやＦＰＧＡについても、ゲート数の増大に伴い、種々の問題や課題に直面している。
【０００６】
まず第１の課題として、チップに搭載可能なデート数が飛躍的に増加した結果、配線層数も５層または６層が標準となり、微細化マスクの製造費が極めて大きな負担となりつつあることである。第２の課題として、配線微細化に伴うタイミング問題がある。配線を微細化するために単位長当たりの抵抗値は増加し、それによる配線遅延が処理の高速化の障壁となる。その結果、タイミング設計が困難で、タイミングの解決のために費やされる時間が問題となる。第３の課題として、第２の課題にも関連するが、その他の要素も含めてシステムＬＳＩの設計に時間がかかりすぎるという事実がある。ＬＳＩの設計は大きく分けて論理設計と、レイアウト設計に分けられるが、どちらもシリコンテクノロジーの進展に設計技術が追いついていない。
【０００７】
第４の課題は、ＬＳＩは急速に大規模化しているのに対してデバッグ機能が提供されていないことである。内部信号をモニタするためにプローブ機能を導入しようとすれば、膨大な量のスイッチを組み込む必要があり、モニタする位置も含めて設計しようとすると、膨大な時間が費やされることになるからである。しかしながら、内部信号モニタもない状態では、数百万ゲートのＬＳＩといっても内部はブラックボックスになり、ＬＳＩ完成後のシステムデバッグにかかる時間が予測できない。したがって、システムＬＳＩが商品として市場に出るために長時間を有し、市場に出てから障害解析を行なう必要が発生すると、それに膨大な時間がかかってしまう。
【０００８】
このように、現状では、ＡＳＩＣ、システムＬＳＩ、ＦＰＧＡといった集積回路装置を、さらに高集積化し、高性能化することができる製造技術の進展はあるが、それに対応した開発および設計技術は提供されていない。そこで、本発明においては、上記の第１から第４の課題を解決することが可能な新規なＡＳＩＣ構造（アーキテクチャ）を提示することを目的としている。そして、信頼性の高いシステムＬＳＩを短期間に開発および設計することができる集積回路装置の構造あるいは構成を提供することを目的としている。
【０００９】
【課題を解決するための手段】
近年のシステムＬＳＩを実現しようとしたときに、配線層数が多層にならざるを得ないことは上述したとおりである。そこで、本発明においては、多層配線により全体の機能が実現される集積回路装置であって、カスタマイズ要素を含んだ上部配線層が積層される下部配線層が配置された機能領域を有し、上部配線層により、第１のクロック信号により稼動する第１の機能が決定され、下部配線層により、第１のクロック信号と異なる第２のクロック信号により稼動する第２の機能が主に実現される集積回路装置を提供する。全体の機能のうち、カスタマイズされる第１の機能に対して、カスタマイズの対象とならない第２の機能を下部配線層により実現しておくことにより、これら第１および第２の機能の開発および設計をセパレートできる。そして、カスタマイズの対象とならない第２の機能を実現する下部配線層まで開発および設計、さらには可能であれば製造を進めておくことにより、システムＬＳＩを市場に出すまでのコストおよび期間を大幅に短縮できる。
【００１０】
第２の機能の全部あるいはその殆どが下部配線層により実現されることにより、第１の機能を決定する上部配線層の開発および設計、さらには製造を分離して行うことができる。このため、集積回路装置、すなわち、システムＬＳＩの設計・開発および製造工程の効率が向上する。もちろん、第２の機能の一部を上部配線層により実現することを除外するものではない。また、上部配線層のカスタマイズ要素により機能が最終決定されるとしても、その機能を実現するために共通する基本回路要素を下部配線層に含められれば、さらに、上部配線層の開発、設計さらには製造期間を短縮することができる。
【００１１】
多種多様な仕様を実現するために開発されるシステムＬＳＩを対象したときに、カスタマイズの対象となる第１の機能と、カスタマイズの対象とならない第２の機能とを分離することは容易ではない。しかしながら、稼動するクロック信号が異なる機能は分離することが容易であり、そのような機能の１つはデバッグ機能である。すなわち、本発明の第２の機能は、第１の機能の出力の少なくとも一部をモニタ可能なデバック機能であることが望ましい。また、下部配線層により主に実現される第２の機能の上に、ユーザロジックとしてカスタマイズ要素により機能が最終決定される第１の機能が物理的に積層されるので、物理的にもユーザロジックの内部信号をモニタしやすい構成となる。そして、内部信号をモニタするデバッグ機能を予め組み込んでおくことは、膨大な量のスイッチを、モニタする機能と共に組み込む必要がなくなり、モニタする位置も含めて設計する必要もなくなるので、それに費やされる膨大な時間を節約することができる。さらに、ＬＳＩ完成後のシステムデバッグを可能とし、市場に出てから障害解析を行なうことも可能とする。したがって、本発明により、信頼性の高いシステムＬＳＩを短期間に開発および設計し、市場に投入できる。
【００１２】
ユーザクロックとなる第１のクロック信号と、デバッグクロックとなる第２のクロック信号は分離されているので、第２のクロック信号によるデバッグ動作と、第１のクロック信号による通常のシステム動作とを切り分けて制御することが可能となる。すなわち、デバッグ動作時には、ユーザクロックとなる第１のクロック信号を停止することができ、その一方で、ユーザクロックを停止してもデバッグクロックである第２のクロック信号は停止しない構造となる。
【００１３】
外部から基本クロック信号を受け入れるクロック端子と、外部からデバッグ信号を受け入れるデバッグ端子と、基本クロック信号より第１のクロック信号および第２のクロック信号を生成するクロック供給ユニットと、第２の機能を制御するデバッグプロセッサとを設けることにより、クロック供給ユニットは、デバッグ信号に基づき第２のクロック信号をデバッグユニットおよび第２の機能に対する供給を開始し、デバッグプロセッサからの信号により第１のクロック信号を停止することができる。
【００１４】
下部配線層により予め形成される第２の機能は、その機能のために形成された回路が動作可能な最高周波数以下の第２のクロック信号により動作させることになる。したがって、ユーザクロックで動作するように設計される第１の機能に対して限られた、場合によって低い周波数のクロック信号により動作させなければならない可能性がある。第１および第２のクロック信号は、それぞれ適当な周波数のクロック信号が機能領域の外部から与えられても良い。しかしながら、ユーザクロック用に高周波数の基本クロック信号が与えられている場合は、デバッグ用の第２のクロック信号は、通常動作用の第１のクロック信号を分周して生成することが可能である。このクロック供給ユニットにより、また、デバッグ端子からデバッグ信号を供給することにより、通常のシステム動作時には第２のクロック信号を停止させて余計な電力の消費を防ぐことが可能である。また、デバッグ動作時には、デバッグプロセッサによりデバッグ条件の成立を監視し、条件が成立したときに第１のクロック信号を停止するイネーブル制御論理を適用できる。
【００１５】
ユーザカスタマイズの第１の機能を短期間で搭載できるように、下部配線層により、上部配線層により論理が決定される機能ユニットが割り付けられた回路ブロックを複数形成しておくことができる。機能ユニット（ＦＵ）の１つは、多入力真理値テーブルであり、カスタマイズ要素により、真理値テーブルがセットされる。たとえば、最小では４ビット入力１ビット出力の真理値表であり、標準で４ビット入力４ビット出力の真理値表であり、最大では８ビット入力８ビット出力の真理値表である。もちろん、複数のＦＵにより、さらに大きな真理値テーブルを構成することも可能である。真理値表の具体的な回路を実現するＦＵの１つ形態は、デコーダユニットと、そのデコーダユニットのデコード結果により入力値のいずれかを選択して出力するセレクタユニットとを備えており、カスタマイズ要素により、セレクタユニットの入力側が配線されるものである。
【００１６】
ＦＵとして提供可能な他の機能ユニットとしては、複数の演算回路を含み、カスタマイズ要素により所望の演算回路を設定可能な演算器、ＳＲＡＭのビット・ワードをカスタマイズ要素により選択することが可能なメモリがある。ＦＵは上記の３つのタイプに限定されるものではないが、上記の３つのタイプのＦＵはシステムＬＳＩを実現する上でメジャーなものであり、多少の冗長な部分があるとしても、システムＬＳＩが必要とするほとんどの機能を実現することができる。
【００１７】
これらのＦＵを割り付ける回路ブロック（ＦＢ）の一例は、出力インターフェイスとして８ビット分のレジスタを備えた、あるいは８ビット分のレジスタを境界とするブロックである。たとえば、４ビット入出力真理値表ＦＵであれば、２つのＦＵが１つのＦＢにマッピングされる。８ビット入出力真理値表ＦＵであれば、１つのＦＵが１つのＦＢにマッピングされる。また、キャリーも含めて９ビット出力の積和演算器ＦＵであれば、２つのＦＢをもって１つのＦＵがマッピングされる。１６ビットのデュアルポートＲＡＭであれば、４つのＦＢをもって１つのＦＵがマッピングされる。
【００１８】
ＦＢは、ＦＵの出力を保持可能なデータレジスタを備えているので、第２の機能によりデバッグ機能を実現させるには、ＦＢのデータレジスタの内容をモニタする機能を下部配線層により実現させておけば良い。そして、第２のクロック信号に同期して１または複数のデータレジスタの内容を機能領域の外側のデバッグプロセッサに出力することにより、デバッグプロセッサにより内部データを監視することができる。バス形式であれば、複数のデータレジスタの内容をデバッグプロセッサに供給することが可能であり、シリアル転送方式であればデータレジスタの内容を順番にデバッグプロセッサに供給できる。
【００１９】
下部配線層は、カスタマイズ要素により決定可能な共通のメタル要素を提供することができるので、第１のクロック信号を分配するクロックネットの基本構成を下部配線層に導入することも可能である。しかしながら、実際に使用されるかどうかわからないすべての回路ブロックに対して第１のクロック信号を予め分配できるような構成は、消費電力を増加させる要因となる。さらに、複数種類の第１のクロック信号が必要になる場合もあり、複数種類のクロック信号をどのように分配するかはカスタマイズ要素の設計が終了しないと判明しない。このため、本発明においては、下部配線層は、複数の回路ブロックにおよぶ配線であって、カスタマイズ要素により接続可能な複数のグローバル配線を設ける。これらのグローバル配線を適宜、接続することにより、第１のクロック信号を、ユーザロジックに適切な回路ブロックに供給するクロックネットを構築できる。下部配線層により複数のグローバル配線を予め用意し、カスタマイズ要素によりグローバル配線同士を接続可能とすれば、第１のクロック信号を必要とする回路ブロックに対して適切なクロック信号を供給するクロックネットをフレキシブルに構成できる。これにより、不必要な配線またはクロックバッファ成分による余計な電力の消費を防ぐ事ができる。
【００２０】
クロック信号はユーザ論理を実現する回路ブロックには供給される必要がある。したがって、いくつかの回路ブロックに対して供給が不要であるとしても大半の回路ブロックには供給する必要があるとすれば、クロック信号を分配するのに最適な配線経路はほぼ決まる。したがって、グローバル配線は第１のクロック信号を分配するのに適した配置となっていることが望ましい。その一例は、回路ブロックが形成された機能領域にＨ型に配置された配線であり、クロック信号の遅延が予想しやすい。
【００２１】
また、ユーザロジックを実現する回路ブロックのデータレジスタに対してはクロック信号を供給する必要がある。したがって、回路ブロックのデータレジスタに対して第１のクロック信号を供給するローカルクロック配線を下部配線層により予め実現しておき、ローカルクロック配線をカスタマイズ要素によりグローバル配線と接続可能なようにしておくことは有効である。
【００２２】
広範囲にクロック信号を分配する必要がある場合、クロック信号においても信号伝達の遅延が問題となる。したがって、グローバル配線の入力側にバッファセルを接続しておくことが望ましい。信号伝達の遅延は、ゲートの駆動能力と、配線容量（配線長）により決定されるが、配線長はユーザの設計データが配置されるまで確定しない。一方、下部配線層によりグローバル配線を予め用意しておこうとすると、配線長によりゲートの能力を変えることは難しい。これに対し、バッファセル付のグローバル配線は、バッファセルが、それに接続されたグローバル配線の中継バッファとして機能するので、複数のグローバル配線を接続して長距離に信号を伝達する場合でもゲートの駆動能力を一定に抑えることができる。したがって、このグローバル配線は、クロック信号を供給するためだけではなく、複数の回路ブロックにおよぶ範囲あるいは距離に信号を伝達するために汎用的に利用することができる。
【００２３】
バッファセル付きのグローバル配線においては、バッファセルにイネーブル端子が付いていることが望ましい。イネーブル端子をカスタマイズ要素で接続することにより、回路ブロック単位、あるいは、複数の回路ブロックを束ねるグローバル配線の単位で第１のクロック信号の供給を選択的に制御し、詳細な低消費電力制御を行うことができる。さらに、バッファセルが第２の機能から制御できるようになっていれば、第２の機能によりデバッグを行うときに第２のクロック信号に同期して第１のクロック信号を適宜供給して、回路ブロックに割り付けられた機能ユニットを駆動できる。したがって、機能ユニットの動作をスキャンモードでデバッグすることが可能となる。
【００２４】
また、機能領域の外部にリセット生成モジュールを設けたり、機能領域の内部のＦＵを用いてリセット生成ロジックを作り、回路ブロックのデータレジスタをセット・リセットするセット信号およびリセット信号を生成することが可能である。その場合、セットおよびリセット信号を伝送するローカルセット・リセット配線として、カスタマイズ要素により接続されたグローバル配線を用いることが可能である。グローバル配線は、ＦＢの単位を超えたさらに長周期あるいは長ピッチの配線経路あるいは配線ネットを構成できるので、クロック信号、セットおよびリセット信号に限らず、他の信号をＦＢの単位を超えて伝達するために利用できる。
【００２５】
【発明の実施の形態】
以下に図面を参照してさらに本発明について説明する。図１に本発明に係る集積回路装置（システムＬＳＩ）の概略構成を示してある。本例のシステムＬＳＩ１は、８ビットの出力を単位に分離された回路ブロック（ファンクションブロック、ＦＢ）をアレイ状に配置した構成のファンクションブロックアレイ（ＦＢＡ）と、デバッグ機能を備えたプロセッサからアクセス可能としたプロセッサとを備えた新規のＡＳＩＣである。ＦＢＡには、マクロ機能ユニット（ファンクションユニット、ＦＵ）がマッピングされ、複数のＦＵがアレイ状に配置された機能領域（集積回路モジュール（以降ではＦＵＮＴＥＣＨ領域あるいはＦＡ）１０が構成される。さらに、システムＬＳＩ１は、ＦＡ１０のデバッグを行うデバッグプロセッサ（ＤＰ）９が搭載されている。ＤＰ９は、１６ビットの基本プロセッサ（以降ではこれをＰＵと称する）２と、ＦＡ１０の各ＦＢの状態を制御およびモニタする制御回路（比較ユニット、以降ではＶＵ）３と、ＦＡ１０をデータＲＡＭとしてアクセスするためのインターフェイス回路（以降ではＩＦＵ）４と、ホストＰＣ９０にて動作するデバッガソフト９１とＰＵ２とをインターフェイスするデバッグユニット（以降ではＤＵ）５とを備えている。ＶＵ２は、ＦＡ１０の各ＦＢのモニタ出力と比較対象のデータとを対比し、その結果により各ＦＢの状態を制御するためにＦＡ１０とＰＵ２の間に存在する制御回路である。
【００２６】
さらに、ＬＳＩ１０は、クロック端子８に供給された基本クロック信号φｂｃから通常動作用のクロック信号（ユーザクロック、第１のクロック信号）φｕｃと、デバッグ動作用のクロック信号（デバッガクロック、第２のクロック信号）φｄｃを生成するクロック供給ユニット８０を備えている。クロック供給ユニット８０には、ＤＰ９からイネーブル制御信号φｃｅが供給されており、ＤＰ９が稼動してデバッグモードになっているときはイネーブル制御信号φｃｅがアサートされて、ユーザクロックφｕｃがＦＡ１０に供給されないようになっている。また、デバッガクロックφｄｃは、デバッグ用の制御回路ＶＵ３を介してＦＡ１０に供給される。
【００２７】
図２に、アドレスデータにより内部のＦＢを指定できるアドレッシング方式のＦＡ１０の内部構成を示してある。ＦＡ１０は、マトリクス状あるいはアレイ状に配置された複数のＦＢ１１と、モニタリング用のアドレスデータφｍａをデコードする行選択デコード回路１２および列選択デコード回路１３と、モニタリング用のデータφｍｄを出力するデータバス１７とを備えている。また、各ＦＢ１１には、ＶＵ３からのデバッガクロックφｄｃが入力される。したがって、行選択信号線１４および列選択信号線１５により選択されたＦＢ１１からデバッガクロックφｄｃのタイミングでモニタリング用のデータφｍｄがデータバス１７を介して出力される。ＤＰ９のＰＵ２からＦＡ１０をアクセスするためのＩＦＵ４は、ＰＵ２から出力されるＲＡＭアドレスデータを保持してＦＡ１０にモニタ用のアドレスデータφｍａとして出力するアドレスレジスタ４ａと、モニタ用の出力データφｍｄを保持するデータレジスタ４ｄと、ＰＵ２からのＲＡＭ制御信号φｒｃに対応する機能とを備えている。したがって、ＩＦＵ４により、ＰＵ２からはデータＲＡＭとしてＦＡ１０が見え、プロセッサ側から見ればＣプログラムからアクセスする方式で各ＦＢ１１のアドレスを指定してＦＢ１１のレジスタに対し読出・書込が可能となる。
【００２８】
比較ユニットであるＶＵ３は、ＦＡ１０のモニタ出力φｍｄを格納するモニタレジスタ３１に加え、ＰＵ２よりアクセス可能なインターフェイスレジスタとして比較データレジスタ３２と、マスクデータレジスタ３３とを備えている。ＦＢ１１の出力が格納されるモニタレジスタ３１をＰＵ２よりアクセス可能にしてもよい。モニタレジスタ３１にはアドレスφｍａにより指定されたＦＢ１１の出力φｍｄの内容（最大８ビットデータ）が格納され、比較器３４により、比較データレジスタ３２のデータと比較される。比較データレジスタ３２には外部デバッガソフト９１からＤＵ５およびＰＵ２を経由して一致比較を取るためのデータが格納される。マスクデータレジスタ３３は比較させたくないビット（ドントケア・ビット）を指定するレジスタであり、やはり外部デバッガソフト９１からＤＵ５およびＰＵ２を経由して設定される。比較器３４はこれら３つのレジスタを入力し、マスクデータレジスタ３３のデータにて指定されたドント・ケアビットを比較対照としない比較を比較データレジスタ３２のデータとモニタデータレジスタ３１のデータφｍｄの間で行う。
【００２９】
ＶＵＰＵ型のプロセッサでは、ＶＵ３の比較処理は比較命令がＰＵ２よりＶＵ３に発行されるのが通常である。制御レジスタ３５に比較モードを設定して比較動作を開始させる方法もある。ＶＵ３においては、比較データレジスタ３２とモニタレジスタ３１とのデータが一致した場合に、比較器３４からＰＵ２の側に一致が取れたことが通知され、それと同時にＦＡ１０の動作を停止すべくＶＵ３の制御回路３９がイネーブル制御信号φｃｅをクロック制御ユニット８０に供給する。
【００３０】
ＤＰ９は、これらのデバッグ操作を、ＬＳＩ外部のＰＣ９０において適当なＯＳ上で動くデバッガソフト９１より可能とするためのプロセッサである。ＤＰ９に内蔵されているＤＵ５は、デバッガソフト９１とＰＵ２との間のデータの仲介をインターフェイスするハードウェアである。このため、ＤＵ５はインターフェイスレジスタ５ｒを備えており、ＰＵ２の汎用レジスタ２ｇに対してデータを転送できるようになっている。また、ＬＳＩ１は、ＰＵ２、ＶＵ３およびＤＵ５をデバッグモードで使用するためのデバッグ制御信号φｄの入力端子７が設けられている。したがって、デバッグ制御信号φｄが供給されると、ＤＰ９が稼動し、ＦＡ１０に埋め込まれたデバッグ機能がデバッグ用のクロック信号φｄｃで稼動し、ＤＰ９にＦＡ１０の内部情報を提供する。
【００３１】
図３に、ＦＡ１０の断面構成の一例を示してある。この図は、集積回路モジュールのＰチャネル・トランジスタ１９ｐが作りこまれた基板１９の断面をメタル配線層２０まで含めて図示している。本図からわかるように、このＦＡ１０は、多層配線２０により全体の機能が実現される集積回路モジュールである。多層配線２０のうち、上部配線層２１がカスタマイズ要素を含んだ配線層であり、下部配線層２２がカスタマイズ要素により最終回路が決定される基本回路要素の少なくとも一部を実現する配線層である。このＦＡ１０においては、基本回路要素により、カスタマイズ要素により機能が決定される第１の機能に加え、上述したデバッグ機能（第２の機能）が提供される。そして、上部配線層２１を積層することにより、第１の機能によりユーザ論理が実現され、第２の機能によりユーザ論理をデバッグすることができるＦＡ１０が形成される。
【００３２】
後述するＦＵも含めて多機能な基本回路を構成するには、メタル１層２０ａおよび２層２０ｂを使用するのが通常であり、本例では、下部配線層（下位配線層、下層配線層あるいは共通メタル層）２２とは１層目のメタル層２０ａと２層目のメタル層２０ｂを言う。しかしながら、回路要素によって、１層および２層では配線数が不十分な場合は、さらに上位の層、たとえば、３層目のメタル層２０ｃあるいはそれ以上の配線層までが下層配線層２２として使用されるケースもあり、そのような場合も本発明に含まれる。もちろん、配線微細化により、配線数が十分になれば、１層目のメタル層２０ａだけで下層配線層２２を構成することも可能である。
【００３３】
したがって、本例においては、ユーザ配線層あるいはカスタマイズ配線層となるのは、３層目のメタル層２０ｃより上位の配線層２１であり、多くのケースでは２層分または３層分が使用される。上部配線層（上層配線層、上位配線層、ユーザ配線層あるいはカスタマイズ配線層）２１の数は１層でも良く、４層以上であっても良い。本発明に係る集積回路モジュールでは、下部配線層２２は、デバッグ機能も含めて基本回路要素を生成するのに、必要ではあるが、十分である必要はない。すなわち、基本回路要素の大半あるいは一部を下部配線層２２で形成し、残りの基本回路要素の一部をカスタマイズ要素と共に上部配線層２１により実現することが可能であり、本発明を実現あるいは実施する上において、そのような構成を採用しても不都合はないからである。しかしながら、本発明の説明を簡単にするために、以降においては、下部配線層２２を、基本回路要素を実現するための配線層とし、上部配線層２１を、カスタマイズ要素を実現するための配線層として説明する。このため、以下においては、デバッグ機能は下部配線層２２により実現されている例を説明する。
【００３４】
したがって、本例のＦＡ１０においては、下部配線層２２により、カスタマイズ前のＦＡ（プレカスタマイズドＦＡ）２９、すなわち、カスタマイズ要素（上部配線層）２１により内部論理が決定される機能ユニットＦＵを割り付け可能な回路ブロックであって、ＦＵの出力を第１のビット数単位（本例では８ビット）でラッチ可能な出力インターフェイスを備えたＦＢ１１が複数、アドレス情報φｍａで選択可能なように配置され、デバッグ機能がプレインストールされた集積回路モジュールが形成される。また、同時に、下部配線層２２により、上部配線層２１により内部論理が決定される少なくとも１種類のマクロ機能ユニットＦＵであって、多入力論理をサポートするマクロ機能ユニットＦＵが複数、上部配線層２１により接続可能なように配置された、カスタマイズ前のＦＡ２９が形成される。
【００３５】
カスタマイズ前のＦＡ２９は、デバッグ機能を含めた、より汎用的な構成のＦＢ１１がアレイ状に配置されたＦＢＡ２８と、そのＦＢＡ２８に特定の範囲あるいはタイプのユーザロジックを実現するのに適したＦＵが割り付けられたＦＡ２９という状態に分けて考えることも可能である。そして、その状態を配線層により実現することも可能である。たとえば、下位の配線層２２のうち、下層の配線層２２ａによりＦＢ１１としての基本的な構成を実現可能とし、それらをアレイ状に配置したＦＢＡ２８を形成することができる。そして、下位配線２２のうち、上層の配線層２２ｂにより、ＦＢ１１に対してＦＵとしての機能を割り付けたセミカスタマイズの状態にすることが可能であり、複数種類のＦＵを１つのＦＡ２９に割り付ける場合に、そのプラットフォームとなるユニフォームな構成のＦＢＡ２８を先行して製造したり、設計することが可能となる。
【００３６】
なお、以降においては、下部配線層２２の上に上部配線層２１が形成された、カスタマイズされた状態の集積回路モジュールあるいは機能領域を原則としてＦＡ１０と称するが、カスタマイズ前と後と厳密に説明する必要がない場合は、カスタマイズされる前、すなわち、下部配線層２２までが形成された状態も含めてＦＡ１０と称することがある。また、カスタマイズ要素である上部配線層２１は、ＦＢ１１の機能を決定するだけではなく、ＦＢ１１の入力と出力とを接続する配線の内、カスタマイズが必要な部分も形成する。ＦＢ１１の入出力をすべてカスタマイズ要素として配線することも可能である。
【００３７】
図４に、ＦＢ１１にＦＵとして機能を割り付けた様子を示してある。ＦＢ１１は最大８ビットのレジスタを持つ出力インターフェイス４０を境界とする箱であり、その８ビットの出力インターフェイス４０が外部モニタリングの単位となる。また、図４（ｂ）に示すように、出力インターフェイス４０には、ひとつのレジスタ４１と並列に、２つのスルーバッファ４２ａおよび４２ｂが配備されている。図４（ａ）は、ＦＢ１１に、４ビット入力４ビット出力の真理値表５１が機能ユニット（ＦＵ）５０としてアサインされている。４ビット入力４ビット出力の真理値表５１は出力が４ビットであるので、２つのＦＵ５０が１つのＦＢ１１にアサインされる。
【００３８】
図４（ｃ）は、ＦＢ１１に、乗算器５２をＦＵ５０としてアサインした状態を示してある。乗算器５２は８ビット入力８ビット出力であるので、１つのＦＵ５０が１つのＦＢ１１に割り付けられる。また、図５は、ＦＢ１１に、積和演算器５３をＦＵ５０としてアサインした状態を示してある。積和演算器５３は、１７ビット入力９ビット出力なので、１つのＦＵ５０が２つのＦＢ１１にアサインされる。したがって、一方のＦＢ１１の残り７ビット４９は空き状態となり、基本的には使用されない。
【００３９】
図６は、ＦＢ１１に２ポートのＳＲＡＭ５４をＦＵ５０として割り付けた状態を示してある。このＳＲＡＭ５４はａポートおよびｂポート各々１６ビット出力が最大である。したがって、１つのＦＵ５０が４つのＦＢ１１にアサインされることになる。
【００４０】
図７は、多入力多出力真理値表である４入力４出力の真理値テーブル５１をＦＵ５０としてＦＢ１１に搭載した例を示してある。この真理値テーブル５１は、４ビットの入力ｉｎ０からｉｎ３に与えたれた１６ビットのデータを、１６ビットあるいは１６本の選択信号線（選択線）５５にデコードするデコーダ５６と、出力ｏｕｔ０〜ｏｕｔ３に対応して各々１６個のトライステート論理素子５７が配列された４列の出力回路５８とを備えており、４列の出力回路５８が真理値表５９を構成している。すなわち、本例の真理値テーブル５１の機能を備えたＦＵ５０においては、デコードされた１６本の信号線、選択線５５を行とし、４つの出力回路５８が列となって、１６個のトライステート論理素子５７が４列配列された面（真理値表）５９が構成され、総計１６行×４列（６４個）のトライステート論理素子５７が配列されたＦＵ５０となっている。各選択線５５は各行に相当するトライステート論理素子５７の制御信号入力端子（制御端子）５７ｇに接続されている。各列のトライステート論理素子５７の出力端子５７ｏはひとつのレジスタ４１に接続させるために共有接続されている。
【００４１】
基本回路要素、すなわち、下部配線層２２により形成された状態のトライステート論理素子５７の入力端子５７ｃは未定義オープンとなっており、ユーザ定義にしたがって、カスタマイズ層である上部配線層２１のＶｓｓ／Ｖｃｃから生成された０信号２５ａまたは１信号２５ｂに接続され、デコードされた信号線５５に対する機能が決定される。１６個のトライステート論理素子５７の共通出力（列に相当）はユーザ定義に従い、出力インターフェイス４０のスルーバッファ４２を通ってＦＵ５０の外部に接続されるか、出力レジスタ４１を介して外部に出力される。その両方を選択することも可能である。
【００４２】
出力レジスタ４１に接続される場合には、レジスタ４１のデータ入力、クロックイネーブル入力、セット・リセット入力を上部配線層２１により定義あるいは制御することが可能となっている。ユーザクロックφｕｃでレジスタ４１にデータを入力する場合は、ＦＢ１１に予め用意されているローカルクロック配線４５を上部配線層２１によりユーザクロックネット８１に接続する。ローカルクロック配線４５は、出力インターフェイス４０のレジスタ４１のクロック入力ｃｋをＦＢ１１の単位で予め接続している配線であり、アンドゲート回路４６に繋がっている。また、ユーザクロックネット８１は、後述するグローバル配線７０を用いて形成されており、クロック供給ユニット８０からユーザクロックφｕｃが供給される。
【００４３】
したがって、ユーザクロックネット８１とローカルクロック配線４５のアンドゲート回路４６のクロック側４６ｃとを上部配線層２１により接続し、アンドゲート回路４６のイネーブル側４６ｅを他のＦＵ５０の出力を接続することにより、他のＦＵ５０をクロック制御ユニットとしてユーザクロックφｕｃにより出力インターフェイス４０を駆動できる。また、この構成であると、アンドゲート回路４６のイネーブル側を、クロック制御ユニットが操作できるので、ユーザクロックφｕｃの供給停止をＦＢ１１の単位で制御できる。したがって、ユーザクロックφｕｃの供給、停止を詳細に制御し、クロックの浪費による消費電力の増加を低減できる。
【００４４】
また、レジスタ４１をセット・リセットしてＦＵ５０の出力を入力する場合は、上部配線層２１によりローカルセット配線４７ｓおよびローカルリセット配線４７ｒをセットネット８８ｓおよびリセットネット８８ｒにそれぞれ接続する。ローカルセット配線４７ｓおよびリセット配線４７ｒは、出力インターフェイス４０のレジスタ４１のセット端子ｓおよびリセット端子ｒをそれぞれ、ＦＢ１１の単位で予め接続している配線である。セットネット８８ｓおよびリセットネット８８ｒも、グローバル配線７０を用いて形成されており、ＤＰ９に設けられたリセット生成モジュール（不図示）や、ＦＵ５０により形成されたリセット論理から供給されるセット信号およびリセット信号を伝達できるようになっている。
【００４５】
このように、下部配線層２２によりＦＵ５０としての機能が割り付けられたＦＢ１１に、上部配線層２１を積層することにより、ユーザ論理である第１の機能が最終的に決定される。ＦＵ５０の機能を決定する代表的な上部配線層２１は、電源Ｖｓｓ（低電位）／Ｖｃｃ（高電位）より生成された０信号と１信号を供給する信号線２５ａおよび２５ｂである。上部配線層２１は、電源線を含めて配線しても良く、あるいは、基本回路要素２２として配線された電源線から、各々のＦＵ５０の機能を決定する回路要素までの接続配線だけ上部配線２１として配線しても良い。上部配線層２１におけるカスタマイズ要素は電源配線に限定されることはない。上述したクロック信号φｕｃを供給するクロックネットを構成する場合は、下部配線層２２による基本回路要素として用意された配線を接続することで、ＦＵ５０の機能（出力形態）を決定できる。
【００４６】
図８に、ＦＵ５０に加え、下部配線層２２により実現されるデバッグ機能も含めたＦＢ１１の構成を示してある。ＦＢ１１は、ＦＵ５０を構成する回路が割り当てられるデータパス部６１と、ＦＢ１１のデバッグを制御するＦＢ制御ユニット６２と、出力インターフェイス４０の８ビットのレジスタ出力をモニタリング用のデータバス１７に出力する出力回路６３とを備えている。ＦＢ制御ユニット６２は、図１に示したＤＰ９から出力されるアドレスφｍａにより自己のＦＢ１１が選択されたときに、ＤＰ９を介して供給されるデバッガクロックφｄｃにより、出力回路６３を駆動し、インターフェイス４０のレジスタ４１の内容をデータバス１７に出力する。デバッガクロックφｄｃは、デバッガクロックネット８２により各ＦＢ１１に供給されている。
【００４７】
ＦＢ制御ユニット６２は、列選択信号線１４および行選択信号線１５を入力とするＮＡＮＤゲート回路６５を備えており、自己のＦＢ１１を示すモニタリング用のアドレスデータφｍａが出力され、列選択信号線１４および行選択信号線１５で選択されているか否かを常に判断する。そして、列選択信号線１４および行選択信号線１５で、自己のＦＢ１１が選択されると、セット・リセット型フリップフロップ（ＳＲ−ＦＦ）６６をデバッグ用クロックφｄｃのタイミングでセットし、出力回路６３を駆動してレジスタ４１の内容をモニタリング用のデータバス１７に出力する。出力回路６３は、少なくとも８ビット幅が確保されたデータバス１７に対して、出力インターフェイス４０の８ビットのレジスタ４１をパラレルに出力できるように８ビットのバッファ６３ａを備えている。
【００４８】
ＦＢ１１の単位では、ＦＢ制御ユニット６２および出力回路６３により出力用レジスタ４１の内容を出力するデバッグ機能が実現されており、ＦＢ１１に割り当てられるＦＵ５０の出力内容をＦＵ５０の機能に左右されずにモニタリングすることができる。したがって、異なる種類のＦＵが割り当てられるとしても、ＦＢ制御ユニット６２および出力回路６３は汎用的にＦＢ１１に構成できるものであり、基本回路要素に含めて下部配線層２２により実現することに問題はない。また、ＦＢ制御ユニット６２および出力回路６３は、ユーザクロックφｕｃと異なるタイミングで供給および停止されるデバッグ用クロックφｄｃで動作するために、デバッガクロックのクロックネット８２は、ユーザクロックのクロックネット８１とは別に配置・配線できる。さらに、デバッガクロックφｄｃは、デバッグするときにのみ供給されるので、たとえＦＵ５０が割り当てられていないＦＢ１１にデバッガクロックφｄｃが供給されていたとしても消費電力の浪費が問題になることは殆どない。したがって、デバッグ機能を下部配線層２２により実現することによるディメリットはない。
【００４９】
逆に、下部配線層２２により実現することにより、デバッグ機能のための回路を、ユーザ論理を実現するための回路から分離することができ、カスタマイズする要素から外すことができるので、ユーザ論理を搭載したシステムＬＳＩ１を開発・設計および製造する際に検討する要素が削減され、それらのために必要な期間およびコストを大幅に低減できる。さらに、下部配線層２２によりデバッグ機能を実現することにより、ユーザ論理が実現されるＦＵ５０および上部配線層２１の下層に、デバッグ機能を分布させることができる。したがって、ユーザ論理の内部データを無理なくモニタすることが可能となり、数百万ゲートのＬＳＩであって内部信号モニタ機能を備えたシステムＬＳＩを提供することが可能となる。このため、ＬＳＩ完成後のシステムデバッグにかかる時間は大幅に短縮され、システムＬＳＩが商品として市場に出てから障害解析も容易に実行できる。
【００５０】
本例のＬＳＩ１においては、ＦＢ制御ユニット６２および出力回路６３によりデータバス１７にモニタリング用に出力されたデータφｍｄは、ＶＵ３で比較データレジスタ３２に格納された比較用のデータと比較される。そして、モニタリングしたデータφｍｄと比較用データが一致すると、ＶＵ３からイネーブル信号φｃｅがクロック供給ユニット８０に出力され、ユーザクロックφｕｃが停止し、ＦＡ１０は処理を停止する。デバッグ機能が動いているときは、自己のＦＢ１１が選択されているか否かを判断する時間と、出力インターフェイス４０のレジスタ出力をモニタリング用に出力する時間を確保するために、クロック供給ユニット８０からＦＡ１０に供給されているユーザクロックφｕｃのクロックレートを下げることも可能である。
【００５１】
また、ＦＢ１１は、ローカルクロック配線４５、ローカルセット配線４７ｓおよびローカルリセット配線４７ｒが基本回路要素として下部配線層２２により予め用意されている。したがって、ＦＵ５０の演算結果を出力インターフェイス４０のレジスタ４１に入力したい場合は、上部配線層２１によりいずれかの配線４５、４７ｓあるいは４７ｒを、それぞれのネット配線８１、８８ｓあるいは８８ｒに結線することにより、ユーザクロックφｕｃを用いることも、セット・リセット信号を用いることも可能となっている。さらに、ネット配線８１、８８ｓおよび８８ｒは、基本回路要素して下部配線層２２により実現されているグローバル配線７０を上部配線層２１により適切に接続することで形成される。したがって、本例のＬＳＩ１においては、ユーザクロックφｕｃおよびセット・リセット信号は、それにより動作するＦＢ１１に限り供給するような配線を形成することが容易であり、消費電力を適切に低減することが可能となる。
【００５２】
図９に、ユーザクロックφｕｃをＦＡ１０の中のＦＢ１１に分配するクロックネット８１の一例を示してある。まず、クロック供給ユニット８０においては、クロック端子８から供給された基本クロックφｂｃのクロックレートを引き上げてユーザクロックφｕｃを生成するＰＬＬ８５と、ユーザクロックφｕｃを分周して、例えばユーザクロックφｕｃに対してクロックレートを１／２に落としたデバッガクロックφｄｃを生成する分周回路８６と、ＤＰ９から供給されるイネーブル制御信号φｃｅによりユーザクロックφｕｃを停止可能なイネーブル制御論理回路８７とを備えている。ＬＳＩ１においては、デバッグ制御端子７がオンとなることによりデバッグモードになり、デバッグ制御信号がデバッグプロセッサＤＰ９に供給され、デバッガクロックφｄｃがＦＡ１０に供給される。ＤＰ９により指定されたＦＢアドレスの内容と指定されたデータの内容が一致検出されると、ＤＰ９からイネーブル制御信号φｃｅが出力され、イネーブル制御論理回路８７によりＦＡ１０に対するユーザクロックφｕｃの供給が停止される。
【００５３】
一方、デバッガクロックφｄｃはＰＬＬ８５とイネーブル制御回路８７との中間から出力されているので、イネーブル制御回路８７によりユーザクロックφｕｃの供給を停止しても、デバッガクロックφｄｃが停止することはなくＦＡ１０の内部のデバッグを実行できる。したがって、このシステムＬＳＩ１は、内部状態をモニタし、ある条件になったらＬＳＩを停止させて内部を観測するという、もっとも基本的ではあるが、カスタムメイドのＬＳＩには組み込むことが難しかったデバッグ機能を備えている。
【００５４】
ＦＡ１０には、複数のＦＢ１１にわたって配線された複数のグローバル配線７０が下部配線層２２により形成されている。ＦＡ１０において下部配線層２２により実現される基本回路要素の基本単位はＦＢ１１であるが、グローバル配線７０は例外であり、ＦＢ１１を基本単位とせず、１つのグローバル配線７０が複数のＦＢ１１におよぶ、あるいはわたるように形成されている。すなわち、グローバル配線７０は複数のＦＢ１１に跨るように形成され、複数のグローバル配線７０によりＦＡ１０の全体がカバーされている。図９に示した例では、複数のグローバル配線７０によりほぼＨ型が形成されるようにグローバル配線７０がＦＡ１０に配置されている。Ｈ型の配線は、ＦＡ１０の中心付近から信号を供給したときに、周囲のＦＢ１１に対して等長または等負荷配で信号を伝達できる１つのパターンであり、クロック信号のように複数のＦＢ１１に対して同じ条件で供給したい信号を分配する配線ネットワークに適している。スター型配線などによっても同じ効果を得ることができる。
【００５５】
これらのグローバル配線７０は、下部配線層２２の段階では、相互に接続されておらず、カスタマイズ要素を含む上部配線層２１により接続されて、信号をＦＡ１０に分配するネットワークを形成する。図９に示した例では、グローバル配線７０により、イネーブル制御論理８７の出力の近傍からＦＡ１０の中央付近まで延び、クロックネット８１の基幹をなす共通配線７１ａと、ＦＡ１０の内部を大きく分けてクロックネット８１の第１段階の分岐を形成する共通配線７１ｂと、この共通配線７１ｂからそれぞれのＦＢ１１に予め形成されたローカルクロック配線４５の近傍まで延びた第２段階の分岐を形成する共通配線７１ｃとが用意されている。
【００５６】
それぞれの共通配線７１ａ〜７１ｃの端部７２ａ〜７２ｄは、上部配線層２２により接続可能となっており、ユーザクロックφｕｃを必要とするＦＢ１１に向う共通配線７１ａ〜７１ｃを接続することによりユーザクロックφｕｃを分配するクロックネット８１が形成される。また、ユーザクロックφｕｃが要求されないＦＢ１１に向かう共通配線７１ａ〜７１ｃは上部配線層２１で接続しないことにより、クロックネットワーク８１の負荷を減らし、ユーザクロックφｕｃの駆動負荷を低減して消費電力を抑制する。したがって、ＦＡ１０のユーザクロックネット８１は、上部配線層２１を用いて、必要に応じて結線されるので、ユーザが定義したレジスタに応じてクロック供給が可能となり余計な電力を消費しなくて済む。
【００５７】
これらの共通配線７１ａ〜７１ｃには、バッファ７３をクロックドライバとして接続することが可能であり、下部配線層２２により予め接続しておいても良く、基本回路要素としてバッファ７３だけ準備し、上部配線層２１によりグローバル配線７０と接続するようにしても良い。信号伝達の遅延は、ゲートの駆動能力と、配線長（配線容量）によって決定されるが、ＦＡ１０においては、最終的なクロックネット８１の長さは上部配線層２１の設計が終了するまで分からない。したがって、クロックネット８１が最長になったときの条件に合わせてクロック供給ユニット８０の能力を設定しておくことも可能であるが、クロックネット８１の長さがそれより短いときは、過剰な能力のゲートを動かすだけ電力が無駄になる。したがって、長い配線が原因となる遅延を短縮する必要が生じた場合は、ゲートの駆動能力を大きく変更するのではなく、中継バッファ７３を挿入することで、個々のゲートの負荷容量を減少あるいは平均化することで、遅延の総和を減少させるようにしている。この方法であれば、中継バッファ７３を基本回路要素として下部配線層２２で用意しておき、上部配線層２１の設計に応じて、上部配線層２１で接続するだけで、電力の増大と信号遅延の増大の両方を防止できる。
【００５８】
図１０に、複数のユーザクロックφｕｃを複数のクロックネット８１によりＦＡ１０の中のＦＢ１１に分配する例を示してある。大規模ＬＳＩ１ａでは複数のクロックが存在するケースが多く、複数のクロックネットを構成できるようにグローバル配線７０を下部配線層２２により形成しておくことが望ましい。複数のクロック供給ユニット８０ａおよび８０ｂが設けられる場合、ひとつのクロック供給ユニット８０ａのＰＬＬ８５がユーザクロックφｕｃ１とデバッガクロックφｄｃの共通根となる。また、各々のクロック供給ユニット８０ａおよび８０ｂのイネーブル制御論理８７に対しては、ＤＰ９からイネーブル制御信号φｃｅが共通に供給される。したがって、複数のユーザクロックφｕｃ１およびφｕｃ２は同時にストップし、ＦＡ１０で稼動するユーザ論理を停止できる。
【００５９】
ＦＡ１０には、複数のグローバル配線７０が並行するように形成され、複数のクロック供給ユニット８０ａおよび８０ｂよりも多いクロックネットを構成できるようになっている。ここでは２つのクロック端子８ａおよび８ｂに対して４つのクロックネットワーク８１ａ、８１ｂ、８１ｃおよび８１ｄが形成できるように分断された配線がグローバル配線７０として用意されている。これらのグローバル配線７０の端部７２を上部配線層２１により接続することにより、所望のクロックネットを構成することができる。また、これらのグローバル配線７０は、ＰＬＬ８５を経由しないで外部端子からユーザクロックが直に供給されるようなクロックネットを形成することも可能である。
【００６０】
さらに、グローバル配線７０は、クロックネットに限らず、ＦＢ１１に用意されたローカルセット配線４７ｓおよびローカルリセット配線４７ｒにセット信号およびリセット信号をそれぞれ分配するセットネット８８ｓおよびリセットネット８８ｒの形成にも利用できる。たとえば、ＦＡ１０の内部のＦＢ１１にセット信号およびリセット信号を生成するリセット生成論理８９を形成することが可能であり、そのＦＢ１０の出力をグローバル配線によるセットネット８８ｓおよびリセットネット８８ｒで所望のＦＢ１１の出力インターフェイス４０に分配することができる。セット信号およびリセット信号は外部のモジュール、たとえば、デバッグ機能の一部として供給する場合はＤＰ９の内部に用意することも可能であり、本例と同様にグローバル配線７０による配線網を介して分配できる。
【００６１】
図１１に、ＦＡ１０に用意されるグローバル配線の異なる例を示してある。このＦＡ１０には、イネーブル端子ＥＮを有するバッファセル７６が入力側に接続されたグローバル配線７５が下部配線層２２により用意されている。このバッファセル付グローバル配線７５あるいは配線付きバッファセル７６は、上部配線層２１により接続すると、バッファセル７６が中継バッファとなる。そして、バッファセル７６に接続されるグローバル配線７５は基本回路要素として予め用意されるので、その長さは予め判明している。このため、グローバル配線７５を駆動するのに必要十分な最適な能力のゲートをバッファセル７６として用意でき、最小の駆動能力のゲートでグローバル配線７５を駆動することができる。したがって、バッファセル付のグローバル配線７５を用意し、バッファセルの入力側をユーザ論理に応じてユーザ配線（上部配線層）２１で接続することにより、汎用的な構成で、ゲートの駆動能力の無駄を省き、遅延の総和も減少できる。このため、消費電力が小さく、遅延も小さい配線形態を提供できる。
【００６２】
さらに、バッファセル７６にイネーブル端子ＥＮを設け、上部配線層２１でＦＵ５０などにより実現される制御論理と接続することにより、様々な単位でユーザクロックφｕｃの供給をユーザ論理で制御できる。このような構成をゲーテッドクロックと称することにする。ＦＢ１１の内部に設けられたローカルクロック配線４５を配線付きバッファセル７６で実現すれば、ＦＢ１１の単位でユーザクロックφｕｃの供給を制御できる。また、複数のＦＢ１１に繋がったクロックネット８１の支線８１ｘを配線付きバッファセル７６で実現すれば、その支線８１ｘに接続された複数のＦＢ１１に対するユーザクロックφｕｃの供給を制御できる。したがって、細かな条件でクロックの供給を制御し、消費電力をさらに低減することが可能となる。
【００６３】
バッファセル７６のイネーブル端子ＥＮは、電源Ｖｃｃに固定することにより、バッファセル７６を単なるクロックバッファとして利用することも可能である。また、内部にＦ／ＦをもっていないＦＵがＦＢ１１に割付られていたり、出力インターフェイス４０のレジスタ（Ｆ／Ｆ）４１を使用しないユーザロジックがＦＢ１１に実現されている場合は、ユーザクロックφｕｃをＦＢ１１に供給する必要はない。したがって、そのようなＦＢ１１のローカルクロック配線４５は、原則としてクロックネット８１に接続されない。しかしながら、クロックネット８１のタイミングを調整するための負荷容量としてローカルクロック配線４５を接続することは可能である。
【００６４】
ローカルクロック配線４５は、下部配線層２２により供給される基本回路要素の設計段階において、後のユーザ論理の設計段階におけるタイミング設計を用意にするために、負荷容量、配線長、バランスなどを十分に考慮して設計される。しかしながら、より積極的に消費電力を低減するために、クロック負荷の変動によりタイミング上の問題が発生しない範囲で、未使用のレジスタ（Ｆ／Ｆ）４１に対してクロックを供給しないようにすることも可能である。このためには、ローカルクロック配線４５と各々のレジスタ４１との接続４８を上部配線層２１で行うことができる。
【００６５】
上述したように複数のユーザクロックが存在することもあるので、配線付きバッファセル７６は同一の場所に複数本用意しておくことが望ましい。また、配線付きバッファセル７６は、バッファセル７６が入口側となって信号を伝達するので、方向性がある。したがって、配線方向も考慮して複数本用意しておくことが望ましい。また、異なるクロックが局所的に供給されることもあるので、配線付きバッファセル７６を、ある程度均等な間隔で、上下左右の向きでも用意しておくことが望ましい。汎用性があるように配線付きバッファ７６を配置することにより、配線付きバッファ７６をクロック信号に限らず、ＦＢ１１をわたって供給される信号の媒体として利用することも可能となる。
【００６６】
図１２に、配線付きバッファセル（ゲーテッドクロック）の異なる例を示してある。図１２（ａ）に示したＡＮＤゲート７６をイネーブル端子ＥＮ付きのバッファセルとして用いた構成であると、イネーブル信号φｅｎの変化が許される期間ｔｅは、図１２（ｂ）に示すように、クロック信号φｃｋがノンアクティブ（この場合は「０」あるいは低レベル）の場合に限られる。したがって、タイミング設計の制約が多い。これに対し、図１２（ｃ）に示すように、ラッチ回路７７を加えることにより、図１２（ｄ）に示すように、ラッチ回路７７のセットアップ期間を除いた全ての期間ｔｅにおいて、イネーブル信号φｅｎの変化が許されるようになる。したがって、タイミング設計が容易になる。
【００６７】
図１３に、配線付きバッファセルのさらに異なる例を示してある。図１３に示した配線付きバッファセル７６は、バッファセル７６を構成するＡＮＤゲートのイネーブル側にＯＲゲート７８を接続している。これにより、バッファセル７６のイネーブル機能を、イネーブル端子ＥＮを介してユーザロジックで制御するだけではなく、ＦＢ１１のデバッグ機能、たとえば、図８に示したＦＢ制御ユニット６２からも制御できる。ＯＲゲート７８に接続されたシフトモード信号φｓｍは、下部配線層２２により実現されるデバッグ機能から供給される信号である。
【００６８】
図１３においては、イネーブル端子ＥＮが電源Ｖｃｃに接続されて常にオンになっている。これに対し、ユーザ論理によりイネーブル端子ＥＮを介してクロック停止になっている場合に、シフトモード信号φｓｍより、製造テスト、デバッグモードなどのときに、配線付きバッファセル７６をオープンし、ユーザクロックφｕｃを供給することができる。したがって、デバッグモードのときに、デバッグ機能によりクロックを制御するユーザ論理をオーバーライドしてユーザクロックφｕｃでＦＢ１１に供給し、そのＦＢ１１に実現されたユーザ論理をスキャン動作させることができる。
【００６９】
【発明の効果】
以上に説明したように、本発明においては、カスタマイズ要素を含んだ上部配線層により、第１のクロック信号により稼動する第１の機能が決定され、上部配線層により機能が決定される基本回路要素を提供する下部配線層により、第１のクロック信号と異なる第２のクロック信号により稼動する第２の機能が実現される集積回路装置を提供する。第２の機能に最も適しているのはデバッグ機能であり、カスタマイズされる第１の機能の内部データをモニタできるデバッグ機能を開発および設計の負担にならないように組み込むことができる。したがって、信頼性の高いシステムＬＳＩを短時間に低コストで市場に出すことができる。
【００７０】
さらに、下部配線層により、第１のクロック信号を分配するクロックネットの要素となる複数のグローバル配線を形成しておくことが可能である。これらのグローバル配線を上部配線層により適宜接続することにより、第１のクロック信号が必要とされる回路ブロックに限って無駄なく第１のクロック信号を供給するクロックネットを形成でき、低消費電力のシステムＬＳＩを提供できる。
【図面の簡単な説明】
【図１】本発明に係る集積回路装置の一例を示すブロック図である。
【図２】図１に示す集積回路装置の機能領域（ＦＡ）の概要を示すブロック図である。
【図３】図２に示すＦＡの断面構成を説明する図である。
【図４】図２に示すＦＢにＦＵを割り付けた例を示す図である。
【図５】図２に示すＦＢに異なるＦＵを割り付けた例を示す図である。
【図６】図２に示すＦＢにさらに異なるＦＵを割り付けた例を示す図である。
【図７】ＦＢに真理値テーブルをＦＵとして割り付けた状態を示す図である。
【図８】デバッグ機能を含めたＦＢの構成を示す図である。
【図９】ＦＡにクロックネットを構成した状態を示す図である。
【図１０】ＦＡに異なるクロックネットを構成した状態を示す図である。
【図１１】ＦＡにさらに異なるクロックネットを構成した状態を示す図である。
【図１２】配線付きバッファセルの例を示す図である。
【図１３】ＦＡにさらに異なるクロックネットを構成した状態を示す図である。
【符号の説明】
１    システムＬＳＩ（ＡＳＩＣまたは集積回路装置）
２    基本プロセッサ（ＰＵ）
３    比較ユニット（ＶＵ）
４    インターフェイスユニット（ＩＦＵ）
５    デバッグユニット（ＤＵ）
９    デバッグプロセッサ（ＤＰ）
１０    機能領域（集積回路モジュール、ＦＡ）
１１    回路ブロック（ＦＢ）
４０    出力インターフェイス
４１    レジスタ
５０    ＦＵ
【図１】
2004214369.tif 000003
【図２】
2004214369.tif 000004
【図３】
2004214369.tif 000005
【図４】
2004214369.tif 000006
【図５】
2004214369.tif 000007
【図６】
2004214369.tif 000008
【図７】
2004214369.tif 000009
【図８】
2004214369.tif 000010
【図９】
2004214369.tif 000011
【図１０】
2004214369.tif 000012
【図１１】
2004214369.tif 000013
【図１２】
2004214369.tif 000014
【図１３】
2004214369.tif 000015