(57)【特許請求の範囲】
【請求項１】
回路の処理動作を記述した動作記述からレジスタトランスファレベルの回路記述をコンピュータ自動合成する動作合成装置において、
ある対象演算器の出力が複数の後続演算器に入力されており、該複数の後続演算器の各演算結果が有効である有効サイクルが異なる場合に、
動作合成処理において該対象演算器の共有によって生じる無駄な電力消費を防ぐために、
該対象演算器と少なくとも一つの後続演算器との間に、当該後続演算器の演算結果が有効である有効サイクル以外のサイクルに対して、当該後続演算器への入力を固定状態とする入力固定器を挿入する演算器入力固定化手段を有する動作合成装置。
【請求項２】
前記動作記述から、データの流れを枝とし、演算処理および通信処理のいずれかを各節点としてグラフで表したコントロールデータフローグラフを自動生成するコントロールデータフローグラフ生成手段と、
該コントロールデータフローグラフ中の各節点の処理をどの実行サイクルで実行するかを決定するスケジューリング手段と、
該演算処理を演算器の回路素子に割り付けると共に処理途中のデータを記憶するためにレジスタに割り付けるアロケーション手段と、
該スケジューリング手段および該アロケーション手段による各処理結果にしたがって、データパスと該データパスを制御するコントローラを自動生成し、該演算器および該レジスタの接続を表すネットリストを作成するデータパス・コントローラ生成手段とを更に有し、
前記演算器入力固定化手段は、該アロケーション手段により複数の演算処理が割り当てられた対象演算器について、該データパス・コントローラ生成手段により得られたネットリスト中の該対象演算器とその対象演算器の出力先である後続演算器との間に前記入力固定器を挿入する請求項１に記載の動作合成装置。
【請求項３】
前記演算器入力固定化手段は、
前記アロケーション手段による処理結果が参照されて、該アロケーション手段により前記対象演算器を検索する対象演算器検索手段と、
該対象演算器からの出力が入力される後続演算器を検索する後続演算器検索手段と、
該対象演算器と該後続演算器間に前記入力固定器を挿入する入力固定器挿入手段とを有する請求項２に記載の動作合成装置。
【請求項４】
前記入力固定器は、前記コントローラからの制御信号に従って、前記後続演算器がアクティブ状態になる有効サイクルのときに前記対象演算器からの出力がそのまま該後続演算器に入力され、該有効サイクル以外のサイクルのときには、該対象演算器からの出力状態によらず該後続演算器への入力が一定値に固定化される請求項１〜３のいずれかに記載の動作合成装置。
【請求項５】
前記入力固定器はラッチ回路である請求項１〜４のいずれかに記載の動作合成装置。
【請求項６】
前記入力固定器は、前記コントローラからの制御信号によって制御される複数のＡＮＤゲートで構成されている請求項１〜４のいずれかに記載の動作合成装置。
【請求項７】
前記後続演算器が乗算器、加算器または減算器である請求項１〜４のいずれかに記載の動作合成装置。
【請求項８】
前記入力固定器は、前記有効サイクル中は入力をそのまま出力し、該有効サイクル以外のサイクルでは全ビット”０”を出力する請求項１〜６のいずれかに記載の動作合成装置。
【請求項９】
前記後続演算器は、入力の一つが全ビット”０”である場合に出力を全ビット”０”にする請求項１〜４のいずれかに記載の動作合成装置。
【請求項１０】
前記後続演算器がビットＯＲ演算器である場合に、前記入力固定器は、前記コントローラからの制御信号によって制御される複数のＯＲゲートで構成されている請求項１〜４のいずれかに記載の動作合成装置。
【請求項１１】
前記入力固定器は、前記有効サイクル中は入力をそのまま出力し、該有効サイクル以外のサイクルでは全ビット”１”を出力する請求項１〜４および１０のいずれかに記載の動作合成装置。
【請求項１２】
前記後続演算器は、入力の一つが全ビット”１”である場合に出力を全ビット”１”にする請求項１〜４および１０のいずれかに記載の動作合成装置。
【請求項１３】
前記演算器間に前記入力固定器を挿入する場合の消費電力見積り値と、該演算器間に該入力固定器を挿入しない場合の消費電力見積り値とを比較して、前者が後者よりも小さい場合にのみ、前記演算器入力固定化手段を起動して該演算器間に該入力固定器を挿入させる入力固定要否判断手段を更に有する請求項１〜３のいずれかに記載の動作合成装置。
【請求項１４】
前記対象演算器は、データフローグラフ中に同じ演算処理が複数回表れる場合に、それらの演算処理が異なるサイクルで実行されるようにスケジューリングが行われ、異なるサイクルで実行される同一演算処理が１つの演算器で実行されるようにアロケーションが行われて、共有化された演算器である請求項１に記載の動作合成装置。
【請求項１５】
回路の処理動作を記述した動作記述からレジスタトランスファレベルの回路記述をコンピュータ自動合成する動作合成装置を用いた動作合成方法であって、
ある対象演算器の出力が複数の後続演算器に入力されており、該複数の後続演算器の各演算結果が有効である有効サイクルが異なる場合に、
動作合成処理において該対象演算器の共有によって生じる無駄な電力消費を防ぐために、
該対象演算器と少なくとも一つの後続演算器との間に、当該後続演算器の演算結果が有効である有効サイクル以外のサイクルに対して、当該後続演算器への入力を固定状態とする入力固定器を挿入する演算器入力固定化ステップを有する動作合成方法。
【請求項１６】
前記動作記述から、データの流れを枝とし、演算処理および通信処理のいずれかを各節点としてグラフで表したコントロールデータフローグラフを自動生成するコントロールデータフローグラフ生成ステップと、
該コントロールデータフローグラフ中の各節点の処理をどの実行サイクルで実行するかを決定するスケジューリングステップと、
該演算処理を演算器の回路素子に割り付けると共に処理途中のデータを記憶するためにレジスタに割り付けるアロケーションステップと、
該スケジューリングステップおよび該アロケーションステップによる各処理結果にしたがって、データパスと該データパスを制御するコントローラを自動生成し、該演算器および該レジスタの接続を表すネットリストを作成するデータパス・コントローラ生成ステップとを更に有し、
前記演算器入力固定化ステップは、該アロケーションステップにより複数の演算処理が割り当てられた対象演算器について、該データパス・コントローラ生成ステップにより得られたネットリスト中の該対象演算器とその対象演算器の出力先である後続演算器との間に前記入力固定器を挿入する請求項１５に記載の動作合成方法。
【請求項１７】
前記演算器入力固定化ステップは、
前記アロケーション手段による処理結果が参照されて、該アロケーション手段により前記対象演算器を検索する対象演算器検索ステップと、
該対象演算器からの出力が入力される後続演算器を検索する後続演算器検索ステップと、
該対象演算器と該後続演算器間に前記入力固定器を挿入する入力固定器挿入ステップとを有する請求項１６に記載の動作合成方法。
【請求項１８】
前記演算器間に前記入力固定器を挿入する場合の消費電力見積り値と、該演算器間に該入力固定器を挿入しない場合の消費電力見積り値とを比較して、前者が後者よりも小さい場合にのみ、前記演算器入力固定化ステップを起動して該演算器間に該入力固定器を挿入させる入力固定要否判断ステップを更に有する請求項１５〜１７のいずれかに記載の動作合成方法。
【請求項１９】
前記入力固定器は、前記コントローラからの制御信号に従って、前記後続演算器がアクティブ状態になる有効サイクルのときに前記対象演算器からの出力がそのまま該後続演算器に入力され、該有効サイクル以外のサイクルのときには、該対象演算器からの出力状態によらず該後続演算器への入力が一定値に固定化される請求項１５〜１７のいずれかに記載の動作合成方法。
【請求項２０】
請求項１〜１４のいずれかに記載の動作合成装置を有するコンピュータシステムを用いた請求項１５〜１９のいずれかに記載の動作合成方法をディジタル回路の自動設計に用い、自動設計されたディジタル回路に基づいて半導体装置の各レイヤーを形成するための各マスクを自動設計し、この各マスクを用いてディジタル回路を製造するディジタル回路の製造方法。
【請求項２１】
請求項１５〜１９のいずれかに記載の動作合成方法の各ステップをコンピュータに実行させるための動作合成制御プログラム。
【請求項２２】
請求項２１に記載の動作合成制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル回路の設計・製造を支援するべく、回路動作を記述した動作記述（回路の設計仕様）からレジスタトランスファレベル（ＲＴＬ）の回路記述をコンピュータ自動合成するコンピュータシステムの動作合成装置およびこの動作合成装置を用いた動作合成方法、このディジタル回路の製造方法、この動作合成方法を実行するための動作合成制御プログラム、この動作合成制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体に関する。
【背景技術】
【０００２】
例えばシステムＬＳＩなどの大規模集積回路の設計では、コンピュータシステムを用いて、回路の動作記述からＲＴＬのハードウェアを自動合成するという動作合成処理が行なわれている。この動作合成は高位合成とも呼ばれている。
【０００３】
この動作合成処理の手順を大まかに分類すると、データフローグラフ生成処理、スケジューリング処理およびアロケーション処理に分けることができる。
【０００４】
データフローグラフ生成処理では、ハードウェアの構造に関する情報は含まず、動作のみを記述した回路の動作記述からデータフローグラフが生成される。このデータフローグラフは、ＣＤＦＧ（Ｃｏｎｔｒｏｌ  Ｄａｔａ  Ｆｌｏｗ  Ｇｒａｐｈ）とも呼ばれ、データの流れを枝とし、演算や通信などの各処理を節点として、グラフで表したものである。
【０００５】
スケジューリング処理では、データフローグラフ中の演算や通信などの各処理を、どの実行サイクルで実行するかということが決定される。
【０００６】
アロケーション処理では、例えば演算処理を演算器などの回路素子に割り付ける処理および、処理途中のデータを記憶するためにレジスタに割り付ける処理などが行われる。
【０００７】
上記スケジューリング処理とアロケーション処理の結果に従って、データパスとそれを制御するコントローラ（制御回路）を生成することにより、動作記述動作と同一の動作を行なうハードウェアが得られる。この得られたハードウェアは、一般に、レジスタトランスファレベル（ＲＴＬ；Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の回路記述として出力される。
【０００８】
この動作記述からハードウェアを合成する方法において、合成されたハードウェアの消費電力を削減するための従来技術の一つとして、特許文献１に開示されているものが挙げられる。この従来技術では、ハードウェア中で並列動作するブロック毎にクロックを制御する回路を合成し、各ブロックが待機状態のときにそのブロックに対するクロックの供給を止めることにより、ハードウェアの低消費電力化を図っている。
【０００９】
また、低消費電力化を実現する他の従来技術として、特許文献２に開示されている「高位合成方法および高位合成装置」が挙げられる。この従来技術では、スケジューリング時に、レジスタに入力されるクロックのタイミングをずらしてレジスタの個数を減らすことにより、消費電力の削減を図っている。
【特許文献１】特開２００２−３６６５９６号公報
【特許文献２】特開２００３−１５０６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
動作合成処理の特徴の一つとして、演算器を共有化することによって演算器の個数を減らし、回路規模を削減することが挙げられる。即ち、データフローグラフ中に同じ演算処理が複数回現れる場合に、それらの演算処理が異なるサイクルで実行されるようにスケジューリングが行われ、異なるサイクルで実行される同一演算処理を一つの演算器で実行するようにアロケーションが行われて、演算器の個数が削減される。この演算処理について、以下に詳細に説明する。
【００１１】
例えば、図４に示すデータフローグラフでは、
ｘ＝ａ×ｂ＋ｃ
ｙ＝ｂ×ｃ−ｄ
という演算処理を表したものである。図４において、節点１０１と節点１０３とは乗算処理を表し、節点１０２は加算処理を表し、節点１０４は減算処理を表している。また、これらの各節点につながる枝（直線）は、データの流れを表している。
【００１２】
図５（ａ）および図５（ｂ）は、図４に示すデータフローグラフにスケジューリング処理を施した結果について、二つの事例を示す図である。
【００１３】
図５（ａ）では、節点１０１、１０２、１０３および１０４の全てがサイクル１で実行される場合である。また、図４（ｂ）では、節点１０１および１０２がサイクル１で実行され、さらに、節点１０３および１０４が次のサイクル２で実行される場合である。
【００１４】
図５（ａ）の場合には、演算処理は１サイクルで終了するが、乗算１０１と乗算１０３が同じサイクルで実行するため、二つの乗算器が必要となる。これに対して、図５（ｂ）の場合には、演算処理に２サイクルが必要であるが、乗算１０１と乗算１０３が異なるサイクルで実行されるため、一つの乗算器によって時間をずらして処理することができる。これによって、高速に動作する回路が必要な場合には図５（ａ）のように１サイクルでスケジューリングし、面積が小さい回路が必要な場合には図５（ｂ）のように２サイクルでスケジューリングすればよい。
【００１５】
図６（ａ）および図６（ｂ）はそれぞれ、図５（ａ）および図５（ｂ）のスケジューリング結果を実行する回路構成例を示す図である。
【００１６】
図６（ａ）の回路は、二つの乗算器３０１および３０３と、加算器３０２と、減算器３０４と、二つのレジスタ３０５および３０６とを有している。図５（ａ）の節点１０１、１０２、１０３および１０４の各処理はそれぞれ、図６（ａ）の演算器３０１、３０２、３０３および３０４によってそれぞれ実行され、その各演算結果がレジスタ３０５および３０６にそれぞれ格納される。
【００１７】
図６（ｂ）の回路は、一つの乗算器３０７と、加算器３０８と、減算器３０９と、二つのレジスタ３１０および３１１と、セレクタ３１２と、コントローラ３１３とを有している。図５（ｂ）の節点１０１と１０３の二つの乗算処理はいずれも一つの乗算器３０７によって時間をずらして実行される。セレクタ３１２は、乗算器３０７への入力を切り替えるために設けられており、コントローラ３１３からのイネーブル信号にしたがって、サイクル１では「ａ」が選択出力され、サイクル２では「ｃ」が選択出力される。乗算器３０７からの出力は、加算器３０８と減算器３０９を経て、レジスタ３１０および３１１に入力される。レジスタ３１０では、コントローラ３１３からのイネーブル信号にしたがって、サイクル１の終了時に加算器３０８の処理結果が格納される。また、レジスタ３１１では、コントローラ３１３からのイネーブル信号にしたがって、サイクル２の終了時に減算器３０９の処理結果が格納される。
【００１８】
しかしながら、このような演算器が共有された回路（図６（ｂ）では演算器が乗算器３０７）では、無駄な電力消費が発生する虞がある。即ち、サイクル１では加算器３０８の結果がレジスタ３１０に格納されるが、これと同時に減算器３０９の入力が変化してしまい、減算器３０９の内部の信号が変化してしまう。減算器３０９の内部の信号が変化すると、例えば減算器３０９を構成するＭＯＳトランジスタのゲート充放電電流などのような電流が流れてしまって電力が消費される。ところが、サイクル１では減算器３０９の演算結果はレジスタ３１１に格納されないため、減算器３０９内で消費された電力は、無駄な電力となる。これと同様に、サイクル２では加算器３０８によって無駄に電力が消費されることになる。
【００１９】
以下の説明では、最終的にレジスタに格納されるデータを処理する演算器はアクティブであり、そうでない演算器は非アクティブであるとする。例えば、サイクル１では乗算器３０７と加算器３０８はアクティブであり、減算器３０９は非アクティブである。
【００２０】
このような無駄な電力消費は、動作合成処理で演算器を共有することによって生じる固有の問題であり、特許文献１および特許文献２にそれぞれ開示されているような従来技術を用いてクロックを制御したとしても、防ぐことはできない。その理由は、アクティブな演算器では必要な演算処理が行われているため、クロックを停止することができず、その演算処理に伴う副作用として無駄な電力消費が非アクティブな演算器で発生してしまうからである。
【００２１】
本発明は、上記従来の問題を解決するもので、動作合成処理において演算器の共有によって生じる無駄な電力消費の発生を防いでハードウェアの低消費電力化を図ることができる動作合成装置および、この動作合成装置を用いた動作合成方法、ディジタル回路の製造方法、この動作合成方法を実行するための動作合成制御プログラム、この動作合成制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明の動作合成装置は、回路の処理動作を記述した動作記述からレジスタトランスファレベルの回路記述をコンピュータ自動合成する動作合成装置において、ある対象演算器の出力が複数の後続演算器に入力されており、該複数の後続演算器の各演算結果が有効である有効サイクルが異なる場合に、動作合成処理において該対象演算器の共有によって生じる無駄な電力消費を防ぐために、該対象演算器と少なくとも一つの後続演算器との間に、当該後続演算器の演算結果が有効である有効サイクル以外のサイクルに対して、当該後続演算器への入力を固定状態とする入力固定器を挿入する演算器入力固定化手段を有するものであり、そのことにより上記目的が達成される。この対象演算器は、データフローグラフ中に同じ演算処理が複数回表れる場合に、それらの演算処理が異なるサイクルで実行されるようにスケジューリングが行われ、異なるサイクルで実行される同一演算処理が１つの演算器で実行されるようにアロケーションが行われて、共有化された演算器である。
【００２３】
また、好ましくは、本発明の動作合成装置において、前記動作記述から、データの流れを枝とし、演算処理および通信処理のいずれかを各節点としてグラフで表したコントロールデータフローグラフを自動生成するコントロールデータフローグラフ生成手段と、該コントロールデータフローグラフ中の各節点の処理をどの実行サイクルで実行するかを決定するスケジューリング手段と、該演算処理を演算器の回路素子に割り付けると共に処理途中のデータを記憶するためにレジスタに割り付けるアロケーション手段と、該スケジューリング手段および該アロケーション手段による各処理結果にしたがって、データパスと該データパスを制御するコントローラを自動生成し、該演算器および該レジスタの接続を表すネットリストを作成するデータパス・コントローラ生成手段とを更に有し、前記演算器入力固定化手段は、該アロケーション手段により複数の演算処理が割り当てられた対象演算器について、該データパス・コントローラ生成手段により得られたネットリスト中の該対象演算器とその対象演算器の出力先である後続演算器との間に前記入力固定器を挿入する。
【００２４】
さらに、好ましくは、本発明の動作合成装置における演算器入力固定化手段は、前記アロケーション手段による処理結果が参照されて、該アロケーション手段により前記対象演算器を検索する対象演算器検索手段と、該対象演算器からの出力が入力される後続演算器を検索する後続演算器検索手段と、該対象演算器と該後続演算器間に前記入力固定器を挿入する入力固定器挿入手段とを有する。
【００２５】
さらに、好ましくは、本発明の動作合成装置における入力固定器は、前記コントローラからの制御信号に従って、前記後続演算器がアクティブ状態になる有効サイクルのときに前記対象演算器からの出力がそのまま該後続演算器に入力され、該有効サイクル以外のサイクルのときには、該対象演算器からの出力状態によらず該後続演算器への入力が一定値に固定化される。
【００２６】
さらに、好ましくは、本発明の動作合成装置における入力固定器はラッチ回路である。
【００２７】
さらに、好ましくは、本発明の動作合成装置における入力固定器は、前記コントローラからの制御信号によって制御される複数のＡＮＤゲートで構成されている。
【００２８】
さらに、好ましくは、本発明の動作合成装置における後続演算器が乗算器、加算器または減算器である。
【００２９】
さらに、好ましくは、本発明の動作合成装置における入力固定器は、前記有効サイクル中は入力をそのまま出力し、該有効サイクル以外のサイクルでは全ビット”０”を出力する。
【００３０】
さらに、好ましくは、本発明の動作合成装置における後続演算器は、入力の一つが全ビット”０”である場合に出力を全ビット”０”にする。
【００３１】
さらに、好ましくは、本発明の動作合成装置における後続演算器がビットＯＲ演算器である場合に、前記入力固定器は、前記コントローラからの制御信号によって制御される複数のＯＲゲートで構成されている。
【００３２】
さらに、好ましくは、本発明の動作合成装置における入力固定器は、前記有効サイクル中は入力をそのまま出力し、該有効サイクル以外のサイクルでは全ビット”１”を出力する。
【００３３】
さらに、好ましくは、本発明の動作合成装置における後続演算器は、入力の一つが全ビット”１”である場合に出力を全ビット”１”にする。
【００３４】
さらに、好ましくは、本発明の動作合成装置において、前記演算器間に前記入力固定器を挿入する場合の消費電力見積り値と、該演算器間に該入力固定器を挿入しない場合の消費電力見積り値とを比較して、前者が後者よりも小さい場合にのみ、前記演算器入力固定化手段を起動して該演算器間に該入力固定器を挿入させる入力固定要否判断手段を更に有する。
【００３５】
本発明の動作合成方法は、回路の処理動作を記述した動作記述からレジスタトランスファレベルの回路記述をコンピュータ自動合成する動作合成装置を用いた動作合成方法であって、ある対象演算器の出力が複数の後続演算器に入力されており、該複数の後続演算器の各演算結果が有効である有効サイクルが異なる場合に、動作合成処理において該対象演算器の共有によって生じる無駄な電力消費を防ぐために、該対象演算器と少なくとも一つの後続演算器との間に、当該後続演算器の演算結果が有効である有効サイクル以外のサイクルに対して、当該後続演算器への入力を固定状態とする入力固定器を挿入する演算器入力固定化ステップを有するものであり、そのことにより上記目的が達成される。
【００３６】
また、好ましくは、本発明の動作合成方法において、前記動作記述から、データの流れを枝とし、演算処理および通信処理のいずれかを各節点としてグラフで表したコントロールデータフローグラフを自動生成するコントロールデータフローグラフ生成ステップと、  該コントロールデータフローグラフ中の各節点の処理をどの実行サイクルで実行するかを決定するスケジューリングステップと、該演算処理を演算器の回路素子に割り付けると共に処理途中のデータを記憶するためにレジスタに割り付けるアロケーションステップと、  該スケジューリングステップおよび該アロケーションステップによる各処理結果にしたがって、データパスと該データパスを制御するコントローラを自動生成し、該演算器および該レジスタの接続を表すネットリストを作成するデータパス・コントローラ生成ステップとを更に有し、前記演算器入力固定化ステップは、該アロケーションステップにより複数の演算処理が割り当てられた対象演算器について、該データパス・コントローラ生成ステップにより得られたネットリスト中の該対象演算器とその対象演算器の出力先である後続演算器との間に前記入力固定器を挿入する。
【００３７】
さらに、好ましくは、本発明の動作合成方法における演算器入力固定化ステップは、  前記アロケーション手段による処理結果が参照されて、該アロケーション手段により前記対象演算器を検索する対象演算器検索ステップと、該対象演算器からの出力が入力される後続演算器を検索する後続演算器検索ステップと、該対象演算器と該後続演算器間に前記入力固定器を挿入する入力固定器挿入ステップとを有する。
【００３８】
さらに、好ましくは、本発明の動作合成方法において、前記演算器間に前記入力固定器を挿入する場合の消費電力見積り値と、該演算器間に該入力固定器を挿入しない場合の消費電力見積り値とを比較して、前者が後者よりも小さい場合にのみ、前記演算器入力固定化ステップを起動して該演算器間に該入力固定器を挿入させる入力固定要否判断ステップを更に有する。
【００３９】
さらに、好ましくは、本発明の動作合成方法における入力固定器は、前記コントローラからの制御信号に従って、前記後続演算器がアクティブ状態になる有効サイクルのときに前記対象演算器からの出力がそのまま該後続演算器に入力され、該有効サイクル以外のサイクルのときには、該対象演算器からの出力状態によらず該後続演算器への入力が一定値に固定化される。
【００４０】
本発明のディジタル回路の製造方法は、本発明の上記動作合成装置を有するコンピュータシステムを用いた本発明の上記動作合成方法をディジタル回路の自動設計に用い、自動設計されたディジタル回路に基づいて半導体装置の各レイヤーを形成するための各マスクを自動設計し、この各マスクを用いてディジタル回路を製造する動作合成方法をディジタル回路の設計に用い、この設計されたディジタル回路を製造するものであり、そのことにより上記目的が達成される。
【００４１】
本発明の動作合成制御プログラムは、本発明の上記動作合成方法の各ステップをコンピュータに実行させるためのものであり、そのことにより上記目的が達成される。
【００４２】
本発明の可読記録媒体は、本発明の上記動作合成制御プログラムが記録されたコンピュータ読み取り可能なものであり、そのことにより上記目的が達成される。
【００４３】
上記構成により、以下に、本発明の作用について説明する。
【００４４】
本発明にあっては、動作記述からＲＴＬ記述を生成する動作合成において、ある演算器が複数の演算によって共有されている場合に、その演算器と少なくとも一つの後続演算器との間に、後続演算器の演算結果が有効である有効サイクル（その後続演算器がアクティブ状態）以外のサイクル（その後続演算器が非アクティブ状態）に対して、後続演算器への入力を固定状態とする入力固定器を挿入する。
【００４５】
この場合に、後続演算器が非アクティブ状態のときに、対象演算器の出力が変化しても、後続演算器への入力は入力固定器により固定状態とされて変化しないため、後続演算器による無駄な電力消費を抑制することが可能となる。
【００４６】
また、入力固定器によって消費される電力増加を抑制するため、演算器間に入力固定器を入れる場合の電力見積り値と、演算器間に入力固定器を入れない場合の電力見積り値とを比較して、前者が小さい場合にのみ入力固定器を挿入するようにしてもよい。
【発明の効果】
【００４７】
以上により、本発明によれば、動作合成処理において、一つの演算器が複数の演算処理によって共有化されるような回路を生成する場合に、その演算器と後続演算器との間に、後続演算器が非アクティブ状態のときに後続演算器への入力を固定状態とする入力固定器を挿入することによって、後続演算器による無駄な電力消費を抑制して、ハードウェアの低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【００４８】
以下に、本発明の動作合成装置を用いたコンピュータシステムおよび、これを用いた動作合成方法の実施形態について、図面を参照しながら詳細に説明する。
【００４９】
図１は、本発明の実施形態に係るコンピュータシステムの要部構成例を示すブロック図である。
【００５０】
図１において、コンピュータシステム１は、動作記述１０を格納する動作記述格納部または外部から動作記述１０が入力される外部入力部と、この動作記述１０からＲＴＬ記述を自動生成する動作合成処理を行う動作合成装置２０と、この動作合成装置２０が動作合成処理に必要なデータを保持するデータベース３０と、動作合成装置２０からのＲＴＬ記述４０を格納するＲＴＬ記述格納部または、これからまたは直に外部にＲＴＬ記述を出力可能とする外部出力部とを有している。
【００５１】
動作合成装置２０は、コントロールデータフローグラフ（ＣＤＦＧ）生成手段２１と、スケジューリング手段２２と、アロケーション手段２３と、データパス・コントローラ生成手段２４と、演算器入力固定化手段２５とを有しており、動作記述１０からＲＴＬ記述４０をコンピュータ自動生成する動作合成処理において、ある演算器が複数の演算処理によって共有されている場合に、この演算器入力固定化手段２５により、本発明の特徴構成として詳細に後述するが、その演算器と少なくとも一つの後続演算器との間に、後続演算器の演算結果が有効である有効サイクル（その後続演算器がアクティブ状態）以外のサイクル（その後続演算器が非アクティブ状態）に対して、後続演算器への入力を固定状態とする入力固定器を挿入する。これによって、後続演算器が非アクティブ状態のときに、対象演算器の出力が変化しても、後続演算器への入力は入力固定器により固定されて変化しないため、後続演算器による無駄な電力消費を抑制することができる。
【００５２】
この動作合成装置２０では、ハードウェアの構造に関する情報は含まず、動作のみを記述した動作記述１０が入力されて動作合成処理が行われ、その出力結果としてＲＴＬ記述４０が出力される。動作合成装置２０により動作合成処理中に中間データとして生成されるＣＤＦＧ、スケジューリング結果、アロケーション結果およびデータパス・コントローラ構成情報などは、その都度、データベース３０に格納されて、必要に応じて参照されるようになっている。
【００５３】
ここで、動作合成装置２０のハードウェア構成について説明する。
【００５４】
動作合成装置２０は、図２に示すように、各種入力指令を行うことを可能とするキーボードやマウス、画面入力装置などの操作入力部２０Ａと、各種入力指令に応じて表示画面上に、初期画面、選択誘導画面および処理結果画面などの各種画像を表示可能とする表示部２０Ｂと、全体的な制御を行う制御手段としてのＣＰＵ２０Ｃ（中央演算処理装置）と、ＣＰＵの起動時にワークメモリとして働く一時記憶手段としてのＲＡＭ２０Ｄと、ＣＰＵ２０Ｃを動作させるための動作合成制御プログラムおよびこれに用いる各種データなどが記録されたコンピュータ読み取り可能な可読記録媒体（記憶手段）としてのＲＯＭ２０Ｅとを有している。
【００５５】
ＣＰＵ２０Ｃは、ＲＯＭ２０Ｅ内からＲＡＭ２０Ｄ内に読み出された動作合成制御プログラムおよびこれに用いる各種データに基づいて、回路の動作記述から、データの流れを枝とし、演算処理および通信処理のいずれかを各節点としてグラフで表したコントロールデータフローグラフ（ＣＤＦＧ）を生成するＣＤＦＧ生成手段２１と、ＣＤＦＧ中の各節点の処理をどの実行サイクルで実行するかを決定するスケジューリング手段２２と、演算処理を回路素子に割り付けると共に処理途中のデータを記憶するためにレジスタに割り付けるアロケーション手段２３と、スケジューリング手段２２およびアロケーション手段２３による各処理結果にしたがって、データパスとそれを制御するコントローラを生成し、演算器およびレジスタの接続を表すネットリストを作成するデータパス・コントローラ生成手段２４と、アロケーション手段２３により複数の演算処理が割り当てられた演算器について、データパス・コントローラ生成手段２４により得られたネットリスト中の演算器とその演算器の出力先である後続演算器との間に、当該後続演算器の演算結果が有効である有効サイクル以外のサイクルに対して、当該後続演算器への入力状態を固定状態とする入力固定器を挿入する演算器入力固定化手段２５との各機能を実行する。
【００５６】
ＲＯＭ２０Ｅは、データベース３０内にあってもよいが、ここでは動作合成装置２０内に設けており、ハードディスク、光ディスク、磁気ディスクおよびＩＣメモリなどの可読記録媒体（記憶手段）で構成されている。この動作合成制御プログラムおよびこれに用いる各種データは、携帯自在な光ディスク、磁気ディスクおよびＩＣメモリなどからＲＯＭ２０Ｅにダウンロードされてもよいし、コンピュータのハードディスクからＲＯＭ２０Ｅにダウンロードされてもよいし、無線または有線、インターネットなどを介してＲＯＭ２０Ｅにダウンロードされてもよい。
【００５７】
上記構成により、以下に、本実施形態の動作合成処理動作を詳細に説明する。
【００５８】
図３は、図１の動作合成装置２０による動作合成処理の処理手順を示すフローチャートである。
【００５９】
図３に示すように、ステップＳ１のＣＤＦＧ生成工程では、ハードウェアの構造に関する情報は含まず、動作のみを記述した回路の動作記述１０が動作合成装置２０に入力され、入力された動作記述１０から、データの流れを枝とし、演算や通信の各処理を節点としてグラフで表したＣＤＦＧが自動生成される。この生成されたＣＤＦＧは、データベース３０に、枝・節点情報の集合として登録される。
【００６０】
この枝・節点情報は、節点の番号、演算処理の種類、枝の接続先の節点番号などからなっており、ＣＤＦＧ中の１節点が一つの節点情報として表され、ＣＤＦＧ全体は節点情報の配列またはリストとして表されている。コンピュータシステム１の実際の設計処理では、大規模なディジタル回路の場合、ＣＤＦＧの節点数が１万個を超えることもあるため、ＣＤＦＧ生成処理は計算機上で行われる。スケジューリング以降の処理についても同様である。なお、この場合のＣＤＦＧはデータベース３０上の数値データであるが、説明の簡便のために、以下では図４に示すグラフとして表して説明する。
【００６１】
次に、ステップＳ２のスケジューリング工程では、ＣＤＦＧの各節点（演算や通信などの各処理）をどの実行サイクルで実行するかということが決定される。この決定された実行サイクルは、データベース３０上の各節点の枝・節点情報に付加される。実行サイクルの決定方法は、特に限定されず、どのようなものであってもよい。なお、前述したが、図３に示すＣＤＦＧにスケジューリング処理を施した結果を、ある演算器が複数の演算によって共有される事例として、例えば図５（ｂ）に示している。
【００６２】
さらに、ステップＳ３のアロケーション工程では、図６（ｂ）に示すように、ＣＤＦＧの各節点の処理を演算器に割り付ける処理、および処理途中のデータを記憶するためにレジスタに割り付ける処理が行われる。この割り付けられた演算器・レジスタ情報は、データベース３０上の各節点の節点情報に付加される。演算器・レジスタ割当方法は、特に限定されず、どのようなものであってもよい。ここで留意するべき点は、異なる複数のサイクルで実行される同一演算が一つの演算器に割り付けられる可能性があるということである。なお、動作合成処理の方法によっては、このアロケーション工程がスケジューリング工程の前に行なわれることもある。
【００６３】
その後、ステップＳ４のデータパス・コントローラ生成工程では、スケジューリング結果およびアロケーション結果にしたがって、図６（ｂ）に示すようなデータパス（セレクタ３１２）と、それを制御するコントローラ３１３が生成される。この生成されたデータパス（セレクタ３１２）とコントローラ３１３の情報は、演算器やレジスタの接続を表すネットリストとしてデータベース３０に登録される。
【００６４】
さらに、ステップＳ５の演算器入力固定化工程では、アロケーション工程で複数の演算が割り当てられた演算器について、データパス生成処理により得られたネットリスト中の当該演算器とその演算器の各出力先である後続演算器との間に、その後続演算器の処理が有効であるサイクル（後続演算器がアクティブ状態）においてのみデータを通し、それ以外のサイクル（後続演算器が非アクティブ状態）では後続演算器の入力を固定状態とする入力固定器が挿入される。
【００６５】
例えば、図４（ｂ）のようにスケジューリング処理が行われ、アロケーション工程で節点１０１，１０３が、図６（ｂ）のように一つの乗算器３０７に割り当てられた場合、データパス（セレクタ３１２）が自動生成される。
【００６６】
ここで、データベース３０上のアロケーション手段２３による処理結果が参照されて、アロケーション手段２３によりデータフローグラフ中の複数の演算処理が一つの演算器に割り付けられている複数演算処理用の演算器３０７が検索されることによって、図６（ｂ）の乗算器３０７が演算器入力固定化工程の対象になることが分かる。
【００６７】
図６（ｂ）において、複数の演算処理が割り当てられた乗算器３０７からの出力は、加算器３０８および減算器３０９に共に入力されており、演算器３０７からの出力が入力される後続演算器（加算器３０８および減算器３０９）が検索される。よって、図７に示すように、乗算器３０７と加算器３０８との間および、乗算器３０７と減算器３０９との間にそれぞれ、入力固定器３１４，３１５がそれぞれ挿入される。
【００６８】
このように、ステップＳ５の演算器入力固定化工程は、対象演算器検索ステップと、後続演算器検索ステップと、入力固定器挿入ステップとからなっている。
【００６９】
入力固定器３１４は、コントローラ３１３からのサイクル信号に従って、加算器３０８がアクティブ状態になるサイクル１のときに乗算器３０７からの出力が加算器３０８に入力され、それ以外のサイクルでは加算器３０８への入力が一定値に固定される。これによって、サイクル２において乗算器３０７の出力が変化しても、加算器３０８への入力は変化しなくなり、加算器３０８での無駄な電力消費を防ぐことができる。
【００７０】
これと同様に、入力固定器３１５では、減算器３０９がアクティブ状態になるサイクル２のときに乗算器３０７からの出力が減算器３０９に入力され、それ以外のサイクルでは減算器３０９への入力が一定値に固定される。これによって、サイクル１において乗算器３０７からの出力が変化しても、減算器３０９への入力は変化しなくなり、減算器３０９での無駄な電力消費を防ぐことができる。
【００７１】
なお、サイクル１とサイクル２は、１クロック周期の間に限定されるものではなく、サイクル１の状態とサイクル２の状態が数クロック毎に入れ替わってもよい。また、３つ以上の演算処理が一つの演算器に割り当てられていてもよい。
【００７２】
上記入力固定器３１４，３１５は、例えばラッチ回路を用いることができる。このラッチ回路では、コントローラ３１３からの制御信号としてのイネーブル信号が”ｈｉｇｈ”状態（ハイレベル）のときに乗算器３０７からの入力がそのまま出力され、このイネーブル信号が”ｌｏｗ”状態（ローレベル）のときに乗算器３０７からの入力がどのようなものであってもその出力の値が変化しなくなるという回路である。これによって、コントローラ３１３から入力固定器３１４，３１５への各制御信号を、そのまま、ラッチ回路のイネーブル信号に接続することによって、ラッチ回路を入力固定器３１４，３１５として用いることができる。
【００７３】
また、図８に示すように、アロケーション工程（ステップＳ３）において複数の演算処理を実行するように割り当てられた対象演算器７０１の後続演算器７０２が乗算器である場合、入力固定器７０３として、コントローラ７０４からの制御信号としてのサイクル信号によって制御される図９に示すような複数のＡＮＤゲート７０３ａで構成された回路を用いてもよい。
【００７４】
図９に示す入力固定器７０３では、コントローラ７０４からの制御信号としてのサイクル信号と、対象演算器７０１からの入力との論理積が複数のＡＮＤゲート７０３ａから出力される。この入力固定器７０３では、サイクル信号が”ｈｉｇｈ”状態（ハイレベル）のときには対象演算器７０１からの入力がそのまま後続乗算器７０２に入力され、サイクル信号が”ｌｏｗ”状態（ローレベル）のときには後続乗算器７０２への出力が全ビット”０”に固定される。これにより、乗算器７０２が非アクティブ状態のときに、後続乗算器７０２の内部信号が常に”０”となり、スイッチングが起こらず、電力が消費されない。
【００７５】
この構成の利点としては、ＡＮＤゲート７０３ａの方がラッチ回路よりも回路規模が小さいことが挙げられる。
【００７６】
さらに、乗算器７０２が非アクティブ状態のときには、別の入力につながる演算器７０５からの出力が変化しても、演算器７０５と後続乗算器７０２の間に入力固定器が不要であるという利点もある。この理由は、後続乗算器７０２が非アクティブ状態のときには、常に入力固定器７０３からの出力が”０”であり、演算器７０５の出力が変化しても、後続乗算器７０２の内部で信号の変化が起こらず、電力が消費されないからである。これによって、このような場合には、後続乗算器７０２への出力のいずれか一方に入力固定器７０３が設けられていれば十分である。
【００７７】
なお、図８において、演算器７０２が乗算器であることは一例であり、例えばビットＡＮＤ演算器のように、入力の片方が”０”である場合に出力が必ず”０”になる演算器であれば、同様の効果が得られる。
【００７８】
さらに、後続演算器７０２が加算器や減算器である場合には、入力の片方が”０”であっても出力が変化するため、電力が消費されるが、キャリーが伝搬されなくなる分、スイッチング回数が減少され、消費電力が減少するという効果が得られる。
【００７９】
しかしながら、入力固定器７０３としてＡＮＤゲートを用いた場合、コントローラ７０４からのサイクル信号が”ｌｏｗ”状態（ローレベル）の間には電力が消費されないが、サイクル信号が”ｈｉｇｈ”状態（ハイレベル）から”ｌｏｗ”状態（ローレベル）に変化するときに入力固定器７０３からの出力が”０”に変化するため、これに伴ってスイッチングが起こり、電力が消費される。これによって、アクティブ・非アクティブが頻繁に入れ替わる場合には、消費電力の点で、入力固定器７０３としてラッチ回路を用いる方が有利である。
【００８０】
さらに、図１０に示すように、アロケーション工程（ステップＳ３）において、複数の演算を実行するように割り当てられた対象演算器９０１の後続演算器９０２がビットＯＲ演算器である場合、入力固定器９０３として、図１１に示すようなＯＲゲート９０３ａで構成された回路を使ってもよい。
【００８１】
図１１に示す入力固定器９０３では、コントローラ９０４からのサイクル信号と、演算器９０１からの出力との論理和が出力される。この入力固定器９０３では、サイクル信号が”ｈｉｇｈ”状態（ハイレベル）のときに演算器９０１の出力がそのままビットＯＲ演算器９０２に入力され、サイクル信号が”ｌｏｗ”状態（ローレベル）のときに後続演算器９０２のビットＯＲ演算器への入力が全ビット”１”に固定される。これにより、後続演算器９０２のビットＯＲ演算器が非アクティブ状態のときには、後続演算器９０２のビットＯＲ演算器の内部信号が常に”１”となり、スイッチングが起こらず、電力が消費されない。
【００８２】
なお、図１０において、後続演算器９０２がビットＯＲ演算器であることは一例であり、入力の片方が全ビット”１”である場合に出力が必ず全ビット”１”になる演算器であれば、同様の効果が得られる。
【００８３】
以上のように、複数の演算処理を時間をずらせて実行する対象演算器とその後続演算器との間に入力固定器を挿入することによって、後続演算器と後続演算器以降の演算器とにおいて無駄に消費される電力を減少させることができる。
【００８４】
しかしながら、入力固定器自体によって消費される電力が増加することを考えると、図３に示す演算器入力固定化工程の前に、演算器入力固定化処理を行うか否かを選択可能とする入力固定要否判定工程を加えてもよい。
【００８５】
図１２は、乗算が３箇所にあるＣＤＦＧの一例を示す図である。
【００８６】
図１２の事例では、スケジューリング工程において三つの乗算処理（乗算器１１０１、１１０２および１１０３）が異なるサイクル（サイクル１〜３）にそれぞれスケジューリングされている。次のアロケーション工程において、これらの三つの乗算処理が一つの乗算器で実行されるようにアロケーションされたものとする。図１２において、１１０４は乗算器１１０１の出力が伝わるＣＤＦＧの一部分を表している。また、１１０５は乗算器１１０２の出力が伝わるＣＤＦＧの一部分を表している。さらに、１１０６は乗算器１１０３の出力が伝わるＣＤＦＧの一部分を表している。
【００８７】
部分ＣＤＦＧ１１０４，１１０５および１１０６はそれぞれ、乗算器１１０１、１１０２および１１０３から下にＣＤＦＧをたどり、サイクルが変わるか、または、共有される演算処理に至るまでのＣＤＦＧの部分である。このように部分ＣＤＦＧを設定する理由は、サイクルが変わるときにはデータが一旦レジスタに蓄えられるため、演算処理結果がそれ以降の演算器には伝わらず、また、共有される演算処理は、本発明を適用して入力固定器を挿入することによって演算処理結果がそれ以降の演算器に伝わらないようにすることができるからである。
【００８８】
図１３は、図１２の部分ＣＤＦＧを実行するデータパスおよびコントローラを示す図である。
【００８９】
図１３において、乗算器１２０７からの出力は、入力固定器１２０１、１２０２および１２０３をそれぞれ通して、部分ＣＤＦＧ１１０４、１１０５および１１０６をそれぞれ実行する部分回路１２０４、１２０５および１２０６にそれぞれ入力されている。各入力固定器１２０１、１２０２および１２０３と、乗算器１２０７への入力を選択するセレクタ１２１０，１２１１とは、コントローラ１２１２からの制御信号によって制御される。また、乗算器１２０７からの出力に接続されるＲＥＧ１２１３の出力端はセレクタ１２１１の他方入力端にも接続されている。
【００９０】
入力固定器１２０１、１２０２および１２０３の平均消費電力をＰａ１、Ｐａ２およびＰａ３とし、部分ＣＤＦＧを実行する部分回路１２０４、１２０５および１２０６の平均消費電力をＰｇ１、Ｐｇ２およびＰｇ３とし、サイクル１、２および３が実行される回数の比率をそれぞれＮ１、Ｎ２およびＮ３とする。ここで、回路中で消費される電力は、回路中に含まれるトランジスタの個数と相関があるため、消費電力Ｐａ１、Ｐａ２、Ｐａ３、Ｐｇ１、Ｐｇ２およびＰｇ３の値として、トランジスタの個数や回路の面積を用いてもよい。また、サイクル１、２および３の実行回数比Ｎ１、Ｎ２およびＮ３は、図１２では１：１：１になるが、あるサイクルが条件分岐の中にあったり、ループの中にある場合には、実行回数が大きく異なってくるため、その実行回数の比率を用いる。
【００９１】
図１３の部分回路１２０４とその入力固定器１２０１によって消費される電力の合計は、乗算器１２０７からの出力がサイクル１の間しか変化しないため、
Ｎ１×（Ｐａ１＋Ｐｇ１）
である。
【００９２】
入力固定器１２０１を用いない場合の電力は、乗算器１２０７がサイクル１、２および３の間に変化するため、
（Ｎ１＋Ｎ２＋Ｎ３）×Ｐｇ１
となる。
【００９３】
よって、入力固定要否判定工程では、
Ｎ１×（Ｐａ１＋Ｐｇ１）  ＜  ×（Ｎ１＋Ｎ２＋Ｎ３）Ｐｇ１
が成立する場合に、演算器入力固定化工程において入力固定器を挿入するように判定される。即ち、演算器入力固定化工程の前段に設けられた入力固定要否判定工程において、演算器間に入力固定器を入れる場合の電力見積り値と、演算器間に入力固定器を入れない場合の電力見積り値とを比較して、前者が小さい場合にのみ、演算器入力固定化工程（演算器入力固定化手段）を起動して入力固定器を挿入させるように制御が為される。これにより、入力固定器を挿入することによって逆に消費電力が増加してしまうことを防ぐことができる。
【００９４】
なお、以上に示した判定式は一例であり、入力固定器のリーク電流に伴う静的消費電力を考慮する項を加えてもよい。さらには、入力固定器の面積増加を考慮する項を加えてもよい。
【００９５】
以上により、本実施形態によれば、動作記述からレジスタトランスファレベル（ＲＴＬ）記述を生成する動作合成装置２０は、ある演算器の出力が複数の後続演算器に入力されており、各後続演算器の演算結果が有効であるサイクルが異なる場合において、この演算器と後続演算器の少なくとも１つの演算器との間に、後続演算器の演算結果が有効であるサイクル以外のサイクルに対して、後続演算器の入力を固定する入力固定器を挿入する演算器入力固定手段２５が設けられている。これによって、動作合成処理において、演算器の共有によって生じる無駄な電力消費を防止して、ハードウェアの低消費電力化を図ることができる。
【００９６】
なお、上記実施形態では、特に説明しなかったが、本発明の動作合成装置２０を有するコンピュータシステム１を用いた動作合成方法をディジタル回路の自動設計に用い、この自動設計されたディジタル回路に基づいて半導体装置の各レイヤーを形成するための各マスクを自動設計し、この各マスクを用いて実際のディジタル回路を製造する。このようにして製造された論理回路を含む実際のディジタル回路において、演算器の共有によって生じる無駄な電力消費を防止できて、ハードウェアの低消費電力化を図ることができる本発明の効果を奏する。
【００９７】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【００９８】
本発明は、ディジタル回路の設計・製造を支援するべく、回路動作を記述した動作記述（回路の設計仕様）からレジスタトランスファレベル（ＲＴＬ）の回路記述をコンピュータ自動合成するコンピュータシステムの動作合成装置およびこの動作合成装置を用いた動作合成方法、このディジタル回路の製造方法、この動作合成方法を実行するための動作合成制御プログラム、この動作合成制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、一つの演算器が複数の演算処理によって共有化されるような回路を生成する場合に、その演算器と後続演算器との間に、後続演算器が非アクティブ状態のときに後続演算器への入力を固定状態とする入力固定器を挿入することによって、後続演算器による無駄な電力消費を抑制して、ハードウェアの低消費電力化を図ることができる。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施形態に係るコンピュータシステムの要部構成例を示すブロック図である。
【図２】図１の動作合成装置のハード構成を示すブロック図である。
【図３】図１の動作合成装置による動作合成処理の処理手順を示すフローチャートである。
【図４】ＣＤＦＧの一例を示す図である。
【図５】（ａ）および（ｂ）は、図４のＣＤＦＧにスケジューリング処理を施した結果について、二つの事例を示す図である。
【図６】（ａ）および（ｂ）はそれぞれ、図５（ａ）および図５（ｂ）のスケジューリング結果を実行する回路構成例を示す図である。
【図７】図６（ｂ）に示す回路に入力固定器を挿入した回路例を示す図である。
【図８】後続演算器が乗算器である場合に入力固定器を挿入した回路例を示す図である。
【図９】ＡＮＤゲートを用いた入力固定器の例を示す図である。
【図１０】後続演算器がビットＯＲ回路である場合に入力固定器を挿入した回路例を示す図である。
【図１１】ＯＲゲートを用いた入力固定器の例を示す図である。
【図１２】乗算が３箇所にあるＣＤＦＧの例を示す図である。
【図１３】図１２のＣＤＦＧを実行する回路例を示す図である。
【符号の説明】
【０１００】
１  コンピュータシステム
１０  動作記述
２０  動作合成装置
２０Ａ  操作入力部
２０Ｂ  表示部
２０Ｃ  ＣＰＵ（制御部）
２０Ｄ  ＲＡＭ
２０Ｅ  ＲＯＭ
２１  ＣＤＦＧ生成手段
２２  スケジューリング手段
２３  アロケーション手段
２４  データパス・コントローラ生成手段
２５  演算器入力固定化手段
３０  データベース
４０  ＲＴＬ記述
１０１〜１０４  節点
３０１，３０３，３０７，１１０１〜１１０３，１２０７  乗算器（演算器）
３０２，３０８  加算器
３０４，３０９  減算器
３０５，３０６，３１０，３１１，１２１３  レジスタ（ＲＥＧ）
３１２，１２１０，１２１１  セレクタ（Ｓｅｌ）
３１３，７０４，９０４，１２１２  コントローラ
３１４，３１５，７０３，９０３，１２０１，１２０２，１２０３  入力固定器
７０１，９０１  対象演算器
７０２，９０２  後続演算器
７０３ａ  ＡＮＤゲート
７０５  演算器
９０３ａ  ＯＲゲート
１１０４，１１０５，１１０６  部分ＣＤＦＧ
１２０４、１２０５，１２０６  部分回路
【図１】
0004396987.tif 000002
【図２】
0004396987.tif 000003
【図３】
0004396987.tif 000004
【図４】
0004396987.tif 000005
【図５】
0004396987.tif 000006
【図６】
0004396987.tif 000007
【図７】
0004396987.tif 000008
【図８】
0004396987.tif 000009
【図９】
0004396987.tif 000010
【図１０】
0004396987.tif 000011
【図１１】
0004396987.tif 000012
【図１２】
0004396987.tif 000013
【図１３】
0004396987.tif 000014