集積回路装置の設計用データベース及び集積回路装置の設計方法
【課題】 データをフレキシブルに利用しうる状態で格納した集積回路装置の設計用データベース及びこれを利用した集積回路装置の設計方法を提供する。
【解決手段】 設計データの格納層であるVCDB100(VCデータベース)と、制御システムであるVCDBMS200(VCDBマネージメントシステム)とを備えている。VCDB100には、VCクラスタ300と、テストベクタクラスタ304と、目的別機能検証モデル320とが含まれている。VCDB100内には、共用テストクラスタ410と周辺モデルクラスタ420とを含むシステム検証用データベース402が配置されている。VCDBMS200内には、テストシナリオ,目的別機能検証モデル,システム検証モデルなどの生成を行なう機能検証支援手段500や、VCインターフェース合成手段700などが配設されている。
【解決手段】 設計データの格納層であるVCDB100(VCデータベース)と、制御システムであるVCDBMS200(VCDBマネージメントシステム)とを備えている。VCDB100には、VCクラスタ300と、テストベクタクラスタ304と、目的別機能検証モデル320とが含まれている。VCDB100内には、共用テストクラスタ410と周辺モデルクラスタ420とを含むシステム検証用データベース402が配置されている。VCDBMS200内には、テストシナリオ,目的別機能検証モデル,システム検証モデルなどの生成を行なう機能検証支援手段500や、VCインターフェース合成手段700などが配設されている。
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、集積回路装置の設計に用いられるデータベース及びそれを利用した設計方法に係り、特に、システムオンチップ化に対応するための設計技術に関するものである。
【0002】
【従来の技術】従来より、電子機器内の半導体装置は、例えばメモリ,プロセッサなどの種類ごとの個別のLSIとして半導体チップ上に形成された後、各チップをプリント配線基板などの母基板上に実装することにより製造されてきた。
【0003】ところが、最近、電子機器のより広範な利用を図るべく、電子機器に用いられる半導体装置は小型化,軽量化,省電力化及びコストの削減を要求されており、特に、デジタル情報家電分野はその傾向が強い。そして、このような電子機器産業界の要請に応じて、半導体産業はその重心をメモリからシステムLSIに移行させることを余儀なくされている。
【0004】かかるシステムLSIは、具体的には、メモリや各種の論理回路を1つのチップ上に設けることにより実現される。システムオンチップ化のためには、異なる構造を有するトランジスタ等の素子を共通の基板上に形成するためのプロセス上の技術が必要であることはいうまでもないが、設計技術においても大きな変革が要求される。
【0005】そこで、このようなシステムオンチップ化に対応した設計技術として、ある機能を実現する多くのセルからなる1つのブロック(例えば機能ブロックと呼ばれるもの)を設計するためのデータを予め用意しておいて、このデータを利用して、各ブロックを組み合わせた所望のシステムLSIを設計することが提案されている。その場合、各機能ブロックごとに機能を実現するための構造が定められているので、半導体装置全体の設計においては、各機能ブロック間の配線や周辺回路の設計を行なうだけで済む。このようにして、設計効率の大幅な向上を図ろうとするものである。
【0006】
【発明が解決しようとする課題】しかしながら、上記従来の設計手法では、論理設計,レイアウト設計などの下位側の設計において設計されたブロックのうち何を利用し、それらをどのように配置,配線するなどの設計を行なうだけなので、各ブロック内の一部の要素のみを利用するなど、ブロックをフレキシブルに活用することができない。そのために、システムLSIに対する小型化などの多彩な要求を十分満たすことができないおそれがある。
【0007】本発明は、上記従来の設計手法の問題点に鑑み、上記従来のようなブロックを用いた設計手法に変わる新たな設計システムを構築することを目的として成されたものであり、特に、1つのまとまったコアとして把握される要素のデータをフレキシブルに利用しうる状態で格納した集積回路装置の設計用データベース及びこれを利用した集積回路装置の設計方法を提供することを目的とする。
【0008】
【課題を解決するための手段】本発明の第1の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタは、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記VCの機能及び上記VCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタを備えている。
【0009】これにより、集積回路装置の検証を行なう際に、階層化されたVCクラスタの各層毎に仕様,動作,機能などの検証が可能となる。
【0010】上記テストクラスタは、テストベンチ,テストシナリオ,タスク及びモデルのうち少なくともいずれか1つを含むことが好ましい。
【0011】本発明の第2の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用データベースを備えている。
【0012】これにより、集積回路装置のある部分だけではなくシステム全体としての仕様,動作,機能などの検証が可能となる。
【0013】上記第2の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化された上記VCの機能及びVCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタが配設されていることが好ましい。
【0014】上記第2の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、VCの周辺に接続されシステムの検証に用いられる周辺モデルクラスタが配設されていることが好ましい。
【0015】本発明の第3の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、上記VCクラスタに、集積回路装置を構成するために必要な仕様・動作レベルのデータを格納する仕様・動作VCと、上記各仕様・動作VCが格納しているデータが示す仕様・動作を満たすために必要なRTレベル(レジスター・トランスファレベル)のデータを格納するRT−VCとを配置してなる集積回路装置の設計用データベースであって、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを、上記RT−VCとリンクさせて備えている。
【0016】これにより、集積回路装置の機能検証をその目的に応じて迅速に行なうことが可能となる。
【0017】目的別機能検証モデルには、機能検証時における信号をクロックの半周期の倍数に変更してなる同期化モデルや、記述最適化モデルがある。
【0018】記述最適化モデルには、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなるモデル、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなるモデル、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなるモデル、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなるモデル、異常動作などを警告する手段を備えたモデルなどがある。
【0019】本発明の第4の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の故障検査を最適化するための手法に関する情報を備えている。
【0020】これにより、テストコストを最小化するための故障検査などに利用できる情報の提供を図ることができる。
【0021】本発明の第5の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の動作回数を解析するためのモデルを備えている。
【0022】これにより、動作回数の少ないあるいは均一化された低消費型で信頼性の高い集積回路装置の設計に利用できるモデルの提供を図ることができる。
【0023】本発明の第5の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなる複数のVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記複数のVCクラスタを組み合わせてシステムLSIを構築するために利用可能なモデルであって、各VCクラスタにおける相異なる層のVCを組み合わせるためのつなぎのモデルとなるVCインターフェースモデルを備えているこ。
【0024】これにより、複数のVCクラスタの設計レベルが一致していない状態でも、円滑なシミュレーションを行なうことが可能になる。
【0025】本発明の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCデータベースのVCクラスタに関する情報を入力し、集積回路装置の検証のためのテストクラスタを生成するステップを含んでいる。
【0026】この方法により、検証に必要なデータや検証の手順に関する記述,タスクなどを自動的に生成することが可能になる。
【0027】本発明の第2の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCクラスタの機能レベルのVCにリンクさせて、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを生成するステップを含んでいる。
【0028】この方法により、集積回路装置の機能検証をその目的に応じて迅速に行なうことができる。
【0029】この目的別機能検証モデルには、上述のものがある。
【0030】本発明の第3の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用モデルを生成するステップを含んでいる。
【0031】この方法により、システム全体の検証の容易性や迅速性を図ることができる。
【0032】本発明の第4の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースと検証のためのCPUとを用いた集積回路装置の設計方法であって、シミュレーションの結果に応じて上記VCデータベースからVCを取り出す一方、シミュレーションの結果から使用するCPUに関するパラメータを抜き出して、使用するCPUのパラメータに適合したインターフェースを選択又は生成して上記VC内に格納するステップを含んでいる。
【0033】この方法により、シミュレーション時にインターフェースを使用するCPUに適合させるための処理を逐一行なう必要がなくなり、迅速なシミュレーションを行なうことが可能になる。
【0034】上記第4の集積回路装置の設計方法において、例えば、上記インターフェースが上記CPUのバスとの間で信号を授受するためのバスインターフェースである場合には、上記バスインターフェースを上記VC内においてVCの機能本体部と分離して格納し使用するCPUのプロトコルに合わせて生成することにより、迅速なシミュレーションが可能になる。
【0035】本発明の第5の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の動作回数を解析するステップを含んでいる。
【0036】この方法により、低消費型で信頼性の高い集積回路装置を設計することが可能となる。
【0037】本発明の第6の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の故障検査を最適化するためのステップを含んでいる。
【0038】この方法により、故障検査のためのテストコストや制約条件を考慮した集積回路装置の設計が可能になる。
【0039】
【発明の実施の形態】以下、本発明の実施形態について、VC,VCDS,VCDB等の概念の定義と、VCDSの概略構成と、各部の詳細な内容とに分けて説明する。
【0040】[VC,VCDS,VCDBの概念]まず、本発明におけるVC及びVCDSの概念について説明する。
【0041】本発明におけるVC(バーチャル・コア)とは、IP(機能ブロック)としばしば同義に使用されるバーチャルコンポーネントとしての”VC”とは異なる概念であって、1つのまとまったブロックで構成されるシステムLSIの設計を対象としており、その中でも、再利用が可能なハードウェア,ソフトウェアを含むデータを指すものとする。そして、VCDS(バーチャル・コア・デザイン・システム)とは、このVCを利用してシステムLSIのハード,ソフトを最適化するためのシステム全体を指すものとする。また、VCDB(バーチャル・コア・データベース)とは、VCを利用した設計のために用いられるデータベースを指すものとする。
【0042】[VCDSの概略構成]図1は、本発明の実施形態に係るシステムLSI設計のためのデザインシステム(VCDS)の構成を概念的に示す図である。
【0043】図1に示すように、本実施形態に係るデザインシステムは、システムの設計のためのデータの格納層であるVCDB100(VCデータベース)と、VCDB100の最適化などを行うための制御システムであるVCDBMS200(VCDBマネージメントシステム)とにより構成されている。
【0044】VCDB100には、VCの集合体として捉えられるVCクラスタ300と、このVCクラスタ300中のVCの構造を決定するためのアーキテクチャ情報401と、システム検証データ402とが含まれている。
【0045】VCクラスタ300には、仕様で記述されるデータを格納するバーチャル・コアである仕様層(仕様VC301)と、動作で記述されるデータを格納する動作層(動作VC302)と、RTレベル(レジスター・トランスファレベル)で記述されるデータを格納するバーチャル・コアである機能層(RT−VC303)とからなる本体部がある。また、VCクラスタ300には、パラメタライズされたテストパターンを有すると共に回路のシミュレーションを行なうためのテストクラスタ304と、シミュレーションなどを行なって各VCの性能を評価するための性能情報305とが存在する。
【0046】性能情報305には、例えば面積,スピードなどのパラメータである性能指標が組み込まれており、例えばRTレベルでは、ある値をかなり正確に算出することができる。また、実際にあるRTレベルでハードを実現したことがあれば、その結果も性能指標に組み込んでおくことができる。
【0047】また、VCクラスタ300内には、各々VCクラスタ本体の1つ又は複数のVCにリンクして、以下の要素が組み込まれている。まず、仕様VC301(仕様層),動作VC302(動作層),RT−VC303(機能層)にリンクした動作回数を解析するモデル310が組み込まれている。また、RT−VC303(機能層)にリンクした目的別機能検証モデル320が組み込まれている。さらに、RT−VC303(機能層)にリンクした,スキャン,BISTなどVCにどのテストを行なうことができるかなどの情報に関する故障検査手法情報330が組み込まれている。
【0048】アーキテクチャ情報401には、実際にそれぞれのVCをどう使用するかということの情報が含まれている。例えばあるタスクをソフトウェアで実現する場合には、「それを実行するプロセッサはなにを使用するのか」、「バス(インターフェイス)はなにを使用するのか」、「電源,クロック供給方式はどうするか」、「論理合成する際のテスト方式はなにを用いるか」、「命名規則の制約(ツールの制約や重複防止のための規則)はどうか」など、そのシステムLSIに必要な種々の情報が含まれている。
【0049】システム検証データベース402は、VCを組み合わせた1つのLSIを構成する場合に、それを機能検証するためのデータベースとなるものである。このシステム検証データ402には、共用テストクラスタ410と、周辺モデルクラスタ420と、VCインターフェースモデルとが組み込まれている。
【0050】共用テストクラスタ410やVCクラスタ300内のテストクラスタ304は、テストベンチ,テストシナリオ,タスク,モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、VCを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル,VCモデルあるいは周辺シミュレーションモデルへのリンクをいう。これらのテストクラスタの具体的な構成例については後述する。
【0051】周辺モデルクラスタ420は、システム検証を行なうときに使用するVCの周辺のモデルであって、例えば外部メディア,外部メモリ,通信用LSIにおける伝送路,センサーなどを記述したモデルなどがある。VCだけでなくこのような周辺モデルを組み合わせることにより、全体のシステム検証を円滑に行なうことが可能になる。VCインターフェースモデルは、システムシミュレーションを行なう際に各VCを係合させてシミュレーションを行なうためのつなぎのモデルとなる部分である。
【0052】また、VCDBMS200は、VCDB100に対する登録や、VCDB100の外方からの検索,インスタンスの生成,その他下記に説明する各種の処理を行なう。登録には、新たなコアとして登録するほか、既存VCを参照して新たなVCを生成し、そのVCの機能を改変したり、VC内のデータの追加登録を行なったり,差分管理情報を格納したりすることが含まれる。検索とは、どのレベルのVCでどういう種類の情報が欲しいかということの検索である。
【0053】そして、VCDBMS200内には、テストシナリオ生成,目的別検証用モデル(シミュレーションモデル)の生成,システム検証モデル(システムシミュレーションモデル)の生成などを行なう機能検証支援手段500と、動作回数解析及び回路最適化手段600と、VCインターフェース合成手段700と、VC故障検査方式の選択・最適化や故障検査スケジュールの立案を行なうための故障検査戦略最適化手段800とが設けられている。
【0054】図2は、本実施形態のVCDSにおける設計の基本的な流れを示す図である。同図に示すように、仕様レベル,動作レベル及びRTレベルのいずれにおいても、記述,検証,評価,合成の手順によりVCの生成,改変などが行なわれる。例えば、仕様レベルにおいては、仕様VCであるS1,S2が選び出されたり、新たなVCであるS3が生成されたりする。その際、図中矢印に示す方向に沿ってデータが流れて、データの記述,検証,評価が行なわれ、評価はフィードバックされる。動作レベルでは、各仕様VCであるS1,S2,S3に対応した動作VCであるD1,D2,D3が生成されるが、各VCはハードウェア,ソフトウェアに機能分割される。また、RTレベルでは、各動作VCであるD1,D2,D3に対応するRT−VCであるR1,R2,R3が生成されるとともに、これらを接続するバス,CPU,メモリ等が生成される。つまり、より具体化されることになる。
【0055】各々のタスクは、外部入出力部及び仕様VCと状態遷移などで記述されている。仕様VCは、状態遷移,論理,真理値表などを表現できる言語あるいは図形で記述されている。
【0056】このように、各階層にVCを配置してこれらを総合的に管理することにより、従来の機能ブロックとは異なり、フレキシブルに利用できるデータベースの提供を図ることができる。
【0057】図3は、図1に示すシステムの機能部分を抜き出して示すブロック回路図である。同図において、VCクラスタを格納しているデータベース格納層に情報を入力するための入力部と、データベース格納層からの出力情報を受ける出力部と、データベース格納層,入力部及び出力部を制御する制御部とを有する。VCクラスタには、仕様VCを生成する仕様層と動作VCを生成する動作層とを含む仕様動作層と、RT−VCを生成するRT層という機能が存在する。このうち、仕様層と動作層とは必ずしも明確に区分できない場合があるので、仕様動作層と一括して示されている。ここで、動作とは1つの仕様に対してソフトウェア,ハードウェアの割り当てを定めたものであって、一般的には1つの仕様に対して複数の動作がある。RT(レジスター・トランスファ)とは、動作に対してハードウェア的に実現できるものであって、一般的には1つの動作に対して、重視するパラメータの相違などに応じた何種類かの実現方法がある。すなわち、後に詳しく説明するように、1つの仕様VCに対して複数の動作VCを、1つの動作VCに対して複数のRT−VCをそれぞれ階層的に有しているのが一般的である。ただし、仕様と動作とはいずれも機能的な概念を表すものともいえるので、その区別が困難な場合もあり、その場合には、仕様・動作VCとしてデータベースを持っておくことも可能である。
【0058】[VCクラスタの構成]次に、図1に示すVCDSの各部の詳細な構造や機能などについて、それぞれ各部に分けて説明する。
【0059】(VCクラスタ本体部の構成)図4は、VCクラスタ本体部の機能を詳細に説明する図である。同図に示すように、仕様層においてある機能を表現する仕様VCがあると、その下流側の動作層においてはそれを実現するための複数の動作VC1,動作VC2が一般的には存在し、さらに下流側のRT層においては各動作VC1,動作VC2を実現するためのそれぞれ複数のRT−VC1a,RT−VC1b,RT−VC2a,RT−VC2bが一般的には存在する。例えば、”乗算”という1つの仕様に対し、”乗算”を実現するための動作は複数の足し算とシフトなどの動作の組み合わせからなるので、複数通りの動作が存在するのが一般的である。もちろん、下流側に1つのVCしか存在しないこともあり得る。図4に示す例では、例えば”乗算”という1つの仕様VCに対し、遅延を重視した実現方法が動作層VC1であり、(占有)面積を重視した実現方法が動作層VC2である。そして、各層ごとにインスタンスVCを生成して付加する機能が備わっており、図4には、例としてRT−VC1a,RT−VC1b,RT−VC2a,RT−VC2bにおいて、それぞれ1又は複数のインスタンスVCを生成する機能が表わされている。
【0060】図5は、本実施形態における各VCの構造を示す図である。仕様層,動作層,RT層などの各階層のVCには、後述する設計データ(図)と、テストベクタなどの検証データと、面積,遅延(,消費電力)などの性能情報と、対象VCの上位概念を持つ上位層VC,下位概念を持つ下位層VCなどに関するリンク情報となる上下層(親子)情報と、VC作成時に参照した同一層のVCや参照されたVCなどに関する派生情報と、同一層(動作層など)に属するVC間で共有する情報があればその共有情報と、追加や修正があった場合にはその改変内容と、例えばパラレル又はシリアル又はPCIパスなどのバスを生成するためのインターフェイス情報とが備えられている。
【0061】図6は、各層のVCのデータ及び性能情報の関係を示す図であって、同図の右側には、(占有)面積と遅延とを性能評価のパラメータとして採用したときの各層の性能情報の例が示されているが、同図の左側には、後述する図7〜図9に例示するような各層の設計データや検証データが存在するが、図6においては説明を簡単にするために図示を省略する。以下、各層の内容について説明する。
【0062】−仕様層−仕様層は機能とでもいうべき基本的な入出力関係を規定する部分であるので、仕様層内の設計データには、入出力信号の種別や、テキストベースのデータ,プロトコルなどの規格、ある規格に合わせるための目標性能などの性能、ドキュメントとして与えられている機能仕様がある。仕様検証モデルは、FSM(状態遷移),CFG(コントロールフローグラフ),DFG(データフローグラフ)などで表現されている仕様記述(言語又は図)である。具体的なフォーマットの例としては、例えばVHDL,SDL,LOTOS,C/C++などというものである。図7は、SDLというフォーマットで記述されたある設計データの例である。
【0063】−動作層−動作層は、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とに分かれている。アーキテクチャ情報は、対象プロセッサ名、OS名、ハードウェア,ソフトウェアの通信方法などを含んでいる。例えば、プロセッサとOSとシミュレーションとを組み合わせる場合には、使用するプロセッサはSparc,Pentiumなどで、使用するOSはUNIX,Windowsなどで、使用するハードウェア,ソフトウェアの通信方法はIPC,PLIなどであって、これらの適当な組み合わせを記述すると共に、必要な前提条件などを記述しておく。ただし、CPUはなくてもよい場合がある。また、ハードウェア部には、仕様層に対して具体化した機能がドキュメントとして残されており、具体的には、仕様になかった詳細な動作モードが記述されている。図8は、ハードウェア部に格納されているデータの例を示す図である。VerilogHDL,VHDLなどのハードウェア記述言語で記述されている。ソフトウェア部の内容は、ソースコード(例えばC/C++)により記述される。図9は、ソフトウェア部に格納されたデータの例を示す図である。
【0064】図10は、動作層の検証の際に使用される環境を示す図である。ハードウェア部(HW)と、ソフトウェア部(SW)と、CPUが存在する場合にはCPUと、これらを接続する通信手段(Communication)とが存在している。場合によっては、通信手段とソフトウェア部との間にOSが介在していることもある。つまり、この状態では、バスの接続は未定である。
【0065】−RT層−次に、RT層も基本的には、上述の動作層と同様に、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とを備えている。ただし、図11に示すように、RT層においては、ハードウェア部(HW)と、CPUと、メモリ(MEM)と、ソフトウェア部(SW),OSとを接続するバスが形成されている。つまり、通信方法についても、どのように接続するのかというレベルまで具体化され、ハードウェアに確実に具現化できる,つまり論理合成できるものになっている。そして、ハードウェア部及びソフトウェア部の双方に、メタ層とインスタンス層とが存在する。ただし、インスタンス層とは、変数をパラメータとして記述されているメタ層の変数を定数で置き換えたものである。図12は、RT層におけるメタとインスタンスとの例を示す図である。
【0066】RT層内のアーキテクチャ情報としては、以下のような情報がある。
【0067】まず、プロセッサ(CPU)情報として、動作層及びRT層で使用する協調検証モデルがある。これはプロセッサごとに存在する。
【0068】次に、バス(IF)情報として、バスの信号の種別や幅などの情報や、バスのプロトコル(タイミング)がある。これらは、プロセッサを各ハードウェアを接続するための内容が含まれている。
【0069】テスト方式に関する情報として、テスト方式と必要な機能・仕様(専用端子),付加回路)がある。例えばFull Scanの方式であれば、Sin(スキャンイン),Sout(スキャンアウト),Sclk(スキャンクロック),TEの信号などの情報が必要である。バウンダリースキャンテスト方式の1つであるJTAGを採用するのであれば、制御端子やTAPコントローラ回路などの情報が必要である。外部から直接それぞれのコアをテストする分離テストを行なうのであれば、テストモード端子,セレクタ回路などの情報が必要である。命名規則としては、例えば「モジュール名は英数字の小文字16字以下であること」などいう,生成したインスタンスVCを処理するEDAツールごとの制約や、「モジュール名の先頭に、”A981005 Nを付加すること」などという,同じ名称で異なるインスタンスVCを生成しないための制約などがある。
【0070】−各層における性能情報−仕様層において、図4に示す仕様VCがある場合、この仕様VCの性能を面積と遅延で表すと図6の右上部に示す範囲(ハッチング部)である。そして、この仕様VCに対して、図4に示すような遅延を重視した実現方法である動作VC1と、面積を重視した実現方法である動作VC2とがあった。図6の右中央部に示すように、動作VC1,動作VC2の範囲は、それぞれハッチングが施された遅延の小さい領域及び面積の小さい領域である。さらに、RT層には、図4に示すように、動作VC1に対するRT−VC1a,RT−VC1bと、動作VC2に対するRT−VC2a及びRT−VC2bとがあった。図6の右下部に示すように、各VCの面積及び遅延は具体的な曲線状のある点として定まる。
【0071】ここで、性能情報には多数のパラメータがあることから、各層の性能情報は実際には図6のような平面座標系ではなく、多次元座標系で表されることになる。したがって、性能情報は、RT層においては多次元空間内のある範囲又は点として、仕様層又は動作層においては多次元空間内のある範囲として、それぞれ表されることになる。
【0072】(VCクラスタの外部の構成)
−動作回数解析モデル−図13は、図1中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。ブロック内のネット長に比べてブロック間のネット長は長くなるので、動作回数の多い配線がブロック間にある場合にはその配線をブロック内に組み込む。これにより、配線容量が低減し消費電力が削減される。また、例えば回路を並列化して回路動作を分散させることにより、モジュール内の動作回数を低減する。入力情報を交換しても出力結果が異ならない複数のピンがある場合には、ピンに接続するネットを交換することにより内部動作回数を低減でき、ネットの信号の遷移を均等化させることにより回路の劣化を抑制することができる。さらに、フロアプラン時には合計の長さしか考慮されていなかったネット配線に関して、動作回数を考慮したネット配線を行なうことにより、遅延制約に反しない範囲で動作回数の低減を図ることができる。そして、このような処理を行なうためのモデルをVCDB100内に組み込むことにより、低消費電力で信頼性の高いLSIを設計することが可能になる。
【0073】−目的別検証モデル−図14は、目的別機能検証モデル320の内容の例を示す図である。同図に示すように、VCクラスタ本体部のRT−VC303には、実際の回路として表されるようなRTレベルの設計記述であるRT−VC1,RT−VC2,…が組み込まれている。これに加えて、機能検証システムにおいても、ある特定の目的に応じて検証ができるような検証モデル(シミュレーションモデル)である目的別機能検証モデル320が、各RT−VC1,RT−VC2,…毎に組み込まれている。1つの目的別機能検証モデル320には、例えば、同期化モデル321、記述最適化モデル322、動作チェッカー組込モデル324などが並列に配設されている。
【0074】同期化モデル321は、通常単位時間で動作するようなモデルに対し、同期クロック信号のサイクル毎にしか検証しないというものである。これは、実動作ほどの正確さが不要な検証においては、細かい動作や遅延などを省略してシミュレーションの高速化を図ろうとするものである。
【0075】記述最適化モデル322は、以下の目的で設けられている。実際に回路化するには論理合成できるような記述が必要であるが、そのような記述を用いて検証用のシミュレーションを行なうと遅くなりすぎる場合がある。そこで、記述をシミュレーション向きに変換して、回路合成上はよくないがシミュレーション上は最適になるようなモデル高速化するために記述最適化モデル322と、この記述最適化モデル322とVCクラスタ本体部のRT−VC中の本来の回路記述との対応付けを行なうためのリファレンス323とを備えている。
【0076】動作チェッカー組込みモデル324は、後述するように、VCの使用上あるVCはどのような測り方をすればよいかを示すモデルである。例えば、入力信号にはある信号パターンを入れてはいけないとか、内部状態においてもあるシーケンスで内部状態が遷移してはいけないなどという禁止事項をシミュレーションモデルに組み込んであり、そのような禁止事項がシミュレーションの実行中に生じた場合には、エラー情報を返してくるような仕組みが組み込んであるモデルである。この動作チェッカー組込みモデルには、エラーがあったときエラーの意味を解析するためのチェック結果解析情報325が付設されている。つまり、VCクラスタ本体部の各VCに入っている実際の回路に関する設計データそのものを用いて検証を行なうのではなく、目的に応じた最適な検証を行なうためのモデルを備えている。
【0077】図15は、目的別機能検証モデル320内の各モデルのうち特に同期化モデル321の使用方法を示す図である。本実施形態における同期化モデル321は、上述のようにクロックのサイクルだけに同期して検証を行なわせるためのモデルである。しかし、VCクラスタ本体部に同期化モデル321があるというだけでは、高速の検証を行なわせるための同期化が困難であることが多い。そこで、共用テストクラスタ410中の各RT−VCや周辺モデルクラスタ420にも、VCクラスタ本体部中の同期化モデルと同じ精度を有する同期化テストクラスタ411,同期化モデル421がそれぞれ組み込まれている。これらの同期化モデルの作り方については、後述する。
【0078】−システム検証データベース−図16は、システム検証用データベース内において共用テストクラスタ410,周辺モデルクラスタ420を用いたテストの流れ(テストシナリオ)を示す図である。同図に示すように、共用テストクラスタ410は、アプリケーション層411(仕様レベル)と、アーキテクチャ層412(動作レベル)と、機能層413(機能レベル)とに階層化されている。周辺モデルクラスタ420は、アプリケーション層421(仕様レベル)と、アーキテクチャ層422(動作レベル)と、機能層423(RTレベル)とに階層化されている。そして、システム検証データベース402には、共用テストクラスタ410と周辺モデルクラスタ420との間で、VCクラスタ本体部の各VC301,302,303と共通の階層においてシミュレーションを行なうための仕様レベルシステム検証モデルと、動作レベルシステム検証モデルと、RTレベルシステム検証モデルとが備えられている。
【0079】−故障検査戦略最適化手段−図17は、故障検査戦略最適化手段800による故障検査戦略を最適化する方法を示すブロック図である。同図に示すように、設計要求がなされると、故障検査戦略最適化手段800により、VCDB100からRT層のVC(RT−VC)と、故障検査方式とが選択される。設計要求には、システムLSIの要求仕様(面積,ピン数,テスト時間,優先制約重み情報など)や、VC情報がある。故障検査戦略最適化手段800は、故障検査戦略知識ベースを参照して、各種のパラメータを考慮した最適化の演算を行ない、最適な故障検査戦略と、1チップ故障検査制御回路とを生成する。
【0080】ここで、上記VCDB100には、複数の機能が同じでテスト手法が互いに異なる複数のVCクラスタが格納されている。また、VCDB100には、VCクラスタの1つについて、機能が同じでテストパターンが互いに異なる複数のテスト手法が格納されている。さらに、VCDB100には、複数のテスト手法についてのテストコストに関連する情報が格納されており、例えば、集積回路装置の使用するピン数,テストパターン長,集積回路装置の面積,故障検出率,テスト時間,設計工数及び集積回路装置の歩留まりなどがある。また、VCDB100内には、テスト制約に関連する情報も格納されており、例えば、ピンの状態,ダイナミック又はスタティックであることの制限及びテストパターンの分割に関する情報がある。
【0081】次に、テストコストを最小化するための対策について説明する。
【0082】例えば、テストコストを面積とテスト時間と設計工数の3つのパラメータによって評価するとする。この場合、総テストコストCtotlは、面積コストCsizeとテスト時間コストCtimeと設計工数コストCprocの和として表される。
【0083】Ctotl=Csize+Ctime+Cprocところが、上述のように禁止事項やトレードオフになる関係があるので、ユーザの重視度合いに応じて、面積コスト,テスト時間コスト,設計工数コストに対して、それぞれ重み付けα,β,γをつけることにより、制約条件を考慮したコストの評価を行なうことができる。
【0084】その結果、テストコストを最小化するための評価関数は、下記式で表されることになる。
【0085】
Ctotl=α・Csize+β・Ctime+γ・Cprocそして、上式に基づいてテストコストを最小化するためのテスト手法を選択することが可能になる。ただし、評価関数を構築するに際しては、上述の3つのパラメータだけでなく他のパラメータを組み込むことができる。
【0086】このような故障検査最適化手段800を設けることにより、禁止されるテスト種類の組み合わせやトレードオフ関係にあるテスト種類を選択するという制約条件下において、テストコストを最小化することが可能になる。
【0087】−VC合成インターフェースモデル−VCインターフェースモデルとは、VCクラスタのうち相異なる層(例えば仕様層とRT層)のVCモデルを組み合わせ、VCベースのシステムLSIシステムシミュレーション(ミックスレベル)を行なうためのシミュレーションモデルである。
【0088】一般に、シミュレーションは、抽象度の高い層から順に,つまり仕様層,動作層,RT層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるVCにおいてはどのRT−VCを用いるかまで具体的に決まっているが、別のVCではまだ仕様VCまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。ところが、共通の層でしかシミュレーションを行なうことができないと、システムLSIのシミュレーションにおいて、仕様・動作層の設計を行なう段階で部分的にRT層のVCを組み込んだシミュレーションや、RT層のVCにおけるシミュレーションで一部に仕様層のVCを組み込んだシミュレーションを容易に実施することができず、設計の効率化を図ることができない。
【0089】一般に、シミュレーションは抽象度の高い層から順に,つまり仕様層,動作層,RT層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるVCにおいてはどのRT−VCを用いるかまで具体的に決まっているが、別のVCではまだ仕様VCまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。また、シミュレーションの際にVCによって求められる精度が異なる場合には、可能な限り抽象的なレベルでシミュレーションを行なったほうが高速化を図ることができる。
【0090】そこで、例えばアーキテクチャ層VCインターフェースにより、VC−A,B,CについてはRTレベルを、VC−Xについては動作レベルを、VC−Yについては仕様レベルを用いることにより、レベルの異なるモデルを組み合わせてシミュレーションを行なうことができる。VCインターフェースモデルとは、このようにレベルの異なるモデルを組み合わせてシミュレーションを行なう際に用いられるつなぎのモデルである。VCインターフェースモデルは、アプリケーション層やアーキテクチャ層から見ると、マイコン制御における状態遷移図のようなレベルのモデルである。
【0091】図53は、VCインターフェースモデルの構成を示すブロック図である。同図に示すように、VCインターフェースモデルは、VCクラスタの仕様層,動作層,RT層のデータをそれぞれ入力する仕様層入力部,動作層入力部,RT層入力部と、該各入力部からの入力データを出力先のデータ転送レートに応じて転送レートを変換する転送レート変換手段と、出力先のデータ精度に応じて各データの精度を変換するデータ精度変換手段と、出力先のプロトコルに応じて各データのプロトコルを変換するプロトコル変換手段と、これらの各変換手段で変換されたデータをVCクラスタの仕様層,動作層,RT層にそれぞれ出力する仕様層出力部,動作層出力部,RT層出力部とを備えている。例えば、仕様層の入出力はデータファイル形式,実数で取り扱われ、動作層の入出力は同期転送,整数で取り扱われ、RT層の入出力は同期転送,有限ビット列,同期信号,イネーブル信号制御で取り扱われる。
【0092】図54は、VCインターフェースモデルを組み込んだVCDB100を利用してシステムのシミュレーションを行なう際に(例えば機能検証支援手段500により)生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。VCDB100内には、VCインターフェースモデルと、コントロールVCクラスタ,信号圧縮VCクラスタ,メモリVCクラスタなどのVCクラスタとが組み込まれている。そして、機能検証支援手段500により、システムシミュレーションモデルとして例えば以下の要素が生成される。例えばVCDB100内のコントローラVCクラスタの動作VCを利用してコントローラ動作VCが生成される。VCDB100内の信号圧縮VCクラスタの仕様VCを利用して信号圧縮仕様VCが生成される。VCDB100内のメモリVCクラスタのRT−VCを利用してメモリRT−VCが生成される。そして、VCDB100内のインターフェースVCモデルを利用して、システムシミュレーションモデル内に生成されたコントローラ動作VCと信号圧縮仕様VCという互いに異なる層の2つのVC同士をつなぐための第1VCインターフェースモデルが生成される。また、システムシミュレーションモデル内に生成されたコントローラ動作VC,信号圧縮仕様VC及びメモリRT−VCというそれぞれ異なる層の3つのVC間をつなぐための第2VCインターフェースが生成される。
【0093】図55は、システムシミュレーションモデル内における第2VCインターフェースモデルの役割を説明するためのブロック図である。上述のように、仕様層の入出力はデータファイル形式,実数で取り扱われ、動作層の入出力は同期転送,整数で取り扱われ、RT層の入出力は同期転送,有限ビット列,同期信号,イネーブル信号制御で取り扱われる。そして、第2VCインターフェースモデルは、例えば信号圧縮仕様VCとメモリRT−VCとの間をつなぐために、パラレル/シリアル転送変換,同期読み出し,有限ビット幅への丸め込みなどの機能を備えている。そして、第2VCインターフェースモデルは、信号圧縮仕様VCに対してはデータファイル,遅延時間0,実数でデータを授受する一方、メモリRT−VCに対しては有限ビット幅(例えば16ビット幅)での同期転送,バスプロトコルありなどによってデータを授受するような構成となっている。
【0094】このようなVCインターフェースモデルを備えることにより、トップダウンにシステムLSIを設計する際に、異なる層のVCモデルを組み合わせたシミュレーションモデルを容易かつ柔軟に構築することができ、設計の効率化を図ることができる。
【0095】[機能検証のための各種手段と生成されたモデル]ここでは、図1に示すVCDBMS200内の各手段によるマネージメント方法と、その結果生成される検証のための各種モデルとについて説明する。生成されたモデルは、図1に示すVCBD100内のいずれかに組み込まれているのが原則であるが、必ずしもVCBD100内に組み込まれなくてもよい。
【0096】(機能検証支援手段)
−概略構成−図18は、機能検証支援手段500の動作を説明するためのブロック図である。まず、どのような検証(シミュレーション)を行ないたいかについての検証要求(パラメータ)が入力される。すなわち、検証要求として、検証するのにどのVCを使用するのか、VCのレベルはどの階層を使用するのか、同期モデルや記述最適化モデル,動作チェッカー組込みモデルなどのうちどのモデルを使用するのか(モデル指定)、どのようなテストシナリオを使用するのか、どのようなテストベンチを準備するのかというパラメータが入力される。機能検証支援手段500は、このような検証要求に対応したVCクラスタに関する情報や、共用テストクラスタ,周辺モデルに関する情報などをVCDB100から取り出して、シミュレーションするためのテストベンチ,テストシナリオ,タスクや、シミュレーションモデル(目的別機能検証用モデル,システム検証モデルなど)を生成する。また、この生成したモデルをVCDB100に格納することも可能である。
【0097】図19は、仕様レベル,動作レベル,機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。シミュレーション回路条件がデータベースに入力されると、すでに作成されたシミュレーション用回路を用いて、あるいは一部不足しているものがあれば新規に設計した回路を用いて、論理シミュレータによりシミュレーションを行なって、シミュレーション結果を出力する。
【0098】−同期化モデルの作成例−図20は、機能検証支援手段500の一部である同期化モデル生成手段510によるモデル生成方法を示す図である。同期化モデル生成手段510は、使用する回路,メモリ,テストクラスタの指定及びそれらで定義されているパラメータの指定などに関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,メモリモデル,テストクラスタ(機能層)などに関するシミュレーションモデルの記述を参照して同期化モデルを生成する。同期化モデル生成手段510には、タイミング解析手段511と回路変更手段512とが含まれており、このタイミング解析手段511と回路変更手段512とにより、以下の手順で同期化モデルが生成され、RTレベル回路とメモリモデルとテストクラスタ(機能層)とを含むシミュレーション用回路が生成される。
【0099】図21は、VCDB100内のテストクラスタ,RTレベル回路,メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。テストクラスタからRTレベル回路に入力される信号tb−outは220ns後に出力“1”になり、420ns後に出力“0”になるものとする。テストクラスタから50ns毎に反転するクロックclkが入力されるものとする。このとき、RTレベル回路内において、信号tb−outを入力信号cir−in1として受け、フリップフロップをベースとする同期回路を経て、メモリモデルにメモリ要求のための信号cir−out1が出力される。また、メモリモデル内において、メモリ取り出し要求信号mem−inが入力されてからメモリ出力信号mem−outが出力されるまでの遅延時間が120nsであるものとする。その後、RTレベル回路において、信号mem−outを入力信号cir−in2として受け、ラッチをベースとする非同期回路を経て、信号cir−out2が出力される。そして、テストクラスタにおいて、信号cir−outを入力信号tb−inとして受ける。
【0100】図22(a),(b)は、それぞれ同期化モデル生成手段510によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル(機能レベルの)におけるタイミングチャートである。例えば、元のシミュレーションモデルにおけるtb−outの立ち上がり,立ち下がりタイミングがそれぞれ220ns,420nsである場合に、このタイミングをそれぞれクロックの半周期50nsの倍数である200ns,400sに修正する。また、元のシミュレーションモデルにおいてはメモリモデル内における遅延時間が120nsであったのを、50nsの倍数である100nsに修正する。ただし、クロックのエッジを詳細に見ると微妙にずれていてもよい。
【0101】通常、設計される回路は複雑なタイミング制御によって動作する。その場合、従来のシミュレーションモデルでは、実動作におけるタイミングに沿ったシミュレーションモデルを作成する。しかし、機能検証のためのシミュレーションを行なう場合には、実動作とは異なり、細かい遅延時間などは無視してクロックの半周期長単位で処理しても実際上不都合を生じないことが多い。これによって、シミュレーションの高速化を図ることができる。
【0102】なお、この例では、シミュレーションのタイミングをクロックの半周期の倍数に同期させたが、クロックの1/4周期などクロックと同期する半周期以外の特定周期の倍数となるようにしてもよい。
【0103】−記述最適化モデルの作成例1−図23は、機能検証支援手段500の一部である記述最適化モデル生成手段520Aによるモデル生成方法を示す図である。記述最適化モデル生成手段520Aは、使用する回路,共用テストクラスタの指定などに関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,共用テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Aには、回路検索手段521と回路変更手段522とが含まれており、この回路検索手段521と回路変更手段522とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路とテストクラスタとを含むシミュレーション用回路が生成される。
【0104】図24は、このときの具体的な処理の例を示す図である。まず、回路検索手段521により、VCDB100内の回路VCの記述と、テストクラスタ内の条件式信号線の値の設定に関する記述とを読み込む。その結果、回路VCの記述には、flg1が“1”のときには処理1aを行ない、flg1が“1”でないときには処理1bを行なうという条件文があり、テストクラスタVC内の記述には、flg1の値は変化するがflg2の値は変化しないことがわかったとする(図中#0,#100は時刻を示す)。ところが、flg2は“0”のままなのでこのシミュレーションでは処理2aは実行されず、常に処理2bが実行されることがわかる。そこで、回路変更手段522により、処理2a及び制御記述2中の条件文を削除してシミュレーションモデルを生成する。その結果、シミュレーション用回路記述における制御記述2においては、flg2が“0”であるか否かに拘わらず処理2bを行なうことように記述される。ただし、このように記述を変更すると、元の回路記述との対応がわからなくなるおそれがあるので、その対応関係を検索するための情報としてリファレンスを設けておく。つまり、変更された回路記述においてはflg2がどのような値を持っているのかわからないが、このリファレンスを参照するとflg2は常に“0”であることがわかる。
【0105】このように、回路記述を変更することにより、シミュレーションの際には不要となる処理を行なうことによる時間の無駄をなくすことができ、シミュレーション用回路記述の最適化を行うことができる。
【0106】−記述最適化モデルの作成例2−図25は、機能検証支援手段500の一部である記述最適化モデル生成手段520Bによるモデル生成方法を示す図である。記述最適化モデル生成手段520Bは、使用する回路,テストクラスタの指定に関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Bには、階層情報検索手段523と階層展開手段524とが含まれており、この階層情報検索手段523と階層展開手段524とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路とテストクラスタとを含むシミュレーション用回路と回路図変換情報とが生成される。
【0107】図26は、このときの具体的な処理の例を示す図である。ここでは、上位にモジュールMAがあり、その下位の階層にモジュールMB,MCがあり、さらにモジュールMCの下位の階層にモジュールMDがあるとする。ここで、階層情報検索手段523により、階層展開前における回路データの階層と信号線の接続情報とを抽出する。その結果、モジュールMB中の素子からモジュールMC中の素子に入力される信号については、モジュールMB内における信号処理B1と、モジュールMA内における信号処理A1と、モジュールMC内における信号処理C1とがあり、モジュールMC中の素子からモジュールMB中の素子に入力される信号については、モジュールMC内における信号処理C2と、モジュールMA内における信号処理A2と、モジュールMC内における信号処理B2とがある。また、モジュールMC中の素子からモジュールMD中の素子に入力される信号については、モジュールMC内における信号処理C3と、モジュールMD内における信号処理D1とがあり、モジュールMD中の素子からモジュールMC中の素子に入力される信号については、モジュールMD内における信号処理D2と、モジュールMC内における信号処理C4とがある。また、信号線の接続情報として、上述のデータに対応した記述が含まれている。
【0108】ここで、信号B1,A1,C1は信号名が異なっているが、本来1つの信号線を流れる1つの信号にすぎない。このように、信号が流れるモジュール毎に信号名を代えているのは、設計の容易さを考慮したからである。ところが、シミュレーション時には、このような区切りを明確にする必要はない。そこで、階層展開手段524により、階層を展開して重複する信号線を共通化したした回路を生成する。その際、異なる階層間で同じ信号を扱う信号線名は、最も最上位の階層における信号線名とする。その結果、階層展開前のシミュレーションモデルにおいては10個あった信号線及び信号の名称が、階層展開後のシミュレーションモデルにおいてはそれぞれ4個に低減される。これにより、シミュレーション速度を高めることができる。
【0109】なお、下層の信号線には先頭にモジュール名をつけておく。階層展開前と展開後とにおける信号線の対応関係を示すリストをリファレンスとして作成しておくことにより、デバック時には信号線及び信号について階層展開前と同様に名称を扱うことができる。
【0110】−記述最適化モデルの作成例3−図27は、機能検証支援手段500の一部である記述最適化モデル生成手段520Cによるモデル生成方法を示す図である。記述最適化モデル生成手段520Cは、使用する回路,シミュレータの指定に関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VCに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Cには、回路記述解析手段525と、回路変換手段526と、シミュレータ個別情報と、回路変換ルールとが含まれており、この回路記述解析手段525と回路変換手段526とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路を含むシミュレーション用回路が生成される。
【0111】図28は、このときの具体的な処理の例を示す図である。VCDB100内においては、回路変換ルールにより変換可能な記述によりRT−VCが作成される。RT−VCにおける改変前のシミュレーションモデルには、処理の種類によってcase文とif文とが混ざり合って使用されているのが一般的である。ところが、あるシミュレータを使用する場合にはif文に従って処理したほうがシミュレーション速度が速くなるが、別のシミュレータを使用する場合にはcase文に従って処理したほうがシミュレーション速度が速い場合がある。
【0112】ここでは、シミュレータ個別情報から、シミュレータAはcase文で処理したほうが処理速度が速く、シミュレータBはif文で処理したほうが処理速度が速いという情報が得られるものとする。そこで、シミュレータBを使用する場合には、回路記述解析手段525により、シミュレーションモデル中にcase文があるかどうかを解析して検索する。そして、回路変換手段526により、シミュレータ個別情報と、case文−if文間の変換を行なう際に従うべき回路変換ルールとを参照して、シミュレーションモデル中のcase文をif文に変換する。
【0113】その結果、シミュレータBを用いる場合により高速で処理を行なうことが可能なシミュレーション用回路が生成される。
【0114】−記述最適化モデルの作成例4−図29は、機能検証支援手段500の一部である記述最適化モデル生成手段520Dによるモデル生成方法を示す図である。記述最適化モデル生成手段520Cは、使用する回路の指定に関するシミュレーション回路条件の入力とシミュレーションに使用しない機能の入力とに応じ、VCDB100内のRT−VCに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Dには、機能解析手段527と、回路変換手段528とが含まれており、この機能解析手段527と回路変換手段528とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路を含むシミュレーション用回路が生成される。
【0115】図30は、このときの具体的な処理の例を示す図である。シミュレーションにおいて回路の動作に寄与しないものがある。図30に示すRT−VCにおいて、機能解析手段527により、RT−VCの機能を解析した結果、シミュレーションを行なう際に、モジュールMAの下位層において、モジュールMBとモジュールMCとは動作して出力に影響を及ぼすが、モジュールMDは動作しないことがわかったとする。つまり、モジュールMDは、データには含まれているが、シミュレーションの結果には何ら影響を及ぼさないものである。そこで、回路変換手段528により、モジュールMDについての回路記述を削除し、モジュールMDがアクセスされるとエラーを返す回路を組み込む。つまり、モジュールMDを切りはなしたシミュレーションモデルを自動的に生成できるようなシミュレーション用回路を作成する。
【0116】これにより、ワークステーション等を用いてシミュレーションを行なう場合に、モジュールMDの分だけメモリを占有することによるシミュレーション速度の低下を回避できる。また、モジュールMDが動作しなくても、入力信号が変化するとシミュレーションは遅くなるが、これを回避することができる。
【0117】ただし、モジュールMDが使用されることもあり得るので、誤ってモジュールMDが使用された場合にこれをチェックするアクセスチェック回路を生成する。これは、シミュレーション速度に影響を与えない程度の小さな容量しか持っていない。
【0118】(検証におけるチェックモデル)ここでは、検証においてVC自体が正常に動作しているかどうかということの検証や、VCを組み込んだ検証において各VCが正常に使用されているかどうかということのチェック機能について説明する。この手段は、図14に示される動作チェッカー組込モデル324として、目的別機能検証モデル320内に組み込まれている。
【0119】図31は、検証のチェック方法を示すブロック図である。VCDB100内には、時相チェックモデル431と内部状態チェックモデル342と入出力データチェックモデル343とを含むモデルが組み込まれている。そして、変換プログラムによって、チェック内容に応じて実際のシミュレーションモデルの中にチェックする仕組みが組み込まれる。この変換プログラムに従って、言語ツールと機能又は論理シミュレータとを用いてシミュレーションを行なうことにより、以下のような各種のチェックが可能となる。
【0120】入出力データチェックモデル343は、以下のようなチェックを行なう記述を含んでいる。例えば図32に示すような入力A1,A2に応じて出力O1,O2を生成する回路がある場合を例に採る。この場合に、各VCの入出力ピンの状態値に関する制約事項が守られているかどうかをチェックするのが入出力データチェックモデル343の機能である。例えば、VCを利用した設計におけるシミュレーション時に、VCに禁止された組み合わせの入力が入ってこないか、逆に、禁止状態の出力がないかなどをシミュレーション中に見張る記述が含まれている。
【0121】内部状態チェックモデル342は、以下のようなチェックを行なう記述を含んでいる。例えば図33R>3に示す内部状態S1,S2,S3を示す回路がある場合、各VCの内部の信号や設計におけるシミュレーション時に、VC内部で禁止されている内部状態が存在しないかをシミュレーション中に見張る記述が含まれている。
【0122】時相チェックモデル341は、以下のような入出力ピンや内部ピンの時相論理のチェックを行なう記述を含んでいる。例えば、図34(a)に示すような入力信号A1,A2を受ける回路において、入力信号A1,A2が図34(b)に示すような変化を示すとする。このとき、入力信号A1がHからLに変化したときに、次にHになるまでに入力信号A2はHにならなければならないという制約があれば、その制約が守られているかどうかを見張る記述が含まれている。
【0123】従来のテストパターンを用いたシミュレーションでは、内部の深い領域で異常状態が発生しても、そのシミュレーションの実行中にそれが外部ピンまで伝わってこない場合がある。それに対して、図31に示すようなチェックモデル341,342,343をVCDB100内に備えておくことにより、異常現象をそれが発生した時点,場所で即座に検出することができる。また、エラーが発生したときに、そのエラーがどういうルールに違反しているかということもわかる。
【0124】従来、以上の3つのようなチェック項目は、HDL又はC言語で記述できるものもある。しかし、このようなチェック項目を現実に記述すること自体がかなり困難であり、かつ、記述量も多くなる。それに対し、本例のようにVCDB100内にこのチェックモデルを組み込むことで、チェックの容易性とチェック精度の向上とを図ることができる。
【0125】(VCインターフェースの合成)従来の手法をそのままVCDSに適用したのでは、LSI設計者がVCDB内のVCをそのまま使用できない。すなわち、VCを組み合わせて回路を設計する際に各VCがデータを入出力するインターフェースとして異なる仕様ないし手順(プロトコル)を有する場合に、そのまま並べて信号線を接続しただけでは正しい信号の授受を行なうことができない。たとえば、バスとVCとの間に配置されるインターフェースであるバスI/Fインターフェースの場合、設計上VCを使用するためには、使用するホスト(CPUなど)に合わせてバスI/Fを修正する必要がある。その結果、流用するVCの数だけバスI/Fを修正することになるので、その間人手によるミスが発生するおそれがある。
【0126】以下に説明するVCインターフェース合成手段700(図1参照)とは、異なる手続きを持ったインターフェース同士でも、自動的にそれらを合わせ込む機能を持ったインターフェース回路というべきものを合成するものである。
【0127】図35は、VCインターフェース合成手段700を用いた設計方法を示すブロック図である。設計する回路のシミュレーションの結果、VCDB100内からVC(RT層)が選び出される。このVCはVCDB100内に格納されているものである。また、シミュレーションにより、インターフェースのパラメータ(例えばアクセスビット数,バッファサイズなど)もわかる。そこで、インターフェース合成手段700により、パラメータを適正に合わせ込みながら適正なVCを選択し,あるいは合成して最適なインターフェースを持ったVCを決定するように構成されている。
【0128】例えば、各インターフェースのアクセスビット数が異なっている場合には、信号の授受を行なうことができない。各インターフェースにおけるバッファサイズが異なると、一定の速度で信号を流したいのに、これが適正に流れなくなるという事態を招く。そこで、インターフェース合成手段700によってこれらのパラメータを合わせ込みつつ適正なVCを決定することにより、自動的に最適なインターフェースを持ったVCを利用した設計が可能となる。
【0129】−バスI/Fへの適用−図36は、図35に示すインターフェース合成手法を、バスとVCとの間のインターフェースであるバスI/Fに適用した場合のインプリメンテーションフローを示す図である。
【0130】まず、最適なVC(RT層)を選択する。そのときに、シミュレーションに使用したホスト(CPUなど)のバスプロトコルに応じ、VCDB100からVC(VC1,VC2,…)を選択する。また、ホストのバスプロトコルからアクセスビット数やバッファサイズなどのパラメータもわかる。これらの情報を受けて、バスインターフェース合成手段700により、そのホストのバスプロトコルに合わせたバスインターフェースを、VC1,VC2,…毎に自動的に決定する。インターフェース合成手段700は、このときのパラメータなどの条件を、全て動作レベル,仕様レベルなどのシミュレーションで出力されたものから受け取り、これらのパラメータを、ホストが要求するバスプロトコルの仕様と、VC自体が持っているインターフェースの仕様とが適合するように、いわばインターフェース部分を吸収するように自動的に決定するのである。このとき、VCDB100から取り出されたVCに適切なものがあればこれを選び、適切なVCがなければ適切なVCを生成する。これによって、そのインターフェースを合わせたVC1A,VC2A,…などが生成される。そして、このVC1A,VC2A,…などを1チップのインプリメンテーションに使用する。
【0131】−バスI/Fに関する具体例−図37は、本具体例におけるVCDB100内のVC(RT層)の構造を示すブロック図である。同図に示すように、VCの構成を機能本体部とバスI/F部とに分離し、機能本体部は、バスI/F部のタイミング等に無関係にしておく。バスI/F部としては、使用するホストのバスプロトコルに合わせた各種のバスI/F部を生成しておく。図37に示す例では、VCDB100内のVC1には3つのバスI/F部−A,B,Cと機能本体部とがあり、VC2には2つのバスI/F部−X,Yと機能本体部とがある。
【0132】図38は、図37に示すバスI/F部−A,B,C,X,Yのビット幅と、リード/ライトサイクルと、最大ブロック周波数とを表にして示す図である。このように、1つのVCに対して複数種のバスI/F部を準備しておくことにより、インターフェース合成の際のパラメータの合わせ込みをより迅速に行なうことができる。
【0133】図39は、インターフェース合成手順を示すフローチャート図である。以下、図39を参照しながら、バスI/Fの自動生成手順について説明する。
【0134】まず、ステップST701において、ターゲット仕様(機能,動作周波数など)を決定し、CPUや周辺部のVC*を選択する。
【0135】次に、ステップST702において、仕様/動作レベルのシミュレーションを行なってから、ステップST703に進み、ステップST703において選択したVC*がターゲット仕様を満足しているか否かを判別する。
【0136】その結果、VC*がターゲット仕様を満足していなければ、ステップST704でステップST702のシミュレーションを実行していないVC*があるか否かを判別する。そして、判別結果がYESである間はステップST701に戻り、ターゲット仕様を満足するVC*が見つかるまで、ST701,ST702,ST703の処理を繰り返す。一方、選択したVC*がターゲット仕様を満足していないにも拘わらずST702のシミュレーションを実行していないVC*がなくなってしまった場合には、ST705においてターゲット仕様を変更してからステップST701に戻る。
【0137】以上の制御をターゲット仕様を満足しているVC*が見つかるまで行なった後、ターゲット仕様を満足しているVC*が現れると、ステップST706に移行して、使用するVCと、このVCに用いられるバスI/F部とを決定する。
【0138】また、シミュレーションにより、CPUとしては図40に示す3つのCPU−1,2,3のうちCPU−2を選択したとする。この場合、機能層のVC(RT−VC)において用意されているCPU−2のバスプロトコルは図40に示されるとおりである。そこで、図38に示すVC1,VC2の各種のうち、このCPU−2のバスプロトコルに適合するものを選ぶと、VC1に対してはバスI/F部−Bに、VC2に対してはバスI/F部−Xがそれぞれ選択されることになる。
【0139】そして、図39に示すように、VCDB100のRT層において、CPU−2と、バスI/F部−B及び機能本体部によって構成されているVC1’と、バスI/F部−X及び機能本体部によって構成されているVC2’という3つのRT−VCが生成される。
【0140】図41は、この選択されたRT−VC間の接続状態を示すブロック図である。同図に示すように、VC1’及びVC2’がCPU−2用の専用バスを介してCPU−2と接続されており、各VC1’,VC2’とホスト(CPU−2)との間のバスのパラメータ(ビット数,動作周波数など)が合わせ込まれているので、VC1’,VC2’,CPU−2同士の間で信号を適正に流通させることができ、自動的な設計が可能になる。
【0141】(システム検証のための構造)次に、システム検証モデル中の階層テストクラスタについて説明する。上述のように、テストクラスタは、テストベンチ,テストシナリオ,タスク,モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、VCを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル,VCモデルあるいは周辺シミュレーションモデルへのリンクをいう。
【0142】図1に示すように、VCDB100内において、VCクラスタ本体部は仕様VC301,動作VC302,RT−VC303の各層に階層化されている。ここでは、システム検証のために生成される階層化されたテストクラスタについて説明する。
【0143】−テストクラスタの階層化−図42は、VCクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。図43,図44,図45は、それぞれ順に、仕様層及び動作層におけるテストクラスタの構造と、機能層におけるテストクラスタの構造と、プロトコル層におけるテストクラスタの構造とを詳細に示すブロック図である。なお、図42R>2において、略記によって示されているパラメータP−1〜10と、各種テストクラスタと、シーケンスのモデルS1〜S4及び構成要素S3−1〜S3−6の具体的な内容は、図43〜図45に示すとおりである。
【0144】ここで、これらのテストクラスタは、図1に示すVCクラスタ300内のテストクラスタ304を利用してもよいし、あるいは、これらのテストクラスタは、すでに準備されているテストシナリオや周辺モデルを含む共用テストクラスタ410を利用して生成することもできる。例えば、テストシナリオや周辺モデルは、複数のVCクラスタに共通なものや、VCクラスタ300外のシステム検証用データベース402として備えているものがある。
【0145】例えば、ある機器を有線(ワイヤ)で接続したり、機器を無線で接続したりすることがある。そのデータの媒体の例としては音声がある。図42〜図45においては、音声のデータを有線又は無線によってある機器Aから機器Bに転送するシステムを例にとっており、このシステムをブロック化して示している。ここでは、この無線データ転送のための回路を設計の対象としている。
【0146】仕様層においては、例えば有線データによって転送したデータを無線データに変換し、さらにそれを音声に変換してアウトプットするなどのタスクが行なわれる。このようなアプリケーションが抽象的に表現されたところで、検証が可能になる。この仕様レベルにおける検証とは、例えば音声のデータをインプットして、それを単にデータを横に転送するというようなレベルでの動作だけの検証を行なう段階になっている。
【0147】動作層においては、無線データ転送部のシーケンス制御の内容が構成A,構成B,構成C,…のVCクラスタとして詳細化される。例えば、構成AのVCクラスタ内には、そのシーケンスで動作するモデルの例として、Timer(S1)と、CPU(S2)と、IrDA(S3)(米国のInfrared data association(規格化団体)で規格化された赤外線を用いた汎用インターフェース名)と、DMA(S4)とが含まれている。
【0148】また、テストクラスタの動作層においては、以下のように詳細化される。有線データ転送部がテストクラスタ1(TB−1),テストクラスタ2(TB−2)などとして詳細化される。例えば、転送の形態がシリアルであり、転送速度が1Mbpsであり、転送タイプがバルク転送であることなどをパラメータとして持つテストクラスタ1が現れる。また、音声変換は、テストクラスタa(TB−a),テストクラスタb(TB−b),…として詳細化される。例えば、変換速度が100bpsであること、圧縮率が90%であることなどをパラメータとして持つテストクラスタaが詳細化される。各VCクラスタの構成A,B,Cには、それぞれ初期化テストクラスタ(I−TB−A,B,C,…)が準備されている。すなわち、仕様層でパラメータP−1〜3を与えることによって、無線データ通信の動作層におけるVCクラスタや、有線データ転送部及び音声変換部のテストクラスタがテーブルから選択されて生成される。
【0149】ここで、動作層になると制御が複雑になり、互いにシーケンスを持つようになる。例えば、無線側のテストクラスタa(TB−a)から構成AのVCクラスタに対してデータがインプットされると、構成AのVCクラスタにおいては、モデルS1〜S4が、“データの受け取り告知−転送の連絡−転送許可の返答に応じた転送”という手順で作動するように単なるシーケンスレベルで表現されている。そして、実際に転送する場合には、有線データ転送部のテストクラスタ1(TB−1)にデータの転送をし始める。同様に、音声変換部のテストクラスタbからVCクラスタ内の構成Bにデータがインプットされると、構成B内の各モデルがシーケンスで作動して、有線データ転送部のテストクラスタ2にシーケンスの結果の信号が出力される。
【0150】次に、動作層から機能層に展開する場合について説明する。例えば、動作層における構成A中のモデルの1つである赤外線通信IrDAを展開すると、赤外線通信IrDAの構成要素である制御部(S3−1),送受信フレーマ(S3−2),CRC計算(S3−3),DMAI/F(S3−4),16bitホストI/F(S3−5),シリアルI/F(S3−6)が現れる。その際、ビットの幅,エラーの訂正の方法などの機能的な面まで表現した機能層として詳細化されている。また、Timer(S1),CPU(S2),DMA(S4)についても、それぞれテストクラスタT−TB,H−TB,D−TBが準備されている。例えば、Timerに対しては、8bitのTimerテストクラスタ(T−TB1)と16bitのTimerテストクラスタ(T−TB2)とが準備されている。CPUに対しては、16bitホストI/Fテストクラスタ(H−TB1)と32bitホストI/Fテストクラスタ(H−TB2)とが準備されている。DMAに対しては、Demand DMAテストクラスタ(D−TB1)と、シングルDMAテストクラスタ(D−TB2)とが準備されている。このような各テストクラスタは、パラメータP−4〜9を与えるとテーブルによって選択される。テーブルで呼び出す際には、テストクラスタのモデルとタスクとが格納されているデータベースから各テストクラスタを呼び出す。これによって、テストを行なうための環境のパーツが揃ったことになる。ここの段階では、データベースとして各要素が準備できることが示されている。
【0151】一方、機能層の音声変換部及び有線データ転送部においては、動作層からさらに詳細化されたテストクラスタが準備されている。例えば、動作層における音声変換部のテストクラスタaには変換速度と圧縮率しか表現されていなかったのを、機能層におけるテストクラスタには、変換の手法としてADPCM(Adaptivedifferential Pulse Code Modulationという規格の音声CODEC変換)を使用することがパラメータとして与えられている。その結果、機能層における音声変換部のADPCMテストクラスタには、ADPCMに相当するモデルとタスクが格納されているデータベースが準備されることになる。同様に、機能層における有線データ転送部には、通信プロトコルとしてUSB(Universal Serial Busという規格の汎用インターフェース名)を使用することや、IEEE1394(IEEE(米国電気電子技術者協会)で規格化された汎用インターフェース名)を使用することがパラメータとして与えられたUSBテストクラスタ,1394テストクラスタが準備されている。以上の構成により、テストを行なうための準備ができ、テスト環境が整ったことになる。
【0152】このように、システム検証用データベースにおいて、設計対象回路だけでなく、設計対象回路に信号を入力する入力側回路と、設計対象回路の出力を受ける出力側回路とにも階層化されたテストクラスタを備えることにより、設計対象回路,入力側回路及び出力側回路の共通の階層において実際に流れる信号の授受とそれに応じたシーケンスなどの動作に対する検証を行なうことができる。
【0153】例えば動作層におけるVCクラスタの構成A,Bにおいて、構成A,Bの各モデルが存在するだけでは構成A,Bの各部分の検証を行なうことはできるもののシステム全体としての検証を行なうことができない。それに対し、この例のごとく、VCクラスタの構成A,において、音声変換部のテストクラスタa,bからのデータのインプットと、有線データ転送側部テストクラスタ1,2へのアウトプットという信号の授受機能を持たせることによって、システム全体の検証を行なうことが可能になる。
【0154】構成Aの1つのモデルにおいても、赤外線通信IrDAという部分だけを捉えて何かデータをインプットし、何らかのデータをアウトプットしたとしただけでは、その部分のみの設計の検証にはなっても、その赤外線通信IrDAという部分がシステム全体の中でどのように作動するかという検証にはならない。この例のように階層化されたテストクラスタを利用することにより、各モデルが実際のシステムに適合した検証を行なうことができる。機能層のような下位の階層においても同様である。
【0155】また、プロトコル層は、データの授受に関する詳細なプロトコル及びタイミングの詳細化を検証するための層である。例えば、図42,図図45には、16bitホストI/Fに関して、16bitPCI,32MHzをパラメータとしてプロトコル及びタイミングに関する詳細化を行なって、16bitPCI−I/F(32MHz)及びそのテストクラスタである16bitPCI−I/Fテストクラスタを生成している。
【0156】−テストクラスタの生成方法−図46は、仕様層−動作層間のテストクラスタ生成方法を説明するためのブロック図である。また、図47及び図48は、それぞれ順に、図46中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでは、図42〜図4545に示す階層化されたテストクラスタのシステムを前提としている。
【0157】無線データ転送のテストクラスタには、無線転送モデル,初期化,送信数設定,データ送信,データ受信という要素がある。無線データ転送のテストシナリオには、送信側と受信側とに分かれて、それぞれ初期化,送信(受信)数設定,データ送信(受信)というステップがある。また、動作層の無線データ転送のテストクラスタを生成するために、動作層の有線データ転送部におけるテストクラスタ1,2と、構成Aに付設されている初期化テストクラスタと、動作層の音声変換部におけるテストクラスタa,bとが使用される。
【0158】そして、動作層のテストクラスタは、無線データ転送のテストクラスタと、上述の各テストクラスタ1,2,a,b及び構成Aの初期化テストクラスタとを組み合わせて生成される。すなわち、無線データ転送のテストシナリオに沿って、動作層における有線データ転送部のテストクラスタ1中のモデル1,動作層における音声変換部のテストクラスタa中のモデルb,無線データ転送のVCクラスタ中の構成Aに対し、それぞれ初期化,送信(受信)数設定,データ送信(受信)の順にタスクのモデルを生成する。例えば、モデル1の初期化とモデルbの初期化と構成Aの初期化とを加えることにより、仕様層における無線データ転送のテストシナリオにおける送信の初期化が詳細化されたコマンドになる。
【0159】この例の方法によると、仕様層におけるテストクラスタを詳細化する際に、上位のテストクラスタから下位のテストクラスタを構築することが可能になる。すなわち、従来の手法を用いたのでは、各階層のテストクラスタつまり各タスクを個別に生成する必要がある。それに対し、この例の方法では、設計対象回路の共用テストクラスタ(テストクラスタ+テストシナリオ)だけでなく、設計対象回路に信号を与える入力側回路と、設計対象回路からの出力を受ける出力側回路とにおける階層化されたテストクラスタを準備し、これと上位のテストクラスタとを用いて下位のテストクラスタを生成しているので、上位のテストクラスタを有効に活用することができる。そして、このテストクラスタの生成を上位層から階層に順次行なっていくことにより、システム全体の検証に必要なテスト環境を整えることができる。
【0160】図49は、動作層−機能層間のテストクラスタ生成方法を説明するためのブロック図である。また、図50及び図51は、それぞれ順に、図49中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでも、図42〜図45に示す階層化されたテストクラスタのシステムを前提としている。
【0161】ここでは、詳細な手順の説明は省略するが、無線データ転送の動作層のテストクラスタに加えて、機能層のVCクラスタ内における8bitのTimerテストクラスタ(T−TB1)及び16bitのTimerテストクラスタ(T−TB2)と、16bitホストI/Fテストクラスタ(H−TB1)及び32bitホストI/Fテストクラスタ(H−TB2)と、Demand DMAテストクラスタ(D−TB1)及びシングルDMAテストクラスタ(D−TB2)と、機能層の音声変換におけるADPCMテストクラスタと、機能層の有線データ転送部におけるUSBテストクラスタ及び1394テストクラスタとを用いて、無線データ転送の機能層テストクラスタが生成される。
【0162】図52は、機能層−プロトコル層間のテストクラスタ生成方法を説明するためのブロック図である。
【0163】ここでは、詳細な手順の説明は省略するが、無線データ転送の機能層のテストクラスタに加えて、機能層のVCクラスタ内における16bitのPCI−I/Fテストクラスタ及び16bitのAPB−I/Fテストクラスタとを用いて、無線データ転送のプロトコル層テストクラスタが生成される。ここで、PCIとは、Peripheral Component Interconnect の略語であって高速なローカルバスの規格をいう。APBとは、Advanced Peripheral Bus の略語であってARM社で使用されているローカルバスの名称をいう。
【0164】なお、上述の手順で生成されたテストクラスタはVCDB100内に配設してもよいし、検証のときのみVCDB100とは別の場所に格納してもよい。
【0165】
【発明の効果】本発明の集積回路装置の設計用データベースによると、テストベクタクラスタや、目的別機能検証モデルや、システム検証用データベースを備えることにより、特に設計中における検証を行なう際における利用性の高い設計用データベースを提供することができる。
【0166】本発明の集積回路装置の設計方法によると、機能検証を支援するためのテストシナリオや検証用モデルを作成し、検証の際にはVCインターフェースを合成することにより、設計中における検証を自動的かつ迅速に行なうことができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るシステムLSI設計のためのデザインシステム(VCDS)の構成を概念的に示す図である。
【図2】本発明の実施形態のVCDSにおけるタスクの基本的な流れを示す図である。
【図3】図1に示すシステムの機能部分を抜き出して示すブロック回路図である。
【図4】本発明の実施形態のVCクラスタの機能を詳細に説明する図である。
【図5】本発明の実施形態における各VCの構造を示す図である。
【図6】本発明の実施形態における各層のVCのデータ及び性能情報の関係を示す図である。
【図7】本発明の実施形態におけるSDLというフォーマットで記述されたある設計データの例である。
【図8】本発明の実施形態におけるハードウェア部に生成されたデータの例を示す図である。
【図9】本発明の実施形態におけるソフトウェア部に生成されたデータの例を示す図である。
【図10】本発明の実施形態における動作層の検証の際に使用される環境を示す図である。
【図11】本発明の実施形態におけるRT層の検証の際に使用される環境を示す図である。
【図12】本発明の実施形態におけるRT層内のメタとインスタンスとの例を示す図である。
【図13】図1中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。
【図14】本発明の実施形態における目的別機能検証モデルの内容の例を示す図である。
【図15】本発明の実施形態における目的別機能検証モデル内の同期化モデルの使用方法を示す図である。
【図16】本発明の実施形態におけるシステム検証用データベース内において共用テストクラスタ,周辺モデルクラスタを用いたテストの流れ(テストシナリオ)を示す図である。
【図17】本発明の実施形態における故障検査戦略を最適化する方法を示すブロック図である。
【図18】本発明の実施形態における機能検証支援手段の動作を説明するためのブロック図である。
【図19】本発明の実施形態における仕様レベル,動作レベル,機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。
【図20】本発明の実施形態における機能検証支援手段の一部である同期化モデル生成手段によるモデル生成方法を示す図である。
【図21】本発明の実施形態におけるVCDB内の共用テストクラスタ,RTレベル回路,メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。
【図22】(a),(b)は、それぞれ本発明の実施形態における同期化モデル生成手段によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル(機能レベルの)におけるタイミングチャートである。
【図23】本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図24】本発明の実施形態におけるシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図25】本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図26】本発明の実施形態におけるシミュレーション用回路と回路図変換情報とを生成するときの具体的な処理の例を示す図である。
【図27】本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図28】本発明の実施形態におけるRTレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図29】本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図30】本発明の実施形態におけるRTレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図31】本発明の実施形態における検証のチェック方法を示すブロック図である。
【図32】本発明の実施形態における検証のチェック対象となる入出力ピンを含む回路の構成を概略的に示す図である。
【図33】本発明の実施形態における検証のチェック対象となる内部状態を含む回路の構成を概略的に示す図である。
【図34】(a),(b)は、それぞれ本発明の実施形態における検証のチェック対象となる回路の構成を概略的に示す図、及び信号のタイミングチャート図である。
【図35】本発明の実施形態におけるVCインターフェース合成手段を用いた設計方法を示すブロック図である。
【図36】図35に示すインターフェース合成手法を、バスとVCとの間のインターフェースであるバスI/Fに適用した場合のインプリメンテーションフローを示す図である。
【図37】本発明の実施形態におけるバスI/Fを備えたVCDB内のVC(RT層)の構造を示すブロック図である。
【図38】図37に示すバスI/F部−A,B,C,X,Yのビット幅と、リード/ライトサイクルと、最大ブロック周波数とを表にして示す図である。
【図39】本発明の実施形態におけるインターフェース合成の手順を示すフローチャート図である。
【図40】本発明の実施形態におけるインターフェース合成における各種CPUの仕様を表にして示す図である。
【図41】本発明の実施形態におけるインターフェース合成によって選択されたRT−VC間の接続状態を示すブロック図である。
【図42】本発明の実施形態におけるVCクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。
【図43】図42中の仕様層及び動作層の構成を詳細に示す部分拡大図である。
【図44】図42中の機能層の構成を詳示する部分拡大図である。
【図45】図42中のプロトコル層の構成を詳示する部分拡大図である。
【図46】本発明の実施形態における仕様層−動作層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図47】図46中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図48】図46中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図49】本発明の実施形態における動作層−機能層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図50】図49中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図51】図49中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図52】本発明の実施形態における動作層−プロトコル層間のテストクラスタを生成する方法を示すブロック図である。
【図53】本発明の実施形態におけるVCインターフェースモデルの構成を示すブロック図である。
【図54】本発明の実施形態におけるVCインターフェースモデルを組み込んだVCDBを利用して生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。
【図55】システムシミュレーションモデルにおける第2VCインターフェースモデルの役割を説明するためのブロック図である。
【符号の説明】
100 VCDB(VCデータベース)
200 VCDBMS(VCデータベースマネージャ)
300 VCクラスタ
301 仕様VC
302 動作VC
303 RT−VC
304 テストベクタクラスタ
310 動作回数解析モデル
320 目的別機能検証モデル
330 故障検査手法情報
401 アーキテクチャ情報
402 システム検証用データベース
410 共用テストクラスタ
420 周辺モデルクラスタ
430 VCインターフェースモデル
500 機能検証支援手段
600 動作回数解析及び回路最適手段
700 VCインターフェース合成手段
800 故障検査戦略最適化手段
【0001】
【発明の属する技術分野】本発明は、集積回路装置の設計に用いられるデータベース及びそれを利用した設計方法に係り、特に、システムオンチップ化に対応するための設計技術に関するものである。
【0002】
【従来の技術】従来より、電子機器内の半導体装置は、例えばメモリ,プロセッサなどの種類ごとの個別のLSIとして半導体チップ上に形成された後、各チップをプリント配線基板などの母基板上に実装することにより製造されてきた。
【0003】ところが、最近、電子機器のより広範な利用を図るべく、電子機器に用いられる半導体装置は小型化,軽量化,省電力化及びコストの削減を要求されており、特に、デジタル情報家電分野はその傾向が強い。そして、このような電子機器産業界の要請に応じて、半導体産業はその重心をメモリからシステムLSIに移行させることを余儀なくされている。
【0004】かかるシステムLSIは、具体的には、メモリや各種の論理回路を1つのチップ上に設けることにより実現される。システムオンチップ化のためには、異なる構造を有するトランジスタ等の素子を共通の基板上に形成するためのプロセス上の技術が必要であることはいうまでもないが、設計技術においても大きな変革が要求される。
【0005】そこで、このようなシステムオンチップ化に対応した設計技術として、ある機能を実現する多くのセルからなる1つのブロック(例えば機能ブロックと呼ばれるもの)を設計するためのデータを予め用意しておいて、このデータを利用して、各ブロックを組み合わせた所望のシステムLSIを設計することが提案されている。その場合、各機能ブロックごとに機能を実現するための構造が定められているので、半導体装置全体の設計においては、各機能ブロック間の配線や周辺回路の設計を行なうだけで済む。このようにして、設計効率の大幅な向上を図ろうとするものである。
【0006】
【発明が解決しようとする課題】しかしながら、上記従来の設計手法では、論理設計,レイアウト設計などの下位側の設計において設計されたブロックのうち何を利用し、それらをどのように配置,配線するなどの設計を行なうだけなので、各ブロック内の一部の要素のみを利用するなど、ブロックをフレキシブルに活用することができない。そのために、システムLSIに対する小型化などの多彩な要求を十分満たすことができないおそれがある。
【0007】本発明は、上記従来の設計手法の問題点に鑑み、上記従来のようなブロックを用いた設計手法に変わる新たな設計システムを構築することを目的として成されたものであり、特に、1つのまとまったコアとして把握される要素のデータをフレキシブルに利用しうる状態で格納した集積回路装置の設計用データベース及びこれを利用した集積回路装置の設計方法を提供することを目的とする。
【0008】
【課題を解決するための手段】本発明の第1の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタは、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記VCの機能及び上記VCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタを備えている。
【0009】これにより、集積回路装置の検証を行なう際に、階層化されたVCクラスタの各層毎に仕様,動作,機能などの検証が可能となる。
【0010】上記テストクラスタは、テストベンチ,テストシナリオ,タスク及びモデルのうち少なくともいずれか1つを含むことが好ましい。
【0011】本発明の第2の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用データベースを備えている。
【0012】これにより、集積回路装置のある部分だけではなくシステム全体としての仕様,動作,機能などの検証が可能となる。
【0013】上記第2の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化された上記VCの機能及びVCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタが配設されていることが好ましい。
【0014】上記第2の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、VCの周辺に接続されシステムの検証に用いられる周辺モデルクラスタが配設されていることが好ましい。
【0015】本発明の第3の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、上記VCクラスタに、集積回路装置を構成するために必要な仕様・動作レベルのデータを格納する仕様・動作VCと、上記各仕様・動作VCが格納しているデータが示す仕様・動作を満たすために必要なRTレベル(レジスター・トランスファレベル)のデータを格納するRT−VCとを配置してなる集積回路装置の設計用データベースであって、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを、上記RT−VCとリンクさせて備えている。
【0016】これにより、集積回路装置の機能検証をその目的に応じて迅速に行なうことが可能となる。
【0017】目的別機能検証モデルには、機能検証時における信号をクロックの半周期の倍数に変更してなる同期化モデルや、記述最適化モデルがある。
【0018】記述最適化モデルには、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなるモデル、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなるモデル、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなるモデル、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなるモデル、異常動作などを警告する手段を備えたモデルなどがある。
【0019】本発明の第4の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の故障検査を最適化するための手法に関する情報を備えている。
【0020】これにより、テストコストを最小化するための故障検査などに利用できる情報の提供を図ることができる。
【0021】本発明の第5の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の動作回数を解析するためのモデルを備えている。
【0022】これにより、動作回数の少ないあるいは均一化された低消費型で信頼性の高い集積回路装置の設計に利用できるモデルの提供を図ることができる。
【0023】本発明の第5の集積回路装置の設計用データベースは、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなる複数のVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記複数のVCクラスタを組み合わせてシステムLSIを構築するために利用可能なモデルであって、各VCクラスタにおける相異なる層のVCを組み合わせるためのつなぎのモデルとなるVCインターフェースモデルを備えているこ。
【0024】これにより、複数のVCクラスタの設計レベルが一致していない状態でも、円滑なシミュレーションを行なうことが可能になる。
【0025】本発明の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCデータベースのVCクラスタに関する情報を入力し、集積回路装置の検証のためのテストクラスタを生成するステップを含んでいる。
【0026】この方法により、検証に必要なデータや検証の手順に関する記述,タスクなどを自動的に生成することが可能になる。
【0027】本発明の第2の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCクラスタの機能レベルのVCにリンクさせて、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを生成するステップを含んでいる。
【0028】この方法により、集積回路装置の機能検証をその目的に応じて迅速に行なうことができる。
【0029】この目的別機能検証モデルには、上述のものがある。
【0030】本発明の第3の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用モデルを生成するステップを含んでいる。
【0031】この方法により、システム全体の検証の容易性や迅速性を図ることができる。
【0032】本発明の第4の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースと検証のためのCPUとを用いた集積回路装置の設計方法であって、シミュレーションの結果に応じて上記VCデータベースからVCを取り出す一方、シミュレーションの結果から使用するCPUに関するパラメータを抜き出して、使用するCPUのパラメータに適合したインターフェースを選択又は生成して上記VC内に格納するステップを含んでいる。
【0033】この方法により、シミュレーション時にインターフェースを使用するCPUに適合させるための処理を逐一行なう必要がなくなり、迅速なシミュレーションを行なうことが可能になる。
【0034】上記第4の集積回路装置の設計方法において、例えば、上記インターフェースが上記CPUのバスとの間で信号を授受するためのバスインターフェースである場合には、上記バスインターフェースを上記VC内においてVCの機能本体部と分離して格納し使用するCPUのプロトコルに合わせて生成することにより、迅速なシミュレーションが可能になる。
【0035】本発明の第5の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の動作回数を解析するステップを含んでいる。
【0036】この方法により、低消費型で信頼性の高い集積回路装置を設計することが可能となる。
【0037】本発明の第6の集積回路装置の設計方法は、集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の故障検査を最適化するためのステップを含んでいる。
【0038】この方法により、故障検査のためのテストコストや制約条件を考慮した集積回路装置の設計が可能になる。
【0039】
【発明の実施の形態】以下、本発明の実施形態について、VC,VCDS,VCDB等の概念の定義と、VCDSの概略構成と、各部の詳細な内容とに分けて説明する。
【0040】[VC,VCDS,VCDBの概念]まず、本発明におけるVC及びVCDSの概念について説明する。
【0041】本発明におけるVC(バーチャル・コア)とは、IP(機能ブロック)としばしば同義に使用されるバーチャルコンポーネントとしての”VC”とは異なる概念であって、1つのまとまったブロックで構成されるシステムLSIの設計を対象としており、その中でも、再利用が可能なハードウェア,ソフトウェアを含むデータを指すものとする。そして、VCDS(バーチャル・コア・デザイン・システム)とは、このVCを利用してシステムLSIのハード,ソフトを最適化するためのシステム全体を指すものとする。また、VCDB(バーチャル・コア・データベース)とは、VCを利用した設計のために用いられるデータベースを指すものとする。
【0042】[VCDSの概略構成]図1は、本発明の実施形態に係るシステムLSI設計のためのデザインシステム(VCDS)の構成を概念的に示す図である。
【0043】図1に示すように、本実施形態に係るデザインシステムは、システムの設計のためのデータの格納層であるVCDB100(VCデータベース)と、VCDB100の最適化などを行うための制御システムであるVCDBMS200(VCDBマネージメントシステム)とにより構成されている。
【0044】VCDB100には、VCの集合体として捉えられるVCクラスタ300と、このVCクラスタ300中のVCの構造を決定するためのアーキテクチャ情報401と、システム検証データ402とが含まれている。
【0045】VCクラスタ300には、仕様で記述されるデータを格納するバーチャル・コアである仕様層(仕様VC301)と、動作で記述されるデータを格納する動作層(動作VC302)と、RTレベル(レジスター・トランスファレベル)で記述されるデータを格納するバーチャル・コアである機能層(RT−VC303)とからなる本体部がある。また、VCクラスタ300には、パラメタライズされたテストパターンを有すると共に回路のシミュレーションを行なうためのテストクラスタ304と、シミュレーションなどを行なって各VCの性能を評価するための性能情報305とが存在する。
【0046】性能情報305には、例えば面積,スピードなどのパラメータである性能指標が組み込まれており、例えばRTレベルでは、ある値をかなり正確に算出することができる。また、実際にあるRTレベルでハードを実現したことがあれば、その結果も性能指標に組み込んでおくことができる。
【0047】また、VCクラスタ300内には、各々VCクラスタ本体の1つ又は複数のVCにリンクして、以下の要素が組み込まれている。まず、仕様VC301(仕様層),動作VC302(動作層),RT−VC303(機能層)にリンクした動作回数を解析するモデル310が組み込まれている。また、RT−VC303(機能層)にリンクした目的別機能検証モデル320が組み込まれている。さらに、RT−VC303(機能層)にリンクした,スキャン,BISTなどVCにどのテストを行なうことができるかなどの情報に関する故障検査手法情報330が組み込まれている。
【0048】アーキテクチャ情報401には、実際にそれぞれのVCをどう使用するかということの情報が含まれている。例えばあるタスクをソフトウェアで実現する場合には、「それを実行するプロセッサはなにを使用するのか」、「バス(インターフェイス)はなにを使用するのか」、「電源,クロック供給方式はどうするか」、「論理合成する際のテスト方式はなにを用いるか」、「命名規則の制約(ツールの制約や重複防止のための規則)はどうか」など、そのシステムLSIに必要な種々の情報が含まれている。
【0049】システム検証データベース402は、VCを組み合わせた1つのLSIを構成する場合に、それを機能検証するためのデータベースとなるものである。このシステム検証データ402には、共用テストクラスタ410と、周辺モデルクラスタ420と、VCインターフェースモデルとが組み込まれている。
【0050】共用テストクラスタ410やVCクラスタ300内のテストクラスタ304は、テストベンチ,テストシナリオ,タスク,モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、VCを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル,VCモデルあるいは周辺シミュレーションモデルへのリンクをいう。これらのテストクラスタの具体的な構成例については後述する。
【0051】周辺モデルクラスタ420は、システム検証を行なうときに使用するVCの周辺のモデルであって、例えば外部メディア,外部メモリ,通信用LSIにおける伝送路,センサーなどを記述したモデルなどがある。VCだけでなくこのような周辺モデルを組み合わせることにより、全体のシステム検証を円滑に行なうことが可能になる。VCインターフェースモデルは、システムシミュレーションを行なう際に各VCを係合させてシミュレーションを行なうためのつなぎのモデルとなる部分である。
【0052】また、VCDBMS200は、VCDB100に対する登録や、VCDB100の外方からの検索,インスタンスの生成,その他下記に説明する各種の処理を行なう。登録には、新たなコアとして登録するほか、既存VCを参照して新たなVCを生成し、そのVCの機能を改変したり、VC内のデータの追加登録を行なったり,差分管理情報を格納したりすることが含まれる。検索とは、どのレベルのVCでどういう種類の情報が欲しいかということの検索である。
【0053】そして、VCDBMS200内には、テストシナリオ生成,目的別検証用モデル(シミュレーションモデル)の生成,システム検証モデル(システムシミュレーションモデル)の生成などを行なう機能検証支援手段500と、動作回数解析及び回路最適化手段600と、VCインターフェース合成手段700と、VC故障検査方式の選択・最適化や故障検査スケジュールの立案を行なうための故障検査戦略最適化手段800とが設けられている。
【0054】図2は、本実施形態のVCDSにおける設計の基本的な流れを示す図である。同図に示すように、仕様レベル,動作レベル及びRTレベルのいずれにおいても、記述,検証,評価,合成の手順によりVCの生成,改変などが行なわれる。例えば、仕様レベルにおいては、仕様VCであるS1,S2が選び出されたり、新たなVCであるS3が生成されたりする。その際、図中矢印に示す方向に沿ってデータが流れて、データの記述,検証,評価が行なわれ、評価はフィードバックされる。動作レベルでは、各仕様VCであるS1,S2,S3に対応した動作VCであるD1,D2,D3が生成されるが、各VCはハードウェア,ソフトウェアに機能分割される。また、RTレベルでは、各動作VCであるD1,D2,D3に対応するRT−VCであるR1,R2,R3が生成されるとともに、これらを接続するバス,CPU,メモリ等が生成される。つまり、より具体化されることになる。
【0055】各々のタスクは、外部入出力部及び仕様VCと状態遷移などで記述されている。仕様VCは、状態遷移,論理,真理値表などを表現できる言語あるいは図形で記述されている。
【0056】このように、各階層にVCを配置してこれらを総合的に管理することにより、従来の機能ブロックとは異なり、フレキシブルに利用できるデータベースの提供を図ることができる。
【0057】図3は、図1に示すシステムの機能部分を抜き出して示すブロック回路図である。同図において、VCクラスタを格納しているデータベース格納層に情報を入力するための入力部と、データベース格納層からの出力情報を受ける出力部と、データベース格納層,入力部及び出力部を制御する制御部とを有する。VCクラスタには、仕様VCを生成する仕様層と動作VCを生成する動作層とを含む仕様動作層と、RT−VCを生成するRT層という機能が存在する。このうち、仕様層と動作層とは必ずしも明確に区分できない場合があるので、仕様動作層と一括して示されている。ここで、動作とは1つの仕様に対してソフトウェア,ハードウェアの割り当てを定めたものであって、一般的には1つの仕様に対して複数の動作がある。RT(レジスター・トランスファ)とは、動作に対してハードウェア的に実現できるものであって、一般的には1つの動作に対して、重視するパラメータの相違などに応じた何種類かの実現方法がある。すなわち、後に詳しく説明するように、1つの仕様VCに対して複数の動作VCを、1つの動作VCに対して複数のRT−VCをそれぞれ階層的に有しているのが一般的である。ただし、仕様と動作とはいずれも機能的な概念を表すものともいえるので、その区別が困難な場合もあり、その場合には、仕様・動作VCとしてデータベースを持っておくことも可能である。
【0058】[VCクラスタの構成]次に、図1に示すVCDSの各部の詳細な構造や機能などについて、それぞれ各部に分けて説明する。
【0059】(VCクラスタ本体部の構成)図4は、VCクラスタ本体部の機能を詳細に説明する図である。同図に示すように、仕様層においてある機能を表現する仕様VCがあると、その下流側の動作層においてはそれを実現するための複数の動作VC1,動作VC2が一般的には存在し、さらに下流側のRT層においては各動作VC1,動作VC2を実現するためのそれぞれ複数のRT−VC1a,RT−VC1b,RT−VC2a,RT−VC2bが一般的には存在する。例えば、”乗算”という1つの仕様に対し、”乗算”を実現するための動作は複数の足し算とシフトなどの動作の組み合わせからなるので、複数通りの動作が存在するのが一般的である。もちろん、下流側に1つのVCしか存在しないこともあり得る。図4に示す例では、例えば”乗算”という1つの仕様VCに対し、遅延を重視した実現方法が動作層VC1であり、(占有)面積を重視した実現方法が動作層VC2である。そして、各層ごとにインスタンスVCを生成して付加する機能が備わっており、図4には、例としてRT−VC1a,RT−VC1b,RT−VC2a,RT−VC2bにおいて、それぞれ1又は複数のインスタンスVCを生成する機能が表わされている。
【0060】図5は、本実施形態における各VCの構造を示す図である。仕様層,動作層,RT層などの各階層のVCには、後述する設計データ(図)と、テストベクタなどの検証データと、面積,遅延(,消費電力)などの性能情報と、対象VCの上位概念を持つ上位層VC,下位概念を持つ下位層VCなどに関するリンク情報となる上下層(親子)情報と、VC作成時に参照した同一層のVCや参照されたVCなどに関する派生情報と、同一層(動作層など)に属するVC間で共有する情報があればその共有情報と、追加や修正があった場合にはその改変内容と、例えばパラレル又はシリアル又はPCIパスなどのバスを生成するためのインターフェイス情報とが備えられている。
【0061】図6は、各層のVCのデータ及び性能情報の関係を示す図であって、同図の右側には、(占有)面積と遅延とを性能評価のパラメータとして採用したときの各層の性能情報の例が示されているが、同図の左側には、後述する図7〜図9に例示するような各層の設計データや検証データが存在するが、図6においては説明を簡単にするために図示を省略する。以下、各層の内容について説明する。
【0062】−仕様層−仕様層は機能とでもいうべき基本的な入出力関係を規定する部分であるので、仕様層内の設計データには、入出力信号の種別や、テキストベースのデータ,プロトコルなどの規格、ある規格に合わせるための目標性能などの性能、ドキュメントとして与えられている機能仕様がある。仕様検証モデルは、FSM(状態遷移),CFG(コントロールフローグラフ),DFG(データフローグラフ)などで表現されている仕様記述(言語又は図)である。具体的なフォーマットの例としては、例えばVHDL,SDL,LOTOS,C/C++などというものである。図7は、SDLというフォーマットで記述されたある設計データの例である。
【0063】−動作層−動作層は、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とに分かれている。アーキテクチャ情報は、対象プロセッサ名、OS名、ハードウェア,ソフトウェアの通信方法などを含んでいる。例えば、プロセッサとOSとシミュレーションとを組み合わせる場合には、使用するプロセッサはSparc,Pentiumなどで、使用するOSはUNIX,Windowsなどで、使用するハードウェア,ソフトウェアの通信方法はIPC,PLIなどであって、これらの適当な組み合わせを記述すると共に、必要な前提条件などを記述しておく。ただし、CPUはなくてもよい場合がある。また、ハードウェア部には、仕様層に対して具体化した機能がドキュメントとして残されており、具体的には、仕様になかった詳細な動作モードが記述されている。図8は、ハードウェア部に格納されているデータの例を示す図である。VerilogHDL,VHDLなどのハードウェア記述言語で記述されている。ソフトウェア部の内容は、ソースコード(例えばC/C++)により記述される。図9は、ソフトウェア部に格納されたデータの例を示す図である。
【0064】図10は、動作層の検証の際に使用される環境を示す図である。ハードウェア部(HW)と、ソフトウェア部(SW)と、CPUが存在する場合にはCPUと、これらを接続する通信手段(Communication)とが存在している。場合によっては、通信手段とソフトウェア部との間にOSが介在していることもある。つまり、この状態では、バスの接続は未定である。
【0065】−RT層−次に、RT層も基本的には、上述の動作層と同様に、アーキテクチャ情報と、ハードウェア部と、ソフトウェア部とを備えている。ただし、図11に示すように、RT層においては、ハードウェア部(HW)と、CPUと、メモリ(MEM)と、ソフトウェア部(SW),OSとを接続するバスが形成されている。つまり、通信方法についても、どのように接続するのかというレベルまで具体化され、ハードウェアに確実に具現化できる,つまり論理合成できるものになっている。そして、ハードウェア部及びソフトウェア部の双方に、メタ層とインスタンス層とが存在する。ただし、インスタンス層とは、変数をパラメータとして記述されているメタ層の変数を定数で置き換えたものである。図12は、RT層におけるメタとインスタンスとの例を示す図である。
【0066】RT層内のアーキテクチャ情報としては、以下のような情報がある。
【0067】まず、プロセッサ(CPU)情報として、動作層及びRT層で使用する協調検証モデルがある。これはプロセッサごとに存在する。
【0068】次に、バス(IF)情報として、バスの信号の種別や幅などの情報や、バスのプロトコル(タイミング)がある。これらは、プロセッサを各ハードウェアを接続するための内容が含まれている。
【0069】テスト方式に関する情報として、テスト方式と必要な機能・仕様(専用端子),付加回路)がある。例えばFull Scanの方式であれば、Sin(スキャンイン),Sout(スキャンアウト),Sclk(スキャンクロック),TEの信号などの情報が必要である。バウンダリースキャンテスト方式の1つであるJTAGを採用するのであれば、制御端子やTAPコントローラ回路などの情報が必要である。外部から直接それぞれのコアをテストする分離テストを行なうのであれば、テストモード端子,セレクタ回路などの情報が必要である。命名規則としては、例えば「モジュール名は英数字の小文字16字以下であること」などいう,生成したインスタンスVCを処理するEDAツールごとの制約や、「モジュール名の先頭に、”A981005 Nを付加すること」などという,同じ名称で異なるインスタンスVCを生成しないための制約などがある。
【0070】−各層における性能情報−仕様層において、図4に示す仕様VCがある場合、この仕様VCの性能を面積と遅延で表すと図6の右上部に示す範囲(ハッチング部)である。そして、この仕様VCに対して、図4に示すような遅延を重視した実現方法である動作VC1と、面積を重視した実現方法である動作VC2とがあった。図6の右中央部に示すように、動作VC1,動作VC2の範囲は、それぞれハッチングが施された遅延の小さい領域及び面積の小さい領域である。さらに、RT層には、図4に示すように、動作VC1に対するRT−VC1a,RT−VC1bと、動作VC2に対するRT−VC2a及びRT−VC2bとがあった。図6の右下部に示すように、各VCの面積及び遅延は具体的な曲線状のある点として定まる。
【0071】ここで、性能情報には多数のパラメータがあることから、各層の性能情報は実際には図6のような平面座標系ではなく、多次元座標系で表されることになる。したがって、性能情報は、RT層においては多次元空間内のある範囲又は点として、仕様層又は動作層においては多次元空間内のある範囲として、それぞれ表されることになる。
【0072】(VCクラスタの外部の構成)
−動作回数解析モデル−図13は、図1中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。ブロック内のネット長に比べてブロック間のネット長は長くなるので、動作回数の多い配線がブロック間にある場合にはその配線をブロック内に組み込む。これにより、配線容量が低減し消費電力が削減される。また、例えば回路を並列化して回路動作を分散させることにより、モジュール内の動作回数を低減する。入力情報を交換しても出力結果が異ならない複数のピンがある場合には、ピンに接続するネットを交換することにより内部動作回数を低減でき、ネットの信号の遷移を均等化させることにより回路の劣化を抑制することができる。さらに、フロアプラン時には合計の長さしか考慮されていなかったネット配線に関して、動作回数を考慮したネット配線を行なうことにより、遅延制約に反しない範囲で動作回数の低減を図ることができる。そして、このような処理を行なうためのモデルをVCDB100内に組み込むことにより、低消費電力で信頼性の高いLSIを設計することが可能になる。
【0073】−目的別検証モデル−図14は、目的別機能検証モデル320の内容の例を示す図である。同図に示すように、VCクラスタ本体部のRT−VC303には、実際の回路として表されるようなRTレベルの設計記述であるRT−VC1,RT−VC2,…が組み込まれている。これに加えて、機能検証システムにおいても、ある特定の目的に応じて検証ができるような検証モデル(シミュレーションモデル)である目的別機能検証モデル320が、各RT−VC1,RT−VC2,…毎に組み込まれている。1つの目的別機能検証モデル320には、例えば、同期化モデル321、記述最適化モデル322、動作チェッカー組込モデル324などが並列に配設されている。
【0074】同期化モデル321は、通常単位時間で動作するようなモデルに対し、同期クロック信号のサイクル毎にしか検証しないというものである。これは、実動作ほどの正確さが不要な検証においては、細かい動作や遅延などを省略してシミュレーションの高速化を図ろうとするものである。
【0075】記述最適化モデル322は、以下の目的で設けられている。実際に回路化するには論理合成できるような記述が必要であるが、そのような記述を用いて検証用のシミュレーションを行なうと遅くなりすぎる場合がある。そこで、記述をシミュレーション向きに変換して、回路合成上はよくないがシミュレーション上は最適になるようなモデル高速化するために記述最適化モデル322と、この記述最適化モデル322とVCクラスタ本体部のRT−VC中の本来の回路記述との対応付けを行なうためのリファレンス323とを備えている。
【0076】動作チェッカー組込みモデル324は、後述するように、VCの使用上あるVCはどのような測り方をすればよいかを示すモデルである。例えば、入力信号にはある信号パターンを入れてはいけないとか、内部状態においてもあるシーケンスで内部状態が遷移してはいけないなどという禁止事項をシミュレーションモデルに組み込んであり、そのような禁止事項がシミュレーションの実行中に生じた場合には、エラー情報を返してくるような仕組みが組み込んであるモデルである。この動作チェッカー組込みモデルには、エラーがあったときエラーの意味を解析するためのチェック結果解析情報325が付設されている。つまり、VCクラスタ本体部の各VCに入っている実際の回路に関する設計データそのものを用いて検証を行なうのではなく、目的に応じた最適な検証を行なうためのモデルを備えている。
【0077】図15は、目的別機能検証モデル320内の各モデルのうち特に同期化モデル321の使用方法を示す図である。本実施形態における同期化モデル321は、上述のようにクロックのサイクルだけに同期して検証を行なわせるためのモデルである。しかし、VCクラスタ本体部に同期化モデル321があるというだけでは、高速の検証を行なわせるための同期化が困難であることが多い。そこで、共用テストクラスタ410中の各RT−VCや周辺モデルクラスタ420にも、VCクラスタ本体部中の同期化モデルと同じ精度を有する同期化テストクラスタ411,同期化モデル421がそれぞれ組み込まれている。これらの同期化モデルの作り方については、後述する。
【0078】−システム検証データベース−図16は、システム検証用データベース内において共用テストクラスタ410,周辺モデルクラスタ420を用いたテストの流れ(テストシナリオ)を示す図である。同図に示すように、共用テストクラスタ410は、アプリケーション層411(仕様レベル)と、アーキテクチャ層412(動作レベル)と、機能層413(機能レベル)とに階層化されている。周辺モデルクラスタ420は、アプリケーション層421(仕様レベル)と、アーキテクチャ層422(動作レベル)と、機能層423(RTレベル)とに階層化されている。そして、システム検証データベース402には、共用テストクラスタ410と周辺モデルクラスタ420との間で、VCクラスタ本体部の各VC301,302,303と共通の階層においてシミュレーションを行なうための仕様レベルシステム検証モデルと、動作レベルシステム検証モデルと、RTレベルシステム検証モデルとが備えられている。
【0079】−故障検査戦略最適化手段−図17は、故障検査戦略最適化手段800による故障検査戦略を最適化する方法を示すブロック図である。同図に示すように、設計要求がなされると、故障検査戦略最適化手段800により、VCDB100からRT層のVC(RT−VC)と、故障検査方式とが選択される。設計要求には、システムLSIの要求仕様(面積,ピン数,テスト時間,優先制約重み情報など)や、VC情報がある。故障検査戦略最適化手段800は、故障検査戦略知識ベースを参照して、各種のパラメータを考慮した最適化の演算を行ない、最適な故障検査戦略と、1チップ故障検査制御回路とを生成する。
【0080】ここで、上記VCDB100には、複数の機能が同じでテスト手法が互いに異なる複数のVCクラスタが格納されている。また、VCDB100には、VCクラスタの1つについて、機能が同じでテストパターンが互いに異なる複数のテスト手法が格納されている。さらに、VCDB100には、複数のテスト手法についてのテストコストに関連する情報が格納されており、例えば、集積回路装置の使用するピン数,テストパターン長,集積回路装置の面積,故障検出率,テスト時間,設計工数及び集積回路装置の歩留まりなどがある。また、VCDB100内には、テスト制約に関連する情報も格納されており、例えば、ピンの状態,ダイナミック又はスタティックであることの制限及びテストパターンの分割に関する情報がある。
【0081】次に、テストコストを最小化するための対策について説明する。
【0082】例えば、テストコストを面積とテスト時間と設計工数の3つのパラメータによって評価するとする。この場合、総テストコストCtotlは、面積コストCsizeとテスト時間コストCtimeと設計工数コストCprocの和として表される。
【0083】Ctotl=Csize+Ctime+Cprocところが、上述のように禁止事項やトレードオフになる関係があるので、ユーザの重視度合いに応じて、面積コスト,テスト時間コスト,設計工数コストに対して、それぞれ重み付けα,β,γをつけることにより、制約条件を考慮したコストの評価を行なうことができる。
【0084】その結果、テストコストを最小化するための評価関数は、下記式で表されることになる。
【0085】
Ctotl=α・Csize+β・Ctime+γ・Cprocそして、上式に基づいてテストコストを最小化するためのテスト手法を選択することが可能になる。ただし、評価関数を構築するに際しては、上述の3つのパラメータだけでなく他のパラメータを組み込むことができる。
【0086】このような故障検査最適化手段800を設けることにより、禁止されるテスト種類の組み合わせやトレードオフ関係にあるテスト種類を選択するという制約条件下において、テストコストを最小化することが可能になる。
【0087】−VC合成インターフェースモデル−VCインターフェースモデルとは、VCクラスタのうち相異なる層(例えば仕様層とRT層)のVCモデルを組み合わせ、VCベースのシステムLSIシステムシミュレーション(ミックスレベル)を行なうためのシミュレーションモデルである。
【0088】一般に、シミュレーションは、抽象度の高い層から順に,つまり仕様層,動作層,RT層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるVCにおいてはどのRT−VCを用いるかまで具体的に決まっているが、別のVCではまだ仕様VCまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。ところが、共通の層でしかシミュレーションを行なうことができないと、システムLSIのシミュレーションにおいて、仕様・動作層の設計を行なう段階で部分的にRT層のVCを組み込んだシミュレーションや、RT層のVCにおけるシミュレーションで一部に仕様層のVCを組み込んだシミュレーションを容易に実施することができず、設計の効率化を図ることができない。
【0089】一般に、シミュレーションは抽象度の高い層から順に,つまり仕様層,動作層,RT層の順にトップダウンで行なわれる。ところが、設計の進め方によっては、あるVCにおいてはどのRT−VCを用いるかまで具体的に決まっているが、別のVCではまだ仕様VCまでしか決まっていない状態で、回路全体のシミュレーションを行ないたいときがある。また、シミュレーションの際にVCによって求められる精度が異なる場合には、可能な限り抽象的なレベルでシミュレーションを行なったほうが高速化を図ることができる。
【0090】そこで、例えばアーキテクチャ層VCインターフェースにより、VC−A,B,CについてはRTレベルを、VC−Xについては動作レベルを、VC−Yについては仕様レベルを用いることにより、レベルの異なるモデルを組み合わせてシミュレーションを行なうことができる。VCインターフェースモデルとは、このようにレベルの異なるモデルを組み合わせてシミュレーションを行なう際に用いられるつなぎのモデルである。VCインターフェースモデルは、アプリケーション層やアーキテクチャ層から見ると、マイコン制御における状態遷移図のようなレベルのモデルである。
【0091】図53は、VCインターフェースモデルの構成を示すブロック図である。同図に示すように、VCインターフェースモデルは、VCクラスタの仕様層,動作層,RT層のデータをそれぞれ入力する仕様層入力部,動作層入力部,RT層入力部と、該各入力部からの入力データを出力先のデータ転送レートに応じて転送レートを変換する転送レート変換手段と、出力先のデータ精度に応じて各データの精度を変換するデータ精度変換手段と、出力先のプロトコルに応じて各データのプロトコルを変換するプロトコル変換手段と、これらの各変換手段で変換されたデータをVCクラスタの仕様層,動作層,RT層にそれぞれ出力する仕様層出力部,動作層出力部,RT層出力部とを備えている。例えば、仕様層の入出力はデータファイル形式,実数で取り扱われ、動作層の入出力は同期転送,整数で取り扱われ、RT層の入出力は同期転送,有限ビット列,同期信号,イネーブル信号制御で取り扱われる。
【0092】図54は、VCインターフェースモデルを組み込んだVCDB100を利用してシステムのシミュレーションを行なう際に(例えば機能検証支援手段500により)生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。VCDB100内には、VCインターフェースモデルと、コントロールVCクラスタ,信号圧縮VCクラスタ,メモリVCクラスタなどのVCクラスタとが組み込まれている。そして、機能検証支援手段500により、システムシミュレーションモデルとして例えば以下の要素が生成される。例えばVCDB100内のコントローラVCクラスタの動作VCを利用してコントローラ動作VCが生成される。VCDB100内の信号圧縮VCクラスタの仕様VCを利用して信号圧縮仕様VCが生成される。VCDB100内のメモリVCクラスタのRT−VCを利用してメモリRT−VCが生成される。そして、VCDB100内のインターフェースVCモデルを利用して、システムシミュレーションモデル内に生成されたコントローラ動作VCと信号圧縮仕様VCという互いに異なる層の2つのVC同士をつなぐための第1VCインターフェースモデルが生成される。また、システムシミュレーションモデル内に生成されたコントローラ動作VC,信号圧縮仕様VC及びメモリRT−VCというそれぞれ異なる層の3つのVC間をつなぐための第2VCインターフェースが生成される。
【0093】図55は、システムシミュレーションモデル内における第2VCインターフェースモデルの役割を説明するためのブロック図である。上述のように、仕様層の入出力はデータファイル形式,実数で取り扱われ、動作層の入出力は同期転送,整数で取り扱われ、RT層の入出力は同期転送,有限ビット列,同期信号,イネーブル信号制御で取り扱われる。そして、第2VCインターフェースモデルは、例えば信号圧縮仕様VCとメモリRT−VCとの間をつなぐために、パラレル/シリアル転送変換,同期読み出し,有限ビット幅への丸め込みなどの機能を備えている。そして、第2VCインターフェースモデルは、信号圧縮仕様VCに対してはデータファイル,遅延時間0,実数でデータを授受する一方、メモリRT−VCに対しては有限ビット幅(例えば16ビット幅)での同期転送,バスプロトコルありなどによってデータを授受するような構成となっている。
【0094】このようなVCインターフェースモデルを備えることにより、トップダウンにシステムLSIを設計する際に、異なる層のVCモデルを組み合わせたシミュレーションモデルを容易かつ柔軟に構築することができ、設計の効率化を図ることができる。
【0095】[機能検証のための各種手段と生成されたモデル]ここでは、図1に示すVCDBMS200内の各手段によるマネージメント方法と、その結果生成される検証のための各種モデルとについて説明する。生成されたモデルは、図1に示すVCBD100内のいずれかに組み込まれているのが原則であるが、必ずしもVCBD100内に組み込まれなくてもよい。
【0096】(機能検証支援手段)
−概略構成−図18は、機能検証支援手段500の動作を説明するためのブロック図である。まず、どのような検証(シミュレーション)を行ないたいかについての検証要求(パラメータ)が入力される。すなわち、検証要求として、検証するのにどのVCを使用するのか、VCのレベルはどの階層を使用するのか、同期モデルや記述最適化モデル,動作チェッカー組込みモデルなどのうちどのモデルを使用するのか(モデル指定)、どのようなテストシナリオを使用するのか、どのようなテストベンチを準備するのかというパラメータが入力される。機能検証支援手段500は、このような検証要求に対応したVCクラスタに関する情報や、共用テストクラスタ,周辺モデルに関する情報などをVCDB100から取り出して、シミュレーションするためのテストベンチ,テストシナリオ,タスクや、シミュレーションモデル(目的別機能検証用モデル,システム検証モデルなど)を生成する。また、この生成したモデルをVCDB100に格納することも可能である。
【0097】図19は、仕様レベル,動作レベル,機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。シミュレーション回路条件がデータベースに入力されると、すでに作成されたシミュレーション用回路を用いて、あるいは一部不足しているものがあれば新規に設計した回路を用いて、論理シミュレータによりシミュレーションを行なって、シミュレーション結果を出力する。
【0098】−同期化モデルの作成例−図20は、機能検証支援手段500の一部である同期化モデル生成手段510によるモデル生成方法を示す図である。同期化モデル生成手段510は、使用する回路,メモリ,テストクラスタの指定及びそれらで定義されているパラメータの指定などに関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,メモリモデル,テストクラスタ(機能層)などに関するシミュレーションモデルの記述を参照して同期化モデルを生成する。同期化モデル生成手段510には、タイミング解析手段511と回路変更手段512とが含まれており、このタイミング解析手段511と回路変更手段512とにより、以下の手順で同期化モデルが生成され、RTレベル回路とメモリモデルとテストクラスタ(機能層)とを含むシミュレーション用回路が生成される。
【0099】図21は、VCDB100内のテストクラスタ,RTレベル回路,メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。テストクラスタからRTレベル回路に入力される信号tb−outは220ns後に出力“1”になり、420ns後に出力“0”になるものとする。テストクラスタから50ns毎に反転するクロックclkが入力されるものとする。このとき、RTレベル回路内において、信号tb−outを入力信号cir−in1として受け、フリップフロップをベースとする同期回路を経て、メモリモデルにメモリ要求のための信号cir−out1が出力される。また、メモリモデル内において、メモリ取り出し要求信号mem−inが入力されてからメモリ出力信号mem−outが出力されるまでの遅延時間が120nsであるものとする。その後、RTレベル回路において、信号mem−outを入力信号cir−in2として受け、ラッチをベースとする非同期回路を経て、信号cir−out2が出力される。そして、テストクラスタにおいて、信号cir−outを入力信号tb−inとして受ける。
【0100】図22(a),(b)は、それぞれ同期化モデル生成手段510によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル(機能レベルの)におけるタイミングチャートである。例えば、元のシミュレーションモデルにおけるtb−outの立ち上がり,立ち下がりタイミングがそれぞれ220ns,420nsである場合に、このタイミングをそれぞれクロックの半周期50nsの倍数である200ns,400sに修正する。また、元のシミュレーションモデルにおいてはメモリモデル内における遅延時間が120nsであったのを、50nsの倍数である100nsに修正する。ただし、クロックのエッジを詳細に見ると微妙にずれていてもよい。
【0101】通常、設計される回路は複雑なタイミング制御によって動作する。その場合、従来のシミュレーションモデルでは、実動作におけるタイミングに沿ったシミュレーションモデルを作成する。しかし、機能検証のためのシミュレーションを行なう場合には、実動作とは異なり、細かい遅延時間などは無視してクロックの半周期長単位で処理しても実際上不都合を生じないことが多い。これによって、シミュレーションの高速化を図ることができる。
【0102】なお、この例では、シミュレーションのタイミングをクロックの半周期の倍数に同期させたが、クロックの1/4周期などクロックと同期する半周期以外の特定周期の倍数となるようにしてもよい。
【0103】−記述最適化モデルの作成例1−図23は、機能検証支援手段500の一部である記述最適化モデル生成手段520Aによるモデル生成方法を示す図である。記述最適化モデル生成手段520Aは、使用する回路,共用テストクラスタの指定などに関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,共用テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Aには、回路検索手段521と回路変更手段522とが含まれており、この回路検索手段521と回路変更手段522とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路とテストクラスタとを含むシミュレーション用回路が生成される。
【0104】図24は、このときの具体的な処理の例を示す図である。まず、回路検索手段521により、VCDB100内の回路VCの記述と、テストクラスタ内の条件式信号線の値の設定に関する記述とを読み込む。その結果、回路VCの記述には、flg1が“1”のときには処理1aを行ない、flg1が“1”でないときには処理1bを行なうという条件文があり、テストクラスタVC内の記述には、flg1の値は変化するがflg2の値は変化しないことがわかったとする(図中#0,#100は時刻を示す)。ところが、flg2は“0”のままなのでこのシミュレーションでは処理2aは実行されず、常に処理2bが実行されることがわかる。そこで、回路変更手段522により、処理2a及び制御記述2中の条件文を削除してシミュレーションモデルを生成する。その結果、シミュレーション用回路記述における制御記述2においては、flg2が“0”であるか否かに拘わらず処理2bを行なうことように記述される。ただし、このように記述を変更すると、元の回路記述との対応がわからなくなるおそれがあるので、その対応関係を検索するための情報としてリファレンスを設けておく。つまり、変更された回路記述においてはflg2がどのような値を持っているのかわからないが、このリファレンスを参照するとflg2は常に“0”であることがわかる。
【0105】このように、回路記述を変更することにより、シミュレーションの際には不要となる処理を行なうことによる時間の無駄をなくすことができ、シミュレーション用回路記述の最適化を行うことができる。
【0106】−記述最適化モデルの作成例2−図25は、機能検証支援手段500の一部である記述最適化モデル生成手段520Bによるモデル生成方法を示す図である。記述最適化モデル生成手段520Bは、使用する回路,テストクラスタの指定に関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VC,テストクラスタなどに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Bには、階層情報検索手段523と階層展開手段524とが含まれており、この階層情報検索手段523と階層展開手段524とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路とテストクラスタとを含むシミュレーション用回路と回路図変換情報とが生成される。
【0107】図26は、このときの具体的な処理の例を示す図である。ここでは、上位にモジュールMAがあり、その下位の階層にモジュールMB,MCがあり、さらにモジュールMCの下位の階層にモジュールMDがあるとする。ここで、階層情報検索手段523により、階層展開前における回路データの階層と信号線の接続情報とを抽出する。その結果、モジュールMB中の素子からモジュールMC中の素子に入力される信号については、モジュールMB内における信号処理B1と、モジュールMA内における信号処理A1と、モジュールMC内における信号処理C1とがあり、モジュールMC中の素子からモジュールMB中の素子に入力される信号については、モジュールMC内における信号処理C2と、モジュールMA内における信号処理A2と、モジュールMC内における信号処理B2とがある。また、モジュールMC中の素子からモジュールMD中の素子に入力される信号については、モジュールMC内における信号処理C3と、モジュールMD内における信号処理D1とがあり、モジュールMD中の素子からモジュールMC中の素子に入力される信号については、モジュールMD内における信号処理D2と、モジュールMC内における信号処理C4とがある。また、信号線の接続情報として、上述のデータに対応した記述が含まれている。
【0108】ここで、信号B1,A1,C1は信号名が異なっているが、本来1つの信号線を流れる1つの信号にすぎない。このように、信号が流れるモジュール毎に信号名を代えているのは、設計の容易さを考慮したからである。ところが、シミュレーション時には、このような区切りを明確にする必要はない。そこで、階層展開手段524により、階層を展開して重複する信号線を共通化したした回路を生成する。その際、異なる階層間で同じ信号を扱う信号線名は、最も最上位の階層における信号線名とする。その結果、階層展開前のシミュレーションモデルにおいては10個あった信号線及び信号の名称が、階層展開後のシミュレーションモデルにおいてはそれぞれ4個に低減される。これにより、シミュレーション速度を高めることができる。
【0109】なお、下層の信号線には先頭にモジュール名をつけておく。階層展開前と展開後とにおける信号線の対応関係を示すリストをリファレンスとして作成しておくことにより、デバック時には信号線及び信号について階層展開前と同様に名称を扱うことができる。
【0110】−記述最適化モデルの作成例3−図27は、機能検証支援手段500の一部である記述最適化モデル生成手段520Cによるモデル生成方法を示す図である。記述最適化モデル生成手段520Cは、使用する回路,シミュレータの指定に関するシミュレーション回路条件の入力に応じ、VCDB100内のRT−VCに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Cには、回路記述解析手段525と、回路変換手段526と、シミュレータ個別情報と、回路変換ルールとが含まれており、この回路記述解析手段525と回路変換手段526とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路を含むシミュレーション用回路が生成される。
【0111】図28は、このときの具体的な処理の例を示す図である。VCDB100内においては、回路変換ルールにより変換可能な記述によりRT−VCが作成される。RT−VCにおける改変前のシミュレーションモデルには、処理の種類によってcase文とif文とが混ざり合って使用されているのが一般的である。ところが、あるシミュレータを使用する場合にはif文に従って処理したほうがシミュレーション速度が速くなるが、別のシミュレータを使用する場合にはcase文に従って処理したほうがシミュレーション速度が速い場合がある。
【0112】ここでは、シミュレータ個別情報から、シミュレータAはcase文で処理したほうが処理速度が速く、シミュレータBはif文で処理したほうが処理速度が速いという情報が得られるものとする。そこで、シミュレータBを使用する場合には、回路記述解析手段525により、シミュレーションモデル中にcase文があるかどうかを解析して検索する。そして、回路変換手段526により、シミュレータ個別情報と、case文−if文間の変換を行なう際に従うべき回路変換ルールとを参照して、シミュレーションモデル中のcase文をif文に変換する。
【0113】その結果、シミュレータBを用いる場合により高速で処理を行なうことが可能なシミュレーション用回路が生成される。
【0114】−記述最適化モデルの作成例4−図29は、機能検証支援手段500の一部である記述最適化モデル生成手段520Dによるモデル生成方法を示す図である。記述最適化モデル生成手段520Cは、使用する回路の指定に関するシミュレーション回路条件の入力とシミュレーションに使用しない機能の入力とに応じ、VCDB100内のRT−VCに関するシミュレーションモデルの記述を参照して記述最適化モデルを生成する。記述最適化モデル生成手段520Dには、機能解析手段527と、回路変換手段528とが含まれており、この機能解析手段527と回路変換手段528とにより、以下の手順で記述最適化モデルが生成され、RTレベル回路を含むシミュレーション用回路が生成される。
【0115】図30は、このときの具体的な処理の例を示す図である。シミュレーションにおいて回路の動作に寄与しないものがある。図30に示すRT−VCにおいて、機能解析手段527により、RT−VCの機能を解析した結果、シミュレーションを行なう際に、モジュールMAの下位層において、モジュールMBとモジュールMCとは動作して出力に影響を及ぼすが、モジュールMDは動作しないことがわかったとする。つまり、モジュールMDは、データには含まれているが、シミュレーションの結果には何ら影響を及ぼさないものである。そこで、回路変換手段528により、モジュールMDについての回路記述を削除し、モジュールMDがアクセスされるとエラーを返す回路を組み込む。つまり、モジュールMDを切りはなしたシミュレーションモデルを自動的に生成できるようなシミュレーション用回路を作成する。
【0116】これにより、ワークステーション等を用いてシミュレーションを行なう場合に、モジュールMDの分だけメモリを占有することによるシミュレーション速度の低下を回避できる。また、モジュールMDが動作しなくても、入力信号が変化するとシミュレーションは遅くなるが、これを回避することができる。
【0117】ただし、モジュールMDが使用されることもあり得るので、誤ってモジュールMDが使用された場合にこれをチェックするアクセスチェック回路を生成する。これは、シミュレーション速度に影響を与えない程度の小さな容量しか持っていない。
【0118】(検証におけるチェックモデル)ここでは、検証においてVC自体が正常に動作しているかどうかということの検証や、VCを組み込んだ検証において各VCが正常に使用されているかどうかということのチェック機能について説明する。この手段は、図14に示される動作チェッカー組込モデル324として、目的別機能検証モデル320内に組み込まれている。
【0119】図31は、検証のチェック方法を示すブロック図である。VCDB100内には、時相チェックモデル431と内部状態チェックモデル342と入出力データチェックモデル343とを含むモデルが組み込まれている。そして、変換プログラムによって、チェック内容に応じて実際のシミュレーションモデルの中にチェックする仕組みが組み込まれる。この変換プログラムに従って、言語ツールと機能又は論理シミュレータとを用いてシミュレーションを行なうことにより、以下のような各種のチェックが可能となる。
【0120】入出力データチェックモデル343は、以下のようなチェックを行なう記述を含んでいる。例えば図32に示すような入力A1,A2に応じて出力O1,O2を生成する回路がある場合を例に採る。この場合に、各VCの入出力ピンの状態値に関する制約事項が守られているかどうかをチェックするのが入出力データチェックモデル343の機能である。例えば、VCを利用した設計におけるシミュレーション時に、VCに禁止された組み合わせの入力が入ってこないか、逆に、禁止状態の出力がないかなどをシミュレーション中に見張る記述が含まれている。
【0121】内部状態チェックモデル342は、以下のようなチェックを行なう記述を含んでいる。例えば図33R>3に示す内部状態S1,S2,S3を示す回路がある場合、各VCの内部の信号や設計におけるシミュレーション時に、VC内部で禁止されている内部状態が存在しないかをシミュレーション中に見張る記述が含まれている。
【0122】時相チェックモデル341は、以下のような入出力ピンや内部ピンの時相論理のチェックを行なう記述を含んでいる。例えば、図34(a)に示すような入力信号A1,A2を受ける回路において、入力信号A1,A2が図34(b)に示すような変化を示すとする。このとき、入力信号A1がHからLに変化したときに、次にHになるまでに入力信号A2はHにならなければならないという制約があれば、その制約が守られているかどうかを見張る記述が含まれている。
【0123】従来のテストパターンを用いたシミュレーションでは、内部の深い領域で異常状態が発生しても、そのシミュレーションの実行中にそれが外部ピンまで伝わってこない場合がある。それに対して、図31に示すようなチェックモデル341,342,343をVCDB100内に備えておくことにより、異常現象をそれが発生した時点,場所で即座に検出することができる。また、エラーが発生したときに、そのエラーがどういうルールに違反しているかということもわかる。
【0124】従来、以上の3つのようなチェック項目は、HDL又はC言語で記述できるものもある。しかし、このようなチェック項目を現実に記述すること自体がかなり困難であり、かつ、記述量も多くなる。それに対し、本例のようにVCDB100内にこのチェックモデルを組み込むことで、チェックの容易性とチェック精度の向上とを図ることができる。
【0125】(VCインターフェースの合成)従来の手法をそのままVCDSに適用したのでは、LSI設計者がVCDB内のVCをそのまま使用できない。すなわち、VCを組み合わせて回路を設計する際に各VCがデータを入出力するインターフェースとして異なる仕様ないし手順(プロトコル)を有する場合に、そのまま並べて信号線を接続しただけでは正しい信号の授受を行なうことができない。たとえば、バスとVCとの間に配置されるインターフェースであるバスI/Fインターフェースの場合、設計上VCを使用するためには、使用するホスト(CPUなど)に合わせてバスI/Fを修正する必要がある。その結果、流用するVCの数だけバスI/Fを修正することになるので、その間人手によるミスが発生するおそれがある。
【0126】以下に説明するVCインターフェース合成手段700(図1参照)とは、異なる手続きを持ったインターフェース同士でも、自動的にそれらを合わせ込む機能を持ったインターフェース回路というべきものを合成するものである。
【0127】図35は、VCインターフェース合成手段700を用いた設計方法を示すブロック図である。設計する回路のシミュレーションの結果、VCDB100内からVC(RT層)が選び出される。このVCはVCDB100内に格納されているものである。また、シミュレーションにより、インターフェースのパラメータ(例えばアクセスビット数,バッファサイズなど)もわかる。そこで、インターフェース合成手段700により、パラメータを適正に合わせ込みながら適正なVCを選択し,あるいは合成して最適なインターフェースを持ったVCを決定するように構成されている。
【0128】例えば、各インターフェースのアクセスビット数が異なっている場合には、信号の授受を行なうことができない。各インターフェースにおけるバッファサイズが異なると、一定の速度で信号を流したいのに、これが適正に流れなくなるという事態を招く。そこで、インターフェース合成手段700によってこれらのパラメータを合わせ込みつつ適正なVCを決定することにより、自動的に最適なインターフェースを持ったVCを利用した設計が可能となる。
【0129】−バスI/Fへの適用−図36は、図35に示すインターフェース合成手法を、バスとVCとの間のインターフェースであるバスI/Fに適用した場合のインプリメンテーションフローを示す図である。
【0130】まず、最適なVC(RT層)を選択する。そのときに、シミュレーションに使用したホスト(CPUなど)のバスプロトコルに応じ、VCDB100からVC(VC1,VC2,…)を選択する。また、ホストのバスプロトコルからアクセスビット数やバッファサイズなどのパラメータもわかる。これらの情報を受けて、バスインターフェース合成手段700により、そのホストのバスプロトコルに合わせたバスインターフェースを、VC1,VC2,…毎に自動的に決定する。インターフェース合成手段700は、このときのパラメータなどの条件を、全て動作レベル,仕様レベルなどのシミュレーションで出力されたものから受け取り、これらのパラメータを、ホストが要求するバスプロトコルの仕様と、VC自体が持っているインターフェースの仕様とが適合するように、いわばインターフェース部分を吸収するように自動的に決定するのである。このとき、VCDB100から取り出されたVCに適切なものがあればこれを選び、適切なVCがなければ適切なVCを生成する。これによって、そのインターフェースを合わせたVC1A,VC2A,…などが生成される。そして、このVC1A,VC2A,…などを1チップのインプリメンテーションに使用する。
【0131】−バスI/Fに関する具体例−図37は、本具体例におけるVCDB100内のVC(RT層)の構造を示すブロック図である。同図に示すように、VCの構成を機能本体部とバスI/F部とに分離し、機能本体部は、バスI/F部のタイミング等に無関係にしておく。バスI/F部としては、使用するホストのバスプロトコルに合わせた各種のバスI/F部を生成しておく。図37に示す例では、VCDB100内のVC1には3つのバスI/F部−A,B,Cと機能本体部とがあり、VC2には2つのバスI/F部−X,Yと機能本体部とがある。
【0132】図38は、図37に示すバスI/F部−A,B,C,X,Yのビット幅と、リード/ライトサイクルと、最大ブロック周波数とを表にして示す図である。このように、1つのVCに対して複数種のバスI/F部を準備しておくことにより、インターフェース合成の際のパラメータの合わせ込みをより迅速に行なうことができる。
【0133】図39は、インターフェース合成手順を示すフローチャート図である。以下、図39を参照しながら、バスI/Fの自動生成手順について説明する。
【0134】まず、ステップST701において、ターゲット仕様(機能,動作周波数など)を決定し、CPUや周辺部のVC*を選択する。
【0135】次に、ステップST702において、仕様/動作レベルのシミュレーションを行なってから、ステップST703に進み、ステップST703において選択したVC*がターゲット仕様を満足しているか否かを判別する。
【0136】その結果、VC*がターゲット仕様を満足していなければ、ステップST704でステップST702のシミュレーションを実行していないVC*があるか否かを判別する。そして、判別結果がYESである間はステップST701に戻り、ターゲット仕様を満足するVC*が見つかるまで、ST701,ST702,ST703の処理を繰り返す。一方、選択したVC*がターゲット仕様を満足していないにも拘わらずST702のシミュレーションを実行していないVC*がなくなってしまった場合には、ST705においてターゲット仕様を変更してからステップST701に戻る。
【0137】以上の制御をターゲット仕様を満足しているVC*が見つかるまで行なった後、ターゲット仕様を満足しているVC*が現れると、ステップST706に移行して、使用するVCと、このVCに用いられるバスI/F部とを決定する。
【0138】また、シミュレーションにより、CPUとしては図40に示す3つのCPU−1,2,3のうちCPU−2を選択したとする。この場合、機能層のVC(RT−VC)において用意されているCPU−2のバスプロトコルは図40に示されるとおりである。そこで、図38に示すVC1,VC2の各種のうち、このCPU−2のバスプロトコルに適合するものを選ぶと、VC1に対してはバスI/F部−Bに、VC2に対してはバスI/F部−Xがそれぞれ選択されることになる。
【0139】そして、図39に示すように、VCDB100のRT層において、CPU−2と、バスI/F部−B及び機能本体部によって構成されているVC1’と、バスI/F部−X及び機能本体部によって構成されているVC2’という3つのRT−VCが生成される。
【0140】図41は、この選択されたRT−VC間の接続状態を示すブロック図である。同図に示すように、VC1’及びVC2’がCPU−2用の専用バスを介してCPU−2と接続されており、各VC1’,VC2’とホスト(CPU−2)との間のバスのパラメータ(ビット数,動作周波数など)が合わせ込まれているので、VC1’,VC2’,CPU−2同士の間で信号を適正に流通させることができ、自動的な設計が可能になる。
【0141】(システム検証のための構造)次に、システム検証モデル中の階層テストクラスタについて説明する。上述のように、テストクラスタは、テストベンチ,テストシナリオ,タスク,モデルを含む。テストベンチとは、テスト用システム構造及び機能モデルからなっている。テストシナリオとは、システムレベルの検証の流れ、システム動作シーケンスをいう。タスクとは、VCを初期化するタスクあるいは特定機能を実行させるタスクをいう。モデルとは、テストベンチの構成で使用されるシミュレーションモデル,VCモデルあるいは周辺シミュレーションモデルへのリンクをいう。
【0142】図1に示すように、VCDB100内において、VCクラスタ本体部は仕様VC301,動作VC302,RT−VC303の各層に階層化されている。ここでは、システム検証のために生成される階層化されたテストクラスタについて説明する。
【0143】−テストクラスタの階層化−図42は、VCクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。図43,図44,図45は、それぞれ順に、仕様層及び動作層におけるテストクラスタの構造と、機能層におけるテストクラスタの構造と、プロトコル層におけるテストクラスタの構造とを詳細に示すブロック図である。なお、図42R>2において、略記によって示されているパラメータP−1〜10と、各種テストクラスタと、シーケンスのモデルS1〜S4及び構成要素S3−1〜S3−6の具体的な内容は、図43〜図45に示すとおりである。
【0144】ここで、これらのテストクラスタは、図1に示すVCクラスタ300内のテストクラスタ304を利用してもよいし、あるいは、これらのテストクラスタは、すでに準備されているテストシナリオや周辺モデルを含む共用テストクラスタ410を利用して生成することもできる。例えば、テストシナリオや周辺モデルは、複数のVCクラスタに共通なものや、VCクラスタ300外のシステム検証用データベース402として備えているものがある。
【0145】例えば、ある機器を有線(ワイヤ)で接続したり、機器を無線で接続したりすることがある。そのデータの媒体の例としては音声がある。図42〜図45においては、音声のデータを有線又は無線によってある機器Aから機器Bに転送するシステムを例にとっており、このシステムをブロック化して示している。ここでは、この無線データ転送のための回路を設計の対象としている。
【0146】仕様層においては、例えば有線データによって転送したデータを無線データに変換し、さらにそれを音声に変換してアウトプットするなどのタスクが行なわれる。このようなアプリケーションが抽象的に表現されたところで、検証が可能になる。この仕様レベルにおける検証とは、例えば音声のデータをインプットして、それを単にデータを横に転送するというようなレベルでの動作だけの検証を行なう段階になっている。
【0147】動作層においては、無線データ転送部のシーケンス制御の内容が構成A,構成B,構成C,…のVCクラスタとして詳細化される。例えば、構成AのVCクラスタ内には、そのシーケンスで動作するモデルの例として、Timer(S1)と、CPU(S2)と、IrDA(S3)(米国のInfrared data association(規格化団体)で規格化された赤外線を用いた汎用インターフェース名)と、DMA(S4)とが含まれている。
【0148】また、テストクラスタの動作層においては、以下のように詳細化される。有線データ転送部がテストクラスタ1(TB−1),テストクラスタ2(TB−2)などとして詳細化される。例えば、転送の形態がシリアルであり、転送速度が1Mbpsであり、転送タイプがバルク転送であることなどをパラメータとして持つテストクラスタ1が現れる。また、音声変換は、テストクラスタa(TB−a),テストクラスタb(TB−b),…として詳細化される。例えば、変換速度が100bpsであること、圧縮率が90%であることなどをパラメータとして持つテストクラスタaが詳細化される。各VCクラスタの構成A,B,Cには、それぞれ初期化テストクラスタ(I−TB−A,B,C,…)が準備されている。すなわち、仕様層でパラメータP−1〜3を与えることによって、無線データ通信の動作層におけるVCクラスタや、有線データ転送部及び音声変換部のテストクラスタがテーブルから選択されて生成される。
【0149】ここで、動作層になると制御が複雑になり、互いにシーケンスを持つようになる。例えば、無線側のテストクラスタa(TB−a)から構成AのVCクラスタに対してデータがインプットされると、構成AのVCクラスタにおいては、モデルS1〜S4が、“データの受け取り告知−転送の連絡−転送許可の返答に応じた転送”という手順で作動するように単なるシーケンスレベルで表現されている。そして、実際に転送する場合には、有線データ転送部のテストクラスタ1(TB−1)にデータの転送をし始める。同様に、音声変換部のテストクラスタbからVCクラスタ内の構成Bにデータがインプットされると、構成B内の各モデルがシーケンスで作動して、有線データ転送部のテストクラスタ2にシーケンスの結果の信号が出力される。
【0150】次に、動作層から機能層に展開する場合について説明する。例えば、動作層における構成A中のモデルの1つである赤外線通信IrDAを展開すると、赤外線通信IrDAの構成要素である制御部(S3−1),送受信フレーマ(S3−2),CRC計算(S3−3),DMAI/F(S3−4),16bitホストI/F(S3−5),シリアルI/F(S3−6)が現れる。その際、ビットの幅,エラーの訂正の方法などの機能的な面まで表現した機能層として詳細化されている。また、Timer(S1),CPU(S2),DMA(S4)についても、それぞれテストクラスタT−TB,H−TB,D−TBが準備されている。例えば、Timerに対しては、8bitのTimerテストクラスタ(T−TB1)と16bitのTimerテストクラスタ(T−TB2)とが準備されている。CPUに対しては、16bitホストI/Fテストクラスタ(H−TB1)と32bitホストI/Fテストクラスタ(H−TB2)とが準備されている。DMAに対しては、Demand DMAテストクラスタ(D−TB1)と、シングルDMAテストクラスタ(D−TB2)とが準備されている。このような各テストクラスタは、パラメータP−4〜9を与えるとテーブルによって選択される。テーブルで呼び出す際には、テストクラスタのモデルとタスクとが格納されているデータベースから各テストクラスタを呼び出す。これによって、テストを行なうための環境のパーツが揃ったことになる。ここの段階では、データベースとして各要素が準備できることが示されている。
【0151】一方、機能層の音声変換部及び有線データ転送部においては、動作層からさらに詳細化されたテストクラスタが準備されている。例えば、動作層における音声変換部のテストクラスタaには変換速度と圧縮率しか表現されていなかったのを、機能層におけるテストクラスタには、変換の手法としてADPCM(Adaptivedifferential Pulse Code Modulationという規格の音声CODEC変換)を使用することがパラメータとして与えられている。その結果、機能層における音声変換部のADPCMテストクラスタには、ADPCMに相当するモデルとタスクが格納されているデータベースが準備されることになる。同様に、機能層における有線データ転送部には、通信プロトコルとしてUSB(Universal Serial Busという規格の汎用インターフェース名)を使用することや、IEEE1394(IEEE(米国電気電子技術者協会)で規格化された汎用インターフェース名)を使用することがパラメータとして与えられたUSBテストクラスタ,1394テストクラスタが準備されている。以上の構成により、テストを行なうための準備ができ、テスト環境が整ったことになる。
【0152】このように、システム検証用データベースにおいて、設計対象回路だけでなく、設計対象回路に信号を入力する入力側回路と、設計対象回路の出力を受ける出力側回路とにも階層化されたテストクラスタを備えることにより、設計対象回路,入力側回路及び出力側回路の共通の階層において実際に流れる信号の授受とそれに応じたシーケンスなどの動作に対する検証を行なうことができる。
【0153】例えば動作層におけるVCクラスタの構成A,Bにおいて、構成A,Bの各モデルが存在するだけでは構成A,Bの各部分の検証を行なうことはできるもののシステム全体としての検証を行なうことができない。それに対し、この例のごとく、VCクラスタの構成A,において、音声変換部のテストクラスタa,bからのデータのインプットと、有線データ転送側部テストクラスタ1,2へのアウトプットという信号の授受機能を持たせることによって、システム全体の検証を行なうことが可能になる。
【0154】構成Aの1つのモデルにおいても、赤外線通信IrDAという部分だけを捉えて何かデータをインプットし、何らかのデータをアウトプットしたとしただけでは、その部分のみの設計の検証にはなっても、その赤外線通信IrDAという部分がシステム全体の中でどのように作動するかという検証にはならない。この例のように階層化されたテストクラスタを利用することにより、各モデルが実際のシステムに適合した検証を行なうことができる。機能層のような下位の階層においても同様である。
【0155】また、プロトコル層は、データの授受に関する詳細なプロトコル及びタイミングの詳細化を検証するための層である。例えば、図42,図図45には、16bitホストI/Fに関して、16bitPCI,32MHzをパラメータとしてプロトコル及びタイミングに関する詳細化を行なって、16bitPCI−I/F(32MHz)及びそのテストクラスタである16bitPCI−I/Fテストクラスタを生成している。
【0156】−テストクラスタの生成方法−図46は、仕様層−動作層間のテストクラスタ生成方法を説明するためのブロック図である。また、図47及び図48は、それぞれ順に、図46中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでは、図42〜図4545に示す階層化されたテストクラスタのシステムを前提としている。
【0157】無線データ転送のテストクラスタには、無線転送モデル,初期化,送信数設定,データ送信,データ受信という要素がある。無線データ転送のテストシナリオには、送信側と受信側とに分かれて、それぞれ初期化,送信(受信)数設定,データ送信(受信)というステップがある。また、動作層の無線データ転送のテストクラスタを生成するために、動作層の有線データ転送部におけるテストクラスタ1,2と、構成Aに付設されている初期化テストクラスタと、動作層の音声変換部におけるテストクラスタa,bとが使用される。
【0158】そして、動作層のテストクラスタは、無線データ転送のテストクラスタと、上述の各テストクラスタ1,2,a,b及び構成Aの初期化テストクラスタとを組み合わせて生成される。すなわち、無線データ転送のテストシナリオに沿って、動作層における有線データ転送部のテストクラスタ1中のモデル1,動作層における音声変換部のテストクラスタa中のモデルb,無線データ転送のVCクラスタ中の構成Aに対し、それぞれ初期化,送信(受信)数設定,データ送信(受信)の順にタスクのモデルを生成する。例えば、モデル1の初期化とモデルbの初期化と構成Aの初期化とを加えることにより、仕様層における無線データ転送のテストシナリオにおける送信の初期化が詳細化されたコマンドになる。
【0159】この例の方法によると、仕様層におけるテストクラスタを詳細化する際に、上位のテストクラスタから下位のテストクラスタを構築することが可能になる。すなわち、従来の手法を用いたのでは、各階層のテストクラスタつまり各タスクを個別に生成する必要がある。それに対し、この例の方法では、設計対象回路の共用テストクラスタ(テストクラスタ+テストシナリオ)だけでなく、設計対象回路に信号を与える入力側回路と、設計対象回路からの出力を受ける出力側回路とにおける階層化されたテストクラスタを準備し、これと上位のテストクラスタとを用いて下位のテストクラスタを生成しているので、上位のテストクラスタを有効に活用することができる。そして、このテストクラスタの生成を上位層から階層に順次行なっていくことにより、システム全体の検証に必要なテスト環境を整えることができる。
【0160】図49は、動作層−機能層間のテストクラスタ生成方法を説明するためのブロック図である。また、図50及び図51は、それぞれ順に、図49中のテストクラスタ生成のためのパーツと、生成されたテストクラスタとを個別に詳示する部分拡大図である。ここでも、図42〜図45に示す階層化されたテストクラスタのシステムを前提としている。
【0161】ここでは、詳細な手順の説明は省略するが、無線データ転送の動作層のテストクラスタに加えて、機能層のVCクラスタ内における8bitのTimerテストクラスタ(T−TB1)及び16bitのTimerテストクラスタ(T−TB2)と、16bitホストI/Fテストクラスタ(H−TB1)及び32bitホストI/Fテストクラスタ(H−TB2)と、Demand DMAテストクラスタ(D−TB1)及びシングルDMAテストクラスタ(D−TB2)と、機能層の音声変換におけるADPCMテストクラスタと、機能層の有線データ転送部におけるUSBテストクラスタ及び1394テストクラスタとを用いて、無線データ転送の機能層テストクラスタが生成される。
【0162】図52は、機能層−プロトコル層間のテストクラスタ生成方法を説明するためのブロック図である。
【0163】ここでは、詳細な手順の説明は省略するが、無線データ転送の機能層のテストクラスタに加えて、機能層のVCクラスタ内における16bitのPCI−I/Fテストクラスタ及び16bitのAPB−I/Fテストクラスタとを用いて、無線データ転送のプロトコル層テストクラスタが生成される。ここで、PCIとは、Peripheral Component Interconnect の略語であって高速なローカルバスの規格をいう。APBとは、Advanced Peripheral Bus の略語であってARM社で使用されているローカルバスの名称をいう。
【0164】なお、上述の手順で生成されたテストクラスタはVCDB100内に配設してもよいし、検証のときのみVCDB100とは別の場所に格納してもよい。
【0165】
【発明の効果】本発明の集積回路装置の設計用データベースによると、テストベクタクラスタや、目的別機能検証モデルや、システム検証用データベースを備えることにより、特に設計中における検証を行なう際における利用性の高い設計用データベースを提供することができる。
【0166】本発明の集積回路装置の設計方法によると、機能検証を支援するためのテストシナリオや検証用モデルを作成し、検証の際にはVCインターフェースを合成することにより、設計中における検証を自動的かつ迅速に行なうことができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るシステムLSI設計のためのデザインシステム(VCDS)の構成を概念的に示す図である。
【図2】本発明の実施形態のVCDSにおけるタスクの基本的な流れを示す図である。
【図3】図1に示すシステムの機能部分を抜き出して示すブロック回路図である。
【図4】本発明の実施形態のVCクラスタの機能を詳細に説明する図である。
【図5】本発明の実施形態における各VCの構造を示す図である。
【図6】本発明の実施形態における各層のVCのデータ及び性能情報の関係を示す図である。
【図7】本発明の実施形態におけるSDLというフォーマットで記述されたある設計データの例である。
【図8】本発明の実施形態におけるハードウェア部に生成されたデータの例を示す図である。
【図9】本発明の実施形態におけるソフトウェア部に生成されたデータの例を示す図である。
【図10】本発明の実施形態における動作層の検証の際に使用される環境を示す図である。
【図11】本発明の実施形態におけるRT層の検証の際に使用される環境を示す図である。
【図12】本発明の実施形態におけるRT層内のメタとインスタンスとの例を示す図である。
【図13】図1中の動作回数解析及び回路最適化手段の処理を概念的に示すブロック図である。
【図14】本発明の実施形態における目的別機能検証モデルの内容の例を示す図である。
【図15】本発明の実施形態における目的別機能検証モデル内の同期化モデルの使用方法を示す図である。
【図16】本発明の実施形態におけるシステム検証用データベース内において共用テストクラスタ,周辺モデルクラスタを用いたテストの流れ(テストシナリオ)を示す図である。
【図17】本発明の実施形態における故障検査戦略を最適化する方法を示すブロック図である。
【図18】本発明の実施形態における機能検証支援手段の動作を説明するためのブロック図である。
【図19】本発明の実施形態における仕様レベル,動作レベル,機能レベルを含む一般的なシミュレーションの手順を概略的に示す図である。
【図20】本発明の実施形態における機能検証支援手段の一部である同期化モデル生成手段によるモデル生成方法を示す図である。
【図21】本発明の実施形態におけるVCDB内の共用テストクラスタ,RTレベル回路,メモリモデルに関するシミュレーションモデルの記述を示すブロック図である。
【図22】(a),(b)は、それぞれ本発明の実施形態における同期化モデル生成手段によって同期化される前のシミュレーションモデルと同期化後のシミュレーションモデル(機能レベルの)におけるタイミングチャートである。
【図23】本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図24】本発明の実施形態におけるシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図25】本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図26】本発明の実施形態におけるシミュレーション用回路と回路図変換情報とを生成するときの具体的な処理の例を示す図である。
【図27】本発明の実施形態における機能検証支援手段一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図28】本発明の実施形態におけるRTレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図29】本発明の実施形態における機能検証支援手段の一部である記述最適化モデル生成手段によるモデル生成方法を示す図である。
【図30】本発明の実施形態におけるRTレベル回路を含むシミュレーション用回路を生成するときの具体的な処理の例を示す図である。
【図31】本発明の実施形態における検証のチェック方法を示すブロック図である。
【図32】本発明の実施形態における検証のチェック対象となる入出力ピンを含む回路の構成を概略的に示す図である。
【図33】本発明の実施形態における検証のチェック対象となる内部状態を含む回路の構成を概略的に示す図である。
【図34】(a),(b)は、それぞれ本発明の実施形態における検証のチェック対象となる回路の構成を概略的に示す図、及び信号のタイミングチャート図である。
【図35】本発明の実施形態におけるVCインターフェース合成手段を用いた設計方法を示すブロック図である。
【図36】図35に示すインターフェース合成手法を、バスとVCとの間のインターフェースであるバスI/Fに適用した場合のインプリメンテーションフローを示す図である。
【図37】本発明の実施形態におけるバスI/Fを備えたVCDB内のVC(RT層)の構造を示すブロック図である。
【図38】図37に示すバスI/F部−A,B,C,X,Yのビット幅と、リード/ライトサイクルと、最大ブロック周波数とを表にして示す図である。
【図39】本発明の実施形態におけるインターフェース合成の手順を示すフローチャート図である。
【図40】本発明の実施形態におけるインターフェース合成における各種CPUの仕様を表にして示す図である。
【図41】本発明の実施形態におけるインターフェース合成によって選択されたRT−VC間の接続状態を示すブロック図である。
【図42】本発明の実施形態におけるVCクラスタに対応して階層化されたテストクラスタ全体の構造を示すブロック図である。
【図43】図42中の仕様層及び動作層の構成を詳細に示す部分拡大図である。
【図44】図42中の機能層の構成を詳示する部分拡大図である。
【図45】図42中のプロトコル層の構成を詳示する部分拡大図である。
【図46】本発明の実施形態における仕様層−動作層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図47】図46中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図48】図46中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図49】本発明の実施形態における動作層−機能層間のテストクラスタを生成する方法を概略的に示すブロック図である。
【図50】図49中のテストクラスタ生成のためのパーツを詳示する部分拡大図である。
【図51】図49中の生成されたテストクラスタ及びテストシナリオを詳示する部分拡大図である。
【図52】本発明の実施形態における動作層−プロトコル層間のテストクラスタを生成する方法を示すブロック図である。
【図53】本発明の実施形態におけるVCインターフェースモデルの構成を示すブロック図である。
【図54】本発明の実施形態におけるVCインターフェースモデルを組み込んだVCDBを利用して生成されるシステムシミュレーションモデルの一例を説明するためのブロック図である。
【図55】システムシミュレーションモデルにおける第2VCインターフェースモデルの役割を説明するためのブロック図である。
【符号の説明】
100 VCDB(VCデータベース)
200 VCDBMS(VCデータベースマネージャ)
300 VCクラスタ
301 仕様VC
302 動作VC
303 RT−VC
304 テストベクタクラスタ
310 動作回数解析モデル
320 目的別機能検証モデル
330 故障検査手法情報
401 アーキテクチャ情報
402 システム検証用データベース
410 共用テストクラスタ
420 周辺モデルクラスタ
430 VCインターフェースモデル
500 機能検証支援手段
600 動作回数解析及び回路最適手段
700 VCインターフェース合成手段
800 故障検査戦略最適化手段
【特許請求の範囲】
【請求項1】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタは、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記VCの機能及び上記VCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項2】 請求項1に記載の集積回路装置の設計用データベースにおいて、上記テストクラスタは、テストベンチ,テストシナリオ,タスク及びモデルのうち少なくともいずれか1つを含むことを特徴とする集積回路装置の設計用データベース。
【請求項3】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用データベースを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項4】 請求項3に記載の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化された上記VCの機能及びVCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタが配設されていることを特徴とする集積回路装置の設計用データベース。
【請求項5】 請求項4に記載の集積回路装置の設計用データベースにおいて、上記テストクラスタは、VCを用いた異なるシステムLSI実現の検証で共有されるテストベンチ,テストシナリオ,タスク及びタスクのうち少なくともいずれか1つを含むことを特徴とする集積回路装置の設計用データベース。
【請求項6】 請求項4に記載の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、VCの周辺に接続されシステムの検証に用いられる周辺モデルクラスタが配設されていることを特徴とする集積回路装置の設計用データベース。
【請求項7】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、上記VCクラスタに、集積回路装置を構成するために必要な仕様・動作レベルのデータを格納する仕様・動作VCと、上記各仕様・動作VCが格納しているデータが示す仕様・動作を満たすために必要なRTレベル(レジスター・トランスファレベル)のデータを格納するRT−VCとを配置してなる集積回路装置の設計用データベースであって、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを、上記RT−VCとリンクさせて備えていることを特徴とする集積回路装置の設計用データベース。
【請求項8】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、機能検証時における信号をクロックと同期する特定周期の倍数に変更してなる同期化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項9】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項10】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項11】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項12】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項13】 請求項12に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記記述最適化モデルを使用した検証において削除した記述を起動する動作を行なったときにこれを検出,警告するための手段を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項14】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記集積回路装置の検証時に回路動作が正常に行なわれていることをチェックし、異常な動作を検出し、警告する手段を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項15】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の故障検査を最適化するための手法に関する情報を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項16】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の動作回数を解析するためのモデルを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項17】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなる複数のVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記複数のVCクラスタを組み合わせてシステムLSIを構築するために利用可能なモデルであって、各VCクラスタにおける相異なる層のVCを組み合わせるためのつなぎのモデルとなるVCインターフェースモデルを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項18】 請求項17に記載の集積回路装置の設計用データベースにおいて、上記VCインターフェースモデルは、上記VCクラスタの階層化された各層に応じた同数の層に階層化されたデータの入力部及び出力部と、上記入力部と出力部との間に介設され、上記VCクラスタの各層毎に設定されているパラメータの変換を行う変換手段とを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項19】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCデータベースのVCクラスタに関する情報を入力し、集積回路装置の検証のためのテストクラスタを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項20】 請求項19に記載の集積回路装置の設計方法において、上記テストクラスタとして、テストベンチ,シナリオ,タスク及びモデルのうち少なくともいずれか1つ生成することを特徴とする集積回路装置の設計方法。
【請求項21】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCクラスタの機能レベルのVCにリンクさせて、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項22】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、機能検証時における信号をクロックと同期する特定周期の倍数に変更してなる同期化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項23】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項24】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項25】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項26】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項27】 請求項26記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記記述最適化モデルを使用した検証において削除した記述を起動する動作を行なったときにこれを検出,警告する手段をさらに備えている記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項28】 請求項26記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記集積回路装置の検証時に回路動作が正常に行なわれていることをチェックし、異常な動作を検出し、警告する手段をさらに備えている記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項29】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用モデルを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項30】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースと検証のためのCPUとを用いた集積回路装置の設計方法であって、シミュレーションの結果に応じて上記VCデータベースからVCを取り出す一方、シミュレーションの結果から使用するCPUに関するパラメータを抜き出して、使用するCPUのパラメータに適合したインターフェースを選択又は生成して上記VC内に格納するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項31】 請求項30記載の集積回路装置の設計方法において、上記インターフェースは、上記CPUのバスとの間で信号を授受するためのバスインターフェースであり、上記バスインターフェースは、上記VC内においてVCの機能本体部と分離して格納され、使用するCPUのプロトコルに合わせて生成されていることを特徴とする集積回路装置の設計方法。
【請求項32】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の動作回数を解析するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項33】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の故障検査を最適化するためのステップを含むことを特徴とする集積回路装置の設計方法。
【請求項1】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタは、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記VCの機能及び上記VCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項2】 請求項1に記載の集積回路装置の設計用データベースにおいて、上記テストクラスタは、テストベンチ,テストシナリオ,タスク及びモデルのうち少なくともいずれか1つを含むことを特徴とする集積回路装置の設計用データベース。
【請求項3】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用データベースを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項4】 請求項3に記載の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化された上記VCの機能及びVCを用いて構成されるシステムの機能を検証するために必要なデータを格納するテストクラスタが配設されていることを特徴とする集積回路装置の設計用データベース。
【請求項5】 請求項4に記載の集積回路装置の設計用データベースにおいて、上記テストクラスタは、VCを用いた異なるシステムLSI実現の検証で共有されるテストベンチ,テストシナリオ,タスク及びタスクのうち少なくともいずれか1つを含むことを特徴とする集積回路装置の設計用データベース。
【請求項6】 請求項4に記載の集積回路装置の設計用データベースにおいて、上記システム検証用データベースには、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、VCの周辺に接続されシステムの検証に用いられる周辺モデルクラスタが配設されていることを特徴とする集積回路装置の設計用データベース。
【請求項7】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、上記VCクラスタに、集積回路装置を構成するために必要な仕様・動作レベルのデータを格納する仕様・動作VCと、上記各仕様・動作VCが格納しているデータが示す仕様・動作を満たすために必要なRTレベル(レジスター・トランスファレベル)のデータを格納するRT−VCとを配置してなる集積回路装置の設計用データベースであって、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを、上記RT−VCとリンクさせて備えていることを特徴とする集積回路装置の設計用データベース。
【請求項8】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、機能検証時における信号をクロックと同期する特定周期の倍数に変更してなる同期化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項9】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項10】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項11】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項12】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなる記述最適化モデルを含むことを特徴とする集積回路装置の設計用データベース。
【請求項13】 請求項12に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記記述最適化モデルを使用した検証において削除した記述を起動する動作を行なったときにこれを検出,警告するための手段を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項14】 請求項7に記載の集積回路装置の設計用データベースにおいて、上記目的別機能検証モデルは、上記集積回路装置の検証時に回路動作が正常に行なわれていることをチェックし、異常な動作を検出し、警告する手段を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項15】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の故障検査を最適化するための手法に関する情報を備えていることを特徴とする集積回路装置の設計用データベース。
【請求項16】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなるVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、VC本体内の動作回数を解析するためのモデルを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項17】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)からなる複数のVCクラスタを備え、該VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなる集積回路装置の設計用データベースであって、上記複数のVCクラスタを組み合わせてシステムLSIを構築するために利用可能なモデルであって、各VCクラスタにおける相異なる層のVCを組み合わせるためのつなぎのモデルとなるVCインターフェースモデルを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項18】 請求項17に記載の集積回路装置の設計用データベースにおいて、上記VCインターフェースモデルは、上記VCクラスタの階層化された各層に応じた同数の層に階層化されたデータの入力部及び出力部と、上記入力部と出力部との間に介設され、上記VCクラスタの各層毎に設定されているパラメータの変換を行う変換手段とを備えていることを特徴とする集積回路装置の設計用データベース。
【請求項19】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCデータベースのVCクラスタに関する情報を入力し、集積回路装置の検証のためのテストクラスタを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項20】 請求項19に記載の集積回路装置の設計方法において、上記テストクラスタとして、テストベンチ,シナリオ,タスク及びモデルのうち少なくともいずれか1つ生成することを特徴とする集積回路装置の設計方法。
【請求項21】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記上記集積回路装置の検証要求に応じて、上記VCクラスタの機能レベルのVCにリンクさせて、上記集積回路装置の機能を検証するために用いられる検証目的別に分けられた目的別機能検証モデルを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項22】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、機能検証時における信号をクロックと同期する特定周期の倍数に変更してなる同期化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項23】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、集積回路装置の実動作で使用される処理のうち機能検証時において使用されない処理を削除してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項24】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記VCクラスタ内の各層に対応した回路データにおいて、互いに階層が異なる複数の層同士に亘る信号線を単一化してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項25】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、集積回路装置の回路記述の形式を機能検証に用いるシミュレータの処理速度が最も高い形式に統一してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項26】 請求項21記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、機能検証を行なう集積回路装置のうち機能検証時に動作しない部分の記述を削除してなる記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項27】 請求項26記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記記述最適化モデルを使用した検証において削除した記述を起動する動作を行なったときにこれを検出,警告する手段をさらに備えている記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項28】 請求項26記載の集積回路装置の設計方法において、上記目的別機能検証モデルとして、上記集積回路装置の検証時に回路動作が正常に行なわれていることをチェックし、異常な動作を検出し、警告する手段をさらに備えている記述最適化モデルを生成することを特徴とする集積回路装置の設計方法。
【請求項29】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VCクラスタの階層化された各層に応じた同数の層に階層化され、上記各VCを組み合わせて上記集積回路装置を構築したときのシステムの検証を行なうためのシステム検証用モデルを生成するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項30】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースと検証のためのCPUとを用いた集積回路装置の設計方法であって、シミュレーションの結果に応じて上記VCデータベースからVCを取り出す一方、シミュレーションの結果から使用するCPUに関するパラメータを抜き出して、使用するCPUのパラメータに適合したインターフェースを選択又は生成して上記VC内に格納するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項31】 請求項30記載の集積回路装置の設計方法において、上記インターフェースは、上記CPUのバスとの間で信号を授受するためのバスインターフェースであり、上記バスインターフェースは、上記VC内においてVCの機能本体部と分離して格納され、使用するCPUのプロトコルに合わせて生成されていることを特徴とする集積回路装置の設計方法。
【請求項32】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の動作回数を解析するステップを含むことを特徴とする集積回路装置の設計方法。
【請求項33】 集積回路装置を設計するために必要なデータを格納する複数のVC(バーチャル・コア)クラスタを備え、各VCクラスタを抽象化の度合いに応じて上位から下位まで複数の層に階層化してなるVCデータベースを用いた集積回路装置の設計方法であって、上記VC本体内の故障検査を最適化するためのステップを含むことを特徴とする集積回路装置の設計方法。
【図4】
【図7】
【図8】
【図9】
【図1】
【図2】
【図5】
【図10】
【図32】
【図33】
【図34】
【図3】
【図6】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図20】
【図19】
【図21】
【図41】
【図22】
【図23】
【図36】
【図40】
【図24】
【図25】
【図27】
【図35】
【図26】
【図28】
【図29】
【図30】
【図38】
【図31】
【図37】
【図39】
【図42】
【図43】
【図44】
【図53】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図54】
【図55】
【図7】
【図8】
【図9】
【図1】
【図2】
【図5】
【図10】
【図32】
【図33】
【図34】
【図3】
【図6】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図20】
【図19】
【図21】
【図41】
【図22】
【図23】
【図36】
【図40】
【図24】
【図25】
【図27】
【図35】
【図26】
【図28】
【図29】
【図30】
【図38】
【図31】
【図37】
【図39】
【図42】
【図43】
【図44】
【図53】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図54】
【図55】
【公開番号】特開2000−315222(P2000−315222A)
【公開日】平成12年11月14日(2000.11.14)
【国際特許分類】
【出願番号】特願平11−124068
【出願日】平成11年4月30日(1999.4.30)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】
【公開日】平成12年11月14日(2000.11.14)
【国際特許分類】
【出願日】平成11年4月30日(1999.4.30)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]