JP6318777B2 - 設計方法、設計装置およびプログラム - Google Patents

設計方法、設計装置およびプログラム Download PDF

Info

Publication number
JP6318777B2
JP6318777B2 JP2014072422A JP2014072422A JP6318777B2 JP 6318777 B2 JP6318777 B2 JP 6318777B2 JP 2014072422 A JP2014072422 A JP 2014072422A JP 2014072422 A JP2014072422 A JP 2014072422A JP 6318777 B2 JP6318777 B2 JP 6318777B2
Authority
JP
Japan
Prior art keywords
skew
circuit units
value
frequency
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014072422A
Other languages
English (en)
Other versions
JP2015194904A (ja
Inventor
浦瑠那 山本
浦瑠那 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Socionext Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Socionext Inc filed Critical Socionext Inc
Priority to JP2014072422A priority Critical patent/JP6318777B2/ja
Priority to US14/629,910 priority patent/US9659119B2/en
Publication of JP2015194904A publication Critical patent/JP2015194904A/ja
Application granted granted Critical
Publication of JP6318777B2 publication Critical patent/JP6318777B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/10Noise analysis or noise optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本技術は、設計方法、設計装置およびプログラムに関する。
トランジスタの微細化プロセスの進展に伴い、近年の半導体集積回路は、動作周波数の高速化、大規模化が進んでおり、電源・GNDを流れる電流も大きく急峻になっている。このような状況において、この電流によって発生するノイズ(同時スイッチングノイズや輻射ノイズなど)の影響も著しく、効果的なノイズ低減化の対策が求められている。
ノイズ低減化対策としては、半導体集積回路内の各回路部におけるクロックスキューを分散させるようにクロックツリーの設計を行う方法(スキュー分散方法)がある。
スキュー分散方法は、回路部毎に供給するクロック信号にスキューを発生させて、回路部への到達時間を意図的にずらし、回路部間の動作を時間的に分散させることで、電流ピークを抑えてノイズの低減を図るものである。
従来、セルの配置配線情報から遅延情報を抽出し、遅延情報にもとづき算出したスキュー値の許容範囲内でスキューを拡大する手法が提案されている。この手法では、各回路ブロックに流れる電流を時間軸上で合成した合成電流のピークを低減するためのスキュー値を求めてノイズを抑制している。
特開2000−267752号公報 国際公開第00/65651号
しかし、ノイズは複数の周波数を含むため、スキュー値の設定によっては、ある周波数のノイズは低減できるが他の周波数では逆に増加させてしまう可能性があり、ノイズ抑制のためのクロックスキューの調整は難しかった。
発明の一観点によれば、設計装置が、クロックスキューの調整を行うときに、クロック信号に同期して動作する複数の回路部の電源電流をそれぞれ周波数成分で分解し、前記複数の回路部に到達する前記クロック信号のスキュー値を設定し、周波数成分での分解によって得られる各周波数成分の前記複数の回路部の前記電源電流を、前記複数の回路部間で周波数成分毎に合成することにより、合成振幅を算出する処理を、前記スキュー値を変更することで繰り返し、前記合成振幅のスキュー依存性を求める、設計方法が提供される。
開示の設計方法、設計装置およびプログラムによれば、クロックスキューの調整が容易になる。
第1の実施の形態の設計方法および設計装置の一例を示す図である。 第2の実施の形態の設計装置の一例を示す図である。 設計対象のクロックツリーの一例を示す図である。 第2の実施の形態の設計方法の一例の流れを示すフローチャートである。 第2の実施の形態の設計方法の一例の流れを示すフローチャートである。 三角波電流波形の例を示す図である。 正弦波関数テーブルの一例を示す図である。 クロックスキュー設定テーブルの一例を示す図である。 着目周波数設定テーブルの一例を示す図である。 クロックスキュースイープテーブルの一例を示す図である。 正弦波合成処理時の着目周波数およびクロックスキュー候補値の可変設定の一例の流れを示すフローチャートである。 合成正弦波の一例を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。
(第1の実施の形態)
図1は、第1の実施の形態の設計方法および設計装置の一例を示す図である。
設計装置1は、プロセッサ2と記憶部3を有している。
プロセッサ2は、記憶部3に記憶されているデータおよびプログラムに基づき、以下のような処理を実行する。
なお、以下に示す処理は、例えば、半導体集積回路の設計工程のうち、クロックツリーの設計の際に行われる。図1にはクロック信号に同期して動作する回路部10,11にクロック信号を供給するクロックツリーの一例が示されている。回路部10,11には電源電圧VDDが供給されている。クロック信号は、クロック生成部12によって生成され、クロックバッファ13を介して回路部10に供給され、クロックバッファ14,15を介して回路部11に供給される。クロックバッファ13,15でクロック信号に生じる遅延時間が等しい場合、クロックバッファ14による遅延時間により、回路部10,11に到達するクロック信号にΔt分の時間差(スキュー)が生じる。スキューを意図的に発生させることで、回路部10,11が同じタイミングで動作しないようになり、電源ノイズの発生が抑制される。
ただ、前述のように、ノイズは複数の周波数を含むため、スキュー値の設定によっては、ある周波数のノイズは低減できるが他の周波数では逆に増加させてしまう可能性がありスキュー値の調整は難しい。そのため、本実施の形態の設計方法では、クロックスキューの調整を行うときに、以下の処理を行うことによって、調整を容易にする。
まず、プロセッサ2は回路部10,11の電源電流Ia,Ibをそれぞれ周波数成分で分解する(ステップS1)。図1には、電源電流Ia,Ibが、周波数f1,f2,f3を含む周波数成分に分解された例が示されている。周波数分解の例については後述する。
また、プロセッサ2は、回路部10,11に到達するクロック信号のスキュー値(Δt)を設定する(ステップS2)。そして、プロセッサ2は、各周波数での回路部10,11の電源電流Ia,Ibの振幅を合成する処理(ステップS3)を、スキュー値を変更することで繰り返し、合成した振幅のスキュー依存性を求める。なお、スキュー値の設定は、ステップS1の処理の前に行ってもよい。
図1には、電源電流Ia,Ibを各周波数で合成したときの合成振幅の例と、抑制したい(抑制対象の)周波数f1,f2,f3の電源電流の合成振幅のスキュー依存性の例が示されている。合成振幅はノイズ(電源ノイズ)の元となる電源電流の大きさを表している。合成振幅のスキュー依存性を求めることで、各周波数のノイズを効果的に抑制できるスキュー値がわかり、スキュー値の調整が容易になる。
例えば、図1の例のように、ある閾値THよりも周波数f1,f2,f3のノイズを抑えたいときには、スキュー値をΔt1〜Δt2の間に設定すればよいことが分かる。
プロセッサ21は、例えば、そのスキュー値の範囲の遅延時間をもつクロックバッファ14を使用してクロックツリーの設計を行う。スキュー値の調整および決定が容易になることで、設計時間の短縮も期待できる。
(第2の実施の形態)
以下、第2の実施の形態の設計方法および設計装置の一例を示す。
図2は、第2の実施の形態の設計装置の一例を示す図である。
設計装置は、例えば、コンピュータ20であり、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM22は、コンピュータ20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27およびネットワークインタフェース28がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD23は、コンピュータ20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令にしたがって、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース27は、コンピュータ20に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した設計装置1も、図2に示したコンピュータ20と同様のハードウェアにより実現することができる。
コンピュータ20は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。またコンピュータ20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
(設計方法(スキュー値の設定処理)の一例)
図3は、設計対象のクロックツリーの一例を示す図である。
図3には回路部b1〜bnにクロック信号を供給するクロックツリーの一例が示されている。回路部b1〜bnは、クロック信号に同期して動作するフリップフロップ回路などを含んでいる。PLL(Phase Locked Loop)30から出力されるクロック信号は、クロックバッファcb1〜cbnを介して回路部b1〜bnに供給される。なお、クロックバッファcb1〜cbnによる遅延時間差は抑えて、回路部b1〜bnに到達するクロック信号には、スキューが発生しないように設計されているものとする。
このようなクロックツリーに対して、更にクロックバッファ(遅延素子)を追加することで、回路部b1〜bnに含まれる回路部間でのクロックスキューを拡大させる処理が行われる。このとき追加されるクロックバッファの特性(サイズなど)は、以下の処理で算出されるスキュー値に基づき決定される。
なお、図示を省略しているが、回路部b1〜bnには電源電圧VDDが供給されている。
図4、図5は、第2の実施の形態の設計方法の一例の流れを示すフローチャートである。
なお、以下では、図3に示した回路部b1〜bnそれぞれに到達するクロック信号のいずれかの遅延時間を増加させることで、クロックスキューを拡大するものとする。なお、各回路部b1〜bnに供給されるクロック信号の周波数、位相および振幅などは、回路部b1〜bnの規模や動作に応じて、任意に設定されるものである。また、以下では、図2に示したコンピュータ20(設計装置)を用いて処理が実行されるものとして説明する。
まず、プロセッサ21は、回路部b1〜bnへクロック信号が供給された際に、回路部b1〜bnに流れる電源電流(消費電流)を近似した三角波電流(三角波電流A1〜Anとする)を推定して生成する(ステップS10)。
プロセッサ21は、三角波電流A1〜Anの波形を回路部b1〜bn毎に、例えば、RAM22またはHDD23に記憶する(ステップS11)。
プロセッサ21は、RAM22またはHDD23に記憶された三角波電流A1〜Anを読み出して、それぞれ周波数成分に分解する(ステップS12)。この場合、1つの三角波電流を周波数分解するならば、基本周波数と、その基本周波数の整数倍の周波数である複数の高調波とに分解できる。なお、基本周波数とは、ここではクロック信号の周波数に相当する。
プロセッサ21は、三角波電流A1〜Anそれぞれに含まれている周波数を、m次まで回路部b1〜bn毎にデータベース化して、例えば、RAM22またはHDD23に記憶する(ステップS13)。
例えば、回路部b1の三角波電流A1の高調波周波数として、以下の正弦波を、回路部b1の三角波電流A1における周波数成分として登録する。
正弦波b1(f1)=Ab1(f1)cos(ω1(t+t0))、正弦波b1(f2)=Ab1(f2)cos(ω2(t+t0))、・・・、正弦波b1(fm)=Ab1(fm)cos(ωm(t+t0))である。ここで、Ab1(fk)は回路部b1における三角波電流A1に含まれている周波数fkの振幅、ωは角周波数、t0は初期位相時間である。
なお、周波数成分の表現方法の1つとして、上記の例では正弦波で表現した場合を示したが、振幅および位相情報を含んでいれば、その他の表現方法であってもよい。
次にプロセッサ21は、三角波電流に含まれている複数の周波数の中で、特定の周波数のノイズ電流の抑制を図るために、その特定の周波数を着目周波数として選定する(ステップS14)。
例えば、三角波電流に含まれている周波数の中でも特に3次高調波によって発生するノイズ電流を抑制したいのであれば、3次高調波の周波数を着目周波数と選定することになる。なお、着目周波数は、1つとは限らず、複数の特定の周波数に対するノイズ電流の抑制を図る場合は、複数個選定することになる。
プロセッサ21は、着目周波数を、例えば、RAM22またはHDD23に記憶する(ステップS15)。
プロセッサ21は、回路部b1〜bnの中から到達するクロック信号の遅延時間を増加させる回路部(以下、クロックスキュー適用回路とも呼ぶ)を選定する(ステップS16)。
プロセッサ21は、クロックスキュー適用回路に対して、どれだけのクロックスキューを与えるかのクロックスキュー候補値を生成し(ステップS17)、クロックスキュー候補値を、例えば、RAM22またはHDD23に記憶する(ステップS18)。
その後、プロセッサ21は、クロック信号に適用するスキュー値の候補値(以下クロックスキュー候補値と呼ぶ)でクロックスキュー適用回路毎に複数の着目周波数の正弦波の位相を変え、着目周波数毎に電源電流の正弦波を複数の回路部間で合成する。この作業をクロックスキュー候補値のバリエーション分繰り返す。(ステップS19)。
例えば、回路部b1〜bnのうち、回路部b1に到達するクロック信号を基準にしたときの、回路部b2〜bnに到達するクロック信号に適用するクロックスキュー候補値をtsb2〜tsbnとする。また、着目周波数を周波数f1とする。
この場合、回路部b1の着目周波数f1の正弦波b1(f1)は、振幅をAb1(f1)、初期位相時間をt0b1とすれば、正弦波b1(f1)は以下の式(1)となる。
正弦波b1(f1)=Ab1(f1)cos(ω1(t+t0b1))・・・(1)
また、回路部b2の着目周波数f1の正弦波b2(f1)は、クロックスキュー候補値=tsb2の分位相がずれるので、振幅をAb2(f1)、初期位相時間をt0b2とすれば、正弦波b2(f1)は以下の式(2)となる。
正弦波b2(f1)=Ab2(f1)cos(ω1(t+t0b2+tsb2))
・・・(2)
同様に、回路部bnの着目周波数f1の正弦波bn(f1)は、クロックスキュー候補値=tsbnの分位相がずれるので、振幅をAbn(f1)、初期位相時間をt0bnとすれば、正弦波bn(f1)は以下の式(3)となる。
正弦波bn(f3)=Abn(f1)cos(ω1(t+t0bn+tsbn))
・・・(3)
したがって、これら正弦波の合成波(合成正弦波)I(f1)は、以下の式(4)となる。
I(f1)=Ab1(f1)cos(ω1(t+t0b1))
+Ab2(f1)cos(ω1(t+t0b2+tsb2))
+・・・
+Abn(f1)cos(ω1(t+t0bn+tsbn))・・・(4)
なお、実際には、クロックスキュー候補値tsb2〜tsbnを調整しながら(例えば、低い値から高い値へ徐々に増加させながら)、着目周波数の正弦波の位相をずらし、位相をずらした複数の着目周波数の正弦波を合成することになる。
次にプロセッサ21は、着目周波数毎に求めた合成正弦波を、例えば、RAM22またはHDD23に記憶する(ステップS20)。
なお、着目周波数f1のクロックスキュー候補値がp個あるとすれば、図5中の合成正弦波I(f1)-1は、1個目のクロックスキュー候補値が割り当てられた着目周波数f1における合成正弦波であることを示している。また、合成正弦波I(f1)-pは、p個目のクロックスキュー候補値が割り当てられた着目周波数f1における合成正弦波であることを示している。
そして、プロセッサ21は、合成正弦波の振幅(合成振幅)の値が所定値を下回っているか否かを判別する(ステップS21)。合成正弦波の振幅(合成振幅)の値が所定値を下回っていればステップS22の処理が行われ、所定値を超えている場合はステップS17からの処理が繰り返される。
ステップS22の処理では、プロセッサ21は、ステップS17の処理で生成したクロックスキュー候補値をスキュー値として決定する。なお、クロックスキュー候補値が複数出現した場合は、プロセッサ21は、後述する規定にもとづいてその中からスキュー値を選択することになる。
次に上記のステップS10の処理で生成される三角波電流の一例を説明する。
(三角波電流の生成例)
図6は三角波電流波形の例を示す図である。
回路部b1〜b4に流れる三角波電流波形W11〜W14が示されている。横軸は時間(sec)、縦軸は電流(mA)である。図6に示すように、三角波電流波形W11〜W14は、回路部b1〜b4の回路規模に応じて、周波数や電流量がそれぞれ異なる。
三角波電流波形は、各回路部の平均消費電流、動作周波数に基づき生成することができる。
次にステップS12の周波数分解処理の一例について説明する。
(周波数分解処理例)
三角波電流波形の周波数分解には、例えば、以下の式(5)に示すようなフーリエ級数式を使用することができる。式(5)において、Aは振幅、Tは周期、τは波形幅(パルス幅)、xは次数(高調波の次数)、ω0は初期角周波数である。
Figure 0006318777
また、式(5)の第1項のAτ/2Tの項は、DC(Direct Current)成分であり、第2項は周波数成分である。本実施の形態では、周波数スペクトラムを評価指標とするため、式(5)の中の右辺第2項の周波数成分が使用される。
なお、式(5)第2項の(Aτ/T)・{(sin(xπτ/2T))/(xπτ/2T))}2は、x次高調波の振幅(定数)である。
図7は正弦波関数テーブルの一例を示す図である。
正弦波関数テーブルT1は、各回路部の高調波周波数の正弦波関数を示すテーブルであり、例えば、RAM22またはHDD23で記憶される。なお、図中のAbk(fb)(k=1〜n)は、回路部bkの周波数fbの三角波電流振幅、t0bkは、回路部bkの初期位相時間である。
次にステップS14の着目周波数の選定処理について説明する。
(着目周波数の選定処理例)
三角波電流に含まれている複数の周波数のうち、どの高調波周波数を着目周波数として選定するかは、以下のような指標にもとづいて決定される。
(1)プロセッサ21は、各回路部の動作周波数の整数倍高調波が重なる周波数を着目周波数として設定する。例えば、図7で示した周波数fjは、回路部b1,b2,b3,bnのすべてにおいて重なる周波数である場合、周波数fjの電流ピークは大きいとみなせるので、プロセッサ21は、周波数fjを着目周波数として設定する。
このように、プロセッサ21は、回路部毎の三角波電流を周波数分解して得られた複数の周波数の中から、複数の回路部に渡って(少なくとも2つ以上の回路部に渡って)、同一時間帯で複数重なる周波数を着目周波数に設定する。例えば、図1に示したような周波数f1,f2,f3は、回路部10,11間で重なっているため、これらは着目周波数に設定される。これにより、ノイズ電流が大きいとみなせる特定の周波数に対して、ノイズ低減化を図ることが可能になる。
(2)最終の製品または半導体素子では、EMI(Electro Magnetic Interference:電磁妨害波)規格として考慮すべき周波数帯域が定められている。このため、プロセッサ21は、EMI規格で要求される周波数帯域の範囲に含まれる、各回路部の動作周波数および高調波周波数を着目周波数として設定する。
次にステップS16の、クロックスキュー適用回路の選定処理の一例を説明する。
(クロックスキュー適用回路の選定例)
クロックスキュー適用回路を選定する場合、プロセッサ21は、例えば、消費電流またはタイミング制約にもとづいて選定する。
消費電流にもとづいて選定する場合、プロセッサ21は、回路部b1〜bnのうち、三角波電流ピークの大きい上位k(=1、2、・・・)個の回路部をクロックスキュー適用回路と選定する。
また、タイミング制約にもとづいて選定する場合は、プロセッサ21は、回路部b1〜bnに対してクロック信号c1〜cnが与えられた際に、セットアップ/ホールドタイミングの制約が緩い上位k個の回路部をクロックスキュー適用回路と選定する。
回路部に与えるクロックスキューは、その回路部のセットアップ/ホールドタイミングを満たす範囲内で設定することが可能であるから、セットアップ/ホールドタイミングの制約が緩い回路部には、クロックスキューの許容値も大きくすることができる。
なお、クロックスキュー適用回路の個数kを多くするほど、許容されるタイミング制約内で、クロックスキュー分散効果を細かく評価できるため、状況に応じてkの値は増減すればよい。
このように、プロセッサ21は、複数の回路部の中で消費電流(電源電流)のピークが他の回路部よりも大きいもの、または複数の回路部の中でセットアップおよびホールドのタイミング制約が他の回路部よりも緩いものを優先的にクロックスキュー適用回路とする。これにより、クロックスキューを与えるべき回路部を適切に選択することが可能になる。
次にステップS17のクロックスキュー候補値の生成処理の一例を説明する。
(クロックスキュー候補値の生成処理例)
スキュー値は、回路部に対するタイミング制約で規定された値(タイミング制約値)を最大値とするので、プロセッサ21は、その最大値を分割した値(例えば、等分割した値)をスイープ(sweep)して、複数のクロックスキュー候補値を生成する。
図8はクロックスキュー設定テーブルの一例を示す図である。
クロックスキュー設定テーブルT2は、クロックスキュー候補値を生成する際に利用されるテーブルであり、例えば、RAM22またはHDD23で記憶される。
クロックスキュー設定テーブルT2は、クロックスキュー適用/非適用、クロックスキュー最大値およびクロックスキュースイープステップの項目を有している。なお、クロックスキュー適用回路毎に、セットアップ/ホールドタイミングの制約は異なるので、クロックスキュー適用回路に与えるクロックスキューの最大値も異なっている。
ここで、回路部b1は、クロックスキュー適用回路であり、クロックスキューの最大値が500ps、スイープステップが50psとなっている。したがって、回路部b1へ与えるクロックスキュー候補値は、50ps、100ps、150ps、・・・、450ps、500psとなる。
なお、回路部b3は、電源電流のピークが他の回路部b1,b2,bnよりも小さい、またはタイミング制約が他の回路部b1,b2,bnよりも厳しいため、クロックスキュー非適用となっている。
このように、プロセッサ21は、回路部のセットアップおよびホールドのタイミング制約値を最大値とし、最大値を所定数に分割したステップ値を整数倍してスキュー候補値を生成する。これにより、回路部のタイミング制約の範囲内で適切な複数のクロックスキュー候補値を生成することが可能になる。
次にステップS19の正弦波合成処理の一例について、図8に示した正弦波関数テーブルT1の例を用いて説明する。
(正弦波合成処理例)
正弦波関数テーブルT1において、プロセッサ21が、ノイズ電流の抑制対象の着目周波数として周波数f2,f3,fjを設定したとする。
また、プロセッサ21は、正弦波関数テーブルT1中の回路部b1〜bnの中で、クロックスキュー適用回路を回路部b1,b2,bnと選定する。そして、プロセッサ21は、回路部b1,b2,bnに対して、クロックスキュー候補値tsb1,tsb2,tsbnを可変させながら割り当てていくものとする。
この場合、着目周波数f2,f3,fjの各正弦波合成波I(f2),I(f3),I(fj)は、以下の式(6)〜(8)となる。
Figure 0006318777
Figure 0006318777
Figure 0006318777
図9は着目周波数設定テーブルの一例を示す図である。
着目周波数設定テーブルT3は、xを次数にして、着目周波数を可変的に設定するためのテーブルであり、例えば、RAM22またはHDD23で記憶される。
図9の例では、着目周波数設定テーブルT3は、30MHzを起点にして、30MHzの整数倍の30MHz、60MHz、・・・、fmaxまで順に、着目周波数を増加させるテーブル構成となっている。
図10はクロックスキュースイープテーブルの一例を示す図である。
クロックスキュースイープテーブルT4は、yをスイープステップ番号にして、クロックスキュー候補値を可変的に設定するためのテーブルであり、例えば、RAM22またはHDD23で記憶される。
図10の例では、クロックスキュースイープテーブルT4は、1ステップを50psとしたスイープステップであって、0ps、50ps、・・・、tsmaxまで順に、クロックスキュー候補値を増加させるテーブル構成となっている。
図11は正弦波合成処理時の着目周波数およびクロックスキュー候補値の可変設定の一例の流れを示すフローチャートである。
プロセッサ21は、次数xがMを超えるか否かを判別する(ステップS30)。次数xがMを超えなければステップS31の処理が行われ、Mを超えたら処理が終了される。
ステップS31の処理では、プロセッサ21は、着目周波数設定テーブルT3を利用して、着目周波数fxを設定する。
その後、プロセッサ21は、スイープステップ番号yがNを超えるか否かを判別する(ステップS32)。スイープステップ番号yがNを超えなければステップS33の処理が行われ、Nを超えたらステップS36の処理が行われる。
ステップS33の処理では、プロセッサ21は、クロックスキュースイープテーブルT4を利用して、クロックスキュー候補値を生成する。クロックスキュー候補値tsは、スイープステップをtステップとすれば、ts=t×yで算出される。
その後、プロセッサ21は、着目周波数fxにおけるクロックスキュー毎の正弦波の合成を行い(ステップS34)、スイープステップ番号yをインクリメントする(y=y+1)(ステップS35)。その後ステップS32からの処理が繰り返される。
ステップS36の処理では、プロセッサ21は、次数xをインクリメントする(x=x+1)。その後、ステップS30からの処理が繰り返される。
図12は合成正弦波の一例を示す図である。
横軸はスキュー値(ns)、縦軸は電流(合成正弦波の振幅)(mA)である。クロックスキュー候補値をスイープしながら正弦波を合成した際の、式(6)〜(8)における合成正弦波I(f2)、I(f3)、I(fj)の振幅変動が示されている。
I(f2)は着目周波数f2の合成正弦波、I(f3)は着目周波数f3の合成正弦波、I(fj)は着目周波数fjの合成正弦波である。
なお、単純化のため、回路部b1へ与えるクロックスキュー候補値tsb1は固定とする。さらに、回路部b2へ与えるクロックスキュー候補値tsb2と、回路部bnへ与えるクロックスキュー候補値tsbnとを等しい値でスイープしたものを想定している。なお、クロックスキュー候補値tsb1,tsb2,tsbnを個別に任意に設定する場合、図11のステップS33の手順を所定回数行えばよい。
このように、プロセッサ21は、着目周波数すべてについて合成正弦波を算出すると、合成正弦波電流の振幅値が、例えば、閾値th以下となるクロックスキュー候補値の中から、実際に設定すべきスキュー値を選択する。
例えば、図12において、領域r1,r2は、合成正弦波電流の振幅値が閾値th以下であり、さらにクロックスキューの許容範囲(criteria)内の領域を示すものとする。したがって、プロセッサ21は、領域r1,r2の中のクロックスキュー候補値を、実際に設定すべきスキュー値として選択することになる。ただし、領域r1,r2には、複数のクロックスキュー候補値が含まれている。
このような場合、プロセッサ21は、回路部のタイミング制約を考慮して、タイミング制約が厳しいようなクロックスキュー適用回路には、許容範囲内で小さなクロックスキュー候補値を選択する。図12の例では、領域r1内のクロックスキュー候補値の最小値は9nsであるから、プロセッサ21は、スキュー値=9nsを採用することになる。
また、電流強度を抑えることを優先する場合は、プロセッサ21は、許容範囲内で、振幅値が小さいクロックスキュー候補値を選択する。図12の例では、領域r2内で振幅値が小さいクロックスキュー候補値は16nsであるから、プロセッサ21は、スキュー値=16nsを採用することになる。
このように、プロセッサ21は、クロックスキューの設定許容範囲内に複数のクロックスキュー候補が存在する場合、設定許容範囲内で最も小さなクロックスキュー候補をスキュー値として採用する。これにより、回路部のタイミング制約にマージンを持たせることができ、回路部の安定動作を実現しながらノイズ低減化を図ることが可能になる。
または、プロセッサ21は、クロックスキューの設定許容範囲内に複数のクロックスキュー候補が存在する場合、設定許容範囲内で合成周波数の振幅が最も小さくなるクロックスキュー候補をスキュー値として採用する。これにより、ノイズ電流強度の制約を満たすことが可能になる。
このようにして採用された、スキュー値に基づき、クロックツリーにクロックバッファが追加され、クロックスキューの拡大が行われる。
以上説明したように、本実施の形態の設計方法及び設計装置によれば、合成振幅のスキュー依存性を求めることで、各周波数のノイズを抑制できるスキュー値がわかる。つまり、設定したスキュー値によってどの周波数ではノイズが抑制され、どの周波数では悪化してしまうかが明瞭に評価することも可能になる。そのためスキュー値の調整が容易になり、所望の周波数のノイズを抑制できる高精度なスキュー値の設定と、TAT(Turn Around Time)の短縮化が可能となる。
以上、実施の形態に基づき、本発明の設計方法、設計装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
1 設計装置
2 プロセッサ
3 記憶部
10,11 回路部
12 クロック生成部
13,14,15 クロックバッファ

Claims (6)

  1. 設計装置が、
    クロックスキューの調整を行うときに、
    クロック信号に同期して動作する複数の回路部の電源電流をそれぞれ周波数成分で分解し、
    前記複数の回路部に到達する前記クロック信号のスキュー値を設定し、
    周波数成分での分解によって得られる各周波数成分の前記複数の回路部の前記電源電流を、前記複数の回路部間で周波数成分毎に合成することにより、合成振幅を算出する処理を、前記スキュー値を変更することで繰り返し、前記合成振幅のスキュー依存性を求める、
    ことを特徴とする設計方法。
  2. 周波数成分での分解によって得られる複数の周波数成分の前記電源電流のうち、抑制対象の周波数成分の前記電源電流を、前記複数の回路部間で合成することにより算出された合成振幅が、第1の値よりも小さい値となるときのスキュー値を選択してクロックツリーの設計を行う、ことを特徴とする請求項1に記載の設計方法。
  3. 前記合成振幅が前記第1の値よりも小さい値となるときの前記スキュー値が複数あるとき、最も小さなスキュー値、または前記合成振幅が最も小さくなるスキュー値を選択することを特徴とする請求項2に記載の設計方法。
  4. 前記複数の回路部の中で前記電源電流のピークが他の回路部よりも大きい回路部、または前記複数の回路部の中でセットアップおよびホールドのタイミング制約が他の回路部よりも緩い回路部に対して供給する前記クロック信号に優先的に、前記スキュー値を適用することを特徴とする請求項1乃至3の何れか一項に記載の設計方法。
  5. プロセッサを有し、
    前記プロセッサは、
    クロックスキューの調整を行うときに、
    クロック信号に同期して動作する複数の回路部の電源電流をそれぞれ周波数成分で分解し、
    前記複数の回路部に到達する前記クロック信号のスキュー値を設定し、
    周波数成分での分解によって得られる各周波数成分の前記複数の回路部の前記電源電流を、前記複数の回路部間で周波数成分毎に合成することにより、合成振幅を算出する処理を、前記スキュー値を変更することで繰り返し、前記合成振幅のスキュー依存性を求める、
    処理を実行することを特徴とする設計装置。
  6. クロックスキューの調整を行うときに、
    クロック信号に同期して動作する複数の回路部の電源電流をそれぞれ周波数成分で分解し、
    前記複数の回路部に到達する前記クロック信号のスキュー値を設定し、
    周波数成分での分解によって得られる各周波数成分の前記複数の回路部の前記電源電流を、前記複数の回路部間で周波数成分毎に合成することにより、合成振幅を算出する処理を、前記スキュー値を変更することで繰り返し、前記合成振幅のスキュー依存性を求める、
    処理をコンピュータに実行させるプログラム。
JP2014072422A 2014-03-31 2014-03-31 設計方法、設計装置およびプログラム Active JP6318777B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014072422A JP6318777B2 (ja) 2014-03-31 2014-03-31 設計方法、設計装置およびプログラム
US14/629,910 US9659119B2 (en) 2014-03-31 2015-02-24 Method and design apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014072422A JP6318777B2 (ja) 2014-03-31 2014-03-31 設計方法、設計装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2015194904A JP2015194904A (ja) 2015-11-05
JP6318777B2 true JP6318777B2 (ja) 2018-05-09

Family

ID=54190745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014072422A Active JP6318777B2 (ja) 2014-03-31 2014-03-31 設計方法、設計装置およびプログラム

Country Status (2)

Country Link
US (1) US9659119B2 (ja)
JP (1) JP6318777B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3549428B2 (ja) * 1999-03-19 2004-08-04 松下電器産業株式会社 集積回路のためのクロック生成装置および生成方法
WO2000065651A1 (fr) 1999-04-27 2000-11-02 Hitachi, Ltd. Ci a semi-conducteur
US6647540B2 (en) * 2001-11-08 2003-11-11 Telefonaktiebolaget Lm Ericsson(Publ) Method for reducing EMI and IR-drop in digital synchronous circuits
JP2006024851A (ja) * 2004-07-09 2006-01-26 Toshiba Corp 半導体集積回路の設計方法及びその装置
JP2010170321A (ja) 2009-01-22 2010-08-05 Toshiba Corp 半導体集積回路の設計装置および設計方法
JP2011008524A (ja) * 2009-06-25 2011-01-13 Toshiba Corp 設計支援装置および設計支援方法
US9032356B2 (en) * 2013-03-06 2015-05-12 Lsi Corporation Programmable clock spreading

Also Published As

Publication number Publication date
JP2015194904A (ja) 2015-11-05
US9659119B2 (en) 2017-05-23
US20150278415A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP2020502949A (ja) クロック発生用の適応発振器
US20070035428A1 (en) Method and apparatus for minimizing the influence of a digital sub-circuit on at least partially digital circuits
JP2011022822A (ja) パワーインテグリティ解析装置、パワーインテグリティ解析方法及びプログラム
JP4946573B2 (ja) デカップリングセル配置方法及びデカップリングセル配置装置
US20140306687A1 (en) System and method for measuring an integrated circuit age
US10262089B2 (en) Logic simulation method, logic simulation apparatus and computer-readable storage medium storing logic simulation program
US7634371B2 (en) System and method for analyzing jitter of signals
JP6318777B2 (ja) 設計方法、設計装置およびプログラム
De Caro et al. A 3.3 GHz spread-spectrum clock generator supporting discontinuous frequency modulations in 28 nm CMOS
JP2011248843A (ja) クロックジッター解析方法、該クロックジッター解析方法を実行する装置、該クロックジッター解析方法をコンピュータに実行させるためのプログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体
Lu et al. Steiner tree based rotary clock routing with bounded skew and capacitive load balancing
Sidiropoulos et al. Jitpr: A framework for supporting fast application's implementation onto fpgas
KR101222625B1 (ko) 신호 샘플링 장치 및 방법
CN102468847B (zh) 方波的输出方法及装置
US8966432B1 (en) Reduction of jitter in an integrated circuit
JP6070002B2 (ja) 設計支援装置、設計支援方法及びプログラム
JP6089728B2 (ja) 半導体装置の設計方法、プログラム及び設計装置
JP2009081588A (ja) 半導体集積回路装置および半導体集積回路装置におけるクロック信号の遅延補正方法
JP6428207B2 (ja) 設計方法、設計装置及びプログラム
US7603639B2 (en) Method, apparatus and computer program product for controlling jitter or the effects of jitter in integrated circuitry
JP2000029923A (ja) 自動配置配線装置及び半導体集積回路
JP6645114B2 (ja) 設計支援プログラム、情報処理装置、および設計支援方法
JP2015230543A (ja) 設計装置、設計方法及び設計プログラム
US20150205898A1 (en) Design method and design apparatus
Van Toan et al. A GALS design based on multi-frequency clocking for digital switching noise reduction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6318777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150