(57)【要約】      （修正有）【課題】ＡＳＩＣ用レジスタ転送レベル動作モデルがＦＰＧＡにそのまま搭載できない場合などに必要な再設計による設計期間の長期化の問題を解決し、論理回路の動作モデルの設計期間を短縮することができる情報処理装置を提供する。【解決手段】検証パタン（２１２）を用いた論理検証ツール（２０１）の実行等で取得した波形情報（２１３）から得られる論理回路の入力端子の信号値及び出力端子の信号値を示す情報に基づき、前記論理回路の動作モデルを生成する第１のモデル生成部（２０２）を有する。【選択図】図２
2019087206.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の入力端子の信号値及び出力端子の信号値を示す情報に基づき、前記論理回路の動作モデルを生成する第１のモデル生成部を有することを特徴とする情報処理装置。
【請求項２】
前記第１のモデル生成部は、ハードウェア記述言語動作モデルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
さらに、前記ハードウェア記述言語動作モデルに基づき、ＳｙｓｔｅｍＣ動作モデルを生成する第２のモデル生成部を有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
さらに、前記ＳｙｓｔｅｍＣモデルに基づき、第１のレジスタ転送レベル動作モデルを生成する第３のモデル生成部を有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１のモデル生成部は、第１のレジスタ転送レベル動作モデルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
さらに、第２のレジスタ転送レベル動作モデル及び検証パタンを基に、前記論理回路の入力信号値及び出力信号値を示す情報を含む波形情報を生成する波形情報生成部を有し、
前記第１のモデル生成部は、前記波形情報に基づき、前記論理回路の動作モデルを生成することを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記第１のレジスタ転送レベル動作モデルは、ＦＰＧＡ用レジスタ転送レベル動作モデルであり、
前記第２のレジスタ転送レベル動作モデルは、ＡＳＩＣ用レジスタ転送レベル動作モデルであることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記論理回路の動作モデルは、クロック端子の信号のサイクル番号に応じた出力端子の信号値の動作記述を有することを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記論理回路の動作モデルは、入力端子の信号値に応じた出力端子の信号値の動作記述を有することを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記論理回路の動作モデルは、入力端子の現サイクルの信号値及び過去のサイクルの信号値に応じた出力端子の信号値の動作記述を有することを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１１】
前記論理回路の動作モデルは、アドレスとデータで表現されるメモリの動作モデルであって、前記アドレスは、入力端子の信号値に基づくアドレスであり、前記データは、出力端子の信号値に基づくデータであることを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１２】
前記論理回路の動作モデルは、アドレスとデータで表現されるメモリの動作モデルであって、前記アドレスは、クロック端子の信号のサイクル番号及び入力端子の信号値に基づくアドレスであり、前記データは、出力端子の信号値に基づくデータであることを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１３】
前記論理回路の動作モデルは、アドレスとデータで表現されるメモリの動作モデルであって、前記アドレスは、入力端子の現サイクルの信号値及び過去のサイクルの信号値に基づくアドレスであり、前記データは、出力端子の信号値に基づくデータであることを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項１４】
第１のモデル生成部が、論理回路の入力端子の信号値及び出力端子の信号値を示す情報に基づき、前記論理回路の動作モデルを生成することを特徴とする情報処理方法。
【請求項１５】
論理回路の入力端子の信号値及び出力端子の信号値を示す情報に基づき、前記論理回路の動作モデルを生成する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
ディジタルＬＳＩ回路のシミュレーションデータを基にエミュレーションを実行するデータを生成するエミュレーション回路生成装置が知られている（特許文献１参照）。ライブラリは、シミュレーション用の情報をハードウェアエミュレータで適する情報に変換する変換ルールをもつ。エミュレーションデータ生成手段は、シミュレーションデータと論理シミュレータで得られたシミュレーション結果とを入力し、ライブラリの変換ルールに基づいた変換を行ってエミュレーションデータを生成する。シミュレーションデータは、テストベンチ情報、回路情報、メモリパタン情報、メモリモデル情報及び外部デバイス情報のうちの少なくとも１つを含むデータであって論理シミュレータに入力したデータである。
【０００３】
また、複数のブロックからなるＬＳＩ回路を検証する回路シミュレーション装置が知られている（特許文献２参照）。検証対象外ブロック情報検索手段は、あらかじめ検証対象外ブロック情報を記述したテストベンチ情報を入力して検証対象外ブロック情報を抽出する。ダミーモジュール生成手段は、検証対象外ブロック情報より回路機能記述を削除したダミーモジュール情報を生成する。回路構成更新手段は、ＬＳＩ回路の情報を記述する回路情報の検証対象外ブロックの記述をダミーモジュール情報の記述と置き換えて省リソースシミュレーション用回路情報を生成する。検証手段は、省リソースシミュレーション用回路情報を用いてＬＳＩ回路の検証を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２６５８４６号公報
【特許文献２】特開２００６−１８５２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
論理回路は、その特性に応じて、ＡＳＩＣ（application specific integrated circuit）又はＦＰＧＡ（field-programmable gate array）により実現されることがある。品質向上、論理検証期間短縮、又はハードウェア設計とソフトウェア検証の協調設計の理由から、ＡＳＩＣ用レジスタ転送レベル（ＲＴＬ）動作モデルをＦＰＧＡに搭載したい場合がある。しかし、ＡＳＩＣ用ＲＴＬ動作モデルをＦＰＧＡ用ＲＴＬ動作モデルとして使用できない場合がある。その場合、ＦＰＧＡ用ＲＴＬ動作モデルを再設計しなければならず、設計期間が長期化する。
【０００６】
１つの側面では、本発明の目的は、論理回路の動作モデルの設計期間を短縮することができる情報処理装置、情報処理方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
情報処理装置は、論理回路の入力端子の信号値及び出力端子の信号値を示す情報に基づき、前記論理回路の動作モデルを生成する第１のモデル生成部を有する。
【発明の効果】
【０００８】
１つの側面では、論理回路の動作モデルの設計期間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】図１（Ａ）は第１の実施形態による情報処理装置のハードウェア構成例を示す図であり、図１（Ｂ）は情報処理装置の情報処理方法を示すフローチャートである。
【図２】図２は、情報処理装置のプログラム及びデータを示す図である。
【図３】図３は、波形情報の例を示す図である。
【図４】図４（Ａ）は端子情報の例を示す図であり、図４（Ｂ）は端子テーブルの例を示す図である。
【図５】図５（Ａ）は波形情報の一部の例を示す図であり、図５（Ｂ）は波形情報の他の一部の例を示す図であり、図５（Ｃ）はデータベースの例を示す図である。
【図６】図６は、ＨＤＬ動作モデルの例を示す図である。
【図７】図７は、波形−モデル変換部の処理例を示すフローチャートである。
【図８】図８（Ａ）は波形情報の一部の例を示す図であり、図８（Ｂ）はデータベースの例を示す図である。
【図９】図９は、ＨＤＬ動作モデルの例を示す図である。
【図１０】図１０は、波形−モデル変換部の処理例を示すフローチャートである。
【図１１】図１１は、データベースの例を示す図である。
【図１２】図１２は、ＨＤＬ動作モデルの例を示す図である。
【図１３】図１３は、波形−モデル変換部の処理例を示すフローチャートである。
【図１４】図１４は、情報処理装置のプログラム及びデータを示す図である。
【図１５】図１５は、ＦＰＧＡ用ＲＴＬ動作モデルの例を示す図である。
【図１６】図１６は、波形−モデル変換部の処理例を示すフローチャートである。
【図１７】図１７は、データベース及びメモリ情報の例を示す図である。
【図１８】図１８（Ａ）はメモリ情報を記憶するＲＯＭを示す概念図であり、図１８（Ｂ）はＲＯＭをインスタンスするＦＰＧＡ用ＲＴＬ動作モデルの例を示す図である。
【図１９】図１９は、ＲＯＭをインスタンスするＨＤＬ動作モデルの例を示す図である。
【図２０】図２０は、情報処理装置の情報処理方法を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１（Ａ）は、第１の実施形態による情報処理装置１００のハードウェア構成例を示す図である。情報処理装置１００は、コンピュータであり、バス１０１と、中央処理ユニット（ＣＰＵ）１０２と、リードオンリーメモリ（ＲＯＭ）１０３と、ランダムアクセスメモリ（ＲＡＭ）１０４と、ネットワークインターフェース１０５と、入力装置１０６と、出力装置１０７と、外部記憶装置１０８を有する。
【００１１】
ＣＰＵ１０２は、データの処理又は演算を行うと共に、バス１０１を介して接続された各種構成要素を制御する。ＲＯＭ１０３は、起動プログラムを記憶する。ＣＰＵ１０２は、ＲＯＭ１０３内の起動プログラムを実行することにより起動する。外部記憶装置１０８は、図２の論理検証ツール２０１、波形−モデル変換部２０２、ＳｙｓｔｅｍＣ動作モデル生成部２０３及び高位合成ツール２０４を含むプログラムを記憶する。ＣＰＵ１０２は、外部記憶装置１０８に記憶されているプログラムをＲＡＭ１０４に展開して実行する。ＲＡＭ１０４は、プログラム及びデータを記憶する。外部記憶装置１０８は、例えばハードディスク記憶装置やＣＤ−ＲＯＭ等であり、電源を切っても記憶内容が消えない。ネットワークインターフェース１０５は、インターネット等のネットワークに接続するためのインターフェースである。入力装置１０６は、例えばキーボード及びマウス等であり、各種指定又は入力等を行うことができる。出力装置１０７は、ディスプレイ及びプリンタ等である。
【００１２】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００１３】
図１（Ｂ）は、情報処理装置１００の情報処理方法を示すフローチャートである。図２は、情報処理装置１００のプログラム及びデータを示す図である。論理検証ツール２０１、波形−モデル変換部２０２、ＳｙｓｔｅｍＣ動作モデル生成部２０３及び高位合成ツール２０４は、ＣＰＵ１０２が実行するプログラムである。ＡＳＩＣ用ＲＴＬ（レジスタ転送レベル）動作モデル２１１は、論理回路の動作モデルであり、外部記憶装置１０８に記憶されている。ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡ用ＲＴＬ動作モデルとして使用することができる場合には、ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡに搭載することができる。ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡ用ＲＴＬ動作モデルとして使用することができない場合、情報処理装置１００は、ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡ用ＲＴＬ動作モデル２１７に変換する。ＦＰＧＡには、ＦＰＧＡ用ＲＴＬ動作モデル２１７に基づく論理回路情報が書き込まれる。
【００１４】
ステップＳ１１１では、ユーザは、ＡＳＩＣ用ＲＴＬ動作モデル２１１の検証パタン２１２が存在するか否かをチェックする。検証パタン２１２は、ＡＳＩＣ用ＲＴＬ動作モデル２１１を検証するための入力信号のパタンである。検証パタン２１２が存在する場合には、ステップＳ１１３に進み、検証パタン２１２が存在しない場合には、ステップＳ１１２に進む。
【００１５】
ステップＳ１１２では、ユーザは、テストベンチ生成のためのＡＳＩＣ用ＲＴＬ動作モデル２１１の検証パタン２１２を生成する。具体的には、ユーザは、信号マスク論理抽出パタン、入力→出力レイテンシ特定パタン、及び出力条件抽出パタンを含む検証パタン２１２を生成する。検証パタン２１２は、外部記憶装置１０８に格納される。その後、ステップＳ１１３に進む。
【００１６】
ステップＳ１１３では、ＣＰＵ１０２は、論理検証ツール２０１を実行することにより、検証パタン２１２を用いてＡＳＩＣ用ＲＴＬ動作モデル２１１の検証を実施し、波形情報２１３を生成し、波形情報２１３を外部記憶装置１０８に書き込む。波形情報２１３は、ＡＳＩＣ用ＲＴＬ動作モデル２１１の入力信号及び出力信号の波形情報を有する。入力信号は、検証パタン２１２に対応する。論理検証ツール２０１は、波形情報２１３を生成する波形情報生成部である。
【００１７】
次に、ステップＳ１１４では、ＣＰＵ１０２は、波形−モデル変換部（プログラム）２０２を実行することにより、波形情報２１３及び端子情報２１４を基に、ハードウェア記述言語（ＨＤＬ）動作モデル２１５を生成し、ＨＤＬ動作モデル２１５を外部記憶装置１０８に書き込む。波形−モデル変換部２０２は、ＨＤＬ動作モデル２１５を生成する動作モデル生成部である。ＨＤＬは、例えば、Ｖｅｒｉｌｏｇ−ＨＤＬ又はＶＨＤＬである。端子情報２１４は、論理回路の入力端子及び出力端子の情報を有し、外部記憶装置１０８に格納されている。波形情報２１３の詳細は、後に図３を参照しながら説明する。端子情報２１４の詳細は、後に図４（Ａ）を参照しながら説明する。ＨＤＬ動作モデル２１５の詳細は、後に図６を参照しながら説明する。
【００１８】
次に、ステップＳ１１５では、ＣＰＵ１０２は、論理検証ツール２０１を実行することにより、検証パタン２１２を用いてＨＤＬ動作モデル２１５の検証を実施し、生成される波形情報が上記の波形情報２１３と一致していることを確認する。
【００１９】
次に、ステップＳ１１６では、ＣＰＵ１０２は、ＳｙｓｔｅｍＣ動作モデル生成部（プログラム）２０３を実行することにより、ＨＤＬ動作モデル２１５に基づき、ＳｙｓｔｅｍＣ動作モデル２１６を生成し、ＳｙｓｔｅｍＣ動作モデル２１６を外部記憶装置１０８に書き込む。ＳｙｓｔｅｍＣは、Ｃ／Ｃ++言語をベースにした高位合成言語である。なお、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、合成スクリプトを含むＳｙｓｔｅｍＣ動作モデル２１６を生成してもよい。具体的には、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、ＨＤＬ動作モデル２１５を解析し、構文木モデルを生成し、構文木モデルを解析して解析情報を抽出し、構文木モデル及び解析情報に基づいて構文木モデルを再構成し、ＳｙｓｔｅｍＣ動作モデル２１６を生成する。例えば、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、特願２０１７−１０５８１４に記載の方法により、ＳｙｓｔｅｍＣ動作モデル２１６を生成することができる。
【００２０】
次に、ＣＰＵ１０２は、高位合成ツール２０４を実行することにより、ＳｙｓｔｅｍＣ動作モデル２１６に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。
【００２１】
次に、ステップＳ１１７では、ユーザは、ＦＰＧＡ用ＲＴＬ動作モデル２１７に基づく論理回路情報をＦＰＧＡに書き込む。これにより、ＦＰＧＡは、論理回路を構成し、動作可能になる。
【００２２】
図３は、図２の波形情報２１３の例を示す図である。論理検証ツール２０１は、検証パタン２１２を用いて、ＡＳＩＣ用ＲＴＬ動作モデル２１１を検証し、波形情報２１３を生成する。図３には、波形情報２１３がＶＣＤ（Value Change Dump）ファイルである例を示す。波形情報２１３は、論理回路の端子情報３０１、論理回路の端子の信号変化の時間情報３０２、及び論理回路の端子の信号変化情報３０３を有する。端子情報３０１は、各端子が入力端子及び出力端子のいずれであるのかの情報を含まない。そのため、図２の端子情報２１４を準備する。
【００２３】
図４（Ａ）は、図２の端子情報２１４の例を示す図である。次に、端子情報２１４の生成方法を説明する。ユーザは、論理回路の仕様書の入出力端子情報を基に、端子情報２１４を生成する。また、ユーザは、ＡＳＩＣ用ＲＴＬ動作モデル２１１の入出力端子情報を抜粋して、端子情報２１４を生成してもよい。また、ユーザは、対象論理回路をインスタンスしているＡＳＩＣ用ＲＴＬ動作モデル２１１の接続先情報から抽出し、端子情報２１４を生成してもよい。端子情報２１４は、端子名４０１、入出力情報４０２、クロック端子名４０３、及びリセット端子名４０４を有する。
【００２４】
波形−モデル変換部２０２は、端子情報２１４内の端子名４０１、入出力情報４０２、クロック端子名４０３、及びリセット端子名４０４を抽出する。入出力情報４０２は、「ｉｎｐｕｔ」が入力端子を示し、「ｏｕｔｐｕｔ」が出力端子を示す。例えば、端子ＣＬＫは、１ビット入力端子である。端子ＸＲＳＴは、１ビット入力端子である。端子ＩＮＤＴ＿１は、２ビット入力端子である。端子ＩＮＤＴ＿２は、２ビット入力端子である。端子ＯＤＴは、２ビット出力端子である。端子ＣＡＲＲＹは、１ビット出力端子である。クロック端子名４０３は、端子ＣＬＫがクロック端子であることを示す。リセット端子名４０４は、端子ＸＲＳＴがリセット端子であることを示す。
【００２５】
図４（Ｂ）は、端子テーブル４１０の例を示す図である。波形−モデル変換部２０２は、図３の波形情報２１３内の端子情報３０１を基に、端子テーブル４１０を生成する。端子テーブル４１０は、ビット数と、マークと、端子名と、バス（ＢＵＳ）表記の対応関係を有する。例えば、端子名ＣＬＫは、ビット数が１であり、「!」のマークで表され、ＢＵＳ表記がない。端子名ＸＲＳＴは、ビット数が１であり、「"」のマークで表され、ＢＵＳ表記がない。端子名ＩＮＤＴ＿１は、ビット数が２であり、「#」のマークで表され、ＢＵＳ表記が［１：０］である。端子名ＩＮＤＴ＿２は、ビット数が２であり、「$」のマークで表され、ＢＵＳ表記が［１：０］である。端子名ＯＤＴは、ビット数が２であり、「%」のマークで表され、ＢＵＳ表記が［１：０］である。端子名ＣＡＲＲＹは、ビット数が１であり、「&」のマークで表され、ＢＵＳ表記がない。
【００２６】
例えば、図３の信号変化情報３０３は、「$」のマークが示す端子ＩＮＤＴ＿２の信号が「０」に変化したことを示す情報である。波形情報２１３は、論理回路の入力端子の信号値及び出力端子の信号値を示す情報を有する。
【００２７】
図５（Ａ）は、波形情報２１３の一部の波形情報２１３ａの例を示す図である。波形情報２１３ａは、記述５０１及び５０２を有する。記述５０１は、リセット端子ＸＲＳＴのマークが「"」であることを示す。記述５０２は、「"」のマークを示すリセット端子ＸＲＳＴの信号が１に変化（リセット解除）したことを示す。波形−モデル変換部２０２は、波形情報２１３ａで、リセット端子ＸＲＳＴの信号が「１」に変化している記述（リセット信号が解除される記述）５０２を抽出する。
【００２８】
図５（Ｂ）は、波形情報２１３の一部の波形情報２１３ｂの例を示す図である。波形情報２１３ｂは、記述５１１〜５１６を有する。記述５１１は、クロック端子ＣＬＫのマークが「!」であることを示す。記述５１２は、出力端子ＯＤＴのマークが「%」であることを示す。記述５１３は、出力端子ＣＡＲＲＹのマークが「&」であることを示す。記述５１４は、「!」のマークが示すクロック端子ＣＬＫの信号が１に変化している箇所を示す。記述５１５は、「&」のマークが示す出力端子ＣＡＲＲＹの信号が１に変化している箇所を示す。記述５１６は、「%」のマークが示す出力端子ＯＤＴの信号が０に変化している箇所を示す。波形−モデル変換部２０２は、波形情報２１３ｂ内で、クロック端子ＣＬＫの信号が「１」に変化している箇所（クロック信号が「１」に変化した後）の記述５１４において、出力端子ＯＤＴ及びＣＡＲＲＹの信号値を示す記述５１５及び５１６を抽出する。
【００２９】
図５（Ｃ）は、データベース５２０の例を示す図である。波形−モデル変換部２０２は、波形情報２１３を基に、クロック端子ＣＬＫの信号が１に変化している箇所の、出力端子の信号値のデータベース５２０を生成する。クロック端子ＣＬＫの信号が１に変化する箇所は、クロック端子ＣＬＫの信号のサイクルを示す。データベース５２０は、クロック端子ＣＬＫの信号のサイクル毎（サイクル番号毎）の出力端子ＯＤＴ及びＣＡＲＲＹの信号値を示す。例えば、１サイクル目では、出力端子ＯＤＴの信号値は「０１」である。８サイクル目では、出力端子ＯＤＴの信号値は「００」であり、出力端子ＣＡＲＲＹの信号値は「１」である。
【００３０】
図６は、図２のＨＤＬ動作モデル２１５の例を示す図である。図７は、波形−モデル変換部２０２の処理例を示すフローチャートである。以下、波形−モデル変換部２０２がＨＤＬ動作モデル２１５を生成する例を説明する。
【００３１】
ステップＳ７０１では、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図６のＨＤＬ動作モデル２１５内において、端子宣言部分６０１を書き出す。端子宣言部分６０１は、端子情報２１４と同様の内容を有する。
【００３２】
次に、ステップＳ７０２では、波形−モデル変換部２０２は、図６のＨＤＬ動作モデル２１５内において、定型文の「ｉｎｉｔｉａｌ」文６０２を書き出す。
【００３３】
次に、ステップＳ７０３では、波形−モデル変換部２０２は、端子情報２１４のファイルから抽出した情報を基に、図６のＨＤＬ動作モデル２１５内において、出力端子ＯＤＴ及びＣＡＲＲＹの初期化情報６０３を書き出す。
【００３４】
次に、ステップＳ７０４では、波形−モデル変換部２０２は、図６のＨＤＬ動作モデル２１５内において、定型文のリセット解除文６０４を書き出す。
【００３５】
次に、ステップＳ７０５では、波形−モデル変換部２０２は、図６のＨＤＬ動作モデル２１５内において、定型文のｆｏｒｅｖｅｒ文６０５を書き出す。
【００３６】
次に、ステップＳ７０６では、波形−モデル変換部２０２は、端子情報２１４のファイルから抽出した情報を基に、図６のＨＤＬ動作モデル２１５内において、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２を動作開始条件とした情報６０６を書き出す。
【００３７】
次に、ステップＳ７０７では、波形−モデル変換部２０２は、図５（Ｃ）のデータベース５２０の情報を基に、図６のＨＤＬ動作モデル２１５内において、クロック端子ＣＬＫの信号のサイクル毎（サイクル番号毎）の出力端子の信号値の情報６０７を書き出す。情報６０７は、クロック端子ＣＬＫの信号のサイクル毎の出力端子ＯＤＴ及びＣＡＲＲＹの信号値の動作記述である。
【００３８】
次に、ステップＳ７０８では、波形−モデル変換部２０２は、図６のＨＤＬ動作モデル２１５内において、定型文のＨＤＬ動作モデル２１５の終了を表す情報６０８を書き出す。
【００３９】
以上の処理により、ＨＤＬ動作モデル２１５が完成する。その後、図２に示すように、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、ＨＤＬ動作モデル２１５に基づき、ＳｙｓｔｅｍＣ動作モデル２１６を生成する。高位合成ツール２０４は、ＳｙｓｔｅｍＣ動作モデル２１６に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。
【００４０】
ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡ用ＲＴＬ動作モデルとして使用することができない場合、情報処理装置１００は、ＡＳＩＣ用ＲＴＬ動作モデル２１１をＦＰＧＡ用ＲＴＬ動作モデル２１７に変換することができる。これにより、ユーザは、ＦＰＧＡ用ＲＴＬ動作モデル２１７を手作業で再設計する必要がなくなり、ＦＰＧＡ用ＲＴＬ動作モデル２１７の設計期間を短縮することができる。
【００４１】
（第２の実施形態）
図６では、出力端子ＯＤＴ及びＣＡＲＲＹの変化情報６０７をそのままＨＤＬ動作モデル２１５に記述している。そのため、波形情報（ＶＣＤファイル）２１３が長くなればなるほど、図６のＨＤＬ動作モデル２１５も大きくなる。ＨＤＬ動作モデル２１５のサイズが大きくなると、ＦＰＧＡ用ＲＴＬ動作モデル２１７、及び論理合成後の回路規模の増加につながるため、対策する必要がある。第２の実施形態では、情報処理装置１００は、後述する手順でＨＤＬ動作モデル２１５を生成することで、回路規模を削減することができる。以下、第２の実施形態が第１の実施形態と異なる点を説明する。
【００４２】
波形−モデル変換部２０２は、波形情報２１３から、以下の４つの情報を抽出する。第１に、波形−モデル変換部２０２は、第１の実施形態と同様に、端子名と端子情報２１４内部で使用されている端子名を表すマークの情報を抽出する。第２に、波形−モデル変換部２０２は、第１の実施形態と同様に、リセット端子ＸＲＳＴの信号が「１」に変化している箇所（リセット信号が解除される箇所）を抽出する。第３に、波形−モデル変換部２０２は、後述のように、信号の変化が発生した箇所での入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値を抽出する。第４に、波形−モデル変換部２０２は、後述のように、クロック端子ＣＬＫの信号が「１」に変化している箇所毎の、出力端子ＯＤＴ及びＣＡＲＲＹの信号値を抽出する。
【００４３】
図８（Ａ）は、波形情報２１３の一部の波形情報２１３ｃの例を示す図である。記述８０１は、入力端子ＩＮＤＴ＿１のマークが「#」であることを示す。記述８０２は、入力端子ＩＮＤＴ＿２のマークが「$」であることを示す。記述８０３は、出力端子ＯＤＴのマークが「%」であることを示す。記述８０４は、出力端子ＣＡＲＲＹのマークが「&」であることを示す。
【００４４】
記述８０５は、「$」のマークを示す入力端子ＩＮＤＴ＿２の信号が「０」に変化している箇所を示す。記述８０６は、「!」のマークを示すクロック端子ＣＬＫの信号が「１」に変化している箇所を示す。記述８０７は、「%」のマークを示す出力端子ＯＤＴの信号が「１１」に変化している箇所を示す。記述８０８は、「#」のマークを示す入力端子ＩＮＤＴ＿１の信号が「１」に変化している箇所を示す。記述８０９は、「!」のマークを示すクロック端子ＣＬＫの信号が「１」に変化している箇所を示す。記述８１０は、「%」のマークを示す出力端子ＯＤＴの信号が「０」に変化している箇所を示す。
【００４５】
波形−モデル変換部２０２は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号の変化が発生した記述８０５及び８０８での入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値を抽出する。また、波形−モデル変換部２０２は、クロック端子ＣＬＫの信号が「１」に変化している記述８０６及び８０９毎の、出力端子ＯＤＴ及びＣＡＲＲＹの信号値の記述８０７及び８１０を抽出する。
【００４６】
図８（Ｂ）は、データベース８２０の例を示す図である。波形−モデル変換部２０２は、波形情報２１３を基に、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値に応じた出力端子ＯＤＴ及びＣＡＲＲＹの信号値のデータベース８２０を生成する。クロック端子ＣＬＫの信号が１に変化する箇所は、クロック端子ＣＬＫの信号のサイクルを示す。データベース８２０は、クロック端子ＣＬＫの信号のサイクル番号と、入力端子ＩＮＤＴ＿１の信号値と、入力端子ＩＮＤＴ＿２の信号値と、出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値の対応関係を示す。例えば、４サイクル目では、入力端子ＩＮＤＴ＿１の信号値は「００」であり、入力端子ＩＮＤＴ＿２の信号値は「１０」であり、出力端子ＯＤＴの信号値は「０１」である。
【００４７】
図９は、図２のＨＤＬ動作モデル２１５の例を示す図である。図１０は、波形−モデル変換部２０２の処理例を示すフローチャートである。以下、波形−モデル変換部２０２が図９のＨＤＬ動作モデル２１５を生成する例を説明する。
【００４８】
ステップＳ１００１では、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図９のＨＤＬ動作モデル２１５内において、端子宣言部分９０１を書き出す。端子宣言部分９０１は、端子情報２１４と同様の内容を有する。
【００４９】
次に、ステップＳ１００２では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、ｒｅｇ宣言でレジスタ型変数ｃｌｋ＿ｃｏｕｎｔの宣言９０２を書き出す。変数ｃｌｋ＿ｃｏｕｎｔは、クロック端子ＣＬＫの信号のサイクル番号に対応する。
【００５０】
次に、ステップＳ１００３では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、定型文の「ｉｎｉｔｉａｌ」文９０３を書き出す。
【００５１】
次に、ステップＳ１００４では、波形−モデル変換部２０２は、端子情報２１４のファイルから抽出した情報を基に、図９のＨＤＬ動作モデル２１５内において、出力端子ＯＤＴ，ＣＡＲＲＹ及び変数ｃｌｋ＿ｃｏｕｎｔの初期化情報９０４を書き出す。
【００５２】
次に、ステップＳ１００５では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、定型文のリセット解除文９０５を書き出す。
【００５３】
次に、ステップＳ１００６では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、定型文のｆｏｒｅｖｅｒ文９０６を書き出す。
【００５４】
次に、ステップＳ１００７では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、変数ｃｌｋ＿ｃｏｕｎｔのカウントアップ宣言９０７を書き出す。
【００５５】
次に、ステップＳ１００８では、波形−モデル変換部２０２は、図８（Ｂ）のデータベース８２０の情報を上から順番に確認していく。
【００５６】
次に、ステップＳ１００９では、波形−モデル変換部２０２は、データベース８２０の対象行の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の条件がデータベース８２０の他の行に存在しているか否かをチェックする。波形−モデル変換部２０２は、他の行に存在している場合にはステップＳ１０１０に進み、他の行に存在していない場合にはステップＳ１０１１に進む。
【００５７】
例えば、図８（Ｂ）のデータベース８２０において、ＣＬＫ＝４に示す入力端子条件（入力端子の信号の条件）は、「ＩＮＤＴ＿１＝２’ｂ００、ＩＮＤＴ＿２＝２’ｂ１０」である。この入力端子条件が他の行に存在しているかどうかを確認すると、ＣＬＫ＝２４の部分が同じ入力端子条件となるため、ステップＳ１００９からＳ１０１０に進む。
【００５８】
ステップＳ１０１０では、波形−モデル変換部２０２は、データベース８２０において、対象行と上記の他の行では、同じ入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値の条件で、出力端子ＯＤＴ及びＣＡＲＲＹの信号値が異なっていないかをチェックする。波形−モデル変換部２０２は、異なっていない場合にはステップＳ１０１１に進み、異なっている場合にはステップＳ１０１２に進む。
【００５９】
例えば、図８（Ｂ）のデータベース８２０において、ＣＬＫ＝４とＣＬＫ＝２４の出力端子ＯＤＴを確認すると、どちらも「ＯＤＴ＝２’ｂ０１」となっていることが分かる。そのため、ステップＳ１０１０からＳ１０１１に進む。
【００６０】
ステップＳ１０１１では、波形−モデル変換部２０２は、データベース８２０の対象行をイベントベース記述用の情報９０８として保持し、ステップＳ１０１３に進む。イベントベース記述用の情報９０８は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値に応じた出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の動作記述である。
【００６１】
ステップＳ１０１３では、波形−モデル変換部２０２は、データベース８２０の情報を全て確認したか否かをチェックする。波形−モデル変換部２０２は、全て確認していない場合にはステップＳ１００８に戻り、上記の処理を繰り返す。
【００６２】
例えば、図８（Ｂ）のデータベース８２０において、ＣＬＫ＝６に示す入力端子条件は、「ＩＮＤＴ＿１＝２’ｂ００、ＩＮＤＴ＿２＝２’ｂ００」である。ステップＳ１００９では、波形−モデル変換部２０２は、この入力端子条件が他の行に存在しているかどうかを確認する。ＣＬＫ＝６の入力端子条件は、ＣＬＫ＝２２、ＣＬＫ＝２６及びＣＬＫ＝２７の入力端子条件と同じであるため、波形−モデル変換部２０２は、ステップＳ１００９からＳ１０１０に進む。ＣＬＫ＝６、ＣＬＫ＝２２、ＣＬＫ＝２６及びＣＬＫ＝２７の出力端子条件は、出力端子ＯＤＴの信号値が異なっていることが分かる。そのため、波形−モデル変換部２０２は、ステップＳ１０１０からＳ１０１２に進む。
【００６３】
ステップＳ１０１２では、波形−モデル変換部２０２は、データベース８２０の対象行をサイクルベース記述用の情報９０９として保持し、ステップＳ１０１３に進む。サイクルベース記述用の情報９０９は、変数ｃｌｋ＿ｃｏｕｎｔ毎の出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の動作記述である。変数ｃｌｋ＿ｃｏｕｎｔは、クロック端子ＣＬＫの信号のサイクル番号を示す。
【００６４】
ステップＳ１０１３において、波形−モデル変換部２０２は、データベース８２０の情報を全て確認した場合には、ステップＳ１０１４に進む。ステップＳ１０１４では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５において、イベントベース記述用の情報９０８を書き出し、次にサイクルベース記述用の情報９０９を書き出す。
【００６５】
次に、ステップＳ１０１５では、波形−モデル変換部２０２は、図９のＨＤＬ動作モデル２１５内において、定型文のクロック宣言、及びＨＤＬ動作モデル２１５の終了を表す情報９１０を書き出す。
【００６６】
以上の処理により、図９のＨＤＬ動作モデル２１５が完成する。その後、図２に示すように、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、ＨＤＬ動作モデル２１５に基づき、ＳｙｓｔｅｍＣ動作モデル２１６を生成する。高位合成ツール２０４は、ＳｙｓｔｅｍＣ動作モデル２１６に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。
【００６７】
波形−モデル変換部２０２は、イベントベース記述用の情報９０８及びサイクルベース記述用の情報９０９を含むＨＤＬ動作モデル２１５を生成する。第２の実施形態は、第１の実施形態に比べ、波形情報２１３に応じて、ＨＤＬ動作モデル２１５及びＦＰＧＡ用ＲＴＬ動作モデル２１７のサイズを小さくすることができる。
【００６８】
（第３の実施形態）
第２の実施形態では、入力端子条件によって出力端子の信号値が一意に決まらない場合、つまり、入力端子条件によって出力端子の信号が複数存在する場合には、ＨＤＬ動作モデル２１５において、サイクルベース記述用の情報９０９を書き出した。このサイクルベース記述用の情報９０９が複数の変数ｃｌｋ＿ｃｏｕｎｔの条件を有する場合、波形情報２１３のサイズが増加するに従い、ＨＤＬ動作モデル２１５のサイズが増加し、回路規模が増加する可能性がある。
【００６９】
第３の実施形態では、情報処理装置１００は、上記の課題を解決するため、入力端子条件として１サイクル前の信号値も条件として使用することで、サイクルベース記述用の情報９０９を削減することができる。入力端子条件に１サイクル前の入力端子の信号値も条件として加えても、サイクルベース記述用の情報９０９が必要になる場合、さらに１サイクル前（現サイクルに対して２サイクル前）の入力端子の信号値を入力端子条件にすればよい。このサイクルのバックトレース作業は、最長で波形情報２１３の信号値の初期値までさかのぼることが可能である。
【００７０】
図１１は、データベース１１００の例を示す図である。波形−モデル変換部２０２は、波形情報２１３を基に、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値及び過去のサイクルの信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１に応じた出力端子ＯＤＴ及びＣＡＲＲＹの信号値のデータベース１１００を生成する。データベース１１００は、クロック端子ＣＬＫの信号のサイクル番号と、入力端子ＩＮＤＴ＿１の現サイクルの信号値と、入力端子ＩＮＤＴ＿２の現サイクルの信号値と、入力端子ＩＮＤＴ＿１の１サイクル前の信号値ＩＮＤＴ＿１＿ｂ１と、入力端子ＩＮＤＴ＿２の１サイクル前の信号値ＩＮＤＴ＿２＿ｂ１と、出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値の対応関係を示す。
【００７１】
各サイクル番号は、２行の対応関係を有する。第１の行は、入力端子ＩＮＤＴ＿１の現サイクルの信号値と、入力端子ＩＮＤＴ＿２の現サイクルの信号値と、出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の対応関係を示す。第２の行は、入力端子ＩＮＤＴ＿１の現サイクルの信号値と、入力端子ＩＮＤＴ＿２の現サイクルの信号値と、入力端子ＩＮＤＴ＿１の１サイクル前の信号値ＩＮＤＴ＿１＿ｂ１と、入力端子ＩＮＤＴ＿２の１サイクル前の信号値ＩＮＤＴ＿２＿ｂ１と、出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の対応関係を示す。
【００７２】
例えば、図１１のＣＬＫ＝５の第１の行では、入力端子ＩＮＤＴ＿１の現サイクルの信号値は「００」であり、入力端子ＩＮＤＴ＿２の現サイクルの信号値は「１１」であり、出力端子ＯＤＴの信号値は「１０」である。図１１のＣＬＫ＝５の第２の行では、入力端子ＩＮＤＴ＿１の現サイクルの信号値は「００」であり、入力端子ＩＮＤＴ＿２の現サイクルの信号値は「１１」であり、入力端子ＩＮＤＴ＿１の１サイクル前の信号値ＩＮＤＴ＿１＿ｂ１は「００」であり、入力端子ＩＮＤＴ＿２の１サイクル前の信号値ＩＮＤＴ＿２＿ｂ１は「１０」であり、出力端子ＯＤＴの信号値は「１０」である。
【００７３】
図１２は、図２のＨＤＬ動作モデル２１５の例を示す図である。図１３は、波形−モデル変換部２０２の処理例を示すフローチャートである。以下、波形−モデル変換部２０２が図１２のＨＤＬ動作モデル２１５を生成する例を説明する。
【００７４】
ステップＳ１３０１では、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図１２のＨＤＬ動作モデル２１５内において、端子宣言部分１２０１を書き出す。端子宣言部分１２０１は、端子情報２１４と同様の内容を有する。
【００７５】
次に、ステップＳ１３０２では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、ｒｅｇ宣言でレジスタ型変数ｃｌｋ＿ｃｏｕｎｔ、ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の宣言１２０２を書き出す。変数ｃｌｋ＿ｃｏｕｎｔは、クロック端子ＣＬＫの信号のサイクル番号に対応する。変数ＩＮＤＴ＿１＿ｂ１は、入力端子ＩＮＤＴ＿１の１サイクル前の信号値に対応する。変数ＩＮＤＴ＿２＿ｂ１は、入力端子ＩＮＤＴ＿２の１サイクル前の信号値に対応する。
【００７６】
次に、ステップＳ１３０３では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、定型文の「ｉｎｉｔｉａｌ」文１２０３を書き出す。
【００７７】
次に、ステップＳ１３０４では、波形−モデル変換部２０２は、端子情報２１４のファイルから抽出した情報を基に、図１２のＨＤＬ動作モデル２１５内において、出力端子ＯＤＴ，ＣＡＲＲＹ及び変数ｃｌｋ＿ｃｏｕｎｔの初期化情報１２０４を書き出す。
【００７８】
次に、ステップＳ１３０５では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、定型文のリセット解除文１２０５を書き出す。
【００７９】
次に、ステップＳ１３０６では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、定型文のｆｏｒｅｖｅｒ文１２０６を書き出す。
【００８０】
次に、ステップＳ１３０７では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、変数ｃｌｋ＿ｃｏｕｎｔのカウントアップ宣言１２０７を書き出す。
【００８１】
次に、ステップＳ１３０８では、波形−モデル変換部２０２は、図１１のデータベース１１００の情報を上から順番に確認していく。
【００８２】
次に、ステップＳ１３０９では、波形−モデル変換部２０２は、データベース１１００の対象行の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値の条件がデータベース１１００の他のサイクル番号の第１の行に存在しているか否かをチェックする。波形−モデル変換部２０２は、他のサイクル番号の第１の行に存在している場合にはステップＳ１３１０に進み、他のサイクル番号の第１の行に存在していない場合にはステップＳ１３１４に進む。
【００８３】
例えば、図１１のデータベース１１００において、ＣＬＫ＝４の第１の行に示す入力端子条件は、「ＩＮＤＴ＿１＝２’ｂ００、ＩＮＤＴ＿２＝２’ｂ１０」である。この入力端子条件が他の行に存在しているかどうかを確認すると、ＣＬＫ＝２４の第１の行が同じ入力端子条件となるため、ステップＳ１３０９からＳ１３１０に進む。
【００８４】
ステップＳ１３１０では、波形−モデル変換部２０２は、データベース１１００において、対象行と上記の他のサイクル番号の第１の行では、同じ入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値の条件で、出力端子ＯＤＴ及びＣＡＲＲＹの信号値が異なっていないかをチェックする。波形−モデル変換部２０２は、異なっていない場合にはステップＳ１３１４に進み、異なっている場合にはステップＳ１３１１に進む。
【００８５】
例えば、図１１のデータベース１１００において、ＣＬＫ＝４の第１の行とＣＬＫ＝２４の第１の行の出力端子ＯＤＴを確認すると、どちらも「ＯＤＴ＝２’ｂ０１」となっていることが分かる。そのため、ステップＳ１３１０からＳ１３１４に進む。
【００８６】
ステップＳ１３１４では、波形−モデル変換部２０２は、データベース１１００の対象行をイベントベース記述用の情報１２０８として保持し、ステップＳ１３１５に進む。イベントベース記述用の情報１２０８は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値に応じた出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の動作記述である。
【００８７】
ステップＳ１３１５では、波形−モデル変換部２０２は、上記の入力端子条件が同じクロック端子ＣＬＫのサイクル番号の第２の行（バックトレース行）を処理対象外にする。例えば、ＣＬＫ＝４の第１の行の入力端子条件は一意に決めることができたので、波形−モデル変換部２０２は、ＣＬＫ＝４の第２の行及びＣＬＫ＝２４の第２の行を処理の対象外とする。
【００８８】
次に、ステップＳ１３１６では、波形−モデル変換部２０２は、データベース１１００の情報を全て確認したか否かをチェックする。波形−モデル変換部２０２は、全て確認していない場合にはステップＳ１３０８に戻り、上記の処理を繰り返す。
【００８９】
例えば、図１１のデータベース１１００において、ＣＬＫ＝６の第１の行に示す入力端子条件は、「ＩＮＤＴ＿１＝２’ｂ００、ＩＮＤＴ＿２＝２’ｂ００」である。ステップＳ１３０９では、波形−モデル変換部２０２は、この入力端子条件が他のサイクル番号の第１の行に存在しているかどうかを確認する。ＣＬＫ＝６の第１の行の入力端子条件は、ＣＬＫ＝２２、ＣＬＫ＝２６及びＣＬＫ＝２７の第１の行の入力端子条件と同じであるため、波形−モデル変換部２０２は、ステップＳ１３０９からＳ１３１０に進む。ＣＬＫ＝６、ＣＬＫ＝２２、ＣＬＫ＝２６及びＣＬＫ＝２７の第１の行の出力端子条件は、出力端子ＯＤＴの信号値が異なっていることが分かる。そのため、波形−モデル変換部２０２は、ステップＳ１３１０からＳ１３１１に進む。
【００９０】
ステップＳ１３１１では、波形−モデル変換部２０２は、データベース１１００において、上記の入力端子条件と同じ入力端子条件のクロック端子ＣＬＫのサイクル番号の第２の行のバックトレース情報を参照して下記の確認を行う。
【００９１】
次に、ステップＳ１３１２では、波形−モデル変換部２０２は、データベース１１００の対象行の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の１サイクル前の信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の条件がデータベース１１００の他のサイクル番号の第２の行に存在しているか否かをチェックする。波形−モデル変換部２０２は、他のサイクル番号の第２の行に存在している場合には、ステップＳ１３１３に進む。また、波形−モデル変換部２０２は、他のサイクル番号の第２の行に存在していない場合には、ステップＳ１３１４に進む。
【００９２】
例えば、図１１のデータベース１１００において、ＣＬＫ＝６の第２の行に示す入力端子条件は、「ＩＮＤＴ＿１＝２’ｂ００、ＩＮＤＴ＿２＝２’ｂ００、ＩＮＤＴ＿１＿ｂ１＝２’ｂ００、ＩＮＤＴ＿２＿ｂ１＝２’ｂ１１」である。この入力端子条件が他のサイクル番号の第２の行に存在しているかどうかを確認すると、ＣＬＫ＝２６の第２の行が同じ入力端子条件となるため、ステップＳ１３１２からＳ１３１３に進む。
【００９３】
ステップＳ１３１３では、波形−モデル変換部２０２は、データベース１１００において、対象行と上記の他のサイクル番号の第２行では、同じ信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の条件で、出力端子ＯＤＴ及びＣＡＲＲＹの信号値が異なっていないかをチェックする。波形−モデル変換部２０２は、異なっていない場合にはステップＳ１３１４に進む。また、波形−モデル変換部２０２は、異なっている場合には、ステップＳ１３１１に戻り、さらに１サイクル前の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値についての処理を繰り返す。
【００９４】
例えば、図１１のデータベース１１００において、ＣＬＫ＝６とＣＬＫ＝２６の第２の行の出力端子ＯＤＴを確認すると、どちらも「ＯＤＴ＝２’ｂ１１」となっていることが分かる。そのため、ステップＳ１３１３からＳ１３１４に進む。
【００９５】
ステップＳ１３１４では、波形−モデル変換部２０２は、データベース１１００の対象サイクル番号の第２の行をイベントベース記述用の情報１２０９として保持し、ステップＳ１３１５に進む。イベントベース記述用の情報１２０９は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値及び過去のサイクルの信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１に応じた出力端子ＯＤＴ及び／又はＣＡＲＲＹの信号値の動作記述である。
【００９６】
ステップＳ１３１６において、波形−モデル変換部２０２は、データベース１１００の情報を全て確認した場合には、ステップＳ１３１７に進む。ステップＳ１３１７では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５において、イベントベース記述用の情報１２０８を書き出し、次にイベントベース記述用の情報１２０９を書き出す。次に、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５において、その他の入力端子条件の場合の出力端子ＯＤＴ及びＣＡＲＲＹの信号値、及びクロック宣言１２１０を書き出す。次に、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５において、バックトレース信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１を作成するシフトレジスタ記述１２１１を書き出す。
【００９７】
次に、ステップＳ１３１８では、波形−モデル変換部２０２は、図１２のＨＤＬ動作モデル２１５内において、定型文のＨＤＬ動作モデル２１５の終了を表す情報１２１２を書き出す。
【００９８】
以上の処理により、図１２のＨＤＬ動作モデル２１５が完成する。その後、図２に示すように、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、ＨＤＬ動作モデル２１５に基づき、ＳｙｓｔｅｍＣ動作モデル２１６を生成する。高位合成ツール２０４は、ＳｙｓｔｅｍＣ動作モデル２１６に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。
【００９９】
波形−モデル変換部２０２は、イベントベース記述用の情報１２０８及び１２０９を含むＨＤＬ動作モデル２１５を生成する。第３の実施形態は、第２の実施形態に比べ、波形情報２１３に応じて、ＨＤＬ動作モデル２１５及びＦＰＧＡ用ＲＴＬ動作モデル２１７のサイズを小さくすることができる。
【０１００】
（第４の実施形態）
図１４は、第４の実施形態による情報処理装置１００のプログラム及びデータを示す図である。図２では、波形−モデル変換部２０２は、波形情報２１３及び端子情報２１４に基づき、ＨＤＬ動作モデル２１５を生成する。これに対し、図１４では、波形−モデル変換部２０２は、波形情報２１３及び端子情報２１４に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。以下、本実施形態が第３の実施形態と異なる点を説明する。
【０１０１】
図１５は、図１４のＦＰＧＡ用ＲＴＬ動作モデル２１７の例を示す図である。図１６は、波形−モデル変換部２０２の処理例を示すフローチャートである。以下、波形−モデル変換部２０２が図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する例を説明する。
【０１０２】
ステップＳ１６０１では、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、端子宣言部分１５０１を書き出す。
【０１０３】
次に、ステップＳ１６０２では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、ｒｅｇ宣言でレジスタ型変数ｃｌｋ＿ｃｏｕｎｔ、ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の宣言１５０２を書き出す。
【０１０４】
次に、ステップＳ１６０３では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のａｌｗａｙｓ文「ＣＬＫ＿ＣＯＵＮＴ＿ＭＯＤＥＬ」１５０３を書き出す。次に、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のａｌｗａｙｓ文のリセット文１５０４を書き出す。次に、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、変数ｃｌｋ＿ｃｏｕｎｔのカウントアップ文１５０５を書き出す。
【０１０５】
次に、ステップＳ１６０４では、波形−モデル変換部２０２は、出力端子毎にａｌｗａｙｓ文を書き出す処理を実施する。例えば、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、出力端子ＣＡＲＲＹのａｌｗａｙｓ文１５０６を書き出す。なお、図１５では、説明の簡単のため、出力端子ＯＤＴの記述を省略しているが、出力端子ＯＤＴの記述は、出力端子ＣＡＲＲＹの記述と同様に生成することができる。
【０１０６】
次に、ステップＳ１６０５では、波形−モデル変換部２０２は、全ての出力端子の情報をＦＰＧＡ用ＲＴＬ動作モデル２１７内に書き出したか否かを判定する。波形−モデル変換部２０２は、全てを書き出していない場合にはステップＳ１６０８に進む。
【０１０７】
ステップＳ１６０８では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のａｌｗａｙｓ文のリセット文１５０７を書き出す。
【０１０８】
次に、ステップＳ１６０９では、波形−モデル変換部２０２は、図１１のデータベース１１００の情報を上から順番に確認していく。
【０１０９】
次に、ステップＳ１６１０では、波形−モデル変換部２０２は、データベース１１００の対象行の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値の条件がデータベース１１００の他のサイクル番号の第１の行に存在しているか否かをチェックする。波形−モデル変換部２０２は、他のサイクル番号の第１の行に存在している場合にはステップＳ１６１１に進み、他のサイクル番号の第１の行に存在していない場合にはステップＳ１６１５に進む。
【０１１０】
ステップＳ１６１１では、波形−モデル変換部２０２は、データベース１１００において、対象行と上記の他のサイクル番号の第１の行では、同じ入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値の条件で、出力端子ＣＡＲＲＹの信号値が異なっていないかをチェックする。波形−モデル変換部２０２は、異なっていない場合にはステップＳ１６１５に進み、異なっている場合にはステップＳ１６１２に進む。
【０１１１】
ステップＳ１６１５では、波形−モデル変換部２０２は、データベース１１００の対象行の入力端子条件をｃａｓｅ文の条件情報１５０８又は１５１０として保持する。この場合、条件情報１５０８及び１５１０は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値の条件である。
【０１１２】
次に、ステップＳ１６１６では、波形−モデル変換部２０２は、上記の入力端子条件が同じクロック端子ＣＬＫのサイクル番号の第２の行（バックトレース行）を処理対象外にする。
【０１１３】
次に、ステップＳ１６１７では、波形−モデル変換部２０２は、データベース１１００の情報を全て確認したか否かをチェックする。波形−モデル変換部２０２は、全て確認していない場合にはステップＳ１６０９に戻り、上記の処理を繰り返す。
【０１１４】
ステップＳ１６１２では、波形−モデル変換部２０２は、データベース１１００において、上記の入力端子条件と同じ入力端子条件のクロック端子ＣＬＫのサイクル番号の第２の行のバックトレース情報を参照して下記の確認を行う。
【０１１５】
次に、ステップＳ１６１３では、波形−モデル変換部２０２は、データベース１１００の対象行の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の１サイクル前の信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の条件がデータベース１１００の他のサイクル番号の第２の行に存在しているか否かをチェックする。波形−モデル変換部２０２は、他のサイクル番号の第２の行に存在している場合には、ステップＳ１６１４に進む。また、波形−モデル変換部２０２は、他のサイクル番号の第２の行に存在していない場合には、ステップＳ１６１５に進む。
【０１１６】
ステップＳ１６１４では、波形−モデル変換部２０２は、データベース１１００において、対象行と上記の他のサイクル番号の第２行では、同じ信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の条件で、出力端子ＣＡＲＲＹの信号値が異なっていないかをチェックする。波形−モデル変換部２０２は、異なっていない場合には、ステップＳ１６１５に進む。また、波形−モデル変換部２０２は、異なっている場合には、ステップＳ１６１２に戻り、さらに１サイクル前の入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値についての処理を繰り返す。
【０１１７】
ステップＳ１６１５では、波形−モデル変換部２０２は、データベース１１００の対象サイクル番号の第２の行の入力端子条件をｃａｓｅ文の条件情報１５０８又は１５１０として保持する。この場合、条件情報１５０８及び１５１０は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値及び過去のサイクルの信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１の条件である。
【０１１８】
ステップＳ１６１７において、波形−モデル変換部２０２は、データベース１１００の情報を全て確認した場合には、ステップＳ１６１８に進む。ステップＳ１６１８では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７において、保持しておいたｃａｓｅ文の条件情報１５０８及び１５１０を順番に書き出す。波形−モデル変換部２０２は、書き出す際に、異なる入力端子条件で出力端子の信号が同じ場合には、「ｏｒ」を示す「｜｜」で区切る。
【０１１９】
次に、ステップＳ１６１９では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７において、条件情報１５０８及び１５１０の書き出しがそれぞれ終わった時点で、出力端子ＣＡＲＲＹへの代入文１５０９及び１５１１を書き出す。そして、波形−モデル変換部２０２は、デフォルトの出力端子ＣＡＲＲＹへの代入文１５１２を書き出す。
【０１２０】
条件情報１５０８，１５１０及び代入文１５０９，１５１１は、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値に応じた出力端子ＣＡＲＲＹの信号値の動作記述を含み、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値及び過去のサイクルの信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１に応じた出力端子ＣＡＲＲＹの信号値の動作記述を含む。
【０１２１】
その後、波形−モデル変換部２０２は、ステップＳ１６０４に戻り、他の出力端子ＯＤＴについての処理を繰り返す。ステップＳ１６０５において、波形−モデル変換部２０２は、全ての出力端子の情報をＦＰＧＡ用ＲＴＬ動作モデル２１７内に書き出した場合には、ステップＳ１６０６に進む。
【０１２２】
ステップＳ１６０６では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７において、バックトレース信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１を作成するシフトレジスタ記述１５１３を書き出す。
【０１２３】
次に、ステップＳ１６０７では、波形−モデル変換部２０２は、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のＦＰＧＡ用ＲＴＬ動作モデル２１７の終了を表す情報（ｅｎｄｍｏｄｕｌｅ）１５１４を書き出す。
【０１２４】
以上の処理により、図１５のＦＰＧＡ用ＲＴＬ動作モデル２１７が完成する。図２では、ＳｙｓｔｅｍＣ動作モデル生成部２０３の処理及び高位合成ツール２０４の処理が必要である。これに対し、本実施形態では、波形−モデル変換部２０２がＦＰＧＡ用ＲＴＬ動作モデル２１７を生成するので、ＳｙｓｔｅｍＣ動作モデル生成部２０３の処理及び高位合成ツール２０４の処理が不要になる利点がある。
【０１２５】
波形情報２１３が、あるパタンの繰り返しだったり、規則的な動作をしている場合には、第１〜第３の実施形態が有効である。これに対し、波形情報２１３の条件が複雑になった場合には、第４の実施形態が有効である。また、波形情報２１３が少ない場合には、第１の実施形態を適用し、波形情報が多い場合には第２〜４の実施形態を適用することができる。
【０１２６】
なお、波形−モデル変換部２０２は、第１の実施形態と同様に、クロック端子の信号のサイクル番号に応じた出力端子の信号値の動作記述を有するＦＰＧＡ用ＲＴＬ動作モデル２１７を生成することもできる。また、波形−モデル変換部２０２は、第２及び第３の実施形態の同様の動作記述を有するＦＰＧＡ用ＲＴＬ動作モデル２１７を生成することもできる。
【０１２７】
（第５の実施形態）
図１７は、第５の実施形態によるデータベース８２０及びメモリ情報１７０１の例を示す図である。波形−モデル変換部２０２は、第２の実施形態と同様に、波形情報２１３を基に、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値に応じた出力端子ＯＤＴ及びＣＡＲＲＹの信号値のデータベース８２０を生成する。データベース８２０は、クロック端子ＣＬＫの信号のサイクル番号と、入力端子ＩＮＤＴ＿１の信号値と、入力端子ＩＮＤＴ＿２の信号値と、出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値の対応関係を示す。
【０１２８】
波形−モデル変換部２０２は、リードオンリーメモリ（ＲＯＭ）をインスタンスするＦＰＧＡ用ＲＴＬ動作モデル２１７を生成するため、データベース８２０を基にメモリ情報１７０１を生成する。メモリ情報１７０１は、ＲＯＭのアドレスＡＤＤＲＥＳＳとデータＯＵＴＤＡＴＡの対応関係を有する。
【０１２９】
波形−モデル変換部２０２は、データベース８２０内のクロック端子ＣＬＫの信号のサイクル番号と、入力端子ＩＮＤＴ＿１の信号値と、入力端子ＩＮＤＴ＿２の信号値を基に、メモリ情報１７０１のアドレスＡＤＤＲＥＳＳを生成する。例えば、ＣＬＫ＝４におけるメモリ情報１７０１のアドレスＡＤＤＲＥＳＳの生成方法を説明する。クロック端子ＣＬＫの信号のサイクル番号の４は、５ビット２進数に変換すると、「００１００」である。入力端子ＩＮＤＴ＿１の信号値は、２進数で「００」である。入力端子ＩＮＤＴ＿２の信号値は、２進数で「１０」である。波形−モデル変換部２０２は、クロック端子ＣＬＫの信号のサイクル番号「００１００」と、入力端子ＩＮＤＴ＿１の信号値「００」と、入力端子ＩＮＤＴ＿２の信号値「１０」をつなぎ合わせ、「００１００００１０」のアドレスＡＤＤＲＥＳＳを生成する。
【０１３０】
また、波形−モデル変換部２０２は、データベース８２０内の出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値を基に、メモリ情報１７０１のデータＯＵＴＤＡＴＡを生成する。例えば、ＣＬＫ＝４におけるメモリ情報１７０１のデータＯＵＴＤＡＴＡの生成方法を説明する。入力端子ＯＤＴの信号値は、２進数で「０１」である。出力端子ＣＡＲＲＹの信号値の初期値は、２進数で「０」である。波形−モデル変換部２０２は、入力端子ＯＤＴの信号値「０１」と、出力端子ＣＡＲＲＹの信号値「０」をつなぎ合わせ、「０１０」のデータＯＵＴＤＡＴＡを生成する。波形−モデル変換部２０２は、データベース８２０の全行をメモリ情報１７０１に変換する。
【０１３１】
図１８（Ａ）は、図１７のメモリ情報１７０１を記憶するＲＯＭ１８０１を示す概念図である。図１８（Ｂ）は、ＲＯＭ１８０１をＲＯＭＡＡとしてインスタンスするＦＰＧＡ用ＲＴＬ動作モデル２１７の例を示す図である。以下、波形−モデル変換部２０２が図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する方法を説明する。
【０１３２】
まず、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、端子宣言部分１５０１を書き出す。
【０１３３】
次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、ｒｅｇ宣言でレジスタ型変数ｃｌｋ＿ｃｏｕｎｔの宣言１８０２を書き出す。次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のａｌｗａｙｓ文「ＣＬＫ＿ＣＯＵＮＴ＿ＭＯＤＥＬ」１５０３を書き出す。
【０１３４】
次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のａｌｗａｙｓ文のリセット文１８０４を書き出す。次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、変数ｃｌｋ＿ｃｏｕｎｔのカウントアップ文１５０５を書き出す。
【０１３５】
次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、メモリ情報１７０１を有するＲＯＭＡＡのインスタンス情報１８０６を書き出す。アドレスＡＤＤＲＥＳＳは、サイクル番号ｃｌｋ＿ｃｏｕｎｔと、入力端子ＩＮＤＴ＿１の信号値と、入力端子ＩＮＤＴ＿２の信号値で表される。データＯＵＴＤＡＴＡは、出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値で表される。
【０１３６】
次に、波形−モデル変換部２０２は、図１８（Ｂ）のＦＰＧＡ用ＲＴＬ動作モデル２１７内において、定型文のＦＰＧＡ用ＲＴＬ動作モデル２１７の終了を表す情報（ｅｎｄｍｏｄｕｌｅ）１８０７を書き出す。
【０１３７】
以上で、ＦＰＧＡ用ＲＴＬ動作モデル２１７が完成する。ＦＰＧＡ用ＲＴＬ動作モデル２１７は、アドレスＡＤＤＲＥＳＳを入力し、データＯＵＴＤＡＴＡを出力するＲＯＭを論理回路として動作させる。
【０１３８】
ＦＰＧＡ用ＲＴＬ動作モデル２１７は、アドレスＡＤＤＲＥＳＳとデータＯＵＴＤＡＴＡで表現されるメモリの動作モデルである。アドレスＡＤＤＲＥＳＳは、クロック端子の信号のサイクル番号及び入力端子の信号値に基づくアドレスである。データＤＡＴＡは、出力端子の信号値に基づくデータである。なお、波形−モデル変換部２０２は、上記のメモリの動作モデルを、ＨＤＬ動作モデル２１５として生成することもできる。
【０１３９】
（第６の実施形態）
第５の実施形態では、ＲＯＭの構成をイメージしやすいように、サイクル番号ｃｌｋ＿ｃｏｕｎｔ及び入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の信号値を単純にアドレスＡＤＤＲＥＳＳとして使用している例を示している。しかし、サイクル番号ｃｌｋ＿ｃｏｕｎｔが大きくなるに従い、アドレスＡＤＤＲＥＳＳが増加していくことになってしまい、ＲＯＭ容量が大きくなってしまう。
【０１４０】
そこで、第６の実施形態では、波形−モデル変換部２０２は、第３の実施形態と同様に、入力端子の信号の条件によって出力端子の信号値が一意に決まる情報を生成するため、入力端子の１サイクル前の信号値も条件として使用する。これにより、アドレスの増加を抑止することができる。
【０１４１】
図１９は、ＲＯＭをインスタンスするＨＤＬ動作モデル２１５の例を示す図である。波形−モデル変換部２０２は、図１１のデータベース１１００を基に、図１３のフローチャートの処理と同様に、ＨＤＬ動作モデル２１５を生成することができる。以下、波形−モデル変換部２０２が図１９のＨＤＬ動作モデル２１５を生成する方法を説明する。
【０１４２】
まず、波形−モデル変換部２０２は、図４（Ａ）の端子情報２１４のファイルから抽出した情報を基に、図１９のＨＤＬ動作モデル２１５内において、端子宣言部分１２０１を書き出す。
【０１４３】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、ｒｅｇ宣言で変数ｃｌｋ＿ｃｏｕｎｔ、ＩＮＤＴ＿１＿ｂ１、ＩＮＤＴ＿２＿ｂ１及びＡＤＤＲの宣言１９０２を書き出す。変数ＡＤＤＲは、アドレスを示す。
【０１４４】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、メモリ情報を有するＲＯＭＡＡのインスタンス情報１９０３を書き出す。アドレスＡＤＤＲＥＳＳは、変数ＡＤＤＲで表される。データＯＵＴＤＡＴＡは、出力端子ＯＤＴの信号値と、出力端子ＣＡＲＲＹの信号値で表される。
【０１４５】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、定型文の「ｉｎｉｔｉａｌ」文１２０３を書き出す。次に、波形−モデル変換部２０２は、端子情報２１４のファイルから抽出した情報を基に、図１９のＨＤＬ動作モデル２１５内において、出力端子ＣＡＲＲＹ，ＯＤＴ及び変数ｃｌｋ＿ｃｏｕｎｔの初期化情報１２０４を書き出す。
【０１４６】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、定型文のリセット解除文１２０５を書き出す。次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、定型文のｆｏｒｅｖｅｒ文１２０６を書き出す。次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、変数ｃｌｋ＿ｃｏｕｎｔのカウントアップ宣言１２０７を書き出す。
【０１４７】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値に応じた変数ＡＤＤＲの情報１９０８を書き出す。次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、入力端子ＩＮＤＴ＿１及びＩＮＤＴ＿２の現サイクルの信号値及び過去おサイクルの信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１に応じた変数ＡＤＤＲの情報１９０９を書き出す。
【０１４８】
次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、その他の場合の出力端子ＣＡＲＲＹ及びＯＤＴの信号値、及びクロック宣言１２１０を書き出す。次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５において、バックトレース信号値ＩＮＤＴ＿１＿ｂ１及びＩＮＤＴ＿２＿ｂ１を作成するシフトレジスタ記述１２１１を書き出す。次に、波形−モデル変換部２０２は、図１９のＨＤＬ動作モデル２１５内において、定型文のＨＤＬ動作モデル２１５の終了を表す情報１２１２を書き出す。
【０１４９】
以上で、ＨＤＬ動作モデル２１５が完成する。ＲＯＭは、アドレス及びデータのサイズによって回路規模が決まるため、論理合成を実施する前にどの程度のＦＰＧＡ内部リソースが必要になるかが判断できる利点がある。
【０１５０】
ＨＤＬ動作モデル２１５は、アドレスＡＤＤＲＥＳＳとデータＯＵＴＤＡＴＡで表現されるメモリの動作モデルである。アドレスＡＤＤＲＥＳＳは、入力端子の現サイクルの信号値及び過去のサイクルの信号値に基づくアドレスである。データＤＡＴＡは、出力端子の信号値に基づくデータである。なお、波形−モデル変換部２０２は、上記のメモリの動作モデルを、ＦＰＧＡ用ＲＴＬ動作モデル２１７として生成することもできる。
【０１５１】
（第７の実施形態）
図１（Ｂ）において、ステップＳ１１６では、情報処理装置１００は、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。この際、情報処理装置１００は、波形情報２１３に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成している。そのため、ＦＰＧＡ用ＲＴＬ動作モデル２１７は、波形情報２１３とは異なる入力信号パタンが入力されると、所望の出力信号を出力することができない場合がある。
【０１５２】
第７の実施形態では、ＦＰＧＡ用ＲＴＬ動作モデル２１７の完成後、別の検証パタンが必要になった場合には、現在の波形情報２１３に対して新たな検証パタンを追加し、情報処理装置１００は、更新された波形情報２１３を基に、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。これにより、ＦＰＧＡ用ＲＴＬ動作モデル２１７は、新たな検証パタンの入力に対して、適切な出力信号を出力することができる。そして、実際の論理回路により近いＦＰＧＡ用ＲＴＬ動作モデル２１７を生成することができる。以下、本実施形態が第１〜第６の実施形態と異なる点を説明する。
【０１５３】
図２０は、第７の実施形態による情報処理装置１００の情報処理方法を示すフローチャートである。図２０は、図１（Ｂ）に対して、ステップＳ２００１及びＳ２００２を追加したものである。ステップＳ１１６の後、ステップＳ２００１では、図２の論理検証ツール２０１は、新たな入力信号波形をＦＰＧＡ用ＲＴＬ動作モデル２１７に入力し、ＦＰＧＡ用ＲＴＬ動作モデル２１７の出力信号波形情報を取得する。
【０１５４】
次に、ステップＳ２００２では、ユーザは、その出力信号が意図したものになっているか否かを判定する。意図したものになっている場合には、ステップＳ１１７において、ユーザは、ＦＰＧＡ用ＲＴＬ動作モデル２１７に基づく論理回路情報をＦＰＧＡに書き込む。
【０１５５】
これに対し、意図したものになっていない場合には、ユーザは、波形情報２１３に対して上記の新たな入力信号に対する入出力波形情報を追加する。または、図２の論理検証ツール２０１は、検証パタン２１２及び新た入力信号波形を用いて、ＡＳＩＣ用ＲＴＬ動作モデル２１１を基に、波形情報２１３を更新してもよい。その後、ステップＳ１１４に戻る。ステップＳ１１４では、波形−モデル変換部２０２は、更新された波形情報２１３及び端子情報２１４を基に、ＨＤＬ動作モデル２１５を生成する。
【０１５６】
次に、ステップＳ１１５では、論理検証ツール２０１は、検証パタン２１２及び新たな入力信号波形を用いてＨＤＬ動作モデル２１５の検証を実施し、生成される波形情報が意図した波形情報と一致していることを確認する。
【０１５７】
次に、ステップＳ１１６では、ＳｙｓｔｅｍＣ動作モデル生成部２０３は、ＨＤＬ動作モデル２１５に基づき、ＳｙｓｔｅｍＣ動作モデル２１６を生成する。次に、高位合成ツール２０４は、ＳｙｓｔｅｍＣ動作モデル２１６に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する。ユーザは、生成されたＦＰＧＡ用ＲＴＬ動作モデル２１７を検証し、ＦＰＧＡ用ＲＴＬ動作モデル２１７に基づく論理回路情報をＦＰＧＡに書き込む。
【０１５８】
本実施形態によれば、情報処理装置１００は、ＦＰＧＡ用ＲＴＬ動作モデル２１７の完成後、別の検証パタンが必要になった場合、現在の波形情報２１３に対して新たな検証パタンを追加し、ＦＰＧＡ用ＲＴＬ動作モデル２１７を更新することができる。これにより、実際の論理回路により近いＦＰＧＡ用ＲＴＬ動作モデル２１７を生成することができる。
【０１５９】
第１〜第７の実施形態によれば、情報処理装置１００は、ＡＳＩＣ用ＲＴＬ動作モデル２１１に基づき、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成することができるので、論理回路の動作モデルの設計期間を短縮することができる。また、ＦＰＧＡ用ＲＴＬ動作モデル２１７のマニュアル作業による再設計作業が不要となることで、評価したい時期に評価したい項目に合わせたＦＰＧＡ用ＲＴＬ動作モデル２１７の生成が可能となり、設計期間を短縮することができる。また、ＦＰＧＡ用ＲＴＬ動作モデル２１７は、評価項目に沿った機能的には等価な回路を実現できるため、ハードウェア設計とソフトウェア検証の協調設計に適用することが可能となる。なお、ＦＰＧＡ用ＲＴＬ動作モデル２１７を生成する場合を例に説明したが、他の動作モデルを生成してもよい。
【０１６０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１６１】
２０１  論理検証ツール
２０２  波形−モデル変換部
２０３  ＳｙｓｔｅｍＣ動作モデル生成部
２０４  高位合成ツール
２１１  ＡＳＩＣ用ＲＴＬ動作モデル
２１２  検証パタン
２１３  波形情報
２１４  端子情報
２１５  ＨＤＬ動作モデル
２１６  ＳｙｓｔｅｍＣ動作モデル
２１７  ＦＰＧＡ用ＲＴＬ動作モデル
【図１】
2019087206.tif 000003
【図２】
2019087206.tif 000004
【図３】
2019087206.tif 000005
【図４】
2019087206.tif 000006
【図５】
2019087206.tif 000007
【図６】
2019087206.tif 000008
【図７】
2019087206.tif 000009
【図８】
2019087206.tif 000010
【図９】
2019087206.tif 000011
【図１０】
2019087206.tif 000012
【図１１】
2019087206.tif 000013
【図１２】
2019087206.tif 000014
【図１３】
2019087206.tif 000015
【図１４】
2019087206.tif 000016
【図１５】
2019087206.tif 000017
【図１６】
2019087206.tif 000018
【図１７】
2019087206.tif 000019
【図１８】
2019087206.tif 000020
【図１９】
2019087206.tif 000021
【図２０】
2019087206.tif 000022