(57)【特許請求の範囲】
【請求項１】
複数のクロックネットを有するＡＳＩＣ製品のクロックツリーシンセシスを行う際のクロックスキュー調整装置であって；
前記複数のクロックネット中に存在するルートセルの検出を行うルートセル検出部と、
前記複数のクロックネットのセル数の多い順にクロックツリーシンセシス実行順番を決定する実行順決定部と、
を具備し、
前記実行順番に従って、前記複数のクロックネットのクロックツリーシンセシスを行うことを特徴とするクロックスキュー調整装置。
【請求項２】
前記ルートセル検出部は、前記ルートセルに設けられた目印を検出することで、前記複数のクロックネットに存在するルートセルの検出を行うことを特徴とする請求項１記載のクロックスキュー調整装置。
【請求項３】
前記ルートセル検出部は、前記ルートセルに設けられた目印を検出することで、前記複数のクロックネットに存在するルートセルの検出を行うと共に、前記ルートセルに接続されたセルの数を検出することを特徴とする請求項１記載のクロックスキュー調整装置。
【請求項４】
前記目印は、ルートセルに接続されたセルの個数に応じて設定されることを特徴とする請求項２乃至３に記載のクロックスキュー調整装置。
【請求項５】
複数のクロックネットを有するＡＳＩＣ製品のクロックツリーシンセシスを行う際のクロックスキュー調整方法であって；
ルートセル検出部が、前記複数のクロックネット中に存在するルートセルの検出を行い、
実行順決定部が、前記複数のクロックネットのセル数の多い順にクロックツリーシンセシス実行順番を決定し、
前記実行順番に従って、前記複数のクロックネットのクロックツリーシンセシスを行うことを特徴とするクロックスキュー調整方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＡＳＩＣ製品のＣＴＳ（クロックツリーシンセシス）を行う際のクロックスキュー調整装置及び方法に関する。特には、クロックネットのスキュー調整をより正確に行うことができるクロックスキュー調整装置及び方法に関する。
【０００２】
【従来の技術】
ＡＳＩＣ製品の回路には、複数のセルが設けられている。各々のセルは、１つのセルを頂点としたツリー状に接続されており、それらをクロックツリーと呼ぶ。
【０００３】
図５は、ＡＳＩＣ製品のクロックツリーを示す図である。
図５に示すクロックツリーの最上流部（頂点）には、１つのセル１０１が設けられている。セル１０１には、例えば、４つのルートセル１１０、１１１、１１２、１１３が接続されている。ここで、例えば、ルートセル１１０の先には、４００個のセルがツリー状に接続されている。同様にして、ルートセル１１１の先には７０００個、ルートセル１１２の先には２５００個、ルートセル１１３の先には１２０００個、のセルがツリー状に接続されている。これらの各ルートセル１１０、１１１、１１２、１１３及びそれらに接続されたセルの集合体をクロックネット１２０、１２１、１２２、１２３と呼ぶ。
【０００４】
セル１０１には、クロック信号が入力される。セル１０１に入力されたクロック信号は、各ルートセル１１０、１１１、１１２、１１３を経由し、各ルートセル１１０、１１１、１１２、１１３の先に接続された各セルに伝送される。このとき、クロックツリーを作る時の負荷の違いによるゲート遅延時間の違い、そして、ゲートそのものの遅延時間のばらつきにより、各セルに伝わるクロックは僅かにばらつく。この現象をクロックスキューという。
【０００５】
このクロックスキューを軽減するため、ＡＳＩＣ製品の配置配線のレイアウトは、ＣＴＳ（クロックツリーシンセシス）という配置配線ツールを用いて行われている。
【０００６】
ＣＴＳは、クロック信号の分配のためにＡＳＩＣ製品のクロックネットに接続されている複数のセルをツリー状に接続し、最上流部のセルから末端のセルまでのクロックの遅延時間を全て一致させるようにレイアウトを行うためのツールである。
【０００７】
図６は、従来のＣＴＳの方法を示すフローチャートである。
図６においては、まず、図５に示すようなＡＳＩＣ製品のクロックネットに接続されている複数のセルのリスト（ネットリスト）を参照し（ステップ１０１）、ネットリスト中のクロックネットの順番に従って、処理を行うようにＣＴＳコマンドを作成する（ステップ１０２）。例えば、図５においては、上方からクロックネット１２０（セル４００個）、１２１（セル７０００個）、１２２（セル２５００個）、１２３（セル１２０００個）の順に処理を行うようにＣＴＳコマンドを作成する。ＣＴＳコマンドが作成されると（ステップ１０３）、ＣＴＳが実行される（ステップ１０４）。
【０００８】
【発明が解決しようとする課題】
上述のように、従来は、各クロックネット内のセルの数とは無関係に、ネットリスト中のクロックネットの順番に従ってＣＴＳを実行していた。しかし、一般的に、クロックネットに接続されているセルの数が多いほど、ＣＴＳでのクロックスキューの調整は難しくなる。そのため、比較的遅い順番に処理されたクロックネットが多くのセルを有する場合には、ＣＴＳにより配置配線を行っても、クロックスキューが大きくなり、その後のシミュレーションでタイミングエラーが発生することがあった。
【０００９】
また、従来は、ＣＴＳコマンドの作成を手作業に等しい状態で行っていたので、作業効率が悪かった。
【００１０】
本発明は、このような問題に鑑みてなされたものであって、クロックネットのスキュー調整をより正確に行うことができるクロックスキュー調整装置及び方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するため、本発明のクロックスキュー調整装置は、  複数のクロックネットを有するＡＳＩＣ製品等のＣＴＳ（クロックツリーシンセシス）を行う際のクロックスキュー調整装置であって；  前記複数のクロックネット中に存在するルートセルの検出及び判定を行うルートセル検出・判定部と、  前記複数のクロックネットのＣＴＳ実行順番を決定する実行順決定部と、  を具備し、  前記実行順番に従って、前記複数のクロックネットのＣＴＳを行うことを特徴とする。
【００１２】
前記クロックスキュー調整装置においては、  前記ルートセルに、該ルートセルを検出するための目印をつけることが好ましい。
【００１３】
上述の本名発明によれば、ルートセルに目印を設けることにより、ルートセル及びそのルートセルに接続されたセルの数を容易に、且つ自動的に検出することができるので、作業を正確に行うことができ、作業効率も向上する。
【００１４】
前記クロックスキュー調整装置においては、  前記実行順決定部において、前記クロックネットのセルの数に応じて、ＣＴＳ実行順番を決定することができる。
【００１５】
上述の本名発明によれば、セルの数の多い順にクロックネットのＣＴＳを実行できるので、クロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００１６】
前記クロックスキュー調整装置においては、  前記実行順決定部において、前記クロックネットの重要度（クロックスキュー調整の困難度）に応じて、ＣＴＳ実行順番を決定することもできる。
【００１７】
上述の本名発明によれば、クロックネットの重要度（クロックスキュー調整の困難度）に従って、クロックネットのＣＴＳを実行できるので、特に重要なクロックネットのクロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００１８】
また、上記の課題を解決するため、本発明のクロックスキュー調整方法は、  複数のクロックネットを有するＡＳＩＣ製品等のＣＴＳ（クロックツリーシンセシス）を行う際のクロックスキュー調整方法であって；  前記複数のクロックネット中に存在するルートセルの検出及び判定を行い、  前記複数のクロックネットのＣＴＳ実行順番を決定し、  前記実行順番に従って、前記複数のクロックネットのＣＴＳを行うことを特徴とする。
【００１９】
前記クロックスキュー調整方法においては、  前記ルートセルに、該ルートセルを検出するための目印をつけることが好ましい。
【００２０】
前記クロックスキュー調整方法においては、  前記実行順決定部において、前記クロックネットのセルの数に応じて、ＣＴＳ実行順番を決定することができる。
【００２１】
前記クロックスキュー調整方法においては、  前記実行順決定部において、前記クロックネットの重要度（クロックスキュー調整の困難度）に応じて、ＣＴＳ実行順番を決定することもできる。
【００２２】
【発明の実施の形態】
以下、図面を参照しつつ説明する。
まず、本発明の実施の形態に係るクロックスキュー調整装置について説明する。
【００２３】
図１は、本発明の実施の形態に係るクロックスキュー調整装置の構成を示すブロック図である。
図１に示すクロックスキュー調整装置は、セルの情報を有するネットリスト１からルートセルの検出及び判定を行うルートセル検出・判定部３と、ＣＴＳコマンドを作成するＣＴＳコマンド作成部５と、ＣＴＳを行うクロックネットの順番を決定する実行順決定部７と、ＣＴＳコマンド９によりＣＴＳを実行するＣＴＳ実行部１１と、を具備する。
【００２４】
ネットリスト１は、ＡＳＩＣ製品のクロックネットに接続されている複数のセルのリストである。ネットリスト１には、例えば、図５に示すようなクロックツリーのセルの情報がリストアップされている。図５のクロックツリーには、４００個のセルを有するクロックネット１２０、７０００個のセルを有するクロックネット１２１、２５００個のセルを有するクロックネット１２２、１２０００個のセルを有するクロックネット１２３が存在する。各クロックネット１２０、１２１、１２２、１２３の頂点には、それぞれルートセル１１０、１１１、１１２、１１３が配置されている。この実施の形態において、各ルートセル１１０、１１１、１１２、１１３には、その先に接続されているセルの個数に応じた目印（詳しくは図２を参照しつつ後述）をつけておく。
【００２５】
ルートセル検出・判定部３は、まず、ネットリスト１中の目印を検索し、ルートセル１１０、１１１、１１２、１１３を検出する。次に、各ルートセル１１０、１１１、１１２、１１３に接続されたセルの数を数える。
【００２６】
ＣＴＳコマンド作成部５は、各ルートセル１１０、１１１、１１２、１１３に接続されたセルの数に応じて、各クロックネット１２０、１２１、１２２、１２３のＣＴＳを行う際のＣＴＳコマンドを作成する。
【００２７】
実行順決定部７は、各クロックネット１２０、１２１、１２２、１２３のセルの数に応じて、ＣＴＳ実行順を決定する。具体的には、セルの数の多い順、つまり、１２０００個のセルを有するクロックネット１２３、７０００個のセルを有するクロックネット１２１、２５００個のセルを有するクロックネット１２２、４００個のセルを有するクロックネット１２０という順番でＣＴＳを行う。
【００２８】
ＣＴＳ実行部１１は、実行順決定部７において実行順が決定されると、ＣＴＳコマンド作成部５にて作成されたＣＴＳコマンド９により、セルの数の多い順にクロックネットのＣＴＳを実行する。
【００２９】
上述のように、本名発明によれば、セルの数の多い順にクロックネットのＣＴＳを実行できるので、クロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００３０】
また、ルートセルに目印を設けることにより、ルートセル及びそのルートセルに接続されたセルの数を容易に、且つ自動的に検出することができるので、作業を正確に行うことができ、作業効率も向上する。
【００３１】
続いて、図を参照しつつ、ルートセルに設ける目印について説明する。
【００３２】
図２は、ルートセルに設ける目印を示す図である。
図２には、ルートセルに設ける目印（ルートセル名）２１と、ルートセル及びルートセルに接続されたセル群からなるクロックネットの最大遅延時間２３と、各ルートセルに接続されたセルの個数の目安２５と、が示されている。
【００３３】
クロックネットのセル数の目安２５が０〜５００個の場合には、最大遅延時間は凡そ２nsとなる。このクロックネットのルートセルには、「ＣＲＢＦ２」という目印（ルートセル名）２１を設ける。ルートセル検出・判定部３（図１参照）は、ネットリスト１（図１参照）中からこの目印「ＣＲＢＦ２」を検索することにより、ルートセルを検出し、ルートセルに接続されたセルの数を数える。
【００３４】
クロックネットのセル数の目安２５が５００〜３０００個の場合にも、上述と同様に、最大遅延時間は凡そ３nsとなり、このクロックネットのルートセルには「ＣＲＢＦ３」という目印（ルートセル名）が設けられる。また、クロックネットのセル数の目安２５が３０００〜１００００個の場合には、最大遅延時間は凡そ４nsとなり、このクロックネットのルートセルには「ＣＲＢＦ４」という目印（ルートセル名）が設けられる。さらに、クロックネットのセル数の目安２５が１００００個以上の場合には、最大遅延時間は凡そ５nsとなり、このクロックネットのルートセルには「ＣＲＢＦ５」という目印（ルートセル名）が設けられる。なお、目印（ルートセル名）及びセル数の目安等は、この限りではなく、ＣＴＳ対象となるＡＳＩＣ製品に応じて様々に変更できる。
【００３５】
次に、この実施の形態に係るクロックスキュー調整方法について説明する。
【００３６】
図３は、本発明の実施の形態に係るクロックスキュー調整方法を示すフローチャートである。
図３においては、まず、ネットリスト１（図１参照）が示されている（ステップ１）。ネットリスト１は、ＡＳＩＣ製品のクロックネットに接続されている複数のセルのリストである。ネットリスト１には、例えば、図５に示すようなクロックツリーのセルの情報がリストアップされている。クロックツリーには、複数のセルを有する幾つかのクロックネットが存在する。各クロックネットの頂点には、それぞれルートセルが配置されている。この実施の形態において、各ルートセルには、その先に接続されているセルの個数に応じた目印（図２参照）をつけておく。
【００３７】
次に、ルートセル検出・判定部３（図１参照）において、ネットリスト１中の目印を検索し、ルートセルを検出し（ステップ３）、各ルートセルに接続されたセルの数が数えられる（ステップ５）。
【００３８】
続いて、ＣＴＳコマンド作成部５（図１参照）において、各ルートセルに接続されたセルの数に応じて、各クロックネットのＣＴＳを行う際のＣＴＳコマンド９（図１参照）が仮に作成される（ステップ７）。
【００３９】
ＣＴＳコマンドが作成されると、実行順決定部７（図１参照）において、各クロックネットのセルの数の多い順に、ＣＴＳ実行順が決定される。具体的には、先に作成されたＣＴＳコマンド９を各クロックネットのセルの数の多い順にソートする（ステップ９）。
【００４０】
実行順が決定されると、ＣＴＳ実行部１１（図１参照）は、ＣＴＳコマンド作成部５にて作成されたＣＴＳコマンド９により（ステップ１１）、セルの数の多い順にクロックネットのＣＴＳを実行する（ステップ１３）。
【００４１】
上述のように、本名発明によれば、セルの数の多い順にクロックネットのＣＴＳを実行できるので、クロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００４２】
また、ルートセルに目印を設けることにより、ルートセル及びそのルートセルに接続されたセルの数を容易に、且つ自動的に検出することができるので、作業を正確に行うことができ、作業効率も向上する。
【００４３】
次に、図を参照しつつ、他の実施の形態に係るクロックスキュー調整方法について説明する。この実施の形態のクロックスキュー調整方法は、クロックネットのセル数ではなく、クロックネットの重要度（クロックスキュー調整の困難度）に応じて、ＣＴＳの実行順を決定する例である。ここで、クロックネットの重要度とは、例えば、他のクロックネットに比べて、特にクロックスキューの影響を避けたいクロックネットがある場合には、そのクロックネットのＣＴＳを優先して行うということである。
【００４４】
図４は、本発明の他の実施の形態に係るクロックスキュー調整方法を示すフローチャートである。
図４においては、まず、ネットリスト１（図１参照）が示されている（ステップ２１）。ネットリスト１には、複数のセルを有する幾つかのクロックネットが存在する。各クロックネットの頂点には、それぞれルートセルが配置されている。この実施の形態において、各ルートセルには、その重要度（クロックスキュー調整の困難度）に応じた目印（図２参照）をつけておく。
【００４５】
次に、ルートセル検出・判定部３（図１参照）において、ネットリスト１中の目印を検索し、ルートセルを検出し（ステップ２３）、各ルートセルの重要度（クロックスキュー調整の困難度）を判断する（ステップ２５）。
【００４６】
続いて、ＣＴＳコマンド作成部５（図１参照）において、各クロックネットのＣＴＳを行う際のＣＴＳコマンド９（図１参照）が仮に作成される（ステップ２７）。
【００４７】
ＣＴＳコマンドが作成されると、実行順決定部７（図１参照）において、各クロックネットの重要度（クロックスキュー調整の困難度）に従って、ＣＴＳ実行順が決定される（ステップ２９）。
【００４８】
実行順が決定されると、ＣＴＳ実行部１１（図１参照）は、ＣＴＳコマンド作成部５にて作成されたＣＴＳコマンド９により（ステップ３１）、クロックネットの重要度（クロックスキュー調整の困難度）に従って、クロックネットのＣＴＳを実行する（ステップ３３）。
【００４９】
上述のように、本名発明によれば、クロックネットの重要度（クロックスキュー調整の困難度）に従って、クロックネットのＣＴＳを実行できるので、特に重要なクロックネットのクロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００５０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、セルの数の多い順にクロックネットのＣＴＳを実行できるので、クロックスキュー調整を正確に行うことができ、その後のシミュレーションでのタイミングエラーを低減することができる。
【００５１】
また、ルートセルに目印を設けることにより、ルートセル及びそのルートセルに接続されたセルの数を容易に、且つ自動的に検出することができるので、作業を正確に行うことができ、作業効率も向上する。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るクロックスキュー調整装置の構成を示すブロック図である。
【図２】ルートセルに設ける目印を示す図である。
【図３】本発明の実施の形態に係るクロックスキュー調整方法を示すフローチャートである。
【図４】本発明の他の実施の形態に係るクロックスキュー調整方法を示すフローチャートである。
【図５】ＡＳＩＣ製品のクロックツリーを示す図である。
【図６】従来のＣＴＳの方法を示すフローチャートである。
【符号の説明】
１  ネットリスト
３  ルートセル検出・判定部
５  ＣＴＳコマンド作成部
７  実行順決定部
９  ＣＴＳコマンド
１１  ＣＴＳ実行部
【図１】
0004066605.tif 000002
【図２】
0004066605.tif 000003
【図３】
0004066605.tif 000004
【図４】
0004066605.tif 000005
【図５】
0004066605.tif 000006
【図６】
0004066605.tif 000007