(57)【要約】【課題】複数のクロック信号の共有クロック経路上のセルをクロック伝播遅延時間が最短となる位置に配置することのできる半導体集積回路設計装置を提供する。【解決手段】半導体集積回路設計装置１は、複数クロック入力セル抽出部１１が、複数のクロック信号が入力されているセルを抽出し、共有クロック経路セル抽出部１２が、複数クロック入力セルの出力が伝達される複数クロック共有クロック経路に存在するセルを抽出し、セル移動先位置算出部１３が、共有クロック経路セルのセル配置位置情報にもとづいて、共有クロック経路の伝播遅延時間を短縮する、複数クロック入力セルおよび共有クロック経路セルの移動先位置を算出し、セル配置位置変更部１４が、算出された移動先位置へ複数クロック入力セルおよび共有クロック経路セルの配置位置を変更する。【選択図】図１
2008186081.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のセル配置位置データおよびネットデータが入力される半導体集積回路設計装置であって、
複数のクロック信号が入力されているセルを複数クロック入力セルとして抽出する複数クロック入力セル抽出手段と、
前記複数クロック入力セルの出力端から、前記複数クロック入力セルから出力されるクロック経路の信号がクロック入力端に入力される末端セルに到るまでの、前記複数のクロック信号が共有する共有クロック経路に存在するセルを共有クロック経路セルとして抽出する共有クロック経路セル抽出手段と、
前記共有クロック経路セルのセル配置位置情報にもとづいて、前記共有クロック経路の伝播遅延時間を短縮する、前記複数クロック入力セルおよび前記共有クロック経路セルの移動先位置を算出するセル移動先位置算出手段と、
前記移動先位置へ前記複数クロック入力セルおよび前記共有クロック経路セルの配置位置を変更し、クロックツリー生成用セル配置位置データを出力するセル配置位置変更手段と
を備えることを特徴とする半導体集積回路設計装置。
【請求項２】
前記セル移動先位置算出手段が、
前記共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出し、前記共有クロック経路セル配置領域で前記複数のクロック信号のいずれのクロック源からも等距離となる位置を算出し、その位置を前記複数クロック入力セルの移動先位置と決定する
ことを特徴とする請求項１に記載の半導体集積回路設計装置。
【請求項３】
前記セル移動先位置算出手段が、
前記共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出し、前記共有クロック経路セル配置領域で前記共有クロック経路セルの配置位置にもとづく重心の位置を算出し、その位置を前記複数クロック入力セルの移動先位置と決定する
ことを特徴とする請求項１に記載の半導体集積回路設計装置。
【請求項４】
前記セル移動先位置算出手段が、
前記共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出し、前記共有クロック経路に配線順位が優先される重み付けを行い、前記共有クロック経路セル配置領域内で前記共有クロック経路配線長が短くなる位置を算出し、その位置を前記複数クロック入力セルの移動先位置と決定する
ことを特徴とする請求項１に記載の半導体集積回路設計装置。
【請求項５】
前記共有クロック経路セル上に、縦続接続されたセルが複数存在するときは、そのセルの移動先位置を１つずつ順次決定する
ことを特徴とする請求項１に記載の半導体集積回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路設計装置に関する。
【背景技術】
【０００２】
近年の大規模・高速の半導体集積回路では、チップ内へのクロック信号の分配に際し、クロック信号の配線抵抗によるスキューを低減させることが重要である。そこで、従来、半導体集積回路のレイアウト設計を行う半導体集積回路設計装置では、クロック分配用のクロックツリーを自動生成し、クロックスキューを低減させている。
【０００３】
クロックツリーの生成は、半導体集積回路を構成する論理回路などのセルを配置した後、その配置位置に合わせて、クロック信号分配先のセルへ均等な遅延時間でクロック信号が伝播するように、ツリー状にバッファを配置することによって行われる。
【０００４】
ところで、このようなクロックツリーが生成される半導体集積回路では、テスト容易化のために、スキャンテスト用回路などのテスト回路が挿入されることがある。その場合、システム動作用クロックと、テスト用クロック、という２系統のクロックを、動作モード切り換え用セレクタによって切り換え、セレクタの出力をクロック信号として分配することなどが行われる。この場合、セレクタの出力からクロック信号分配先末端の論理セルまでのクロック信号経路は、２系統のクロックの共有クロック経路となる。
【０００５】
このような共有クロック経路を有する２系統のクロックを有する半導体集積回路に対して、クロックツリーを生成する場合、どちらのクロックに対してもクロックスキューが生じないように、伝播遅延時間の調整を行う必要がある。
【０００６】
例えば、２系統のクロックが入力されるセレクタ用セルの配置位置によって、そのセレクタ用セルまでの２系統のクロックの配線長に大きな差が生じたときは、配線長の長い方のクロックに合わせた遅延時間の調整を行う必要がある。
【０００７】
このような遅延時間の調整を行う方法の１つとして、クロックツリーの生成において、遅延調整回路を挿入することが行われている（例えば、特許文献１参照。）。
【０００８】
しかし、このような遅延調整回路を挿入して、配線長の長い方のクロックに合わせた遅延時間の調整を行うと、外部信号に対して、チップ全体のクロックのタイミングが遅れ、半導体集積回路の動作マージンが低下するという問題が生じる。
【０００９】
また、上述の２系統のクロックの配線長に大きな差が生じたときの対策として、半導体集積回路のセル配置工程を再度実行してセレクタ用セルの配置位置を変更し、クロックツリーを再生成することも行われる。しかし、１回の再実行で必ずしも最適解が得られるとは限らない。場合によっては、最適解が得られるまで、セルの配置とクロックツリーの生成を繰り返し行うこととなり、半導体集積回路の設計に時間がかかる、という問題が生じる。
【特許文献１】特開２００６−９３２４９号公報  （第４−５ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで、本発明の目的は、複数のクロック信号の共有クロック経路上のセルをクロック伝播遅延時間が最短となる位置に配置することのできる半導体集積回路設計装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、半導体集積回路のセル配置位置データおよびネットデータが入力される半導体集積回路設計装置であって、複数のクロック信号が入力されているセルを複数クロック入力セルとして抽出する複数クロック入力セル抽出手段と、前記複数クロック入力セルの出力端から、前記複数クロック入力セルから出力されるクロック経路の信号がクロック入力端に入力される末端セルに到るまでの、前記複数のクロック信号が共有する共有クロック経路に存在するセルを共有クロック経路セルとして抽出する共有クロック経路セル抽出手段と、前記共有クロック経路セルのセル配置位置情報にもとづいて、前記共有クロック経路の伝播遅延時間を短縮する、前記複数クロック入力セルおよび前記共有クロック経路セルの移動先位置を算出するセル移動先位置算出手段と、前記移動先位置へ前記複数クロック入力セルおよび前記共有クロック経路セルの配置位置を変更し、クロックツリー生成用セル配置位置データを出力するセル配置位置変更手段とを備えることを特徴とする半導体集積回路設計装置が提供される。
【発明の効果】
【００１２】
本発明によれば、複数のクロック信号の共有クロック経路上のセルをクロック伝播遅延時間が最短となる位置に配置することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施の形態に係る半導体集積回路設計装置の構成の例を示すブロック図である。
【００１４】
本実施の形態の半導体集積回路設計装置１は、複数のクロック信号が入力されるセルを有する半導体集積回路のセル配置終了後のセル配置位置データ１００、およびその半導体集積回路のネットデータ２００が入力され、複数のクロック信号の共有クロック経路上のセルの配置位置を変更したクロックツリー生成用セル配置位置データ３００を出力する装置である。
【００１５】
半導体集積回路設計装置１は、複数のクロック信号が入力されているセルを複数クロック入力セルとして、ネットデータ２００から抽出する複数クロック入力セル抽出部１１と、抽出された複数クロック入力セルの出力端から、その複数クロック入力セルの出力がクロック経路の信号として伝達されてクロック入力端に入力される末端セルに到るまでの、複数のクロック信号が共有する共有クロック経路に存在するセルを共有クロック経路セルとして、ネットデータ２００から抽出する共有クロック経路セル抽出部１２と、その共有クロック経路セルのセル配置位置情報にもとづいて、共有クロック経路の伝播遅延時間を短縮する、複数クロック入力セルおよび共有クロック経路セルの移動先位置を算出するセル移動先位置算出部１３と、算出された移動先位置へ複数クロック入力セルおよび共有クロック経路セルの配置位置を変更し、クロックツリー生成用セル配置位置データ３００を出力するセル配置位置変更部１４と、を備える。
【００１６】
このような本実施形態の半導体集積回路設計装置によれば、当初のセル配置位置に対して、共有クロック経路の伝播遅延時間を短縮する位置へ、複数クロック入力セルおよび共有クロック経路セルの配置位置を変更するので、共有クロック経路の伝播遅延時間を最短とすることができる。
【００１７】
ここで、セル移動先位置算出部１３におけるセル移動先位置の算出には、いくつかの手法があるので、それらの手法を実施例１〜４に示す。
【００１８】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１９】
図２は、セル移動先位置算出部１３の本実施例におけるセル移動先位置算出の処理手順を示すフロー図である。
【００２０】
セル移動先位置算出部１３は、共有クロック経路セル抽出部１２からの共有クロック経路セル情報１２１の出力を受けて、まず、共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出する（手順Ｓ０１）。
【００２１】
次に、この共有クロック経路セル配置領域で、複数クロック入力セルへ入力される複数のクロック信号のいずれのクロック源からも等距離となる位置を算出する（手順Ｓ０２）。
【００２２】
そして、その位置を複数クロック入力セルの移動先位置と決定し（手順Ｓ０３）、その情報を移動先位置情報１３１として出力する。
【００２３】
図３に、本実施例による複数クロック入力セルの移動先位置決定処理の様子を示す。ここでは、クロック源Ｓ１からのクロックＡおよびクロック源Ｓ２からのクロックＢが入力される複数クロック入力セルＭ１（例えば、セレクタ）から、共有クロック経路Ｐとなる信号が出力され、この共有クロック経路Ｐに共有クロック経路セルＣ１〜Ｃ３が接続されているものとする。共有クロック経路セルＣ１〜Ｃ３は、共通クロック経路Ｐの信号がクロック入力端に入力される末端のセルであり、具体的には、フリップフロップなどのセルである。
【００２４】
図３（ａ）には、図２の手順Ｓ０１により、共有クロック経路セル配置領域Ｒを算出した様子を示す。
【００２５】
ここで、共有クロック経路セル配置領域Ｒの形状は矩形とし、その端部に配置されたセルの外縁部に接する線を境界として、その領域を定める。
【００２６】
図３（ｂ）には、図２の手順Ｓ０２により、共有クロック経路セル配置領域Ｒで、クロック源Ｓ１およびＳ２のいずれからも等距離となる位置を算出した様子を示す。
【００２７】
すなわち、クロック源Ｓ１の出力端とクロック源Ｓ２の出力端から同じ長さの線分を延ばし、共有クロック経路セル配置領域Ｒ内でのその交点を複数クロック入力セルＭ１の移動先位置Ｔとする。
【００２８】
図３（Ｃ）には、図２の手順Ｓ０３により、移動先位置Ｔへ複数クロック入力セルＭ１を移動させたときのセル配置の様子を示す。
【００２９】
このような本実施例によれば、複数クロック入力セルを、その入力クロック信号のいずれのクロック源からも等距離となる位置に配置することができるので、いずれの入力クロック信号も、クロック源から複数クロック入力セルまでの配線による伝播遅延時間をほぼ等しい値とすることができる。そのため、クロックツリーの生成時に、遅延時間の調整のための遅延調整回路の挿入の必要がなく、クロックの伝播遅延時間を最短とすることができる。
【実施例２】
【００３０】
図４は、セル移動先位置算出部１３の本実施例におけるセル移動先位置算出の処理手順を示すフロー図である。
【００３１】
セル移動先位置算出部１３は、共有クロック経路セル抽出部１２からの共有クロック経路セル情報１２１の出力を受けて、まず、共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出する（手順Ｓ１１）。
【００３２】
次に、この共有クロック経路セル配置領域で、共有クロック経路セルの配置位置にもとづく重心の位置を算出する（手順Ｓ１２）。
【００３３】
ここで、重心の位置は、その座標を（Ｘｍ，Ｙｍ）と表すとすると、
Ｘｍ＝各共有クロックセルの配置位置のＸ座標の平均値
Ｙｍ＝各共有クロックセルの配置位置のＹ座標の平均値
として算出するものとする。
【００３４】
そして、その位置を複数クロック入力セルの移動先位置と決定し（手順Ｓ１３）、その情報を移動先位置情報１３２として出力する。
【００３５】
図５に、本実施例による複数クロック入力セルの移動先位置決定処理の様子を示す。ここで、各セルの配置は、図３（ａ）に示したものと同じものとする。
【００３６】
図５（ａ）には、図４の手順Ｓ１１により、共有クロック経路セル配置領域Ｒを算出した様子を示す。本実施例でも、実施例１と同様、共有クロック経路セル配置領域Ｒの形状は矩形とし、その端部に配置されたセルの外縁部に接する線を境界として、その領域を定める。
【００３７】
図５（ｂ）には、図４の手順Ｓ１２により、共有クロック経路セル配置領域Ｒで、共有クロック経路セルの配置位置にもとづく重心の位置を算出し、その位置を複数クロック入力セルＭ１の移動先位置Ｔとした様子を示す。
【００３８】
ここで、共有クロック経路セルＣ１〜Ｃ３の中心座標を、（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）とすると、共有クロック経路セル配置領域Ｒの重心の座標（Ｘｍ，Ｙｍ）は、
Ｘｍ＝（Ｘ１＋Ｘ２＋Ｘ３）／３
Ｙｍ＝（Ｙ１＋Ｙ２＋Ｙ３）／３
として算出される。
【００３９】
図５（Ｃ）には、図４の手順Ｓ１３により、移動先位置Ｔへ複数クロック入力セルＭ１を移動させたときのセル配置の様子を示す。
【００４０】
ここでは、複数クロック入力セルＭ１の中心座標が移動先位置Ｔとなるように、複数クロック入力セルＭ１を移動させるものとする。
【００４１】
このような本実施例によれば、複数クロック入力セルを、共有クロック経路セルへのクロック分配のバランスのいい位置へ配置できるので、どの共有クロック経路セルに対しても均等な伝播遅延時間でクロックを分配することができる。クロックの伝播遅延時間に不均衡が生じないため、クロックツリーの生成時に、遅延時間の調整のための遅延調整回路の挿入を防止することができる。
【実施例３】
【００４２】
図６は、セル移動先位置算出部１３の本実施例におけるセル移動先位置算出の処理手順を示すフロー図である。
【００４３】
セル移動先位置算出部１３は、共有クロック経路セル抽出部１２からの共有クロック経路セル情報１２１の出力を受けて、まず、共有クロック経路セルを総て含む共有クロック経路セル配置領域をその端部に配置されたセルを境界として算出する（手順Ｓ２１）。
【００４４】
次に、共有クロック経路の配線が、他の配線に優先して先に行われるよう、共有クロック経路に配線順位の重み付けを行い（手順Ｓ２２）、共有クロック経路の配線長が短くなる配線起点位置を算出する（手順Ｓ２３）。
【００４５】
そして、その位置を前記複数クロック入力セルの移動先位置と決定し（手順Ｓ２４）、その情報を移動先位置情報１３３として出力する。
【００４６】
図７に、本実施例による複数クロック入力セルの移動先位置決定処理の様子を示す。ここで、各セルの配置は、図３（ａ）に示したものと同じものとする。
【００４７】
図７（ａ）には、図６の手順Ｓ２１により、共有クロック経路セル配置領域Ｒを算出し、図６の手順Ｓ２２により、共有クロック経路Ｐに重み付けを行った例を示す。なお、本実施例でも、実施例１と同様、共有クロック経路セル配置領域Ｒの形状は矩形とし、その端部に配置されたセルの外縁部に接する線を境界として、その領域を定める。
【００４８】
図７（ｂ）には、図７の手順Ｓ２３により、重み付けした共有クロック経路Ｐの配線を他の配線に優先して配線したときに、共有クロック経路Ｐの配線長が最も短くなると想定される配線起点位置を、移動先位置Ｔとして算出した様子を示す。
【００４９】
図７（Ｃ）には、図６の手順Ｓ２４により、移動先位置Ｔへ複数クロック入力セルＭ１を移動させたときのセル配置の様子を示す。ここでは、複数クロック入力セルＭ１の出力端が移動先位置Ｔとなるように、複数クロック入力セルＭ１を移動させるものとする。
【００５０】
このような本実施例によれば、複数クロック入力セルから共有クロック経路セルへ到る共有クロック経路の配線長を最短とすることができるので、共有クロック経路を伝播するクロックの伝播遅延時間を最短とすることができる。
【実施例４】
【００５１】
上述の各実施例では、１個のセルの移動を例にとって示したが、本実施例では、複数のセルを移動させるときの処理手順を示す。なお、個々のセルの移動については、上述の実施例のいずれかの処理手順をとるものとする。
【００５２】
図７は、複数のセルを移動させるときの処理手順を示すフロー図である。
【００５３】
処理を開始すると、まず、ネットデータ２００を参照して、セル配置位置データ１００から、共有クロック経路中のセル配置情報を切り出す（手順Ｓ３１）。
【００５４】
次に、そのセル配置情報に含まれるセルの中から共有クロック経路の末端に一番近いセルを取り出す（手順Ｓ３２）。
【００５５】
このセルに対して、実施例１〜３のいずれかの処理を実行し、そのセルの配置位置を決定する（手順Ｓ３３）。
【００５６】
次に、手順Ｓ３１で切り出した共有クロック経路中のセル配置情報のなかに、配置位置の決定を行っていない未配置のセルがあるかどうかを判定する（手順Ｓ３４）。
【００５７】
未配置のセルがなければ（ＮＯ）、本処理を終了するが、未配置のセルがあれば（ＹＥＳ）、手順Ｓ３１に戻って、共有クロック経路中のセル配置情報に含まれるセルの中から共有クロック経路の末端に次に近いセルを取り出し、以降の処理を繰り返す。
【００５８】
このようにして、共有クロック経路中のセル配置情報に含まれるセルの総てについて配置位置が決定すると、本フローによる処理は終了する。
【００５９】
図９に、本フローによるセル移動の処理の様子を示す。
【００６０】
図９（ａ）に、共有クロック経路中のセル配置の様子を示す。ここで、共有クロック経路セルＣ１〜Ｃ４は、フリップフロップなどの共有クロック経路末端のセルであり、共有クロック経路セルＭ２は、論理ゲートなど、クロック信号が通過して行くセルである。
【００６１】
また、共有クロック経路セルＣ１〜Ｃ２は、複数クロック入力セルＭ１から直接クロックが供給され、共有クロック経路セルＣ３〜Ｃ４は、複数クロック入力セルＭ１からのクロックが、共有クロック経路セルＭ２を介して、供給されるものとする。したがって、この場合、共有クロック経路セルＣ３〜Ｃ４が、共有クロック経路Ｐの末端のセルとなる。
【００６２】
このような共有クロック経路中のセルに対して、図８のフローに示した処理を実行すると、手順Ｓ３２により、共有クロック経路Ｐの末端に一番近いセルとして、共有クロック経路セルＭ２が取り出され、手順Ｓ３３により、この共有クロック経路セルＭ２の配置位置が決定される。
【００６３】
図９（ｂ）に、共有クロック経路セルＭ２の配置位置が決定された様子を示す。この場合、共有クロック経路セルＭ２に接続される、共有クロック経路セルＣ３〜Ｃ４を含む領域が共有クロック経路セル配置領域Ｒ１として算出される。そして、この共有クロック経路セル配置領域Ｒ１へ共有クロック経路セルＭ２を移動させるよう、共有クロック経路セルＭ２の配置位置が決定する。
【００６４】
次に、図８の手順Ｓ３３により、未配置セルの判定が行われる。この場合、複数クロック入力セルＭ１が未配置セルとして残っているので、続いて、複数クロック入力セルＭ１の配置位置の決定が行われる。
【００６５】
図９（ｃ）に、複数クロック入力セルＭ１の配置位置が決定された様子を示す。この場合、共有クロック経路Ｐに接続される総ての共有クロック経路セルを含む領域が共有クロック経路セル配置領域Ｒ２として算出される。そして、この共有クロック経路セル配置領域Ｒ２へ複数クロック入力セルＭ１を移動させるよう、複数クロック入力セルＭ１の配置位置が決定する。
【００６６】
このような本実施例によれば、共有クロック経路セルに接続される複数のセルを、それぞれ伝播遅延時間が短くなる位置へ、順次移動させるので、共有クロック経路セル全体の伝播遅延時間を最短とすることができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態に係る半導体集積回路設計装置の構成の例を示すブロック図。
【図２】本発明の実施例１の半導体集積回路設計装置における処理手順を示すフロー図。
【図３】本発明の実施例１の半導体集積回路設計装置における処理の様子を示す図。
【図４】本発明の実施例２の半導体集積回路設計装置における処理手順を示すフロー図。
【図５】本発明の実施例２の半導体集積回路設計装置における処理の様子を示す図。
【図６】本発明の実施例３の半導体集積回路設計装置における処理手順を示すフロー図。
【図７】本発明の実施例３の半導体集積回路設計装置における処理の様子を示す図。
【図８】本発明の実施例４の半導体集積回路設計装置における処理手順を示すフロー図。
【図９】本発明の実施例４の半導体集積回路設計装置における処理の様子を示す図。
【符号の説明】
【００６８】
１  半導体集積回路設計装置
１１  複数クロック入力セル抽出部
１２  共通クロック経路セル抽出部
１３  セル移動先位置算出部
１４  セル配置位置変更部
【図１】
2008186081.tif 000003
【図２】
2008186081.tif 000004
【図３】
2008186081.tif 000005
【図４】
2008186081.tif 000006
【図５】
2008186081.tif 000007
【図６】
2008186081.tif 000008
【図７】
2008186081.tif 000009
【図８】
2008186081.tif 000010
【図９】
2008186081.tif 000011