(57)【特許請求の範囲】
【請求項１】
同一のクロック信号が供給されて動作する複数の同期型回路ブロックを備える半導体集積回路の設計方法であって、
各々独立に設計された少なくとも第１および第２の同期型回路ブロックを用いて、前記第１の同期型回路ブロックに含まれる第１の同期型回路と前記第２の同期型回路ブロックに含まれる第２の同期型回路との間でデータの受け渡しを行うに際し、
前記第１の同期型回路と前記第２の同期型回路との間に、前記第１の同期型回路ブロックに含まれる第１のクロック生成回路によって前記クロック信号から生成される第１のクロック信号の反転信号、もしくは、前記第２の同期型回路ブロックに含まれる第２のクロック生成回路によって前記クロック信号から生成される第２のクロック信号の反転信号に同期して動作し、前記第１の同期型回路からデータを取り込み、前記第２の同期型回路に引き渡すレジスタ素子を設けることを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同一のクロック信号に同期して動作する複数の同期型回路ブロックを搭載する比較的大規模な半導体集積回路の設計方法に関するものである。
【０００２】
【従来の技術】
半導体チップ間の製造ばらつきは、一般にディスクリートの外部素子に比べて大きく、概ね±２０％程度であると考えられる。
【０００３】
しかし、半導体チップ内部に限ればばらつきはほとんど無く、従来は、半導体チップ内の素子がほぼ同一の特性を示すものとして扱うことができた。従って、半導体集積回路の設計を行う際に、半導体チップ内の全素子が一律に遅くなる（ワースト）、もしくは一律に速くなる（ベスト）と想定して素子遅延を設定し、シミュレーションによりチップが安定動作することを確認するという手法が一般的に用いられていた。
【０００４】
すなわち、同一のクロック信号に同期して動作する複数の同期型回路ブロックを搭載する半導体集積回路の設計において、例えば２つの同期型回路ブロックＡと同期型回路ブロックＢとの間のクロック信号以外の信号の接続を行う際、同期型回路ブロックＡと同期型回路ブロックＢとの間の信号タイミングは、少なくともワーストおよびベストの条件で半導体チップが安定動作することを確認すれば問題は発生しなかった。
【０００５】
【発明が解決しようとする課題】
ところが、製造技術の微細化が進むにつれ、単位面積当たりの製造ばらつきが大きくなり、半導体チップ内でも部分部分の製造状態が異なるため、半導体チップ全体が同じ特性であるとして一律に扱うのが困難になってきた。
【０００６】
これに伴い、複数の同期型回路ブロックを搭載する半導体集積回路において、同期型回路ブロック間の接続を行う場合、前述のように、両者の間で製造条件が僅かに異なり、両者を同じ特性のものとして扱えない場合が出てきた。このような場合に、両者の特性を従来と同様一律に扱い、ワーストおよびベストの条件での安定動作のみをシミュレーションで確認した設計を行うと不具合が発生する場合があるという問題がある。
【０００７】
例えば、出力側の同期型回路ブロックがベストに近い条件で製造されているにも係わらず、その出力信号を入力とする入力側の同期型回路ブロックの製造条件がワースト側に振れていると、誤動作を起こす場合がある。
【０００８】
図３は、従来の半導体集積回路の一例の構成概念図である。
同図に示す半導体集積回路３０は、半導体チップ上に配置された２つの同期型回路ブロックＡ，Ｂのみを概念的に示したものである。
【０００９】
出力側（図中左側）の同期型回路ブロックＡは、ルートバッファ２０を介して供給されるクロック信号ＣＬＫからクロック信号ＣＬＫ１を生成するクロック生成回路１２と、クロック信号ＣＬＫ１に同期して動作する同期型回路１４とを備えている。同様に、入力側（図中右側）の同期型回路ブロックＢは、同一のクロック信号ＣＬＫからクロック信号ＣＬＫ２を生成するクロック生成回路１６と、クロック信号ＣＬＫ２に同期して動作する同期型回路１８とを備えている。
【００１０】
図示例の半導体集積回路３０では、図４のタイミングチャートに示すように、出力側の同期型回路であるフリップフロップ１４に入力されるデータＤａｔａ＿ｉｎは、クロック信号ＣＬＫ１の立ち上がりに対して必要十分なセットアップ時間Ｔｓを持つとする。フリップフロップ１４は、クロック信号ＣＬＫ１の立ち上がりに同期して動作し、その出力信号Ｄａｔａ＿ｏｕｔは、クロック信号ＣＬＫ１の立ち上がりから所定の出力遅延時間の後に変化する。
【００１１】
ここで、出力側のフリップフロップ１４はベストに近い条件で製造されているが、入力側の同期型回路であるフリップフロップ１８の製造条件はワースト側に振れているとする。
【００１２】
図４のタイミングチャートに示すように、入力側のフリップフロップ１８のワースト条件でのホールド時間要求（Ｔｈｗ）はベスト条件でのデータホールド要求（Ｔｈｂ）に比べて大きい。従って、出力側のフリップフロップ１４の出力信号Ｄａｔａ＿ｏｕｔは、ベスト条件であれば、入力側のフリップフロップ１８のホールド時間要求Ｔｈｂに対して十分データが安定して供給されるが、ワースト条件では、ホールド時間要求Ｔｈｗ以前にデータが変わるため、このままでは誤動作を起こす。
【００１３】
従来の半導体集積回路の設計方法の場合、出力側のフリップフロップ１４と入力側のフリップフロップ１８を同一条件と見なしてその動作安定性を確認するだけでよかったので、このような不具合は想定していなかった。また、各々の同期型回路ブロックのでき具合のばらつきをシミュレーションで扱うには無数の組み合わせと製造のでき具合との関係をマトリクス状に処理しなければならず、事実上不可能であると言わざるを得ない。
【００１４】
また、各々の同期型回路ブロックＡ，Ｂは比較的大規模な回路であるため、図３に示すように、通常、各々独立したクロック生成回路１２，１６を備えている。これらのクロック生成回路１２，１６によって生成されたクロック信号ＣＬＫ１，ＣＬＫ２の遅延時間も両同期型回路ブロックＡ，Ｂと同様の遅延特性を持つので、たとえ同一になるように設計しても両者のクロック信号ＣＬＫ１，ＣＬＫ２は遅延時間差を生じる。この場合、クロック信号ＣＬＫ１，ＣＬＫ２も単一信号として扱えず、さらに安定動作を保証するのが困難になる。
【００１５】
本発明の目的は、前記従来技術に基づく問題点を解消し、同期型回路ブロック間に製造条件の違いによる遅延時間差や、独立したクロック生成回路によって生成されるクロック信号間に遅延時間差があっても、これに係わらず安定動作を保証することができる半導体集積回路の設計方法を提供することにある。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、同一のクロック信号が供給されて動作する複数の同期型回路ブロックを備える半導体集積回路の設計方法であって、
各々独立に設計された少なくとも第１および第２の同期型回路ブロックを用いて、前記第１の同期型回路ブロックに含まれる第１の同期型回路と前記第２の同期型回路ブロックに含まれる第２の同期型回路との間でデータの受け渡しを行うに際し、
前記第１の同期型回路と前記第２の同期型回路との間に、前記第１の同期型回路ブロックに含まれる第１のクロック生成回路によって前記クロック信号から生成される第１のクロック信号の反転信号、もしくは、前記第２の同期型回路ブロックに含まれる第２のクロック生成回路によって前記クロック信号から生成される第２のクロック信号の反転信号に同期して動作し、前記第１の同期型回路からデータを取り込み、前記第２の同期型回路に引き渡すレジスタ素子を設けることを特徴とする半導体集積回路の設計方法を提供する。
【００１９】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明の半導体集積回路の設計方法を詳細に説明する。
【００２０】
図１は、本発明に係る半導体集積回路の一実施例の構成概念図である。
同図に示す半導体集積回路１０は、図３に示す従来の半導体集積回路３０との対比が容易となるように、半導体チップ上に配置された２つの同期型回路ブロックＡ，Ｂのみを概念的に表したものである。なお、図１に示す半導体集積回路１０と図３に示す従来の半導体集積回路３０との違いはレジスタ素子２２を備えている点のみである。
【００２１】
すなわち、出力側（図中左側）の同期型回路ブロックＡは、クロック信号ＣＬＫからクロック信号ＣＬＫ１を生成するクロック生成回路１２と、このクロック信号ＣＬＫ１に同期して動作する同期型回路１４とを備えている。同様に、入力側（図中右側）の同期型回路ブロックＢは、同一のクロック信号ＣＬＫからクロック信号ＣＬＫ２を生成するクロック生成回路１６と、このクロック信号ＣＬＫ２に同期して動作する同期型回路１８とを備えている。
【００２２】
同期型回路ブロックＡのクロック生成回路１２および同期型回路ブロックＢのクロック生成回路１６には、ルートバッファ２０を介して同一のクロック信号ＣＬＫが入力されている。また、同期型回路ブロックＡの同期型回路１４と同期型回路ブロックＢの同期型回路１８との間にはレジスタ素子２２が設けられている。このレジスタ素子２２は、本実施例の場合、クロック信号ＣＬＫ１の反転信号に同期して動作する。
【００２３】
なお、クロック生成回路１２，１６は、例えばクロックバッファやクロックツリー、ＰＬＬ（位相同期ループ）等のように、クロック信号ＣＬＫからそれぞれのクロック信号ＣＬＫ１，２を生成する従来公知のものがいずれも利用可能である。また、同期型回路１４，１８およびレジスタ素子２２は、例えばフリップフロップ、ラッチ、メモリ等のように、クロック信号に同期して動作する従来公知の記憶手段がいずれも利用可能である。
【００２４】
ここで、図３に示す従来例との比較が容易となるように、出力側の同期型回路であるフリップフロップ１４はベストに近い条件で製造され、入力側の同期型回路であるフリップフロップ１８はワースト側に振れた条件で製造されているとする。また、両者の間に設けられたレジスタ素子であるフリップフロップ２２は物理的に出力側の同期型回路ブロックＡの近傍に配置され、ベストに近い条件であるとする（なお、ワースト側に近い条件でも特に問題はない）。
【００２５】
図１に示す半導体集積回路１０では、図２のタイミングチャートに示すように、出力側の同期型回路であるフリップフロップ１４は、クロック信号ＣＬＫ１の立ち上がりに同期して動作し、所定の出力遅延時間の後、その出力信号Ｄａｔａ＿ｉｎが変化する。
【００２６】
フリップフロップ１４の出力信号Ｄａｔａ＿ｉｎは、出力側の同期型回路ブロックＡと入力側の同期型回路ブロックＢとの間に設けられているフリップフロップ２２に入力される。このフリップフロップ２２は、クロック信号ＣＬＫ１の立ち下がりに同期して動作し、所定の出力遅延時間の後、その出力信号Ｄａｔａ＿ｏｕｔが変化する。
【００２７】
ここで、出力側のフリップフロップ１４とフリップフロップ２２との間のタイミング関係はクロック信号ＣＬＫの半位相分ずれているため、フリップフロップ１４の出力信号Ｄａｔａ＿ｉｎは、フリップフロップ２２の要求するセットアップ時間Ｔｓ１およびホールド時間Ｔｈ１に対して共に十分な余裕がある。
【００２８】
フリップフロップ２２の出力信号Ｄａｔａ＿ｏｕｔは、入力側のフリップフロップ１８に入力される。フリップフロップ１８は、クロック信号ＣＬＫ２の立ち上がりに同期して動作する。
【００２９】
ここで、フリップフロップ２２と入力側のフリップフロップ１８との間のタイミング関係は同様にクロック信号ＣＬＫの半位相分ずれているため、フリップフロップ２２の出力信号Ｄａｔａ＿ｏｕｔは、フリップフロップ１８の要求するセットアップ時間Ｔｓ２およびホールド時間Ｔｈ２に対して共に十分な余裕がある。通常、このようなシフトレジスタ構成の場合、ホールド時間Ｔｈ２の余裕が厳しくなるが、半位相ずれているため、たとえクロック信号ＣＬＫ１とクロック信号ＣＬＫ２との間に遅延時間差がある場合であっても十分な余裕がある。
【００３０】
このように、クロック信号ＣＬＫ１の反転信号を使うことにより、レジスタ素子２２は、そのセットアップ時間Ｔｓ１およびホールド時間Ｔｈ１に対して確実に余裕を持って出力側の同期型回路のデータを取り込むことができる。また、受け取ったデータを入力側の同期型回路に渡す際もクロックが半位相ずれているため、フリップフロップ１８の要求するセットアップ時間Ｔｓ２およびホールド時間Ｔｈ２に余裕をもって渡すことができる。
【００３１】
従って、両者の同期型回路ブロックＡ，Ｂの製造状態の違いによる遅延時間差があっても、また、たとえ独立したクロック生成回路１２，１６によって生成されるクロック信号ＣＬＫ１，ＣＬＫ２の間の遅延時間差があっても、データの受け渡し時の動作余裕が拡大するため動作安定に寄与する。また、各同期型回路ブロックＡ，Ｂ内では、その規模が半導体チップ全体に対して比較的小さいため、同一条件として一律に見なしてもよく、確実な設計ができる。
【００３２】
半導体集積回路１０の設計を行うに際しては、例えば同期型回路ブロックＡ，Ｂそれぞれ独立に設計することができる。あるいは、例えばＩＰ（知的財産）のような既存の設計データを使用することも可能である。その後、同期型回路ブロックＡの同期型回路１４と同期型回路ブロックＢの同期型回路１８とを接続するに際し、これらの同期型回路１４，１８の間に、クロック信号ＣＬＫ１の反転信号に同期して動作するレジスタ素子２２を設ける。
【００３３】
これにより、各ブロックの製造状態に係わらず、同期型回路ブロックＡの同期型回路から同期型回路ブロックＢの同期型回路に対して確実にデータを渡すことができる。このため、たとえ同期型回路ブロックＡがベストに近い条件で製造され、同期型回路ブロックＢがワースト側に振れた条件で製造されている場合であっても、従来と同様、シミュレーションにより、ワーストおよびベスト条件で半導体チップが安定動作することを確認するだけでよい。
【００３４】
なお、図１に示す例では、図３に示す従来例との対比が容易となるように、２つの同期型回路ブロックＡ，Ｂのみを示しているが、本発明に係る半導体集積回路には、２つ以上いくつの同期型回路ブロックが含まれていてもよい。また、図示例では、同期型回路ブロック内に１つの同期型回路のみを示しているが、これも限定されず、同期型回路ブロック内には１つ以上いくつの同期型回路が含まれていてもよい。
【００３５】
また、レジスタ素子２２には、クロック信号ＣＬＫ１またはＣＬＫ２のどちらを供給してもよいが、レジスタ素子２２によるデータの取り込みを確実に行い、その後、半位相ずらして入力側に確実にデータを引き渡すために、クロック信号ＣＬＫ１であるのが好ましい。従って、レジスタ素子２２は、半導体チップのレイアウト上、同期型回路ブロックＡおよびＢの間に配置してもよいが、同期型回路ブロックＡの内部に配置するのが好ましい。
【００３６】
本発明の半導体集積回路の設計方法は、基本的に以上のようなものである。
以上、本発明の半導体集積回路の設計方法について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００３７】
【発明の効果】
以上詳細に説明した様に、本発明は、第１の同期型回路ブロックの同期型回路と第２の同期型回路ブロックの同期型回路との間に、第１の同期型回路ブロックのクロック生成回路によってクロック信号から生成される第１のクロック信号の反転信号、もしくは、第２の同期型回路ブロックのクロック生成回路によって同一のクロック信号から生成される第２のクロック信号の反転信号に同期して動作するレジスタ素子を設けるようにしたものである。
これにより、本発明によれば、複数の同期型回路ブロックよりなる大規模半導体チップにおいて、各同期型回路ブロックの製造状態の違いによる遅延時間差があっても、また、各々の同期型回路ブロックにおいて、たとえ各々のクロック生成回路により生成されるクロック信号の間の遅延時間差があっても、データの受け渡し時の動作余裕が拡大するため、半導体集積回路を安定動作させることができるという効果がある。
【図面の簡単な説明】
【図１】  本発明に係る半導体集積回路の一実施例の構成概念図である。
【図２】  本発明に係る半導体集積回路の動作を表す一実施例のタイミングチャートである。
【図３】  従来の半導体集積回路の一例の構成概念図である。
【図４】  従来の半導体集積回路の動作を表す一例のタイミングチャートである。
【符号の説明】
１０，３０  半導体集積回路
１２，１６  クロック生成回路
１４，１８  同期型回路
２０  ルートバッファ
２２  レジスタ素子
Ａ，Ｂ  同期型回路ブロック
ＣＬＫ，ＣＬＫ１，ＣＬＫ２  クロック信号
Ｄａｔａ＿ｉｎ，Ｄａｔａ＿ｏｕｔ  データ
Ｔｓ，Ｔｓ１，Ｔｓ２  セットアップ時間
Ｔｈ１，Ｔｈ２，Ｔｈｂ，Ｔｈｗ  ホールド時間
【図１】
0003866562.tif 000002
【図２】
0003866562.tif 000003
【図３】
0003866562.tif 000004
【図４】
0003866562.tif 000005