以下に添付図面を参照して、本発明にかかる集積回路、および制御方法の実施の形態を詳細に説明する。
図1は、本実施の形態にかかる集積回路例を示す説明図である。本実施の形態にかかる集積回路100は、出力回路101と、デカップリングコンデンサ102と、判定部103と、制御部104と、を有する。出力回路101は、電源ラインとグランドラインとに接続され、集積回路100内のコア回路からFIFO(First In First Out)105を介して入力される信号を出力する。また、出力回路101に入力される信号の周波数に応じて電源ラインのグランドラインに対するインピーダンスが変化する。デカップリングコンデンサ102は、一端が電源ラインに接続され、他端がグランドラインに接続され、容量値が可変である。
判定部103は、出力回路101に入力される信号の周波数を判定する。例えば、判定部103は、複数の周波数帯のいずれの周波数であるかを判定してもよい。そして、制御部104は、デカップリングコンデンサ102の容量値を、判定部103が判定した周波数に基づき決定した容量値に設定する。例えば、制御部104は、周波数と容量値との対応情報110と、判定部103が判定した周波数と、に基づき決定した容量値に設定する。例えば、制御部104は、判定した周波数に基づいて、対応情報110から容量値を決定してもよい。
このように、信号の周波数に応じた電源インピーダンス特性に制御することができる。したがって、周波数が変動しても電源インピーダンスのピークを低くすることができ、電源ノイズ量を抑えることができる。
また、判定部103と制御部104とFIFO105とは、論理積回路であるAND、否定論理回路であるINVERTER、論理和回路であるORや、ラッチ回路であるFF(Flip Flop)などの素子によって形成されてもよい。また、各部は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によって実現されてもよい。具体的には、例えば、上述した各部の機能をハードウェア記述言語などによってネットリストに機能定義し、そのネットリストを論理合成してPLDに与えることにより、各部を実現してもよい。
また、後述するが、例えば、デカップリングコンデンサ102は、抵抗値が可変な抵抗と容量とを有し、抵抗の一端が電源ラインに接続され、抵抗の他端が容量の一端に接続され、容量の他端がグランドラインに接続されてもよい。例えば、抵抗値が変更されることにより、容量値が擬似的に可変になる。
図2は、電源インピーダンスを変更できない例を示す説明図である。電源インピーダンスを変更できない場合、出力回路から出力される信号の周波数に依存して電源インピーダンスZが周波数に応じたターゲットインピーダンス以下となるか否かが変化する。図2の例では、DIEには、集積回路が作り込まれ、出力回路からの信号線がPKG(パッケージ)に接続される。DIEとPKGとPCB(Printed Circuit Board,プリント基板)とは、電源VDEとグランドVSSとに接続される。DIEとPKGとの間、PKGとPCBとの間、PCBの電源ラインは、抵抗やインダクタンスL1,L2,L3の成分がある。DIEに作り込まれた集積回路には、電源ラインとグランドラインとの間にデカップリングコンデンサC1が設けられる。また、PCBには、デカップリングコンデンサC2やバルクコンデンサC3が設けられる。
1倍周期の場合、「OK」となっているように、電源インピーダンスは、1倍周期のターゲットインピーダンス以下であるため、電源ノイズ量によって誤動作が発生する可能性が低い。2倍周期の場合、「NG」となっているように、電源インピーダンスは、2倍周期のターゲットインピーダンスより大きいため、電源ノイズ量によって誤動作が発生する可能性が高い。3倍周期の場合、「OK」となっているように、電源インピーダンスは、3倍周期のターゲットインピーダンス以下であるため、電源ノイズ量によって誤動作が発生する可能性が低い。
また、デカップリングコンデンサC1の容量値によってインピーダンス特性が異なる。そのため、2倍周期において電源インピーダンスがターゲットインピーダンス以下となるように容量値が設定されても、1倍周期または3倍周期において電源インピーダンスが各周期のターゲットインピーダンス以下とならない場合がある。
本実施の形態では、出力回路に入力される信号の周波数に応じてデカップリングコンデンサの容量値を変更する。これにより、信号の周波数に応じた電源インピーダンス特性に制御することができる。したがって、電源インピーダンスのピークを低くすることができ、電源ノイズ量を抑えることができる。
図3は、集積回路の他の例を示す説明図である。DIEには、集積回路300が作り込まれ、I/O回路301からの信号線がパッケージに接続される。集積回路300は、複数のI/O回路301と、デカップリングコンデンサ302と、FIFO303と、判定部304と、動作本数検出部305と、制御部306と、を有する。I/O回路301の各々は、電源ラインvdlとグランドラインvslとに接続され、外部から入力される信号を内部に出力する入力機能と、内部のコアロジックから入力される信号を出力する出力機能とを有する回路である。以降、出力機能のみについて説明するため、入力された信号とは、内部のコアロジックから入力された信号を指す。I/O回路301に入力される信号の周波数に応じて電源ラインvdlのグランドラインvslに対するインピーダンスが変化する。
FIFO303は、I/O回路301ごとに、I/O回路301への信号の値を格納する。FIFO303は、I/O回路301ごとに、電源インピーダンスが切り替わる時に、格納した信号の値をI/O回路301へ出力する。図3の集積回路300例では、デカップリングコンデンサ302は、抵抗値が可変な抵抗と容量とを有し、抵抗の一端が電源ラインvdlに接続され、抵抗の他端が容量の一端に接続され、容量の他端がグランドラインvslに接続される。例えば、抵抗の抵抗値が変更されることにより、容量値が疑似的に変化することになる。
データベース310は、抵抗値の複数の候補値の各々について、デカップリングコンデンサ302の抵抗値を候補値にした場合の複数の周波数帯の各々に対応するインピーダンスに基づく値を記憶する記憶部である。データベース310は、例えば、ROM(Read Only Memory)によって実現される。データベース310の内容は、例えば、製造時に書き込まれる。本実施の形態では、抵抗値が可変であるため、抵抗値の複数の候補の各々についてインピーダンスに基づく値が記憶されているが、これに限らない。例えば、抵抗を有さないデカップリングコンデンサ302の場合、容量値の複数の候補値の各々について抵抗値を候補値にした場合の複数の周波数帯の各々に対応するインピーダンスに基づく値が記憶される。
判定部304は、I/O回路301の各々について、入力される信号の周波数を判定する。また、例えば、判定部304は、I/O回路301の各々について、複数の周波数帯のうち、入力される信号の周波数がいずれの周波数帯であるかを判定してもよい。
制御部306は、デカップリングコンデンサ302の容量値を、I/O回路301の各々について判定部304が判定した周波数に基づき決定した容量値に設定する。本実施の形態では、デカップリングコンデンサ302の抵抗値を可変にするため、制御部306は、デカップリングコンデンサ302の抵抗値をI/O回路301の各々について判定部304が判定した周波数に基づき決定した抵抗値に設定する。
また、制御部306は、複数の周波数帯の各々について判定部304が周波数帯であると判定した数と、複数の周波数帯の各々についてデータベース310に記憶されたインピーダンスに基づく値と、に基づいて、指標値を算出する。具体的には、動作本数検出部305は、複数の周波数帯の各々について判定部304が周波数帯であると判定した数を検出する。そして、制御部306は、動作本数検出部305が検出した数と、データベース310に記憶されたインピーダンスに基づく値と、に基づいて、指標値を算出する。つぎに、制御部306は、デカップリングコンデンサ302の抵抗値を複数の候補値のうち、複数の周波数の各々について算出した指標値に基づいていずれかの候補値に設定する。具体的には、制御部306は、デカップリングコンデンサ302の抵抗値を、複数の候補値のうち、指標値の合計値が閾値th以下である候補値に設定する。判定部304と動作本数検出部305と制御部306との詳細例は後述する。
図4は、集積回路のレイアウト例を示す説明図である。図4の例では、コアロジック402からの各信号線がFIFO303に接続される。FIFO303からの出力の信号線とI/O回路301への入力の信号線との間が短くなるように、FIFO303とI/O回路301とがレイアウトされる。また、図4の例では、デカップリングコンデンサ領域401は、I/O回路301の近くにレイアウトされる。デカップリングコンデンサ領域401については後述する。
図5は、重み付け情報の詳細例を示す説明図である。データベース310は、抵抗値ごとに、ノイズ量の指標値を算出するための周波数に対応する重み付け係数を記憶する。データベース310は、抵抗値、重み付け係数のフィールドを有する。各フィールドに情報が設定されることにより重み付け情報501として設定される。上述したように、データベース310は、ROMによって実現され、各重み付け情報501については、例えば、出荷前に書き込まれてあることとする。
抵抗値のフィールドには、上述したように、抵抗値を示す識別情報が設定される。抵抗値を示す識別情報は、例えば、デカップリングコンデンサ302が有する抵抗の値を制御部306が設定するための情報である。重み付け係数のフィールドには、各周波数に対応する重み付け係数が設定される。ここでは、基準となる周波数を1倍周期とする。例えば、1倍周期を533[MHz]とし、2倍周期を266[MHz]とし、3倍周期を178[MHz]とする。
例えば、抵抗値がaの場合、1倍周期に対応する重み付け係数は0.2であり、2倍周期に対応する重み付け係数は3であり、3倍周期に対応する重み付け係数は5である。
グラフg50に示すように、抵抗値aの場合のインピーダンス特性を基準にした場合に、反共振周波数のピークを下げるには、デカップリングコンデンサ302の抵抗の値を抵抗値aから微調整すればよい。グラフg50の例では、抵抗値cの場合のインピーダンス特性は抵抗の値を微調整することにより電源インピーダンスのピークが下げられた例である。抵抗値aを基準にした場合に、反共振周波数の位置をずらすには、デカップリングコンデンサ302の抵抗を高抵抗にすればよい。グラフg50の例では、抵抗値bの場合のインピーダンス特性は抵抗を高抵抗にした場合の例である。ここでの高抵抗とは、例えば、1[MΩ]などのようにデカップリングコンデンサ302の容量を電源から切り離すことと等価な程度に抵抗値が高いことをいう。
図6は、閾値の決定例を示す説明図である。グラフg61は、所定の抵抗値にした場合の各周波数のインピーダンス特性を示す。例えば、所定の抵抗値において533[MHz]の場合、インピーダンス値が0.32[Ω]である。例えば、266[MHz]の場合、インピーダンス値が3.65[Ω]である。178[MHz]の場合、インピーダンス値が0.49[Ω]である。
グラフg63は、各周波数である信号の本数の条件ごとに、電源ノイズ量と指標値の合計値との関係を示す。指標値は、周波数ごとに、取得したインピーダンス値と、本数と、を乗算した値であり、指標値の合計値は乗算した値の合計値である。グラフg63の◆は条件ごとにプロットした結果である。グラフg63の直線はプロットした結果の近似直線である。グラフg62は、動作条件Cにおける電源ノイズ量のシミュレーション結果である。グラフg63における重み付け値が40から60の間にある◆の電源ノイズ量は、グラフg62における矢印範囲である。
誤動作が発生する可能性がある電源ノイズ量が80[mV]以上であるとすると、グラフg63によれば、指標値の合計値は23より大きいと誤動作が発生する可能性がある。そのため、指標値の合計値の閾値thを23とし、指標値の合計値が閾値th以下であれば、誤動作が発生する可能性が低いとする。このようにして、閾値thが決定される。閾値thは例えば集積回路300内のROMに記憶される。例えば、集積回路300の出荷前には、閾値thがROMに書き込まれてあることとする。
図7は、重み付け係数の決定例を示す説明図である。重み付け係数の決定手順では、例えば、抵抗値の複数の候補値の各々について、抵抗値を候補値にした場合の周波数の各々に対応するインピーダンス値をシミュレーションによって取得する。そして、重み付け係数の決定手順では、各動作条件について、デカップリングコンデンサ302の抵抗を各抵抗値にした場合の電源ノイズ量の想定値と、各抵抗値にした場合の指標値の合計値と、を比較する。グラフg70は、比較例を示す。グラフg70の○印は、各動作条件について、各抵抗値にした場合の電源ノイズ量と各抵抗値にした場合の指標値の合計値との交点である。例えば、(A−x)の点は、動作条件Aについて、デカップリングコンデンサ302の抵抗を抵抗値xにした場合の電源ノイズ量と指標値の合計値との交点である。想定値とは、例えば、各交点を線形近似して各電源ノイズ量における指標値の合計値である。グラフg70の斜めの直線は線形近似を示す。
重み付け係数の決定手順では、指標値の合計値と想定値とが大きく異なっている場合に、重み付け係数を補正する。動作条件Bにおいて抵抗値yの場合に、指標値の合計値が想定値と大きく異なっているため、抵抗値yの場合の2倍周期についての重み付け係数が1.55から1.11に補正される。
図8は、判定部と動作本数検出部との詳細例を示す説明図である。上述したように、集積回路300は、I/O回路301の各々について、FIFO303と、判定部304と、を有する。FIFO303のFFの段数は、検出したい周波数によって変更される。例えば、FIFO303は、I/O回路301への信号の値を格納する。FIFO303は、電源インピーダンスが切り替わる時に、格納した信号の値をI/O回路301へ出力する。
判定部304は、論理回路801と、カウンタC1〜C3と、判定回路802−1〜802−3と、によって、信号Dataの周波数がいずれの周波数帯であるかを検出する。例えば、カウンタC1は、1倍周期が何サイクル連続で入力されるかカウントする。判定回路802は、カウンタCによって2回以上連続して同じ周期の信号が入力された場合を判定基準としカウンタCの値が2以上の時に1にすることにより、信号Dataの周波数が1倍周期であることを示す。図示していないが、ここでは、判定回路802−1から出力される信号をFlag1とし、判定回路802−2から出力される信号をFlag2とし、判定回路802−3から出力される信号をFlag3とする。
動作本数検出部305は、複数の周波数帯の各々について、判定部304が周波数であると判定した信号の数を検出する。具体的には、動作本数検出部305は、周波数帯の各々について、加算回路803を有する。加算回路803−1は、I/O回路301の各々についての判定回路802−1から出力される信号の値を加算する。加算回路803−2は、I/O回路301の各々についての判定回路802−2から出力される信号の値を加算する。加算回路803−3は、I/O回路301の各々についての判定回路802−3から出力される信号の値を加算する。加算回路803−1からは、1倍周期の場合の信号数S1が制御部306へ出力される。加算回路803−2からは、2倍周期の場合の信号数S2が制御部306へ出力される。加算回路803−3からは、3倍周期の場合の信号数S3が制御部306へ出力される。
図9は、周波数の検出例を示す説明図である。図9には、I/O回路301へ入力される信号の周波数の検出結果を示す。例えば、入力信号DataはI/O回路301へ入力される信号である。カウンタC1〜C3はリセットされない場合には値を保持する。
真理値表900によれば、FF1の値とFF2の値とFF3の値とFF4の値とが0である場合に、カウンタC1の値とカウンタC2の値とカウンタC3の値とがリセットされる。真理値表900によれば、FF1の値とFF2の値とFF3の値とが0であり、FF4の値が1である場合に、カウンタC1の値とカウンタC2の値とカウンタC3の値とが保持される。
真理値表900によれば、FF1の値とFF2の値とFF4の値とが0であり、FF3の値が1である場合に、カウンタC1の値がカウントアップされ、カウンタC2の値とカウンタC3の値とがリセットされる。真理値表900によれば、FF1の値とFF2の値とが0であり、FF3の値とFF4の値が1である場合に、カウンタC1の値がリセットされ、カウンタC2の値がカウントアップされ、カウンタC3の値が保持される。
真理値表900によれば、FF1の値とFF3の値とFF4の値とが0であり、FF2の値が1である場合に、カウンタC1の値とカウンタC3の値とがリセットされ、カウンタC2の値が保持される。真理値表900によれば、FF1の値とFF3の値とが0であり、FF2の値とFF4の値とが1である場合に、カウンタC1の値が保持され、カウンタC2の値とカウンタC3の値とがリセットされる。
真理値表900によれば、FF1の値とFF4の値とが0であり、FF2の値とFF3の値が1である場合に、カウンタC1の値がカウントアップされ、カウンタC2の値が保持され、カウンタC3の値がリセットされる。真理値表900によれば、FF1の値が0であり、FF2の値とFF3の値とFF4の値とが1である場合に、カウントC1の値とカウントC2の値とがリセットされ、カウンタC3の値がカウントアップされる。
真理値表900によれば、FF1の値が1であり、FF2の値とFF3の値とFF4の値とが0である場合に、カウンタC1の値とカウンタC2の値とがリセットされ、カウンタC3の値が保持される。真理値表900によれば、FF1の値とFF4の値とが1であり、FF2の値とFF3の値とが0である場合に、カウンタC1の値とカウンタC2の値とが保持され、カウンタC3の値がリセットされる。
真理値表900によれば、FF1の値とFF3の値とが1であり、FF2の値とFF4の値とが0である場合に、カウンタC1の値がカウントアップされ、カウンタC2の値とカウンタC3の値とがリセットされる。真理値表900によれば、FF1の値とFF3の値とFF4の値とが1であり、FF2の値が0である場合に、カウンタC1の値とカウンタC3の値がリセットされ、カウンタC2の値がカウントアップされる。
真理値表900によれば、FF1の値とFF2の値とが1であり、FF3の値とFF4の値とが0である場合に、カウンタC1の値がリセットされ、カウンタC2の値とカウンタC3の値とが保持される。真理値表900によれば、FF1の値とFF2の値とFF4の値とが1であり、FF3の値が0である場合に、カウンタC1の値が保持され、カウンタC2の値とカウンタC3の値とがリセットされる。
真理値表900によれば、FF1の値とFF2の値とFF3の値とが1であり、FF4の値が0である場合に、カウンタC1の値がカウントアップされ、カウンタC2の値とカウンタC3の値とが保持される。真理値表900によれば、FF1の値とFF2の値とFF3の値とFF4の値とが1である場合に、カウンタC1の値とカウンタC2の値とカウンタC3の値とがリセットされる。
図9のタイミングチャートtgでは、入力信号Dataは、1倍周期の信号、2倍周期の信号、3倍周期の信号の順に変化する。カウンタC1の値が2以上の期間にFlag1は1となり、カウンタC2の値が2以上の期間にFlag2は1となり、カウンタC3の値が2以上の期間にFlag3は1となる。
図10は、制御部の詳細例を示す説明図である。制御部306は、データベース310に記憶された順に重み付け情報501を取得する。制御部306は、動作本数検出部305によって検出された各周期の信号数Sと、重み付け情報501に設定された各周期の重み付け係数Dと、を乗算する。そして、制御部306は、乗算結果をすべて加算する。具体的には、制御部306は、以下の式(1)の計算を行う。
Total=D1×S1+D2×S2+D3×S3・・・(1)
つぎに、制御部306は、合計値Totalが閾値thより小さいか否かを判断する。閾値th以上であれば、Address[n]の値を1インクリメントする。これにより、制御部306は、あらたな重み付け情報501を取得する。閾値thより小さい場合、制御部306は、Address[n]が示す重み付け情報501に含まれる抵抗値をデカップリングコンデンサ302へ出力する。また、デカップリングコンデンサ302にデコーダが設けられている場合、制御部306は、抵抗値としてデコード前の信号を出力すればよい。また、デカップリングコンデンサ302にデコーダが設けられていない場合、制御部306は、抵抗値としてデコード済みの信号を出力すればよい。
複数の出力回路から出力される各信号の周波数が異なっているため、指標値の合計値Totalが閾値th未満となる抵抗値の候補値に抵抗の値を設定することにより、電源ノイズによって誤動作が発生する可能性を低下させることができる。また、制御部306は、指標値の合計値が閾値th未満となる重み付け情報501を検出した時点で、抵抗値を設定する処理を行う。これにより、抵抗値の設定に要する時間の短縮化を図ることができる。
図11は、デカップリングコンデンサ例1を示す説明図である。図11に示すデカップリングコンデンサ302は、デコード済みの信号が制御部306から入力される例である。デカップリングコンデンサ302は、複数の抵抗r1〜rlと、セレクタselと、コンデンサDCと、を有する。
セレクタselは、制御部306からのデコード済みの信号の値によって、複数の抵抗r1〜rlからコンデンサDCに接続させる抵抗を選択する。例えば、複数の抵抗r1〜rlの各々の抵抗値は、1[MΩ]、100[Ω]、200[Ω]などのように異なっている。
例えば、1[MΩ]の抵抗が選択された場合、高抵抗となり、コンデンサDCがVDE電源と切り離されるため、電源インピーダンスの共振周波数の位置がずれる。例えば、100[Ω]、200[Ω]などの抵抗が選択された場合には、電源インピーダンスの共振周波数のピークを変化させることができる。
図12は、デカップリングコンデンサ例2を示す説明図である。図12に示すデカップリングコンデンサ302は、デコード前の信号が制御部306から入力される例である。デカップリングコンデンサ302は、デコーダ1200と、複数の抵抗r1〜rlと、セレクタselと、コンデンサDCと、を有する。デコーダ1200は、制御部306からの信号をデコードし、デコードした信号をセレクタselへ出力する。表1201はデコード例を示す。例えば、制御部306からセレクタselへの3ビットの入力値が“001”の場合、デコーダ1200からセレクタselへの出力値は“00000010”となる。
そして、複数の抵抗r1〜rlと、セレクタselと、コンデンサDCと、については、例1と同じであるため、詳細な説明を省略する。
図13は、デカップリングコンデンサ領域例1を示す説明図である。図13の例1では、デカップリングコンデンサ領域401にある四角がそれぞれ図11に示したデカップリングコンデンサ302である。また、図13の例1では、すべてのデカップリングコンデンサ302が同時に制御可能である。
図14は、デカップリングコンデンサ領域例2を示す説明図である。図14の例2では、デカップリングコンデンサ領域401にある四角がそれぞれ図11に示したデカップリングコンデンサ302である。また、図14の例2では、デカップリングコンデンサ領域401が複数に分割され、分割された領域ごとに制御可能であるため、デコーダ1200が複数ある。
図15は、抵抗値の選択例1を示す説明図である。ここでは、3つの抵抗値a〜cから1つの抵抗値が選択される例を示す。グラフg50は、3つの抵抗値a〜cの各々に設定した場合の周波数に応じたインピーダンスを示す。データベース310に含まれる重み付け情報501の各係数は、インピーダンスに基づいて設定された値である。
選択例1では、1倍周期の信号の数が4つであり、2倍周期の信号の数が12であり、3倍周期の信号の数が2つである。そして、制御部306は、データベース310から重み付け情報501を1つ読み出す。制御部306は、周波数の各々について、重み付け情報501に設定された係数と、信号の数と、を乗算する。そして、制御部306は、乗算結果の和を指標値として算出する。
例えば、抵抗値aの場合、指標値の合計値Totalは46.8である。例えば、抵抗値bの場合、指標値の合計値は39.4である。例えば、抵抗値cの場合、指標値の合計値Totalは19.6である。ここで、閾値thは23である。制御部306は、抵抗値cの場合、合計値Totalが閾値thよりも小さいため、重み付け情報501−3に設定された抵抗値cにデカップリングコンデンサ302の抵抗値を設定する。
図16は、抵抗値の選択例2を示す説明図である。選択例2では、1倍周期の信号の数が12であり、2倍周期の信号の数が5であり、3倍周期の信号の数が1である。例えば、抵抗値aの場合、指標値の合計値Totalは22.4である。例えば、抵抗値bの場合、指標値の合計値Totalは22.7である。例えば、抵抗値cの場合、指標値の合計値Totalは29である。ここで、閾値thは例えば23である。ここでは、制御部306は、抵抗値aの場合についての合計値Totalが閾値thよりも小さいため、デカップリングコンデンサ302の抵抗値を重み付け情報501−1に設定された抵抗値aに設定する。図16の例では、制御部306は、抵抗値a〜cの場合のそれぞれについて合計値Totalを算出しているが、これに限らない。例えば、抵抗値aの場合についての合計値Totalが閾値thよりも小さいと判断された時点でデカップリングコンデンサ302の抵抗値aを設定してもよい。これにより、抵抗値の設定時間の短縮を図ることができる。
図17は、抵抗値の選択例3を示す説明図である。選択例3では、1倍周期の信号の数が2であり、2倍周期の信号の数が2であり、3倍周期の信号の数が14である。例えば、抵抗値aの場合、指標値の合計値Totalは76.4である。例えば、抵抗値bの場合、指標値の合計値Totalは14.2である。例えば、抵抗値cの場合、指標値の合計値Totalは19.6である。ここで、閾値thは例えば23である。制御部306は、例えば、データベース310に登録された重み付け情報501を順に選択する。そして、制御部306は、指標値の合計値Totalが閾値th以下となる重み付け情報501を検出した時点で抵抗値を決定してもよい。ここでは、制御部306は、抵抗値bの場合についての合計値Totalが閾値thよりも小さいため、デカップリングコンデンサ302の抵抗値を重み付け情報501−2に設定された抵抗値bに設定する。
図18は、抵抗値の選択例4を示す説明図である。選択例4では、対象外の信号の数が6であり、1倍周期の信号の数が4であり、2倍周期の信号の数が3であり、3倍周期の信号の数が3である。ある一定の時間において、1倍周期から3倍周期のいずれにもあてはまらない信号については、対象外とする。例えば、抵抗値aの場合、指標値の合計値Totalは24.8である。例えば、抵抗値bの場合、指標値の合計値Totalは12.9である。例えば、抵抗値cの場合、指標値の合計値Totalは13.4である。ここで、閾値thは例えば23である。制御部306は、例えば、データベース310に登録された重み付け情報501を順に選択する。そして、制御部306は、指標値の合計値Totalが閾値th以下となる重み付け情報501を検出した時点で抵抗値を決定してもよい。ここでは、制御部306は、抵抗値bの場合についての合計値Totalが閾値thよりも小さいため、デカップリングコンデンサ302の抵抗値を重み付け情報501−2に設定された抵抗値bに設定する。
以上説明したように、本実施の形態にかかる集積回路300は、電源とグラウンドにデカップリングコンデンサが接続された出力回路への入力信号の周波数を判定し、判定結果に応じてデカップリングコンデンサの容量値を設定する。したがって、電源インピーダンスのピークを低くすることができ、電源ノイズ量を抑えることができる。また、集積回路300は、周波数と容量値との対応情報と、判定結果と、に基づいて、デカップリングコンデンサの容量値を設定する。これにより、信号の周波数に応じた電源インピーダンス特性に制御することができる。したがって、電源インピーダンスのピークを低くすることができる。
また、出力回路が複数であって、デカップリングコンデンサの一端は、出力回路の各々に接続された電源ラインに接続され、デカップリングコンデンサの他端は、出力回路の各々に接続されたグランドラインに接続される。また、集積回路300は、出力回路の各々について、入力される信号の周波数を判定し、デカップリングコンデンサの容量値を、出力回路の各々について判定した周波数に基づき決定した容量値に設定する。このように、複数の出力回路からの各信号の周波数が変動しても、電源インピーダンスのピークを低くすることができる。
また、集積回路300は、容量値の複数の候補値の各々について、周波数帯の各々について当該周波数帯であると判定した数と、周波数帯の各々についての重み付け係数と、によって指標値を算出する。そして、集積回路300は、デカップリングコンデンサの容量値を、複数の候補値のうち、複数の周波数の各々について算出した指標値に基づいていずれかの候補値に設定する。これにより、複数の出力回路からの各信号の周波数が変動しても、電源ノイズ量を規定値以下とすることができ、電源ノイズによって生じる信号の誤動作を抑止する。
また、デカップリングコンデンサは可変でなく、デカップリングコンデンサの一端は、電源ラインに代わって、抵抗値が可変な抵抗の一端に接続され、抵抗の他端は、電源ラインに接続される。そして、集積回路300は、抵抗の抵抗値を、判定した周波数に基づき決定した抵抗値に設定する。これにより、容量に代わって抵抗を用いて電源インピーダンスを調整することにより、本実施の形態にかかる集積回路300の面積の縮小化を図ることができる。
本実施の形態にかかる集積回路300のデカップリングコンデンサの面積は、複数の周波数に応じて電源インピーダンスを満たすようにデカップリングコンデンサを設計した場合の面積と比較して、小さくすることができる。例えば、信号の周波数が533[MHz]の場合にターゲットインピーダンス以下となる容量値であるデカップリングコンデンサに要する面積は、0.58[mm2]である。例えば、信号の周波数が266[MHz]と533[MHz]の場合にターゲットインピーダンス以下となる容量値であるデカップリングコンデンサに要する面積は、1.02[mm2]である。そのため、デカップリングに要する面積は75[%]増加する。一方、信号の周波数が533[MHz]の場合にターゲットインピーダンス以下となる容量値であるデカップリングコンデンサであれば、抵抗の抵抗値を制御するだけで、信号の周波数が266[MHz]の場合にターゲットインピーダンスを満たすようになる。そのため、266[MHz]と533[MHz]の場合に電源インピーダンスがターゲットインピーダンス以下となるための集積回路300の抵抗付きデカップリングコンデンサに要する面積は、抵抗なしのデカップリングコンデンサに要する面積と同じである。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)電源ラインとグランドラインとに接続され、入力される信号を出力する出力回路であって、前記入力される信号の周波数に応じて前記電源ラインの前記グランドラインに対するインピーダンスが変化する出力回路と、
一端が前記電源ラインに接続され、他端が前記グランドラインに接続され、容量値が可変なデカップリングコンデンサと、
前記入力される信号の周波数を判定する判定部と、
前記デカップリングコンデンサの容量値を、前記判定部が判定した前記周波数に基づき決定した容量値に設定する制御部と、
を有することを特徴とする集積回路。
(付記2)前記制御部は、周波数と容量値との対応情報と、前記判定部が判定した前記周波数と、に基づき決定した容量値に設定することを特徴とする付記1に記載の集積回路。
(付記3)前記出力回路が複数であって、
前記デカップリングコンデンサの前記一端は、前記出力回路の各々に接続された前記電源ラインに接続され、前記デカップリングコンデンサの前記他端は、前記出力回路の各々に接続された前記グランドラインに接続され、
前記判定部は、前記出力回路の各々について、前記入力される信号の周波数を判定し、
前記制御部は、前記デカップリングコンデンサの容量値を、前記出力回路の各々について前記判定部が判定した前記周波数に基づき決定した容量値に設定することを特徴とする付記1または2に記載の集積回路。
(付記4)容量値の複数の候補値の各々について、前記デカップリングコンデンサの容量値を前記候補値にした場合の複数の周波数帯の各々に対応する前記インピーダンスに基づく値を記憶する記憶部を有し、
前記判定部は、前記出力回路の各々について、前記複数の周波数帯のうち、前記入力される信号の周波数がいずれの周波数帯であるかを判定し、
前記制御部は、
前記複数の候補値の各々について、前記複数の周波数帯の各々について前記判定部が前記周波数帯であると判定した数と、前記複数の周波数帯の各々について前記記憶部に記憶された前記インピーダンスに基づく値と、に基づいて、指標値を算出し、
前記デカップリングコンデンサの容量値を、前記複数の候補値のうち、前記複数の周波数帯の各々について算出した前記指標値に基づいていずれかの候補値に設定することを特徴とする付記3に記載の集積回路。
(付記5)前記デカップリングコンデンサは可変でなく、前記デカップリングコンデンサの前記一端は前記電源ラインに代わって抵抗値が可変な抵抗の一端に接続され、前記抵抗の他端は前記電源ラインに接続され、
前記制御部は、
前記抵抗の抵抗値を、前記判定部が判定した前記周波数に基づき決定した抵抗値に設定することを特徴とする付記1〜4のいずれか一つに記載の集積回路。
(付記6)電源ラインとグランドラインとに接続され、入力される信号を出力する出力回路であって、前記入力される信号の周波数に応じて前記電源ラインの前記グランドラインに対するインピーダンスが変化する出力回路と、
一端が前記電源ラインに接続され、他端が前記グランドラインに接続され、容量値が可変なデカップリングコンデンサと、
を有する集積回路が、
前記入力される信号の周波数を判定し、
前記デカップリングコンデンサの容量値を、判定した前記周波数に基づき決定した容量値に設定する、
ことを特徴とする制御方法。