JP2011237989A - 半導体集積回路の設計装置、その設計方法、及びその設計プログラム - Google Patents

半導体集積回路の設計装置、その設計方法、及びその設計プログラム Download PDF

Info

Publication number
JP2011237989A
JP2011237989A JP2010108357A JP2010108357A JP2011237989A JP 2011237989 A JP2011237989 A JP 2011237989A JP 2010108357 A JP2010108357 A JP 2010108357A JP 2010108357 A JP2010108357 A JP 2010108357A JP 2011237989 A JP2011237989 A JP 2011237989A
Authority
JP
Japan
Prior art keywords
register
variable
clock cycle
result
binding
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.)
Withdrawn
Application number
JP2010108357A
Other languages
English (en)
Inventor
Hiroshi Imai
井 浩 史 今
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010108357A priority Critical patent/JP2011237989A/ja
Priority to US12/982,770 priority patent/US20110276929A1/en
Publication of JP2011237989A publication Critical patent/JP2011237989A/ja
Withdrawn legal-status Critical Current

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
    • 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

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)

Abstract

【課題】LSIの消費電力の見積もりに必要な時間を短縮し、それにより、LSI設計の効率を向上させる。
【解決手段】LSIの動作が処理順序に沿って記述された動作記述91のシミュレーションを実行するシミュレータ20と、動作記述91中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果94に基づいてレジスタ転送レベル記述95を生成する高位合成装置30と、ともに用いられるLSIの設計装置10。設計装置10は、シミュレータ20のシミュレーション結果93と、レジスタに格納されるクロックサイクル毎の変数の変数名を含む高位合成装置30のバインディング結果94と、を入力する入力部11と、入力部11により入力されたシミュレーション結果93及びバインディング結果94に基づいて、レジスタに格納される変数の1クロックサイクルあたりの変化率を算出する算出部12と、算出部12により算出された変化率に基づいて動作記述91に対応するLSIの消費電力を見積もる見積部13と、を備える。
【選択図】図2

Description

本発明の実施形態は、シミュレータ及び高位合成装置とともに用いられる半導体集積回路の設計装置、その設計方法、及びその設計プログラムに関する。
近年、大規模の半導体集積回路(以下、「LSI(Large Scale Integration)」という)の設計の効率を向上するために、レジスタ転送レベル(以下、「RTL(Register Transfer Level)」という)よりも高い抽象度でLSIを設計する高位設計が採用されている。高位設計では、LSIの動作を表す動作記述のシミュレーションによりLSIの動作を確認し、高位合成ツールを用いて動作記述からRTL記述を合成する。
ところで、LSIの消費電力を低減するためには、様々な回路構成を検証する必要がある。高位設計では、高位合成ツールを用いて、動作記述からRTL記述を合成することにより、所望の消費電力の回路構成を検証される。
しかしながら、従来、消費電力の見積もりは、高位合成ツールによって合成されたRTL記述から得られるネットリストのシミュレーションにおいて実行される。ネットリストのシミュレーションでは、大量のデータのシミュレーションが実行される。従って、ネットリストのシミュレーションにおいて消費電力を見積もるためには、膨大な時間が必要である。その結果、LSI設計の効率が低下する。
特開2008−299464号公報
本発明の目的は、LSIの消費電力の見積もりに必要な時間を短縮し、それにより、LSI設計の効率を向上させることである。
本実施形態によれば、半導体集積回路の動作が処理順序に沿って記述された動作記述のシミュレーションを実行するシミュレータと、前記動作記述中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果に基づいてレジスタ転送レベル記述を生成する高位合成装置と、ともに用いられる半導体集積回路の設計装置であって、
前記シミュレータのシミュレーション結果と、前記レジスタに格納されるクロックサイクル毎の変数の変数名を含む前記高位合成装置のバインディング結果と、を入力する入力部と、
前記入力部により入力されたシミュレーション結果及びバインディング結果に基づいて、前記レジスタに格納される変数の1クロックサイクルあたりの変化率を算出する算出部と、
前記算出部により算出された変化率に基づいて前記動作記述に対応する半導体集積回路の消費電力を見積もる見積部と、
を備えることを特徴とする設計装置が提供される。
第1実施形態に係る設計装置10を含む設計システム1の構成を示すブロック図。 図1の設計装置10及び高位合成装置30の詳細な構成を示すブロック図。 図1の動作記述91の一例を示す図。 図1のシミュレーション結果93の一例を示す図。 図2のスケジューリング部31のスケジューリング結果の一例を示す図。 図1のバインディング結果94の一例を示す図。 図1の設計装置10による見積処理の手順を示すフローチャート。 図7のレジスタテーブル作成ステップ(S702)の手順を示すフローチャート。 レジスタテーブルの概略図。 第2実施形態に係る監視処理の手順を示すフローチャート。
(第1実施形態)
第1実施形態について、図面を参照して詳細に説明する。
第1実施形態に係る設計装置の構成について説明する。図1は、第1実施形態に係る設計装置10を含む設計システム1の構成を示すブロック図である。図2は、図1の設計装置10及び高位合成装置30の詳細な構成を示すブロック図である。図3は、図1の動作記述91の一例を示す図である。図4は、図1のシミュレーション結果93の一例を示す図である。図5は、図2のスケジューリング部31のスケジューリング結果の一例を示す図である。図6は、図1のバインディング結果94の一例を示す図である。
図1に示すように、第1実施形態に係る設計システム1は、設計装置10と、シミュレータ20と、高位合成装置30と、入力装置40と、出力装置50と、を備える。設計装置10には、シミュレータ20及び高位合成装置30が接続される。入力装置40には、設計装置10、シミュレータ20、及び高位合成装置30が接続される。出力装置50には、設計装置10及び高位合成装置30が接続される。例えば、入力装置40はキーボードであり、出力装置50はディスプレイやデータベースである。
図1のシミュレータ20は、LSIの動作が処理順序に沿って記述された動作記述91のシミュレーションを実行する。具体的には、シミュレータ20は、動作記述91及び指示92を入力装置40から入力する。指示92には、シミュレーションに必要な様々な情報が含まれる。例えば、図3に示すように、動作記述91は、変数を定義する変数コード91aと、出力信号を定義する出力コード91bと、を含む。図3の動作記述91は、LSIの外部から入力された4つの値が、それぞれ、変数名“a”〜“d”に割り当てられ、これらの4つの変数名“a”〜“d”について、“x = a + b”、“y = c + d”、“z = x + y”という演算が実行され、その結果である変数名“z”の変数値をLSIの外部に出力する、というLSIの動作を表す。図3の動作記述91では、変数名“a”に“a_in.read( )”が代入され、変数名“b”に“b_in.read( )”が代入され、変数名“c”に“c_in.read( )”が代入され、変数名“d”に“d_in.read( )”が代入され、変数名“x”に“a + b”が代入され、変数名“y”に“c + d”が代入され、変数名“z”に“x + y”が代入される。また、図3の動作記述91では、出力信号は“z_out.write(z)”と定義されるので、出力信号の値は変数名“z”の変数値である。シミュレーション結果93は、図2の設計装置10の入力部11に送られる。図4のシミュレーション結果93では、変数名“a”の変数値が“0001”であり、変数名“b”の変数値が“0001”であり、変数名“c”の変数値が“0010”であり、変数名“d”の変数値が“0010”であり、変数名“x”の変数値が“0010”であり、変数名“y”の変数値が“0100”であり、変数名“z”の変数値が“0110”である。すなわち、図3の動作記述91に対応するLSIの出力信号の値は“0110”である。
図1の高位合成装置30は、動作記述91中の演算がどのクロックサイクルで実行されるかを決定するスケジューリング処理を実行し、そのスケジューリング結果に基づいて動作記述91中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果に基づいてRTL記述95を生成する。図2に示すように、高位合成装置30は、スケジューリング部31と、バインディング部32と、RTL記述生成部33と、を備える。
図2のスケジューリング部31は、動作記述91中の演算がどのクロックサイクルで実行されるかを決定するスケジューリング処理を実行する。スケジューリング部31のアルゴリズムは、ASAP(As Soon As Possible)やALAP(As Late As Possible)等の任意のアルゴリズムである。具体的には、スケジューリング部31は、動作記述91及び指示92を入力装置40から入力する。指示92には、高位合成に必要な様々な情報が含まれる。スケジューリング部31は、動作記述91を解析することにより、コントロールデータフローグラフ(以下、「CDFG」(Control Data Flow Graph)という)を生成する。CDFGは、変数名と、複数の変数を用いる演算と、クロックサイクルと、を含む。図5のCDFGでは、演算シンボルを含む円が動作記述91中の演算を表し、演算間の線がデータの流れを表し、変数名“a”〜“c”及び“x”〜“z”を含む矩形がレジスタへのデータの格納を表し、破線がクロックサイクルの境界を表し、C1〜C4がクロックサイクルのラベルである。図5では、クロックサイクルC1の前に、変数名“a”及び“b”の変数値がレジスタに格納される。クロックサイクルC1では、変数名“a”の変数値と変数名“b”の変数値とが加算されることにより変数名“x”の変数値が生成され、変数名“c”、“d”、及び“x”の変数値がレジスタに格納される。クロックサイクルC2では、変数名“c”の変数値と変数名“d”の変数値とが加算されることにより変数名“y”の変数値が生成され、レジスタに格納され、クロックサイクルC1においてレジスタに格納された変数名“x”の変数値が保持される。クロックサイクルC3では、変数名“x”の変数値と変数名“y”の変数値とが加算されることにより変数名“z”の変数値が生成され、レジスタに格納される。クロックサイクルC4では、クロックサイクルC3においてレジスタに格納された変数名“z”の変数値が保持される。
図2のバインディング部32は、スケジューリング部31により生成されたCDFGに基づいて、CDFGで表されるLSIの動作を実現するための回路部品を割り当てるバインディング処理を実行する。バインディング部32のアルゴリズムは、レフトエッジ等の任意のアルゴリズムである。具体的には、バインディング部32は、CDFG中の演算を演算器に割り当て、CDFG中のクロックサイクルをまたぐ変数(変数名及び変数値)の受渡しをレジスタに割り当てる。バインディング結果94は、レジスタ名と、変数名と、クロックサイクルと、を含む。バインディング結果94は、設計装置10の算出部12及びRTL記述生成部33に送られる。図6のバインディング結果94は、CDFG中のクロックサイクルをまたぐ変数の受渡しに関するバインディング結果を示す。図6では、REG1〜REG3がレジスタのラベルであり、破線がクロックサイクルの境界を表し、C1〜C4がクロックサイクルのラベルであり、実線矢印が各レジスタに値が保持されている期間を表し、実線矢印中のアルファベットがレジスタに保持された変数値に対応する変数名を表す。すなわち、バインディング結果94は、動作記述91中の変数が、どのレジスタに割り当てられているかを示す。図6では、クロックサイクルC1において、変数名“a”の変数値がレジスタREG1に保持され、変数名“b”の変数値がレジスタREG2に保持される。クロックサイクルC2において、変数名“c”の変数値がレジスタREG1に保持され、変数名“d”の変数値がレジスタREG2に保持され、変数名“x”の変数値がレジスタREG3に保持される。クロックサイクルC3において、変数名“y”の変数値がレジスタREG1に保持され、変数名“x”の変数値がレジスタREG3に保持される。クロックサイクルC4において、変数名“z”の変数値がレジスタREG1に保持される。
図2のRTL記述生成部33は、バインディング部32から送られたバインディング結果94に基づいて、動作記述91に対応するRTL記述95を生成し、図1の出力装置50に送る。
図1の設計装置10は、シミュレーション結果93及びバインディング結果94に基づいて、動作記述91に対応するLSIの消費電力を見積もる。図2に示すように、設計装置10は、入力部11と、算出部12と、見積部13と、出力部14と、を備える。
図2の入力部11は、指示92を図1の入力装置40から入力し、シミュレーション結果93をシミュレータ20から入力し、レジスタに格納されるクロックサイクル毎の変数の変数名を含むバインディング結果94を高位合成装置30のバインディング部32から入力する。
図2の算出部12は、入力部11により入力されたシミュレーション結果93及びバインディング結果94に基づいて、レジスタに格納される変数の1クロックサイクルあたりの変化率を算出する。具体的には、算出部12は、レジスタに格納される変数のクロックサイクル毎の変数値を示すレジスタテーブルを作成し、レジスタテーブル用いて変化率を算出する。換言すると、1クロックサイクルあたりの変化率とは、LSIの1回の動作においてレジスタに格納される変数が変化する確率である。算出部12の詳細は後述する。
図2の見積部13は、算出部12により算出された変化率に基づいて動作記述91に対応するLSIの消費電力を見積もる。見積部13の詳細は後述する。
図2の出力部14は、見積部13により見積もられた消費電力を示す消費電力情報96を図1の出力装置50に出力する。
第1実施形態に係る設計装置の処理について説明する。図7は、図1の設計装置10による見積処理の手順を示すフローチャートである。図8は、図7のレジスタテーブル作成ステップ(S702)の手順を示すフローチャートである。図9は、レジスタテーブルの概略図である。
<図7:入力ステップ(S701)> 図2の入力部11が、指示92、シミュレーション結果93、及びバインディング結果94を入力する。なお、入力部11は、さらに、動作記述91及びCDFGを入力しても良い。
<図7:レジスタテーブル作成ステップ(S702)> 図2の算出部12が、入力ステップ(S701)において入力されたシミュレーション結果93及びバインディング結果94に基づいてレジスタテーブルを作成する。
図7のレジスタテーブル作成ステップ(S702)について説明する。
<図8:S801> 図2の算出部12が、変数“R”に “REGi”を設定する。変数“R”は、図7のレジスタテーブル作成ステップ(S702)の処理対象となるレジスタを示す。“i”の初期値は1である。それにより、図7のレジスタテーブル作成ステップ(S702)の処理対象となるレジスタが決まる。例えば、最初のS801では、図6のレジスタREG1が図7のレジスタテーブル作成ステップ(S702)の処理対象となる。
<図8:S802> 図2の算出部12が、変数“C”に“Cj”を設定する。変数“C”は、図7のレジスタテーブル作成ステップ(S702)の処理対象となるクロックサイクルを示す。“j”の初期値は1である。それにより、図7のレジスタテーブル作成ステップ(S702)の処理対象となるクロックサイクルが決まる。例えば、最初のS802では、図6のクロックサイクルC1が図7のレジスタテーブル作成ステップ(S702)の処理対象となる。
<図8:変数名取得ステップ(S803)> 図2の算出部12が、バインディング結果94から、変数“C”に対応するクロックサイクルにおいて変数“R”に対応するレジスタに割り当てられた変数名を取得する。それにより、処理対象となるクロックサイクルにおいて処理対象となるレジスタに割り当てられた変数名が決まる。例えば、最初の変数名取得ステップ(S803)では、図6のクロックサイクルC1においてレジスタREG1に割り当てられた変数名“a”が取得される。
<図8:変数値取得ステップ(S804)> 図2の算出部12が、シミュレーション結果93から、変数“R”に対応するレジスタに格納された変数値を取得する。それにより、変数名取得ステップ(S803)において取得された変数名の変数値が決まる。例えば、最初の変数値取得ステップ(S804)では、図4の変数名“a”の変数値“0001”が取得される。
<図8:変数値設定ステップ(S805)> 図2の算出部12が、変数“R”及び“C”に対応するレジスタテーブルの(REGi,Cj)に、変数値取得ステップ(S804)において取得した変数値を設定する。例えば、最初の変数値設定ステップ(S805)では、図9のレジスタテーブルの(REG1,C1)に、図3の変数名“a”の変数値“0001”(図4を参照)が設定される。
<図8:S806> 図2の算出部12が、未設定クロックサイクルの有無を判定する。例えば、算出部12は、図9のレジスタテーブルにおいて、図7のレジスタテーブル作成ステップ(S702)の処理対象となるレジスタREG1及び終端のクロックサイクルC4に対応するレジスタテーブルの(REG1,C4)に変数値が設定されていない場合には未設定クロックサイクルがあると判定し、そのようなレジスタテーブルの(REG1,C4)に変数値が設定されている場合には未設定クロックサイクルがないと判定する。未設定クロックサイクルがあると判定された場合には(S806−YES)、S807が実行される。未設定クロックサイクルがないと判定された場合には(S806−NO)、S811が実行される。
<図8:S807> 図2の算出部12が、“j”に“j + 1”を設定する。それにより、図7のレジスタテーブル作成ステップ(S702)の処理対象となるクロックサイクルが変更される。S807の後は、S802が実行される。
<図8:S811> 図2の算出部12が、レジスタテーブルが完成したか否かを判定する。例えば、算出部12は、図9のレジスタテーブルにおいて、終端のレジスタREG3及び終端のクロックサイクルC4に対応するレジスタテーブルの(REG3,C4)に変数値が設定されていない場合にはレジスタテーブルが未完成であると判定し、そのようなレジスタテーブルの(REG3,C4)に変数値が設定されている場合にはレジスタテーブルが完成したと判定する。レジスタテーブルが未完成であると判定された場合には(S811−NO)、S812が実行される。レジスタテーブルが完成したと判定された場合には(S811−YES)、図7のレジスタテーブル作成ステップ(S702)が終了する。図7のレジスタテーブル作成ステップ(S702)が終了すると、図7の算出ステップ(S703)が実行される。
<図8:S812> 図2の算出部12が、“i”に“i + 1”を設定する。それにより、図7のレジスタテーブル作成ステップ(S702)の処理対象となるレジスタが変更される。S812の後は、S801が実行される。
すなわち、図2の算出部12は、バインディング結果94に含まれるレジスタの種類と、クロックサイクルと、をパラメータとして、変数値を特定する図9のレジスタテーブルを作成し、バインディング結果94から変数名を取得し、シミュレーション結果93からその取得した変数名に対応する変数値を取得し、その取得した変数値をレジスタテーブルに設定する。
図7のレジスタテーブル作成ステップ(S702)が終了すると、図9のレジスタテーブルが完成する。
<図7:算出ステップ(S703)> 図2の算出部12が、レジスタテーブル作成ステップ(S702)において作成されたレジスタテーブル用いて、変化率を算出する。具体的には、算出部12は、式1を用いて変化率を算出する。式1において、“CLK”は動作記述91で表された動作に必要なクロックサイクル数であり、“CNT”はレジスタに格納される変数値の変化回数を示す。すなわち、式1の分母は、算出ステップ(S703)の対象となるクロックサイクル期間を示す。図9の矢印は、変数が変化することを示す。例えば、図9のレジスタREG1に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変化回数は3である(レジスタテーブルの(REG1,C1)〜(REG1,C4)を参照)ので、変化率Pは1である。レジスタREG2に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変化回数は1回である(レジスタテーブルの(REG2,C1),(REG2,C2)を参照)ので、変化率Pは1/3である。レジスタREG3に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変化回数は1である(レジスタテーブルの(REG3,C1),(REG3,C2)を参照)ので、変化率Pは1/3である。
Figure 2011237989
<図7:見積ステップ(S704)> 図2の見積部13が、算出ステップ(S703)において算出された変化率Pに基づいて動作記述91で表された動作に必要なLSIの消費電力を見積もる。具体的には、見積部13は、LSI中のレジスタの消費電力、メモリの消費電力、及び演算器の消費電力を含む消費電力情報96を格納するライブラリと、レジスタの変数値の変化率及び演算器の変数値の変化率(トグル率)と、を用いて、レジスタのスイッチング電力及び演算器のスイッチング電力を算出し、それぞれのスイッチング電力を合算する。その合算結果が、LSIの消費電力の見積もり値である。
<図7:出力ステップ(S705)> 図2の出力部14が、見積ステップ(S704)において見積もられた消費電力を示す消費電力情報96を出力装置(図示せず)に送る。出力ステップ(S705)が終了すると、図7の見積処理が終了する。
すなわち、第1実施形態に係る設計装置10は、RTL記述95から得られるネットリストのシミュレーションにおいて消費電力を見積もるのではなく、バインディング結果94及びシミュレーション結果93を用いて消費電力を見積もる。従って、LSIの消費電力の見積もりに必要な時間を短縮することができる。
(第2実施形態)
第2実施形態について、図面を参照して詳細に説明する。第1実施形態では、図2の入力部11が、バインディング部32から送られたバインディング結果94を入力する例について説明した。第2実施形態では、入力部11が、バインディング結果94をバインディング部32に所定期間毎に要求する例について説明する。なお、上述の実施形態と同様の内容については、説明を省略する。
第2実施形態に係る設計装置の構成は、第1実施形態に係る設計装置と同様である(図2を参照)。
第2実施形態に係る設計装置の処理について説明する。図10は、第2実施形態に係る監視処理の手順を示すフローチャートである。
第2実施形態に係る見積処理は、図7の見積処理と同様である。図10の監視処理は、図7の見積処理と並行に、所定期間毎に実行される。
<図10:監視ステップ(S1001)> 図2の入力部11が、所定期間毎に高位合成装置30のバインディング部32を監視する。具体的には、入力部11は、図7の入力ステップ(S701)において入力されたバインディング結果94(以下、「第1バインディング結果」という)と、監視ステップ(S1001)が実行されたときのバインディング結果94(以下、「第2バインディング結果」という)と、を比較し、両者が異なるか否かを判定する。
<図10:S1002> バインディング結果が更新された(第1バインディング結果が第2バインディング結果と異なる)場合には(S1002−YES)、第2バインディング結果入力ステップ(S1003)が実行される。バインディング結果が更新されていない(第1バインディング結果が第2バインディング結果に等しい)場合には(S1002−NO)、監視処理が終了する。
<図10:第2バインディング結果入力ステップ(S1003)> 図2の入力部11が、第2バインディング結果をバインディング部32から入力する。第2バインディング結果入力ステップ(S1003)が実行されると、図7のレジスタテーブル作成ステップ(S702)が実行される。レジスタテーブル作成ステップ(S702)では、第1バインディング結果の代わりに、第2バインディング結果が用いられる。
すなわち、第2実施形態に係る設計装置10は、常に最新のバインディング結果94に基づいて消費電力を見積もる。従って、バインディング結果94が更新された場合に、見積処理を再実行するための指示をユーザが入力しなくても、更新されたバインディング結果94に対応する消費電力情報96を得ることができる。
上記の本実施形態によれば、設計装置10は、RTL記述95から得られるネットリストのシミュレーションにおいてLSIの消費電力を見積もるのではなく、バインディング結果94及びシミュレーション結果93を用いてLSIの消費電力を見積もる。従って、LSIの消費電力の見積もりに必要な時間を短縮することができる。
また、本実施形態では、図7の算出ステップ(S703)において、レジスタに格納される4ビットの変数値の変化回数に基づいて変化率Pを算出する例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、レジスタに格納される変数のビット毎の変化率Pを算出する場合にも同様に適用可能である。それにより、LSIの消費電力の見積精度を向上させることができる。例えば、図9のレジスタテーブルのレジスタREG1の変数値の1ビット目に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変数値の変化回数は1である(レジスタテーブルの(REG1,C1),(REG1,C2)を参照)ので、変化率Pは1/3である。レジスタREG1の変数値の2ビット目に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変数値の変化回数は3である(レジスタテーブルの(REG1,C1)〜(REG1,C4)を参照)ので、変化率Pは1である。レジスタREG1の変数値の3ビット目に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変数値の変化回数は1である(レジスタテーブルの(REG1,C2),(REG1,C3)を参照)ので、変化率Pは1/3である。レジスタREG1の変数値の4ビット目に関しては、クロックサイクルC1〜C4(クロックサイクル期間は3)あたりの変数値の変化回数は0であるので、変化率Pは0である。
また、本実施形態では、レジスタに格納される変数値の変化率Pの例について説明したが、本発明の範囲はこれに限られるものではない。本発明は、演算器で用いられる変数値の変化率についても同様に適用可能である。
本実施形態に係る設計装置10の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、設計装置10の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
また、本実施形態に係る設計装置10の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1 設計システム
10 設計装置
11 入力部
12 算出部
13 見積部
14 出力部
20 シミュレータ
30 高位合成装置
31 スケジューリング部
32 バインディング部
33 RTL記述生成部
91 動作記述
92 指示
93 シミュレーション結果
94 バインディング結果
95 RTL記述
96 消費電力情報

Claims (7)

  1. 半導体集積回路の動作が処理順序に沿って記述された動作記述のシミュレーションを実行するシミュレータと、前記動作記述中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果に基づいてレジスタ転送レベル記述を生成する高位合成装置と、ともに用いられる半導体集積回路の設計装置であって、
    前記シミュレータのシミュレーション結果と、前記レジスタに格納されるクロックサイクル毎の変数の変数名を含む前記高位合成装置のバインディング結果と、を入力する入力部と、
    前記入力部により入力されたシミュレーション結果及びバインディング結果に基づいて、前記レジスタに格納される変数の1クロックサイクルあたりの変化率を算出する算出部と、
    前記算出部により算出された変化率に基づいて前記動作記述に対応する半導体集積回路の消費電力を見積もる見積部と、
    を備えることを特徴とする設計装置。
  2. 前記算出部は、前記レジスタに格納される変数の前記クロックサイクル毎の変数値を設定したレジスタテーブルを作成し、前記レジスタテーブル用いて前記変化率を算出する、
    請求項1記載の設計装置。
  3. 前記算出部は、前記バインディング結果に含まれる前記レジスタの種類と、クロックサイクルとをパラメータとして、前記変数値を特定する前記レジスタテーブルを作成し、前記バインディング結果から変数名を取得し、前記シミュレーション結果からその取得した変数名に対応する変数値を取得し、その取得した変数値を前記レジスタテーブルに設定する、
    請求項2記載の設計装置。
  4. 前記算出部は、1クロックサイクルあたりの前記レジスタに格納される変数のビット毎の前記変化率を算出する、
    請求項1乃至3の何れか1項記載の設計装置。
  5. 前記入力部は、所定期間毎に前記高位合成装置を監視し、前記高位合成装置により前記バインディング結果が更新されたときに、その更新されたバインディング結果を前記高位合成装置から入力する、
    請求項1乃至4の何れか1項記載の設計装置。
  6. 半導体集積回路の動作が処理順序に沿って記述された動作記述のシミュレーションと、前記動作記述中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果に基づいてレジスタ転送レベル記述を生成する高位合成処理と、ともに用いられる半導体集積回路の設計方法であって、
    シミュレーション結果と、前記レジスタに格納されるクロックサイクル毎の変数の変数名を含むバインディング結果と、を入力し、
    前記シミュレーション結果及び前記バインディング結果に基づいて、前記レジスタに格納される変数の1クロックサイクルあたりの変化率を算出し、
    前記変化率に基づいて前記動作記述に対応する半導体集積回路の消費電力を見積もる、
    ことを特徴とする設計方法。
  7. 半導体集積回路の動作が処理順序に沿って記述された動作記述のシミュレーションプログラムと、前記動作記述中の変数をレジスタに割り当てるバインディング処理を実行し、そのバインディング結果に基づいてレジスタ転送レベル記述を生成する高位合成プログラムと、ともに用いられる半導体集積回路の設計プログラムであって、
    シミュレーション結果と、前記レジスタに格納されるクロックサイクル毎の変数の変数名を含むバインディング結果と、を入力し、
    前記シミュレーション結果及び前記バインディング結果に基づいて、前記レジスタに格納される変数の1クロックサイクルあたりの変化率を算出し、
    前記変化率に基づいて前記動作記述に対応する半導体集積回路の消費電力を見積もる、
    ことを特徴とする設計プログラム。
JP2010108357A 2010-05-10 2010-05-10 半導体集積回路の設計装置、その設計方法、及びその設計プログラム Withdrawn JP2011237989A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010108357A JP2011237989A (ja) 2010-05-10 2010-05-10 半導体集積回路の設計装置、その設計方法、及びその設計プログラム
US12/982,770 US20110276929A1 (en) 2010-05-10 2010-12-30 Designing apparatus, designing method, and computer readable medium storing designing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010108357A JP2011237989A (ja) 2010-05-10 2010-05-10 半導体集積回路の設計装置、その設計方法、及びその設計プログラム

Publications (1)

Publication Number Publication Date
JP2011237989A true JP2011237989A (ja) 2011-11-24

Family

ID=44902820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010108357A Withdrawn JP2011237989A (ja) 2010-05-10 2010-05-10 半導体集積回路の設計装置、その設計方法、及びその設計プログラム

Country Status (2)

Country Link
US (1) US20110276929A1 (ja)
JP (1) JP2011237989A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8739094B2 (en) * 2011-12-22 2014-05-27 Lsi Corporation Power estimation using activity information
JP6255880B2 (ja) * 2013-10-10 2018-01-10 株式会社ソシオネクスト 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
US10192014B2 (en) * 2015-08-27 2019-01-29 Mitsubishi Electric Corporation Circuit design support apparatus and computer readable medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260809B2 (en) * 2005-07-25 2007-08-21 Nec Laboratories America, Inc. Power estimation employing cycle-accurate functional descriptions
EP2006784A1 (en) * 2007-06-22 2008-12-24 Interuniversitair Microelektronica Centrum vzw Methods for characterization of electronic circuits under process variability effects
US8095353B2 (en) * 2007-12-03 2012-01-10 Fujitsu Limited Power index computing apparatus, method of computing power index, and computer product

Also Published As

Publication number Publication date
US20110276929A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
JP2006063985A (ja) エンジン作動モデル化方法
JP2005293163A (ja) 消費電力計算方法及び装置
US9129075B2 (en) Mesh generation system
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
EP3805995A1 (en) Method of and apparatus for processing data of a deep neural network
JP2011237989A (ja) 半導体集積回路の設計装置、その設計方法、及びその設計プログラム
Richa et al. High-level power estimation techniques in embedded systems hardware: an overview
JP4293562B2 (ja) ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
JP6065543B2 (ja) ニューラルネットワーク設計方法、フィッティング方法、及びプログラム
Couckuyt et al. Identification of quasi-optimal regions in the design space using surrogate modeling
US20230034245A1 (en) Lbm-based fluid analysis simulation device, method, and computer program
JP2021114117A (ja) 情報処理プログラム、情報処理方法および情報処理装置
JP6067596B2 (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
JP2013524302A (ja) 精度を調節可能なマクロモデル電力解析のための方法及び装置
JP2006202330A (ja) システムlsiの設計方法及びこれを記憶した記録媒体
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
TWI841724B (zh) 執行模擬基礎物理設計規則以最佳化電路佈局
US8539415B2 (en) Reconfigurable circuit, its design method, and design apparatus
Wang et al. A framework for core-level modeling and design of reconfigurable computing algorithms
JP2010026968A (ja) 回路生成支援プログラム及び回路生成支援方法
JP2007206943A (ja) 電磁界回路連携解析プログラム、記録媒体、解析方法、および解析装置
JP2019028883A (ja) 解算出装置、解算出方法及び解算出プログラム
JP5310312B2 (ja) 集積回路の消費電力検証方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130806