(57)【特許請求の範囲】
【請求項１】
システムの構成要素となるブロックを設計資産として他社のシステム設計者に提供し、提供する前記設計資産と他の設計データによるブロックを混在させたシステムを前記他社のシステム設計者に検証させる際、
前記システムに対する入力ベクタを入力列とし、与えられた入力ベクタ列に対する前記システムの動作を模擬することにより、前記システムの前記入力ベクタ列に対して応答する出力ベクタ列を求め、前記システムの動作を検証するために、
前記システムを構成し前記設計資産として提供するブロックに対するシステム模擬機構と、ユーザ認証機構を有し、ある時刻ｎでの該ブロックの内部状態と、利用者側システム検証装置より通信回線を介して受信した時刻ｎでの該ブロックへの入力ベクタから、その次の時刻ｎ＋１の時点での出力ベクタと内部状態を該システム模擬機構に基づいて求め、該通信回線を介して前記利用者側システム検証装置に返送し、
前記ユーザ認証機構は、前記システム設計者に提供した前記ブロックへの入力ベクタを前記通信回線を通じて前記システム設計者から受信する前に、だれが当該入力ベクタの送信者であるかを識別し、識別結果に応じて前記ブロックの動作を模擬する方式を変更することを特徴とする設計資産提供者側システム検証装置。
【請求項２】
請求項１のシステム検証装置において、該システム模擬機構として、汎用の計算機上でソフトウェアを使用することを特徴とした設計資産提供者側システム検証装置。
【請求項３】
請求項１のシステム検証装置において、該システム模擬機構として、専用のシステム検証用ハードウェアを使用することを特徴とした設計資産提供者側システム検証装置。
【請求項４】
請求項１のシステム検証装置において、該システム模擬機構として、すでに作成したＬＳＩやプリント基板などのシステムを使用することを特徴とした設計資産提供者側システム検証装置。
【請求項５】
請求項１のシステム検証装置において、登録済みの特定のユーザからの通信のみを受け付ける前記ユーザ認証機構を持つことを特徴とした設計資産提供者側システム検証装置。
【請求項６】
請求項１のシステム検証装置において、設計資産として提供するブロックへの入力ベクタを監視し、提供ブロックの設計者の意図に反する入力ベクタを検出する設計資産の誤使用検出機構を設けることを特徴とした設計資産提供者側システム検証装置。
【請求項７】
請求項６のシステム検証装置において、前記提供ブロックの設計者の意図に反する入力ベクタの検出結果を、該入力ベクタの送信者へ通知することを特徴とした設計資産提供者側システム検証装置。
【請求項８】
請求項１のシステム検証装置において、設計資産として提供するブロックへの入力ベクタを監視し、提供するブロックの利用状況を把握し、次期の提供ブロックの仕様決定のための情報を記録することを特徴とした設計資産提供者側システム検証装置。
【請求項９】
請求項１のシステム検証装置において、前記システム検証装置のシステム模擬機構の使用量に応じて課金することを特徴とした設計資産提供者側システム検証装置。
【請求項１０】
請求項９のシステム検証装置において、入力ベクタの送信量に応じて前記システム検証装置の前記システム模擬機構の使用量課金を行うことを特徴とした設計資産提供者側システム検証装置。
【請求項１１】
請求項１のシステム検証装置において、前記通信回線として交換通信網、インターネット、専用通信回線のいずれかを利用することを特徴とした設計資産提供者側システム検証装置。
【請求項１２】
請求項１１のシステム検証装置において、前記通信回線にベクタを転送する前に情報を暗号化し、前記通信回線からの受信後に情報を復号化することにより、第三者への情報の漏洩を防ぐことを特徴とした設計資産提供者側システム検証装置。
【請求項１３】
請求項１のシステム検証装置において、設計資産としてブロックを提供する者以外の第三者がシステム検証装置を提供することを特徴とした設計資産提供者側システム検証装置。
【請求項１４】
請求項１のシステム検証装置において、一つのＬＳＩチップ上にシステムを構築するシステムＬＳＩを設計対象とすることを特徴とした設計資産提供者側システム検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰ（設計資産）を用いたシステムの検証装置、システム検証方法及びその検証装置を用いたＬＳＩの製造方法に関する。特に、システム設計者の検証システムとは別に設計資産提供者が検証システムを持ち、その検証システムを通信回線を介して接続して互いにアクセスしながら検証する装置、その装置を利用した検証方法及びその装置を使用したＬＳＩの製造方法に関する。
【０００２】
【従来の技術】
近年のシステムの設計では、設計効率を向上させるため、過去の設計資産の再利用が注目されている。システムには、一つのＬＳＩ上に複数のブロックを乗せてシステムとするシステムＬＳＩや、複数のＬＳＩをプリント基板上に配置し構成する基板レベルのものや、それらの基板を組み合わせて筐体内に配置する装置レベルのものまで、様々な規模のものがある。
【０００３】
しかし、どの規模のシステムの設計においても、短期間でシステムを開発するために、システムの一部を設計資産として保存し、後の設計で再利用することが行われている。
【０００４】
さらに最近では、設計資産の再利用に、設計者本人が過去に設計したものだけでなく第三者が設計したものも使用される場合も多い。また、第三者が設計した設計資産の販売・流通も普及しつつある。
【０００５】
これらの設計資産の再利用や流通により、システムの設計効率は大幅に向上している。しかし、年々設計するシステムの規模が大きくなっているため、システムが正しく動作するか否かを確認する検証工程が複雑になってきている。
【０００６】
設計資産を利用したシステムの検証では、システムを構成するブロックの検証を、ブロックの内部動作の検証、ブロック間の接続の検証、の二つに分けて考えることができる。
【０００７】
新規に設計を行ったブロックでは、この二つの検証を両方とも行う必要がある。しかし、過去の設計資産を使用する場合、設計資産であるブロックはすでに検証済みである場合が多いので、ブロック自身の検証は不要であり、後者のブロック間の接続部分のみを検証すれば十分である。
【０００８】
システムの検証を行う手段として、システムの動作をシミュレートするシミュレータに動作検証用のテストベクタを与え、期待される結果が得られるか否かを確認する論理シミュレーションが広く一般に行われている。
【０００９】
システムの論理シミュレーションを行う場合、システムの全ての構成ブロックに対して動作をシミュレートするための情報が必要である。各構成要素の動作のシミュレーションには、設計データそのものか、あるいは設計データを抽象化した検証モデルのどちらかが必要である。設計データを使用すれば、設計データの検証を行えるが、詳細に記述された設計データを逐次シミュレートするため、処理時間がかかる。これに対し検証モデルは、ブロックの内部動作を抽象化あるいは簡略化しているため、短い処理時間で検証を行える。ただ、動作の抽象化・簡略化のため、設計データそのものの検証にはならない。
【００１０】
そこで、前述のブロックの検証項目を考慮し、システムを構成するブロックのうち、新規に設計したブロックは設計データを使用し、設計資産を利用するブロックには検証モデルを使用することにより、システム全体を高速に、かつブロック間の接続部を含む設計用システムの検証をする方式が広く用いられている。
【００１１】
検証モデルは、設計資産の開発者、あるいは第三者が有償、または無償で提供することが多い。また、検証モデルの配布は、CD-ROM等の記憶媒体に格納して配布されることが多い。
【００１２】
【発明が解決しようとする課題】
しかし、検証モデルの使用には、以下のような問題点が挙げられる。第一に検証モデルの開示により秘密情報が漏洩すること、第二に仕様変更やバグ修正による検証モデルの修正・変更が必要であること、第三に検証モデルの使用状況の把握が困難であること、第四に検証モデルの使用に対する課金方法が一定料金の課金に依る為金額が高額と成ることなどがある。以下に詳細を述べる。
【００１３】
第一の問題点は、検証モデルの開示による秘密情報の漏洩にある。検証モデルの開示は、通常論理シミュレーションに必要な全データを記憶媒体に格納して行う。もし、検証モデルの全データがその検証モデルの利用者に配布されれば、通常のシステム検証の用途のほかに、検証モデル自身の調査を行うことができる。一般に検証モデルの生成は、それ自身がシステムの設計とは別の技術分野に属し別個の技術を必要とする。上述のような検証モデル全体を引き渡す方式では、検証モデルの生成技術が漏洩する危険性がある。
【００１４】
第二の問題点は、仕様変更やバグ修正による検証モデルの修正・変更にある。検証モデルは、システム内の一モジュールについてインターフェース部分の動作をシミュレートするものであるが、あくまで現実のデータをシミュレートするものであるので、検証モデル作成の過程でバグが混入し、モジュールと動作が異なってしまう場合がある。また、バグの混入以外でも、モジュールの仕様が変更され、既存の検証モデルとモジュールの動作が食い違う可能性がある。
【００１５】
第三の問題点は、検証モデルの使用状況の把握が困難であることにある。検証モデルの提供者は、モジュールの提供者であることが多く、マーケティングへの活用のため、提供するモジュールの使用状況を把握したいという要望がある。しかし、上述のような検証モデルの全データの配布という方式では、検証モデルの利用者がどのように検証モデルを使用しているかを知ることはできない。
【００１６】
第四の問題点は、検証モデルの使用に対する課金方法にある。現在は、検証モデルのデータを販売し、それらの利用者に対する保守サービスを提供することにより、検証モデルに対する課金を行っている。しかし、この方法では、検証モデルの使用量にかかわらず、一定料金を課金することになり、一般にその金額は高額となる。そのため、試験的なモジュールの導入などを目的とし、小規模システムの利用を求めるユーザには経済的な面でその検証モデルの利用が困難になるという問題がある。
【００１７】
【課題を解決するための手段】
前記課題を解決し、さらに上記の目的を達成するため、本発明はシステムの設計者が、新規に設計したブロックと、他社から提供される設計資産であるブロックとを組み合わせて構築するシステムの検証をする際、システム全体の設計データと、システムに対する入力ベクタを入力列とし、与えられた入力ベクタ列に対するシステムの動作を模擬することにより、システムの入力ベクタ列に対する出力ベクタ列を求め、システムの動作を検証するために、システムを模擬する際に時間を有限個の時間ステップ時刻０から時刻Nに分割し、システムを構成する個々のブロックに対し、ある時刻ｎでのブロックの内部状態と、時刻ｎでのブロックへの入力ベクタから、その次の時刻ｎ＋１の時点での出力ベクタと内部状態をブロックの設計データまたは検証モデルに基づいて求め、各ブロックからの出力を統合することにより時刻ｎ＋１でのシステム全体の出力を求め、前記のシステムの出力ベクタ計算を時刻０から時刻Nまで繰り返すことにより、システムへの入力ベクタ列に対する出力ベクタ列を計算する設計資産利用者側システム検証装置において、時刻ｎ＋１の時点でのシステムの出力ベクタの計算時に、他社から提供されるブロックに関しては、該ブロックに対する時刻ｎでの入力ベクタを、通信回線を通じて該ブロックの提供者に送信し、該ブロックの時刻ｎ＋１の時点での出力ベクタの模擬結果を該提供者から受け取ることを特徴とした設計資産利用者側システム検証装置を提供することである。
【００１８】
上記設計資産利用者側システム検証装置において、上記ブロック提供者へ上記入力ベクタを送信し、上記ブロック提供者から出力ベクタを受け取ることにより、上記提供を受けたブロックの動作の模擬を行い、該ブロックの動作の模擬を設計資産利用者側システム検証装置内で行わないことを特徴とする。
【００１９】
又本発明は、自社で設計するブロックと、他社から設計資産の提供を受けるブロックとを組み合わせてＬＳＩを製造する際、ＬＳＩの製造前の動作検証時に、ＬＳＩへ入力される入力ベクタに基づいて、自社で設計するブロックと他社から設計資産の提供を受けるブロックへの入力ベクタを求め、自社で設計するブロックの入力ベクタに対する出力ベクタを、設計データを基にブロックの動作の模擬を行う自社のシステム検証装置により求め、他社から設計資産の提供を受けるブロックへの入力ベクタを、通信回線を通じて設計資産の提供者へ送信し、送信先の設計資産提供者側システム検証装置にて該入力ベクタに対し設計データあるいは検証モデルに基づいてブロックの動作模擬を行った結果求めた出力ベクタを送信先から通信回線を通じて受信し、自社が設計するブロックの出力ベクタと、他社から設計資産の提供を受けるブロックの出力ベクタを統合することにより、ＬＳＩの出力ベクタを求めることにより、ＬＳＩの製造前に、ＬＳＩの動作を模擬し期待通りの動作をするかを検証することを特徴とした設計資産利用者側システム検証装置を提供することである。
【００２０】
上記設計資産利用者側システム検証装置において、通信回線として交換通信網、インターネット、専用回線のいずれかを利用することを特徴とする。
【００２１】
上記設計資産利用者側システム検証装置において、通信回線にベクタを転送する前に情報を暗号化し、通信回線からの受信後に情報を復号化することにより、第三者への情報の漏洩を防ぐことを特徴とする。
【００２２】
上記設計資産利用者側システム検証装置において、一つのＬＳＩチップ上にシステムを構築するシステムＬＳＩを設計対象とすることを特徴とする。
【００２３】
さらに本発明は、システムの構成要素となるブロックを設計資産として他社のシステム設計者に提供し、提供する設計資産と他の設計データによるブロックを混在させたシステムを他社のシステム設計者に検証させる際、システムに対する入力ベクタを入力列とし、与えられた入力ベクタ列に対するシステムの動作を模擬することにより、システムの入力ベクタ列に対して応答する出力ベクタ列を求め、システムの動作を検証するために、システムを構成し設計資産として提供するブロックに対するシステム模擬機構を有し、ある時刻ｎでの該ブロックの内部状態と、利用者側システム検証装置より通信回線を介して受信した時刻ｎでの該ブロックへの入力ベクタから、その次の時刻ｎ＋１の時点での出力ベクタと内部状態を該システム模擬機構に基づいて求め、該通信回線を介して利用者側システム検証装置に返送することを特徴とする設計資産提供者側システム検証装置を提供することである。
【００２４】
上記設計資産提供者側システム検証装置において、該システム模擬機構として、汎用の計算機上でソフトウェアを使用することにより得ることを特徴とする。
【００２５】
上記設計資産提供者側システム検証装置において、該システム模擬機構として、専用のシステム検証用ハードウェアを使用することを特徴とする。
【００２６】
上記設計資産提供者側システム検証装置において、該システム模擬機構として、すでに作成したＬＳＩやプリント基板などのシステムを使用することを特徴とする。
【００２７】
上記設計資産提供者側システム検証装置において、さらにユーザ認証機構を有し、そのユーザ認証機構はシステム設計者に提供したブロックへの入力ベクタを通信回線を通じてシステム設計者から受信する前に、だれがベクタの送信者であるかを確認することを特徴とする。
【００２８】
上記設計資産提供者側システム検証装置において、登録済みの特定のユーザからの通信のみを受け付けるユーザ認証機構を持つことを特徴とする。
【００２９】
上記設計資産提供者側システム検証装置において、ユーザ認証機構により入力ベクタ送信者を識別し、識別結果に応じてブロックの動作を模擬する方式を変更することを特徴とする。
【００３０】
上記設計資産提供者側システム検証装置において、設計資産として提供するブロックへの入力ベクタを監視し、提供ブロックの設計者の意図に反する入力ベクタを検出する設計資産の誤使用検出機構を設けることを特徴とする。
【００３１】
上記設計資産提供者側システム検証装置において、提供ブロックの設計者の意図に反する入力ベクタの検出結果を、入力ベクタの送信者へ通知することを特徴とする。
【００３２】
上記設計資産提供者側システム検証装置において、設計資産として提供するブロックへの入力ベクタを監視し、提供するブロックの利用状況を把握し、次期の提供ブロックの仕様決定のための情報を記録することを特徴とする。
【００３３】
上記設計資産提供者側システム検証装置において、上記検証システムのシステム模擬機構の使用量に応じて課金することを特徴とする。
【００３４】
上記設計資産提供者側システム検証装置において、入力ベクタの送信量に応じて上記検証システムのシステム模擬機構の使用量課金を行うことを特徴とする。
【００３５】
上記設計資産提供者側システム検証装置において、通信回線として交換通信網、インターネット、専用通信回線のいずれかを利用することを特徴とする。
【００３６】
上記設計資産提供者側システム検証装置において、通信回線にベクタを転送する前に情報を暗号化し、通信回線からの受信後に情報を復号化することにより、第三者への情報の漏洩を防ぐことを特徴とする。
【００３７】
上記設計資産提供者側システム検証装置において、設計資産としてブロックを提供する者以外の第三者がシステム検証装置を提供することを特徴とする。
【００３８】
上記設計資産提供者側システム検証装置において、一つのＬＳＩチップ上にシステムを構築するシステムＬＳＩを設計対象とすることを特徴とする。
【００３９】
さらに本発明は、システムの設計者が、新規に設計したブロックと、他社から提供される設計資産であるブロックとを組み合わせてシステムを構築し、そのシステムの検証を行うために、システムへの入力ベクタに対する出力ベクタを計算するシステム検証方法において、上記他社から提供されるブロックに対するある時刻での入力ベクタを、通信回線を通じて該ブロックの提供者に送信し、該提供者がシステム模擬機構を利用して求められた次の時刻での出力ベクタの模擬結果を受け取り、上記新規に設計したブロックとの出力ベクタを統合することにより、システム全体の出力を求めることを特徴とした設計資産利用者側システム検証方法を提供することである。
【００４０】
さらに本発明は、自社で設計するブロックと、他社から設計資産の提供を受けるブロックとを組み合わせてＬＳＩを製造する際、ＬＳＩの製造前の動作検証時に、ＬＳＩへ入力される入力ベクタに基づいて、自社で設計するブロックと他社から設計資産の提供を受けるブロックへの入力ベクタを求め、自社で設計するブロックの入力ベクタに対する出力ベクタを、設計データを基にブロックの動作の模擬を行う自社のシステム検証装置により求め、他社から設計資産の提供を受けるブロックへの入力ベクタを、通信回線を通じて設計資産の提供者へ送信し、送信先の設計資産提供者側システム検証装置にて該入力ベクタに対し設計データあるいは検証モデルに基づいてブロックの動作模擬を行った結果求めた出力ベクタを送信先から通信回線を通じて受信し、自社が設計するブロックの出力ベクタと、他社から設計資産の提供を受けるブロックの出力ベクタを統合することにより、ＬＳＩの出力ベクタを求めることにより、ＬＳＩの製造前に、ＬＳＩの動作を模擬し期待通りの動作をするかを検証することを特徴とした設計資産利用者側システム検証方法を提供することである。
【００４１】
さらに本発明は、自社で設計するブロックと、他社から設計資産の提供を受けるブロックとを組み合わせてＬＳＩを製造する、ＬＳＩの製造方法において、ＬＳＩの製造前の動作検証時に、ＬＳＩへ入力される入力ベクタに基づいて、自社で設計するブロックと他社から設計資産の提供を受けるブロックへの入力ベクタを求め、自社で設計するブロックの入力ベクタに対する出力ベクタを、設計データを基にブロックの動作の模擬を行う自社のシステム検証装置により求め、他社から設計資産の提供を受けるブロックへの入力ベクタを、通信回線を通じて設計資産の提供者へ送信し、送信先の設計資産提供者側システム検証装置にて該入力ベクタに対し設計データあるいは検証モデルに基づいてブロックの動作模擬を行った結果求めた出力ベクタを送信先から通信回線を通じて受信し、自社が設計するブロックの出力ベクタと、他社から設計資産の提供を受けるブロックの出力ベクタを統合することにより、ＬＳＩの出力ベクタを求めることにより、ＬＳＩの製造前に、ＬＳＩの動作を模擬し期待通りの動作をするかを検証することを特徴としたＬＳＩの製造方法を提供することである。
【００４２】
【発明の実施の形態】
以下、本発明の実施例を図面を参照して説明する。
（１）            実施例１
図１、図２を用いて、本発明のシステム検証装置の実施例を説明する。
【００４３】
図１、図２において、その上方には設計資産利用側システム検証装置３があり、図１は本発明の概念図を示し、図２はその具体的構成図を示す。図１、２の下方には設計資産提供側のシステム検証装置２２がある。本実施例では設計資産利用側のシステム検証装置３を中心に説明し、設計資産提供側システム検証装置２２は、実施例２において、詳細に説明する。
【００４４】
本実施例では、システム設計者が、３つの新規に作成するブロック（ブロックＡ４、ブロックＢ５、ブロックＣ６）と、他社から設計資産として提供を受けるブロックＤ７とを接続して、システムを設計する場合を例にとり、このシステムを検証するシステムを示す。
【００４５】
設計するシステム２はブロックＡからＤ（図１、２の４、５、６、７に相当する）の４つのブロックからなる。このうち、ブロックＡからＣまではシステム設計者が新規に設計するブロックで、ブロック自身の動作とブロック間の接続の両者を検証する必要がある。そのため、これらのブロックの設計データをもとに検証を行い、ブロック内部の動作の検証と、ブロック間のインターフェースの検証を行う。これに対し、ブロックＤ７は、他社から検証済みの設計資産を受け取るため、ブロックの内部動作を検証する必要は無く、ブロック間の接続のみを検証すればよい。
【００４６】
図２に示す様に、実際にこれらのデータの検証を行う際には、ブロックＡからＤの他に、ブロックに入力ベクタを供給するテストベンチ３７を加えて検証を行う。
【００４７】
設計データ及びテストベンチは、ワークステーション（以下ＷＳと略）上で動作する論理シミュレータ４３へ、入力データとして与えられる。論理シミュレータは、与えられた設計データの動作をＷＳ上でシミュレーションするソフトウェアである。通常は、設計データの他に入力ベクタを入力として与えるが、今回の例では入力ベクタはテストベンチ３７が生成するため入力とはなっていない。（入力ベクタについては、図３で詳細は説明する。）
論理シミュレータ４３は、時刻０からシミュレーションを開始し、時刻１以降でのシステムの出力を求める。システムの出力は、各ブロックの出力をもとめ、それらを統合することにより求める。各ブロックの出力の求め方は、ブロックが自社で設計したブロックである場合と、他社から提供を受けるブロックの場合とで異なる。
【００４８】
自社で設計したブロックの場合、設計データを基に、自社内にあるシステム検証装置３を用いて動作を模擬することにより、ブロックの出力を求める。
【００４９】
他社から設計資産として提供を受けるブロックの場合には、通信回線２１を経由して、ブロックへの入力ベクタを設計資産提供側のシステム検証装置２２に転送する。入力ベクタの転送時には、規定されたフォーマットに従って、利用者ＩＤ３２、利用ブロックＩＤ３３、時刻３４、入力ベクタ３５を送信データ３０として転送する。利用者ＩＤ３２は、設計資産提供側のシステム検証装置２２が、設計資産の利用者を区別するためにあらかじめ利用者に付与するＩＤ番号であり、利用者の認証などに利用する。利用ブロックＩＤ３３は、他社から提供を受けるブロック（設計資産）を識別するＩＤである。単一のシステム検証装置内で複数のブロックの出力ベクタ計算を行う場合もあるので、どのブロックに対する出力ベクタが必要かをこれで伝達する。時刻３４は、論理シミュレーション中の時刻を示す。入力ベクタは、該当するブロックへの入力ベクタを伝送する。
【００５０】
設計資産提供側のシステム検証装置２２は、システム設計側からの送信データ３０を受け取ると、利用ブロックＩＤ３３で識別されるブロックに、入力ベクタ３５が入力された場合の出力ベクタを求める。（詳細は実施例２で述べる）。求められた出力ベクタ３６は、規定されたフォーマットで、図２に示す様に利用者ＩＤ３２、利用ブロックＩＤ３３、時刻３４、出力ベクタ３６にまとめられ通信回線を通じて設計資産利用側システム検証装置３へ返信データ３１として転送される。
【００５１】
通信回線を利用したベクタの転送時には、暗号・復号機構３９を用いて、データ転送前に暗号化、データ転送後に復号化を行う。これにより、通信回線２１上での、データ傍受による機密情報の漏洩を防ぐ。
【００５２】
通信回線は、図１で示される専用回線１６、交換通信網１４、インターネット１５などを用途に合わせて使用する。使用頻度が高くコストの増加が問題にならない場合には専用回線１６を用い、手軽に安価に使用する場合はインターネット１５を用いる。また、比較的手軽に用いたいが、情報の漏洩が問題になる場合は交換通信網１４を用いることができる。
【００５３】
このようにして、各ブロックの出力ベクタを求め、これらを統合することによりシステム全体の出力ベクタを求める。これらのベクタを求める処理を繰り返すことにより、連続した入力ベクタに対するシステムの出力を求める。
【００５４】
図３は、システム５０に対しての入力ベクタの供給を示したものである。システム５０には、入力ピン５４と出力ピン５５とがある。これ以外に入出力ピンがある場合もあるが、入出力ピンは論理的に入力ピン５４と出力ピン５５の二つの動作をするピンであり、入力ピン５４と出力ピン５５一つずつによりモデル化できるため、ここでは省略した。
【００５５】
ある時刻でのシステム５０の入力は、全入力ピン５４に対する信号値である。通常入力ピン５４は複数個あるため、これらの値の組み合わせを入力ベクタと呼び、本実施例では入力ベクタｖI５６と表記した。同様に、システム５０からの出力も、複数の出力ピンの組み合わせであり、出力ベクタと呼ばれる。本実施例では出力ベクタｖII５７と表記した。
【００５６】
入力ベクタｖI５６と出力ベクタｖII５７との関係は、システム５０の内部論理５１によって決定される。システムの内部論理５１がステートマシンで表現される場合、時刻ｎ＋１でのシステム５０の出力ベクタｖII５７は、時刻ｎでの入力ベクタｖI５６と時刻ｎでの内部状態Ｓ４９とにより決定される。ここで、内部状態Ｓ４９とは、過去の入力ベクタｖI５６の組み合わせにより決まる、システム内部の状態である。システムの内部状態と出力ベクタは図３中の式５２、５３のように表せる。
【００５７】
システムの利用者から見ると、システムへの入力は、連続した入力ベクタｖI５６の組み合わせであり、システムからの出力は、連続した出力ベクタｖII５７の組み合わせである。これらをそれぞれ入力ベクタ列５８、出力ベクタ列５９と呼ぶ。これらは、入力ベクタｖI５６と出力ベクタｖII５７の、時間的な変化を表現したものであり、図３下方のタイムチャートにより表現することができる。
【００５８】
以下に、図２の設計資産利用側システム検証装置３の動作を説明する。
【００５９】
図７は、本装置でのデータの流れを示したものである。ブロックＡ、Ｂ、Ｃの設計データ１００とシステムへの入力ベクタ列５８とを入力とし、システムからの出力ベクタ列５９を出力とする。システム設計側のシステム検証装置３では、時刻ｎ＋１のシステムの状態の模擬のため以下のような処理を行う。
【００６０】
ブロックＡ、Ｂ、Ｃの設計データ１００から抽出した論理的な動作１０３と、システムへの入力ベクタ列５８から取り出した時刻ｎでのシステムへの入力ベクタ１０４からさらに抽出する時刻ｎでのブロックＡ、Ｂ、Ｃへの入力ベクタ１０７と、時刻ｎでのブロックＡ、Ｂ、Ｃの内部状態１０９をもとに、システム模擬機構７３を用いて、時刻ｎ＋１でのブロックＡ、Ｂ、Ｃからの出力ベクタ１０８及び時刻ｎ＋１での内部状態を求める。同時に、時刻ｎでのブロックＤへの入力ベクタ１１０を、ブロック提供者側へのシステム検証装置２２に転送し、時刻ｎ＋１でのブロックＤからの出力ベクタ１１５の返送を待つ。時刻ｎ＋１でのブロックＤからの出力ベクタ１１５が返送された後、時刻ｎ＋１でのブロックＡ、Ｂ、Ｃからの出力ベクタ１０８と統合し、時刻ｎ＋１でのシステムの出力ベクタ１０５を生成する。これらを繰り返すことにより、システムからの出力ベクタ列５９を生成する。
【００６１】
ブロック提供側では、ブロックの利用側のシステム検証装置３から時刻ｎでのブロックＤへの入力ベクタ１１３を受け取り、検証装置内部で持つ時刻ｎでのブロックＤの内部状態１１４とともにシステム模擬機構１０とブロックＤの論理動作１１１を用いて、時刻ｎ＋１でのブロックＤからの出力ベクタ１１５と時刻ｎ＋１での内部状態を求める。時刻ｎ＋１でのブロックＤからの出力ベクタは、システム利用側のシステム検証装置３に返送される。
【００６２】
通信には、図１の構成例で示されるように専用回線１６、交換通信網１４、インターネット１５などの通信回線２１を用途に合わせて使用する。使用頻度が高くコストの増加が問題にならない場合には専用回線１６を用い、手軽に安価に使用する場合はインターネット１５を用いる。また、比較的手軽に用いたいが、情報の漏洩が問題になる場合は交換通信網１４を用いることができる。
【００６３】
図４は、本装置の動作フローを示したものである。本システムは、ブロックの提供者と通信しながら動作する。
【００６４】
本検証システム３は動作の模擬の際に、検証を行う時間を時刻０から時刻Ｎまでに分割し、順次システムの動作を行う。
【００６５】
下記に、図４の動作フローの各ステップを図５、６のデータフローと照らし合わせて説明する。
【００６６】
ステップ６０：時刻を表す変数ｎを０とする。同時に、システムの内部状態を初期化する。また、ブロックの提供者２２へ、検証を開始することを通知する。
【００６７】
ステップ６１：時刻ｎ＋１のシステム状態の模擬を開始する。ここで、時刻ｎ＋１でのシステム状態とは、図５に示す時刻ｎ＋１でのシステムの内部状態７５と、時刻ｎ＋１でのシステムの出力ベクタ７６を示す。システムの模擬は、システムが持つ内部ブロックを順次模擬することにより行われるが、内部ブロックが自分で設計したものか、あるいは他社より提供を受けうるものかによって、処理が分岐する。自社の設計したブロックはステップ６２へ、他社から提供を受けるものはステップ６３へ進む。
【００６８】
ステップ６２：自社が設計したブロックは、自社のシステム検証装置３内で動作の模擬を行う。図５に示す時刻ｎでの入力ベクタ７１と時刻ｎの時点での内部状態７４をともに入力し、自社で設計した設計データ７０からの抽出データをもとにシステムの動作を模擬し、時刻ｎ＋１での出力ベクタ７６と、内部状態７５を求める。設計データ７０は、システムをハードウェア記述言語（HDL）やスケマティクなどを用いて記述することが一般的であり、いずれの場合もシステムの論理的な動作を規定している。これを用いてシステムの模擬を行う。
【００６９】
ステップ６３：他社から提供を受けるブロックは、自社のシステム検証装置での動作模擬は行わず、図６に示すようにブロックへの時刻ｎでの入力ベクタ９０をブロック提供者へ送信する。
【００７０】
ステップ６４：ステップ６３での入力ベクタ送信先からの応答を待つ（図６の９１に相当する）。この間に、ブロック提供側のシステム検証装置９７では、提供するブロックの論理動作９２に基づいたシステム模擬機構１０を介して、ブロック利用側から送信されて来る時刻ｎでの入力ベクタ９０と内部状態９４から、時刻ｎ＋１での内部状態９５と出力ベクタ９６を求める。
【００７１】
ステップ６５：ステップ６３での入力ベクタ送信に対する応答として、時刻ｎ＋１でのブロック提供者側システム検証装置から返信されてくる出力ベクタ９６を受け取る。この様子を図６に示す。
【００７２】
ステップ６６：ステップ６２及びステップ６５により、時刻ｎ＋１の時点での全ブロックでの出力ベクタを得る。
【００７３】
ステップ６７：最終ステップの判定、すなわち時刻Nでの出力ベクタを計算したかの判定を行う。すべて計算が終わっていればステップ６９に進み、終わっていなければステップ６８に進む。
【００７４】
ステップ６８：変数ｎの値をｎ＋１とし、ステップ６１へ戻り、次の時刻のシステムの模擬を行う。
【００７５】
ステップ６９：システム全体の、時刻Nまでの動作の模擬が完了する。その後、ブロック提供者へ、検証が終了したことを通知する。
（２）            実施例２
図１、図２を用いて本発明のシステム検証装置の他の実施例を説明する。
【００７６】
本実施例では、設計資産の提供を受けてシステムを構築するシステム設計者が、新規に作成するブロックと提供を受けるブロックとを混在させてシステムを設計する場合を想定した検証環境について説明する。システム設計者は、自社で持つ設計資産利用側システム検証装置３内で自分が設計したブロックを検証するが、設計資産として提供を受けるブロックは自社内では検証せず、通信回線を通じて設計資産提供側とブロックへの入出力ベクタを送受信することにより検証を行う。提供を受ける設計資産は、内部論理はすでに検証済みであり、新規に作成するブロックとのインターフェースのみを検証すれば十分であるため、このような方式が可能である。本実施例では、この環境での設計資産提供側のシステム検証装置の実施例を説明する。
【００７７】
図２に、本発明の検証システムを利用したシステムの検証の実施例を示す。図２は、実施例１でも用いた図であるが、実施例２では実施例１にて詳細を省いた、下方の設計資産提供側システム検証装置２２を中心に説明する。
【００７８】
図２に示すシステムによる、システム検証の全体の流れは、実施例１に示した通りである。以下に、通信回線を通じて設計資産提供側システム検証装置２２に、送信データ３０が到着した後の動作を説明する。
【００７９】
設計資産提供側システム検証装置２２は、送信データ３０の受信後、それらが暗号化されている場合は、既に実施例１にて説明した暗号・復号機構３９を用いて復号する。
【００８０】
復号化されたデータは、ユーザ認証機構８に引き渡される。ユーザ認証機構８、プロトコルチェッカ２０、課金機構１３、論理シミュレータ４４、エミュレータ４５、実ＬＳＩ４２などは、LAN（ローカル・エリア・ネットワーク）により接続されており、データを転送し協調して動作する。
【００８１】
ユーザ認証機構８は、送信データ３０がどのユーザからのデータかを特定する。ユーザ認証機構８は、機構内に持つユーザリスト４６内のユーザＩＤと、送信された送信データ３０のユーザＩＤとを比較し、一致するものを検索する。一致するユーザＩＤがユーザリスト４６内に見つかった場合、送信データ３０の送信者は、事前に登録されたシステム検証装置２２の利用者である。この場合は、ユーザ属性４７に記されているユーザ情報を基に、出力ベクタの計算やプロトコルのチェックを行う。ユーザＩＤがユーザリスト４６内に見つからない場合、未登録ユーザとして処理を受け付けないか、あるいはゲストユーザとして限定された機能を提供するかを、システムのセキュリティーに応じて選択する。
【００８２】
受信した送信データ３０は、ユーザ認証機構の判断により、その中に含まれる入力ベクタを、ブロック模擬機構（論理シミュレータ４４、エミュレータ４５、実ＬＳＩ４２）やプロトコルチェッカ２０に転送することにより、処理される。
【００８３】
論理シミュレータ４４、エミュレータ４５、実ＬＳＩ４２は、ブロックの模擬機構として役目を果たす。ブロックの入力ベクタに対する出力ベクタを求める手法という点では、これら３つは共通しているが、論理シミュレータ４４は比較的安価で保守も容易だが動作速度が低速であり、エミュレータ４５は高速であり保守も比較的容易だが非常に高価であり、実ＬＳＩ４２は高速だが保守が困難で高価である、というように価格や操作性に特徴がある。これらの３つの模擬機構を利用者によって使い分ける。どのユーザにどの機構を使用するかは、ユーザ認証機構８が持つユーザ属性４７によって決定する。
【００８４】
プロトコルチェッカ２０は、動作模擬を行うブロックへの入力ベクタを監視し、ブロックに対して正しい入力となりえているかを確認する。プロトコルチェッカ２０により、ブロックへの不正な入力ベクタが発見された場合、不正な入力があったことをユーザ認証機構に伝える。ユーザ認証機構は、不正な入力ベクタを送信した利用者に、その旨を伝える。
【００８５】
課金機構は、論理シミュレータ４４、エミュレータ４５、実ＬＳＩ４２などのブロック模擬機構や、プロトコルチェッカ２０を監視し、利用者が個々の機構をどれだけ使用したか計測する。個々の機構の使用量は、入力する入力ベクタの長さや、各機構を使用した時間などをもとに判断する。個々の機構の使用量は、課金機構内に記録される。記録された使用量は、ユーザ認証機構と照らし合わせ、後日利用者に通知し、有料の場合は請求書を発行する。
【００８６】
以上が、本実施例の構成である。
【００８７】
次に、図２の設計資産提供側システム検証装置２２内の、ブロック模擬機構の動作について述べる。これらは、論理シミュレータ４４、エミュレータ４５に共通する動作である。
【００８８】
本機構内のデータ受け渡しの形態を図７に示す。内容は、実施例１で説明したものと同じである。
【００８９】
図８は、本機構の動作フローを示したものである。下記に動作フローを説明する。
【００９０】
ステップ１３０：ユーザ認証機構８を用いて、ユーザの認証を行う。通信回線２１を通じての本検証システム２２の利用者、つまり設計資産の提供を受けて構築するシステム設計者の判別を行う。ユーザを識別するだけで任意のユーザの使用を許可することも、事前に登録されたユーザとして認証された場合のみ使用を許可することもできる。また、この認証段階で、本システム検証装置が持つ複数のブロック模擬機構（図２の４４、４５、４２に相当する）のうち、どの機構を使用するかを決定する。
【００９１】
ステップ１３１：システムの初期化を行う。動作を模擬するブロックを初期化し、内部状態及び入力ベクタの初期状態を決定する。また、時間ステップを表す変数ｎを０に初期化する。
【００９２】
ステップ１３２：時刻ｎの入力ベクタと内部状態から、時刻ｎ＋１の時点での、内部状態と出力ベクタを求める処理を開始する。
【００９３】
ステップ１３３：通信回線２１を介して利用者側システム検証装置から、検証の終了のシグナルを受信したかを確認する。検証終了の場合、ステップ１３８へ移り、そうでない場合はステップ１３４に進む。
【００９４】
ステップ１３４：時刻ｎでの提供を受けるブロックへの入力ベクタを、通信回線２１を通じて、システム設計側の検証システム３から受信し、記録する。受信した入力ベクタは、ブロックの模擬に用いると共に、ブロックの利用事例として記録し、ブロックの再設計や後継バージョンの設計時の仕様検討時に参照する。
【００９５】
ステップ１３５：受信した提供を受けるブロックへの入力ベクタが、正当なものかをプロトコルチェッカ２０によりチェックする。もし違反が見つかれば、該当する入力ベクタの送信者へ違反の内容を返信する。
【００９６】
ステップ１３６：受信した時刻ｎでの提供を受けるブロックへの入力ベクタと、時刻ｎでの内部状態とを用い、時刻ｎ＋１での出力ベクタと内部状態を、ブロック模擬機構により求める。複数あるブロック模擬機構（４４、４５、４２）のうちどれを使用するかは、ステップ１３０での決定結果に基づく。
【００９７】
ステップ１３７：時刻を表す変数ｎを１増加させ、ステップ１３３に処理を戻す。
【００９８】
ステップ１３８：検証を終了する。どの程度の時間、ブロック模擬機構を使用したかの指標として、変数ｎを記録する。
【００９９】
ステップ１３９：課金を行う。ステップ１３８で記録したｎと、どの模擬機構を利用したかにより、ユーザに請求する利用料金を決定する。
（３）            実施例３
本発明のシステム検証装置のさらに他の実施例を説明する。
【０１００】
図９は、ＬＳＩの設計工程を示したものである。ＬＳＩの設計は、まずどのようなＬＳＩを作成するかを仕様検討１５０の段階で決定し、その後仕様に合わせた設計１５１を行い、設計が仕様通りに正しく行われたかを検証工程１５２で確認した後に、製造１５３を行う。
【０１０１】
ここで、仕様検討の結果、他社から設計資産の提供を受け入れるブロックがある場合、検証の工程１５２で、実施例１、実施例２のシステム検証装置を用いる。
【０１０２】
【発明の効果】
本発明を用いることにより、検証モデル自身を設計者に公開せず、検証モデルへ送信される入力ベクタに対する出力ベクタのみを返送することにより、モデルの開示による秘密情報の漏洩の問題を解決でき、検証モデルの仕様の変更や、バグによる修正時に、検証モデル提供者が持つ検証システム内のモデルの修正のみを行うことにより、検証モデルの使用者、つまりシステム設計者に負担をかけずに変更を速やかに行うことができる。
【０１０３】
さらに本発明を用いることにより、検証モデルの提供者が、自社の検証システム内にある検証モデルの使用状況を記録することにより、提供する設計資産がどのように使用されるかを把握し、その後に設計するブロックへの要求分析に使用することができ、検証モデルの提供者が、どれだけ検証モデルを使用しているかを検証モデルの利用者ごとに計算し記録することにより、検証モデルの使用量に応じた課金を行うことができる。
【図面の簡単な説明】
【図１】通信回線を利用したシステム検証装置の概念図である。
【図２】通信回線を利用したシステム検証装置の具体例を示す図である。
【図３】ＬＳＩの入出力を示す図である。
【図４】通信回線を利用したシステム検証装置（システム設計側）の動作フローを示す図である。
【図５】通信回線を利用したシステム検証装置（システム設計側）のデータフローを示す図である。
【図６】通信回線を利用したシステム検証装置（設計資産提供側）のデータフローを示す図である。
【図７】通信回線を利用したシステム検証装置（システム設計側及び設計資産提供側）間でのデータフローを示す図である。
【図８】通信回線を利用したシステム検証装置（設計資産提供側）の動作フローを示す図である。
【図９】ＬＳＩの設計・製造フローを示す図である。
【符号の説明】
２…設計するシステム、４…新規ブロックＡ、５…新規ブロックＢ、６…新規ブロックＣ、７…提供を受けるブロックＤ、３…システム設計側のシステム検証装置、２２…設計資産提供側のシステム検証装置、５４…入力ピン、５５…出力ピン、４４、４３…論理シミュレータ、３５…入力ベクタ、３６…出力ベクタ、３４…時刻、３２…利用者ＩＤ、３３…利用ブロックＩＤ、４２…実ＬＳＩ、１３…課金機構、５８…入力ベクタ列、５９…出力ベクタ列、５０…システム、２１…通信回線、８…ユーザ認証機構、３９…暗号・復号機構。
【図１】
0004118501.tif 000002
【図２】
0004118501.tif 000003
【図３】
0004118501.tif 000004
【図４】
0004118501.tif 000005
【図５】
0004118501.tif 000006
【図６】
0004118501.tif 000007
【図７】
0004118501.tif 000008
【図８】
0004118501.tif 000009
【図９】
0004118501.tif 000010