トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 EMIノイズを低減した同期回路の設計方法
【発明者】 【氏名】松田 裕充

【要約】 【課題】どの場所にどれだけスキューを付けられるかを検証して、消費電流が流れるタイミングを時間軸上で分散させることで、EMIのいずのピークを低減することができる同期回路の設計方法を提供すること。

【構成】本発明に係る同期回路の設計方法は、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第1工程と、配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第2工程と、解析されたスキューがセットアップ/ホールドタイムに対してマージンを有する複数のモジュールI,II,III,IVに分割する第3工程と、分割された複数のモジュールI,II,III,IVの少なくとも一つにクロックスキュー設定回路10を追加挿入する第4工程と、クロックスキュー設定回路10を追加して、二次配置配線を実施する第5工程と、を有する。
【特許請求の範囲】
【請求項1】
ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第1工程と、
配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第2工程と、
解析されたスキューがセットアップ/ホールドタイムに対してマージンを有する複数のモジュールに分割する第3工程と、
分割された前記複数のモジュールの少なくとも一つにクロックスキュー設定回路を追加挿入する第4工程と、
前記クロックスキュー設定回路を追加して、二次配置配線を実施する第5工程と、
を有することを特徴とする同期回路の設計方法。
【請求項2】
請求項1において、
前記第4工程では、前記複数のモジュールのうち、回路規模が大きい最上位2つのモジュール間で、最大のスキュー差が生じるように、前記最上位2つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入することを特徴とする同期回路の設計方法。
【請求項3】
請求項2において、
前記第4工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位2つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入することを特徴とする同期回路の設計方法。
【請求項4】
請求項1において、
前記クロックスキュー設定回路は、ロジック信号によりスキュー量が可変であり、
前記第4工程は、前記モジュール毎に前記クロックスキュー設定回路のスキュー量を設定する工程を含むことを特徴とする同期回路の設計方法。
【請求項5】
請求項4において、
前記第4工程では、前記複数のモジュールのうち、回路規模が大きい最上位2つのモジュール間で、最大のスキュー差が生じるように、前記最上位2つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入し、かつ、前記クロックスキュー設定回路のスキュー量を前記ロジック信号により調整することを特徴とする同期回路の設計方法。
【請求項6】
請求項5において、
前記第4工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位2つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入し、かつ、前記クロックスキュー設定回路のスキュー量を前記ロジック信号により調整することを特徴とする同期回路の設計方法。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記複数のモジュールの少なくとも一つに前記クロックスキュー設定回路を挿入する位置は、他のモジュールにスキューの変動を与えない位置であって、かつ、前記複数のモジュールの少なくとも一つに属する最上流のバッファのさらに上流側の位置であることを特徴とする同期回路の設計方法。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記第5工程後に、前記クロックスキュー設定回路が追加されたクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析し、解析されたスキューがセットアップ/ホールドタイムに対してマージンを有するか否かを検証する第6工程をさらに有することを特徴とする同期回路の設計方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、EMIノイズを低減した同期回路の設計方法に関する。
【背景技術】
【0002】
この種の設計方法として、特許文献1に記載の設計方法がある。この方法によると、フリップフロップと組み合わせ回路を備えた回路をブロックに分割し、各ブロック毎に少しずつ遅延量の異なるクロックツリーを挿入している。その後に、各ブロック毎に計算されたスキューが同期回路全体のスキュー値の上限より小さくなるように設計している。
【特許文献1】特開2004−120084号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1の方法では、先ず、回路を複数にブロック分割することが困難である。このブロック分割は、以降の設計手順を拘束する重要な要素であり、例えばクロックツリーを挿入すべき場所を決定する要因となる。しかし、実際には、最初の段階でブロック分割を決定する明確な基準はない。
【0004】
特許文献1では、同期回路全体のスキュー値が上限値以下とならない場合には、最初に戻ってブロック分割からやり直すことになっている(請求項2)が、結局、ブロック分割から試行錯誤の状況となり、効率的な設計方法とは言い難い。
【0005】
そこで、本発明の目的は、どの場所にどれだけスキューを付けられるかを検証して、消費電流が流れるタイミングを時間軸上で分散させることで、EMIのいずのピークを低減することができる同期回路の設計方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る同期回路の設計方法は、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いて同期回路の一次配置配線を実施する第1工程と、配置配線された同期回路のクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析する第2工程と、解析されたスキューがセットアップ/ホールドタイムに対してマージンを有する複数のモジュールに分割する第3工程と、分割された前記複数のモジュールの少なくとも一つにクロックスキュー設定回路を追加挿入する第4工程と、前記クロックスキュー設定回路を追加して、二次配置配線を実施する第5工程と、を有することを特徴とする。
【0007】
本発明によれば、第1〜第3工程の実施により、どの場所にさらにスキューを追加できるかを検証でき、特許文献1のように予めスキューを付けるべき場所を特定していないので、EMIノイズを低減するためのスキュー調整の自由度と確実性が向上する。また、第4,第5工程の実施により、一次自動配置配線の時よりもEMIノイズを時間軸上で分散でき、ENIノイズのピークを確実に低減できる。
【0008】
本発明では、前記第4工程では、前記複数のモジュールのうち、回路規模が大きい最上位2つのモジュール間で、最大のスキュー差が生じるように、前記最上位2つのモジュールの少なくとも一方に前記クロックスキュー設定回路を挿入することができる。
【0009】
EMIノイズの原因となる消費電流量は回路規模に依存するので、回路規模が大きい最上位2つのモジュール間で最大のスキュー差を生じさせれば、EMIノイズの二大ピークは時間軸上で分散され、二大ピークが相互に重なり合わず、EMIノイズのピークを低減できる。
【0010】
さらに本発明では、前記第4工程では、前記複数のモジュールのうち、三番目に回路規模が大きいモジュールが、前記最上位2つのモジュールのそれぞれに対して、最大のスキュー差が生じるように、前記三番目に回路規模が大きいモジュールに前記クロックスキュー設定回路を挿入することができる。
【0011】
こうすると、三番目に大きなEMIノイズピークは、二大ピークとも時間軸上で分散されるので、EMIノイズのピークを低減できる。
【0012】
本発明では、前記クロックスキュー設定回路は、ロジック信号によりスキュー量が可変であり、前記第4工程は、前記モジュール毎に前記クロックスキュー設定回路のスキュー量を設定する工程を含むことができる。
【0013】
こうすると、スキュー調整はクロックスキュー設定回路の挿入場所だけでなく、モジュール毎にスキューも可変となるので、EMIノイズピークを低減させるためのより細かな調整が可能となる。
【0014】
本発明では、前記複数のモジュールの少なくとも一つに前記クロックスキュー設定回路を挿入する位置は、他のモジュールにスキューの変動を与えない位置であって、かつ、前記複数のモジュールの少なくとも一つに属する最上流のバッファのさらに上流側の位置とすることができる。
【0015】
こうすると、クロックスキュー設定回路の挿入により、他のモジュールでのスキューマージンに変動を与えないばかりか、クロックスキュー設定回路が挿入されるモジュールの回路規模を最大限に活用でき、EMIノイズピークの低減により寄与できる。
【0016】
本発明では、前記第5工程後に、前記クロックスキュー設定回路が追加されたクロックツリーに従って、クロックソースから各末端経路までのクロックの到達時間差であるスキューを解析し、解析されたスキューがセットアップ/ホールドタイムに対してマージンを有するか否かを検証する第6工程をさらに有することができる。
【0017】
こうして、クロックスキュー設定回路を追加挿入後に、同期回路として必要なセットアップ/ホールドタイムの要件を満足しているか否かを再確認できる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0019】
図1は、本発明方法の実施形態を示すフローチャートである。以下、フローチャートに従って、ASIC(特定用途向けIC)であるLSIの設計方法を説明する。
【0020】
(1)第1次配置配線(1STP&R)
先ず、ネットリストを含む所与の条件を入力して、自動配置配線ツールを用いてLSIの配置配線を実施する(図1のステップ1)。この際、クロックツリージェネレータ(CTGen)を用いてクロックツリー・シンセシス(synthesis:統合)を実施し、さらにネットリストの最適化を実施する。
【0021】
(2)次に、クロックツリーのスキュー解析を実施する(図1のステップ2)。図2は、配置配線されたクロックツリーを模式的に示す。図2に示すように、クロックツリーは分岐されており、分岐の前後にはバッファ(三角形で示す)が挿入されている。クロックツリーの各末端部の四角形は最終段のフリップフロップを示す。フリップフロップ間を接続する線はデータ線である。
【0022】
スキュー解析は、スタティックタイミングアナライザ(STA)と称されるツールを用いて行なわれる。これにより、クロックが、複数の信号線の経路を通ることによって発生する到達時間の差(スキュー)が解析される。
【0023】
ここで、クロック信号に先だって、データ信号を確定、保持しておかなければならない最小限の時間を「セットアップタイム」といい、逆に、タイミング信号を与えた後もデータ信号を保持しておかなければならない時間を「(入力)ホールドタイム」という。同期回路では、ICの全回路にて「セットアップタイム」及び「ホールドタイム」を満たさなければならない。そうでないと、IC内部でデータ信号を正しく処理できないからである。図1のステップ2では、クロックソースから末端までのスキューを解析することで、セットアップ/ホールドタイムを満たしているかと、それに対するマージンがどれだけあるかが解析される。
【0024】
(3)モジュール分割の検討(図1のステップ3)
単位時間あたりのIC内部の消費電流の変化が最大となる時に、EMIノイズはピークに達する。このEMIノイズのピークを低減する方法としては、消費電流が過渡的に変化するタイミングが、LSI中にてモジュール分割した各モジュールにて同時期に集中することを緩和して、EMIノイズのピークを下げることが考えられる。このためのモジュール分割が図1のステップ3である。
【0025】
例えば、図2において、破線で囲んだモジュールI,II,III,IVに属するフリップフロップF.F.までのスキューが、セットアップ/ホールドタイムに対してマージンが大きいことが分かった。破線で囲んでいない他のモジュールは、セットアップ/ホールドタイムを満たしているが、マージンが大きくなかったとする。
【0026】
この場合、破線で囲んだモジュールI,II,III,IVが分割モジュールの候補として決定される。
【0027】
(4)クロックスキュー設定回路の挿入(図1のステップ4)
図3は、配置配線後に、分割モジュール候補のモジュールI,II,III,IVの直前に挿入されるクロックスキュー設定回路10を示している。このクロックスキュー設定回路10は、例えば第1,第2のバッファ12,14と、3つのセレクタ20,22,24とを有する。第1,第2のバッファ12,14と、3つのセレクタ20,22,24とは、それぞれクロック信号CLKを遅延させる。
【0028】
図3中のクロック信号A〜Dのうち、クロック信号A〜CはクロックCLKが第1バッファ12にて遅延されたものであるが、クロック信号Aはセレクタ24のみを通過して出力され、クロック信号Bはセレクタ22,24を通過して出力され、クロック信号Cはセレクタ20,22,24を通過して出力される。クロック信号Cと同じく3つのセレクタ20,22,24を通過して出力されるクロック信号Dは、第1バッファ12に加えて第2バッファ14でも遅延されている。従って、最終段のセレクタ24より出力されるクロック信号A〜Dの遅延量の大きさは、A<B<C<Dとなり、クロック信号Dの遅延量が最も大きく、クロック信号Aの遅延量が最も小さくなる。
【0029】
3つのセレクタ20,22,24を切り換える制御信号S1,S2,S3は、2つのロジック信号M1,M2の論理に基づき、それらが入力される3つのロジック回路30,32,34より出力される。
【0030】
図4は、図3に示すクロックスキュー設定回路10の真理値表であり、2つのロジック信号M1,M2の論理が固定されると、出力Xがクロック信号A〜Dのいずれか一つに固定される。
【0031】
次に、このクロックスキュー設定回路10が挿入されるべき位置と、クロックスキュー設定回路10にて選択されるクロック信号の遅延量について説明する。
【0032】
先ず、クロックスキュー設定回路10が挿入可能な位置は、各モジュールI,II,III,IVに対応して、図2に示す各位置a〜dとなる。この各位置a〜dは、次の2つの要件を満足している。一つは、各モジュールI,II,III,IVにのみ個別的にスキューを補正できる位置であることである。もし、クロックスキュー設定回路10が挿入されることにより、スキューマージンが小さいモジュールにまで影響及ぶと、スキュー解析をやり直さなければならないからである。他の一つは、モジュール内の最上流に位置するバッファのさらに上流位置である。こうして、クロックソースに最も近い位置にクロックスキュー設定回路10が挿入されることで、スキューを調整できる回路規模を最大とすることができ、EMIノイズのピークを低減させるのに効果的だからである。
【0033】
次に、クロックスキュー設定回路10にて選択されるクロック信号の遅延量について説明する。ここで検討するべきことは、予め解析された各モジュールのスキューマージンの大きさと、各モジュールが占める回路規模の大きさである。上述した通り、図3のクロックスキュー設定回路10は4種類のスキュー量(クロック信号A〜D)を選択できるが、選択されるスキューの大きさが各モジュールにてスキューマージンの範囲内でなれければならない。そうでないと、クロックスキュー設定回路10の追加によって、あるモジュールではセットアップ/ホールドタイムを満足できなくなってしまうからである。なお、各モジュールにて選択されるスキュー量の大きさ(クロック信号A〜D)は、必ずしも異ならせる必要はない。
【0034】
重要なことは、各モジュールが持っているスキューに追加してクロックスキュー設定回路10によるスキューを追加した時に、結果として各モジュールにて消費電流が過渡的に変化するタイミングを分散して、EMIノイズのピークを低減することである。
【0035】
ここで、EMIノイズは同時期に流れる消費電流の大きさに依存するため、各モジュールのセル数を把握しておくことも重要である。
【0036】
図2の例では、次のような回路規模であったとする。なお、セル数とは、基本セルによって構成される機能セルの数である。モジュールIのセル数2,582個で基本セル数は20,597個、モジュールIIのセル数は6,103個で基本セル数は61,596個、モジュールIIIのセル数は10,585個で基本セル数は92,732個、モジュールIVのセル数は1,138個で基本セル数は9,485個であった。よって、回路規模からすると、モジュールIV<モジュールI<モジュールII<モジュールIIIとなり、最大規模はモジュールIIIで最小規模はモジュールIVである。
【0037】
スキュー量の設定として、例えば最大規模のモジュールIIIにマージンの範囲内で最大スキュー量を設定した時、次に規模が大きいモジュールIIに最小スキュー量を設定するように、クロックスキュー設定回路10により調整するとよい。この場合、モジュールIIにクロックスキュー設定回路10を挿入しないという選択肢もある。このように回路規模の大きいモジュール間でスキュー量の相違を最大とすることで、各モジュールにて生成されるEMIノイズのピークは時間軸で明確に分離され、相互に重なり合うことがない。これにより、EMIノイズのピークを低減できる。
【0038】
以降は、モジュールIのモジュールII,IIIのそれぞれに対するスキュー量の相違が最大になるように、最後にモジュールIVのモジュールI,IIのそれぞれに対するスキュー量の相違が最大となるように、それぞれクロックスキュー設定回路10の挿入の有無とクロックスキュー設定回路10でのスキュー量の選択を実行する。
【0039】
図5は、追加バッファとしてクロックスキュー設定回路10を挿入した状態を示している。図5では、ルートバッファ40から最終段のフリップフロップF.F.までに許容されるスキュー量が300〜500psecという条件下で、サブルートバッファ42を有するモジュールにはクロックスキュー設定回路10を挿入せず、サブルートバッファ44を有するモジュールには、サブルートバッファ44の上流側に追加バッファとしてクロックスキュー設定回路10を挿入した。
【0040】
(5)二次配置配線(2ndP&R:図1のステップ5)
上述したクロックスキュー設定回路20の挿入と配線を二次配置配線により実施する。
なお、既に一次配置配線は終了しているので、この二次配置配線は、一次配置配線での開きスペースを利用して手作業にて実施される。
【0041】
(6)クロックツリーのスキュー再解析(図1での二度目のステップ2)
二次配置配線後に、上述したステップ2と同様にして、スタティックタイミングアナライザ(STA)と称されるツールを用いて、二度目のスキュー解析を実施する。これにより、クロックソースから末端までのスキューを解析して、各クロックツリーにてセットアップ/ホールドタイムを満たしていることを確認する。確認できれば終了し(図2のステップ6)、不具合があればステップ3〜5及びステップ2を再度実施する。
【0042】
(7)本実施形態の効果
上述したような設計方法によれば、図6に示すようにモジュール毎にフリップフロップF.F.でのデータ切換えタイミングがずれ、しかも回路規模に応じてピークの大きなEMIノイズは時間軸で分散されるので、大きなEMIノイズピーク同士が重なり合うことなく、IC全体としてのEMIノイズのピークを小さくできる。
【0043】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【図面の簡単な説明】
【0044】
【図1】本発明の実施形態に係る同期回路の設計方法のフローチャートである。
【図2】一次配置配線により得られたクロックツリーの模式図である。
【図3】クロックスキュー設定回路の一例を示す回路図である。
【図4】図3の回路の真理値表を示す特性図である。
【図5】クロックスキュー設定回路の挿入例を示す図である。
【図6】実施形態の設計方法によって時間軸上で分散された各モジュールのEMIノイズを示す特性図である。
【符号の説明】
【0045】
10 クロックスキュー設定回路、12,14 第1,第2バッファ、20,22,24 セレクタ、30,32,34 ゲート回路、40 ルートバッファ、42,44 サブルートバッファ
【出願人】 【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
【出願日】 平成18年7月10日(2006.7.10)
【代理人】 【識別番号】100090479
【弁理士】
【氏名又は名称】井上 一

【識別番号】100104710
【弁理士】
【氏名又は名称】竹腰 昇

【識別番号】100124626
【弁理士】
【氏名又は名称】榎並 智和

【識別番号】100124682
【弁理士】
【氏名又は名称】黒田 泰


【公開番号】 特開2008−17389(P2008−17389A)
【公開日】 平成20年1月24日(2008.1.24)
【出願番号】 特願2006−188988(P2006−188988)