(57)【要約】【課題】チップサイズの増大や消費電力の増大等を極めて小さく、且つホールドタイム違反の解消を可能にする。【解決手段】入力端子に近い側に第１のフリップフロップ１が、遠方側に第２のフリップフロップ２が配置されて、前記フリップフロップ１、２にクロック信号が供給される半導体集積回路において、第２のフリップフロップ２は、クロック信号ＣＫ２及び反転クロック信号ＣＫ２Ｎで動作するクロックドインバータ４ｃ及び４ｄとインバータ５ｃとで構成される第１のクロック信号動作回路Ｆ１、反転クロック信号ＣＫ２Ｎ及びクロック信号ＣＫ２で動作するクロックドインバータ４ｅ及び４ｆとインバータ５ｄとで構成される第２のクロック信号動作回路Ｆ１Ｎ、及びクロック信号ＣＫ２及び反転クロック信号ＣＫ２Ｎで動作するクロックドインバータ４ｇ及び４ｈとインバータ５ｅ、５ｆで構成される第３のフリップフロップ１１をこの順序で縦続接続している。【選択図】  図２
2005050916.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号の入力端子側に、データ信号を入力し、且つ前記クロック信号により動作してデータ信号を出力する第１の回路が配置され、前記第１の回路の後段に接続され、前記第１の回路の出力信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第２の回路が配置された半導体集積回路において、
前記第２の回路は、
前記クロック信号により動作し、前段の出力信号を反転して取り込む第１のクロック信号動作回路と、前記クロック信号とは逆相の反転クロック信号により動作し、前段の出力信号を反転して取り込む第２のクロック信号動作回路と、データ信号を入力とし、且つ前記クロック信号により動作して出力信号を出力する第３の回路とを縦続接続した構成を有することを特徴とする半導体集積回路。
【請求項２】
前記第１のクロック信号動作回路、前記第２のクロック信号動作回路及び前記第３の回路の順序で縦続接続したことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記第３の回路、第２のクロック信号動作回路、前記第１のクロック信号動作回路の順序で縦続接続したことを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記第１及び第３の回路は、フリップフロップ、ラッチ回路、レジスター回路、又はこれらを少なくとも１つ以上有する回路セルであることを特徴とする請求項１乃至３のいずれか１項記載の半導体集積回路。
【請求項５】
クロック信号の入力端子側に、データ信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第１の回路が配置され、前記第１の回路の後段に接続され、前記第１の回路の出力信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第２の回路が配置され、前記第２の回路が、前記クロック信号により動作し、前段の出力信号を反転して取り込む第１のクロック信号動作回路と、前記クロック信号とは逆位相の反転クロック信号により動作し、前段の出力信号を反転して取り込む第２のクロック信号動作回路と、データ信号を入力とし、且つ前記クロック信号により動作して出力信号を出力する第３の回路とを縦続接続した構成を有し、半導体集積回路のレイアウト設計を行なう工程と、このレイアウト設計により配置された回路のタイミング解析を行なう工程とを備え、このタイミング解析の際の半導体集積回路のホールドタイム違反解消方法であって、
前記第２の回路が、前記第１の回路の出力信号を取り込むために必要とされる所定のホールドタイム値以下の回路を抽出する工程と、
置き換えルールに従って、所定のホールドタイム値以下の回路をホールドタイム値を満足する回路に置き換える工程と、
を具備し、置き換えルールに従って、置き換え可能でなければ、前記レイアウト設計まで戻ることを特徴とする半導体集積回路を用いたホールドタイム違反解消方法。
【請求項６】
前記第１のクロック信号動作回路、前記第２のクロック信号動作回路及び前記第３の回路の順序で縦続接続したことを特徴とする請求項５に記載の半導体集積回路を用いたホールドタイム違反解消方法。
【請求項７】
前記第３の回路、第２のクロック信号動作回路、前記第１のクロック信号動作回路の順序で縦続接続したことを特徴とする請求項５に記載の半導体集積回路を用いたホールドタイム違反解消方法。
【請求項８】
前記第１及び第３の回路は、フリップフロップ、ラッチ回路、レジスター回路、又はこれらを少なくとも１つ以上有する回路セルであることを特徴とする請求項５乃至７のいずれか１項記載の半導体集積回路を用いたホールドタイム違反解消方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路に係わり、特にデジタルＬＳＩで発生するホールドタイム違反を解消できる半導体集積回路及びそれを用いたホールドタイム違反解消方法に関する。
【０００２】
【従来の技術】
近年、デジタルＬＳＩ等の半導体集積回路においては、高集積化及び多機能化が進み、そのチップサイズはますます大きくなっている。そのため半導体集積回路内の回路またはセル間の配線長が、例えば数ｍｍ以上にもなり、それに伴ってクロック信号の遅延（クロックスキュー）が発生し、フリップフロップ、ラッチ回路、及びレジスター回路等でホールドタイム違反などの誤動作が発生する。
【０００３】
この種のホールドタイム違反の解消回路及びその解消方法としては、図６乃至８に示すものが知られている（例えば、特許文献１参照。）。
【０００４】
図６の半導体集積回路の模式図に示すように、この特許文献１に開示された半導体集積回路１００では、多数の回路が配置される回路領域１１０と、外部との信号のやり取りを行なうための入出力端子を配置する端子領域１２０とを有する。
【０００５】
この回路領域１１０のうちの周辺領域には、第１及び第２のフリップフロップ１４０、１４１がそれぞれ配置され、端子領域１２０には入力端子１２１が配置されている。この入力端子１２１には、第１及び第２のフリップフロップ１４０、１４１を駆動するためのクロック信号が入力される。
【０００６】
この入力端子１２１とこの第１及び第２のフリップフロップ１４０、１４１との間には、複数のバッファ１３１が複数段ツリー状に構成されたクロック信号供給回路１３０が配置され、入力端子１２１に入力されたクロック信号は、クロック信号供給回路１３０により第１及び第２のフリップフロップ１４０、１４１に、クロック信号ＣＫ１１、ＣＫ１２としてそれぞれ入力される。また、第１及び第２のフリップフロップ１４０、１４１には、データ信号Ｄ０も入力される。
【０００７】
図７は、図６に示す第１及び第２のフリップフロップ１４０，１４１に入力されるクロック信号ＣＫ１１、ＣＫ１２及びデータ信号Ｄのタイミングチャートである。第１のフリップフロップ１４０には、図７に示すようなクロック信号ＣＫ１１が入力される。一方、第２のフリップフロップ１４１には、入力端子１２１側から見て、第１のフリップフロップ１４０が配置された領域よりも遠方の領域に配置されており、このため、クロック信号ＣＫ１１と比較して、配線抵抗成分及び容量成分によりクロック信号ＣＫ１１よりも時間ｔ１だけ遅延したクロック信号ＣＫ１２が入力される。
【０００８】
このように、第１及び第２のフリップフロップ１４０、１４１に入力されるクロック信号ＣＫ１１、ＣＫ１２には、タイミングのずれ（クロックスキュー）が発生する。
【０００９】
一方、データ信号Ｄ０は、クロック信号ＣＫ１１が立ち上がってから時間ｔ２後データ信号Ｄに変化する。この時間ｔ２は、第１のフリップフロップ１４０がデータ信号Ｄ０のデータを取りこむための必要な時間であるホールドタイム要求値を十分満足する。
【００１０】
ところが、第２のフリップフロップ１４１に入力されるクロック信号ＣＫ１２は、クロック信号ＣＫ１１よりも時間ｔ１だけ遅れて到達するので、データ信号Ｄ０は、クロック信号ＣＫ１２が立ち上がってから時間ｔ３（時間ｔ２−時間ｔ１）経過後データ信号Ｄに変化する。
【００１１】
この時間ｔ３が、第２のフリップフロップ１４１がデータ信号Ｄ０のデータを取りこむために必要な時間であるホールドタイム要求値を満足しない場合にホールドタイム違反が発生する。
【００１２】
図８は、ホールドタイム違反を解消する回路図及びタイミングチャートで、図８（ａ）は回路図、８（ｂ）はタイミングチャートである。
【００１３】
図８に示すように、このホールドタイム違反を解消するために、第２のフリップフロップ１４１のデータ信号Ｄ０を抵抗、容量、及びゲート等の遅延回路１５０により所定時間遅延させたデータ信号ＤＤ０を第２のフリップフロップ１４１に入力する。このため、データ信号ＤＤ０が第２のフリップフロップ１４１のホールドタイム要求値を十分満たす時間ｔ４経過後、データ信号ＤＤに変化するので、第２のフリップフロップ１４１のホールドタイム違反を解消できる。
【００１４】
【特許文献１】
特開平１１−１１１８４６号公報（５頁の図５、６頁の図６及び図７）
【００１５】
【発明が解決しようとする課題】
上述した半導体集積回路おいては、ホールドタイム違反を解消するために抵抗、容量、及びゲート等の遅延回路１５０を挿入しているので、ホールドタイム違反のフリップフロップ、ラッチ回路、及びレジスター回路等が多ければ多数の遅延回路１５０が必要となり、半導体集積回路のチップサイズの増大や消費電力の増大等の問題点を有している。
【００１６】
本発明は、上記問題に鑑みてなされたもので、その目的とするところは、チップサイズの増大や消費電力の増大等が極めて小さく、ホールドタイム違反の解消可能な半導体集積回路及びそれを用いたホールドタイム違反解消方法を提供することにある。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明の一態様の半導体集積回路は、クロック信号の入力端子側に、データ信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第１の回路が配置され、前記クロック入力端子から遠方側に、データ信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第２の回路が配置された半導体集積回路において、前記第２の回路は、前記クロック信号により動作し、前段の出力信号を反転して取り込む第１のクロック信号動作回路と、前記クロック信号とは逆相の反転クロックにより動作し、前段の出力信号を反転して取り込む第２のクロック信号動作回路と、データ信号を入力とし、且つ前記クロック信号により動作して出力信号を出力する第３の回路とを縦続接続した構成を有することを特徴とする。
【００１８】
更に、上記目的を達成するために、本発明の別の一態様の半導体集積回路を用いたホールドタイム違反解消方法は、クロック信号の入力端子側に、データ信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第１の回路が配置され、前記第１の回路の後段に接続され、前記第１の回路の出力信号を入力とし、且つ前記クロック信号により動作してデータ信号を出力する第２の回路が配置され、前記第２の回路が、前記クロック信号により動作し、前段の出力信号を反転して取り込む第１のクロック信号動作回路と、前記クロック信号とは逆位相の反転クロック信号により動作し、前段の出力信号を反転して取り込む第２のクロック信号動作回路と、データ信号を入力とし、且つ前記クロック信号により動作して出力信号を出力する第３の回路とを縦続接続した構成を有し、半導体集積回路のレイアウト設計を行なう工程と、このレイアウト設計により配置された回路のタイミング解析を行なう工程とを備え、このタイミング解析の際の半導体集積回路のホールドタイム違反解消方法であって、前記第２の回路が、前記第１の回路の出力信号を取り込むために必要とされる所定のホールドタイム値以下の回路を抽出する工程と、置き換えルールに従って、所定のホールドタイム値以下の回路をホールドタイム値を満足する回路に置き換える工程とを具備し、置き換えルールに従って、置き換え可能でなければ、前記レイアウト設計まで戻ることを特徴とする。
【００１９】
上記クロック信号の入力端子は、外部からのクロック信号を前記第１の回路、前記第１及び第２のクロック信号動作回路、及び前記第３の回路にクロック信号を入力するための端子、又は半導体集積回路内で発生されたクロック信号を前記第１の回路、前記第１及び第２のクロック信号動作回路、及び前記第３の回路にクロック信号を入力するための端子と定義する。
【００２０】
【発明の実施の形態】
以下本発明の実施形態について、図面を参照しながら説明する。
【００２１】
（第１の実施の形態）
まず、本発明の第１の実施の形態の半導体集積回路について、図面を参照して説明する。本実施の形態では、２つのフリップフロップを縦続接続した例で、ホールドタイム違反を解消するために従来の半導体集積回路とはクロック信号の入力側から見て遠方の第２のフリップフロップの回路構成を変更した点で相違し、その他の構成は同じである。
【００２２】
図１は、本実施の形態の半導体集積回路におけるフリップフロップ部分を示す回路図である。
【００２３】
図１に示すように、本実施の形態のフリップフロップ部分１では、第１のフリップフロップ２と第２のフリップフロップ３とが縦続接続されている。
【００２４】
この第１のフリップフロップ２は、クロック信号ＣＫ１及びデータ信号Ｄａｔａ０を入力とし、出力信号（Ｑ１）を出力する。一方、第２のフリップフロップ３は、クロック信号ＣＫ２、及び第１のフリップフロップ２の出力信号（Ｑ１）をデータ信号Ｄａｔａ１として入力し、出力信号（Ｑ２）をデータ信号Ｄａｔａ２として出力する。
【００２５】
そして、この第２のフリップフロップ３は、従来と同様にクロック信号が入力される入力端子側からみて遠い位置に、第１のフリップフロップ２と例えば１ｍｍ以上離間して配置され、クロック信号ＣＫ１及びＣＫ２は、入力端子から入力されたクロック信号、或いは半導体集積回路内で発生されたクロック信号を用いる。
【００２６】
従って、第２のフリップフロップ３のクロック信号ＣＫ２は、第１のフリップフロップ２のクロック信号ＣＫ１よりも配線抵抗成分及び容量成分によりクロック信号の遅延（クロックスキュー）が発生する。
【００２７】
図２は、図１のフリップフロップ部分１の基本的構成を示す回路図である。
【００２８】
図２に示すように、このフリップフロップ部分１における第１のフリップフロップ２は、従来と同様な回路構成、すなわち、クロック信号ＣＫ１で動作し、データ信号Ｄａｔａ０を反転して取り込む第１のクロックドインバータ４ａと、この取り込んだ反転データ信号Ｄａｔａ０を更に反転してＤａｔａ１として出力する第１のインバータ５ａとを縦続接続した構成になっている。
【００２９】
また、クロック信号ＣＫ１が「ローレベル」の期間、出力データＤａｔａ１が減衰するのを防止するために、第１のクロックドインバータ４ａで取り込んだ反転データ信号Ｄａｔａを反転出力する第２のインバータ５ｂと、クロック信号ＣＫ１と逆相の反転クロック信号ＣＫ１Ｎで動作し、この反転データ信号を更に反転して第１のクロックドインバータ４ａで取り込んだデータ信号を第１のインバータ５ａに供給する第２のクロックドインバータ４ｂとで構成される充電ループを有している。
【００３０】
一方、第２のフリップフロップ３は、第１及び第２のクロック信号動作回路Ｆ１、Ｆ１Ｎ、及びクロック信号ＣＫ２で動作する第１のフリップフロップ２と同じ回路構成の第３のフリップフロップ１１とを縦続接続した構成となっている。
【００３１】
第１のクロック信号動作回路Ｆ１は、データ信号Ｄａｔａ１をデータ信号として入力し、クロック信号ＣＫ２で動作し、データ信号Ｄａｔａ１を反転して取り込み、次段の第２のクロック信号動作回路Ｆ２に反転データ信号Ｄａｔａ２、すなわちデータ信号Ｄ１を出力する第３のクロックドインバータ４ｃと、クロック信号ＣＫ２が「ローレベル」期間、ａ点におけるデータ信号Ｄ１が減数するのを防止するために、第１のフリップフロップ２の充電ループと同様に、第３のインバータ５ｃと、クロック信号ＣＫ２と逆相の反転クロック信号ＣＫ２Ｎで動作する第４のクロックドインバータ４ｄとで構成された充電ループを有し、データ信号Ｄ１をａ点に供給する。
【００３２】
第２のクロック信号動作回路ＦＩＮは、第１のクロック信号動作回路Ｆ１と同様な構成となっている。すなわち、データ信号Ｄ１をデータ信号として入力し、クロック信号ＣＫ２とは逆位相の反転クロック信号ＣＫ２Ｎで動作し、第１のクロック信号動作回路Ｆ１におけるａ点のデータ信号Ｄ１を反転して取り込み、ｂ点に反転信号Ｄ１、すなわちデータ信号Ｄ２を出力する第５のクロックドインバータ４ｅと、反転クロック信号ＣＫ２Ｎが「ローレベル」期間、ｂ点におけるデータ信号Ｄ２が減数するのを防止するために、第４のインバータ５ｄとクロック信号ＣＫ２で動作する第６のクロックドインバータ４ｆで構成される充電ループを有し、ｂ点にデータ信号Ｄ２を供給する。
【００３３】
第３のフリップフロップ１１は、第１のフリップフロップ２と同様に、データ信号Ｄ２を入力とし、クロック信号ＣＫ２で動作し、データ信号Ｄ２を反転して取り込む第７のクロックドインバータ４ｇとこの取り込んだ反転データ信号Ｄ２を更に反転してＤａｔａ２として出力する第５のインバータ５ｅとを縦続接続した構成になっている。
【００３４】
また、クロック信号ＣＫ２が「ローレベル」の期間、出力データＤａｔａ２が減衰するのを防止するために、第６のインバータ５ｆと、反転クロック信号ＣＫ２Ｎで動作する第８のクロックドインバータ４ｈとで構成される充電ループを有し、第５のインバータ５ｅの入力に反転データ信号Ｄ２を供給する。
【００３５】
図３は、クロックドインバータの具体的構成を示す回路図である。
【００３６】
図３に示すように、第１及び第２のフリップフロップ２、３における第１乃至第８のクロックドインバータ４ａ乃至４ｈは、ＰチャンネルＭＯＳトランジスタＴＲ１、ＴＲ２と、ＮチャンネルＭＯＳトランジスタＴＲ３、ＴＲ４が高電位側電源ＶＤＤと低電位側電源ＶＳＳの間に直列接続され、トランジスタＴＲ１及びトランジスタＴＲ４のゲートに入力信号（データ信号）が供給され、トランジスタＴＲ２及びＴＲ３のゲートにそれぞれクロック信号が供給され、トランジスタＴＲ２のソースとトランジスタＴＲ３のドレインとの接続点を出力ＯＵＴとする構成となっている。
【００３７】
そして、第１、３、６及び７のクロックドインバータ４ａ、４ｃ、４ｆ、４ｇは、トランジスタＴＲ３のゲートにクロック信号ＣＫ１またはＣＫ２が供給され、トランジスタＴＲ２のゲートにその反転クロック信号ＣＫ１ＮまたはＣＫ２Ｎがそれぞれ供給される。また、一方、第２、４、５及び８のクロックドインバータ４ｂ、４ｄ、４ｅ、４ｈは、トランジスタＴＲ３のゲートに反転クロック信号ＣＫ１ＮまたはＣＫ２Ｎが供給され、トランジスタＴＲ２のゲートにクロック信号ＣＫ１またはＣＫ２がそれぞれ供給される。
【００３８】
そして、第１、３、６及び７のクロックドインバータ４ａ、４ｃ、４ｆ、４ｇは、クロック信号ＣＫ１またはＣＫ２が「ハイレベル（高電位）の時、トランジスタＴＲ３がオン状態となり、同時に反転クロック信号ＣＫ１ＮまたはＣＫ２Ｎが「ローレベル（低電位）」の時、トランジスタＴＲ２がオン状態となって、インバータ動作し、入力信号ＩＮの反転信号を出力ＯＵＴに出力する。
【００３９】
一方、第２、４、５及び８のクロックドインバータ４ｂ、４ｄ、４ｅ、４ｈは、反転クロック信号ＣＫ１ＮまたはＣＫ２Ｎが「ハイレベルの時、トランジスタＴＲ３がオン状態となり、同時にクロック信号ＣＫ１またはＣＫ２が「ローレベル」の時、トランジスタＴＲ２がオン状態となって、インバータ動作し、入力信号ＩＮの反転信号を出力ＯＵＴに出力する。
【００４０】
次に、上記構成のフリップフロップ部分１の回路動作について、図４を参照して説明する。図４は、クロック信号とデータ信号のタイミングチャートである。
【００４１】
図４に示すように、第１のフリップフロップ２における第１のクロックドインバータ４ａのクロック信号ＣＫ１が「ハイレベル」となると、この第１のフリップフロップ２がインバータ動作し、入力されたデータ信号Ｄａｔａ０を反転して取り込み、且つ第１のインバータ５ａで更に反転してデータ信号Ｄａｔａ１（出力信号Ｑ１）を出力する。
【００４２】
このデータ信号Ｄａｔａ１は、クロック信号ＣＫ１の立ち上りから時間Ｔ１後にＡ状態のデータＡ１からＢ状態のデータＢ１に変化する。この時間Ｔ１は、第１のフリップフロップ２がデータ信号Ｄａｔａ０を取りこむための必要な時間であるホールドタイム要求値を十分満足する。
【００４３】
一方、第２のフリップフロップ３では、まず、第１のクロック動作回路ＦＮ１における第３のクロックドインバータ４ｃにクロック信号ＣＫ１よりも時間Ｔ１＋Ｔ２分だけ遅延したクロック信号ＣＫ２の「ハイレベル」が与えられると、第１のクロックドインバータ４ｃがインバータ動作し、入力データ信号Ｄａｔａ１を反転して取り込み、第１のクロック信号動作回路Ｆ１のａ点に出力信号としてデータ信号Ｄ１を出力する。
【００４４】
このデータ信号Ｄ１は、クロック信号ＣＫ２の立ち上りから時間Ｔ３後にＡ状態のデータＡ１からＢ状態のデータＢ１に変化する。
【００４５】
ここで、Ｂ状態のデータＢ１からＡ状態のデータＡ１に変化しないのは、時間Ｔ３が、データ信号Ｄａｔａ１のＢ状態のデータＢ１を取り込むのに必要な時間に対して時間が短いので、Ａ状態のデータＡ１を取り込むためである。
【００４６】
次に、第２のクロック信号動作回路Ｆ１Ｎにおいて、第５のクロックドインバータ４ｅの反転クロック信号ＣＫ２Ｎが「ハイレベル」になると、第５のクロックドインバータ４ｅがインバータ動作し、入力データ信号Ｄ１を反転して取り込み、第２のクロック信号動作回路Ｆ１Ｎのｂ点に出力信号としてのデータ信号Ｄ２を出力する。
【００４７】
このデータ信号Ｄ２は、クロック信号ＣＫ２Ｎの立ち上りから時間Ｔ４後にＢ状態のデータＢ１からＡ状態のデータＡ１に変化する。この時間Ｔ４は、クロック信号動作回路Ｆ１Ｎがデータ信号Ｄ１を取りこむための必要な時間であるホールドタイム要求値を十分満足する。
【００４８】
ここで、データ信号Ｄ２のＡ状態のデータＡ１は、データ信号Ｄ１のＡ状態のデータＡ１に対して、クロック信号ＣＫ１の１／２周期ズレて変化する。
【００４９】
続いて、第３のフリップフロップ１１において、第７のクロックドインバータ４ｇのクロック信号ＣＫ２が「ハイレベル」になると、第７のクロックドインバータ４ｇがインバータ動作し、入力データ信号Ｄ２を反転して取り込み、且つ第５のインバータ５ｅで更に反転してデータ信号Ｄａｔａ２（出力信号Ｑ２）を出力する。
【００５０】
このデータ信号ＤＤａｔａ２は、クロック信号ＣＫ２の立ち上りから時間Ｔ５後にＡ状態のデータＡ１からＢ状態のデータＢ１に変化する。この時間Ｔ５は、第３のフリップフロップ１１がデータ信号Ｄ２を取りこむための必要な時間であるホールドタイム要求値を十分満足する。
【００５１】
ここで、データ信号Ｄ２のＢ状態のデータＢ１は、データ信号Ｄ１のＢ状態のデータＢ１に対して、クロック信号ＣＫ２の１／２周期ズレて変化する。
【００５２】
そして、この第２のフリップフロップ３の出力信号（Ｑ２）であるデータ信号Ｄａｔａ２は、遅延素子の挿入やクロックスキューの調整が必要とせずに半導体集積回路の設計で要求される期待値のデータ信号Ｄａｔａ２ａを満足する。
【００５３】
上述したように、本実施の形態の半導体集積回路では、クロック信号が入力される入力端子側から見て遠方に配置される第２のフリップフロップ３は、クロック信号ＣＫ２で動作する第１のクロック信号動作回路Ｆ１、反転クロック信号ＣＫ２Ｎで動作する第２のクロック信号動作回路Ｆ１Ｎ及び第１のフリップフロップ２と同じ回路構成である第３のフリップフロップ部１１をこの順序で縦続接続した構成としているので、クロック信号の遅延（クロックスキュー）の発生によるフリップフロップ等の回路で発生するホールドタイム違反が発生しない。
【００５４】
また、ホールドタイム違反解消に大きな面積を必要とする従来の抵抗、容量、及びゲート等の遅延回路に対して、微細寸法で、小規模な回路で構成するクロック信号で動作するクロック信号動作回路を使用しているので、半導体集積回路のチップサイスの増大を抑制でき（例えば、従来と比較して１／５以下に）、消費電力の増大も抑制でき（例えば、従来と比較して１／５以下に）、更にクロックスキュー量を正確に見積もる必要がないので、ホールドタイム違反を解消するための設計見なおし期間が大幅に短縮（例えば、従来と比較して１／１０以下に）でき、コスト削減、低消費電力化、及び開発期間短縮が可能となる。
【００５５】
なお、上記実施の形態では、第１のクロック信号動作回路Ｆ１、及び第２のクロック信号動作回路Ｆ１Ｎを第３のフリップフロップ回路１１の前段に挿入しているが、第３のフリップフロップ回路１１の後段に挿入してもよい。その場合には、第２のクロック信号動作回路Ｆ１Ｎを第３のフリップフロップ回路１１の後段に、第１のクロック信号動作回路Ｆ１をその第２のクロック信号動作回路Ｆ１Ｎの後段に設ける。
【００５６】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係わる半導体集積回路を用いたホールドタイム違反解消方法について、図５を参照して説明する。図５はその動作フローチャートである。
【００５７】
本実施の形態では、デジタルＬＳＩで発生するホールドタイム違反を、フリップフロップ回路の設計段階で解消する例である。
【００５８】
図５に示すように、ホールドタイム違反の解消方法は、まず、デジタルＬＳＩの論理設計を行なう。具体的には、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）設計（例えば、Ｖｅｒｉｌｏｇ−ＨＤＬ設計）、論理合成、及び回路のファンクション動作のシミュレーションを行なう（ステップＳ１）。
【００５９】
次に、レイアウト設計、例えば、配置配線や寄生容量抽出を含めたレイアウト設計を行なう（ステップＳ２）。
【００６０】
続いて、回路のタイミング解析を行なう。具体的には、ＳＰＩＣＥ（Ｓｏｆｔｗａｒｅ  Ｐｒｏｃｅｓｓ  Ｉｍｐｒｏｖｅｍｅｎｔ  ａｎｄ  Ｃａｐａｂｉｌｉｔｙ  ｄＥｔｅｒｍｉｎａｔｉｏｎ）を基本とした回路シミュレーションを用いる（ステップＳ３）。
【００６１】
そして、ホールドタイム違反の回路があるか否かの確認をする（ステップＳ４）。
【００６２】
次に、ホールドタイム違反の回路があればホールドタイム違反の回路の抽出を行なう（ステップＳ５）。
【００６３】
続いて、デジタルＬＳＩを構成するフリップフロップを別のフリップフロップに置き換え可能かどうかの判断をするための違反特徴解析を行なう（ステップＳ６）。置き換え可能かどうかの違反特徴解析としては、
（ａ）ホールドタイム違反のフリップフロップのまわりに置き換えが可能なスペースがあること。
【００６４】
（ｂ）ホールドタイム違反値（時間）がクロック信号の周期を越えていないこと。
【００６５】
（ｃ）セットアップタイムがクロック信号に対して余裕があること。
【００６６】
等を考慮して行なう。
【００６７】
次に、置き換えルール１０としては、
（ａ）特徴解析の条件を満たすフリップフロップに対して置き換える。
【００６８】
（ｂ）置き換えられるフリップフロップの対応表を作成しておき、それに基づいて、置き換える。具体的には、置き換えられるフリップフロップとしては、Ｔ型フリップフロップ、ＲＳ型フリップフロップ、ＪＫ型フリップフロップ、及びＤ型フリップフロップ等のフリップフロップばかりでなく、ラッチ付フリップフロップ、エッジトリーガーフリップフロップを、置き換える回路としては、図２で示したような第１のクロック信号動作回路Ｆ１及び第２のクロック信号動作回路Ｆ１Ｎを上記フリップフロップの前段、回路内部、または後段に挿入したものを用いる。
【００６９】
（ｃ）セットアップタイムがクロック信号の周期、例えば２０％以上の余裕があれば置き換える。等を採用する。
【００７０】
次に、置き換え可能か否かの確認を行なう（ステップＳ７）。置き換え可能でなければ、レイアウト設計（ステップＳ２）の前まで戻って、レイアウト設計からステップをやり直す。一方、置き換え可能であれば、フリップフロップの置き換えを行なう。例えば、ホールドタイム違反の回路がＲＳ型フリップフロップであれば、このＲＳ型フリップフロップの前段に図２で示したような第１のクロック信号動作回路Ｆ１及び第２のクロック信号動作回路Ｆ１Ｎを挿入した回路に置き換える（ステップＳ８）。
【００７１】
続いて、タイミング解析（ステップＳ３）の前まで戻る。
【００７２】
このステップをデジタルＬＳＩを構成するフリップフロップがホールドタイム違反が無くなるまで繰り返す。
【００７３】
ここで、図５に示して説明していないが、デジタルＬＳＩを構成するフリップフロップ以外のクロック信号で動作し、ホールド違反のある各種ラッチ回路、各種レジスター回路、及びこれらを内蔵する回路セルにおいても同様なステップを行なう。
【００７４】
上述したように、本実施の形態の半導体集積回路を用いたホールドタイム違反解消方法では、タイミング解析後にホールド違反の確認を行ない、ホールドタイム違反があればホールド違反のフリップフロップを抽出し、置き換え可能かどうかの違反解析を行ない、置き換え可能であれば置き換えルールに従ってホールドタイム違反のフリップフロップをホールド違反の無い回路に置き換える。一方、置き換え可能でなければ、レイアウト設計の前までステップを戻ってレイアウト設計から設計作業を進めるので、クロック信号の遅延（クロックスキュー）の発生によるフリップフロップ等の回路で発生するホールドタイム違反が発生しない。
【００７５】
更に、ホールドタイム違反解消に大きな面積を必要とする抵抗、容量、及びゲート等の遅延回路を必要としないので、従来よりもチップサイズの増大、消費電力の増大、及び設計見なおし期間増大等を抑制でき、コスト削減、低消費電力化、及び開発期間短縮が可能となる。
【００７６】
本発明は、上記実施の形態に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更して実施してもよい。
【００７７】
例えば、上記実施の形態では、デジタルＬＳＩに適用した場合について説明したが、アナログデジタル混在ＬＳＩにも適用できる。
【００７８】
また、Ｔ型フリップフロップ、ＲＳ型フリップフロップ、ＪＫ型フリップフロップ、及びＤ型フリップフロップ等のフリップフロップばかりでなく、ラッチ付フリップフロップ、エッジトリーガーフリップフロップ、ＭＳラッチ回路やパルストリーガーラッチ回路等を含む各種ラッチ回路、各種レジスター回路、或いはこれらを少なくとも１つ以上有する回路セルにおいて、ホールドタイム違反を解消するために、クロック信号で動作する第１のクロック信号動作回路Ｆ１、及び反転クロック信号で動作する第２のクロック信号動作回路Ｆ１Ｎを挿入するのも有効である。
【００７９】
【発明の効果】
本発明によれば、チップサイズの増大や消費電力の増大等が極めて小さく、ホールドタイム違反の解消が可能な半導体集積回路及びそれを用いたホールドタイム違反解消方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係わる半導体集積回路におけるフリップフロップ部分を示す回路図。
【図２】本発明の第１の実施の形態に係わる半導体集積回路におけるフリップフロップ部分の具体的構成を示す回路図。
【図３】本発明の第１の実施の形態に係わるクロックドインバータを示す回路図。
【図４】本発明の第１の実施の形態に係わるフリップフロップ部分のクロック信号とデータ信号のタイミングチャート。
【図５】本発明の第２の実施の形態に係わるデジタルＬＳＩのホールドタイム違反を解消するための動作フローチャート。
【図６】従来の半導体集積回路の模式図。
【図７】従来のフリップフロップに入力されるクロック信号及びデータ信号のタイミングチャート。
【図８】従来のホールド違反を解消する回路図及びタイミングチャート。
【符号の説明】
１  フリップフロップ部分
２、１４０  第１のフリップフロップ
３、１４１  第２のフリップフロップ
４ａ  第１のクロックドインバータ
４ｂ  第２のクロックドインバータ
４ｃ  第３のクロックドインバータ
４ｄ  第４のクロックドインバータ
４ｅ  第５のクロックドインバータ
４ｆ  第６のクロックドインバータ
４ｇ  第７のクロックドインバータ
４ｈ  第８のクロックドインバータ
５ａ  第１のインバータ
５ｂ  第２のインバータ
５ｃ  第３のインバータ
５ｄ  第４のインバータ
５ｅ  第５のインバータ
５ｆ  第６のインバータ
１０  置き換えルール
１１  第３のフリップフロップ
１００  半導体集積回路
１１０  回路領域
１２０  端子領域
１２１  入力端子
１３０  クロック信号供給回路
１３１  バッファ
Ａ１  Ａ状態のデータ
Ｂ１  Ｂ状態のデータ
ＣＫ１、ＣＫ２、ＣＫ１Ｎ、ＣＫ２Ｎ、ＣＫ１１、ＣＫ１２  クロック信号
Ｄ、Ｄ０、ＤＤ、ＤＤ０、Ｄａｔａ０、Ｄａｔａ１、Ｄａｔａ２  データ信号
Ｄ１  ａ点でのデータ信号
Ｄ２  ｂ点でのデータ信号
Ｄａｔａ２ａ  期待値のデータ信号
Ｆ１  第１のクロック信号動作回路
Ｆ１Ｎ  第２のクロック信号動作回路
ＩＮ  入力
ＯＵＴ  出力
ＴＲ１、ＴＲ２  ＰチャンネルＭＯＳトランジスタ
ＴＲ３、ＴＲ４  ＮチャンネルＭＯＳトランジスタ
ＶＤＤ  高電位側電源
ＶＳＳ  低電位側電源
Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、ｔ１、ｔ２、ｔ３、ｔ４  時間
【図１】
2005050916.tif 000003
【図２】
2005050916.tif 000004
【図３】
2005050916.tif 000005
【図４】
2005050916.tif 000006
【図５】
2005050916.tif 000007
【図６】
2005050916.tif 000008
【図７】
2005050916.tif 000009
【図８】
2005050916.tif 000010