(57)【要約】【課題】従来、コードカバレッジを用いて検証ベクタのコード最適化を行う方法があるが、検証対象である設計データのコード最適化を行う方法がなく、さらに対象はハードウエアに限られるといった課題がある。【解決手段】コードカバレッジ計測手段１０２によって生成されるコードカバレッジ情報をコードカバレッジデータベース１０３に格納し、コードカバレッジデータベース１０３を利用して、非実行コード記述を削除またはコメントアウトするコード最適化手段１０４を備えることによって設計データ１００および検証ベクタ１０１の両方のコード最適化を行うという効果を奏する。【選択図】  図１
2004355130.tif 000002
【特許請求の範囲】
【請求項１】
集積回路装置の機能を記述した設計データの各コード記述について検証ベクタによる実行コード記述と非実行コード記述とを計測してコードカバレッジ情報を得る工程と、
前記計測で得たコードカバレッジ情報を記憶する工程と、
前記コードカバレッジ情報に基づいて前記設計データから前記非実行コード記述を削除してコード最適化を行う工程
とを含むことを特徴とする集積回路装置の設計方法。
【請求項２】
前記コード最適化工程は、前記非実行コード記述の削除の態様を実装形態に応じて可変することを特徴とする請求項１に記載の集積回路装置の設計方法。
【請求項３】
前記コード最適化工程は、前記実装形態がハードウエアの場合に、
各関数コールをインライン展開する工程と、
前記インライン展開した各関数コード記述について個別にコードカバレッジ計測する工程と、
前記計測で得たコードカバレッジ情報から関数コード記述ごとに非実行コード記述を削除する工程
とを実行することを特徴とする請求項２に記載の集積回路装置の設計方法。
【請求項４】
前記コード最適化工程は、前記実装形態がソフトウエアの場合に、
実行速度優先が選択されたときに関数コールをインライン展開する工程と、
コードサイズ優先が選択されたときに関数コールにする工程
とを実行することを特徴とする請求項２に記載の集積回路装置の設計方法。
【請求項５】
前記関数コールの工程は、
関数コールごとの関数コール内のコードカバレッジを計測する工程と、
前記計測で得たコードカバレッジ情報に基づいて同一関数の関数コール中で共通する非実行コード記述を削除する工程と
を実行することを特徴とする請求項４に記載の集積回路装置の設計方法。
【請求項６】
前記コード最適化の工程は、前記非実行コード記述の削除に代えて、前記非実行コード記述についてのコメントアウトを行うことを特徴とする請求項１から請求項５までのいずれかに記載の集積回路装置の設計方法。
【請求項７】
集積回路装置の機能を記述した設計データの各コード記述について複数の検証ベクタによる実行コード記述と非実行コード記述とを計測してコードカバレッジ情報を得る工程と、
前記計測で得たコードカバレッジ情報を記憶する工程と、
前記記憶されたコードカバレッジ情報における前記実行コード記述・非実行コード記述が互いに同一となっている複数の検証ベクタについて、これらを１つに統合する工程
とを含むことを特徴とする集積回路装置の設計方法。
【請求項８】
前記検証ベクタの統合の工程は、複数の検証ベクタごとに計測した前記コードカバレッジ情報に基づいて同一のコードカバレッジ情報を持つ複数の検証ベクタを１つに統合することを特徴とする請求項７に記載の集積回路装置の設計方法。
【請求項９】
集積回路装置の機能を記述した設計データと前記設計データを検証するための複数の検証ベクタを用いて、前記設計データの各コード記述が前記複数の検証ベクタによる実行コード記述と非実行コード記述とを計測するコードカバレッジ計測手段と、
前記コードカバレッジ計測手段によって生成されるコードカバレッジ情報を記憶するコードカバレッジ記憶手段と、
前記コードカバレッジ情報に基づいて前記設計データから前記非実行コード記述を削除するコード最適化手段
とを備えた集積回路装置の設計装置。
【請求項１０】
前記コード最適化手段は、前記非実行コード記述の削除に代えて、前記非実行コード記述についてのコメントアウトを行うことを特徴とする請求項９に記載の集積回路装置の設計装置。
【請求項１１】
集積回路装置の機能を記述した設計データと前記設計データを検証するための複数の検証ベクタを用いて、前記設計データの各コード記述が前記複数の検証ベクタによる実行コード記述と非実行コード記述とを計測するコードカバレッジ計測手段と、
前記コードカバレッジ計測手段によって生成されるコードカバレッジ情報を記憶するコードカバレッジ記憶手段と、
前記コードカバレッジ記憶手段により記憶された前記コードカバレッジ情報における前記実行コード記述・非実行コード記述が互いに同一となっている複数の検証ベクタについて、これらを１つに統合する統合手段
とを備えた集積回路装置の設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コードカバレッジを利用して設計データおよび検証ベクタのコード記述のコード最適化を行う技術に関するものである。
【０００２】
【従来の技術】
従来から、集積回路装置の設計においては、Ｖｅｒｉｌｏｇ／ＶＨＤＬのようなハードウエア記述言語を用いてハードウエア設計を行っている。そして、設計データが機能的に正しく動作するかどうかを確認するために、ハードウエア記述言語やＣ／Ｃ＋＋などのようなソフトウエア言語または検証専用言語などを用いて検証ベクタを作成し検証している。その際、設計データをどの程度まで検証ベクタによって検証できているかを定量的に見積もるために、コードカバレッジという技術が利用されている。
【０００３】
コードカバレッジ技術では、検証対象である設計データの全てのコード記述について、検証ベクタで検証を行った場合に、実行された記述（実行コード記述）と実行されない記述（非実行コード記述）とを計測し、全コード中、どれくらいのコードが実行コード記述かというカバレッジ率を計算し、設計データの品質向上に活用している。
【０００４】
従来技術を、図１１を用いて説明する。ＲＴＬ（Ｒｅｇｉｓｔｅｒ  ＴｒａｎｓｆｅｒＬｅｖｅｌ：レジスタ転送レベル）で記述されたハードウエアの設計データＵ１および検証ベクタＵ２をコードカバレッジ計測手段Ｕ３に入力し、コードカバレッジを計測する。設計データＵ１における冗長記述を計測し、コードカバレッジ情報からコード最適化手段Ｕ４において検証ベクタＵ２の冗長記述を削除する。つまり、コードカバレッジ情報を利用して検証ベクタＵ２の最適化を図り、検証工数の削減を実現する（例えば、特許文献１参照。）。
【０００５】
【特許文献１】
特開２００１−１４３６５号公報（第３−４頁、第１−２図）
【０００６】
【発明が解決しようとする課題】
しかし、上記従来の構成では、検証ベクタのコード最適化は可能であるが、設計データのコード最適化は不可能という課題がある。また、設計データがハードウエアのみを対象としているために、ソフトウエアには適用できないという課題がある。
【０００７】
本発明は、このような事情に鑑みて創作したものであり、設計データについても、また、ソフトウエアについても、そのコード最適化を実現できるようにすることを目的としている。
【０００８】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【０００９】
第１の解決手段として、本発明による集積回路装置の設計方法は、集積回路装置の機能を記述した設計データの各コード記述について検証ベクタによる実行コード記述と非実行コード記述とを計測してコードカバレッジ情報を得る工程と、前記計測で得たコードカバレッジ情報を記憶する工程と、前記コードカバレッジ情報に基づいて前記設計データから前記非実行コード記述を削除してコード最適化を行う工程とを含むことを特徴とする。
【００１０】
上記の集積回路装置の設計方法の発明は、集積回路装置の設計装置として、次のように展開することが可能である。すなわち、本発明による集積回路装置の設計装置は、集積回路装置の機能を記述した設計データと前記設計データを検証するための複数の検証ベクタを用いて、前記設計データの各コード記述が前記複数の検証ベクタによる実行コード記述と非実行コード記述とを計測するコードカバレッジ計測手段と、前記コードカバレッジ計測手段によって生成されるコードカバレッジ情報を記憶するコードカバレッジ記憶手段と、前記コードカバレッジ情報に基づいて前記設計データから前記非実行コード記述を削除するコード最適化手段とを備えたことを特徴とする。
【００１１】
この構成によれば、検証ベクタを用いた設計データの検証において、設計データ中の一度も実行されなかったコード記述である非実行コード記述については、これをコードカバレッジ情報を利用して冗長な記述として削除する。これにより、設計データについても、そのコード最適化を実現することができる。
【００１２】
上記において、前記のコード最適化工程については、前記非実行コード記述の削除の態様を実装形態に応じて可変することが好ましい。すなわち、実装形態としてハードウエアとソフトウエアがあるが、ハードウエアの場合にはハードウエアに適した態様で非実行コード記述の削除を行い、ソフトウエアの場合にはソフトウエアに適した態様で非実行コード記述の削除を行うようにすることが有用である。より具体的レベルで記述すると、次のものが好ましい。
【００１３】
すなわち、前記実装形態がハードウエアの場合に、各関数コールをインライン展開する工程と、前記インライン展開した各関数コード記述について個別にコードカバレッジ計測する工程と、前記計測で得たコードカバレッジ情報から関数コード記述ごとに非実行コード記述を削除する工程とを実行することである。インライン展開とは、コード最適化方法の１つで、関数呼び出し位置に関数本体を展開することである。これにより、ハードウエア実装を考慮した最適化が実現される。
【００１４】
また、前記実装形態がソフトウエアの場合に、実行速度優先が選択されたときに関数コールをインライン展開する工程と、コードサイズ優先が選択されたときに関数コールにする工程とを実行することである。その関数コールの工程については、関数コールごとの関数コール内のコードカバレッジを計測する工程と、前記計測で得たコードカバレッジ情報に基づいて同一関数の関数コール中で共通する非実行コード記述を削除する工程とを実行する。
【００１５】
コードサイズ優先の場合には、インライン展開を行わず関数の実体を１つにまとめ、それを関数コールという形で参照する。コード最適化は、複数の関数コールで１つの関数コードを共有するため、複数の関数コールごとに関数コードのコードカバレッジ情報を記録し、それらで共通の非実行部分のみを関数コードから削除する。複数の関数コールで１つの関数コードを共有した上で非実行コード記述を削除する最適化であるので、コードサイズが優先されることになる。
【００１６】
また、実行速度優先の場合には、関数コールではなく、ハードウエアの場合と同様にインライン展開を行い、インライン展開後の個別関数コードで非実行コード記述はすべて削除する。これによって関数ごとに削除する部分が最適化される。関数ごとに非実行コード記述を削除する最適化であるので、実行速度が優先されることになる。
【００１７】
以上のように、ハードウエアだけでなくソフトウエアも含めた最適化をそれぞれの実装方法に適した削除方法を選択することによって、より効率の良いコード最適化を行うことができる。
【００１８】
なお、上記において、前記コード最適化の工程については、非実行コード記述の削除に代えて、今後のために、非実行コード記述についてのコメントアウトを行うのでもよい。
【００１９】
第２の解決手段として、本発明による集積回路装置の設計方法は、集積回路装置の機能を記述した設計データの各コード記述について複数の検証ベクタによる実行コード記述と非実行コード記述とを計測してコードカバレッジ情報を得る工程と、前記計測で得たコードカバレッジ情報を記憶する工程と、前記記憶されたコードカバレッジ情報における前記実行コード記述・非実行コード記述が互いに同一となっている複数の検証ベクタについて、これらを１つに統合する工程とを含むことを特徴とする。この場合に、複数の検証ベクタごとに計測した前記コードカバレッジ情報に基づいて同一のコードカバレッジ情報を持つ複数の検証ベクタを１つに統合することが好ましい。
【００２０】
上記の集積回路装置の設計方法の発明は、集積回路装置の設計装置として、次のように展開することが可能である。すなわち、本発明による集積回路装置の設計装置は、集積回路装置の機能を記述した設計データと前記設計データを検証するための複数の検証ベクタを用いて、前記設計データの各コード記述が前記複数の検証ベクタによる実行コード記述と非実行コード記述とを計測するコードカバレッジ計測手段と、前記コードカバレッジ計測手段によって生成されるコードカバレッジ情報を記憶するコードカバレッジ記憶手段と、前記コードカバレッジ記憶手段により記憶された前記コードカバレッジ情報における前記実行コード記述・非実行コード記述が互いに同一となっている複数の検証ベクタについて、これらを１つに統合する統合手段とを備えたことを特徴とする。
【００２１】
コードカバレッジ計測で取得し記憶したコードカバレッジ情報を利用して、複数の検証ベクタどうし間で、それぞれの実行コード記述どうしが互いに同一となっており、かつ、それぞれの非実行コード記述どうしが互いに同一となっているときは、それら実質的に同一の複数の検証ベクタを１つに統合する。これにより、検証ベクタについてのコード最適化を実現できる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態の集積回路装置の設計方法について図１から図１０を用いて説明する。なお、本発明はこの実施の形態に何等限定されるものではなく、要旨を逸脱しない範囲においては種々なる態様で実施し得る。
【００２３】
図１は、本発明の実施の形態の集積回路装置の設計装置・方法の一例を表したブロック図である。図１において、１００はカバレッジの対象であるシステムまたはハードウエアまたはソフトウエアの機能を記述した設計データであり、１０１は設計データ１００の機能を検証するための検証ベクタであり、１０２は設計データ１００と検証ベクタ１０２を入力として検証ベクタ１０１によって設計データ１００の各コード行が実行されたか実行されなかったかを計測するコードカバレッジ計測手段であり、１０３はコードカバレッジ計測手段１０２から出力されるコードカバレッジ情報を格納するコードカバレッジデータベースであり、１０４はコードカバレッジデータベース情報を用いて設計データ１００および検証ベクタ１０１のコード最適化を行うコード最適化手段である。
【００２４】
以上のように構成された集積回路装置の設計方法について、その動作一例を図２から図１０を用いて説明する。
【００２５】
図２は、コードカバレッジ計測手段１０２において設計データ１００と検証ベクタ１０１を入力してコードカバレッジを計測し、コード最適化手段１０４によって設計データ１００および検証ベクタ１０１のコード最適化を行うフローチャートである。
【００２６】
ステップ２００において、コードカバレッジ計測手段１０２は設計データ１００と検証ベクタ１０１を入力し、これら設計データ１００と検証ベクタ１０１を用いてコードカバレッジを計測する。
【００２７】
次いで、ステップ２０１において、コードカバレッジ計測結果であるコードカバレッジ情報をコードカバレッジデータベース１０３に登録する。
【００２８】
次いで、ステップ２０２において、設計データ１００についてコード最適化を行うか否かを判断し、コード最適化を行わない場合には処理を終了し、設計データ１００のコード最適化を行う場合には次のステップ２０３に進む。
【００２９】
次いで、ステップ２０３において、コードカバレッジデータベース１０３の情報を利用して設計データ１００のコード最適化を行う。
【００３０】
さらに次のステップ２０４において、検証ベクタ１０１についてコード最適化を行うか否かを判断し、コード最適化を行わない場合には処理を終了し、検証ベクタ１０１のコード最適化を行う場合には次のステップ２０５に進む。
【００３１】
次に、ステップＳ２０５において、コード最適化手段１０４は、コードカバレッジデータベース１０３の情報を利用して検証ベクタ１０１のコード最適化を行う。
【００３２】
図３は、図２のステップ２０３の設計データ１００のコード最適化の処理を詳しく示すフローチャートである。設計データ１００を入力し、設計データ１００の先頭行から処理を開始する。
【００３３】
ステップ３００において、コード記述が関数部分か否かを判断し、関数部分でないと判断したときはステップ３０１に進み、関数部分であると判断したときはステップ３０４に進む。
【００３４】
ステップ３０１において、その行が実行されたか否かを判断し、実行されなかったときはステップ３０２に進み、実行されたときはステップ３０３に進む。
【００３５】
上記の流れでコード記述が関数部分でなくかつ非実行コード記述であるときは、ステップ３０２に進んで、コードを削除または今後のためにコメントアウトをしてコード最適化を実行し、その上でステップ３０３に進んで、コードを１行進め、ステップ３００に戻る。
【００３６】
一方、上記の流れでコード記述が関数部分でなくかつその行が実行されたときは、コード最適化のステップ３０２をジャンプしてステップ３０３に進み、コードを１行進め、ステップ３００に戻る。
【００３７】
ステップ３００の判断でコード記述部分が関数部分であると判断してステップ３０４に進んだときは、以下の処理を実行する。
【００３８】
ステップ３０４において、関数の実装がハードウエアで行われるのかソフトウエアで行われるのかを判断し、ハードウエアで実装する場合にはステップ３０５に進み、ソフトウエアで実装する場合にはステップ３０８に進む。
【００３９】
ハードウエア実装の場合、ステップ３０５において、関数呼び出し位置に関数本体を展開するインライン展開を行う。
【００４０】
次いでステップ３０６において、インライン展開し関数ごとに非実行コード記述について、削除またはコメントアウトによってコード最適化を実行し、その上でステップ３０７に進む。
【００４１】
ステップ３０７では、コード最終行か否かを判断し、最終行でなければステップ３０３に進んで、コードを１行進め、ステップ３００に戻る。
【００４２】
ステップ３０４の判断でソフトウエアで実装すると判断した場合には、ステップ３０８において、コードの最適化方法として実行速度を優先させるかコードサイズを優先させるかを判断する。実行速度優先の場合にはハードウエアのときと同様にステップ３０５に進み、コードサイズ優先の場合にはステップ３０９に進む。
【００４３】
上記の流れでコード記述部分が関数部分でソフトウエアで実装する場合において、かつコードの最適化方法として実行速度を優先させる場合には、ハードウエアの場合と同様に、ステップ３０５に進んで、インライン展開を行い、ステップ３０６で、インライン展開した関数ごとに非実行コード記述について、削除またはコメントアウトによってコード最適化を実行する。その後は、ステップ３０７のコード最終行の判断を行い、最終行でなければステップ３０３のコード１行進めをした上でステップ３００に戻る。
【００４４】
一方、上記の流れでコード記述部分が関数部分でソフトウエアで実装する場合において、かつコードの最適化方法としてコードサイズを優先させる場合には、ステップ３０９に進んで、関数の実体を１つにしてそれを共通に利用する関数コールに変換する。
【００４５】
次いで、ステップ３１０において、共通で利用する関数内で、すべての関数コールから共通して非実行コード記述について、削除またはコメントアウトによってコード最適化を行う。その後は、ステップ３０７のコード最終行の判断を行い、最終行でなければステップ３０３のコード１行進めをした上でステップ３００に戻る。
【００４６】
図４は、設計データの関数コールを示したブロック図である。４００は設計データ、４０１は設計データ４００で呼び出される関数コールの実体を記述したコード記述である。
【００４７】
図５は、設計データのインライン展開を示したブロック図である。５００は設計データであり、５０１は設計データ５００でインライン展開されている関数の実体宣言部である。インライン展開によって設計データ５００の関数コール部分に実体宣言部５０１の関数実体部分がそのまま展開される。
【００４８】
図６は、設計データをインライン展開したときのコード最適化方法を示したブロック図である。６００は最適化前の設計データであり、６０１は設計データ６００からコールされる関数本体であり、６０２は設計データ６００の関数コールを関数本体６０１で実際に実行される部分だけを選んでインライン展開を行うことによって最適化を図った設計データである。これによって関数コールごとに最適化されたインライン展開を行うことができる。関数コールごとにインライン展開した上での最適化であるので、実行速度が優先されることになる。
【００４９】
図６においては、一度も実行されない非実行コード記述の“ｃａｓｅ  ｍｏｄｅ３：”，“ｃｏｄｅ３；ｂｒｅａｋ；”は選択されておらず、結果として削除され、これによってコード最適化が行われている。
【００５０】
図７は、設計データを関数コールで実装したときのコード最適化方法を示したブロック図である。７００は最適化前の設計データであり、７０１は設計データ７００からコールされる関数本体であり、７０２は設計データ７００の関数コールで共通して一度も非実行コード記述を削除することによって最適化を図った設計データである。これによってコードサイズを抑えたまま、さらに最適化することができる。すなわち、複数の関数コールで１つの関数コードを共有した上で非実行コード記述を削除する最適化であるので、コードサイズが優先されることになる。
【００５１】
図７においては、非実行コード記述の“ｃａｓｅ  ｍｏｄｅ３：”，“ｃｏｄｅ３；ｂｒｅａｋ；”は削除され、これによってコード最適化が行われている。
【００５２】
図８は、コードカバレッジ計測手段１０２によってコードカバレッジデータベース１０３に記憶される情報のうち設計データのメイン関数部分のコードカバレッジデータベースを示すブロック図である。８００はパラメータｆｌａｇ＝０を含む検証ベクタ１であり、８０１はパラメータｆｌａｇ＝１を含む検証ベクタ２であり、８０２は設計データのメイン関数部分であり、８０３は設計データメイン関数部分８０２のコードカバレッジ計測結果を記憶するコードカバレッジデータベースである。
【００５３】
コードカバレッジデータベース８０３は検証ベクタ１（８００）および検証ベクタ２（８０１）のそれぞれのコードカバレッジ情報を記憶し、関数コール部分は別途記憶されているコードカバレッジデータベースへのポインタを示している。
【００５４】
図９は、コードカバレッジ計測手段１０２によってコードカバレッジデータベース１０３に記憶される情報のうち設計データの関数コール部分のコードカバレッジデータベースを示すブロック図である。９００はパラメータｆｌａｇ＝０を含む検証ベクタ１であり、９０１はパラメータｆｌａｇ＝１を含む検証ベクタ２であり、９０２は設計データのメイン関数部分であり、９０３は設計データから関数コールされる関数本体であり、９０４はコール関数本体９０３のコードカバレッジ計測結果を記憶するコードカバレッジデータベースである。
【００５５】
コードカバレッジデータベース９０４は検証ベクタ１（９００）および検証ベクタ２（９０１）のそれぞれのコードカバレッジ情報を記憶し、さらにメイン関数内でコールされる関数コールごとのコードカバレッジ計測結果を記憶している。
【００５６】
図９においては、非実行コード記述の“ｃａｓｅ  ｍｏｄｅ３：”，“ｃｏｄｅ３；ｂｒｅａｋ；”については、検証ベクタ１での関数コール１も関数コール２も“０”であり、かつ、検証ベクタ２での関数コール１も関数コール２も“０”となっている。
【００５７】
図１０は、複数の検証ベクタのコードカバレッジ計測結果を格納したコードカバレッジデータベースを用いて冗長な検証ベクタを削除する方法を示したブロック図である。１０００はパラメータｆｌａｇ１＝０およびｆｌａｇ２＝０を含む検証ベクタ１であり、１００１はパラメータｆｌａｇ１＝１およびｆｌａｇ２＝０を含む検証ベクタ２であり、１００２はパラメータｆｌａｇ１＝１およびｆｌａｇ２＝１を含む検証ベクタ３であり、１００３は設計データのメイン関数部分であり、１００４は設計データメイン関数部分１００３の検証ベクタ１（１０００）および検証ベクタ２（１００１）および検証ベクタ３（１００２）ごとのコードカバレッジ計測結果を記憶したコードカバレッジデータベースである。
【００５８】
コードカバレッジデータベース１００４の検証ベクタ２（１００１）のカバレッジ情報と検証ベクタ３（１００２）のカバレッジ情報を比較すると、全く同じカバレッジ情報である。したがって、どちらか一方が冗長な検証ベクタであることが分かるので、どちらか一方を削除し、これによって検証ベクタの最適化を図ることができる。
【００５９】
【発明の効果】
本発明によれば、コードカバレッジ情報を利用して、設計データ、検証ベクタについて冗長なコードを削除することにより、コードサイズおよび実行速度を向上させることができるという効果を奏する。
【００６０】
また、設計データの関数部分がハードウエアに実装される場合と、ソフトウエアで実装される場合とで、コード最適化の方法を選択することにより、ハードウエア、ソフトウエア双方の設計データを扱うことができるという効果を奏する。
【００６１】
さらに、ソフトウエアで実装される場合には、実行速度、コードサイズという評価指標に基づいてコード最適化の方法を選択することにより、さらに優れたコード最適化を行うことができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態の集積回路装置の設計装置・方法の一例を示すブロック図
【図２】本発明の実施の形態におけるコード最適化の処理の一例を示すフローチャート
【図３】本発明の実施の形態における設計データの最適化方法の一例を示すフローチャート
【図４】本発明の実施の形態における設計データの関数コール方法の一例を示す動作説明図
【図５】本発明の実施の形態における設計データのインライン展開の方法の一例を示す動作説明図
【図６】本発明の実施の形態におけるインライン展開時のコード最適化方法の一例を示す動作説明図
【図７】本発明の実施の形態における関数コール時のコード最適化方法の一例を示す動作説明図
【図８】本発明の実施の形態におけるメイン関数のコードカバレッジデータベースの一例を示したブロック図
【図９】本発明の実施の形態における関数コール部分のコード最適化方法の一例を示す動作説明図
【図１０】本発明の実施の形態における冗長な検証ベクタのコード最適化の一例を示す動作説明図
【図１１】従来のコード最適化方法の一例を示すブロック図
【符号の説明】
１００  設計データ
１０１  検証ベクタ
１０２  コードカバレッジ計測手段
１０３  コードカバレッジデータベース
１０４  コード最適化手段
【図１】
2004355130.tif 000003
【図２】
2004355130.tif 000004
【図３】
2004355130.tif 000005
【図４】
2004355130.tif 000006
【図５】
2004355130.tif 000007
【図６】
2004355130.tif 000008
【図７】
2004355130.tif 000009
【図８】
2004355130.tif 000010
【図９】
2004355130.tif 000011
【図１０】
2004355130.tif 000012
【図１１】
2004355130.tif 000013