(57)【要約】【課題】検証の手間を減らすことができる動作合成装置および動作合成方法を提供すること。【解決手段】検証向けの動作レベル記述を入力とする動作合成装置は、動作合成前処理装置を有し、その動作合成前処理装置は、検証向けの動作レベル記述を入力として、入力ポートを抽出する抽出手段、出力ポートを抽出する抽出手段、抽出結果データを保存する保存手段および検証しやすい回路へ変換する変換手段を備えている。【選択図】図５
2011181046.tif 000002
【特許請求の範囲】
【請求項１】
検証向けの動作レベル記述を入力とする動作合成装置であって、
動作合成前処理装置を有し、該動作合成前処理装置は、前記検証向けの動作レベル記述を入力として、入力ポートを抽出する抽出手段、出力ポートを抽出する抽出手段、抽出結果データを保存する保存手段および検証しやすい回路へ変換する変換手段を備えることを特徴とする動作合成装置。
【請求項２】
前記検証向けの動作レベル記述の記述手段を有することを特徴とする請求項１記載の動作合成装置。
【請求項３】
検証済みの前記動作レベル記述を入力として動作合成し、生成されたＲＴＬに対して検証を行い、回路を生成することを特徴とする請求項１または２記載の動作合成装置。
【請求項４】
動作合成装置に検証向けの動作レベル記述を入力するステップと、
動作合成前処理装置が、前記検証向けの動作レベル記述を入力として、入力ポートを抽出するステップと、出力ポートを抽出するステップと、抽出結果データを保存するステップと、検証しやすい回路へ変換するステップとを有し、
検証済みの前記動作レベル記述を入力として動作合成することを特徴とする動作合成方法。
【請求項５】
前記検証向けの動作レベル記述を記述するステップを有することを特徴とする請求項４記載の動作合成方法。
【請求項６】
検証済みの前記動作レベル記述を入力として動作合成し、生成されたＲＴＬに対して検証を行い、回路を生成するステップをさらに有することを特徴とする請求項４または５記載の動作合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証向けの動作レベル記述技術および、検証向け動作レベル回路生成技術に関する。特に高位動作合成においてコンピュータ言語であるＣ＋＋、ＳｙｓｔｅｍＣの動作レベル検証技術に関する。
【背景技術】
【０００２】
特許文献１では、パイプライン合成を行った回路記述の検証を行う際の設計者の手間を低減することを目的とするが、実際、回路のアルゴリズムはそのまま使えない場合が多く、コンピュータ言語であるＣ言語で書かれたアルゴリズムから動作レベル記述へ変換することで、動作レベル検証を行うことは必要になる。
【０００３】
図１５に従来の動作合成検証フロー図を示す。図１５を参照すると、動作レベルの記述（Ｓ１５０１）に対して、検証を行って（Ｓ１５０２）、検証済みの動作レベル記述に対して、動作合成を行う（Ｓ１５０３）ことで、ＲＴＬが生成される。そして生成されたＲＴＬに対して、ＲＴＬレベル検証を行う（Ｓ１５０４）。
【０００４】
動作レベルとは、回路の動作を表すレベルである。基本的にコンピュータ言語であるＣ、Ｃ＋＋、ＳｙｓｔｅｍＣベースで記述される。図１６に示すようにモジュールの間にｉｎｔｅｒｆａｃｅで接続されていて、このｉｎｔｅｒｆａｃｅは時間の概念がある、各モジュールの機能本体は時間の概念がない。したがってＩｎｔｅｒｆａｃｅと機能本体との設計の分離が可能になる。
【０００５】
動作レベル記述の一例を図１７に示す。Ｏｒｉｇｎａｌ＿ｐｏｒｔ  はデータ入出力ポートでｉｎｔｅｒｆａｃｅに相当する部分であり、ｆｕｎｃ１，ｆｕｎｃ２，ｆｕｎｃ３は関数モジュール機能部分である。設計上ではｆｕｎｃ１，ｆｕｎｃ２，ｆｕｎ３とＯｒｉｇｎａｌ＿ｐｏｒｔとは分離可能となっている。
【０００６】
関連する技術として、自動的に検証する手段を提供し、設計が仕様にあっているかどうかを自動的に判定可能にするものが開示されている。その構成は、動作仕様を解析部で解析し、４つ組のコードテーブルを用いて、自動検証部において自動検証を行なう。一方、ＲＴＬ回路データパスデータから接続関係の抽出を抽出部により行ない、部品接続テーブルを用いて、自動検証部で自動検証を行ない、検証結果が得られる（特許文献２参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コンピュータ言語であるＣ言語で書かれたアルゴリズムから動作レベル記述へ変換することで、動作レベル検証を行うことが必要になった場合は、動作レベルの検証が重要となってくる。
動作レベルの検証がうまく行けば、ＲＴＬ検証もうまく行くケースがほとんどである。したがって、動作レベルの検証は動作合成に置いてが非常に重要である。
【０００８】
本発明の目的は、検証向け動作レベル記述で生成された回路を使って検証を行うことで、検証の手間を減らすことができる動作合成装置および動作合成方法を提供することにある。
【課題を解決するための手段】
【０００９】
請求項１記載の発明は、検証向けの動作レベル記述を入力とする動作合成装置であって、動作合成前処理装置を有し、該動作合成前処理装置は、検証向けの動作レベル記述を入力として、入力ポートを抽出する抽出手段、出力ポートを抽出する抽出手段、抽出結果データを保存する保存手段および検証しやすい回路へ変換する変換手段を備えることを特徴とする動作合成装置である。
【００１０】
請求項２記載の発明は、請求項１記載の動作合成装置において、検証向けの動作レベル記述の記述手段を有することを特徴とする。
【００１１】
請求項３記載の発明は、請求項１または２記載の動作合成装置において、検証済みの動作レベル記述を入力として動作合成し、生成されたＲＴＬに対して検証を行い、回路を生成することを特徴とする。
【００１２】
請求項４記載の発明は、動作合成装置に検証向けの動作レベル記述を入力するステップと、動作合成前処理装置が、検証向けの動作レベル記述を入力として、入力ポートを抽出するステップと、出力ポートを抽出するステップと、抽出結果データを保存するステップと、検証しやすい回路へ変換するステップとを有し、検証済みの動作レベル記述を入力として動作合成することを特徴とする動作合成方法である。
【００１３】
請求項５記載の発明は、請求項４記載の動作合成方法において、検証向けの動作レベル記述を記述するステップを有することを特徴とする。
【００１４】
請求項６記載の発明は、請求項４または５記載の動作合成方法において、検証済みの動作レベル記述を入力として動作合成し、生成されたＲＴＬに対して検証を行い、回路を生成するステップをさらに有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、検証の手間を減らすことができる動作合成装置および動作合成方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態における動作合成装置の構成図である。
【図２】本発明の実施の形態における動作合成フロー図である。
【図３】本発明の実施の形態におけるＲＴＬレベルの回路を示す図である。
【図４】本発明の実施の形態における動作レベルの検証がしやすい動作合成フローを示す図である。
【図５】本発明の実施の形態における新しい動作レベル検証フローを示す図である。
【図６】本発明の実施の形態における動作合成前処理について説明する図である。
【図７】本発明の実施の形態におけるＤＵＴモジュールの構成を図である。
【図８】本発明の実施の形態における検証向けの動作レベル記述の図である。
【図９】本発明の実施の形態における関数について説明する図である。
【図１０】本発明の実施の形態における検証向け動作レベル記述を入力し、当該検証向け動作レベル記述の中の関数を検索する処理のフローを示す図である。
【図１１】本発明の実施の形態におけるメモリ１０３上で保存するデータを示す図である。
【図１２】本発明の実施の形態におけるプレ動作合成を行って変換される回路を示す図である。
【図１３】本発明の実施の形態におけるｆｕｎｃ２までの関数の数が２以上の場合を示す図である。
【図１４】本発明の実施の形態におけるｆｕｎｃ２から出力ポートまでの関数の数が２以上の場合を示す図である。
【図１５】従来の動作合成検証フロー図である。
【図１６】従来の動作レベルを示す図である。
【図１７】従来の動作レベル記述の一例を示す図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態における動作合成装置の構成図を図１に示す。動作合成装置は、ＣＰＵ１０１、ＨＤＤ１０２、メモリ１０３、入出力操作部１０４および表示部１０５から構成されている。
【００１８】
図２に動作合成フロー図を示す。図２を参照すると、Ｃ＋＋、ＳｙｓｔｅｍＣで書かれた動作合成レベルの記述を入力として（Ｓ２０１）、動作合成を行って（Ｓ２０２）、目標ＲＴＬを生成する（Ｓ２０３）。
【００１９】
動作合成することによって、ＲＴＬレベルの回路が生成される。図３に示すようにレジスタ位置、レジスタ間の機能が決まっている。
【００２０】
図４は、動作レベルの検証がしやすい動作合成フローを示す図である。
動作レベル記述（Ｓ４０１）、動作合成前処理（Ｓ４０２）、動作合成（Ｓ４０３）によって、ＲＴＬが生成される（Ｓ４０４）。なお、動作合成前処理（Ｓ４０２）では、後述する入力抽出手段、出力抽出手段、変換手段、保存手段が関係している。
【００２１】
図５は、新しい動作レベル検証フローを示す図である。
検証向けの動作レベル記述を入力として（Ｓ５０１）、動作合成前処理（Ｓ５０２）をして、動作レベル検証を行う（Ｓ５０３）。検証済みの動作レベル記述を入力として動作合成（Ｓ５０４）して、ＲＴＬが生成される（Ｓ５０５）。生成されたＲＴＬに対して、ＲＴＬ検証を行って（Ｓ５０６）、最終的に回路が生成される。
【００２２】
図６を参照すると、動作合成前処理（動作合成前処理装置）については、検証向けの動作レベル記述６１を入力として、関数の入力（入力ポート）を抽出する入力抽出手段、関数の出力（出力ポート）を抽出する出力抽出手段、抽出した情報（抽出結果データ）を保存する保存手段、および、回路変換（検証しやすい回路へ変換）する変換手段を持っている。
【００２３】
上記のフローにより動作レベルの検証がしやすくなるという効果を奏する。
【００２４】
図７に示すＤＵＴモジュールは関数１、関数２、関数３から構成されている。各関数はスルー機能を持っていない場合、ＤＵＴモジュールの出力ポートで期待値不一致がある場合、どこの関数で不一致なのか調べることが難しい。スルー機能がないのに、各関数にスルー機能をつけて、検証するのはいいが、また、動作合成を行うときに、いろいろ修正する必要があって、手間がかかる。このような課題に関しては図８に示す仕組みを入れることで、検証しやすい動作レベル記述になる。
【００２５】
図６の検証向けの動作レベル記述６１に関連する、図８の検証向けの動作レベル記述では、関数入力はｍｏｎｉｔｏｒ＿ｉｎ、関数出力はｍｏｎｉｔｏｒ＿ｏｕｔというユーザ定義型で定義する。ｃｌａｓｓ Ｔ は入出力データ型で、ｉｎｔ Ｎはスルー機能がＯＮ／ＯＦＦのコントロールパラメータである。
【００２６】
図９に示すように、ｍｏｎｉｔｏｒ＿ｉｎ／ｍｏｎｉｔｏｒ＿ｏｕｔは関数入力ポート、関数出力ポートの関数定義型である。２番目のパラメータはスルーモードＯＮ／ＯＦＦを示すパラメータである。ｂは関数定義型で定義された関数入力／出力ポートである。
【００２７】
図１０は、検証向け動作レベル記述を入力し、当該検証向け動作レベル記述の中の関数を検索する処理のフローを示す図である。
Ｍｏｎｉｔｏｒ＿ｉｎをキーワードとする入力ポート記述がある場合（Ｓ１００３／Ｙｅｓ）、ポート名を抽出して（Ｓ１００４）、またそのポート定義の２番目のパラメータも抽出を行う。抽出した変数をメモリ上で保存する（Ｓ１００６）。関数入力ポートの検出が終ってから、関数出力ポートの検出を行い（Ｓ１００８）、そのポート定義の２番目のパラメータの抽出を行い（Ｓ１００９）、抽出した変数をメモリ上で保存する（Ｓ１０１０）。
【００２８】
図１１に示すように、抽出した関数の入出力ポートをポート名、スルースイッチ状態の順番でメモリ１０３上で保存する。
【００２９】
図１２は、図１１のメモリ１０３上で保存された変数情報に基づいて、プレ動作合成を行って、変換される回路を示す。
ｂ，ｃについて、モニタＯＮになっているため、ａからｂまでのスルーパスとｃからモジュール出力ポートまでのスルーパスを生成することによって、ｆｕｎ２関数が切り出すことができて、関数単体の検証ができて、検証しやすい動作合成装置を実現できる。
【００３０】
なお、図１３に示すように、ｆｕｎｃ２までの関数の数が２以上の場合、ｆｕｎｃ３はターゲットとなる。
【００３１】
なお、図１４に示すように、ｆｕｎｃ２から出力ポートまでの関数の数が２以上の場合、ｆｕｎｃ２はターゲットとなる。
【００３２】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々の変更実施が可能である。
【符号の説明】
【００３３】
１０１    ＣＰＵ
１０２    ＨＤＤ
１０３    メモリ
１０４    入出力操作部
１０５    表示部
【先行技術文献】
【特許文献】
【００３４】
【特許文献１】特開２００９−０７５８２１号公報
【特許文献２】特開平０７−２２５７８７号公報
【図１】
2011181046.tif 000003
【図２】
2011181046.tif 000004
【図３】
2011181046.tif 000005
【図４】
2011181046.tif 000006
【図５】
2011181046.tif 000007
【図６】
2011181046.tif 000008
【図７】
2011181046.tif 000009
【図８】
2011181046.tif 000010
【図９】
2011181046.tif 000011
【図１０】
2011181046.tif 000012
【図１１】
2011181046.tif 000013
【図１２】
2011181046.tif 000014
【図１３】
2011181046.tif 000015
【図１４】
2011181046.tif 000016
【図１５】
2011181046.tif 000017
【図１６】
2011181046.tif 000018
【図１７】
2011181046.tif 000019