(57)【要約】【課題】従来の動作合成装置では、ステートリテンション動作に対応する半導体装置を作成することが困難であった。【解決手段】本発明の動作合成装置は、動作記述による動作を実現するデータフローグラフと、データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して演算器及びレジスタによるデータパスグラフと、データフローグラフに基づく処理順序を制御する制御回路と、を生成し、データパスグラフと制御回路とを含むＲＴＬ記述を生成する動作合成部１０と、動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、データパスグラフのレジスタに関する情報に基づき被制御変数に対応するリテンションレジスタを特定し、リテンションレジスタを含む電力仕様記述を生成する電力仕様記述抽出部２０と、を有する。【選択図】図２
2012159977.tif 000002
【特許請求の範囲】
【請求項１】
動作記述からＲＴＬ（Register Transfer Level）記述を生成する動作合成装置であって、
前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成する動作合成部と、
前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、前記リテンションレジスタを含む電力仕様記述を生成する電力仕様記述抽出部と、
を有する動作合成装置。
【請求項２】
前記動作合成部は、
前記データフローグラフと共に、データフローグラフ中の状態と前記動作記述中の変数とを関連付ける状態−変数対応表を生成し、
前記データパスグラフと共に前記データパスグラフ中のレジスタと前記動作記述中の変数とを関連付ける変数−レジスタ対応表を生成する請求項１に記載の動作合成装置。
【請求項３】
前記電力仕様記述抽出部は、
前記処理属性情報から前記ステートリテンション動作が行われる制御対象状態を示す電力制御−状態対応表を生成し、
前記状態−変数対応表と前記電力制御−状態対応表とに基づき前記被制御変数を特定し、
前記被制御変数に対応する被制御レジスタを前記変数−レジスタ対応表から特定し、
被制御レジスタを前記リテンションレジスタとして明示する前記電力仕様記述を生成する請求項２に記載の動作合成装置。
【請求項４】
動作記述からＲＴＬ（Register Transfer Level）記述を生成する動作合成方法であって、
前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、
前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成し、
前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、
前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、
前記リテンションレジスタを含む電力仕様記述を生成する動作合成方法。
【請求項５】
前記データフローグラフと共に、データフローグラフ中の状態と前記動作記述中の変数とを関連付ける状態−変数対応表を生成し、
前記データパスグラフと共に前記データパスグラフ中のレジスタと前記動作記述中の変数とを関連付ける変数−レジスタ対応表を生成する請求項４に記載の動作合成方法。
【請求項６】
前記処理属性情報から前記ステートリテンション動作が行われる制御対象状態を示す電力制御−状態対応表を生成し、
前記状態−変数対応表と前記電力制御−状態対応表とに基づき前記被制御変数を特定し、
前記被制御変数に対応する被制御レジスタを前記変数−レジスタ対応表から特定し、
被制御レジスタを前記リテンションレジスタとして明示する前記電力仕様記述を生成する請求項５に記載の動作合成方法。
【請求項７】
演算装置において実行され、記憶装置に格納された動作記述からＲＴＬ（Register Transfer Level）記述を生成し、前記ＲＴＬ記述を前記記憶装置に格納する動作合成プログラムであって、
前記記憶装置から前記動作記述を読み込み、
前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、
前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成して前記記憶装置に格納し、
前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、
前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、
前記リテンションレジスタを含む電力仕様記述を生成して、前記電力仕様記述を前記記憶装置に格納する動作合成プログラム。
【請求項８】
前記データフローグラフと共に、データフローグラフ中の状態と前記動作記述中の変数とを関連付ける状態−変数対応表を生成し、
前記データパスグラフと共に前記データパスグラフ中のレジスタと前記動作記述中の変数とを関連付ける変数−レジスタ対応表を生成する請求項７に記載の動作合成プログラム。
【請求項９】
前記処理属性情報から前記ステートリテンション動作が行われる制御対象状態を示す電力制御−状態対応表を生成し、
前記状態−変数対応表と前記電力制御−状態対応表とに基づき前記被制御変数を特定し、
前記被制御変数に対応する被制御レジスタを前記変数−レジスタ対応表から特定し、
被制御レジスタを前記リテンションレジスタとして明示する前記電力仕様記述を生成する請求項８に記載の動作合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動作合成装置、動作合成方法及び動作合成プログラムに関し、特に設計対象の半導体装置の動作を記述した動作記述に基づき半導体装置のＲＴＬ記述を生成する動作合成装置、動作合成方法及び動作合成プログラムに関する。
【背景技術】
【０００２】
半導体装置の設計においては、複数の設計レベルが定義されている。この設計レベルでは、具体的な回路に近い設計情報による設計が低位レベルとされ、抽象度の高い設計情報による設計が高位レベルとされる。近年、半導体装置に実装される回路（特に論理回路）の回路規模の増大に伴い、設計レベルがより高位になってきている。例えば、近年では、高位言語設計として動作合成による設計提案されている。動作合成では、Ｃ言語、ｓｙｓｔｅｍＣ言語等により回路動作を記述した動作記述に基づきＲＴＬ（Register Transfer Level）記述を合成する。このように、高位言語設計を進めることでより効率的に大規模な回路を設計することが可能になる。この動作記述に基づく動作合成の一例が特許文献１に開示されている。
【０００３】
一方、近年では、半導体装置の低消費電力化が強く要求されている。この低消費電力化の一手法として、回路ブロック毎の電力制御が提案されている。例えば、複数の回路ブロックにより半導体装置が構成されている場合に、回路ブロックの利用状況に応じて、回路ブロック毎に電源の供給と遮断とを切り換える。さらに、このような回路ブロック毎の電源制御による電力削減をより効率よく行うために、ステートリテンション技術が提案されている。ステートリテンション技術は、回路ブロックの電源を遮断した場合に、回路ブロックの電源遮断後も当該回路ブロック内のレジスタの値を保持するように回路を構成するものである。これにより、値を保持するためだけに、演算が行われない回路ブロックへの電源供給を行う必要がなくなり、消費電力を削減することができる。このようなステートリテンション技術を実現するための言語としてＣＰＦ（Common Power Format）、ＵＰＦ（Unified Power Format）等の電力仕様記述が提案されている。
【０００４】
ここで、ＣＰＦを用いた半導体装置の設計手法が非特許文献１に開示されている。より具体的には、非特許文献１では、ＣＰＦにより設計を行うことで、ＲＴＬ記述で定義された電源遮断領域の電源を所定の状態で遮断状態とする場合に、当該電源遮断領域に含まれる所定の記憶素子については電源を遮断せずに値を保持することが可能な半導体装置の設計方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３３４４６６号公報
【非特許文献】
【０００６】
【非特許文献１】"Common Power Format Language Reference", Version 1.1, April 2009, Cadence社
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記した動作合成技術を用いて動作記述からＲＴＬ記述を作成した場合、ＲＴＬ記述に含まれるインスタンス名は動作合成装置により自動的に割り振られる。そのため、動作合成技術により生成されたＲＴＬ記述のレジスタ名と動作記述中の変数との関係は不明である。そのため、動作合成によりＲＴＬ記述を作成した場合、電力仕様記述を作成することができない。つまり、従来の設計方法により動作記述から設計を行う場合、電力仕様記述を作成できず、ステートリテンション技術を適用した半導体装置を設計できない問題がある。また、高位言語に基づく従来の設計方法では、低消費電力の半導体装置を設計できない問題がある。
【課題を解決するための手段】
【０００８】
本発明にかかる動作合成装置の一態様は、動作記述からＲＴＬ（Register Transfer Level）記述を生成する動作合成装置であって、前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成する動作合成部と、前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、前記リテンションレジスタを含む電力仕様記述を生成する電力仕様記述抽出部と、を有する。
【０００９】
本発明にかかる動作合成方法の一態様は、動作記述からＲＴＬ（Register Transfer Level）記述を生成する動作合成方法であって、前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成し、前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、前記リテンションレジスタを含む電力仕様記述を生成する。
【００１０】
本発明にかかる動作合成プログラムの一態様は、演算装置において実行され、記憶装置に格納された動作記述からＲＴＬ（Register Transfer Level）記述を生成し、前記ＲＴＬ記述を前記記憶装置に格納する動作合成プログラムであって、前記記憶装置から前記動作記述を読み込み、前記動作記述による動作を実現するデータフローグラフと、前記データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して前記演算器及び前記レジスタによるデータパスグラフと、前記データフローグラフに基づく処理順序を制御する制御回路と、を生成し、前記データパスグラフと前記制御回路とを含むＲＴＬ記述を生成して前記記憶装置に格納し、前記動作記述に含まれる処理属性情報によりステートリテンション動作に必要な被制御変数を特定し、前記データパスグラフの前記レジスタに関する情報に基づき前記被制御変数に対応するリテンションレジスタを特定し、前記リテンションレジスタを含む電力仕様記述を生成して、前記電力仕様記述を前記記憶装置に格納する。
【００１１】
本発明にかかる動作合成装置、動作合成方法及び動作合成プログラムによれば、動作記述中の処理属性情報により指定された被制御変数が格納される被制御レジスタとＲＴＬ記述に含まれるレジスタとの関係を特定できる。これにより、本発明にかかる動作合成装置、動作合成方法及び動作合成プログラムは、特定された被制御レジスタをリテンションレジスタとして含む電力仕様記述を作成することができる。
【発明の効果】
【００１２】
本発明にかかる動作合成装置、動作合成方法及び動作合成プログラムによれば、動作合成方法及び動作合成プログラムによれば、動作記述からＲＴＬ記述と当該ＲＴＬ記述に対応する電力仕様記述とを生成することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかる半導体装置の設計手順を示すフローチャートである。
【図２】実施の形態１にかかる動作合成装置のブロック図である。
【図３】実施の形態１にかかる動作合成装置の動作手順を示すフローチャートである。
【図４】実施の形態１にかかる動作合成装置で扱う動作記述の一例である。
【図５】図４の動作記述に基づき生成されるデータフローグラフを示す図である。
【図６】図４の動作記述に基づき生成される状態遷移図である。
【図７】図４の動作記述に基づき生成される状態−変数対応表である。
【図８】図４の動作記述に基づき生成されるデータパスグラフを示す図である。
【図９】図８のデータパスグラフに基づき生成される変数−レジスタ対応表である。
【図１０】図４の動作記述に基づき生成される電力制御−状態対応表である。
【図１１】図４の動作記述に基づき生成される電力仕様記述の一例を示す図である。
【発明を実施するための形態】
【００１４】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。実施の形態１にかかる動作合成装置は、半導体装置の設計段階で用いられる。動作合成処理は、高位合成処理とも呼ばれ、半導体装置の設計の初期の段階で行われる処理である。そこで、半導体装置の設計手順を示すフローチャートを図１に示す。なお、図１に示すフローチャートは、動作記述等の高位言語に基づく半導体装置の設計手順を示すものである。
【００１５】
図１に示すフローチャートでは、まず、作成する半導体装置の動作をＣ言語等の高位言語を用いて記述した動作記述Ｆ１を作成する（ステップＳ１）。続いて。動作記述Ｆ１を読み込み、動作合成処理を行う（ステップＳ２）。動作合成処理では、ＲＴＬ（Register Transfer Level）記述Ｆ２と電力仕様記述Ｆ３が生成される。ここで、ＲＴＬ記述Ｆ２は、動作記述Ｆ１に基づく演算を行うための演算器とレジスタとを含む回路構成を記述したものである。また、動作合成処理によって電力仕様記述Ｆ３を生成する点が実施の形態１にかかる動作合成処理の特徴の１つである。
【００１６】
続いて、ＲＴＬ記述Ｆ２と電力仕様記述Ｆ３とを読み込んで、論理合成処理を行い、ネットリストＦ４を生成する（ステップＳ３）。このネットリストＦ４では、ＲＴＬ記述Ｆ２に記載された演算器及びレジスタ等を実現するためのゲートと、これらゲート間の接続関係と、が記載される。このネットリストＦ４は、ゲートレベルネットリストとも呼ばれる。続いて、ネットリストＦ４に基づきレイアウト工程が行われる（ステップＳ４）。レイアウト工程ではネットリストＦ４に基づきゲートに対応するライブラリを読み込み、当該ライブラリに基づきトランジスタを配置する。そして、レイアウト工程によってレイアウトデータＦ５が生成され、このレイアウトデータＦ５に基づき半導体装置の製造が行われる（ステップＳ５）。
【００１７】
以下の説明では、図１に示すように、動作合成処理によって、ＲＴＬ記述Ｆ２と電力仕様記述Ｆ３とを別々に生成する例について説明する。しかし、電力仕様記述Ｆ３において記述される内容は、ＲＴＬ記述Ｆ２に含めることもできる。また、電力仕様記述Ｆ３に基づく構成を半導体装置の構成に反映させるのは、論理合成処理（ステップＳ３）に限られず、動作合成処理（ステップＳ２）、レイアウト工程（ステップＳ４）であっても可能である。つまり、電力仕様記述Ｆ３に関連する情報を回路構成に反映させる工程は、利用する設計支援ツールの仕様、工程管理上の理由によって適宜変更することが可能である。
【００１８】
続いて、実施の形態１にかかる動作合成装置１のブロック図を図２に示す。図２に示すように、動作合成装置１は、動作合成部１０と、電力仕様記述抽出部２０と、を有する。なお、動作合成装置１では、処理に用いるデータを格納するために記憶装置を用いる、図２に示す例では、符号としてＭを付したブロックが記憶装置に該当する。この記憶装置は、演算部に用いられるメモリ（主記憶装置）でも良く、より大容量の情報を格納できるハードディスク（ＨＤＤ）、ソリッドステートディスク（ＳＳＤ）等であっても良い。また、以下の説明では、動作合成装置１は、図１のステップＳ２で示した動作合成処理を行う専用のハードウェアとして説明するが、ＣＰＵ等の演算装置上で実行されるソフトウェア（動作合成プログラム）であっても良い。
【００１９】
動作合成部１０は、記憶装置Ｍ１から動作記述を読み込む。そして、動作合成部１０は、動作記述による動作を実現するデータフローグラフと、データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して、演算器及びレジスタによるデータパスグラフと、データフローグラフに基づく処理順序を制御する制御回路と、を生成し、データパスグラフと制御回路とを含むＲＴＬ記述を生成する。このＲＴＬ記述は、記憶装置Ｍ２に格納される。
【００２０】
この動作合成部１０についてさらに詳細について説明する。図２に示すように動作合成部１０は、スケジューリング処理部１１と、バインディング処理部１２と、ＲＴＬ記述生成部と、を有する。
【００２１】
スケジューリング処理部１１は、動作記述で示された演算を行うタイミングを決定する。より具体的には、スケジューリング処理部１１は、動作記述による動作を複数の状態に分解して、演算をいずれの状態で行うかを示したデータフローグラフと、データフローフラグ中の状態と当該状態で用いられる変数との関係を示した状態−変数対応表とを作成する。データフローグラフと状態−変数対応表は、記憶装置Ｍ１１に格納される。また、スケジューリング処理部１１は、データフローグラフで示される状態の遷移過程を示す状態遷移図を生成する。有限状態マシーン（ＦＳＭ：Finite State Machine）を生成する。
【００２２】
バインディング処理部１２は、データフローグラフにより定義される演算を実現する演算器及びレジスタを決定して、演算器及びレジスタによるデータパスグラフと、データフローグラフに基づく処理順序を制御する制御回路と、を生成する。この制御回路は、回路の状態遷移を制御する有限状態マシーン（ＦＳＭ：Finite State Machine）として実現される。また、バインディング処理部１２では、データパスグラフ内のレジスタと、当該レジスタに対応する動作記述中の変数と、の関係を示す変数−レジスタ対応表を生成する。データパスグラフと変数−レジスタ対応表とは記憶装置Ｍ１２に格納される。なお、データパスグラフのファイルには制御回路に関する情報も含むものとする。ＲＴＬ記述生成部１３は、データパスグラフと制御回路とを含むＲＴＬ記述を生成する。
【００２３】
続いて、電力仕様記述抽出部２０の詳細について説明する。図２に示すように電力仕様記述抽出部２０は、電力制御解析部２１と、電力仕様記述生成部２２とを有する。
【００２４】
電力制御解析部２１は、動作記述とデータフローグラフとを読み込み、動作記述中の処理属性情報からステートリテンション動作が行われる制御対象状態を示す電力制御−状態対応表を生成する。電力制御−状態対応表は記憶装置Ｍ２１に格納される。
【００２５】
電力仕様記述生成部２２は、電力制御−状態対応表と、状態−変数対応表と、変数−レジスタ対応表と、を読み込む。そして、電力仕様記述生成部２２は、状態−変数対応表と電力制御−状態対応表とに基づき被制御変数を特定し、被制御変数に対応する被制御レジスタを変数−レジスタ対応表から特定し、被制御レジスタをリテンションレジスタとして明示する電力仕様記述を生成する。
【００２６】
続いて、実施の形態１にかかる動作合成装置１の動作について具体例を用いて説明する。そこで、図３に動作合成装置１の動作手順を示すフローチャートを示す。また、図４に説明に用いる動作記述の例を示す。図４に示す動作記述では、１行目から３行目で入力信号と出力信号とが定義される。そして、４行目から１３行目に具体的な演算が逐次演算処理として記載される。このとき、図４に示す動作記述では、８行目と１０行目とに変数ｓ１、ｓ２が０の間は動作を待機する旨の記述がある。そして、変数ｓ２が０以外の値になるまでの時間が長い場合（例えば、入力ｉ７が入力されるまでの時間が長いことが仕様上判明している場合）、変数ｓ２が０以外の値になるまでの期間は電力制御を行った方が消費電力を低減できる。このような場合、１０行目の処理に対して電力仕様を作成する。そこで、本実施の形態では、動作記述中において電力仕様記述の作成を希望する箇所に処理属性情報（例えば、アトリビュート）を付加する。図４に示す例では、付加される処理属性情報を下線で明示した。以下で行う動作合成装置１では、図４で示した動作記述に基づきＲＴＬ記述及び電力仕様記述を生成する手順について説明する。
【００２７】
図３に示すように、動作合成装置１は、まず図４で示した動作記述を読み込む（ステップＳ１０）。続いて、スケジューリング処理部１１においてスケジューリング処理（ステップＳ１１）が行われ、データフローグラフと変数−状態対応表が出力される。
【００２８】
ここで、図４の動作記述に対応したデータフローグラフの例を図５に示す。図５に示したデータフローグラフは、状態ＳＴ１〜ＳＴ４を有する。図４の動作記述では５行目から７行目の処理を並列して処理可能である。そのため、状態ＳＴ１では、５行目から７行目の処理が行われる。続いて、動作記述の８行目の待機処理後の９行目の処理が状態ＳＴ２で行われる。なお、９行目の処理と並行して行うことが可能な演算はないため、状態ＳＴ２で、他の処理は行われない。続いて、動作記述の１０行目の待機処理後の１１行目と１２行目の処理が行われるが、１２行目の処理は、１１行目の処理の演算結果を利用するものである。従って、状態ＳＴ３では、１１行目の処理が行われる。そして、状態ＳＴ３に続く状態ＳＴ４において１２行目の処理が行われる。また、図６に、図５で示したデータフローグラフに対応する状態遷移図を示す。図６に示すように、図５でデータフローグラフに基づく処理を行うためには、状態ＳＴ１、ＳＴ２において、処理が完了するまで現状態を維持する状態遷移を有する。また、図５でデータフローグラフに基づく処理では、状態ＳＴ１から状態ＳＴ４まで順に状態を遷移させる。
【００２９】
また、状態−変数対応表の例を図７に示す。図７に示すように、図４の動作記述に基づく動作では、状態ＳＴ１において変数ａ、ｂ、ｃが保持されている必要がある。状態ＳＴ２では、変数ａ、ｄが保持されている必要がある。状態ＳＴ３では、変数ａ、ｅが保持されている必要がある。状態ＳＴ４では、変数として保持される必要がある値はない。言い換えると、変数ａは、状態ＳＴ１、ＳＴ２、ＳＴ３において保持されている必要があり、変数ｂ、ｃは、状態ＳＴ１で保持されている必要があり、変数ｄは状態ＳＴ２で保持されている必要があり、変数ｅは状態ＳＴ３で保持されている必要がある。
【００３０】
続いて、動作合成装置１は、データフローグラフを読み込み（ステップＳ１３）、バインディング処理部１２によるバインディング処理を行う（ステップＳ１４）。このバインディング処理では、データパスグラフと変数−レジスタ対応表とが出力される（ステップＳ１５）。
【００３１】
ここで、図４の動作記述に対応したデータパスグラフの例を図８に示す。図８に示す例では、データパスグラフ４０と、有限状態マシーン（以下ＦＳＭと称す）３０と、を示した。データパスグラフ４０は、演算器として、ＡＮＤ回路４１、ＯＲ回路４２、減算器４３、ＸＯＲ回路４４、加算器４５、乗算器４６、セレクタ４７〜４９、レジスタ５０〜５２を有する。ここで、データパスグラフ４０では、動作記述中の５つの変数に対して３つのレジスタが対応付けられている。これは、データフローグラフの処理を行う場合に、併存する必要のない変数については、レジスタを共用した方が回路規模を抑制できるとの判断に基づきレジスタの共用化処理が行われたためである。なお、レジスタ５０は変数ａを格納するものであり、レジスタ５１は変数ｂ、ｅを格納するものであり、レジスタ５２は変数ｃ、ｄを格納するものである。
【００３２】
ＡＮＤ回路４１は、動作記述の５行目の演算に対応して設けられるものであり、入力ｉ１と入力ｉ２との論理積を出力する。ＯＲ回路４２は、動作記述の６行目の演算に対応して設けられるものであり、入力ｉ３と入力ｉ４との論理和を出力する。減算器４３は、動作記述の１１行目の演算に対応して設けられるものであり、変数ｄから入力ｉ７を減算した値を出力する。ＸＯＲ回路４４は、動作記述の７行目の演算に対応して設けられるものであり、入力ｉ５と入力ｉ６の排他的論理和を出力する。加算器４５は、動作記述の９行目の演算に対応して設けられるものであり、変数ｂに変数ｃを加算して出力する。乗算器４６は、動作記述の１２行目の動作に対応して設けられるものであり、変数ａに変数ｅを加算して出力値ｏ１として出力する。また、ＦＳＭ３０は、レジスタ３１を有する。ＦＳＭ３０は、レジスタ３１の値に基づきセレクタ４７〜４９がいずれの入力を選択するかを制御する。レジスタ５０〜５２は、セレクタ４７〜４９が出力した値を格納する。
【００３３】
また、図８のデータパスグラフに基づき生成された変数−レジスタ対応表の一例を図９に示す。図９に示すように、図８のデータパスグラフでは、レジスタ５０（ａ＿ｒｅｇ）が変数ａに対応し、レジスタ５１（ｂ＿ｅ＿ｒｅｇ）が変数ｂ、ｅに対応し、レジスタ５２（ｃ＿ｄ＿ｒｅｇ）が変数ｃ、ｄに対応していることを示している。
【００３４】
続いて、動作合成装置１は、データフローグラフとデータパスグラフとを読み込み（ステップＳ１６）、ＲＴＬ記述生成部１３によるＲＴＬ記述生成処理を行う（ステップＳ１７）。このＲＴＬ記述生成処理では、ＲＴＬ記述が出力される（ステップＳ１８）。続いて、動作合成装置１では、電力仕様記述抽出部２０の動作が開始される。電力仕様記述抽出部２０は、動作記述とデータフローグラフとを読み込み（ステップＳ２０）、電力制御解析処理を行う（ステップＳ２１）。この電力制御解析処理では、電力制御−状態対応表が出力される（ステップＳ２２）。
【００３５】
ここで、図４の動作記述に基づき生成される電力制御−状態対応表の例を図１０に示す。図４に動作記述では、１０行目に処理属性情報が付されている。この１０行目の処理は状態ＳＴ２の処理に対応することがデータフローグラフと動作記述より導きさせる。従って、図１０に示す電力制御−状態対応表では、状態ＳＴ２に対応してステートリテンション動作が行われるべきことが示される。
【００３６】
続いて、動作合成装置１は、変数−状態対応表と、変数−レジスタ対応表と、電力制御−状態対応表とを読み込み（ステップＳ２３）、電力仕様記述生成部２２による電力仕様記述生成処理を行う（ステップＳ２４）。この電力仕様記述生成処理では、電力仕様記述が出力される（ステップＳ２５）。
【００３７】
ここで、図４の動作記述に基づき生成される電力仕様記述の一例を図１１に示す。図１０に示す電力制御−状態対応表より、状態ＳＴ２が本動作例における制御対象状態であることわかる。そして、図７に示す状態−変数対応表より、状態ＳＴ２において変数ａ、ｄがステートリテンション動作の対象となる被制御変数であることがわかる。さらに、図９に示す変数−レジスタ対応表より、被制御変数である変数ａ、ｄには、それぞれレジスタ５０（ａ＿ｒｅｇ）とレジスタ５２（ｃ＿ｄ＿ｒｅｇ）とが対応することがわかる。このようなことから、本動作例にかかる電力仕様記述では、インスタンスａ＿ｒｅｇ、ｃ＿ｄ＿ｒｅｇ、ｆｓｍ＿ｒｅｇとして、ステートリテンションレジスタ（例えば、ライブラリｓｔ＿ｒｅｔ＿１で定義されるレジスタ）を利用することが記述される。
【００３８】
上記説明より、実施の形態１にかかる動作合成装置１では、動作記述に含まれる処理属性情報に基づき、当該処理属性情報が付された処理に付随する被制御変数を特定する。さらに、動作合成装置１では、データパスグラフ上のレジスタのうち当該被制御変数に対応する被制御レジスタを特定することができる。つまり、実施の形態１にかかる動作合成装置１によれば、従来動作合成処理において動作記述から合成されるＲＴＬ記述上で特定できなかった所定の変数に対応するレジスタを特定することが可能になる。さらに、動作合成装置１によれば、当該特定したレジスタに基づきステートリテンション動作に用いるレジスタを記載した電力仕様記述を生成することができる。
【００３９】
このように、動作記述からＲＴＬ記述とＲＴＬ記述に対応する電力仕様記述とを生成することで、低消費電力な半導体装置の設計を実現することができる。また、動作記述に基づき電力仕様記述を自動的に生成できることから低消費電力な半導体装置の設計にかかる手順を簡略化し、設計期間を短縮することができる。
【００４０】
また、従来の動作合成方法では、１つのレジスタに複数の変数を割り当てることで、回路規模を削減することが行われていた。このような場合、ステートリテンション動作で必要なレジスタを特定することが極めて難しくなる。しかしながら、実施の形態１にかかる動作合成装置１によれば、ＲＴＬ記述の生成過程において、レジスタと変数との関係を明確に特定できるため、従来の動作合成方法のように、レジスタがどの変数に対応しているかが特定できなくなる不具合はない。このようなことから、実施の形態１にかかる動作合成装置１によれば、回路規模を抑制しながら、ステートリテンション動作に対応した半導体装置を効率よく設計できる。
【００４１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４２】
１    動作合成装置
１０    動作合成部
１１    スケジューリング処理部
１２    バインディング処理部
１３    ＲＴＬ記述生成部
２０    電力仕様記述抽出部
２１    電力制御解析部
２２    電力仕様記述生成部
３０    有限状態マシーン
３１    レジスタ
４０    データパスグラフ
４１    ＡＮＤ回路
４２    ＯＲ回路
４３    減算器
４４    ＸＯＲ回路
４５    加算器
４６    乗算器
４７〜４９    セレクタ
５０〜５２    レジスタ
【図１】
2012159977.tif 000003
【図２】
2012159977.tif 000004
【図３】
2012159977.tif 000005
【図４】
2012159977.tif 000006
【図５】
2012159977.tif 000007
【図６】
2012159977.tif 000008
【図７】
2012159977.tif 000009
【図８】
2012159977.tif 000010
【図９】
2012159977.tif 000011
【図１０】
2012159977.tif 000012
【図１１】
2012159977.tif 000013