(57)【要約】【課題】分岐以外の部分についてもクロックゲーティングを行って低消費電力化を図る高位合成用記述変換装置及び高位合成用記述変換プログラムを提供する。【解決手段】設定パラメータを解析し、指示されたステート探索方法に従って対象回路の動作記述を元にステート毎に区切り、この区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成した回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成し、分割プロセス情報とクロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、元の対象回路の動作記述から前記クロックゲーティング回路だけ差し替えた新たな回路の動作記述を生成して出力する。【選択図】図３
2018041129.tif 000002
【特許請求の範囲】
【請求項１】
予め定義した設定パラメータ及び対象回路の動作記述を入力する入力部と、
演算部と、
記憶部と、
出力部とを備え、
前記演算部は、
前記設定パラメータを解析するステート解析設定部と、
前記ステート解析設定部から指示されたステート探索方法に従って前記対象回路の動作記述をステート毎に区切った回路構造情報を生成して前記記憶部に記憶する回路構造解析部と、
前記回路構造情報から前記区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成して前記記憶部に記憶する分割プロセス生成部と、
前記回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成して前記記憶部に記憶するクロックゲーティング制御部と、
前記分割プロセス情報と、前記クロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、前記回路構造情報から元の前記対象回路の動作記述を抽出し、対象部分だけ前記クロックゲーティング回路に差し替えた新たな回路の動作記述を生成して前記出力部に与える回路変換部とを有する
高位合成用記述変換装置。
【請求項２】
前記回路構造解析部は、前記ステート探索方法として前記対象回路の動作記述に対する境界キーワードの探索を行ってステート境界の位置情報を取得して前記クロックゲーティング制御部へ通知する自動探索モードを含む
請求項１に記載の高位合成用記述変換装置。
【請求項３】
前記回路構造解析部は、前記ステート解析設定部の解析結果に従ってプラグマにて記述された区切りを探索し、検知ポイントの到達条件を前記クロックゲーティング制御部へ通知する手動探索モードを含む
請求項１に記載の高位合成用記述変換装置。
【請求項４】
前記回路構造解析部では、前記ステート解析設定部の解析結果に従ってプラグマにて記述されたポイント間のみ探索する
請求項１に記載の高位合成用記述変換装置。
【請求項５】
前記分割プロセス生成部は、前記回路構造解析部で解析された前記回路構造情報のプロセス群を１ステートとした前記クロックゲーティング制御部から供給されるクロックで動作するプロセスを生成する
請求項１に記載の高位合成用記述変換装置。
【請求項６】
前記クロックゲーティング制御部は、前記回路構造解析部で解析した構造情報と、各プロセスから出力される検知ポイントの到達条件を基に実際に動作するプロセスのみへクロックを供給するクロックゲーティング制御を行う
請求項１に記載の高位合成用記述変換装置。
【請求項７】
コンピュータを、
予め定義した設定パラメータ及び対象回路の動作記述を入力する入力部として機能させ、
前記設定パラメータを解析するステート解析設定部として機能させ、
前記ステート解析設定部から指示されたステート探索方法に従って前記対象回路の動作記述をステート毎に区切った回路構造情報を生成する回路構造解析部として機能させ、
前記回路構造情報から前記区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成する分割プロセス生成部として機能させ、
前記回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成するクロックゲーティング制御部として機能させ、
前記分割プロセス生成部で生成した分割プロセス情報と、前記クロックゲーティング制御部で生成したクロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、前記回路構造情報から元の前記対象回路の動作記述を抽出し、対象部分だけ前記クロックゲーティング回路に差し替えた新たな回路の動作記述を生成して出力部に与える回路変換部として機能させる
高位合成用記述変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（以後、ＬＳＩと略称する。）の高位言語設計に係り、特に低消費電力化のためのソースコード記述変換方法である高位合成用記述変換装置及び高位合成用記述変換プログラムに関する。
【背景技術】
【０００２】
ＬＳＩの設計技術として高位言語で記述した動作アルゴリズム（以後、動作記述という。）からハードウェア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ    Ｌａｎｇｕａｇｅ）（以後、ＨＤＬと略称する。）へ変換する動作合成技術が用いられている。この技術によりＨＤＬより高い抽象度から設計することが可能となるため、ＬＳＩの大規模化及び複雑化が進む現在、開発効率やメンテナンスの向上が見込まれている。
【０００３】
また近年のプロセス技術やＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）の発展に伴い、ＬＳＩの設計において一層の低消費電力化が求められてきている。消費電力の削減に効果的な手法の一つとして動作していない回路に対してクロックの供給を遮断するクロックゲーティングが挙げられるが、前述のとおり動作記述は抽象度の高い設計を前提としているため、人手で回路の動作状態に応じてクロックの供給を制御することには困難が伴う。
【０００４】
このような問題に対して、クロックゲーティング回路を自動的に付加する低消費電力回路用高位合成装置及び高位合成方法及びそのプログラムを開示したものがある（例えば、特許文献１参照）。
【０００５】
この特許文献１は、排他的な条件で競合することがない分岐において選択されない不要な回路のクロック動作を停止させるものである。これを、図１に示す上記の特許文献１におけるクロックゲーティング対象１を参照して説明する。
【０００６】
同図（１）に示す、開始ステップ１０から終了ステップ１６までのプロセスＡ〜プロセスＤの各ステップ１１〜１５（以下、単に「プロセス」とだけ称することがある。）についてのフローチャートでは、白抜きのプロセスＡ，Ｂ，及びＣにおいてクロックが供給される。従って、条件分岐ステップ１３によってプロセスＣのステップ１４に遷移するとき、網掛で示すプロセスＤのステップ１５は選択されない条件となるためクロックゲーティングとしてクロックが停止される。
【０００７】
一方、同図（２）に示す、開始ステップ１７から始まり終了ステップ１１３で終わるプロセスＡ〜Ｄについての各ステップ１８〜１１２でも、条件分岐ステップ１１０によってプロセスＤのステップ１１２に遷移するとき、網掛で示すプロセスＣのステップ１１１は選択されない。従って、条件分岐ステップ１１０の遷移先によって、プロセスＤのステップ１１２においてクロックが供給され、プロセスＣのステップ１１１においてクロックが停止される。すなわち、クロックの停止対象がプロセスＣのステップ１１１とプロセスＤのステップ１１２とで入れ替わっただけで他は同様である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２８２３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の特許文献１では、分岐以外のプロセスについてはクロックゲーティングが行われないため、一層の低消費電力化を追求するためには分岐以外の部分についてもクロックゲーティングを行う必要がある。
【００１０】
本発明は、斯かる課題を解決するために為されたもので、分岐以外の部分についてもクロックゲーティングを行って低消費電力化を図ることが可能な高位合成用記述変換装置及び高位合成用記述変換プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するため、本発明に係る高位合成用記述変換装置は、予め定義した設定パラメータ及び対象回路の動作記述を入力する入力部と、演算部と、記憶部と、出力部とを備え、前記演算部は、前記設定パラメータを解析するステート解析設定部と、前記ステート解析設定部から指示されたステート探索方法に従って前記対象回路の動作記述をステート毎に区切った回路構造情報を生成して前記記憶部に記憶する回路構造解析部と、前記回路構造情報から前記区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成して前記記憶部に記憶する分割プロセス生成部と、前記回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成して前記記憶部に記憶するクロックゲーティング制御部と、前記分割プロセス情報と、前記クロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、前記回路構造情報から元の前記対象回路の動作記述を抽出し、対象部分だけ前記クロックゲーティング回路に差し替えた新たな回路の動作記述を生成して前記出力部に与える回路変換部とを有する。
【００１２】
また、本発明では、コンピュータを、予め定義した設定パラメータ及び対象回路の動作記述を入力する入力部として機能させ、前記設定パラメータを解析するステート解析設定部として機能させ、前記ステート解析設定部から指示されたステート探索方法に従って前記対象回路の動作記述をステート毎に区切った回路構造情報を生成する回路構造解析部として機能させ、前記回路構造情報から前記区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成する分割プロセス生成部として機能させ、前記回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成するクロックゲーティング制御部として機能させ、前記分割プロセス生成部で生成した分割プロセス情報と、前記クロックゲーティング制御部で生成したクロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、前記回路構造情報から元の前記対象回路の動作記述を抽出し、対象部分だけ前記クロックゲーティング回路に差し替えた新たな回路の動作記述を生成して出力部に与える回路変換部として機能させる高位合成用記述変換プログラムが提供される。
【発明の効果】
【００１３】
本発明は、設定パラメータを解析し、指示されたステート探索方法に従って対象回路の動作記述を元にステート毎に区切り、この区切られた各ステートにおけるプロセス毎の分割プロセス情報を生成した回路構造情報からクロックを供給するためのクロックゲーティングプロセス情報を生成し、分割プロセス情報とクロックゲーティングプロセス情報とを用いてクロックゲーティング回路を生成し、元の対象回路の動作記述から前記クロックゲーティング回路だけ差し替えた新たな回路の動作記述を生成して出力するように構成したので、高位合成を行う際の動作記述のメリットを損なうことなく、分岐以外の部分についてもステート単位で動作不要な回路のクロック動作を停止させるクロックゲーティング制御を自動的に組込むことができ、消費電力を抑えることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】特許文献１に開示されたクロックゲーティング対象を示したフローチャートであり、同図（１）及び（２）は、分岐処理のみについてクロックゲーティングが行われる様子をそれぞれ示すフローチャートである。
【図２】本発明に係る高位合成用記述変換装置及び高位合成用記述変換プログラムに使用されるクロックゲーティング対象を示したフローチャートであり、同図（１）〜（３）は、分岐処理を含む種々の処理についてクロックゲーティングが行われるステートをそれぞれ示すフローチャートである。
【図３】本発明の実施の形態１に係る高位合成用記述変換装置及び高位合成用記述変換プログラムの構成をデータの流れで示した図である。
【図４】本発明の実施の形態１に係る高位合成用記述変換装置及び高位合成用記述変換プログラムにおけるステート解析とステート分割の概要を示した図である。
【図５】本発明の実施の形態１に係る高位合成用記述変換装置及び高位合成用記述変換プログラムの実行手順を示すフローチャートである。
【図６】本発明の実施の形態２に係る高位合成用記述変換装置及び高位合成用記述変換プログラムに使用されるプラグマの記述例であって、ステート解析モードが手動モード時のプロセス区切りの記述例を示した図である。
【発明を実施するための形態】
【００１５】
以下、本発明に係る高位合成用記述変換装置及び高位合成用記述変換プログラムの実施の形態を、上記の添付図面を参照して説明する。
まず、図２に示す本発明に係る高位合成用記述変換装置及び高位合成用記述変換プログラムによるクロックゲーティング対象の概要を説明する。
或るステート、すなわち動作状態、である図２（１）に示す開始ステップ２０から終了ステップ２６までのプロセスＡ〜プロセスＤに対する各ステップ２１〜２５のフローチャートでは、白抜きのプロセスＡのステップ２１の動作中をクロックゲーティングの対象としている。次のステートである同図（２）に示す開始ステップ２７から終了ステップ２１３までのプロセスＡ〜Ｄの各ステップ２８〜２１２のフローチャートでは、白抜きのプロセスＢのステップ２９の動作中をクロックゲーティングの対象としている。そして、次のステートである同図（３）に示す開始ステップ２１４から終了２２０までのプロセスＡ〜Ｄの各ステップ２１５〜２１９のフローチャートでは、白抜きのプロセスＣのステップ２１８の動作中をクロックゲーティングの対象としている。
【００１６】
すなわち、図２におけるステート（１）では、プロセスＡのステップ２１を実行している間、プロセスＡのステップ２１のみクロックを供給し、網掛を付した他のプロセスＢのステップ２２、プロセスＣのステップ２４、及びプロセスＤのステップ２５のクロックを停止させる。また、ステート（２）では、プロセスＢのステップ２９のみクロックを供給し、網掛を付した他のプロセスではクロックを停止させる。さらに、ステート（３）では、分岐ステップ２１７及びプロセスＣのステップ２１８でクロックを停止し、網掛を付した他のプロセスではクロックを供給する。
このようにステート単位にクロックゲーティングを行い、必要最低限のプロセスのみにクロック供給させることで、消費電力を抑えることが可能となる。
【００１７】
実施の形態１．
図３は、本発明の実施の形態１による高位合成用記述変換装置３の構成を示す。図３において、高位合成用記述変換装置３は、入力部３１１、演算部３１２、記憶部３１３、及び出力部３１４で構成され、高位合成用記述変換プログラムを構成するものである。このうち、入力部３１１は、入力用の設定パラメータ３０及び対象回路３２の動作記述を入力するものである。演算部３１２は、ステート解析設定部３１、回路構造解析部３３、分割プロセス生成部３５、クロックゲーティング制御部３７、及び回路変換部３９で構成される。記憶部３１３は、演算部３１２で得られる演算結果である回路構造情報３４、分割プロセス情報３６、及びクロックゲーティングプロセス情報３８の各情報（データ）を記憶するものである。さらに、出力部３１４は、演算部３１２から得られる新たな回路である動作記述を出力するものである。
なお、この高位合成用記述変換装置３は、コンピュータを、上記の各部として機能させる高位合成用記述変換プログラムを構成している。
【００１８】
図４は、高位合成用記述変換装置３による動作概要を示しており、これはステート解析とステート分析についてのものである。
以下、図３による高位合成用記述変換装置３の動作を、図４を参照しながら、まず概略的に説明する。
【００１９】
まず、本実施の形態の準備として、予め定義した設定パラメータ３０と対象回路３２の各情報を入力部３１１に用意する。設定パラメータ３０は、図４に示す記述変換を行う際のステート解析モードを示しており、本実施の形態では、自動モードで設定した例を扱っている。対象回路３２は、変換対象となる実際の回路（一例として、図２に示すステート（１）〜（３）のフローチャートに対応する回路）の動作記述のデータである。
【００２０】
ステート解析設定部３１では、上記の予め定義した設定パラメータ３０の解析を行う。これは、図４に示すように、演算部３１２における回路構造解析部３３と分割プロセス生成部３５とクロックゲーティング制御部３７と回路変換部３９とに対してステートの分割方法や分割対象を指示するためである。分割方法には、基本的に１つのステートを、図４のようにプロセスＡ〜Ｄに分割する境界を探索するためのキーワードが必要である。これは、例えば、プロセスＡとＢの接続箇所、プロセスＢとＣの接続箇所等が、各プロセスにキーワードとして含まれている。分割対象は対象回路の名称であるモジュール名又はプロセス名である。
【００２１】
なお、上記のプロセスとは、１つのステート内に存在するものであり、例えば、図２のステート（１）の場合、プロセスＡ〜プロセスＤはそれぞれを別々のプロセスとし、開始ステップ２１〜終了ステップ２６までが１ステートとなる。
【００２２】
回路構造解析部３３では、ステート解析設定部３１から指示されたステート分割方法に従って、対象回路３２の動作記述の解析を行う。ここでは、その動作記述に対してステート解析設定部３１から指示された、対象回路の名称である対象モジュール又は対象プロセスの探索と対象回路の動作記述に対するキーワードの探索を行う。回路構造解析部３３では、対象回路におけるステート間の境界の位置と、図２（１）〜（３）に対応するステートの数を取得し回路構造情報３４へ保存する。
【００２３】
分割プロセス生成部３５では、回路構造解析部３３にて取得した回路構造情報３４を用いて１ステートを構成するプロセスの数だけ１ステートを分割して分割プロセスとし、分割プロセス情報３６として記憶部３１３に記憶する。生成した分割プロセス情報３６は、基本的に回路構造解析部３３で探索したステート間の境界を新たなプロセスとして関数化しただけである。
【００２４】
クロックゲーティング制御部３７では、回路構造解析部３３で取得した回路構造情報３４を用いてクロックゲーティングを行うプロセス（以下、クロックゲーティングプロセスと称する。）を生成する。このクロックゲーティングプロセスは、図４において符号５１で示し、太い矢印で示すように、プロセスＡ〜Ｄから成る分割前のステート５０から回路構造情報３４に基づき生成され、クロックゲーティングプロセス情報３８として記憶部３１３に記憶される。クロックゲーティングプロセス５１では、回路構造情報３４に含まれるステート数分（例えば、図２（１）〜（３）に相当）、すなわち分割プロセスの数分のステートを持つ。クロックゲーティングプロセス５１では、各分割プロセス５２〜５５（プロセスＡ〜Ｄ）の完了を入力してステートの遷移条件として使用し、クロックゲーティングプロセス５１のプロセスに応じて各分割プロセス５２〜５５へクロックを供給する。
【００２５】
すなわち、図４では、本発明の高位合成用記述変換装置３に入力される対象回路３２に含まれる１つのステート（分割前のステート５０）を、分割プロセス生成部３５で分割することで、クロックゲーティングプロセス５１と、分割プロセスＡ（ステップ５２）、分割プロセスＢ（ステップ５３）、分割プロセスＣ（ステップ５４）、及び分割プロセスＤ（ステップ５５）で構成された回路（動作記述）とに変換する。この場合のクロックゲーティングプロセス５１は、４つに分割された分割プロセス５２〜５５に対して、４つのキーワードを用いてクロック生成の指示を行っている。
【００２６】
回路変換部３９では、分割プロセス生成部３５で生成した分割プロセス５２〜５５の分割プロセス情報３６と、クロックゲーティング制御部３７で生成したクロックゲーティングプロセス５１のクロックゲーティングプロセス情報３８とを用いて図４に示すクロックゲーティング回路５を生成する。回路変換部３９は、対象回路３２の情報を含んだ回路構造情報３４からオリジナルの回路を抽出し、対象部分のみ、生成したクロックゲーティング回路５に差し替えを行い、新たな回路３１０の動作記述の生成を行う。
【００２７】
次に、以上説明した本発明による図３における演算部３１２内の各部３１、３３、３５、３７、及び３９の動作の内容を、図３に対応する図５の具体的な処理フローに沿い、図２のクロックゲーティング対象及び図４のプロセス分割を参照して、より詳細に説明する。
【００２８】
まず、ステップＳ１００において、入力部３１１から対象回路３２（図２（１）〜（３）に示すステート、すなわち、図４で示す分割前のステート５０で示される回路）と予め定義した設定パラメータ３０を入力する。
ステップＳ１０１では、入力した設定パラメータ３０の解析をステート解析設定部３１にて行い、対象回路３２におけるステート間の上述した境界キーワード（探索ワード）を回路構造解析部３３で設定する。また、対象回路３２は複数設定可能とし、後述するステップＳ１１７までの処理を繰り返し行う。なお、回路構造解析部３３で解析された対象回路３２は、その名称（モジュール名又はプロセス名）が取得され、回路構造情報３４として記憶部３１３に記憶される。
【００２９】
ステップＳ１０２において、回路構造解析部３３は、対象回路３２をモジュール名又はプロセス名を探索キーワードとして探索し、この探索キーワードを検出（ステップＳ１０３）するまで対象回路３２の探索を続ける。このとき、設定パラメータ３０の設定誤り等の原因で探索キーワードが検出できずに動作記述の全ての探索が完了した場合（ステップＳ１０４のＹｅｓ）は、エラー（ステップＳ１０５）として処理を中断する。
【００３０】
１つの対象回路３２を検出した後（ステップＳ１０３のＹｅｓ）は、ステップＳ１０６において、１つの対象回路３２についてのステート探索を行う。すなわちステート境界のキーワード探索を開始する。この場合、対象回路３２におけるステート間の境界、すなわち、例えば、図２のステート（１）〜（３）同士間の境界となる境界キーワードを回路構造情報３４から探索する。図２の例では、ステート（１）におけるプロセスＡとＢの境界点、ステート（２）では、プロセスＢから分岐ステップを経てプロセスＣに至る境界点を境界キーワードとする。
【００３１】
１つの対象回路３２のステートを境界キーワードにより検出した後（ステップＳ１０８のＹｅｓ）は、上記の境界点である、検出した検知ポイント（以後、位置情報という。）を回路構造情報３４へ保存し（ステップＳ１０９）、ステート数を＋１する（ステップＳ１１０）。この処理を、１つの対象回路３２における全ステートの探索が完了（図２（３）を例に取ると、次の境界キーワード検出前に終了ステップ２２０に到達）するまで繰り返し行う（ステップＳ１０７）。ステート探索完了時（ステップＳ１０７のＹｅｓ）、ステート数を回路構造情報３４へ保存する（ステップＳ１１１）。最初であれば、ステート数は“１”である。このステート数は、各対象回路３２を構成するプロセスの数に相当している。
【００３２】
この後、ステップＳ１１２において、回路構造情報３４からステート境界点の位置情報と予めコピーしておいた対象回路３２のオリジナル回路（図４の分割前のステート５０に対応する回路）とを抽出し、図４に示すように、分割プロセスの生成を行って分割プロセス情報３６とする（ステップＳ１１３）。
図４に示すような分割プロセス５２〜５５は、基本的にステート境界の位置情報の間を新たなプロセスとして関数化しただけである。分割プロセスの生成は回路構造情報３４に基づき、ステート境界の探索時にカウントしていたステートの数だけ繰り返し行う（ステップＳ１１４）。
【００３３】
ステップＳ１１５において、図４に示したクロックゲーティングプロセス５１の生成を行ってクロックゲーティングプロセス情報３８として記憶部３１３に記憶する。このクロックゲーティングプロセス５１は、ステート境界の探索時にカウント（ステップＳ１１０）していたステート数分を有するプロセスとなる。クロックゲーティングプロセス５１では、各分割プロセス５２〜５５の処理完了（例えば、図２に示すステップＳ２１，Ｓ２９，Ｓ２１８）を入力し、これらをステートの遷移条件として使用する。そして、クロックゲーティングプロセス５１の各プロセスに応じて、必要な各分割プロセス５２〜５５へクロックを供給するための構成を生成する。すなわち、図２を例に取ると、ステート（１）ではプロセスＡにクロックを供給し、ステート（２）ではプロセスＢにクロックを供給し、そしてステート（３）ではプロセスＣにクロックを供給するための構成を生成する。
【００３４】
ステップＳ１１６において、ステップＳ１１３で生成した分割プロセス５２〜５５の分割プロセス情報３６と、ステップＳ１１５で生成したクロックゲーティングプロセス５１のクロックゲーティングプロセス情報３８とを用いて対象回路部分のクロックゲーティング回路５（図４参照。）を生成する。分割プロセス５２〜５５とクロックゲーティングプロセス５１との間の信号の受け渡しは、図４の説明で述べたとおりである。これらは、回路変換部３９で実行される。
【００３５】
そして、ステップＳ１１８において、回路構造情報３４に含まれる対象回路３２を、クロックゲーティング対象回路の部分のみ生成したクロックゲーティング回路５へ差し替えることで、クロックゲーティング制御を追加した動作記述（新たな回路３１０）の生成が完了となる。
以上のステップＳ１０２〜Ｓ１１７を対象回路の数分だけ実行する。
【００３６】
以上のとおり、高位合成を行う際の動作記述のメリットを損なうことなく、ステート単位で動作不要な回路を停止させるクロックゲーティング制御を自動的に組込み、消費電力を抑えることが可能となる。
なお、ここで述べている動作記述のメリットとは、開発効率やメンテナンスの向上である。ユーザが手動でクロックゲーティング制御を組込むことも可能ではあるが、自動的に制御を組込むことでユーザ自身の記述は抽象度の高い設計を維持することができるため、結果的に開発効率や汎用性が向上する。
【００３７】
実施の形態２．
上記の実施の形態１では、ステート解析（探索）モードが自動モードの場合として説明してきたが、ステート解析モードはこの限りではない。ステート解析モードは自動モードの他、ステートの区切りをユーザが任意で行うことができる。このモードを手動モードとする。
【００３８】
手動モードでは、ステートの区切り位置をプラグマにて指定することが可能となる。
図６はステート解析モードが手動モード時のステートの区切りの記述例を示し、回路の先頭に［Ｃｌｏｃｋ＿ｇａｔｅ＿ｍｏｄｅ＝ｍａｎｕａｌ］を記述し、ステートの区切りを行う上段に［Ｃｌｏｃｋ＿ｇａｔｅ＿ｐｕｎｃｔｕａｔｉｏｎ］を記述することで回路構造解析時にステートの区切りとして検出することができる。
なお、手動モードはステート解析設定部３１にてモードの解析を行い、回路構造情報３４に情報を保存する構成となる。
【００３９】
実施の形態３．
上記の実施の形態１では、ステート解析モードが自動モードの場合について、また上記の実施の形態２ではステート解析モードが手動モードの場合について説明したが、いずれのモードにおいても全ての回路に対してクロックゲーティングを行うとは限らない。この場合はクロックゲーティングの対象を指定することが可能である。
【００４０】
クロックゲーティングの対象は、別のプラグマにて指定することが可能となる。指定方法の一例としては、［Ｃｌｏｃｋ＿ｇａｔｅ＿ｏｆｆ＝１］又は［Ｃｌｏｃｋ＿ｇａｔｅ＿ｏｆｆ＝０］とし、“１”と指定した以降の行から次に“０”と指定する行までの回路はクロックゲーティングの対象としないとすればよい。
なお、この場合、［Ｃｌｏｃｋ＿ｇａｔｅ＿ｏｆｆ］はディフォルト０とする。
【符号の説明】
【００４１】
１  従来のクロックゲーティング対象
２  本発明のクロックゲーティング対象
３  本発明の高位合成用記述変換装置
５  クロックゲーティング回路
３０  入力用設定パラメータ
３１  ステート解析設定部
３２  入力用対象回路
３３  回路構造解析部
３４  回路構造情報
３５  分割プロセス生成部
３６  分割プロセス情報
３７  クロックゲーティング制御部
３８  クロックゲーティングプロセス情報
３９  回路変換部
３１０  新たな回路
３１１  入力部
３１２  演算部
３１３  記憶部
３１４  出力部
５０  分割前のステート
５１  クロックゲーティングプロセス
５２〜５５  分割プロセス
【図１】
2018041129.tif 000003
【図２】
2018041129.tif 000004
【図３】
2018041129.tif 000005
【図４】
2018041129.tif 000006
【図５】
2018041129.tif 000007
【図６】
2018041129.tif 000008