説明

電源電圧設定方法及び電源電圧設定プログラム

【課題】チップごとに適正な電源電圧を設定する。
【解決手段】チップのレイアウトデータ20からクリティカルパスのゲート遅延と配線遅延の遅延比を抽出する(ステップS1,S2)。チップのモニタ回路で実測されたゲート遅延及び配線遅延を、その遅延比に基づき合成して第1遅延値を生成し(ステップS3)、モニタ回路のシミュレーションで得られるゲート遅延及び配線遅延を、その遅延比に基づき合成して第2遅延値を生成する(ステップS4,S5)。このようにゲート遅延、配線遅延、クリティカルパスでの遅延比が考慮された第1遅延値及び第2遅延値に基づいて、チップに適用するチップ電源電圧を設定する(ステップS7)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チップに適用する電源電圧の設定方法、及び電源電圧の設定プログラムに関する。
【背景技術】
【0002】
チップ(半導体素子)製造においては、そのプロセスばらつきにより、当初設定されていた電源電圧では、目的のスピードよりも高速或いは低速で動作するチップが生じ得る。目的のスピードよりも高速で動作するチップについては、電源電圧を下げて使用することで、その処理タイミングの適正化、消費電力の低減が図られる。目的のスピードよりも低速で動作するチップについては、電源電圧を上げて使用することで、目的のスピード確保、処理タイミングの適正化が図られる。このような電源電圧の設定手法は、ASV(Adaptive Supply Voltage scaling)と呼ばれている。ASIC(Application Specific Integrated Circuit)等の集積回路における、DSP(Digital Signal Processor)コア等の処理コアに対してASVを行う技術等も知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2009−519620号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
プロセスばらつきに応じてチップの電源電圧を設定するASVでは、例えば、チップごとに所定のモニタ回路を用い、プロセスばらつきに応じた遅延(又は周波数)を取得する。そして、その取得した遅延を、遅延と電源電圧の関係を示した変換テーブルを用いて電源電圧に変換し、当該チップに適用する電源電圧を設定する。モニタ回路には、例えば、リング発振回路が用いられ、その場合、モニタ回路で測定される遅延や変換テーブルの遅延には、ゲート遅延特性が反映されることになる。即ち、このようなASVでは、ゲート遅延特性に基づいて電源電圧が設定されている。
【0005】
しかし、このようなASVを適用するチップにおいて、配線遅延が支配的になるような回路がクリティカルパスであった場合、ゲート遅延に基づいて設定された電源電圧では、そのチップについて所望の動作を実現することができない可能性がある。
【課題を解決するための手段】
【0006】
本発明の一観点によれば、チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出し、前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成し、前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成し、前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する電源電圧設定方法が提供される。
【0007】
また、本発明の一観点によれば、このような方法を実現するための処理をコンピュータに実行させる電源電圧設定プログラムが提供される。
【発明の効果】
【0008】
開示の技術によれば、チップ内のゲート遅延及び配線遅延を考慮して適正な電源電圧を設定することが可能になり、当該チップについて所望の動作を実現することが可能になる。
【図面の簡単な説明】
【0009】
【図1】電源電圧設定方法の一例の説明図である。
【図2】変換テーブルの説明図である。
【図3】ゲート遅延及び配線遅延を考慮した電源電圧設定方法の一例の説明図である。
【図4】電源電圧設定装置の構成例を示す図である。
【図5】クリティカルパスの一例を示す図である。
【図6】遅延解析結果の一例を示す図である。
【図7】変換テーブルの一例を示す図である。
【図8】変換テーブルの一例を示す図である。
【図9】チップ電源電圧設定処理フローの一例を示す図である。
【図10】電源電圧設定装置のハードウェアの構成例を示す図である。
【発明を実施するための形態】
【0010】
まず、チップに適用する電源電圧(チップ電源電圧)の設定方法の一形態について説明する。
図1は電源電圧設定方法の一例の説明図である。
【0011】
図1に示す電源電圧設定方法では、まず、チップに搭載された、遅延(遅延時間又は周波数)を測定するモニタ回路100について、所定の電源電圧条件で、その遅延値が実測される(ステップS10)。モニタ回路100には、例えば、リング発振回路101を設ける。このようなモニタ回路100を、所定の電源電圧条件で動作させることにより、ゲート遅延を反映した遅延値が実測される。
【0012】
また、このモニタ回路100について、そのレイアウトデータ(設計データ)等を利用し、コンピュータを用いたシミュレーションが実行され、ゲート遅延を反映した遅延値(シミュレーション値)が測定される(ステップS20)。このシミュレーションは、例えば、プロセスばらつき、電源電圧(上記実測時の電源電圧条件を含む)の条件を変化させて実行される。そして、各条件のシミュレーションの結果に基づき、プロセスばらつき、電源電圧、遅延値の関係を含む変換テーブル110が作成される(ステップS30)。
【0013】
図2は変換テーブルの説明図である。
上記のようなシミュレーションにより、図2に例示するような、プロセスばらつき(−3σ〜+3σ)、電源電圧(1.0[V]〜2.0[V])、遅延値(A[ps]、A’[ps]、B[ps]、B’[ps])の関係を示す変換テーブル110が作成される。
【0014】
尚、図2において、例えば、プロセスばらつきσのプラス(+)側が、目的のスピードよりもチップ(モニタ回路100)が高速で動作する場合を示し、マイナス(−)側が、目的のスピードよりもチップ(モニタ回路100)が低速で動作する場合を示す。この場合、遅延値は、A[ps]>B[ps]、A’[ps]>B’[ps]となる。また、遅延値と電源電圧との関係では、低電源電圧ほど遅延値が大きくなり、A[ps]>A’[ps]、B[ps]>B’[ps]となる。
【0015】
上記のようにして作成される変換テーブル110を参照し、上記の測定(実測、シミュレーション)された遅延値に基づき、チップ電源電圧が設定される(ステップS40)。
例えば、変換テーブル110を参照することにより、まず上記のように所定の電源電圧条件で実測された遅延値の該当するプロセスばらつきが求められる。このプロセスばらつきが、このモニタ回路100が搭載されたチップのプロセスばらつきとされる。そして、チップのプロセスばらつきが、目的のプロセスばらつきであれば、モニタ回路100の実測時に用いた電源電圧が、そのチップに適用するチップ電源電圧に設定される。チップのプロセスばらつきが、目的のプロセスばらつきと異なれば、変換テーブル110より、目的のプロセスばらつき相当の遅延値(上記シミュレーション値)が得られるような電源電圧が求められ、その電源電圧がチップ電源電圧に設定される。
【0016】
モニタ回路100で実測された遅延値の該当するプロセスばらつきが、目的のプロセスばらつきよりも大きい(チップが目的のスピードよりも高速で動作する)場合には、実測時の電源電圧より低い電圧がチップ電源電圧に設定される。モニタ回路100で実測された遅延値の該当するプロセスばらつきが、目的のプロセスばらつきよりも小さい(チップが目的のスピードよりも低速で動作する)場合には、実測時の電源電圧より高い電圧がチップ電源電圧に設定される。
【0017】
このようなASV手法を適用することにより、高速(Fast)寄りにできたチップについては、そのチップ電源電圧を下げることで、処理タイミングの適正化、消費電力の低減が図られるようになる。また、低速(Slow)寄りにできたチップについては、そのチップ電源電圧を上げることで、処理タイミングの適正化、目的スピードの確保が図られるようになる。
【0018】
ところで、図1に示した方法では、モニタ回路100により、ゲート遅延を反映した遅延値が測定(実測、シミュレーション)され、その遅延値に基づき、チップ電源電圧が設定される。しかし近年では、チップ内の回路要素(トランジスタ、配線等)の微細化、高集積化、高密度化等に伴い、チップ動作速度、チップ電源電圧に対し、ゲート遅延のほか、配線遅延の影響も大きくなりつつある。仮に、配線遅延が支配的になるような回路がチップのクリティカルパスであった場合、上記のようにゲート遅延に基づいて設定されたチップ電源電圧では、そのチップについて所望の動作を実現することができないことが起こり得る。
【0019】
そこで以下、ゲート遅延のほか配線遅延も考慮したチップ電源電圧の設定方法について説明する。
図3はゲート遅延及び配線遅延を考慮した電源電圧設定方法の一例の説明図である。
【0020】
図3に示す電源電圧設定方法では、ゲート遅延を測定するゲート遅延モニタ11、及び配線遅延を測定する配線遅延モニタ12を含む、モニタ回路10が用いられる。モニタ回路10は、チップ電源電圧を設定するチップに搭載されている。
【0021】
モニタ回路10のゲート遅延モニタ11は、ゲート遅延を測定する回路、例えばリング発振回路11aで構成される。モニタ回路10の配線遅延モニタ12は、配線遅延が支配的となるように論理ゲート及び配線が設けられた回路、例えばリング発振回路12aと、ゲート遅延回路、例えばリング発振回路12bとで構成される。配線遅延モニタ12による配線遅延の測定は、リング発振回路12aで得られる出力から、リング発振回路12bで得られる出力を減算することによって行われる。
【0022】
チップ電源電圧の設定にあたっては、まず、チップのレイアウトデータ(設計データ)20から、クリティカルパスが抽出される(ステップS1)。ここでは、コンピュータによる、レイアウトデータ20を用いた遅延解析シミュレーションを実行することにより、レイアウトデータ20内に存在するクリティカルパスが抽出される。次いで、遅延解析シミュレーションの遅延解析結果に基づき、抽出したクリティカルパス内のゲート遅延及び配線遅延がそれぞれ抽出され、ゲート遅延と配線遅延の比率(遅延比)X:Yが求められる(ステップS2)。
【0023】
モニタ回路10については、所定の電源電圧条件で、ゲート遅延及び配線遅延がそれぞれゲート遅延モニタ11及び配線遅延モニタ12によって実測される。そして、実測されたゲート遅延及び配線遅延は、レイアウトデータ20から抽出したクリティカルパスの遅延比に基づいて合成される(ステップS3)。実測されたゲート遅延MG及び配線遅延MLの、クリティカルパスの遅延比X:Yに基づいた合成は、次式(1)に従って行われる。
【0024】
(MG×X+ML×Y)/(X+Y)・・・(1)
また、モニタ回路10について、そのレイアウトデータを利用した、コンピュータを用いたシミュレーションが実行され、ゲート遅延及び配線遅延が、それぞれゲート遅延モニタ11及び配線遅延モニタ12によって測定(シミュレーション)される(ステップS4)。このシミュレーションは、例えば、プロセスばらつき、電源電圧(上記実測時の電源電圧条件を含む)の条件を変化させて実行される。
【0025】
シミュレーションによって得られたゲート遅延及び配線遅延は、クリティカルパスの遅延比に基づいて合成され(ステップS5)、プロセスばらつき、電源電圧、合成後の遅延値の関係を含む変換テーブル30が作成される(ステップS6)。シミュレーションによって得られたゲート遅延SG及び配線遅延SLの、クリティカルパスの遅延比X:Yに基づいた合成は、次式(2)に従って行われる。
【0026】
(SG×X+SL×Y)/(X+Y)・・・(2)
上記のようにして作成される変換テーブル30を参照し、上記の測定(実測、シミュレーション)された遅延値に基づき、チップ電源電圧が設定される(ステップS7)。尚、変換テーブル30を用いたチップ電源電圧の設定の詳細については後述する。
【0027】
図3に示したようなチップ電源電圧の設定は、例えば、次の図4に示すような電源電圧設定装置50を用いて行われる。
図4は電源電圧設定装置の構成例を示す図である。
【0028】
図4に示す電源電圧設定装置50は、遅延解析部51及び遅延比生成部52を含む遅延比抽出部53aを有している。
遅延解析部51は、チップのレイアウトデータ20から、遅延解析シミュレーションによってクリティカルパスを抽出し、更に、抽出したそのクリティカルパス内のゲート遅延及び配線遅延をそれぞれ抽出する。遅延比生成部52は、遅延解析部51で抽出された、クリティカルパス内のゲート遅延及び配線遅延に基づき、ゲート遅延と配線遅延の遅延比を生成する。この遅延比生成部52で生成された遅延比は、遅延比格納部53に格納される。このようにして遅延比抽出部53aの遅延解析部51及び遅延比生成部52により、レイアウトデータ20からクリティカルパスのゲート遅延及び配線遅延の遅延比(比率)が抽出される。
【0029】
電源電圧設定装置50は更に、第1遅延値生成部55、モニタ回路シミュレーション部56、第2遅延値生成部57、及びチップ電源電圧設定部59を有している。
第1遅延値生成部55は、モニタ回路10について所定の電源電圧条件で実測されたゲート遅延MG及び配線遅延MLが格納された実測遅延格納部54の情報を用い、遅延値を生成する。第1遅延値生成部55は、実測遅延格納部54に格納されたゲート遅延MG及び配線遅延MLを、遅延比格納部53に格納された遅延比に基づいて、上記の式(1)に従って合成する。
【0030】
モニタ回路シミュレーション部56は、モニタ回路10についてのシミュレーションを実行し、ゲート遅延SG及び配線遅延SL(シミュレーション値)を取得する。このシミュレーションには、例えばレイアウトデータ20に含まれるモニタ回路10のデータを利用することができる。モニタ回路シミュレーション部56は、プロセスばらつき及び電源電圧の条件を変化させ、各条件について、モニタ回路10のシミュレーションを実行する。
【0031】
第2遅延値生成部57は、モニタ回路シミュレーション部56で条件を変化させて取得した各ゲート遅延SG及び配線遅延SLを、当該条件ごとに、遅延比格納部53に格納された遅延比に基づいて、上記の式(2)に従って合成する。第2遅延値生成部57は、合成後の遅延値に基づき、プロセスばらつき、電源電圧、合成後の遅延値の関係を含む変換テーブル30を作成する。
【0032】
チップ電源電圧設定部59は、第1遅延値生成部55で生成された合成後の遅延値と、第2遅延値生成部57で生成された合成後の遅延値に基づいて作成された変換テーブル30とを用い、このチップに適用するチップ電源電圧を設定する。
【0033】
尚、上記のような電源電圧設定装置50は、コンピュータを用いて実現することができる。
例えばこの図4のような電源電圧設定装置50を用いた、上記図3に示した電源電圧設定方法によれば、ゲート遅延及び配線遅延を考慮し、チップのプロセスばらつきに応じて、適正なチップ電源電圧を設定することが可能になる。以下、図3に示した電源電圧設定方法について、具体例を挙げて、より詳細に説明する。
【0034】
まず、クリティカルパスの抽出について述べる。チップ電源電圧の設定では、上記のように、まず電源電圧設定装置50の遅延解析部51が、レイアウトデータ20から、遅延解析シミュレーションによって、チップのクリティカルパスを特定し、抽出する。
【0035】
図5に、抽出されるクリティカルパスの一例を示す。
図5の点線で囲まれた部分が、抽出されたクリティカルパス21の一例である。図5に示すクリティカルパス21には、フリップフロップや論理ゲートの回路素子のセル(Cell_A〜G)、及びセル間を接続する配線(Net_1〜7)が含まれている。クリティカルパス21は、Cell_A、Net_1、Cell_B、Net_2、Cell_C、Net_3、Cell_D、Net_4、Cell_E、Net_5、Cell_F、Net_6、Cell_G、Net_7が順に繋がった構成になっている。
【0036】
遅延解析部51は、遅延解析シミュレーションによってこのようなクリティカルパス21を抽出し、更に、抽出されたクリティカルパス21の遅延解析結果を抽出する。
図6に、抽出される遅延解析結果の一例を示す。
【0037】
遅延解析シミュレーションにより、クリティカルパス21内の各Cell_A〜G及びNet_1〜7の遅延が解析され、各遅延[ps]がそれぞれ図6の遅延解析結果51aに示すようにして抽出される。Cell_A〜Gの各遅延はそれぞれゲート遅延として抽出され、Net_1〜7の各遅延はそれぞれ配線遅延として抽出される。
【0038】
各Cell_A〜Gのゲート遅延、及び各Net_1〜7の配線遅延の抽出後は、電源電圧設定装置50の遅延比生成部52が、これらの値を用い、クリティカルパス21の遅延比(ゲート遅延と配線遅延の比率)を生成する。図6の例の場合、ゲート遅延及び配線遅延は、それぞれ次式(3)、(4)のようにして求められる。
【0039】
ゲート遅延=60[ps](Cell_A)+60[ps](Cell_B)+50[ps](Cell_C)+90[ps](Cell_D)+70[ps](Cell_E)+40[ps](Cell_F)+30[ps](Cell_G)=400[ps]・・・(3)
配線遅延=20[ps](Net_1)+30[ps](Net_2)+50[ps](Net_3)+20[ps](Net_4)+30[ps](Net_5)+30[ps](Net_6)+20[ps](Net_7)=200[ps]・・・(4)
これらの計算結果より、クリティカルパス21の遅延比が、ゲート遅延:配線遅延=2:1と求められるようになる。遅延比生成部52によって求められた遅延比は、電源電圧設定装置50の遅延比格納部53に格納される。
【0040】
このようにしてクリティカルパス21の遅延比が求められる一方で、このチップのモニタ回路10については、所定の電源電圧条件、例えば2.0[V]で、そのゲート遅延及び配線遅延が実測される。ゲート遅延及び配線遅延は、それぞれゲート遅延モニタ11及び配線遅延モニタ12を用いて実測される。実測されたゲート遅延及び配線遅延は、電源電圧設定装置50の実測遅延格納部54に格納される。
【0041】
電源電圧設定装置50の第1遅延値生成部55は、実測遅延格納部54に格納されている、実測されたゲート遅延及び配線遅延を用い、それらを、先に求めた遅延比に基づいて合成する。
【0042】
例えば、実測により得られたゲート遅延(ゲート遅延モニタ11の実測値)が80[ps]であり、実測により得られた配線遅延(配線遅延モニタ12の実測値)が20[ps]であったとする。その場合、これらのゲート遅延及び配線遅延の、遅延比に基づく合成後の遅延値は、上記の式(1)に従い、次式(1a)のようにして求められる。
【0043】
(80[ps]×2+20[ps]×1)/(2+1)=60[ps]・・・(1a)
また、このチップのモニタ回路10については、電源電圧設定装置50のモニタ回路シミュレーション部56によって、ゲート遅延及び配線遅延のシミュレーション値が取得される。
【0044】
モニタ回路シミュレーション部56は、まず上記実測時の電源電圧、この例では2.0[V]で、モニタ回路10のゲート遅延モニタ11及び配線遅延モニタ12のそれぞれについてシミュレーションを実行し、ゲート遅延及び配線遅延のシミュレーション値を取得する。尚、モニタ回路シミュレーション部56でのシミュレーション条件は、測定者がシミュレーション前に予め設定しておくことができる。
【0045】
次いで、電源電圧設定装置50の第2遅延値生成部57が、このモニタ回路シミュレーション部56でのシミュレーションで取得されるゲート遅延及び配線遅延を用い、それらを、先に求めた遅延比に基づいて合成する。
【0046】
例えば、シミュレーションで得られたゲート遅延(ゲート遅延モニタ11のシミュレーション値)が100[ps]であり、シミュレーションで得られた配線遅延(配線遅延モニタ12のシミュレーション値)が40[ps]であったとする。その場合、これらのゲート遅延及び配線遅延の、遅延比に基づく合成後の遅延値は、上記の式(2)に従い、次式(2a)のようにして求められる。
【0047】
(100[ps]×2+40[ps]×1)/(2+1)=80[ps]・・・(2a)
モニタ回路シミュレーション部56は、この例では更に、プロセスばらつき及び電源電圧の条件を変え、各条件でそれぞれモニタ回路10のシミュレーションを実行し、各条件についてそれぞれ、ゲート遅延及び配線遅延のシミュレーション値を取得する。そして、第2遅延値生成部57は、各条件で取得されたゲート遅延及び配線遅延を、上記同様、遅延比に基づいて合成し、変換テーブル30を作成する。
【0048】
図7に、変換テーブルの一例を示す。
この図7には、プロセスばらつきの条件を、チップが標準的にできた場合(Typ)と高速寄りにできた場合(2σFast)の2種類とし、電源電圧の条件を、1.0[V]と2.0[V]の2種類としたときの、変換テーブル30を例示している。ここでは電源電圧2.0[V](Typ)が、当初このチップに対して設定されているチップ電源電圧である。図7の変換テーブル30には、上記の式(2a)で求められる合成後の遅延値80[ps]が、プロセスばらつきTyp、電源電圧2.0[V]の条件でのシミュレーション値として格納されている。
【0049】
このほか、図7の変換テーブル30には、プロセスばらつきTyp、電源電圧1.0[V]の条件でのシミュレーションで得られたゲート遅延及び配線遅延の、遅延比に基づく合成後の遅延値100[ps]が格納されている。また、図7の変換テーブル30には、プロセスばらつき2σFast、電源電圧が1.0[V]の条件でのシミュレーションで得られたゲート遅延及び配線遅延の、遅延比に基づく合成後の遅延値80[ps]が格納されている。更に、図7の変換テーブル30には、プロセスばらつき2σFast、電源電圧が2.0[V]の条件でのシミュレーションで得られたゲート遅延及び配線遅延の、遅延比に基づく合成後の遅延値60[ps]が格納されている。
【0050】
電源電圧設定装置50のチップ電源電圧設定部59は、このようにして作成された変換テーブル30を参照し、上記の式(1a)で求められた合成後の遅延値(実測値)60[ps]に基づき、チップ電源電圧を設定する。
【0051】
例えば、電源電圧2.0[V]の条件で実測されたゲート遅延及び配線遅延の合成後の遅延値60[ps]は、変換テーブル30より、プロセスばらつき2σFastの条件に該当する。プロセスばらつきがTyp相当の遅延値80[ps](電源電圧2.0[V]の条件でのシミュレーション値)の遅延を得るためには、変換テーブル30より、電源電圧を2.0[V]から1.0[V]に低下させることができる。チップ電源電圧設定部59は、このようにして求められる電源電圧1.0[V]を、チップに適用するチップ電源電圧に設定する。
【0052】
このようにプロセスばらつきによって高速寄りにできたチップに対し、当初設定されていた電源電圧2.0[V]よりも低い1.0[V]がチップ電源電圧として設定されるようになる。これにより、高速寄りにできたチップについて、その処理タイミングの適正化、消費電力の低減を図ることができる。このようなチップ電源電圧の設定において、ゲート遅延及び配線遅延を考慮し、更にクリティカルパス21でのそれらの比率(遅延比)を考慮することで、適正なチップ電源電圧を設定することができる。
【0053】
尚、チップ電源電圧設定部59では、次のようにして簡略化してチップ電源電圧を設定することもできる。例えば、チップ電源電圧設定部59により、上記の式(1a)、(2a)で求められた各遅延値(モニタ回路10の実測値、シミュレーション値)を比較し、その比較結果に基づいてチップ電源電圧を設定する。
【0054】
上記の例の場合、式(1a)で得られる合成後の遅延値(実測値)が60[ps]、一方、式(2a)で得られる合成後の遅延値(シミュレーション値)が80[ps]である。従って、実測の遅延値がシミュレーション値よりも小さいことから、実際に形成されたチップは、高速寄りにできたものであると判定することができる。高速寄りにできたチップの場合には、例えば、遅延値のシミュレーション値と実測値との差分に応じ、予め設定された電源電圧まで下げるようにし、その下げた電源電圧をチップ電源電圧として設定する。チップ電源電圧設定部59でこのような処理を行うようにすることで、変換テーブル30の作成に要する処理を省略することが可能になる。
【0055】
以上、電源電圧設定装置50を用いたチップ電源電圧の設定方法(ASV)について説明した。
次に、上記のチップ電源電圧設定部59が行う、チップ電源電圧の設定処理の一実施例を、更に別の具体例を挙げて説明する。
【0056】
図8は変換テーブルの一例を示す図、図9はチップ電源電圧設定処理フローの一例を示す図である。
図8には、プロセスばらつきの条件をTyp、2σFast、3σFastの3種類とし、電源電圧の条件を1.0[V]、1.5[V]、2.0[V](Typ)の3種類とした場合の変換テーブル30aを例示している。電源電圧2.0[V]が、チップ電源電圧を設定しようとしているチップに対して当初設定されている電源電圧である。変換テーブル30aには、図8に示したように、プロセスばらつきと電源電圧の各条件についてそれぞれ、遅延値(シミュレーション値)が格納されている。
【0057】
尚、この図8のような内容を含む変換テーブル30aも、上記同様にして作成することができる。即ち、チップ電源電圧を設定するチップのモニタ回路について、モニタ回路シミュレーション部56により、所定のプロセスばらつき及び電源電圧の各条件でシミュレーションを行う。そして、シミュレーションにより得られるゲート遅延及び配線遅延を、第2遅延値生成部57により、シミュレーションの各条件ごとに、チップのクリティカルパスの遅延比に基づいて合成する。チップのクリティカルパスの遅延比は、当該チップのレイアウトデータを用いた遅延解析部51での遅延解析シミュレーション、及びその解析結果を用いた遅延比生成部52での処理によって生成される。
【0058】
図8の変換テーブル30aの場合、プロセスばらつきTypでは、電源電圧1.0[V]のとき遅延値120[ps]、電源電圧1.5[V]のとき遅延値100[ps]、電源電圧2.0[V]のとき遅延値80[ps]になっている。プロセスばらつき2σFastでは、電源電圧1.0[V]のとき遅延値100[ps]、電源電圧1.5[V]のとき遅延値80[ps]、電源電圧2.0[V]のとき遅延値60[ps]になっている。プロセスばらつき3σFastでは、電源電圧1.0[V]のとき遅延値80[ps]、電源電圧1.5[V]のとき遅延値60[ps]、電源電圧2.0[V]のとき遅延値40[ps]になっている。
【0059】
今、チップ電源電圧を設定するチップのモニタ回路について実測されたゲート遅延及び配線遅延を、そのクリティカルパスの遅延比に基づいて合成した遅延値(実測値)が、X[ps]であったとする。また、チップ電源電圧を設定する際には、プロセスばらつきσが大きい、即ち高速(Fast)寄りにできたチップについて、プロセスばらつきがTyp相当であるときの遅延(スピード)になるまで電源電圧を低下させるものとする。
【0060】
チップ電源電圧設定部59は、まず図8の変換テーブル30aを用い、目的とするプロセスばらつきTypで、且つ、当初設定されている電源電圧2.0[V](Typ)の条件で得られている遅延値80[ps]を、目的とする遅延値として設定する(ステップS100)。
【0061】
次いでチップ電源電圧設定部59は、プロセスばらつき2σFast及び3σFastのそれぞれにおいて、ステップS100で設定された、目的遅延値80[ps]が得られるときの電源電圧を抽出する(ステップS101)。図8の変換テーブル30aの場合、プロセスばらつき2σFastのときに遅延値80[ps]が得られる電源電圧は1.5[V]であり、プロセスばらつき3σFastのときに遅延値80[ps]が得られる電源電圧は1.0[V]である。チップ電源電圧設定部59は、変換テーブル30aから、このような該当する電源電圧を抽出する。
【0062】
チップ電源電圧を設定する際には、チップ電源電圧設定部59が、電源電圧2.0[V](Typ)の条件で実測された遅延値X[ps]と、変換テーブル30a内の、電源電圧2.0[V](Typ)の条件のシミュレーションで得られた遅延値との比較を行う。
【0063】
その際、チップ電源電圧設定部59は、まず、実測された遅延値X[ps]が、プロセスばらつきTypでの遅延値80[ps]以下で、プロセスばらつき2σFastでの遅延値60[ps]よりも大きいか否かを判定する(ステップS102)。チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS102の80[ps]≧X[ps]>60[ps]の条件を満たすと判定した場合には、遅延値X[ps]が得られたチップのプロセスばらつきをTypと判定する(ステップS103)。そして、チップ電源電圧設定部59は、電源電圧の変更は行わず(ステップS104)、チップ電源電圧設定処理を終了する。即ち、この場合は、当初の電源電圧2.0[V](Typ)がチップ電源電圧としてそのまま設定される。
【0064】
チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS102の80[ps]≧X[ps]>60[ps]の条件を満たさないと判定した場合には、次のような処理を行う。
【0065】
即ち、チップ電源電圧設定部59は、実測の遅延値X[ps]が、プロセスばらつき2σFastでの遅延値60[ps]以下で、プロセスばらつき3σFastでの遅延値40[ps]よりも大きいか否かを判定する(ステップS105)。チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS105の60[ps]≧X[ps]>40[ps]の条件を満たすと判定した場合には、遅延値X[ps]が得られたチップのプロセスばらつきを2σFastと判定する(ステップS106)。そして、チップ電源電圧設定部59は、ステップS101において、プロセスばらつきが2σFastのときに目的遅延値80[ps]が得られる電源電圧として抽出した1.5[V]の値を、チップ電源電圧として設定し(ステップS107)、処理を終了する。
【0066】
チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS105の60[ps]≧X[ps]>40[ps]の条件を満たさないと判定した場合には、次のような処理を行う。
【0067】
即ち、チップ電源電圧設定部59は、実測の遅延値X[ps]が、プロセスばらつき3σFastでの遅延値40[ps]よりも小さいか否かを判定する(ステップS108)。チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS108の40[ps]>X[ps]の条件を満たさない(X[ps]=40[ps])と判定した場合には、遅延値X[ps]が得られたチップのプロセスばらつきを3σFastと判定する(ステップS109)。そして、チップ電源電圧設定部59は、ステップS101において、プロセスばらつきが3σFastのときに目的遅延値80[ps]が得られる電源電圧として抽出した1.0[V]の値を、チップ電源電圧として設定し(ステップS110)、処理を終了する。
【0068】
チップ電源電圧設定部59は、実測の遅延値X[ps]が、ステップS108の40[ps]>X[ps]の条件を満たすと判定した場合には、このチップを不良と判定し(ステップS111)、処理を終了する。
【0069】
この図9のような処理を行うことで、チップのゲート遅延及び配線遅延が考慮されたチップ電源電圧を、そのチップのプロセスばらつきに応じて適正に設定することができる。
以上、チップ電源電圧の設定方法(ASV)について説明した。尚、以上の説明では、目的とするスピード又は高速(Fast)寄りにできたチップの電源電圧設定を例にして述べたが、低速(Slow)寄りにできたチップに対しても同様にして、当該チップに対し適正な電源電圧の設定を行うことが可能である。
【0070】
以上のような電源電圧設定に用いる電源電圧設定装置50は、コンピュータを用いて実現することができる。
図10は電源電圧設定装置のハードウェアの構成例を示す図である。
【0071】
コンピュータを用いた電源電圧設定装置50は、CPU(Central Processing Unit)201によって装置全体が制御されている。CPU201には、バス208を介してRAM(Random Access Memory)202と複数の周辺機器が接続されている。
【0072】
RAM202は、電源電圧設定装置50の主記憶装置として使用される。RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。
【0073】
バス208に接続されている周辺機器としては、ハードディスクドライブ(Hard Disk Drive;HDD)203、グラフィック処理装置204、入力インタフェース205、光学ドライブ装置206、及び通信インタフェース207がある。
【0074】
HDD203は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD203は、電源電圧設定装置50の二次記憶装置として使用される。HDD203には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。尚、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【0075】
グラフィック処理装置204には、モニタ221が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ221の画面に表示させる。モニタ221としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等がある。
【0076】
入力インタフェース205には、キーボード222及びマウス223が接続されている。入力インタフェース205は、キーボード222やマウス223から送られてくる信号をCPU201に送信する。尚、マウス223は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0077】
光学ドライブ装置206は、レーザ光等を利用して、光ディスク224に記録されたデータの読み取りを行う。光ディスク224は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク224には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
【0078】
通信インタフェース207は、ネットワーク210に接続されている。通信インタフェース207は、ネットワーク210を介して、他のコンピュータ又は通信機器との間でデータの送受信を行う。
【0079】
以上のようなハードウェア構成によって、電源電圧設定装置50の処理機能を実現することができる。
電源電圧設定装置50の処理機能は、コンピュータによって実現することができる。その場合、電源電圧設定装置50が有すべき機能の処理内容を記述した電源電圧設定プログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、HDD、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0080】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0081】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。尚、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0082】
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
以上説明した実施の形態に関し、更に以下の付記を開示する。
【0083】
(付記1) コンピュータが、
チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出し、
前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成し、
前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成し、
前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する、
ことを特徴とする電源電圧設定方法。
【0084】
(付記2) 前記第1遅延値と前記第2遅延値との比較結果に基づいて前記チップ電源電圧を設定することを特徴とする付記1に記載の電源電圧設定方法。
(付記3) 前記コンピュータが、
プロセスばらつき及び電源電圧の複数の条件と、前記各条件での第3遅延値との関係を含むテーブルを作成し、
前記テーブルを参照し、前記第1遅延値と前記第3遅延値とを比較して、前記第1遅延値が該当する前記条件内の前記プロセスばらつきを抽出し、
抽出した前記プロセスばらつきと前記第2遅延値とに基づいて、前記チップ電源電圧を設定する、
ことを特徴とする付記1に記載の電源電圧設定方法。
【0085】
(付記4) 前記チップ電源電圧を設定する際には、
前記テーブルを参照し、抽出した前記プロセスばらつきで、前記第2遅延値が得られる前記条件内の前記電源電圧を抽出し、
抽出した前記電源電圧を、前記チップ電源電圧に設定する、
ことを特徴とする付記3に記載の電源電圧設定方法。
【0086】
(付記5) 前記テーブルを作成する際には、
前記モニタ回路の前記各条件でのシミュレーションによってそれぞれ取得されるゲート遅延及び配線遅延を前記条件ごとに前記比率に基づき合成して前記第3遅延値を生成する、
ことを特徴とする付記3又は4に記載の電源電圧設定方法。
【0087】
(付記6) 前記モニタ回路は、
前記第1遅延値及び前記第2遅延値の生成に用いるゲート遅延を測定するゲート遅延モニタと、
前記第1遅延値及び前記第2遅延値の生成に用いる配線遅延を測定する配線遅延モニタと、
を含み、
前記配線遅延モニタは、
配線遅延が支配的となるように論理ゲート及び配線が設けられ、ゲート遅延及び配線遅延を出力する第1回路と、ゲート遅延のみを出力する第2回路とを備え、
前記第1回路の出力から前記第2回路の出力を減算することによって、前記第1遅延値及び前記第2遅延値の生成に用いる配線遅延を測定する、
ことを特徴とする付記1乃至5のいずれかに記載の電源電圧設定方法。
【0088】
(付記7) コンピュータに、
チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出し、
前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成し、
前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成し、
前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する、
処理を実行させることを特徴とする電源電圧設定プログラム。
【0089】
(付記8) 前記第1遅延値と前記第2遅延値との比較結果に基づいて前記チップ電源電圧を設定することを特徴とする付記7に記載の電源電圧設定プログラム。
(付記9) 前記コンピュータに、
プロセスばらつき及び電源電圧の複数の条件と、前記各条件での第3遅延値との関係を含むテーブルを作成し、
前記テーブルを参照し、前記第1遅延値と前記第3遅延値とを比較して、前記第1遅延値が該当する前記条件内の前記プロセスばらつきを抽出し、
抽出した前記プロセスばらつきと前記第2遅延値とに基づいて、前記チップ電源電圧を設定する、
処理を実行させることを特徴とする付記7に記載の電源電圧設定プログラム。
【0090】
(付記10) 前記チップ電源電圧を設定する際には、
前記テーブルを参照し、抽出した前記プロセスばらつきで、前記第2遅延値が得られる前記条件内の前記電源電圧を抽出し、
抽出した前記電源電圧を、前記チップ電源電圧に設定する、
ことを特徴とする付記9に記載の電源電圧設定プログラム。
【0091】
(付記11) 前記テーブルを作成する際には、
前記モニタ回路の前記各条件でのシミュレーションによってそれぞれ取得されるゲート遅延及び配線遅延を前記条件ごとに前記比率に基づき合成して前記第3遅延値を生成する、
ことを特徴とする付記9又は10に記載の電源電圧設定プログラム。
【0092】
(付記12) チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出する抽出部と、
前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成する第1生成部と、
前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成する第2生成部と、
前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する設定部と、
を含むことを特徴とする電源電圧設定装置。
【符号の説明】
【0093】
10,100 モニタ回路
11 ゲート遅延モニタ
11a,12a,12b,101 リング発振回路
12 配線遅延モニタ
20 レイアウトデータ
21 クリティカルパス
30,30a,110 変換テーブル
50 電源電圧設定装置
51 遅延解析部
51a 遅延解析結果
52 遅延比生成部
53 遅延比格納部
53a 遅延比抽出部
54 実測遅延格納部
55 第1遅延値生成部
56 モニタ回路シミュレーション部
57 第2遅延値生成部
59 チップ電源電圧設定部
201 CPU
202 RAM
203 HDD
204 グラフィック処理装置
205 入力インタフェース
206 光学ドライブ装置
207 通信インタフェース
208 バス
210 ネットワーク
221 モニタ
222 キーボード
223 マウス
224 光ディスク

【特許請求の範囲】
【請求項1】
コンピュータが、
チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出し、
前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成し、
前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成し、
前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する、
ことを特徴とする電源電圧設定方法。
【請求項2】
前記第1遅延値と前記第2遅延値との比較結果に基づいて前記チップ電源電圧を設定することを特徴とする請求項1に記載の電源電圧設定方法。
【請求項3】
前記コンピュータが、
プロセスばらつき及び電源電圧の複数の条件と、前記各条件での第3遅延値との関係を含むテーブルを作成し、
前記テーブルを参照し、前記第1遅延値と前記第3遅延値とを比較して、前記第1遅延値が該当する前記条件内の前記プロセスばらつきを抽出し、
抽出した前記プロセスばらつきと前記第2遅延値とに基づいて、前記チップ電源電圧を設定する、
ことを特徴とする請求項1に記載の電源電圧設定方法。
【請求項4】
前記モニタ回路は、
前記第1遅延値及び前記第2遅延値の生成に用いるゲート遅延を測定するゲート遅延モニタと、
前記第1遅延値及び前記第2遅延値の生成に用いる配線遅延を測定する配線遅延モニタと、
を含み、
前記配線遅延モニタは、
配線遅延が支配的となるように論理ゲート及び配線が設けられ、ゲート遅延及び配線遅延を出力する第1回路と、ゲート遅延のみを出力する第2回路とを備え、
前記第1回路の出力から前記第2回路の出力を減算することによって、前記第1遅延値及び前記第2遅延値の生成に用いる配線遅延を測定する、
ことを特徴とする請求項1乃至3のいずれかに記載の電源電圧設定方法。
【請求項5】
コンピュータに、
チップのレイアウトデータからクリティカルパスのゲート遅延と配線遅延の比率を抽出し、
前記チップに設けられたモニタ回路について第1電源電圧条件で実測されたゲート遅延及び配線遅延を前記比率に基づき合成して第1遅延値を生成し、
前記モニタ回路についての前記第1電源電圧条件でのシミュレーションで得られるゲート遅延及び配線遅延を前記比率に基づき合成して第2遅延値を生成し、
前記第1遅延値及び前記第2遅延値に基づいて、前記チップに適用するチップ電源電圧を設定する、
処理を実行させることを特徴とする電源電圧設定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−37472(P2013−37472A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−171849(P2011−171849)
【出願日】平成23年8月5日(2011.8.5)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】