(57)【要約】【課題】設計のＴＡＴが長くなるのを回避する。【解決手段】ハードウェアによる所定の動作が記述された動作記述から、所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、その論理回路から、その論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置において、生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定部と、当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、第１の信号名特定部にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成部とを有する。【選択図】図１
2011159201.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置において、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定部と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定部にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成部と、を有する動作合成装置。
【請求項２】
請求項１に記載の動作合成装置において、
前記第１の信号名特定部にて特定される信号名は、比較器に対応するインスタンスからの出力信号の信号名である動作合成装置。
【請求項３】
請求項１に記載の動作合成装置において、
前記第１の信号名特定部にて特定される信号名は、論理ゲートからの出力信号の信号名である動作合成装置。
【請求項４】
請求項１に記載の動作合成装置において、
前記論理回路は、有限個の状態を持ち、入力に応じて前記状態が変化する振る舞いを示すモデルである有限状態機械に基づいて構成され、
前記第１の信号名特定部にて特定される信号名は、前記有限状態機械の状態レジスタに対応付けられたインスタンスからの出力信号の信号名である動作合成装置。
【請求項５】
請求項４に記載の動作合成装置において、
前記第１の信号名特定部にて特定される信号名は、前記状態レジスタに対応付けられたインスタンスからの出力信号がデコードされた信号の信号名である動作合成装置。
【請求項６】
請求項１乃至５のいずれか１項に記載の動作合成装置において、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、入力された複数の信号の中から、出力すべき信号を指示するための信号の信号名を特定する第２の信号名特定部を有し、
前記指示記述生成部は、当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第２の信号名特定部にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する動作合成装置。
【請求項７】
ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置における動作合成方法であって、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定処理と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定処理にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成処理と、を有する動作合成方法。
【請求項８】
請求項７に記載の動作合成方法において、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、入力された複数の信号の中から、出力すべき信号を指示するための信号の信号名を特定する第２の信号名特定処理をさらに有し、
前記指示記述生成処理は、当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第２の信号名特定処理にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する処理をさらに含む動作合成方法。
【請求項９】
ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置に、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定機能と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定機能によって信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成機能と、を実現させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムにおいて、
前記動作合成装置に、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、入力された複数の信号の中から、出力すべき信号を指示するための信号の信号名を特定する第２の信号名特定機能をさらに実現させ、
前記指示記述生成機能は、当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第２の信号名特定機能によって信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する機能をさらに含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアの動作が記述された動作記述から、具体的な機能（回路）が記述されたＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述を生成する動作合成装置、動作合成方法及びプログラムに関する。
【背景技術】
【０００２】
近年、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の設計においては、抽象度の高いレベルで設計し、動作合成によってＲＴＬ回路を生成する設計手法が採用され始めている。
【０００３】
この種の設計手法では、まず、システムＬＳＩの所望の動作を実現するための動作記述を設計する。次に、動作合成によって動作記述からＲＴＬ記述を生成する。そして、論理合成によってＲＴＬ記述からゲートレベル記述を生成し、レイアウトを行うという工程で設計が行われる。
【０００４】
各工程において設計または生成された記述に対しては検証が行われる。動作記述に対しては、動作レベルシミュレーションにより、仕様通りの動作を実現できているかの検証が行われる。また、ＲＴＬ記述に対しては、ＲＴＬシミュレーションにより、生成されたＲＴＬ記述が動作記述通りの機能を実現しているか、設計制約を満たしているかどうかの検証が行われる。また、ゲートレベル記述に対しては、ゲートレベルシミュレーションやタイミング解析により、ＲＴＬ記述と機能的に等価かどうか、設計制約を満たしているかどうかの検証が行われる。
【０００５】
上述した各検証において設計ミスや設計制約違反等の問題が確認された場合、その問題の原因を特定し、動作記述を適切に変更することによって問題を解決する。
【０００６】
上述したような設計手法によってＬＳＩの設計を行う場合、ゲートレベル記述の検証において確認された問題の原因を特定するときに、動作記述とゲートレベル記述と間の対応関係を知りたいという要求がある。この要求は、確認された問題の解決のために動作記述を変更する方針を検討するためである。
【０００７】
特に、ゲートレベル記述中の信号が、動作記述における制御フローに関連する制御信号なのか、データフローに関連するデータ信号なのかを区別したいという要求がある。これは、ゲートレベル記述の検証において確認された問題が制御フローに起因するものか、データフローに起因するものかで、動作記述を変更する方針が異なるためである。
【０００８】
例えば、ゲートレベル記述におけるタイミング制約違反が、データ信号のみから構成されたパス上で発生した場合、データ信号に関連する動作記述中の処理が演算であれば、演算の並列化などの変更方針が検討される。
【０００９】
一方、ゲートレベル記述におけるタイミング制約違反が、制御信号を含むパス上で発生した場合には、非制御側の回路に対応する動作記述中の演算などの処理を制御信号の確定前に投機実行するように記述を変更し、非制御側の回路の遅延を削減するなどの変更方針が検討される。
【００１０】
ここで、上述したような検証において確認された問題の解決を図るための半導体集積回路の検証方法が例えば、特許文献１に開示されている。
【００１１】
特許文献１に開示されている検証方法は主に、動作記述中の変数と、ＲＴＬ記述中の信号またはゲートレベル記述中の信号との対応関係を特定することを意図したものである。
【００１２】
より具体的にはこの検証方法では、ＲＴＬ記述中の信号またはゲートレベル記述中の信号と一意に対応させたい動作記述中の変数を観測変数として検証者が設定する。そして、設定された観測変数のうちＲＴＬ記述中の外部ポートに対応しないものに対し、ＲＴＬ記述中の外部ポートに対応するように動作記述を変更する。
【００１３】
これにより、すべての観測変数は、ＲＴＬ記述中の外部ポートに対応するようになる。そのため、観測変数に対応する信号の論理圧縮が回避され、動作記述中の変数と一意に対応する信号がゲートレベル記述中に残ることとなる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００４―１３９３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述した特許文献１に開示されている検証方法では、検証者が動作記述中の変数に対して観測変数を指定している。
【００１６】
この場合、動作合成において自動的に内部で生成される制御信号に一意に対応する信号は、論理合成で行われる論理圧縮などの影響により、ゲートレベル記述中に残らない可能性がある。
【００１７】
つまり、特許文献１に開示されている検証方法は、ゲートレベル記述中の信号が、動作記述における制御フローに関連する制御信号なのか、データフローに関連するデータ信号なのかを区別するためには十分な方法とは言えない。
【００１８】
従って、ＲＴＬ記述中の信号をゲートレベル記述中に残すために、設計者が個別の信号を残すための指示を与える必要がある。この場合、設計のＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）が長くなるという問題点がある。
【００１９】
本発明は、設計のＴＡＴが長くなるのを回避することができる動作合成装置、動作合成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために本発明の動作合成装置は、ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置において、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定部と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定部にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成部と、を有する。
【００２１】
また、上記目的を達成するために本発明の動作合成方法は、ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置における動作合成方法であって、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定処理と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定処理にて信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成処理と、を有する。
【００２２】
また、上記目的を達成するために本発明のプログラムは、ハードウェアによる所定の動作が記述された動作記述から、前記所定の動作を実現するための複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスを含む論理回路を構成し、該論理回路から、前記論理回路内で入出力される複数の信号のそれぞれの信号名を含み、論理合成の入力となるＲＴＬ記述を生成する動作合成装置に、
前記生成されたＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する第１の信号名特定機能と、
当該生成されたＲＴＬ記述とともに論理合成の入力となる記述であり、前記第１の信号名特定機能によって信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する指示記述生成機能と、を実現させる。
【発明の効果】
【００２３】
本発明は以上説明したように構成されているので、ＲＴＬ記述において所定の判定条件に応じた判定結果を示す信号に一意に対応する信号が、ＲＴＬ記述を論理合成することによって得られるゲートレベル記述中に残ることとなる。そのため、ゲートレベル記述中の信号が、動作記述における制御フローに関連する制御信号なのか、データフローに関連するデータ信号なのかを区別することが可能となる。
【００２４】
従って、設計者が個別の信号を残すための指示を与える必要がなくなり、設計のＴＡＴが長くなるのを回避することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の動作合成装置の第１の実施形態の構成を示すブロック図である。
【図２】図１に示した動作記述記憶部に記憶された動作記述の一例を示す図である。
【図３】図１に示した動作合成装置の動作を説明するためのフローチャートである。
【図４】図１に示したスケジューリング及びバインディング実行部が動作記述中の記述を実行される状態に割り当てた結果の一例を示す図である。
【図５】図１に示したスケジューリング及びバインディング実行部が動作記述中の記述を複数のハードウェアリソースに割り当てた結果の一例を示す図である。
【図６】図１に示したスケジューリング及びバインディング実行部が動作記述中の記述を複数のハードウェアリソースに割り当てた結果の一例を示す図である。
【図７】図１に示したスケジューリング及びバインディング実行部が動作記述中の記述を複数のハードウェアリソースに割り当てた結果の一例を示す図である。
【図８】図１に示したＲＴＬ記述生成部にて構成されたＲＴＬ回路の一例を示す図である。
【図９】図１に示したハードウェアリソースインスタンス信号名記憶部に記憶されたハードウェアリソースインスタンス信号名の一例を示す図である。
【図１０】図１に示した条件信号名特定部にて特定された条件信号名の一例を説明するための図である。
【図１１】図８に示したＲＴＬ回路の一部を示す図である。
【図１２】図１に示した指示記述生成部にて生成された記述の一例を示す図である。
【図１３】本発明の動作合成装置の第２の実施形態の構成を示すブロック図である。
【図１４】図１３に示した動作合成装置の動作を説明するためのフローチャートである。
【図１５】図１３に示した第２のＲＴＬ記述生成部にて特定された選択決定信号名の一例を示す図である。
【図１６】図１３に示した第２の指示記述生成部にて生成された記述の一例を示す図である。
【発明を実施するための形態】
【００２６】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２７】
（第１の実施形態）
図１は、本発明の動作合成装置の第１の実施形態の構成を示すブロック図である。
【００２８】
本実施形態の動作合成装置１０は図１に示すように、プログラム制御によって動作するデータ処理装置１００と、データ記憶装置１１０とを備えている。
【００２９】
データ処理装置１００は、スケジューリング及びバインディング実行部１０１と、ＲＴＬ記述生成部１０２と、第１の信号名特定部である条件信号名特定部１０３と、指示記述生成部１０４とを備えている。
【００３０】
データ記憶装置１１０は、ハードウェアによる所定の動作が記述された動作記述を予め記憶している動作記述記憶部１１１と、スケジューリング及びバインディング結果記憶部１１２と、ＲＴＬ記述記憶部１１３と、ハードウェアリソースインスタンス信号名記憶部１１４と、条件信号名記憶部１１５と、指示記述記憶部１１６とを備えている。なお、動作記述は、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬ、ＳｙｓｔｅｍＶｅｒｉｌｏｇといったハードウェア記述言語や、Ｃ言語、Ｃ＋＋言語、Ｃ＃言語、ＳｙｓｔｅｍＣ、ＳｐｅｃＣ、Ｊａｖａ（登録商標）、Ｐｅｒｌ、Ｓｃｈｅｍｅ、Ｌｉｓｐなどのプログラミング言語によって表現される。また、Ｃ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）に回路を実現するための拡張を行った言語によって表現されることもある。また、動作記述は例えば、設計者によって準備される。
【００３１】
スケジューリング及びバインディング実行部１０１は、動作記述記憶部１１１に記憶された動作記述を読み出す。そして、読み出された動作記述中の記述を、実行される状態に割り当てる。具体的には例えば、動作記述中の演算、条件判定、入力端子からの値の入力、出力端子への値の出力、配列読み込み及び配列書き込みが、それぞれ実行される状態に割り当てられる。また、スケジューリング及びバインディング実行部１０１は、動作記述中の記述を複数のハードウェアリソースに割り当てる。具体的には例えば、動作記述中の演算が演算器に割り当てられ、動作記述中の変数がレジスタに割り当てられ、動作記述中の入力端子がＲＴＬの入力端子に割り当てられる。また例えば、動作記述中の出力端子がＲＴＬの出力端子に割り当てられ、動作記述中の配列がＲＴＬのメモリ又はレジスタファイルに割り当てられる。そして、スケジューリング及びバインディング実行部１０１は、割り当てた結果であるスケジューリング及びバインディング結果をスケジューリング及びバインディング結果記憶部１１２に記憶させる。
【００３２】
ＲＴＬ記述生成部１０２は、スケジューリング及びバインディング結果記憶部１１２に記憶されたスケジューリング及びバインディング結果を読み出し、有限状態機械（ＦＳＭ：Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）を生成する。なお、有限状態機械とは、有限個の状態を持ち、入力に応じてその状態が変化する振る舞いを示すモデルのことである。そして、ＲＴＬ記述生成部１０２は、有限状態機械において状態を記憶する状態レジスタと、割り当てられた複数のハードウェアリソースのそれぞれと対応付けられた複数のインスタンスとを生成する。以降、割り当てられたハードウェアリソースのインスタンスのことを「ハードウェアリソースインスタンス」という。次に、ＲＴＬ記述生成部１０２は、複数のハードウェアリソースインスタンスのそれぞれへ入力される値を決定する複数の論理回路を生成する。以降、この論理回路を「入力決定論理回路」という。次に、ＲＴＬ記述生成部１０２は、生成された複数のハードウェアリソースインスタンスと入力決定論理回路とを接続してＲＴＬ回路を構成する。そして、そのＲＴＬ回路がハードウェア記述言語の表現に変換されてＲＴＬ記述が生成される。そして、ＲＴＬ記述生成部１０２は、生成された複数のハードウェアインスタンスの入出力信号の信号名である複数のハードウェアインスタンス信号名をハードウェアリソースインスタンス信号名記憶部１１４に記憶させる。また、ＲＴＬ記述生成部１０２は、生成されたＲＴＬ記述をＲＴＬ記述記憶部１１３に記憶させる。
【００３３】
条件信号名特定部１０３は、スケジューリング及びバインディング結果記憶部１１２に記憶されたスケジューリング及びバインディング結果を読み出す。また、条件信号名特定部１０３は、ハードウェアリソースインスタンス信号名記憶部１１４に記憶された複数のハードウェアリソースインスタンス信号名を読み出す。次に、条件信号名特定部１０３は、複数のハードウェアリソースのうち、所定の判定条件を決定するハードウェアリソースインスタンスを特定する。具体的には例えば、各状態に割り当てられた動作記述中の処理が実行される判定条件、動作記述中の処理の入力を選択する判定条件、及び、状態が遷移する判定条件を決定するハードウェアリソースインスタンスが特定される。そして、条件信号名特定部１０３は、特定されたハードウェアリソースインスタンスから出力されるハードウェアリソースインスタンス信号の信号名を特定する。以降、条件信号名特定部１０３にて特定された信号名のことを「条件信号名」という。例えば、条件分岐の判定結果を求める比較器に対応するハードウェアリソースインスタンスや論理ゲートからの出力信号の信号名が条件信号名として特定される。また、例えば、有限状態機械の状態レジスタに対応するインスタンスからの出力信号、有限状態機械の状態レジスタに対応するインスタンスから出力された信号をデコードするデコーダからの出力信号の信号名も条件信号名として特定される。また、特定される他の条件信号名としては例えば、特定された条件信号名の信号を入力とするバッファからの出力信号、インバータやＮＡＮＤなどの論理ゲートからの出力信号の信号名も挙げられる。そして、条件信号名特定部１０３は、特定された条件信号名を条件信号名記憶部１１５に記憶させる。
【００３４】
指示記述生成部１０４は、条件信号名記憶部１１５に記憶された条件信号名を読み出し、読み出された条件信号名の信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する。なお、この記述は例えば、ＲＴＬ記述生成部１０２によって生成されたＲＴＬ記述と同じハードウェア記述言語で生成される。そして、指示記述生成部１０４は、生成された記述を指示記述記憶部１１６に記憶させる。なお、ＲＴＬ記述記憶部１１３に記憶されたＲＴＬ記述と、指示記述記憶部１１６に記憶された記述とは、論理合成の入力となる。
【００３５】
以下に、上記のように構成された動作合成装置１０の動作について説明する。
【００３６】
図２は、図１に示した動作記述記憶部１１１に記憶された動作記述の一例を示す図である。なお、図２の図中最も左の列の数字は、行数を示している。
【００３７】
図２を参照すると、関数ｆｕｎｃ（）の入力端子はｉｎｔ型の変数ａ，ｂ，ｃ，ｄ，ｅであり、出力端子は、ｉｎｔ型の変数ｙである。
【００３８】
当該関数の出力値ｙは、入力ｃの値が入力ａ，ｂの和よりも大きな場合、入力ａ，ｂ，ｃ，ｄの総和となる。一方、入力ｃの値が入力ａ、ｂの和よりも小さな場合には、入力ｄ，ｅの和となる。また、図２の図中４行目に入力「ａ」、「ｂ」及び加算「＋」、５行目に入力「ｃ」及び加算「＋」、６行目に入力「ｃ」と条件判定「＜」、８行目に入力「ｄ」と加算「＋」、１２行目に入力「ｄ」、「ｅ」と加算「＋」、１４行目に出力「ｙ」が記述されている。
【００３９】
ここでは一例として、図２に示すようなＣ言語で表現された動作記述からＲＴＬ記述を生成する場合について説明する。
【００４０】
図３は、図１に示した動作合成装置１０の動作を説明するためのフローチャートである。
【００４１】
まず、データ処理装置１００のスケジューリング及びバインディング実行部１０１は、動作記述記憶部１１１に記憶された動作記述を読み出す。
【００４２】
次に、スケジューリング及びバインディング実行部１０１は、読み出された動作記述中の記述を実行される状態に割り当てる（ステップＳ１）。
【００４３】
図４は、図１に示したスケジューリング及びバインディング実行部１０１が動作記述中の記述を実行される状態に割り当てた結果の一例を示す図である。
【００４４】
図４を参照すると、図中４行目の入力「ａ」、「ｂ」及び加算「＋」が状態１に割り当てられている。また、５行目の入力「ｃ」及び加算「＋」と、６行目の入力「ｃ」及び条件判定「＜」と、８行目の入力「ｄ」及び加算「＋」と、１２行目の入力「ｄ」、「ｅ」及び加算「＋」と、１４行目の出力「ｙ」とが状態２に割り当てられている。
【００４５】
再度、図３を参照すると、次に、スケジューリング及びバインディング実行部１０１は、動作記述中の記述を複数のハードウェアリソースに割り当てる。（ステップＳ２）。
【００４６】
図５〜図７は、図１に示したスケジューリング及びバインディング実行部１０１が動作記述中の記述を複数のハードウェアリソースに割り当てた結果の一例を示す図である。
【００４７】
図５においては、図中４行目の加算「＋」と、５行目の加算「＋」とが加算器１に割り当てられ、８行目の加算「＋」と、１２行目の加算「＋」とが加算器２に割り当てられ、６行目の条件判定「＜」が比較器１に割り当てられている。
【００４８】
また、図６においては、図中４行目の「ｙ」への代入値がレジスタ１に割り当てられている。
【００４９】
また、図７においては、図中４行目の入力「ａ」と、５行目の入力「ｃ」と、６行目の入力「ｃ」とが入力１に割り当てられ、４行目の入力「ｂ」と、８行目の入力「ｄ」と、１２行目の入力「ｄ」とが入力２に割り当てられている。さらに、図７においては、１２行目の入力「ｅ」が入力３に割り当てられ、１４行目の出力「ｙ」が出力１に割り当てられている。
【００５０】
次に、スケジューリング及びバインディング実行部１０１は、スケジューリング及びバインディング結果をスケジューリング及びバインディング結果記憶部１１２に記憶させる。
【００５１】
次に、ＲＴＬ記述生成部１０２は、スケジューリング及びバインディング結果記憶部１１２に記憶されたスケジューリング及びバインディング結果を読み出し、有限状態機械（ＦＳＭ）を生成する（ステップＳ３）。
【００５２】
次に、ＲＴＬ記述生成部１０２は、生成された有限状態機械の状態レジスタのインスタンスと複数のハードウェアリソースインスタンスとを生成し、入力決定論理回路を構成する。
【００５３】
次に、ＲＴＬ記述生成部１０２は、構成された入力決定論理回路とハードウェアリソースインスタンスとの間を接続してＲＴＬ回路を構成する（ステップＳ４）。
【００５４】
図８は、図１に示したＲＴＬ記述生成部１０２にて構成されたＲＴＬ回路の一例を示す図である。
【００５５】
次に、ＲＴＬ記述生成部１０２は、構成されたＲＴＬ回路をハードウェア記述言語の表現に変換する。これにより、ＲＴＬ記述が生成される（ステップＳ５）。
【００５６】
そして、ＲＴＬ記述生成部１０２は、生成されたＲＴＬ記述をＲＴＬ記述記憶部１１３に記憶させ、また、複数のハードウェアリソースインスタンス信号名をハードウェアリソースインスタンス信号名記憶部１１４に記憶させる（ステップＳ６）。
【００５７】
図９は、図１に示したハードウェアリソースインスタンス信号名記憶部１１４に記憶されたハードウェアリソースインスタンス信号名の一例を示す図である。
【００５８】
次に、条件信号名特定部１０３は、スケジューリング及びバインディング結果記憶部１１２に記憶されたスケジューリング及びバインディング結果を読み出す。また、条件信号名特定部１０３は、ハードウェアリソースインスタンス信号名記憶部１１４に記憶された複数のハードウェアリソースインスタンス信号名を読み出す。
【００５９】
次に、条件信号名特定部１０３は、複数のハードウェアリソースのうち、所定の判定条件を決定するハードウェアリソースインスタンスを特定する（ステップＳ７）。
【００６０】
次に、条件信号名特定部１０３は、特定されたハードウェアリソースインスタンスから出力されるハードウェアリソースインスタンス信号の信号名を条件信号名として特定するとともに、他の条件信号名も特定する（ステップＳ８）。
【００６１】
図１０は、図１に示した条件信号名特定部１０３にて特定された条件信号名の一例を説明するための図である。
【００６２】
図１０を参照すると、状態２における８行目の加算「＋」と、１２行目の加算「＋」とのいずれが実行されるかどうかは、６行目の判定条件「＜」に応じで決定される。従って、この場合、比較器１に対応するハードウェアリソースインスタンスが特定される。そして、比較器１に対応するハードウェアリソースインスタンスから出力され、判定条件「＜」の判定結果を示す信号の信号名が条件信号名として特定されることとなる。
【００６３】
図１１は、図８に示したＲＴＬ回路の一部を示す図である。
【００６４】
図１１を参照すると、特定された条件信号名の信号周辺の部分的なＲＴＬ回路において、特定された条件信号名がＲＴＬ記述中の「ｃｏｍｐ１＿ｏ１」であることが模擬的に例示されている。
【００６５】
そして、条件信号名特定部１０３は、特定された条件信号名を条件信号名記憶部１１５に記憶させる。
【００６６】
次に、指示記述生成部１０４は、条件信号名記憶部１１５に記憶された条件信号名を読み出す。
【００６７】
次に、指示記述生成部１０４は、読み出された条件信号名の信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する（ステップＳ９）。
【００６８】
そして、指示記述生成部１０４は、生成された記述を指示記述記憶部１１６に記憶させる。
【００６９】
図１２は、図１に示した指示記述生成部１０４にて生成された記述の一例を示す図である。
【００７０】
図１２においては、図１１に示した信号名「ｃｏｍｐ１＿ｏ１」の信号が、論理合成において論理圧縮されるのを防ぐための記述が示されている。
【００７１】
このように本実施形態において動作合成装置１０は、ＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する。そして、動作合成装置１０は、当該ＲＴＬ記述とともに論理合成の入力となる記述であり、信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する。
【００７２】
これにより、ＲＴＬ記述において所定の判定条件に応じた判定結果を示す信号に一意に対応する信号が、ＲＴＬ記述を論理合成することによって得られるゲートレベル記述中に残ることとなる。そのため、ゲートレベル記述中の信号が、動作記述における制御フローに関連する制御信号なのか、データフローに関連するデータ信号なのかを区別することが可能となる。
【００７３】
従って、設計者が個別の信号を残すための指示を与える必要がなくなり、設計のＴＡＴが長くなるのを回避することができる。
【００７４】
（第２の実施形態）
図１３は、本発明の動作合成装置の第２の実施形態の構成を示すブロック図である。
【００７５】
本実施形態の動作合成装置２０は図１３に示すように、プログラム制御により動作するデータ処理装置２００と、データ記憶装置２１０とを備えている。
【００７６】
データ処理装置２００は、図１に示したデータ処理装置１００と比べると、ＲＴＬ記述生成部１０２の代わりに、第２の信号名特定部である第２のＲＴＬ記述生成部２０２を備えている点が異なる。また、指示記述生成部１０４の代わりに、第２の指示記述生成部２０４を備えている点が異なる。
【００７７】
また、データ記憶装置２１０は、図１に示したデータ記憶装置１１０と比べると、選択決定信号名記憶部２１７を備えている点が異なる。
【００７８】
第２のＲＴＬ記述生成部２０２は、図１に示したＲＴＬ記述生成部１０２と同様の動作を行う。それに加えて、第２のＲＴＬ記述生成部２０２は、複数のハードウェアリソースインスタンスのそれぞれの入力決定論理回路が、ハードウェアリソースインスタンスから出力される信号を選択するセレクタと、選択決定論理回路とに分割可能かどうかを判定する。選択決定論理回路とは、そのセレクタに入力された複数の信号の中から、出力すべき信号を決定する回路のことである。判定の基準としては、入力決定論理回路から出力される信号が、入力決定論理回路に入力された２つ以上の信号のいずれかに等しい場合に分割可能とする。判定の結果、入力決定論理回路がセレクタと選択決定論理回路とに分割可能な場合、第２のＲＴＬ記述生成部２０２は、選択決定論理回路から出力される信号の信号名を特定する。以降、第２のＲＴＬ記述生成部２０２にて特定された信号名のことを「選択決定信号名」という。そして、第２のＲＴＬ記述生成部２０２は、特定された選択決定信号名を選択決定信号名記憶部２１７に記憶させる。
【００７９】
第２の指示記述生成部２０４は、条件信号名記憶部１１５に記憶された条件信号名を読み出し、さらに、選択決定信号名記憶部２１７から選択決定信号名を読み出す。そして、第２の指示記述生成部２０４は、条件信号名記憶部１１５から読み出された条件信号名の信号と、選択決定信号名記憶部２１７から読み出された選択決定信号名の信号とが、論理合成において論理圧縮されるのを防ぐための記述を生成する。なお、この記述は例えば、第２のＲＴＬ記述生成部２０２によって生成されたＲＴＬ記述と同じハードウェア記述言語で生成される。そして、第２の指示記述生成部２０４は、生成された記述を指示記述記憶部１１６に記憶させる。なお、ＲＴＬ記述記憶部１１３に記憶されたＲＴＬ記述と、指示記述記憶部１１６に記憶された記述とは、論理合成の入力となる。
【００８０】
以下に、上記のように構成された動作合成装置２０の動作について説明する。
【００８１】
図１４は、図１３に示した動作合成装置２０の動作を説明するためのフローチャートである。なお、ここでは一例として、動作記述記憶部１１１に記憶された動作記述は、図３に示した動作記述と同じであるものとする。
【００８２】
ステップＳ２１〜Ｓ２６の動作は、図３に示したフローチャートを参照しながら説明した動作と比べ、ＲＴＬ記述生成部１０２による動作が第２のＲＴＬ記述生成部２０２による動作に変わるだけでステップＳ１〜Ｓ６の動作と同様である。そのため、ここでは、ステップＳ２１〜Ｓ２６の動作の説明は省略する。
【００８３】
第２のＲＴＬ記述生成部２０２は、複数のハードウェアリソースインスタンスのそれぞれの入力決定論理回路が、セレクタと当該セレクタの選択決定論理回路とに分割可能かどうかを判定する。
【００８４】
判定の結果、入力決定論理回路がセレクタと選択決定論理回路とに分割可能な場合、第２のＲＴＬ記述生成部２０２は、選択決定論理回路から出力される信号の信号名を選択決定信号名として特定する（ステップＳ２７）。
【００８５】
そして、第２のＲＴＬ記述生成部２０２は、特定された選択決定信号名を選択決定信号名記憶部２１７に記憶させる。
【００８６】
図１５は、図１３に示した第２のＲＴＬ記述生成部２０２にて特定された選択決定信号名の一例を示す図である。
【００８７】
図１５は、図１１に示した加算器２の入力決定論理回路がセレクタとそのセレクタの選択決定論理回路とに分割可能な場合の一例を示している。
【００８８】
図１５を参照すると、選択決定信号名が「ａｄｄ２＿ｓｅｌ＿ｉ４」であることが模擬的に例示されている。
【００８９】
次に、条件信号名特定部１０３は、スケジューリング及びバインディング結果記憶部１１２に記憶されたスケジューリング及びバインディング結果を読み出す。また、条件信号名特定部１０３は、ハードウェアリソースインスタンス信号名記憶部１１４に記憶された複数のハードウェアリソースインスタンス信号名を読み出す。
【００９０】
次に、条件信号名特定部１０３は、読み出されたスケジューリング及びバインディング結果に基づき、複数のハードウェアリソースのうち、所定の判定条件を決定するハードウェアリソースインスタンスを特定する（ステップＳ２８）。
【００９１】
次に、条件信号名特定部１０３は、特定されたハードウェアリソースインスタンスから出力されるハードウェアリソースインスタンス信号のハードウェアリソースインスタンス信号名を条件信号名として特定するとともに、他の条件信号名も特定する（ステップＳ２９）。
【００９２】
そして、条件信号名特定部１０３は、特定された条件信号名を条件信号名記憶部１１５に記憶させる。
【００９３】
次に、第２の指示記述生成部２０４は、条件信号名記憶部１１５に記憶された条件信号名を読み出し、さらに、選択決定信号名記憶部２１７に記憶された選択決定信号名を読み出す。
【００９４】
次に、第２の指示記述生成部２０４は、条件信号名記憶部１１５から読み出された条件信号名の信号と、選択決定信号名記憶部２１７から読み出された選択決定信号名の信号とが、論理合成において論理圧縮されるのを防ぐための記述を生成する（ステップＳ３０）。
【００９５】
そして、第２の指示記述生成部２０４は、生成された記述を指示記述記憶部１１６に記憶させる。
【００９６】
図１６は、図１３に示した第２の指示記述生成部２０４にて生成された記述の一例を示す図である。
【００９７】
図１６においては、図１１に示した信号名「ｃｏｍｐ１＿ｏ１」の信号が、論理合成において論理圧縮されるのを防ぐための記述と、図１５に示した信号名「ａｄｄ２＿ｓｅｌ＿ｉ４」の信号が、論理合成において論理圧縮されるのを防ぐための記述とが示されている。つまり、図１６に示す記述は、図１２に示した記述と比べると、選択決定信号名として特定された信号名の信号が論理圧縮されるのを防ぐための記述が追加されている点が異なる。
【００９８】
このように本実施形態において動作合成装置２０は、ＲＴＬ記述に含まれる複数の信号名のうち、所定の判定条件に応じた判定結果を示す信号の信号名を特定する。また、動作合成装置２０は、当該ＲＴＬ記述に含まれる複数の信号名のうち、入力された複数の信号の中から、出力すべき信号を指示するための信号の信号名を特定する。そして、動作合成装置２０は、当該ＲＴＬ記述とともに論理合成の入力となる記述であり、信号名が特定された信号が、論理合成において論理圧縮されるのを防ぐための記述を生成する。
【００９９】
これにより、ＲＴＬ記述において所定の判定条件に応じた判定結果を示す信号に一意に対応する信号が、ＲＴＬ記述を論理合成することによって得られるゲートレベル記述中に残ることとなる。さらに、ＲＴＬ記述において、入力された複数の信号の中から出力すべき信号を指示するための信号に一意に対応する信号が、ゲートレベル記述中に残ることとなる。
【０１００】
そのため、ゲートレベル記述中の信号が、動作記述における制御フローに関連する制御信号なのか、データフローに関連するデータ信号なのかを区別することが可能となる。
【０１０１】
従って、設計者が個別の信号を残すための指示を与える必要がなくなり、設計のＴＡＴが長くなるのを回避することができる。
【０１０２】
なお、本発明においては、動作合成装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを動作合成装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを動作合成装置に読み込ませ、実行するものであっても良い。動作合成装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、動作合成装置に内蔵されたＨＤＤなどを指す。
【符号の説明】
【０１０３】
１０，２０    動作合成装置
１００，２００    データ処理装置
１０１    スケジューリング及びバインディング実行部
１０２    ＲＴＬ記述生成部
１０３    条件信号名特定部
１０４    指示記述生成部
１１０，２１０    データ記憶装置
１１１    動作記述記憶部
１１２    スケジューリング及びバインディング結果記憶部
１１３    ＲＴＬ記述記憶部
１１４    ハードウェアリソースインスタンス信号名記憶部
１１５    条件信号名記憶部
１１６    指示記述記憶部
２０２    第２のＲＴＬ記述生成部
２０４    第２の指示記述生成部
２１７    選択決定信号名記憶部
【図１】
2011159201.tif 000003
【図２】
2011159201.tif 000004
【図３】
2011159201.tif 000005
【図４】
2011159201.tif 000006
【図５】
2011159201.tif 000007
【図６】
2011159201.tif 000008
【図７】
2011159201.tif 000009
【図８】
2011159201.tif 000010
【図９】
2011159201.tif 000011
【図１０】
2011159201.tif 000012
【図１１】
2011159201.tif 000013
【図１２】
2011159201.tif 000014
【図１３】
2011159201.tif 000015
【図１４】
2011159201.tif 000016
【図１５】
2011159201.tif 000017
【図１６】
2011159201.tif 000018