(57)【要約】【課題】  どの場所にどれだけスキューを付けられるかを検証して、消費電流が流れるタイミングを時間軸上で分散させることで、ＥＭＩのいずのピークを低減することができる同期回路の設計方法を提供すること。【解決手段】  本発明に係る同期回路の設計方法は、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第１工程と、配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第２工程と、解析されたスキューがセットアップ／ホールドタイムに対してマージンを有する複数のモジュールＩ，II，III，IVに分割する第３工程と、分割された複数のモジュールＩ，II，III，IVの少なくとも一つにクロックスキュー設定回路１０を追加挿入する第４工程と、クロックスキュー設定回路１０を追加して、二次配置配線を実施する第５工程と、を有する。【選択図】      図１
2008017389.tif 000002
【特許請求の範囲】
【請求項１】
ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第１工程と、
配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第２工程と、
解析されたスキューがセットアップ／ホールドタイムに対してマージンを有する複数のモジュールに分割する第３工程と、
分割された前記複数のモジュールの少なくとも一つにクロックスキュー設定回路を追加挿入する第４工程と、
前記クロックスキュー設定回路を追加して、二次配置配線を実施する第５工程と、
を有することを特徴とする同期回路の設計方法。
【請求項２】
請求項１において、
前記第４工程では、前記複数のモジュールのうち、回路規模が大きい最上位２つのモジュール間で、最大のスキュー差が生じるように、前記最上位２つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入することを特徴とする同期回路の設計方法。
【請求項３】
請求項２において、
前記第４工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位２つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入することを特徴とする同期回路の設計方法。
【請求項４】
請求項１において、
前記クロックスキュー設定回路は、ロジック信号によりスキュー量が可変であり、
前記第４工程は、前記モジュール毎に前記クロックスキュー設定回路のスキュー量を設定する工程を含むことを特徴とする同期回路の設計方法。
【請求項５】
請求項４において、
前記第４工程では、前記複数のモジュールのうち、回路規模が大きい最上位２つのモジュール間で、最大のスキュー差が生じるように、前記最上位２つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入し、かつ、前記クロックスキュー設定回路のスキュー量を前記ロジック信号により調整することを特徴とする同期回路の設計方法。
【請求項６】
請求項５において、
前記第４工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位２つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入し、かつ、前記クロックスキュー設定回路のスキュー量を前記ロジック信号により調整することを特徴とする同期回路の設計方法。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記複数のモジュールの少なくとも一つに前記クロックスキュー設定回路を挿入する位置は、他のモジュールにスキューの変動を与えない位置であって、かつ、前記複数のモジュールの少なくとも一つに属する最上流のバッファのさらに上流側の位置であることを特徴とする同期回路の設計方法。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記第５工程後に、前記クロックスキュー設定回路が追加されたクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析し、解析されたスキューがセットアップ／ホールドタイムに対してマージンを有するか否かを検証する第６工程をさらに有することを特徴とする同期回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＭＩノイズを低減した同期回路の設計方法に関する。
【背景技術】
【０００２】
この種の設計方法として、特許文献１に記載の設計方法がある。この方法によると、フリップフロップと組み合わせ回路を備えた回路をブロックに分割し、各ブロック毎に少しずつ遅延量の異なるクロックツリーを挿入している。その後に、各ブロック毎に計算されたスキューが同期回路全体のスキュー値の上限より小さくなるように設計している。
【特許文献１】特開２００４−１２００８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１の方法では、先ず、回路を複数にブロック分割することが困難である。このブロック分割は、以降の設計手順を拘束する重要な要素であり、例えばクロックツリーを挿入すべき場所を決定する要因となる。しかし、実際には、最初の段階でブロック分割を決定する明確な基準はない。
【０００４】
特許文献１では、同期回路全体のスキュー値が上限値以下とならない場合には、最初に戻ってブロック分割からやり直すことになっている（請求項２）が、結局、ブロック分割から試行錯誤の状況となり、効率的な設計方法とは言い難い。
【０００５】
そこで、本発明の目的は、どの場所にどれだけスキューを付けられるかを検証して、消費電流が流れるタイミングを時間軸上で分散させることで、ＥＭＩのいずのピークを低減することができる同期回路の設計方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る同期回路の設計方法は、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第１工程と、配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第２工程と、解析されたスキューがセットアップ／ホールドタイムに対してマージンを有する複数のモジュールに分割する第３工程と、分割された前記複数のモジュールの少なくとも一つにクロックスキュー設定回路を追加挿入する第４工程と、前記クロックスキュー設定回路を追加して、二次配置配線を実施する第５工程と、を有することを特徴とする。
【０００７】
本発明によれば、第１〜第３工程の実施により、どの場所にさらにスキューを追加できるかを検証でき、特許文献１のように予めスキューを付けるべき場所を特定していないので、ＥＭＩノイズを低減するためのスキュー調整の自由度と確実性が向上する。また、第４，第５工程の実施により、一次自動配置配線の時よりもＥＭＩノイズを時間軸上で分散でき、ＥＮＩノイズのピークを確実に低減できる。
【０００８】
本発明では、前記第４工程では、前記複数のモジュールのうち、回路規模が大きい最上位２つのモジュール間で、最大のスキュー差が生じるように、前記最上位２つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入することができる。
【０００９】
ＥＭＩノイズの原因となる消費電流量は回路規模に依存するので、回路規模が大きい最上位２つのモジュール間で最大のスキュー差を生じさせれば、ＥＭＩノイズの二大ピークは時間軸上で分散され、二大ピークが相互に重なり合わず、ＥＭＩノイズのピークを低減できる。
【００１０】
さらに本発明では、前記第４工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位２つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入することができる。
【００１１】
こうすると、三番目に大きなＥＭＩノイズピークは、二大ピークとも時間軸上で分散されるので、ＥＭＩノイズのピークを低減できる。
【００１２】
本発明では、前記クロックスキュー設定回路は、ロジック信号によりスキュー量が可変であり、前記第４工程は、前記モジュール毎に前記クロックスキュー設定回路のスキュー量を設定する工程を含むことができる。
【００１３】
こうすると、スキュー調整はクロックスキュー設定回路の挿入場所だけでなく、モジュール毎にスキューも可変となるので、ＥＭＩノイズピークを低減させるためのより細かな調整が可能となる。
【００１４】
本発明では、前記複数のモジュールの少なくとも一つに前記クロックスキュー設定回路を挿入する位置は、他のモジュールにスキューの変動を与えない位置であって、かつ、前記複数のモジュールの少なくとも一つに属する最上流のバッファのさらに上流側の位置とすることができる。
【００１５】
こうすると、クロックスキュー設定回路の挿入により、他のモジュールでのスキューマージンに変動を与えないばかりか、クロックスキュー設定回路が挿入されるモジュールの回路規模を最大限に活用でき、ＥＭＩノイズピークの低減により寄与できる。
【００１６】
本発明では、前記第５工程後に、前記クロックスキュー設定回路が追加されたクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析し、解析されたスキューがセットアップ／ホールドタイムに対してマージンを有するか否かを検証する第６工程をさらに有することができる。
【００１７】
こうして、クロックスキュー設定回路を追加挿入後に、同期回路として必要なセットアップ／ホールドタイムの要件を満足しているか否かを再確認できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００１９】
図１は、本発明方法の実施形態を示すフローチャートである。以下、フローチャートに従って、ＡＳＩＣ（特定用途向けＩＣ）であるＬＳＩの設計方法を説明する。
【００２０】
（１）第１次配置配線（１ＳＴＰ＆Ｒ）
先ず、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いてＬＳＩの配置配線を実施する（図１のステップ１）。この際、クロックツリージェネレータ（ＣＴＧｅｎ）を用いてクロックツリー・シンセシス（synthesis：統合）を実施し、さらにネットリストの最適化を実施する。
【００２１】
（２）次に、クロックツリーのスキュー解析を実施する（図１のステップ２）。図２は、配置配線されたクロックツリーを模式的に示す。図２に示すように、クロックツリーは分岐されており、分岐の前後にはバッファ（三角形で示す）が挿入されている。クロックツリーの各末端部の四角形は最終段のフリップフロップを示す。フリップフロップ間を接続する線はデータ線である。
【００２２】
スキュー解析は、スタティックタイミングアナライザ（ＳＴＡ）と称されるツールを用いて行なわれる。これにより、クロックが、複数の信号線の経路を通ることによって発生する到達時間の差（スキュー）が解析される。
【００２３】
ここで、クロック信号に先だって、データ信号を確定、保持しておかなければならない最小限の時間を「セットアップタイム」といい、逆に、タイミング信号を与えた後もデータ信号を保持しておかなければならない時間を「（入力）ホールドタイム」という。同期回路では、ＩＣの全回路にて「セットアップタイム」及び「ホールドタイム」を満たさなければならない。そうでないと、ＩＣ内部でデータ信号を正しく処理できないからである。図１のステップ２では、クロックソースから末端までのスキューを解析することで、セットアップ／ホールドタイムを満たしているかと、それに対するマージンがどれだけあるかが解析される。
【００２４】
（３）モジュール分割の検討（図１のステップ３）
単位時間あたりのＩＣ内部の消費電流の変化が最大となる時に、ＥＭＩノイズはピークに達する。このＥＭＩノイズのピークを低減する方法としては、消費電流が過渡的に変化するタイミングが、ＬＳＩ中にてモジュール分割した各モジュールにて同時期に集中することを緩和して、ＥＭＩノイズのピークを下げることが考えられる。このためのモジュール分割が図１のステップ３である。
【００２５】
例えば、図２において、破線で囲んだモジュールＩ，II，III，IVに属するフリップフロップＦ．Ｆ．までのスキューが、セットアップ／ホールドタイムに対してマージンが大きいことが分かった。破線で囲んでいない他のモジュールは、セットアップ／ホールドタイムを満たしているが、マージンが大きくなかったとする。
【００２６】
この場合、破線で囲んだモジュールＩ，II，III，IVが分割モジュールの候補として決定される。
【００２７】
（４）クロックスキュー設定回路の挿入（図１のステップ４）
図３は、配置配線後に、分割モジュール候補のモジュールＩ，II，III，IVの直前に挿入されるクロックスキュー設定回路１０を示している。このクロックスキュー設定回路１０は、例えば第１，第２のバッファ１２，１４と、３つのセレクタ２０，２２，２４とを有する。第１，第２のバッファ１２，１４と、３つのセレクタ２０，２２，２４とは、それぞれクロック信号ＣＬＫを遅延させる。
【００２８】
図３中のクロック信号Ａ〜Ｄのうち、クロック信号Ａ〜ＣはクロックＣＬＫが第１バッファ１２にて遅延されたものであるが、クロック信号Ａはセレクタ２４のみを通過して出力され、クロック信号Ｂはセレクタ２２，２４を通過して出力され、クロック信号Ｃはセレクタ２０，２２，２４を通過して出力される。クロック信号Ｃと同じく３つのセレクタ２０，２２，２４を通過して出力されるクロック信号Ｄは、第１バッファ１２に加えて第２バッファ１４でも遅延されている。従って、最終段のセレクタ２４より出力されるクロック信号Ａ〜Ｄの遅延量の大きさは、Ａ＜Ｂ＜Ｃ＜Ｄとなり、クロック信号Ｄの遅延量が最も大きく、クロック信号Ａの遅延量が最も小さくなる。
【００２９】
３つのセレクタ２０，２２，２４を切り換える制御信号Ｓ１，Ｓ２，Ｓ３は、２つのロジック信号Ｍ１，Ｍ２の論理に基づき、それらが入力される３つのロジック回路３０，３２，３４より出力される。
【００３０】
図４は、図３に示すクロックスキュー設定回路１０の真理値表であり、２つのロジック信号Ｍ１，Ｍ２の論理が固定されると、出力Ｘがクロック信号Ａ〜Ｄのいずれか一つに固定される。
【００３１】
次に、このクロックスキュー設定回路１０が挿入されるべき位置と、クロックスキュー設定回路１０にて選択されるクロック信号の遅延量について説明する。
【００３２】
先ず、クロックスキュー設定回路１０が挿入可能な位置は、各モジュールＩ，II，III，IVに対応して、図２に示す各位置ａ〜ｄとなる。この各位置ａ〜ｄは、次の２つの要件を満足している。一つは、各モジュールＩ，II，III，IVにのみ個別的にスキューを補正できる位置であることである。もし、クロックスキュー設定回路１０が挿入されることにより、スキューマージンが小さいモジュールにまで影響及ぶと、スキュー解析をやり直さなければならないからである。他の一つは、モジュール内の最上流に位置するバッファのさらに上流位置である。こうして、クロックソースに最も近い位置にクロックスキュー設定回路１０が挿入されることで、スキューを調整できる回路規模を最大とすることができ、ＥＭＩノイズのピークを低減させるのに効果的だからである。
【００３３】
次に、クロックスキュー設定回路１０にて選択されるクロック信号の遅延量について説明する。ここで検討するべきことは、予め解析された各モジュールのスキューマージンの大きさと、各モジュールが占める回路規模の大きさである。上述した通り、図３のクロックスキュー設定回路１０は４種類のスキュー量（クロック信号Ａ〜Ｄ）を選択できるが、選択されるスキューの大きさが各モジュールにてスキューマージンの範囲内でなれければならない。そうでないと、クロックスキュー設定回路１０の追加によって、あるモジュールではセットアップ／ホールドタイムを満足できなくなってしまうからである。なお、各モジュールにて選択されるスキュー量の大きさ（クロック信号Ａ〜Ｄ）は、必ずしも異ならせる必要はない。
【００３４】
重要なことは、各モジュールが持っているスキューに追加してクロックスキュー設定回路１０によるスキューを追加した時に、結果として各モジュールにて消費電流が過渡的に変化するタイミングを分散して、ＥＭＩノイズのピークを低減することである。
【００３５】
ここで、ＥＭＩノイズは同時期に流れる消費電流の大きさに依存するため、各モジュールのセル数を把握しておくことも重要である。
【００３６】
図２の例では、次のような回路規模であったとする。なお、セル数とは、基本セルによって構成される機能セルの数である。モジュールＩのセル数２，５８２個で基本セル数は２０，５９７個、モジュールIIのセル数は６，１０３個で基本セル数は６１，５９６個、モジュールIIIのセル数は１０，５８５個で基本セル数は９２，７３２個、モジュールIVのセル数は１，１３８個で基本セル数は９，４８５個であった。よって、回路規模からすると、モジュールIV＜モジュールＩ＜モジュールII＜モジュールIIIとなり、最大規模はモジュールIIIで最小規模はモジュールIVである。
【００３７】
スキュー量の設定として、例えば最大規模のモジュールIIIにマージンの範囲内で最大スキュー量を設定した時、次に規模が大きいモジュールIIに最小スキュー量を設定するように、クロックスキュー設定回路１０により調整するとよい。この場合、モジュールIIにクロックスキュー設定回路１０を挿入しないという選択肢もある。このように回路規模の大きいモジュール間でスキュー量の相違を最大とすることで、各モジュールにて生成されるＥＭＩノイズのピークは時間軸で明確に分離され、相互に重なり合うことがない。これにより、ＥＭＩノイズのピークを低減できる。
【００３８】
以降は、モジュールＩのモジュールII，IIIのそれぞれに対するスキュー量の相違が最大になるように、最後にモジュールIVのモジュールＩ，IIのそれぞれに対するスキュー量の相違が最大となるように、それぞれクロックスキュー設定回路１０の挿入の有無とクロックスキュー設定回路１０でのスキュー量の選択を実行する。
【００３９】
図５は、追加バッファとしてクロックスキュー設定回路１０を挿入した状態を示している。図５では、ルートバッファ４０から最終段のフリップフロップＦ．Ｆ．までに許容されるスキュー量が３００〜５００ｐｓｅｃという条件下で、サブルートバッファ４２を有するモジュールにはクロックスキュー設定回路１０を挿入せず、サブルートバッファ４４を有するモジュールには、サブルートバッファ４４の上流側に追加バッファとしてクロックスキュー設定回路１０を挿入した。
【００４０】
（５）二次配置配線（２ｎｄＰ＆Ｒ：図１のステップ５）
上述したクロックスキュー設定回路２０の挿入と配線を二次配置配線により実施する。
なお、既に一次配置配線は終了しているので、この二次配置配線は、一次配置配線での開きスペースを利用して手作業にて実施される。
【００４１】
（６）クロックツリーのスキュー再解析（図１での二度目のステップ２）
二次配置配線後に、上述したステップ２と同様にして、スタティックタイミングアナライザ（ＳＴＡ）と称されるツールを用いて、二度目のスキュー解析を実施する。これにより、クロックソースから末端までのスキューを解析して、各クロックツリーにてセットアップ／ホールドタイムを満たしていることを確認する。確認できれば終了し（図２のステップ６）、不具合があればステップ３〜５及びステップ２を再度実施する。
【００４２】
（７）本実施形態の効果
上述したような設計方法によれば、図６に示すようにモジュール毎にフリップフロップＦ．Ｆ．でのデータ切換えタイミングがずれ、しかも回路規模に応じてピークの大きなＥＭＩノイズは時間軸で分散されるので、大きなＥＭＩノイズピーク同士が重なり合うことなく、ＩＣ全体としてのＥＭＩノイズのピークを小さくできる。
【００４３】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に係る同期回路の設計方法のフローチャートである。
【図２】一次配置配線により得られたクロックツリーの模式図である。
【図３】クロックスキュー設定回路の一例を示す回路図である。
【図４】図３の回路の真理値表を示す特性図である。
【図５】クロックスキュー設定回路の挿入例を示す図である。
【図６】実施形態の設計方法によって時間軸上で分散された各モジュールのＥＭＩノイズを示す特性図である。
【符号の説明】
【００４５】
１０  クロックスキュー設定回路、１２，１４  第１，第２バッファ、２０，２２，２４  セレクタ、３０，３２，３４  ゲート回路、４０  ルートバッファ、４２，４４  サブルートバッファ
【図１】
2008017389.tif 000003
【図２】
2008017389.tif 000004
【図３】
2008017389.tif 000005
【図４】
2008017389.tif 000006
【図５】
2008017389.tif 000007
【図６】
2008017389.tif 000008