(57)【特許請求の範囲】
【請求項１】
集積回路装置を設計するために必要なデータを格納する複数のＶＣ（バーチャル・コア）クラスタを、各ＶＣクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化して備え、所定の階層の設計情報を他の階層に展開するとともに、
設計対象の集積回路装置及び該集積回路装置との間で信号を授受する他の集積回路装置について、上記ＶＣクラスタの階層化された各層に応じた同数の層に階層化され、上記各ＶＣを組み合わせて設計対象の集積回路装置を構築したときのシステムの検証を行なうために必要なデータを格納するためのテストクラスタを備え、
テストクラスタを用いた前記設計対象の集積回路装置の検査手段を備えている設計用データベースを用いた集積回路装置の設計方法であって、
前記検査手段が、上記設計対象の集積回路装置のＶＣクラスタの複数の層のうち１つの層における検証を行なう際には、上記他の集積回路装置のテストクラスタの複数の層のうち上記１つの層と共通の階層にある層との間で信号の授受を行なうステップを含むことを特徴とする集積回路装置の設計方法。
【請求項２】
請求項１記載の集積回路装置の設計方法において、
上記テストクラスタは、テストベンチ，テストシナリオ，タスク及びモデルのうち少なくともいずれか１つを含むことを特徴とする集積回路装置の設計方法。
【請求項３】
請求項１又は請求項２記載の集積回路装置の設計方法において、
前記検査手段が、上記複数の層のうちある層のＶＣクラスタからその直下の層のＶＣクラスタ及びテストクラスタへの詳細化を行なう場合には、ＶＣクラスタ及びテストクラスタにパラメータを与えるとともに、上記各テストクラスタの上記直下の層におけるデータを用いることを特徴とする集積回路装置の設計方法。
【請求項４】
請求項３記載の集積回路装置の設計方法において、
前記検査手段が、上記詳細化を行なう場合には、上記直下の層のＶＣクラスタ及びテストクラスタを上記設計用データベースからテーブルによって選択することを特徴とする集積回路装置の設計方法。
【請求項５】
請求項１記載の集積回路装置の設計方法において、
前記検査手段が、上記設計対象の集積回路装置における上記テストクラスタのある層のデータと、上記他の集積回路装置のテストクラスタの複数の層のうちのいずれかの層のデータとを用いて、上記設計対象の集積回路装置におけるテストクラスタの上記ある層の直下の層のデータを生成することを特徴とする集積回路装置の設計方法。
【請求項６】
請求項５記載の集積回路装置の設計方法において、
前記検査手段が、上記設計対象の集積回路装置におけるテストクラスタの上記直下の層のデータに加えて検証の手順に関する記述を用いることにより、上記設計対象の集積回路装置におけるテストクラスタの上記直下の層のデータと検証の手順に関する記述とを生成することを特徴とする集積回路装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路装置の設計に用いられるデータベース及びそれを利用した設計方法に係り、特に、システムオンチップ化に対応するための設計技術に関するものである。
【０００２】
【従来の技術】
従来より、電子機器内の半導体装置は、例えばメモリ，プロセッサなどの種類ごとの個別のＬＳＩとして半導体チップ上に形成された後、各チップをプリント配線基板などの母基板上に実装することにより製造されてきた。
【０００３】
ところが、最近、電子機器のより広範な利用を図るべく、電子機器に用いられる半導体装置は小型化，軽量化，省電力化及びコストの削減を要求されており、特に、デジタル情報家電分野はその傾向が強い。そして、このような電子機器産業界の要請に応じて、半導体産業はその重心をメモリからシステムＬＳＩに移行させることを余儀なくされている。
【０００４】
かかるシステムＬＳＩは、具体的には、メモリや各種の論理回路を１つのチップ上に設けることにより実現される。システムオンチップ化のためには、異なる構造を有するトランジスタ等の素子を共通の基板上に形成するためのプロセス上の技術が必要であることはいうまでもないが、設計技術においても大きな変革が要求される。
【０００５】
そこで、このようなシステムオンチップ化に対応した設計技術として、ある機能を実現する多くのセルからなる１つのブロック（例えば機能ブロックと呼ばれるもの）を設計するためのデータを予め用意しておいて、このデータを利用して、各ブロックを組み合わせた所望のシステムＬＳＩを設計することが提案されている。その場合、各機能ブロックごとに機能を実現するための構造が定められているので、半導体装置全体の設計においては、各機能ブロック間の配線や周辺回路の設計を行なうだけで済む。このようにして、設計効率の大幅な向上を図ろうとするものである。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の設計手法では、論理設計，レイアウト設計などの下位側の設計において設計されたブロックのうち何を利用し、それらをどのように配置，配線するなどの設計を行なうだけなので、各ブロック内の一部の要素のみを利用するなど、ブロックをフレキシブルに活用することができない。そのために、システムＬＳＩに対する小型化などの多彩な要求を十分満たすことができないおそれがある。
【０００７】
本発明は、上記従来の設計手法の問題点に鑑み、上記従来のようなブロックを用いた設計手法に変わる新たな設計システムを構築することを目的として成されたものであり、特に、システム検証のために利用可能なデータをフレキシブルに利用しうる状態で格納した集積回路装置の設計用データベース及びこれを利用した集積回路装置の設計方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のＶＣ（バーチャル・コア）クラスタを、各ＶＣクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化して備え、所定の階層の設計情報を他の階層に展開するとともに、
設計対象の集積回路装置及び該集積回路装置との間で信号を授受する他の集積回路装置について、上記ＶＣクラスタの階層化された各層に応じた同数の層に階層化され、上記各ＶＣを組み合わせて設計対象の集積回路装置を構築したときのシステムの検証を行なうために必要なデータを格納するためのテストクラスタを備え、
テストクラスタを用いた前記設計対象の集積回路装置の検査手段を備えている設計用データベースを用いた集積回路装置の設計方法であって、
前記検査手段が、上記設計対象の集積回路装置のＶＣクラスタの複数の層のうち１つの層における検証を行なう際には、上記他の集積回路装置のテストクラスタの複数の層のうち上記１つの層と共通の階層にある層との間で信号の授受を行なうステップを含んでいる。
【０００９】
この方法により、設計対象の集積回路装置内だけでなく、周辺の機器との適合性を確認しながらシステム全体の検証を行なうことができ、さらに、以下のような機能を付加することができる。
【００１０】
上記テストクラスタは、テストベンチ，テストシナリオ，タスク及びモデルのうち少なくともいずれか１つを含んでいることが好ましい。
【００１１】
前記検査手段が、上記複数の層のうちある層のＶＣクラスタからその直下の層のＶＣクラスタ及びテストクラスタへの詳細化を行なう場合には、ＶＣクラスタ及びテストクラスタにパラメータを与えるとともに、上記各テストクラスタの上記直下の層におけるデータを用いることができる。
【００１２】
その場合、前記検査手段が、上記直下の層のＶＣクラスタ及びテストクラスタを上記設計用データベースからテーブルによって選択することができる。
【００１３】
前記検査手段が、上記設計対象の集積回路装置における上記テストクラスタのある層のデータと、上記他の集積回路装置のテストクラスタの複数の層のうちのいずれかの層のデータとを用いて、上記設計対象の集積回路装置におけるテストクラスタの上記ある層の直下の層のデータを生成することもできる。
【００１４】
前記検査手段が、上記設計対象の集積回路装置におけるテストクラスタの上記直下の層のデータに加えて検証の手順に関する記述を用いることにより、上記設計対象の集積回路装置におけるテストクラスタの上記直下の層のデータと検証の手順に関する記述とを生成することができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について、ＶＣ，ＶＣＤＳ，ＶＣＤＢ等の概念の定義と、ＶＣＤＳの概略構成と、各部の詳細な内容とに分けて説明する。
【００１６】
［ＶＣ，ＶＣＤＳ，ＶＣＤＢの概念］
まず、本発明におけるＶＣ及びＶＣＤＳの概念について説明する。
【００１７】
本発明におけるＶＣ（バーチャル・コア）とは、ＩＰ（機能ブロック）としばしば同義に使用されるバーチャルコンポーネントとしての”ＶＣ”とは異なる概念であって、１つのまとまったブロックで構成されるシステムＬＳＩの設計を対象としており、その中でも、再利用が可能なハードウェア，ソフトウェアを含むデータを指すものとする。そして、ＶＣＤＳ（バーチャル・コア・デザイン・システム）とは、このＶＣを利用してシステムＬＳＩのハード，ソフトを最適化するためのシステム全体を指すものとする。また、ＶＣＤＢ（バーチャル・コア・データベース）とは、ＶＣを利用した設計のために用いられるデータベースを指すものとする。
【００１８】
［ＶＣＤＳの概略構成］
図１は、本発明の実施形態に係るシステムＬＳＩ設計のためのデザインシステム（ＶＣＤＳ）の構成を概念的に示す図である。
【００１９】
図１に示すように、本実施形態に係るデザインシステムは、システムの設計のためのデータの格納層であるＶＣＤＢ１００（ＶＣデータベース）と、ＶＣＤＢ１００の最適化などを行うための制御システムであるＶＣＤＢＭＳ２００（ＶＣＤＢマネージメントシステム）とにより構成されている。
【００２０】
ＶＣＤＢ１００には、ＶＣの集合体として捉えられるＶＣクラスタ３００と、このＶＣクラスタ３００中のＶＣの構造を決定するためのアーキテクチャ情報４０１と、システム検証データ４０２とが含まれている。
【００２１】
ＶＣクラスタ３００には、仕様で記述されるデータを格納するバーチャル・コアである仕様層（仕様ＶＣ３０１）と、動作で記述されるデータを格納する動作層（動作ＶＣ３０２）と、ＲＴレベル（レジスター・トランスファレベル）で記述されるデータを格納するバーチャル・コアである機能層（ＲＴ−ＶＣ３０３）とからなる本体部がある。また、ＶＣクラスタ３００には、パラメタライズされたテストパターンを有すると共に回路のシミュレーションを行なうためのテストクラスタ３０４と、シミュレーションなどを行なって各ＶＣの性能を評価するための性能情報３０５とが存在する。
【００２２】
性能情報３０５には、例えば面積，スピードなどのパラメータである性能指標が組み込まれており、例えばＲＴレベルでは、ある値をかなり正確に算出することができる。また、実際にあるＲＴレベルでハードを実現したことがあれば、その結果も性能指標に組み込んでおくことができる。
【００２３】
また、ＶＣクラスタ３００内には、各々ＶＣクラスタ本体の１つ又は複数のＶＣにリンクして、以下の要素が組み込まれている。まず、仕様ＶＣ３０１（仕様層），動作ＶＣ３０２（動作層），ＲＴ−ＶＣ３０３（機能層）にリンクした動作回数を解析するモデル３１０が組み込まれている。また、ＲＴ−ＶＣ３０３（機能層）にリンクした目的別機能検証モデル３２０が組み込まれている。さらに、ＲＴ−ＶＣ３０３（機能層）にリンクした，スキャン，ＢＩＳＴなどＶＣにどのテストを行なうことができるかなどの情報に関する故障検査手法情報３３０が組み込まれている。
【００２４】
アーキテクチャ情報４０１には、実際にそれぞれのＶＣをどう使用するかということの情報が含まれている。例えばあるタスクをソフトウェアで実現する場合には、「それを実行するプロセッサはなにを使用するのか」、「バス（インターフェイス）はなにを使用するのか」、「電源，クロック供給方式はどうするか」、「論理合成する際のテスト方式はなにを用いるか」、「命名規則の制約（ツールの制約や重複防止のための規則）はどうか」など、そのシステムＬＳＩに必要な種々の情報が含まれている。
【００２５】
システム検証データベース４０２は、ＶＣを組み合わせた１つのＬＳＩを構成する場合に、それを機能検証するためのデータベースとなるものである。このシステム検証データ４０２には、共用テストクラスタ４１０と、周辺モデルクラスタ４２０と、ＶＣインターフェースモデルとが組み込まれている。
【００２６】
共用テストクラスタ４１０やＶＣクラスタ３００内のテストクラスタ３０４は、テストベンチ，テストシナリオ，タスク，モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、ＶＣを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル，ＶＣモデルあるいは周辺シミュレーションモデルへのリンクをいう。これらのテストクラスタの具体的な構成例については後述する。
【００２７】
周辺モデルクラスタ４２０は、システム検証を行なうときに使用するＶＣの周辺のモデルであって、例えば外部メディア，外部メモリ，通信用ＬＳＩにおける伝送路，センサーなどを記述したモデルなどがある。ＶＣだけでなくこのような周辺モデルを組み合わせることにより、全体のシステム検証を円滑に行なうことが可能になる。ＶＣインターフェースモデルは、システムシミュレーションを行なう際に各ＶＣを係合させてシミュレーションを行なうためのつなぎのモデルとなる部分である。
【００２８】
また、ＶＣＤＢＭＳ２００は、ＶＣＤＢ１００に対する登録や、ＶＣＤＢ１００の外方からの検索，インスタンスの生成，その他下記に説明する各種の処理を行なう。登録には、新たなコアとして登録するほか、既存ＶＣを参照して新たなＶＣを生成し、そのＶＣの機能を改変したり、ＶＣ内のデータの追加登録を行なったり，差分管理情報を格納したりすることが含まれる。検索とは、どのレベルのＶＣでどういう種類の情報が欲しいかということの検索である。
【００２９】
そして、ＶＣＤＢＭＳ２００内には、テストシナリオ生成，目的別検証用モデル（シミュレーションモデル）の生成，システム検証モデル（システムシミュレーションモデル）の生成などを行なう機能検証支援手段５００と、動作回数解析及び回路最適化手段６００と、ＶＣインターフェース合成手段７００と、ＶＣ故障検査方式の選択・最適化や故障検査スケジュールの立案を行なうための故障検査戦略最適化手段８００とが設けられている。
【００３０】
図２は、本実施形態のＶＣＤＳにおける設計の基本的な流れを示す図である。同図に示すように、仕様レベル，動作レベル及びＲＴレベルのいずれにおいても、記述，検証，評価，合成の手順によりＶＣの生成，改変などが行なわれる。例えば、仕様レベルにおいては、仕様ＶＣであるＳ１，Ｓ２が選び出されたり、新たなＶＣであるＳ３が生成されたりする。その際、図中矢印に示す方向に沿ってデータが流れて、データの記述，検証，評価が行なわれ、評価はフィードバックされる。動作レベルでは、各仕様ＶＣであるＳ１，Ｓ２，Ｓ３に対応した動作ＶＣであるＤ１，Ｄ２，Ｄ３が生成されるが、各ＶＣはハードウェア，ソフトウェアに機能分割される。また、ＲＴレベルでは、各動作ＶＣであるＤ１，Ｄ２，Ｄ３に対応するＲＴ−ＶＣであるＲ１，Ｒ２，Ｒ３が生成されるとともに、これらを接続するバス，ＣＰＵ，メモリ等が生成される。つまり、より具体化されることになる。
【００３１】
各々のタスクは、外部入出力部及び仕様ＶＣと状態遷移などで記述されている。仕様ＶＣは、状態遷移，論理，真理値表などを表現できる言語あるいは図形で記述されている。
【００３２】
このように、各階層にＶＣを配置してこれらを総合的に管理することにより、従来の機能ブロックとは異なり、フレキシブルに利用できるデータベースの提供を図ることができる。
【００３３】
図３は、図１に示すシステムの機能部分を抜き出して示すブロック回路図である。同図において、ＶＣクラスタを格納しているデータベース格納層に情報を入力するための入力部と、データベース格納層からの出力情報を受ける出力部と、データベース格納層，入力部及び出力部を制御する制御部とを有する。ＶＣクラスタには、仕様ＶＣを生成する仕様層と動作ＶＣを生成する動作層とを含む仕様動作層と、ＲＴ−ＶＣを生成するＲＴ層という機能が存在する。このうち、仕様層と動作層とは必ずしも明確に区分できない場合があるので、仕様動作層と一括して示されている。ここで、動作とは１つの仕様に対してソフトウェア，ハードウェアの割り当てを定めたものであって、一般的には１つの仕様に対して複数の動作がある。ＲＴ（レジスター・トランスファ）とは、動作に対してハードウェア的に実現できるものであって、一般的には１つの動作に対して、重視するパラメータの相違などに応じた何種類かの実現方法がある。すなわち、後に詳しく説明するように、１つの仕様ＶＣに対して複数の動作ＶＣを、１つの動作ＶＣに対して複数のＲＴ−ＶＣをそれぞれ階層的に有しているのが一般的である。ただし、仕様と動作とはいずれも機能的な概念を表すものともいえるので、その区別が困難な場合もあり、その場合には、仕様・動作ＶＣとしてデータベースを持っておくことも可能である。
【００３４】
［ＶＣクラスタの構成］
次に、図１に示すＶＣＤＳの各部の詳細な構造や機能などについて、それぞれ各部に分けて説明する。
【００３５】
（ＶＣクラスタ本体部の構成）
図４は、ＶＣクラスタ本体部の機能を詳細に説明する図である。同図に示すように、仕様層においてある機能を表現する仕様ＶＣがあると、その下流側の動作層においてはそれを実現するための複数の動作ＶＣ１，動作ＶＣ２が一般的には存在し、さらに下流側のＲＴ層においては各動作ＶＣ１，動作ＶＣ２を実現するためのそれぞれ複数のＲＴ−ＶＣ１ａ，ＲＴ−ＶＣ１ｂ，ＲＴ−ＶＣ２ａ，ＲＴ−ＶＣ２ｂが一般的には存在する。例えば、”乗算”という１つの仕様に対し、”乗算”を実現するための動作は複数の足し算とシフトなどの動作の組み合わせからなるので、複数通りの動作が存在するのが一般的である。もちろん、下流側に１つのＶＣしか存在しないこともあり得る。図４に示す例では、例えば”乗算”という１つの仕様ＶＣに対し、遅延を重視した実現方法が動作層ＶＣ１であり、（占有）面積を重視した実現方法が動作層ＶＣ２である。そして、各層ごとにインスタンスＶＣを生成して付加する機能が備わっており、図４には、例としてＲＴ−ＶＣ１ａ，ＲＴ−ＶＣ１ｂ，ＲＴ−ＶＣ２ａ，ＲＴ−ＶＣ２ｂにおいて、それぞれ１又は複数のインスタンスＶＣを生成する機能が表わされている。
【００３６】
図５は、本実施形態における各ＶＣの構造を示す図である。仕様層，動作層，ＲＴ層などの各階層のＶＣには、後述する設計データ（図）と、テストベクタなどの検証データと、面積，遅延（，消費電力）などの性能情報と、対象ＶＣの上位概念を持つ上位層ＶＣ，下位概念を持つ下位層ＶＣなどに関するリンク情報となる上下層（親子）情報と、ＶＣ作成時に参照した同一層のＶＣや参照されたＶＣなどに関する派生情報と、同一層（動作層など）に属するＶＣ間で共有する情報があればその共有情報と、追加や修正があった場合にはその改変内容と、例えばパラレル又はシリアル又はＰＣＩパスなどのバスを生成するためのインターフェイス情報とが備えられている。
【００３７】
図６は、各層のＶＣのデータ及び性能情報の関係を示す図であって、同図の右側には、（占有）面積と遅延とを性能評価のパラメータとして採用したときの各層の性能情報の例が示されているが、同図の左側には、後述する図７〜図９に例示するような各層の設計データや検証データが存在するが、図６においては説明を簡単にするために図示を省略する。以下、各層の内容について説明する。
【００３８】
−仕様層−
仕様層は機能とでもいうべき基本的な入出力関係を規定する部分であるので、仕様層内の設計データには、入出力信号の種別や、テキストベースのデータ，プロトコルなどの規格、ある規格に合わせるための目標性能などの性能、ドキュメントとして与えられている機能仕様がある。仕様検証モデルは、ＦＳＭ（状態遷移），ＣＦＧ（コントロールフローグラフ），ＤＦＧ（データフローグラフ）などで表現されている仕様記述（言語又は図）である。具体的なフォーマットの例としては、例えばＶＨＤＬ，ＳＤＬ，ＬＯＴＯＳ，Ｃ／Ｃ＋＋などというものである。図７は、ＳＤＬというフォーマットで記述されたある設計データの例である。
【００３９】
−動作層−
動作層は、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とに分かれている。アーキテクチャ情報は、対象プロセッサ名、ＯＳ名、ハードウェア，ソフトウェアの通信方法などを含んでいる。例えば、プロセッサとＯＳとシミュレーションとを組み合わせる場合には、使用するプロセッサはＳｐａｒｃ，Ｐｅｎｔｉｕｍなどで、使用するＯＳはＵＮＩＸ，Ｗｉｎｄｏｗｓなどで、使用するハードウェア，ソフトウェアの通信方法はＩＰＣ，ＰＬＩなどであって、これらの適当な組み合わせを記述すると共に、必要な前提条件などを記述しておく。ただし、ＣＰＵはなくてもよい場合がある。また、ハードウェア部には、仕様層に対して具体化した機能がドキュメントとして残されており、具体的には、仕様になかった詳細な動作モードが記述されている。図８は、ハードウェア部に格納されているデータの例を示す図である。ＶｅｒｉｌｏｇＨＤＬ，ＶＨＤＬなどのハードウェア記述言語で記述されている。ソフトウェア部の内容は、ソースコード（例えばＣ／Ｃ＋＋）により記述される。図９は、ソフトウェア部に格納されたデータの例を示す図である。
【００４０】
図１０は、動作層の検証の際に使用される環境を示す図である。ハードウェア部（ＨＷ）と、ソフトウェア部（ＳＷ）と、ＣＰＵが存在する場合にはＣＰＵと、これらを接続する通信手段（Ｃｏｍｍｕｎｉｃａｔｉｏｎ）とが存在している。場合によっては、通信手段とソフトウェア部との間にＯＳが介在していることもある。つまり、この状態では、バスの接続は未定である。
【００４１】
−ＲＴ層−
次に、ＲＴ層も基本的には、上述の動作層と同様に、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とを備えている。ただし、図１１に示すように、ＲＴ層においては、ハードウェア部（ＨＷ）と、ＣＰＵと、メモリ（ＭＥＭ）と、ソフトウェア部（ＳＷ），ＯＳとを接続するバスが形成されている。つまり、通信方法についても、どのように接続するのかというレベルまで具体化され、ハードウェアに確実に具現化できる，つまり論理合成できるものになっている。そして、ハードウェア部及びソフトウェア部の双方に、メタ層とインスタンス層とが存在する。ただし、インスタンス層とは、変数をパラメータとして記述されているメタ層の変数を定数で置き換えたものである。図１２は、ＲＴ層におけるメタとインスタンスとの例を示す図である。
【００４２】
ＲＴ層内のアーキテクチャ情報としては、以下のような情報がある。
【００４３】
まず、プロセッサ（ＣＰＵ）情報として、動作層及びＲＴ層で使用する協調検証モデルがある。これはプロセッサごとに存在する。
【００４４】
次に、バス（ＩＦ）情報として、バスの信号の種別や幅などの情報や、バスのプロトコル（タイミング）がある。これらは、プロセッサを各ハードウェアを接続するための内容が含まれている。
【００４５】
テスト方式に関する情報として、テスト方式と必要な機能・仕様（専用端子），付加回路）がある。例えばＦｕｌｌ  Ｓｃａｎの方式であれば、Ｓｉｎ（スキャンイン），Ｓｏｕｔ（スキャンアウト），Ｓｃｌｋ（スキャンクロック），ＴＥの信号などの情報が必要である。バウンダリースキャンテスト方式の１つであるＪＴＡＧを採用するのであれば、制御端子やＴＡＰコントローラ回路などの情報が必要である。外部から直接それぞれのコアをテストする分離テストを行なうのであれば、テストモード端子，セレクタ回路などの情報が必要である。命名規則としては、例えば「モジュール名は英数字の小文字１６字以下であること」などいう，生成したインスタンスＶＣを処理するＥＤＡツールごとの制約や、「モジュール名の先頭に、”Ａ９８１００５  Ｎを付加すること」などという，同じ名称で異なるインスタンスＶＣを生成しないための制約などがある。
【００４６】
−各層における性能情報−
仕様層において、図４に示す仕様ＶＣがある場合、この仕様ＶＣの性能を面積と遅延で表すと図６の右上部に示す範囲（ハッチング部）である。そして、この仕様ＶＣに対して、図４に示すような遅延を重視した実現方法である動作ＶＣ１と、面積を重視した実現方法である動作ＶＣ２とがあった。図６の右中央部に示すように、動作ＶＣ１，動作ＶＣ２の範囲は、それぞれハッチングが施された遅延の小さい領域及び面積の小さい領域である。さらに、ＲＴ層には、図４に示すように、動作ＶＣ１に対するＲＴ−ＶＣ１ａ，ＲＴ−ＶＣ１ｂと、動作ＶＣ２に対するＲＴ−ＶＣ２ａ及びＲＴ−ＶＣ２ｂとがあった。図６の右下部に示すように、各ＶＣの面積及び遅延は具体的な曲線状のある点として定まる。
【００４７】
ここで、性能情報には多数のパラメータがあることから、各層の性能情報は実際には図６のような平面座標系ではなく、多次元座標系で表されることになる。したがって、性能情報は、ＲＴ層においては多次元空間内のある範囲又は点として、仕様層又は動作層においては多次元空間内のある範囲として、それぞれ表されることになる。
【００４８】
（ＶＣクラスタの外部の構成）
−動作回数解析モデル−
図１３は、図１中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。ブロック内のネット長に比べてブロック間のネット長は長くなるので、動作回数の多い配線がブロック間にある場合にはその配線をブロック内に組み込む。これにより、配線容量が低減し消費電力が削減される。また、例えば回路を並列化して回路動作を分散させることにより、モジュール内の動作回数を低減する。入力情報を交換しても出力結果が異ならない複数のピンがある場合には、ピンに接続するネットを交換することにより内部動作回数を低減でき、ネットの信号の遷移を均等化させることにより回路の劣化を抑制することができる。さらに、フロアプラン時には合計の長さしか考慮されていなかったネット配線に関して、動作回数を考慮したネット配線を行なうことにより、遅延制約に反しない範囲で動作回数の低減を図ることができる。そして、このような処理を行なうためのモデルをＶＣＤＢ１００内に組み込むことにより、低消費電力で信頼性の高いＬＳＩを設計することが可能になる。
【００４９】
−目的別検証モデル−
図１４は、目的別機能検証モデル３２０の内容の例を示す図である。同図に示すように、ＶＣクラスタ本体部のＲＴ−ＶＣ３０３には、実際の回路として表されるようなＲＴレベルの設計記述であるＲＴ−ＶＣ１，ＲＴ−ＶＣ２，…が組み込まれている。これに加えて、機能検証システムにおいても、ある特定の目的に応じて検証ができるような検証モデル（シミュレーションモデル）である目的別機能検証モデル３２０が、各ＲＴ−ＶＣ１，ＲＴ−ＶＣ２，…毎に組み込まれている。１つの目的別機能検証モデル３２０には、例えば、同期化モデル３２１、記述最適化モデル３２２、動作チェッカー組込モデル３２４などが並列に配設されている。
【００５０】
同期化モデル３２１は、通常単位時間で動作するようなモデルに対し、同期クロック信号のサイクル毎にしか検証しないというものである。これは、実動作ほどの正確さが不要な検証においては、細かい動作や遅延などを省略してシミュレーションの高速化を図ろうとするものである。
【００５１】
記述最適化モデル３２２は、以下の目的で設けられている。実際に回路化するには論理合成できるような記述が必要であるが、そのような記述を用いて検証用のシミュレーションを行なうと遅くなりすぎる場合がある。そこで、記述をシミュレーション向きに変換して、回路合成上はよくないがシミュレーション上は最適になるようなモデル高速化するために記述最適化モデル３２２と、この記述最適化モデル３２２とＶＣクラスタ本体部のＲＴ−ＶＣ中の本来の回路記述との対応付けを行なうためのリファレンス３２３とを備えている。
【００５２】
動作チェッカー組込みモデル３２４は、後述するように、ＶＣの使用上あるＶＣはどのような測り方をすればよいかを示すモデルである。例えば、入力信号にはある信号パターンを入れてはいけないとか、内部状態においてもあるシーケンスで内部状態が遷移してはいけないなどという禁止事項をシミュレーションモデルに組み込んであり、そのような禁止事項がシミュレーションの実行中に生じた場合には、エラー情報を返してくるような仕組みが組み込んであるモデルである。この動作チェッカー組込みモデルには、エラーがあったときエラーの意味を解析するためのチェック結果解析情報３２５が付設されている。つまり、ＶＣクラスタ本体部の各ＶＣに入っている実際の回路に関する設計データそのものを用いて検証を行なうのではなく、目的に応じた最適な検証を行なうためのモデルを備えている。
【００５３】
図１５は、目的別機能検証モデル３２０内の各モデルのうち特に同期化モデル３２１の使用方法を示す図である。本実施形態における同期化モデル３２１は、上述のようにクロックのサイクルだけに同期して検証を行なわせるためのモデルである。しかし、ＶＣクラスタ本体部に同期化モデル３２１があるというだけでは、高速の検証を行なわせるための同期化が困難であることが多い。そこで、共用テストクラスタ４１０中の各ＲＴ−ＶＣや周辺モデルクラスタ４２０にも、ＶＣクラスタ本体部中の同期化モデルと同じ精度を有する同期化テストクラスタ４１１，同期化モデル４２１がそれぞれ組み込まれている。これらの同期化モデルの作り方については、後述する。
【００５４】
−システム検証データベース−
図１６は、システム検証用データベース内において共用テストクラスタ４１０，周辺モデルクラスタ４２０を用いたテストの流れ（テストシナリオ）を示す図である。同図に示すように、共用テストクラスタ４１０は、アプリケーション層４１１（仕様レベル）と、アーキテクチャ層４１２（動作レベル）と、機能層４１３（機能レベル）とに階層化されている。周辺モデルクラスタ４２０は、アプリケーション層４２１（仕様レベル）と、アーキテクチャ層４２２（動作レベル）と、機能層４２３（ＲＴレベル）とに階層化されている。そして、システム検証データベース４０２には、共用テストクラスタ４１０と周辺モデルクラスタ４２０との間で、ＶＣクラスタ本体部の各ＶＣ３０１，３０２，３０３と共通の階層においてシミュレーションを行なうための仕様レベルシステム検証モデルと、動作レベルシステム検証モデルと、ＲＴレベルシステム検証モデルとが備えられている。
【００５５】
−故障検査戦略最適化手段−
図１７は、故障検査戦略最適化手段８００による故障検査戦略を最適化する方法を示すブロック図である。同図に示すように、設計要求がなされると、故障検査戦略最適化手段８００により、ＶＣＤＢ１００からＲＴ層のＶＣ（ＲＴ−ＶＣ）と、故障検査方式とが選択される。設計要求には、システムＬＳＩの要求仕様（面積，ピン数，テスト時間，優先制約重み情報など）や、ＶＣ情報がある。故障検査戦略最適化手段８００は、故障検査戦略知識ベースを参照して、各種のパラメータを考慮した最適化の演算を行ない、最適な故障検査戦略と、１チップ故障検査制御回路とを生成する。
【００５６】
ここで、上記ＶＣＤＢ１００には、複数の機能が同じでテスト手法が互いに異なる複数のＶＣクラスタが格納されている。また、ＶＣＤＢ１００には、ＶＣクラスタの１つについて、機能が同じでテストパターンが互いに異なる複数のテスト手法が格納されている。さらに、ＶＣＤＢ１００には、複数のテスト手法についてのテストコストに関連する情報が格納されており、例えば、集積回路装置の使用するピン数，テストパターン長，集積回路装置の面積，故障検出率，テスト時間，設計工数及び集積回路装置の歩留まりなどがある。また、ＶＣＤＢ１００内には、テスト制約に関連する情報も格納されており、例えば、ピンの状態，ダイナミック又はスタティックであることの制限及びテストパターンの分割に関する情報がある。
【００５７】
次に、テストコストを最小化するための対策について説明する。
【００５８】
例えば、テストコストを面積とテスト時間と設計工数の３つのパラメータによって評価するとする。この場合、総テストコストＣtotlは、面積コストＣsizeとテスト時間コストＣtimeと設計工数コストＣprocの和として表される。
【００５９】
Ｃtotl＝Ｃsize＋Ｃtime＋Ｃproc
ところが、上述のように禁止事項やトレードオフになる関係があるので、ユーザの重視度合いに応じて、面積コスト，テスト時間コスト，設計工数コストに対して、それぞれ重み付けα，β，γをつけることにより、制約条件を考慮したコストの評価を行なうことができる。
【００６０】
その結果、テストコストを最小化するための評価関数は、下記式で表されることになる。
【００６１】
Ｃtotl＝α・Ｃsize＋β・Ｃtime＋γ・Ｃproc
そして、上式に基づいてテストコストを最小化するためのテスト手法を選択することが可能になる。ただし、評価関数を構築するに際しては、上述の３つのパラメータだけでなく他のパラメータを組み込むことができる。
【００６２】
このような故障検査最適化手段８００を設けることにより、禁止されるテスト種類の組み合わせやトレードオフ関係にあるテスト種類を選択するという制約条件下において、テストコストを最小化することが可能になる。
【００６３】
−ＶＣ合成インターフェースモデル−
ＶＣインターフェースモデルとは、ＶＣクラスタのうち相異なる層（例えば仕様層とＲＴ層）のＶＣモデルを組み合わせ、ＶＣベースのシステムＬＳＩシステムシミュレーション（ミックスレベル）を行なうためのシミュレーションモデルである。
【００６４】
一般に、シミュレーションは、抽象度の高い層から順に，つまり仕様層，動作層，ＲＴ層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるＶＣにおいてはどのＲＴ−ＶＣを用いるかまで具体的に決まっているが、別のＶＣではまだ仕様ＶＣまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。ところが、共通の層でしかシミュレーションを行なうことができないと、システムＬＳＩのシミュレーションにおいて、仕様・動作層の設計を行なう段階で部分的にＲＴ層のＶＣを組み込んだシミュレーションや、ＲＴ層のＶＣにおけるシミュレーションで一部に仕様層のＶＣを組み込んだシミュレーションを容易に実施することができず、設計の効率化を図ることができない。
【００６５】
一般に、シミュレーションは抽象度の高い層から順に，つまり仕様層，動作層，ＲＴ層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるＶＣにおいてはどのＲＴ−ＶＣを用いるかまで具体的に決まっているが、別のＶＣではまだ仕様ＶＣまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。また、シミュレーションの際にＶＣによって求められる精度が異なる場合には、可能な限り抽象的なレベルでシミュレーションを行なったほうが高速化を図ることができる。
【００６６】
そこで、例えばアーキテクチャ層ＶＣインターフェースにより、ＶＣ−Ａ，Ｂ，ＣについてはＲＴレベルを、ＶＣ−Ｘについては動作レベルを、ＶＣ−Ｙについては仕様レベルを用いることにより、レベルの異なるモデルを組み合わせてシミュレーションを行なうことができる。ＶＣインターフェースモデルとは、このようにレベルの異なるモデルを組み合わせてシミュレーションを行なう際に用いられるつなぎのモデルである。ＶＣインターフェースモデルは、アプリケーション層やアーキテクチャ層から見ると、マイコン制御における状態遷移図のようなレベルのモデルである。
【００６７】
図５３は、ＶＣインターフェースモデルの構成を示すブロック図である。同図に示すように、ＶＣインターフェースモデルは、ＶＣクラスタの仕様層，動作層，ＲＴ層のデータをそれぞれ入力する仕様層入力部，動作層入力部，ＲＴ層入力部と、該各入力部からの入力データを出力先のデータ転送レートに応じて転送レートを変換する転送レート変換手段と、出力先のデータ精度に応じて各データの精度を変換するデータ精度変換手段と、出力先のプロトコルに応じて各データのプロトコルを変換するプロトコル変換手段と、これらの各変換手段で変換されたデータをＶＣクラスタの仕様層，動作層，ＲＴ層にそれぞれ出力する仕様層出力部，動作層出力部，ＲＴ層出力部とを備えている。例えば、仕様層の入出力はデータファイル形式，実数で取り扱われ、動作層の入出力は同期転送，整数で取り扱われ、ＲＴ層の入出力は同期転送，有限ビット列，同期信号，イネーブル信号制御で取り扱われる。
【００６８】
図５４は、ＶＣインターフェースモデルを組み込んだＶＣＤＢ１００を利用してシステムのシミュレーションを行なう際に（例えば機能検証支援手段５００により）生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。ＶＣＤＢ１００内には、ＶＣインターフェースモデルと、コントロールＶＣクラスタ，信号圧縮ＶＣクラスタ，メモリＶＣクラスタなどのＶＣクラスタとが組み込まれている。そして、機能検証支援手段５００により、システムシミュレーションモデルとして例えば以下の要素が生成される。例えばＶＣＤＢ１００内のコントローラＶＣクラスタの動作ＶＣを利用してコントローラ動作ＶＣが生成される。ＶＣＤＢ１００内の信号圧縮ＶＣクラスタの仕様ＶＣを利用して信号圧縮仕様ＶＣが生成される。ＶＣＤＢ１００内のメモリＶＣクラスタのＲＴ−ＶＣを利用してメモリＲＴ−ＶＣが生成される。そして、ＶＣＤＢ１００内のインターフェースＶＣモデルを利用して、システムシミュレーションモデル内に生成されたコントローラ動作ＶＣと信号圧縮仕様ＶＣという互いに異なる層の２つのＶＣ同士をつなぐための第１ＶＣインターフェースモデルが生成される。また、システムシミュレーションモデル内に生成されたコントローラ動作ＶＣ，信号圧縮仕様ＶＣ及びメモリＲＴ−ＶＣというそれぞれ異なる層の３つのＶＣ間をつなぐための第２ＶＣインターフェースが生成される。
【００６９】
図５５は、システムシミュレーションモデル内における第２ＶＣインターフェースモデルの役割を説明するためのブロック図である。上述のように、仕様層の入出力はデータファイル形式，実数で取り扱われ、動作層の入出力は同期転送，整数で取り扱われ、ＲＴ層の入出力は同期転送，有限ビット列，同期信号，イネーブル信号制御で取り扱われる。そして、第２ＶＣインターフェースモデルは、例えば信号圧縮仕様ＶＣとメモリＲＴ−ＶＣとの間をつなぐために、パラレル／シリアル転送変換，同期読み出し，有限ビット幅への丸め込みなどの機能を備えている。そして、第２ＶＣインターフェースモデルは、信号圧縮仕様ＶＣに対してはデータファイル，遅延時間０，実数でデータを授受する一方、メモリＲＴ−ＶＣに対しては有限ビット幅（例えば１６ビット幅）での同期転送，バスプロトコルありなどによってデータを授受するような構成となっている。
【００７０】
このようなＶＣインターフェースモデルを備えることにより、トップダウンにシステムＬＳＩを設計する際に、異なる層のＶＣモデルを組み合わせたシミュレーションモデルを容易かつ柔軟に構築することができ、設計の効率化を図ることができる。
【００７１】
［機能検証のための各種手段と生成されたモデル］
ここでは、図１に示すＶＣＤＢＭＳ２００内の各手段によるマネージメント方法と、その結果生成される検証のための各種モデルとについて説明する。生成されたモデルは、図１に示すＶＣＢＤ１００内のいずれかに組み込まれているのが原則であるが、必ずしもＶＣＢＤ１００内に組み込まれなくてもよい。
【００７２】
（機能検証支援手段）
−概略構成−
図１８は、機能検証支援手段５００の動作を説明するためのブロック図である。まず、どのような検証（シミュレーション）を行ないたいかについての検証要求（パラメータ）が入力される。すなわち、検証要求として、検証するのにどのＶＣを使用するのか、ＶＣのレベルはどの階層を使用するのか、同期モデルや記述最適化モデル，動作チェッカー組込みモデルなどのうちどのモデルを使用するのか（モデル指定）、どのようなテストシナリオを使用するのか、どのようなテストベンチを準備するのかというパラメータが入力される。機能検証支援手段５００は、このような検証要求に対応したＶＣクラスタに関する情報や、共用テストクラスタ，周辺モデルに関する情報などをＶＣＤＢ１００から取り出して、シミュレーションするためのテストベンチ，テストシナリオ，タスクや、シミュレーションモデル（目的別機能検証用モデル，システム検証モデルなど）を生成する。また、この生成したモデルをＶＣＤＢ１００に格納することも可能である。
【００７３】
図１９は、仕様レベル，動作レベル，機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。シミュレーション回路条件がデータベースに入力されると、すでに作成されたシミュレーション用回路を用いて、あるいは一部不足しているものがあれば新規に設計した回路を用いて、論理シミュレータによりシミュレーションを行なって、シミュレーション結果を出力する。
【００７４】
−同期化モデルの作成例−
図２０は、機能検証支援手段５００の一部である同期化モデル生成手段５１０によるモデル生成方法を示す図である。同期化モデル生成手段５１０は、使用する回路，メモリ，テストクラスタの指定及びそれらで定義されているパラメータの指定などに関するシミュレーション回路条件の入力に応じ、ＶＣＤＢ１００内のＲＴ−ＶＣ，メモリモデル，テストクラスタ（機能層）などに関するシミュレーションモデルの記述を参照して同期化モデルを生成する。同期化モデル生成手段５１０には、タイミング解析手段５１１と回路変更手段５１２とが含まれており、このタイミング解析手段５１１と回路変更手段５１２とにより、以下の手順で同期化モデルが生成され、ＲＴレベル回路とメモリモデルとテストクラスタ（機能層）とを含むシミュレーション用回路が生成される。
【００７５】
図２１は、ＶＣＤＢ１００内のテストクラスタ，ＲＴレベル回路，メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。テストクラスタからＲＴレベル回路に入力される信号ｔｂ−ｏｕｔは２２０ｎｓ後に出力“１”になり、４２０ｎｓ後に出力“０”になるものとする。テストクラスタから５０ｎｓ毎に反転するクロックｃｌｋが入力されるものとする。このとき、ＲＴレベル回路内において、信号ｔｂ−ｏｕｔを入力信号ｃｉｒ−ｉｎ１として受け、フリップフロップをベースとする同期回路を経て、メモリモデルにメモリ要求のための信号ｃｉｒ−ｏｕｔ１が出力される。また、メモリモデル内において、メモリ取り出し要求信号ｍｅｍ−ｉｎが入力されてからメモリ出力信号ｍｅｍ−ｏｕｔが出力されるまでの遅延時間が１２０ｎｓであるものとする。その後、ＲＴレベル回路において、信号ｍｅｍ−ｏｕｔを入力信号ｃｉｒ−ｉｎ２として受け、ラッチをベースとする非同期回路を経て、信号ｃｉｒ−ｏｕｔ２が出力される。そして、テストクラスタにおいて、信号ｃｉｒ−ｏｕｔを入力信号ｔｂ−ｉｎとして受ける。
【００７６】
図２２（ａ），（ｂ）は、それぞれ同期化モデル生成手段５１０によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル（機能レベルの）におけるタイミングチャートである。例えば、元のシミュレーションモデルにおけるｔｂ−ｏｕｔの立ち上がり，立ち下がりタイミングがそれぞれ２２０ｎｓ，４２０ｎｓである場合に、このタイミングをそれぞれクロックの半周期５０ｎｓの倍数である２００ｎｓ，４００ｓに修正する。また、元のシミュレーションモデルにおいてはメモリモデル内における遅延時間が１２０ｎｓであったのを、５０ｎｓの倍数である１００ｎｓに修正する。ただし、クロックのエッジを詳細に見ると微妙にずれていてもよい。
【００７７】
通常、設計される回路は複雑なタイミング制御によって動作する。その場合、従来のシミュレーションモデルでは、実動作におけるタイミングに沿ったシミュレーションモデルを作成する。しかし、機能検証のためのシミュレーションを行なう場合には、実動作とは異なり、細かい遅延時間などは無視してクロックの半周期長単位で処理しても実際上不都合を生じないことが多い。これによって、シミュレーションの高速化を図ることができる。
【００７８】
なお、この例では、シミュレーションのタイミングをクロックの半周期の倍数に同期させたが、クロックの１／４周期などクロックと同期する半周期以外の特定周期の倍数となるようにしてもよい。
【００７９】
−記述最適化モデルの作成例１−
図２３は、機能検証支援手段５００の一部である記述最適化モデル生成手段５２０Ａによるモデル生成方法を示す図である。記述最適化モデル生成手段５２０Ａは、使用する回路，共用テストクラスタの指定などに関するシミュレーション回路条件の入力に応じ、ＶＣＤＢ１００内のＲＴ−ＶＣ，共用テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段５２０Ａには、回路検索手段５２１と回路変更手段５２２とが含まれており、この回路検索手段５２１と回路変更手段５２２とにより、以下の手順で記述最適化モデルが生成され、ＲＴレベル回路とテストクラスタとを含むシミュレーション用回路が生成される。
【００８０】
図２４は、このときの具体的な処理の例を示す図である。まず、回路検索手段５２１により、ＶＣＤＢ１００内の回路ＶＣの記述と、テストクラスタ内の条件式信号線の値の設定に関する記述とを読み込む。その結果、回路ＶＣの記述には、ｆｌｇ１が“１”のときには処理１ａを行ない、ｆｌｇ１が“１”でないときには処理１ｂを行なうという条件文があり、テストクラスタＶＣ内の記述には、ｆｌｇ１の値は変化するがｆｌｇ２の値は変化しないことがわかったとする（図中＃０，＃１００は時刻を示す）。ところが、ｆｌｇ２は“０”のままなのでこのシミュレーションでは処理２ａは実行されず、常に処理２ｂが実行されることがわかる。そこで、回路変更手段５２２により、処理２ａ及び制御記述２中の条件文を削除してシミュレーションモデルを生成する。その結果、シミュレーション用回路記述における制御記述２においては、ｆｌｇ２が“０”であるか否かに拘わらず処理２ｂを行なうことように記述される。ただし、このように記述を変更すると、元の回路記述との対応がわからなくなるおそれがあるので、その対応関係を検索するための情報としてリファレンスを設けておく。つまり、変更された回路記述においてはｆｌｇ２がどのような値を持っているのかわからないが、このリファレンスを参照するとｆｌｇ２は常に“０”であることがわかる。
【００８１】
このように、回路記述を変更することにより、シミュレーションの際には不要となる処理を行なうことによる時間の無駄をなくすことができ、シミュレーション用回路記述の最適化を行うことができる。
【００８２】
−記述最適化モデルの作成例２−
図２５は、機能検証支援手段５００の一部である記述最適化モデル生成手段５２０Ｂによるモデル生成方法を示す図である。記述最適化モデル生成手段５２０Ｂは、使用する回路，テストクラスタの指定に関するシミュレーション回路条件の入力に応じ、ＶＣＤＢ１００内のＲＴ−ＶＣ，テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段５２０Ｂには、階層情報検索手段５２３と階層展開手段５２４とが含まれており、この階層情報検索手段５２３と階層展開手段５２４とにより、以下の手順で記述最適化モデルが生成され、ＲＴレベル回路とテストクラスタとを含むシミュレーション用回路と回路図変換情報とが生成される。
【００８３】
図２６は、このときの具体的な処理の例を示す図である。ここでは、上位にモジュールＭＡがあり、その下位の階層にモジュールＭＢ，ＭＣがあり、さらにモジュールＭＣの下位の階層にモジュールＭＤがあるとする。ここで、階層情報検索手段５２３により、階層展開前における回路データの階層と信号線の接続情報とを抽出する。その結果、モジュールＭＢ中の素子からモジュールＭＣ中の素子に入力される信号については、モジュールＭＢ内における信号処理Ｂ１と、モジュールＭＡ内における信号処理Ａ１と、モジュールＭＣ内における信号処理Ｃ１とがあり、モジュールＭＣ中の素子からモジュールＭＢ中の素子に入力される信号については、モジュールＭＣ内における信号処理Ｃ２と、モジュールＭＡ内における信号処理Ａ２と、モジュールＭＣ内における信号処理Ｂ２とがある。また、モジュールＭＣ中の素子からモジュールＭＤ中の素子に入力される信号については、モジュールＭＣ内における信号処理Ｃ３と、モジュールＭＤ内における信号処理Ｄ１とがあり、モジュールＭＤ中の素子からモジュールＭＣ中の素子に入力される信号については、モジュールＭＤ内における信号処理Ｄ２と、モジュールＭＣ内における信号処理Ｃ４とがある。また、信号線の接続情報として、上述のデータに対応した記述が含まれている。
【００８４】
ここで、信号Ｂ１，Ａ１，Ｃ１は信号名が異なっているが、本来１つの信号線を流れる１つの信号にすぎない。このように、信号が流れるモジュール毎に信号名を代えているのは、設計の容易さを考慮したからである。ところが、シミュレーション時には、このような区切りを明確にする必要はない。そこで、階層展開手段５２４により、階層を展開して重複する信号線を共通化したした回路を生成する。その際、異なる階層間で同じ信号を扱う信号線名は、最も最上位の階層における信号線名とする。その結果、階層展開前のシミュレーションモデルにおいては１０個あった信号線及び信号の名称が、階層展開後のシミュレーションモデルにおいてはそれぞれ４個に低減される。これにより、シミュレーション速度を高めることができる。
【００８５】
なお、下層の信号線には先頭にモジュール名をつけておく。階層展開前と展開後とにおける信号線の対応関係を示すリストをリファレンスとして作成しておくことにより、デバック時には信号線及び信号について階層展開前と同様に名称を扱うことができる。
【００８６】
−記述最適化モデルの作成例３−
図２７は、機能検証支援手段５００の一部である記述最適化モデル生成手段５２０Ｃによるモデル生成方法を示す図である。記述最適化モデル生成手段５２０Ｃは、使用する回路，シミュレータの指定に関するシミュレーション回路条件の入力に応じ、ＶＣＤＢ１００内のＲＴ−ＶＣに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段５２０Ｃには、回路記述解析手段５２５と、回路変換手段５２６と、シミュレータ個別情報と、回路変換ルールとが含まれており、この回路記述解析手段５２５と回路変換手段５２６とにより、以下の手順で記述最適化モデルが生成され、ＲＴレベル回路を含むシミュレーション用回路が生成される。
【００８７】
図２８は、このときの具体的な処理の例を示す図である。ＶＣＤＢ１００内においては、回路変換ルールにより変換可能な記述によりＲＴ−ＶＣが作成される。ＲＴ−ＶＣにおける改変前のシミュレーションモデルには、処理の種類によってｃａｓｅ文とｉｆ文とが混ざり合って使用されているのが一般的である。ところが、あるシミュレータを使用する場合にはｉｆ文に従って処理したほうがシミュレーション速度が速くなるが、別のシミュレータを使用する場合にはｃａｓｅ文に従って処理したほうがシミュレーション速度が速い場合がある。
【００８８】
ここでは、シミュレータ個別情報から、シミュレータＡはｃａｓｅ文で処理したほうが処理速度が速く、シミュレータＢはｉｆ文で処理したほうが処理速度が速いという情報が得られるものとする。そこで、シミュレータＢを使用する場合には、回路記述解析手段５２５により、シミュレーションモデル中にｃａｓｅ文があるかどうかを解析して検索する。そして、回路変換手段５２６により、シミュレータ個別情報と、ｃａｓｅ文−ｉｆ文間の変換を行なう際に従うべき回路変換ルールとを参照して、シミュレーションモデル中のｃａｓｅ文をｉｆ文に変換する。
【００８９】
その結果、シミュレータＢを用いる場合により高速で処理を行なうことが可能なシミュレーション用回路が生成される。
【００９０】
−記述最適化モデルの作成例４−
図２９は、機能検証支援手段５００の一部である記述最適化モデル生成手段５２０Ｄによるモデル生成方法を示す図である。記述最適化モデル生成手段５２０Ｃは、使用する回路の指定に関するシミュレーション回路条件の入力とシミュレーションに使用しない機能の入力とに応じ、ＶＣＤＢ１００内のＲＴ−ＶＣに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段５２０Ｄには、機能解析手段５２７と、回路変換手段５２８とが含まれており、この機能解析手段５２７と回路変換手段５２８とにより、以下の手順で記述最適化モデルが生成され、ＲＴレベル回路を含むシミュレーション用回路が生成される。
【００９１】
図３０は、このときの具体的な処理の例を示す図である。シミュレーションにおいて回路の動作に寄与しないものがある。図３０に示すＲＴ−ＶＣにおいて、機能解析手段５２７により、ＲＴ−ＶＣの機能を解析した結果、シミュレーションを行なう際に、モジュールＭＡの下位層において、モジュールＭＢとモジュールＭＣとは動作して出力に影響を及ぼすが、モジュールＭＤは動作しないことがわかったとする。つまり、モジュールＭＤは、データには含まれているが、シミュレーションの結果には何ら影響を及ぼさないものである。そこで、回路変換手段５２８により、モジュールＭＤについての回路記述を削除し、モジュールＭＤがアクセスされるとエラーを返す回路を組み込む。つまり、モジュールＭＤを切りはなしたシミュレーションモデルを自動的に生成できるようなシミュレーション用回路を作成する。
【００９２】
これにより、ワークステーション等を用いてシミュレーションを行なう場合に、モジュールＭＤの分だけメモリを占有することによるシミュレーション速度の低下を回避できる。また、モジュールＭＤが動作しなくても、入力信号が変化するとシミュレーションは遅くなるが、これを回避することができる。
【００９３】
ただし、モジュールＭＤが使用されることもあり得るので、誤ってモジュールＭＤが使用された場合にこれをチェックするアクセスチェック回路を生成する。これは、シミュレーション速度に影響を与えない程度の小さな容量しか持っていない。
【００９４】
（検証におけるチェックモデル）
ここでは、検証においてＶＣ自体が正常に動作しているかどうかということの検証や、ＶＣを組み込んだ検証において各ＶＣが正常に使用されているかどうかということのチェック機能について説明する。この手段は、図１４に示される動作チェッカー組込モデル３２４として、目的別機能検証モデル３２０内に組み込まれている。
【００９５】
図３１は、検証のチェック方法を示すブロック図である。ＶＣＤＢ１００内には、時相チェックモデル４３１と内部状態チェックモデル３４２と入出力データチェックモデル３４３とを含むモデルが組み込まれている。そして、変換プログラムによって、チェック内容に応じて実際のシミュレーションモデルの中にチェックする仕組みが組み込まれる。この変換プログラムに従って、言語ツールと機能又は論理シミュレータとを用いてシミュレーションを行なうことにより、以下のような各種のチェックが可能となる。
【００９６】
入出力データチェックモデル３４３は、以下のようなチェックを行なう記述を含んでいる。例えば図３２に示すような入力Ａ１，Ａ２に応じて出力Ｏ１，Ｏ２を生成する回路がある場合を例に採る。この場合に、各ＶＣの入出力ピンの状態値に関する制約事項が守られているかどうかをチェックするのが入出力データチェックモデル３４３の機能である。例えば、ＶＣを利用した設計におけるシミュレーション時に、ＶＣに禁止された組み合わせの入力が入ってこないか、逆に、禁止状態の出力がないかなどをシミュレーション中に見張る記述が含まれている。
【００９７】
内部状態チェックモデル３４２は、以下のようなチェックを行なう記述を含んでいる。例えば図３３に示す内部状態Ｓ１，Ｓ２，Ｓ３を示す回路がある場合、各ＶＣの内部の信号や設計におけるシミュレーション時に、ＶＣ内部で禁止されている内部状態が存在しないかをシミュレーション中に見張る記述が含まれている。
【００９８】
時相チェックモデル３４１は、以下のような入出力ピンや内部ピンの時相論理のチェックを行なう記述を含んでいる。例えば、図３４（ａ）に示すような入力信号Ａ１，Ａ２を受ける回路において、入力信号Ａ１，Ａ２が図３４（ｂ）に示すような変化を示すとする。このとき、入力信号Ａ１がＨからＬに変化したときに、次にＨになるまでに入力信号Ａ２はＨにならなければならないという制約があれば、その制約が守られているかどうかを見張る記述が含まれている。
【００９９】
従来のテストパターンを用いたシミュレーションでは、内部の深い領域で異常状態が発生しても、そのシミュレーションの実行中にそれが外部ピンまで伝わってこない場合がある。それに対して、図３１に示すようなチェックモデル３４１，３４２，３４３をＶＣＤＢ１００内に備えておくことにより、異常現象をそれが発生した時点，場所で即座に検出することができる。また、エラーが発生したときに、そのエラーがどういうルールに違反しているかということもわかる。
【０１００】
従来、以上の３つのようなチェック項目は、ＨＤＬ又はＣ言語で記述できるものもある。しかし、このようなチェック項目を現実に記述すること自体がかなり困難であり、かつ、記述量も多くなる。それに対し、本例のようにＶＣＤＢ１００内にこのチェックモデルを組み込むことで、チェックの容易性とチェック精度の向上とを図ることができる。
【０１０１】
（ＶＣインターフェースの合成）
従来の手法をそのままＶＣＤＳに適用したのでは、ＬＳＩ設計者がＶＣＤＢ内のＶＣをそのまま使用できない。すなわち、ＶＣを組み合わせて回路を設計する際に各ＶＣがデータを入出力するインターフェースとして異なる仕様ないし手順（プロトコル）を有する場合に、そのまま並べて信号線を接続しただけでは正しい信号の授受を行なうことができない。たとえば、バスとＶＣとの間に配置されるインターフェースであるバスＩ／Ｆインターフェースの場合、設計上ＶＣを使用するためには、使用するホスト（ＣＰＵなど）に合わせてバスＩ／Ｆを修正する必要がある。その結果、流用するＶＣの数だけバスＩ／Ｆを修正することになるので、その間人手によるミスが発生するおそれがある。
【０１０２】
以下に説明するＶＣインターフェース合成手段７００（図１参照）とは、異なる手続きを持ったインターフェース同士でも、自動的にそれらを合わせ込む機能を持ったインターフェース回路というべきものを合成するものである。
【０１０３】
図３５は、ＶＣインターフェース合成手段７００を用いた設計方法を示すブロック図である。設計する回路のシミュレーションの結果、ＶＣＤＢ１００内からＶＣ（ＲＴ層）が選び出される。このＶＣはＶＣＤＢ１００内に格納されているものである。また、シミュレーションにより、インターフェースのパラメータ（例えばアクセスビット数，バッファサイズなど）もわかる。そこで、インターフェース合成手段７００により、パラメータを適正に合わせ込みながら適正なＶＣを選択し，あるいは合成して最適なインターフェースを持ったＶＣを決定するように構成されている。
【０１０４】
例えば、各インターフェースのアクセスビット数が異なっている場合には、信号の授受を行なうことができない。各インターフェースにおけるバッファサイズが異なると、一定の速度で信号を流したいのに、これが適正に流れなくなるという事態を招く。そこで、インターフェース合成手段７００によってこれらのパラメータを合わせ込みつつ適正なＶＣを決定することにより、自動的に最適なインターフェースを持ったＶＣを利用した設計が可能となる。
【０１０５】
−バスＩ／Ｆへの適用−
図３６は、図３５に示すインターフェース合成手法を、バスとＶＣとの間のインターフェースであるバスＩ／Ｆに適用した場合のインプリメンテーションフローを示す図である。
【０１０６】
まず、最適なＶＣ（ＲＴ層）を選択する。そのときに、シミュレーションに使用したホスト（ＣＰＵなど）のバスプロトコルに応じ、ＶＣＤＢ１００からＶＣ（ＶＣ１，ＶＣ２，…）を選択する。また、ホストのバスプロトコルからアクセスビット数やバッファサイズなどのパラメータもわかる。これらの情報を受けて、バスインターフェース合成手段７００により、そのホストのバスプロトコルに合わせたバスインターフェースを、ＶＣ１，ＶＣ２，…毎に自動的に決定する。インターフェース合成手段７００は、このときのパラメータなどの条件を、全て動作レベル，仕様レベルなどのシミュレーションで出力されたものから受け取り、これらのパラメータを、ホストが要求するバスプロトコルの仕様と、ＶＣ自体が持っているインターフェースの仕様とが適合するように、いわばインターフェース部分を吸収するように自動的に決定するのである。このとき、ＶＣＤＢ１００から取り出されたＶＣに適切なものがあればこれを選び、適切なＶＣがなければ適切なＶＣを生成する。これによって、そのインターフェースを合わせたＶＣ１Ａ，ＶＣ２Ａ，…などが生成される。そして、このＶＣ１Ａ，ＶＣ２Ａ，…などを１チップのインプリメンテーションに使用する。
【０１０７】
−バスＩ／Ｆに関する具体例−
図３７は、本具体例におけるＶＣＤＢ１００内のＶＣ（ＲＴ層）の構造を示すブロック図である。同図に示すように、ＶＣの構成を機能本体部とバスＩ／Ｆ部とに分離し、機能本体部は、バスＩ／Ｆ部のタイミング等に無関係にしておく。バスＩ／Ｆ部としては、使用するホストのバスプロトコルに合わせた各種のバスＩ／Ｆ部を生成しておく。図３７に示す例では、ＶＣＤＢ１００内のＶＣ１には３つのバスＩ／Ｆ部−Ａ，Ｂ，Ｃと機能本体部とがあり、ＶＣ２には２つのバスＩ／Ｆ部−Ｘ，Ｙと機能本体部とがある。
【０１０８】
図３８は、図３７に示すバスＩ／Ｆ部−Ａ，Ｂ，Ｃ，Ｘ，Ｙのビット幅と、リード／ライトサイクルと、最大ブロック周波数とを表にして示す図である。このように、１つのＶＣに対して複数種のバスＩ／Ｆ部を準備しておくことにより、インターフェース合成の際のパラメータの合わせ込みをより迅速に行なうことができる。
【０１０９】
図３９は、インターフェース合成手順を示すフローチャート図である。以下、図３９を参照しながら、バスＩ／Ｆの自動生成手順について説明する。
【０１１０】
まず、ステップＳＴ７０１において、ターゲット仕様（機能，動作周波数など）を決定し、ＣＰＵや周辺部のＶＣ＊を選択する。
【０１１１】
次に、ステップＳＴ７０２において、仕様／動作レベルのシミュレーションを行なってから、ステップＳＴ７０３に進み、ステップＳＴ７０３において選択したＶＣ＊がターゲット仕様を満足しているか否かを判別する。
【０１１２】
その結果、ＶＣ＊がターゲット仕様を満足していなければ、ステップＳＴ７０４でステップＳＴ７０２のシミュレーションを実行していないＶＣ＊があるか否かを判別する。そして、判別結果がＹＥＳである間はステップＳＴ７０１に戻り、ターゲット仕様を満足するＶＣ＊が見つかるまで、ＳＴ７０１，ＳＴ７０２，ＳＴ７０３の処理を繰り返す。一方、選択したＶＣ＊がターゲット仕様を満足していないにも拘わらずＳＴ７０２のシミュレーションを実行していないＶＣ＊がなくなってしまった場合には、ＳＴ７０５においてターゲット仕様を変更してからステップＳＴ７０１に戻る。
【０１１３】
以上の制御をターゲット仕様を満足しているＶＣ＊が見つかるまで行なった後、ターゲット仕様を満足しているＶＣ＊が現れると、ステップＳＴ７０６に移行して、使用するＶＣと、このＶＣに用いられるバスＩ／Ｆ部とを決定する。
【０１１４】
また、シミュレーションにより、ＣＰＵとしては図４０に示す３つのＣＰＵ−１，２，３のうちＣＰＵ−２を選択したとする。この場合、機能層のＶＣ（ＲＴ−ＶＣ）において用意されているＣＰＵ−２のバスプロトコルは図４０に示されるとおりである。そこで、図３８に示すＶＣ１，ＶＣ２の各種のうち、このＣＰＵ−２のバスプロトコルに適合するものを選ぶと、ＶＣ１に対してはバスＩ／Ｆ部−Ｂに、ＶＣ２に対してはバスＩ／Ｆ部−Ｘがそれぞれ選択されることになる。
【０１１５】
そして、図３９に示すように、ＶＣＤＢ１００のＲＴ層において、ＣＰＵ−２と、バスＩ／Ｆ部−Ｂ及び機能本体部によって構成されているＶＣ１’と、バスＩ／Ｆ部−Ｘ及び機能本体部によって構成されているＶＣ２’という３つのＲＴ−ＶＣが生成される。
【０１１６】
図４１は、この選択されたＲＴ−ＶＣ間の接続状態を示すブロック図である。同図に示すように、ＶＣ１’及びＶＣ２’がＣＰＵ−２用の専用バスを介してＣＰＵ−２と接続されており、各ＶＣ１’，ＶＣ２’とホスト（ＣＰＵ−２）との間のバスのパラメータ（ビット数，動作周波数など）が合わせ込まれているので、ＶＣ１’，ＶＣ２’，ＣＰＵ−２同士の間で信号を適正に流通させることができ、自動的な設計が可能になる。
【０１１７】
（システム検証のための構造）
次に、システム検証モデル中の階層テストクラスタについて説明する。上述のように、テストクラスタは、テストベンチ，テストシナリオ，タスク，モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、ＶＣを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル，ＶＣモデルあるいは周辺シミュレーションモデルへのリンクをいう。
【０１１８】
図１に示すように、ＶＣＤＢ１００内において、ＶＣクラスタ本体部は仕様ＶＣ３０１，動作ＶＣ３０２，ＲＴ−ＶＣ３０３の各層に階層化されている。ここでは、システム検証のために生成される階層化されたテストクラスタについて説明する。
【０１１９】
−テストクラスタの階層化−
図４２は、ＶＣクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。図４３，図４４，図４５は、それぞれ順に、仕様層及び動作層におけるテストクラスタの構造と、機能層におけるテストクラスタの構造と、プロトコル層におけるテストクラスタの構造とを詳細に示すブロック図である。なお、図４２において、略記によって示されているパラメータＰ−１〜１０と、各種テストクラスタと、シーケンスのモデルＳ１〜Ｓ４及び構成要素Ｓ３−１〜Ｓ３−６の具体的な内容は、図４３〜図４５に示すとおりである。
【０１２０】
ここで、これらのテストクラスタは、図１に示すＶＣクラスタ３００内のテストクラスタ３０４を利用してもよいし、あるいは、これらのテストクラスタは、すでに準備されているテストシナリオや周辺モデルを含む共用テストクラスタ４１０を利用して生成することもできる。例えば、テストシナリオや周辺モデルは、複数のＶＣクラスタに共通なものや、ＶＣクラスタ３００外のシステム検証用データベース４０２として備えているものがある。
【０１２１】
例えば、ある機器を有線（ワイヤ）で接続したり、機器を無線で接続したりすることがある。そのデータの媒体の例としては音声がある。図４２〜図４５においては、音声のデータを有線又は無線によってある機器Ａから機器Ｂに転送するシステムを例にとっており、このシステムをブロック化して示している。ここでは、この無線データ転送のための回路を設計の対象としている。
【０１２２】
仕様層においては、例えば有線データによって転送したデータを無線データに変換し、さらにそれを音声に変換してアウトプットするなどのタスクが行なわれる。このようなアプリケーションが抽象的に表現されたところで、検証が可能になる。この仕様レベルにおける検証とは、例えば音声のデータをインプットして、それを単にデータを横に転送するというようなレベルでの動作だけの検証を行なう段階になっている。
【０１２３】
動作層においては、無線データ転送部のシーケンス制御の内容が構成Ａ，構成Ｂ，構成Ｃ，…のＶＣクラスタとして詳細化される。例えば、構成ＡのＶＣクラスタ内には、そのシーケンスで動作するモデルの例として、Ｔｉｍｅｒ（Ｓ１）と、ＣＰＵ（Ｓ２）と、ＩｒＤＡ（Ｓ３）（米国のInfrared data association（規格化団体）で規格化された赤外線を用いた汎用インターフェース名）と、ＤＭＡ（Ｓ４）とが含まれている。
【０１２４】
また、テストクラスタの動作層においては、以下のように詳細化される。有線データ転送部がテストクラスタ１（ＴＢ−１），テストクラスタ２（ＴＢ−２）などとして詳細化される。例えば、転送の形態がシリアルであり、転送速度が１Ｍｂｐｓであり、転送タイプがバルク転送であることなどをパラメータとして持つテストクラスタ１が現れる。また、音声変換は、テストクラスタａ（ＴＢ−ａ），テストクラスタｂ（ＴＢ−ｂ），…として詳細化される。例えば、変換速度が１００ｂｐｓであること、圧縮率が９０％であることなどをパラメータとして持つテストクラスタａが詳細化される。各ＶＣクラスタの構成Ａ，Ｂ，Ｃには、それぞれ初期化テストクラスタ（Ｉ−ＴＢ−Ａ，Ｂ，Ｃ，…）が準備されている。すなわち、仕様層でパラメータＰ−１〜３を与えることによって、無線データ通信の動作層におけるＶＣクラスタや、有線データ転送部及び音声変換部のテストクラスタがテーブルから選択されて生成される。
【０１２５】
ここで、動作層になると制御が複雑になり、互いにシーケンスを持つようになる。例えば、無線側のテストクラスタａ（ＴＢ−ａ）から構成ＡのＶＣクラスタに対してデータがインプットされると、構成ＡのＶＣクラスタにおいては、モデルＳ１〜Ｓ４が、“データの受け取り告知−転送の連絡−転送許可の返答に応じた転送”という手順で作動するように単なるシーケンスレベルで表現されている。そして、実際に転送する場合には、有線データ転送部のテストクラスタ１（ＴＢ−１）にデータの転送をし始める。同様に、音声変換部のテストクラスタｂからＶＣクラスタ内の構成Ｂにデータがインプットされると、構成Ｂ内の各モデルがシーケンスで作動して、有線データ転送部のテストクラスタ２にシーケンスの結果の信号が出力される。
【０１２６】
次に、動作層から機能層に展開する場合について説明する。例えば、動作層における構成Ａ中のモデルの１つである赤外線通信ＩｒＤＡを展開すると、赤外線通信ＩｒＤＡの構成要素である制御部（Ｓ３−１），送受信フレーマ（Ｓ３−２），ＣＲＣ計算（Ｓ３−３），ＤＭＡＩ／Ｆ（Ｓ３−４），１６ｂｉｔホストＩ／Ｆ（Ｓ３−５），シリアルＩ／Ｆ（Ｓ３−６）が現れる。その際、ビットの幅，エラーの訂正の方法などの機能的な面まで表現した機能層として詳細化されている。また、Ｔｉｍｅｒ（Ｓ１），ＣＰＵ（Ｓ２），ＤＭＡ（Ｓ４）についても、それぞれテストクラスタＴ−ＴＢ，Ｈ−ＴＢ，Ｄ−ＴＢが準備されている。例えば、Ｔｉｍｅｒに対しては、８ｂｉｔのＴｉｍｅｒテストクラスタ（Ｔ−ＴＢ１）と１６ｂｉｔのＴｉｍｅｒテストクラスタ（Ｔ−ＴＢ２）とが準備されている。ＣＰＵに対しては、１６ｂｉｔホストＩ／Ｆテストクラスタ（Ｈ−ＴＢ１）と３２ｂｉｔホストＩ／Ｆテストクラスタ（Ｈ−ＴＢ２）とが準備されている。ＤＭＡに対しては、Ｄｅｍａｎｄ  ＤＭＡテストクラスタ（Ｄ−ＴＢ１）と、シングルＤＭＡテストクラスタ（Ｄ−ＴＢ２）とが準備されている。このような各テストクラスタは、パラメータＰ−４〜９を与えるとテーブルによって選択される。テーブルで呼び出す際には、テストクラスタのモデルとタスクとが格納されているデータベースから各テストクラスタを呼び出す。これによって、テストを行なうための環境のパーツが揃ったことになる。ここの段階では、データベースとして各要素が準備できることが示されている。
【０１２７】
一方、機能層の音声変換部及び有線データ転送部においては、動作層からさらに詳細化されたテストクラスタが準備されている。例えば、動作層における音声変換部のテストクラスタａには変換速度と圧縮率しか表現されていなかったのを、機能層におけるテストクラスタには、変換の手法としてＡＤＰＣＭ（Adaptive differential Pulse Code Modulationという規格の音声ＣＯＤＥＣ変換）を使用することがパラメータとして与えられている。その結果、機能層における音声変換部のＡＤＰＣＭテストクラスタには、ＡＤＰＣＭに相当するモデルとタスクが格納されているデータベースが準備されることになる。同様に、機能層における有線データ転送部には、通信プロトコルとしてＵＳＢ（Universal Serial Bus という規格の汎用インターフェース名）を使用することや、ＩＥＥＥ１３９４（ＩＥＥＥ（米国電気電子技術者協会）で規格化された汎用インターフェース名）を使用することがパラメータとして与えられたＵＳＢテストクラスタ，１３９４テストクラスタが準備されている。以上の構成により、テストを行なうための準備ができ、テスト環境が整ったことになる。
【０１２８】
このように、システム検証用データベースにおいて、設計対象回路だけでなく、設計対象回路に信号を入力する入力側回路と、設計対象回路の出力を受ける出力側回路とにも階層化されたテストクラスタを備えることにより、設計対象回路，入力側回路及び出力側回路の共通の階層において実際に流れる信号の授受とそれに応じたシーケンスなどの動作に対する検証を行なうことができる。
【０１２９】
例えば動作層におけるＶＣクラスタの構成Ａ，Ｂにおいて、構成Ａ，Ｂの各モデルが存在するだけでは構成Ａ，Ｂの各部分の検証を行なうことはできるもののシステム全体としての検証を行なうことができない。それに対し、この例のごとく、ＶＣクラスタの構成Ａ，において、音声変換部のテストクラスタａ，ｂからのデータのインプットと、有線データ転送側部テストクラスタ１，２へのアウトプットという信号の授受機能を持たせることによって、システム全体の検証を行なうことが可能になる。
【０１３０】
構成Ａの１つのモデルにおいても、赤外線通信ＩｒＤＡという部分だけを捉えて何かデータをインプットし、何らかのデータをアウトプットしたとしただけでは、その部分のみの設計の検証にはなっても、その赤外線通信ＩｒＤＡという部分がシステム全体の中でどのように作動するかという検証にはならない。この例のように階層化されたテストクラスタを利用することにより、各モデルが実際のシステムに適合した検証を行なうことができる。機能層のような下位の階層においても同様である。
【０１３１】
また、プロトコル層は、データの授受に関する詳細なプロトコル及びタイミングの詳細化を検証するための層である。例えば、図４２，図図４５には、１６ｂｉｔホストＩ／Ｆに関して、１６ｂｉｔＰＣＩ，３２ＭＨｚをパラメータとしてプロトコル及びタイミングに関する詳細化を行なって、１６ｂｉｔＰＣＩ−Ｉ／Ｆ（３２ＭＨｚ）及びそのテストクラスタである１６ｂｉｔＰＣＩ−Ｉ／Ｆテストクラスタを生成している。
【０１３２】
−テストクラスタの生成方法−
図４６は、仕様層−動作層間のテストクラスタ生成方法を説明するためのブロック図である。また、図４７及び図４８は、それぞれ順に、図４６中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでは、図４２〜図４５に示す階層化されたテストクラスタのシステムを前提としている。
【０１３３】
無線データ転送のテストクラスタには、無線転送モデル，初期化，送信数設定，データ送信，データ受信という要素がある。無線データ転送のテストシナリオには、送信側と受信側とに分かれて、それぞれ初期化，送信（受信）数設定，データ送信（受信）というステップがある。また、動作層の無線データ転送のテストクラスタを生成するために、動作層の有線データ転送部におけるテストクラスタ１，２と、構成Ａに付設されている初期化テストクラスタと、動作層の音声変換部におけるテストクラスタａ，ｂとが使用される。
【０１３４】
そして、動作層のテストクラスタは、無線データ転送のテストクラスタと、上述の各テストクラスタ１，２，ａ，ｂ及び構成Ａの初期化テストクラスタとを組み合わせて生成される。すなわち、無線データ転送のテストシナリオに沿って、動作層における有線データ転送部のテストクラスタ１中のモデル１，動作層における音声変換部のテストクラスタａ中のモデルｂ，無線データ転送のＶＣクラスタ中の構成Ａに対し、それぞれ初期化，送信（受信）数設定，データ送信（受信）の順にタスクのモデルを生成する。例えば、モデル１の初期化とモデルｂの初期化と構成Ａの初期化とを加えることにより、仕様層における無線データ転送のテストシナリオにおける送信の初期化が詳細化されたコマンドになる。
【０１３５】
この例の方法によると、仕様層におけるテストクラスタを詳細化する際に、上位のテストクラスタから下位のテストクラスタを構築することが可能になる。すなわち、従来の手法を用いたのでは、各階層のテストクラスタつまり各タスクを個別に生成する必要がある。それに対し、この例の方法では、設計対象回路の共用テストクラスタ（テストクラスタ＋テストシナリオ）だけでなく、設計対象回路に信号を与える入力側回路と、設計対象回路からの出力を受ける出力側回路とにおける階層化されたテストクラスタを準備し、これと上位のテストクラスタとを用いて下位のテストクラスタを生成しているので、上位のテストクラスタを有効に活用することができる。そして、このテストクラスタの生成を上位層から階層に順次行なっていくことにより、システム全体の検証に必要なテスト環境を整えることができる。
【０１３６】
図４９は、動作層−機能層間のテストクラスタ生成方法を説明するためのブロック図である。また、図５０及び図５１は、それぞれ順に、図４９中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでも、図４２〜図４５に示す階層化されたテストクラスタのシステムを前提としている。
【０１３７】
ここでは、詳細な手順の説明は省略するが、無線データ転送の動作層のテストクラスタに加えて、機能層のＶＣクラスタ内における８ｂｉｔのＴｉｍｅｒテストクラスタ（Ｔ−ＴＢ１）及び１６ｂｉｔのＴｉｍｅｒテストクラスタ（Ｔ−ＴＢ２）と、１６ｂｉｔホストＩ／Ｆテストクラスタ（Ｈ−ＴＢ１）及び３２ｂｉｔホストＩ／Ｆテストクラスタ（Ｈ−ＴＢ２）と、Ｄｅｍａｎｄ  ＤＭＡテストクラスタ（Ｄ−ＴＢ１）及びシングルＤＭＡテストクラスタ（Ｄ−ＴＢ２）と、機能層の音声変換におけるＡＤＰＣＭテストクラスタと、機能層の有線データ転送部におけるＵＳＢテストクラスタ及び１３９４テストクラスタとを用いて、無線データ転送の機能層テストクラスタが生成される。
【０１３８】
図５２は、機能層−プロトコル層間のテストクラスタ生成方法を説明するためのブロック図である。
【０１３９】
ここでは、詳細な手順の説明は省略するが、無線データ転送の機能層のテストクラスタに加えて、機能層のＶＣクラスタ内における１６ｂｉｔのＰＣＩ−Ｉ／Ｆテストクラスタ及び１６ｂｉｔのＡＰＢ−Ｉ／Ｆテストクラスタとを用いて、無線データ転送のプロトコル層テストクラスタが生成される。ここで、ＰＣＩとは、Peripheral Component Interconnect の略語であって高速なローカルバスの規格をいう。ＡＰＢとは、Advanced Peripheral Busの略語であってＡＲＭ社で使用されているローカルバスの名称をいう。
【０１４０】
なお、上述の手順で生成されたテストクラスタはＶＣＤＢ１００内に配設してもよいし、検証のときのみＶＣＤＢ１００とは別の場所に格納してもよい。
【０１４１】
【発明の効果】
本発明の集積回路装置の設計用データベースによると、階層化されたＶＣクラスタに対して、各階層におけるシステム検証のためのテストクラスタを設計用データベースに設けることにより、特に設計中における検証を行なう際における利用性の高い設計用データベースを提供することができる。
【０１４２】
本発明の集積回路装置の設計方法によると、上記設計用データベースを利用して、設計中における検証を自動的かつ迅速に行なうことができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係るシステムＬＳＩ設計のためのデザインシステム（ＶＣＤＳ）の構成を概念的に示す図である。
【図２】  本発明の実施形態のＶＣＤＳにおけるタスクの基本的な流れを示す図である。
【図３】  図１に示すシステムの機能部分を抜き出して示すブロック回路図である。
【図４】  本発明の実施形態のＶＣクラスタの機能を詳細に説明する図である。
【図５】  本発明の実施形態における各ＶＣの構造を示す図である。
【図６】  本発明の実施形態における各層のＶＣのデータ及び性能情報の関係を示す図である。
【図７】  本発明の実施形態におけるＳＤＬというフォーマットで記述されたある設計データの例である。
【図８】  本発明の実施形態におけるハードウェア部に生成されたデータの例を示す図である。
【図９】  本発明の実施形態におけるソフトウェア部に生成されたデータの例を示す図である。
【図１０】  本発明の実施形態における動作層の検証の際に使用される環境を示す図である。
【図１１】  本発明の実施形態におけるＲＴ層の検証の際に使用される環境を示す図である。
【図１２】  本発明の実施形態におけるＲＴ層内のメタとインスタンスとの例を示す図である。
【図１３】  図１中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。
【図１４】  本発明の実施形態における目的別機能検証モデルの内容の例を示す図である。
【図１５】  本発明の実施形態における目的別機能検証モデル内の同期化モデルの使用方法を示す図である。
【図１６】  本発明の実施形態におけるシステム検証用データベース内において共用テストクラスタ，周辺モデルクラスタを用いたテストの流れ（テストシナリオ）を示す図である。
【図１７】  本発明の実施形態における故障検査戦略を最適化する方法を示すブロック図である。
【図１８】  本発明の実施形態における機能検証支援手段の動作を説明するためのブロック図である。
【図１９】  本発明の実施形態における仕様レベル，動作レベル，機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。
【図２０】  本発明の実施形態における機能検証支援手段の一部である同期化モデル生成手段によるモデル生成方法を示す図である。
【図２１】  本発明の実施形態におけるＶＣＤＢ内の共用テストクラスタ，ＲＴレベル回路，メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。
【図２２】  （ａ），（ｂ）は、それぞれ本発明の実施形態における同期化モデル生成手段によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル（機能レベルの）におけるタイミングチャートである。
【図２３】  本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図２４】  本発明の実施形態におけるシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図２５】  本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図２６】  本発明の実施形態におけるシミュレーション用回路と回路図変換情報とを生成するときの具体的な処理の例を示す図である。
【図２７】  本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図２８】  本発明の実施形態におけるＲＴレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図２９】  本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図３０】  本発明の実施形態におけるＲＴレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図３１】  本発明の実施形態における検証のチェック方法を示すブロック図である。
【図３２】  本発明の実施形態における検証のチェック対象となる入出力ピンを含む回路の構成を概略的に示す図である。
【図３３】  本発明の実施形態における検証のチェック対象となる内部状態を含む回路の構成を概略的に示す図である。
【図３４】  （ａ），（ｂ）は、それぞれ本発明の実施形態における検証のチェック対象となる回路の構成を概略的に示す図、及び信号のタイミングチャート図である。
【図３５】  本発明の実施形態におけるＶＣインターフェース合成手段を用いた設計方法を示すブロック図である。
【図３６】  図３５に示すインターフェース合成手法を、バスとＶＣとの間のインターフェースであるバスＩ／Ｆに適用した場合のインプリメンテーションフローを示す図である。
【図３７】  本発明の実施形態におけるバスＩ／Ｆを備えたＶＣＤＢ内のＶＣ（ＲＴ層）の構造を示すブロック図である。
【図３８】  図３７に示すバスＩ／Ｆ部−Ａ，Ｂ，Ｃ，Ｘ，Ｙのビット幅と、リード／ライトサイクルと、最大ブロック周波数とを表にして示す図である。
【図３９】  本発明の実施形態におけるインターフェース合成の手順を示すフローチャート図である。
【図４０】  本発明の実施形態におけるインターフェース合成における各種ＣＰＵの仕様を表にして示す図である。
【図４１】    本発明の実施形態におけるインターフェース合成によって選択されたＲＴ−ＶＣ間の接続状態を示すブロック図である。
【図４２】  本発明の実施形態におけるＶＣクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。
【図４３】  図４２中の仕様層及び動作層の構成を詳細に示す部分拡大図である。
【図４４】  図４２中の機能層の構成を詳示する部分拡大図である。
【図４５】  図４２中のプロトコル層の構成を詳示する部分拡大図である。
【図４６】  本発明の実施形態における仕様層−動作層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図４７】  図４６中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図４８】  図４６中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図４９】  本発明の実施形態における動作層−機能層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図５０】  図４９中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図５１】  図４９中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図５２】  本発明の実施形態における動作層−プロトコル層間のテストクラスタを生成する方法を示すブロック図である。
【図５３】  本発明の実施形態におけるＶＣインターフェースモデルの構成を示すブロック図である。
【図５４】  本発明の実施形態におけるＶＣインターフェースモデルを組み込んだＶＣＤＢを利用して生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。
【図５５】  システムシミュレーションモデルにおける第２ＶＣインターフェースモデルの役割を説明するためのブロック図である。
【符号の説明】
１００    ＶＣＤＢ（ＶＣデータベース）
２００    ＶＣＤＢＭＳ（ＶＣデータベースマネージャ）
３００    ＶＣクラスタ
３０１    仕様ＶＣ
３０２    動作ＶＣ
３０３    ＲＴ−ＶＣ
３０４    テストベクタクラスタ
３１０    動作回数解析モデル
３２０    目的別機能検証モデル
３３０    故障検査手法情報
４０１    アーキテクチャ情報
４０２    システム検証用データベース
４１０    共用テストクラスタ
４２０    周辺モデルクラスタ
４３０    ＶＣインターフェースモデル
５００    機能検証支援手段
６００    動作回数解析及び回路最適手段
７００    ＶＣインターフェース合成手段
８００    故障検査戦略最適化手段
【図１】
0004077578.tif 000002
【図２】
0004077578.tif 000003
【図３】
0004077578.tif 000004
【図４】
0004077578.tif 000005
【図５】
0004077578.tif 000006
【図６】
0004077578.tif 000007
【図７】
0004077578.tif 000008
【図８】
0004077578.tif 000009
【図９】
0004077578.tif 000010
【図１０】
0004077578.tif 000011
【図１１】
0004077578.tif 000012
【図１２】
0004077578.tif 000013
【図１３】
0004077578.tif 000014
【図１４】
0004077578.tif 000015
【図１５】
0004077578.tif 000016
【図１６】
0004077578.tif 000017
【図１７】
0004077578.tif 000018
【図１８】
0004077578.tif 000019
【図１９】
0004077578.tif 000020
【図２０】
0004077578.tif 000021
【図２１】
0004077578.tif 000022
【図２２】
0004077578.tif 000023
【図２３】
0004077578.tif 000024
【図２４】
0004077578.tif 000025
【図２５】
0004077578.tif 000026
【図２６】
0004077578.tif 000027
【図２７】
0004077578.tif 000028
【図２８】
0004077578.tif 000029
【図２９】
0004077578.tif 000030
【図３０】
0004077578.tif 000031
【図３１】
0004077578.tif 000032
【図３２】
0004077578.tif 000033
【図３３】
0004077578.tif 000034
【図３４】
0004077578.tif 000035
【図３５】
0004077578.tif 000036
【図３６】
0004077578.tif 000037
【図３７】
0004077578.tif 000038
【図３８】
0004077578.tif 000039
【図３９】
0004077578.tif 000040
【図４０】
0004077578.tif 000041
【図４１】
0004077578.tif 000042
【図４２】
0004077578.tif 000043
【図４３】
0004077578.tif 000044
【図４４】
0004077578.tif 000045
【図４５】
0004077578.tif 000046
【図４６】
0004077578.tif 000047
【図４７】
0004077578.tif 000048
【図４８】
0004077578.tif 000049
【図４９】
0004077578.tif 000050
【図５０】
0004077578.tif 000051
【図５１】
0004077578.tif 000052
【図５２】
0004077578.tif 000053
【図５３】
0004077578.tif 000054
【図５４】
0004077578.tif 000055
【図５５】
0004077578.tif 000056