(57)【要約】【課題】  遅延調整用バッファを挿入することなく、ホールドタイムエラーを防止するとともに、配線長の増大を抑制する。【解決手段】  フリップフロップＦＦ１１とフリップフロップＦＦ１３との間ではホールドタイムエラーが発生しないが、フリップフロップＦＦ１２とフリップフロップＦＦ１３との間ではホールドタイムエラーが発生するものとすると、フリップフロップＦＦ１１、ＦＦ１３は配線が短くなるような順序で、フリップフロップＦＦ１２、ＦＦ１３はクロック到達時間の遅い順にスキャンパスＰ４１〜Ｐ４４を繋ぎ直す。【選択図】      図２
2006302996.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップに配置された複数のフリップフロップと、
ホールドタイムエラーが発生するフリップフロップについては、クロック到達時間の遅い順に前記フリップフロップのデータ入力端子を順次接続する第１配線と、
ホールドタイムエラーが発生しないフリップフロップについては、配線長が短くなるような順序で前記フリップフロップのデータ入力端子を順次接続する第２配線とを備えることを特徴とする半導体集積回路。
【請求項２】
半導体チップに配置された複数のフリップフロップと、
前記フリップフロップにクロック信号を分配するクロックツリーと、
ホールドタイムエラーが発生するフリップフロップについては、前記クロックツリーにおけるクロック到達時間の遅い順に前記フリップフロップを接続する第１スキャンチェーンと、
ホールドタイムエラーが発生しないフリップフロップについては、配線長が短くなるような順序で前記フリップフロップのデータ入力端子を順次接続する第２スキャンチェーンとを備えることを特徴とする半導体集積回路。
【請求項３】
半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するクロックツリー生成手段と、
前記半導体チップに配置されるセルの配置情報を生成する配置情報生成手段と、
前記半導体チップに配置されるセルの配線情報を生成する配線情報生成手段と、
前記セルに配線された配線の遅延量を評価する遅延量評価手段と、
前記遅延量評価手段にて評価された遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するスキャンチェーン構築手段と、
前記セルに配置される配線の配線長に基づいて、前記スキャンチェーン構築手段にて構築されたスキャンチェーンを修正するスキャンチェーン修正手段と、
前記スキャンチェーン修正手段にて修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成する再配線情報生成手段とを備えることを特徴とする回路レイアウト装置。
【請求項４】
半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するステップと、
前記半導体チップに配置されるセルの配置情報を生成するステップと、
前記半導体チップに配置されるセルの配線情報を生成するステップと、
前記セルに配線された配線の遅延量を評価するステップと、
前記評価された遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するステップと、
前記セルに配置される配線の配線長に基づいて、前記構築されたスキャンチェーンを修正するステップと、
前記修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成するステップとを備えることを特徴とする回路レイアウト方法。
【請求項５】
半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するステップと、
前記半導体チップに配置されるセルの配置情報を生成するステップと、
前記半導体チップに配置されるセルの配線情報を生成するステップと、
前記セルに配線された配線の遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するステップと、
前記セルに配置される配線の配線長に基づいて、前記構築されたスキャンチェーンを修正するステップと、
前記修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成するステップとをコンピュータに実行させることを特徴とする回路レイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路、回路レイアウト装置、回路レイアウト方法および回路レイアウトプログラムに関し、特に、半導体集積回路のスキャン設計方法に適用して好適なものである。
【背景技術】
【０００２】
ＬＳＩ内の論理回路およびクロック信号線のレイアウトでは、シフト時のミスシフトを防止するために、クロックスキュー（クロック信号の到達時間の差）が抑制されるように論理回路の配置や配線が行われている。
また、例えば、特許文献１には、ノーマルファンクションのタイミングを崩すことなくＬＳＩのレイアウトを行えるようにするため、セットアップまたはホールドが収束できていない箇所に遅延調整用バッファを挿入し、遅延調整を行ったときのフリップフロップへのクロック到達時間を考慮に入れて、フリップフロップのクロック到達時間の値をもとにスキャンチェーンをリオーダリングし、スキャンチェーンを再構成する方法が開示されている。
【特許文献１】特開２００３−２５６４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示された方法では、クロック到達時間を考慮してスキャンチェーンをリオーダリングするためには、遅延調整用バッファを挿入する必要があり、消費電力の増大を招くという問題があった。
そこで、本発明の目的は、遅延調整用バッファを挿入することなく、ホールドタイムエラーを防止するとともに、配線長の増大を抑制することが可能な半導体集積回路、回路レイアウト装置、回路レイアウト方法および回路レイアウトプログラムを提供することである。
【課題を解決するための手段】
【０００４】
上述した課題を解決するために、本発明の一態様に係る半導体集積回路によれば、半導体チップに配置された複数のフリップフロップと、ホールドタイムエラーが発生するフリップフロップについては、クロック到達時間の遅い順に前記フリップフロップのデータ入力端子を順次接続する第１配線と、ホールドタイムエラーが発生しないフリップフロップについては、配線長が短くなるような順序で前記フリップフロップのデータ入力端子を順次接続する第２配線とを備えることを特徴とする。
【０００５】
これにより、配線を繋ぎ直すことで、配線長の増大を抑制しつつ、クロックスキューに起因するホールドタイムエラーを防止することが可能となる。このため、クロックスキューに起因するホールドタイムエラーを防止するために、遅延調整用バッファを挿入する必要がなくなるとともに、配線の混雑を回避することが可能となることから、レイアウト設計にかかる時間を短縮しつつ、消費電力の増大を抑制することができる。
【０００６】
また、本発明の一態様に係る半導体集積回路によれば、半導体チップに配置された複数のフリップフロップと、前記フリップフロップにクロック信号を分配するクロックツリーと、ホールドタイムエラーが発生するフリップフロップについては、前記クロックツリーにおけるクロック到達時間の遅い順に前記フリップフロップを接続する第１スキャンチェーンと、ホールドタイムエラーが発生しないフリップフロップについては、配線長が短くなるような順序で前記フリップフロップのデータ入力端子を順次接続する第２スキャンチェーンとを備えることを特徴とする。
【０００７】
これにより、スキャンチェーンを繋ぎ直すことで、配線長の増大を抑制しつつ、クロックスキューに起因するホールドタイムエラーを防止することが可能となり、レイアウト設計にかかる時間を短縮することが可能となるとともに、消費電力の増大を抑制することができる。
また、本発明の一態様に係る回路レイアウト装置によれば、半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するクロックツリー生成手段と、前記半導体チップに配置されるセルの配置情報を生成する配置情報生成手段と、前記半導体チップに配置されるセルの配線情報を生成する配線情報生成手段と、前記セルに配線された配線の遅延量を評価する遅延量評価手段と、前記遅延量評価手段にて評価された遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するスキャンチェーン構築手段と、前記セルに配置される配線の配線長に基づいて、前記スキャンチェーン構築手段にて構築されたスキャンチェーンを修正するスキャンチェーン修正手段と、前記スキャンチェーン修正手段にて修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成する再配線情報生成手段とを備えることを特徴とする。
【０００８】
これにより、スキャンチェーンを繋ぎ直すことで、クロックスキューに起因するホールドタイムエラーを防止することが可能となるとともに、配線長の増大を抑制することが可能となる。このため、クロックスキューに起因するホールドタイムエラーを防止するために、遅延調整用バッファを挿入する必要がなくなり、消費電力の増大を抑制することが可能となるとともに、配線の混雑を回避することが可能となる。
【０００９】
また、本発明の一態様に係る回路レイアウト方法によれば、半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するステップと、前記半導体チップに配置されるセルの配置情報を生成するステップと、前記半導体チップに配置されるセルの配線情報を生成するステップと、前記セルに配線された配線の遅延量を評価するステップと、前記評価された遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するステップと、前記セルに配置される配線の配線長に基づいて、前記構築されたスキャンチェーンを修正するステップと、前記修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成するステップとを備えることを特徴とする。
【００１０】
これにより、遅延調整用バッファを挿入する必要がなく、ホールドタイムエラーを防止することが可能となるとともに、配線長の増大を抑制することが可能となり、消費電力の増大を抑制することが可能となるとともに、配線の混雑を回避することが可能となる。
また、本発明の一態様に係る回路レイアウトプログラムによれば、半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成するステップと、前記半導体チップに配置されるセルの配置情報を生成するステップと、前記半導体チップに配置されるセルの配線情報を生成するステップと、前記セルに配線された配線の遅延量に基づいて、クロック到達時間の遅い順に前記セルを繋ぎ直したスキャンチェーンを構築するステップと、前記セルに配置される配線の配線長に基づいて、前記構築されたスキャンチェーンを修正するステップと、前記修正されたスキャンチェーンに基づいて前記セルの再配線情報を生成するステップとをコンピュータに実行させることを特徴とする。
【００１１】
これにより、回路レイアウトプログラムをコンピュータに実行させることで、遅延調整用バッファを挿入する必要がなく、ホールドタイムエラーを防止することが可能となるとともに、配線長の増大を抑制することが可能となり、消費電力の増大を抑制しつつ、配線の混雑を回避することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係る回路レイアウト方法について図面を参照しながら説明する。
図１および図２は、本発明の一実施形態に係るスキャンチェーンの生成方法を説明する図、図３（ａ）は、図１のスキャンチェーンにおけるホールドタイムエラーを説明するタイミングチャート、３（ｂ）は、図２のスキャンチェーンにおけるホールドタイムエラーの改善効果を説明するタイミングチャートである。
【００１３】
図１において、フリップフロップＦＦ１の後段にはフリップフロップＦＦ２が配置されている。そして、各フリップフロップＦＦ１、ＦＦ２のクロック信号入力端子ＣＬＫＡ、ＣＬＫＢには、バッファＢを介してクロックパスＣＰが接続されている。また、フリップフロップＦＦ１のデータ入力端子ＤＡにはスキャンパスＰ１が接続され、フリップフロップＦＦ１のデータ出力端子ＱＡとフリップフロップＦＦ２のデータ入力端子ＤＢは、スキャンパスＰ２を介して接続され、フリップフロップＦＦ２のデータ出力端子ＱＢにはスキャンパスＰ３が接続されている。
【００１４】
そして、図３（ａ）において、スキャンパスＰ１を介してデータ入力端子ＤＡに入力されたデータはフリップフロップＦＦ１に保持され、データ出力端子ＱＡから出力される。そして、フリップフロップＦＦ１のデータ出力端子ＱＡから出力されたデータはスキャンパスＰ２を介してフリップフロップＦＦ２のデータ入力端子ＤＢに入力される。そして、データ入力端子ＤＢに入力されたデータは、クロック信号入力端子ＣＬＫＢに入力されるクロック信号に同期してフリップフロップＦＦ２に保持され、データ出力端子ＱＢから出力される。
【００１５】
ここで、フリップフロップＦＦ２のクロック信号入力端子ＣＬＫＢには、フリップフロップＦＦ２のクロック信号入力端子ＣＬＫＢに対して遅延時間ＤＬ１だけ遅れてクロック信号が入力されるものとする。また、フリップフロップＦＦ１のデータ出力端子ＱＡから出力されたデータは、遅延時間ＤＬ２だけ遅れてフリップフロップＦＦ２のデータ入力端子ＤＢに入力されるものとする。この場合、クロック信号入力端子ＣＬＫＢに入力されるクロック信号が立ち上がる時点では、今回のデータがフリップフロップＦＦ２にて保持される前に、次回のデータがフリップフロップＦＦ２のデータ入力端子ＤＢに入力されるので、データの筒抜けが発生する。
【００１６】
そこで、クロック到達時間の遅い順にフリップフロップＦＦ１、ＦＦ２のスキャンパスＰ１〜Ｐ３を繋ぎ直すようにする。すなわち、図２において、図１の各フリップフロップＦＦ１、ＦＦ２のクロック信号入力端子ＣＬＫＡ、ＣＬＫＢには、バッファＢを介してクロックパスＣＰが接続されている。また、フリップフロップＦＦ２のデータ入力端子ＤＢにはスキャンパスＰ１１が接続され、フリップフロップＦＦ２のデータ出力端子ＱＢとフリップフロップＦＦ１のデータ入力端子ＤＡは、スキャンパスＰ１２を介して接続され、フリップフロップＦＦ１のデータ出力端子ＱＡにはスキャンパスＰ１３が接続されている。
【００１７】
そして、図３（ｂ）において、スキャンパスＰ１１を介してデータ入力端子ＤＢに入力されたデータはフリップフロップＦＦ２に保持され、データ出力端子ＱＢから出力される。そして、フリップフロップＦＦ２のデータ出力端子ＱＢから出力されたデータはスキャンパスＰ１２を介してフリップフロップＦＦ１のデータ入力端子ＤＡに入力される。そして、データ入力端子ＤＡに入力されたデータは、クロック信号入力端子ＣＬＫＡに入力されるクロック信号に同期してフリップフロップＦＦ１に保持され、データ出力端子ＱＡから出力される。
【００１８】
ここで、図３（ａ）と同様に、フリップフロップＦＦ２のクロック信号入力端子ＣＬＫＢには、フリップフロップＦＦ２のクロック信号入力端子ＣＬＫＢに対して遅延時間ＤＬ１だけ遅れてクロック信号が入力されるものとする。一方、フリップフロップＦＦ２のデータ出力端子ＱＢから出力されたデータは、図３（ａ）の遅延時間ＤＬ２より大きな遅延時間ＤＬ３だけ遅れてフリップフロップＦＦ１のデータ入力端子ＤＡに入力されるものとする。この場合、クロック信号入力端子ＣＬＫＡに入力されるクロック信号が立ち上がる時点では、今回のデータがフリップフロップＦＦ１にて保持される前に、次回のデータがフリップフロップＦＦ１のデータ入力端子ＤＡに入力されることはないので、データの筒抜けは発生しない。
【００１９】
ここで、単にクロック到達時間のみを考慮してクロック到達時間の遅い順に全てのフリップフロップを接続すると、配線を迂回させければならない距離が増大し、配線が混雑する。このため、クロック到達時間のみならず、配線長も考慮しながらフリップフロップを接続することができる。
図４は、本発明の一実施形態に係るスキャンチェーンの接続方法を示す図である。
【００２０】
図４（ａ）において、フリップフロップＦＦ１１の入力にはスキャンパスＰ３１が接続され、フリップフロップＦＦ１１の出力とフリップフロップＦＦ１２の入力は、スキャンパスＰ３２を介して接続され、フリップフロップＦＦ１２の出力とフリップフロップＦＦ１３の入力は、スキャンパスＰ３３を介して接続され、フリップフロップＦＦ１３の出力にはスキャンパスＰ３４が接続されているものとする。
【００２１】
ここで、フリップフロップＦＦ１３、フリップフロップＦＦ１１、フリップフロップＦＦ１２の順にクロック到達時間が遅くなるものとすると、フリップフロップＦＦ１３、フリップフロップＦＦ１１、フリップフロップＦＦ１２の順にスキャンパスＰ３１〜Ｐ３４を繋ぎ直す。すなわち、図４（ｂ）において、フリップフロップＦＦ１３の入力にはスキャンパスＰ４１を接続し、フリップフロップＦＦ１３の出力とフリップフロップＦＦ１１の入力はスキャンパスＰ４２を介して接続し、フリップフロップＦＦ１１の出力とフリップフロップＦＦ１２の入力はスキャンパスＰ４３を介して接続し、フリップフロップＦＦ１２の出力にはスキャンパスＰ４４を接続する。
【００２２】
これにより、クロック到達にかかる実時間の遅い順にフリップフロップＦＦ１１〜ＦＦ１３の配線を繋ぎ直すことが可能となり、クロックスキューに起因するホールドタイムエラーを防止することが可能となる。このため、クロックスキューに起因するホールドタイムエラーを防止するために、遅延調整用バッファを挿入する必要がなくなることから、レイアウト設計にかかる時間を短縮することが可能となるとともに、消費電力の増大を抑制することができる。
【００２３】
さらに、フリップフロップＦＦ１１とフリップフロップＦＦ１３との間ではホールドタイムエラーが発生しないが、フリップフロップＦＦ１２とフリップフロップＦＦ１３との間ではホールドタイムエラーが発生するものとすると、フリップフロップＦＦ１１、ＦＦ１３は配線が短くなるような順序で、フリップフロップＦＦ１２、ＦＦ１３はクロック到達時間の遅い順にスキャンパスＰ４１〜Ｐ４４を繋ぎ直す。すなわち、図４（ｃ）において、フリップフロップＦＦ１１の入力にはスキャンパスＰ５１を接続し、フリップフロップＦＦ１１の出力とフリップフロップＦＦ１３の入力はスキャンパスＰ５２を介して接続し、フリップフロップＦＦ１３の出力とフリップフロップＦＦ１２の入力はスキャンパスＰ５３を介して接続し、フリップフロップＦＦ１２の出力にはスキャンパスＰ５４を接続する。
【００２４】
これにより、クロック到達時間のみならず、配線長も考慮しながらフリップフロップＦＦ１１〜ＦＦ１３の配線を繋ぎ直すことが可能となり、配線長の増大を抑制しつつ、クロックスキューに起因するホールドタイムエラーを防止することが可能となる。このため、クロックスキューに起因するホールドタイムエラーを防止するために、遅延調整用バッファを挿入する必要がなくなるとともに、配線の混雑を回避することが可能となることから、レイアウト設計にかかる時間を短縮しつつ、消費電力の増大を抑制することが可能となる。
【００２５】
図５は、本発明の一実施形態に係るスキャンチェーンの生成方法を示すフローチャートである。
図５において、半導体チップに配置されるセルにクロック信号を分配するためのクロックツリーを生成する（ステップＳ１）。なお、セルの構成要素としては、フリップフロップを用いることができる。次に、半導体チップに配置されるセルの配置情報を生成する（ステップＳ２）。次に、半導体チップに配置されるセルの配線情報を生成する（ステップＳ３）。次に、セルに配線された配線の遅延量を評価する（ステップＳ４）。次に、半導体チップに配置されるセルの配置座標を抽出する（ステップＳ５）。そして、セルに配線された配線の遅延量およびセルの配置座標を考慮しながら、スキャンチェーンを繋ぎ直す。すなわち、評価された配線の遅延量に基づいて、クロック到達時間の遅い順にセルを繋ぎ直したスキャンチェーンを構築するとともに、セルの配置座標に基づいて構築されたスキャンチェーンを修正する（ステップＳ６）。なお、スキャンチェーンを繋ぎ直す方法としては、ホールドタイムエラーが発生するセルについては、クロック到達時間の遅い順にスキャンチェーンを繋ぎ直し、ホールドタイムエラーが発生しないセルについては、配線長が短くなるような順序でスキャンチェーンを繋ぎ直すことができる。そして、スキャンチェーンに基づいてセルの再配線情報を生成する（ステップＳ７）。
【００２６】
これにより、スキャンチェーンを繋ぎ直すことで、クロックスキューに起因するホールドタイムエラーを防止することが可能となるとともに、配線長の増大を抑制することが可能となる。このため、クロックスキューに起因するホールドタイムエラーを防止するために、遅延調整用バッファを挿入する必要がなくなり、消費電力の増大を抑制することが可能となるとともに、配線の混雑を回避することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係るスキャンチェーンの生成方法を説明する図。
【図２】本発明の一実施形態に係るスキャンチェーンの生成方法を説明する図。
【図３】本発明の一実施形態に係るスキャンチェーンにおけるホールドタイムエラーの改善効果を説明するタイミングチャート。
【図４】本発明の一実施形態に係るスキャンチェーンの接続方法を示す図。
【図５】一実施形態に係るスキャンチェーンの生成方法を示すフローチャート。
【符号の説明】
【００２８】
ＦＦ１、ＦＦ２、ＦＦ１１〜ＦＦ１３  フリップフロップ、Ｂ  バッファ、Ｐ１〜Ｐ３、Ｐ１１〜Ｐ１３、Ｐ３１〜Ｐ３４、Ｐ４１〜Ｐ４４、Ｐ５１〜Ｐ５４  スキャンパス、ＣＰ  クロックパス、ＤＡ、ＤＢ  データ入力端子、ＱＡ、ＱＢ  データ出力端子、ＣＬＫＡ、ＣＬＫＢ  クロック信号入力端子、Ｃ  半導体チップ
【図１】
2006302996.tif 000003
【図２】
2006302996.tif 000004
【図３】
2006302996.tif 000005
【図４】
2006302996.tif 000006
【図５】
2006302996.tif 000007