明 細 書 論理検証システム, 論理検証方法, コンピュータプログラム, お ょぴ記録媒体 技術分野 本発明は論理検証システム, 論理検証方法, およびその周辺技術 に力 力、り, 特に, HD L (H a r d w a r e D e s c r i p t i o n L a n g u a g e ) 設計支援システムに適用可能な技術に関 する。 背景技術 近年, L S I (L a r g e S c a l e I n t e g r a t i o n) の高集積化と高速化に伴い, 電子回路の設計はますます複雑な ものになっている。 このような背景から, コンピュータ上に論理ゲ ー ト回路図を入力し, シミ ュ レーショ ンによって動作を確認する設 計手法がごく一般的になっている。 さらに, 数万ゲートを超える大 規模回路の設計に対応するため, ハードウェア記述言語 (HD L : H a r d w a r e D e s c r i p t i o n L a n g u a g e ; と論理合成ツールを用いた設計手法が実用化されてきた。 HD Lは ディジタル回路全般に対する記述を可能にした言語であり, HD L を用いて L S Iの動作を記述, 検証した後に, 論理合成ツールを用 いて自動的にゲート回路を生成することができる。このようにして, 従来, 難しかった大規模回路を短期間で設計することが可能となつ ている。
HD Lは, 論理ゲートのような簡単なものから V L S Iなど複雑 なものまで, 電子回路システムをプログラムのように記述する言語 である。 VHD Lも V e r i l o gも I E E E (ァメ リ力電気 ·電 子通信学会) で標準化された世界標準である。 VHD Lと V e r i l o gは, 今話題の設計資産 ( I P) の有効利用, 共有の前提とな る言語の代表的なものである。 二論理回路設計を行う際には, VHD Lや V e r i l o gな どの HD Lで直接記述するほか, 現在最も普及している言語である C + +言語で記述し, それを HD Lにコンパイルする方法がある。 したがって, 基本的に, C + +言語と論理回路を理解していれば, HD Lによる論理回路設計は可能である。 しかしながら, それでも C ++言語による論理回路設計は難しい面が多く, また, C ++言 語あるいは論理回路に関する設計者の理解度が不足している場合が ある。 また, C + +言語で意図した通りに論理回路を具現化できて いない場合, その具現化できていない箇所を特定することが困難な 場合がある。 このよ うな事情から, C + +言語を拡張したものでシステムレべ ルシミ ュレーショ ンおよび高位合成用に開発された言語 (以下, 拡 張 C言語という。)を用いて論理回路の自動生成を行おうという試み がある。 拡張 C言語には, S p e c Cや S y s t e mCと称される ものがあり, HD L言語へのコンパイルのためには, それぞれ高額 な専用のコンパイラが必要である。 しかしながら, 設計者による自 由な無限の組合せの設計を行うには, 拡張 C言語では完全な状態を 作り出すことには限界があった。 なお, 高位合成とは, システムレ
ベルに抽象ィ匕したソース ' プログラムを RT L (R e g i s t e r T r a n s f e r L e v e l ) レべノレまたはネッ ト リス トまで具 現化する処理をいう。 また, RT Lとは, 論理回路の 1 クロックサ ィクル単位で動作するモデルをいう。 また, ネッ ト リス トとは, L S I 回路の論理的な接続情報をいい, 通常ネッ トリス トを物理的な 配置 ·配線情報へ変換して L S I を製造する。 以上説明したよ うに, 従来の論理検証システムには以下の問題点 があった。 拡張 C言語を用いた論理回路の自動生成では, 設計者による自由 な無限の組合せの実現を図ることが難しい。 汎用品と して完成度の 高い拡張 C言語の完成にはまだ時間が掛かるのが現実である。また, このような完成度の高い拡張 C言語が完成したと しても, 高額な機 器や専用のコンパイラが必要となる。 また, 使いこなすためには高 度な専門知識が必要とされる。 このため, 結局は設計者の自由な設 計の妨げとなるばかりでなく, シミュレーション結果の有効な確認 手法の確立が必要であり, また, HD Lレ.ベルで問題が発生した際 にはシステムレベルでの修正が必要となる。 このよ うに, 拡張 C言 語を用いた論理検証システムには上述のよ うな問題点があり, 拡張 C言語とは別の観点からの改善策が希求されている。 本発明は, 従来の論理検証システムが有する上記問題点に鑑みて なされたものであり, 本発明の目的は, ソースを記述するためのソ フ トウエア ' プログラミング言語そのものを拡張することなく, す なわち, 拡張されたソフ トウエア · プログラミング言語専用のコン 、。ィラを開発することなく, もともと存在するネィティブなコンパ
イラを使用することができ, これにより, 効率的かつ安価に RT L モデル生成および論理検証を行うことの可能な, 新規かつ改良され た論理検証システム, 論理検証方法, およびその周辺技術を提供す ることである。 さらに, 本発明の別の目的は, ソースを記述するためのソフ トゥ エア · プログラミング言語で意図した通りに論理回路を具現化でき ていない場合, その具現化できていない箇所を特定して設計者に明 確に知らせることができ, 設計者のアイディアによる問題解決を支 援するこ との可能な, 新規かつ改良された論理検証システム, 論理 検証方法, およびその周辺技術を提供することである。 発明の開示 上記課題を解決するため, 本発明の第 1の観点によれば, ライブ ラリ群 ( 1 1 0 ) と, 検証プロセス部 ( 1 2 0 ) と, 検証結果出力 部 ( 1 3 0) とを備えたことを特徴とする論理検証システム ( 1 0 0 ) が提供される。
ライブラリ群 ( 1 1 0) は, テンプレートライブラリ ( 1 1 1 ), およびシステム検証ライブラリ ( 1 1 2) を含む。
検証プロセス部 ( 1 2 0 ) は, 以下の構成要素を含む。
•前記テンプレートライブラリ と端子情報および/または構造情報 ( 1 4 2 ) とを基に, システムモデル ( 1 4 6 ) をソフ ト ウェア ' プログラミング言語 (例えば, C + +言語) で記述する際のひな形 となるテンプレート ( 1 4 4 ) を生成するテンプレート生成部 ( 1 2 1 )
- 前記システムモデルのビルド実行を行い実行形式を生成するビル
ド実行部 ( 1 2 2)
• 前記システム検証ライブラリ を基に, 前記実行形式のシステム検 証を行うシステム検証部 ( 1 2 3 )
検証結果出力部 ( 1 3 0 ) は, 前記システム検証部による検証結 果 ( 1 5 2) を出力する。 また, 本発明の第 2の観点によれば, ライブラリ群 ( 1 1 0) と, 検証プロセス部 ( 1 2 0 ) と, 検証結果出力部 ( 1 3 0 ) とを備え たことを特徴とする論理検証システム ( 1 0 0) が提供される。
ライブラリ群 ( 1 1 0 ) は, テンプレートライブラ リ ( 1 1 1 ), システム検証ライブラリ ( 1 1 2 ), および論理検証ライブラリ ( 1 1 3) を含む。
検証プロセス部 ( 1 2 0 ) は, 以下の構成要素を含む。
- 前記テンプレートライブラリ と端子情報および/または構造情報 ( 1 4 2) とを基に, システムモデル ( 1 4 6 ), 機能モデル ( 1 5 4), および検証モデル ( 1 5 8 ) をソフ トウェア 'プログラミング 言語 (例えば, C + +言語) で記述する際のひな形となるテンプレ ー ト ( 1 4 4) を生成するテンプレー ト生成部 ( 1 2 1 )
•前記システムモデルのビルド実行を行い第 1の実行形式( 1 5 0) を生成する第 1のビルド実行部 ( 1 2 2)
' 前記システム検証ライブラリ を基に, 前記第 1の実行形式のシス テム検証を行う システム検証部 ( 1 2 3 )
' 前記機能モデルのモデル変換を行い R T Lモデル ( 1 5 6 ) を生 成するモデル変換部 ( 1 2 4)
• 前記機能モデル, および前記検証モデルのビルド実行を行い第 2 の実行形式 ( 1 6 2 ) を生成する第 2のビルド実行部 ( 1 2 5 )
•前記論理検証ライブラリを基に, 前記第 2の実行形式の論理検証 を行う論理検証部 ( 1 2 6 )
検証結果出力部 ( 1 3 0 ) は, 前記システム検証部による検証結 果 ( 1 5 2), および前記論理検証部による検証結果 ( 1 6 4) を出 力する。 かかる構成によれば, 以下のような優れた効果がある。 ( a ) ライ ブラリ群の効果, (b )テンプレートの効果, ( c )システム検証部, 論理検証部の効果, (d) その他の効果に分けて説明する。
( a ) ライブラリ群の効果
ライブラリに手順や確認方法おょぴノゥハウを埋め込んでおき, それを用途別に自動生成することで, コーディング量を格段に減ら すことが可能である。 このようにして, 設計スピードおよび設計品 質の向上を図ることができる。 特に, ソフトウェア · プロダラミン グ言語として C + +言語を用いることで,システムモデル( 1 4 6 ), 機能モデル ( 1 5 4 ), および検証モデル ( 1 5 8 ) の記述の効率化 と高品質化を図ることができる。 発明者の見知によれば, コーディ ング量は従来の 5分の 1以下となり, 設計ス.ピードおよび設計品質 は 5倍以上になる。 また, L S I の用途別にライブラリ群を構築することによって, 短期間で製品化を図ることができ, また, ライブラリ群の拡張性も 高い。 発明者の見知によれば, 本発明の研究開発を開始して約半年 という短い期間でその有用性を立証できた点で, 従来技術の約 2 0 倍の速さで製品化可能である。
さらにまた, ライブラリ群にシステム検証ライブラリ と論理検証 ライブラリを含むようにしたことで, ソフトウェア ' プロダラミ ン グ言語 (例えば, C + +言語) のソースレベルで (モデル変換しな いで) システム検証おょぴ論理検証を実行することが可能である。 ソフ トウェア ' プログラミング言語 (例えば, C + +言語) のノ、 ー スは, システム検証おょぴ論理検証の後, H D Lソースへ変換可能 である。
( b ) テンプレー トの効果
テンプレート生成部を備えたことによって, 一般に普及している ソフ トウェア · プログラミング言語 (例えば, C + +言語) を用い た設計者に自由な無限の組合せの設計を可能にする。 すなわち, テ ンプレート生成は設計者にとって一種の設計制約となるが, 利便性 を兼ね備えた構造および関数群を骨組みとして提供することで, 設 計制約による不利益以上の利益を設計者に与えることが可能である c このように, 一般に普及しているソフ トウエア · プログラミング 言語 (例えば, C + +言語) のネイティブなコンパイラでビルド実 行が可能であり, 不具合が生じることが少なく, かつ性能も高い。 また, システムレベルシミ ユ レーショ ンおよび高位合成用に開発さ れた拡張 C言語などを用いることがないため, 高額な機器や専用の コンパイラを必要とせず, また, 使いこなすために高度な専門知識 を必要としない。 また, 拡張 C言語による高位合成が専用のコンパィラの開発を必 要とし, 一般にその開発のためにかかる研究開発者が数十人である のに対し, 例えば, 本発明で利用可能なネイティブな c + +コンパ
ィラの研究開発者は数百人であるとされている。 このよ うなコンパ ィラ開発に対するリ ソース差からみても, 本発明の性能の優位性は 圧倒的であると言える。
( c ) システム検証部, 論理検証部の効果
システム検証部はシステム検証ライブラリを参照することによつ て,テンプレートを基に生成された実行形式のシステム検証を行い, また, 論理検証部は論理検証ライブラリを参照することによってテ ンプレートを基に生成された実行形式の論理検証を行うことができ る。 このような論理検証方法によれば, システムモデル, 機能モデ ル, および検証モデルの 「完全な状態」 でない箇所を設計者に明確 に知らせることができ, 設計者のアイディァによる問題解決を支援 することが可能である。
( d ) その他の効果
その他の効果としては,以下に挙げた実社会的な効果が得られる。
1 ) システム検証および論理検証を普及率の高い C + +言語で行う ことができ, グローバル化社会に対応可能である。
2) L S I 開発向け C + +言語技術者として新規雇用形態を創出す ることが可能である。
3 ) アルゴリズム研究向け C + +言語と, L S I開発向け C + +言 語をシームレスに橋渡し可能である。
4) 画像処理向け L S I開発用アルゴリズムおよびィンプリメント を C + +言語で効率的に行うことが可能である。
5 )装置メーカ側が UML(U n i f i e d Mo d e l i n g L a n g u a g e (登録商標):統一モデリング言語) などを使用した
企画検討へ資源集中可能である。 また,本発明の第 3の観点によれば,論理検証方法が提供される。 本発明の論理検証方法は, 例えば上記第 1の観点にかかる論理検証 システムにより実行可能であり, 以下の各工程を含む。
( a ) システムモデルをソフトウェア ' プログラミング言語 (例え ば, C + +言語) で記述する際のひな形となるテンプレートを生成 する第 1工程
( b ) 前記テンプレートを基に, 前記システムモデルを生成する第 2工程
( c ) 前記システムモデルを前記ソフ トウェア · プロダラミング言 語のコンパィラにより コンパイルして実行形式を生成する第 3工程 ( d ) 前記実行形式のシステム検証を行う第 4工程 また,本発明の第 4の観点によれば,論理検証方法が提供される。 本発明の論理検証方法は, 例えば上記第 2の観点にかかる論理検証 システムにより実行可能であり, 以下の各工程を含む。
( a ) システムモデル, 機能モデル, および検証モデルをソフ トゥ ユア . プログラミング言語 (例えば, C + +言語) で記述する際の ひな形となるテンプレートを生成する第 1工程
( b ) 前記テンプレートを基に, 前記システムモデル, 前記機能モ デル, および前記検証モデルを生成する第 2工程
( c ) 前記システムモデル, 前記機能モデル, および前記検証モデ ルを前記ソフ トウエア · プログラミング言語のコンパイラによりコ ンパイルして実行形式を生成する第 3工程
( d ) 前記実行形式のシステム検証 Z論理検証を行う第 4工程
また, 本発明の他の観点によれば, 上記本発明の第 2の観点にか かる論理検証方法をコンピュータに実行させるためのコンピュータ プログラムが提供される。 また, 本発明によれば, そのコンビユ ー タプログラムを格納した, コンピュータにより読み取り可能な記録 媒体が提供される。 ここで記録媒体とは, データや情報を保持し, 必要に応じて読み出すことのできる媒体, 例えばフ口ッピーディス クゃ C D— R O Mなどをいう。 図面の簡単な説明 . 第 1図は, 論理検証システム 1 0 0の説明図である。 第 2図は, 論理検証システム 1 0 0による論理検証方法の説明図 である。 第 3図は, 検証結果出力部 1 3 0による結果表示を示す説明図で ある。 第 4図は, コーディング量に関して, 本実施の形態と従来技術と の比較を示す説明図であり, ( a ) は従来技術, (b ) は本実施の形 態を示している。 第 5図は, 論理検証システムを実現可能なコンピュータシステム 2 0 0のハードウエア構成の一例を示す説明図である。 発明を実施するための最良の形態 以下に添付図面を参照しながら, 本発明にかかる論理検証システ
ム, 論理検証方法, およびその関連発明の好適な実施の形態につい て詳細に説明する。 なお, 本明細書及び図面において, 実質的に同 一の機能構成を有する構成要素については, 同一の符号を付するこ とにより重複説明を省略する。
第 1図は, 本実施の形態にかかる論理検証システム 1 0 0の説明 図である。
第 2図は, 論理検証システム 1 0 0による論理検証方法の説明図 である。 論理検証システム 1 0 0は, 第 1図に示したように, 各種データ をライブラリ化したライブラリ群 1 1 0と, ライブラリ群に格納さ れた各種データを用いて検証処理を行う検証プロセス部 1 2 0 と, 検証プロセス部 1 2 0による処理結果を表示する検証結果出力部 1 3 0 とにより主に構成されている。 以下に, 各構成要素について詳 細に説明する。
(ライブラリ群 1 1 0 )
ライブラリ群 1 1 0は, 後段の検証プロセス部 1 2 0において用 いられる各種データをライブラリ化したものである。 ライブラリ群 1 1 0は, 第 1図に示したように, 後述のテンプレー ト生成部 1 2 1がテンプレー トの生成に用いる各種データを格納するテンプレー トライブラリ 1 1 1 と, 後述のシステム検証部 1 2 3が論理検証処 理に用いる各種データを格納するシステム検証ライブラリ 1 1 2と : 後述の論理検証部 1 2 6が論理検証処理に用いる各種データを格納
する論理検証ライブラリ 1 1 3とにより構成されている。 本実施の 形態ではこのように, テンプレート生成や論理検証処理に用いられ る各種データを L S Iの用途向けにライブラリ化することで, 高度 な専門知識を必要とせずに何をどこに記述するか誰にでも分かる。
(検証プロセス部 1 2 0)
検証プロセス部 1 2 0は, 第 1図に示したように, テンプレート 生成部 1 2 1 と, C + +システムモデルのビルド実行部 1 2 2と, システム検証部 1 2 3と, C + +モデル変換部 1 2 4と, C + +検 証 Z機能モデルのビルド実行部 1 2 5 と, 論理検証部 1 2 6とによ り構成されている。 以下に, 各構成要素について詳細に説明する。
(テンプレート生成部 1 2 1 )
テンプレート生成部 1 2 1は, ライブラリ群 1 1 0に格納された テンプレートライブラリ 1 1 1 と端子情報 Z構造情報 1 4 2をもと に, C + +言語によるプロダラミングのためのひな形となるテンプ レート 1 4 4を生成する (第 2図のステップ S 1 )。 設計者は, この テンプレート 1 4 4に所定のアルゴリ ズムを与えてコーディングを 行い, C + +システムモデル 1 4 6 , C + +機能モデル 1 5 4, C + +検証モデル 1 5 8を生成する (第 2図のステップ S 2)。 C + + システムモデル 1 4 6 , C + +機能モデル 1 5 4, C + +検証モデ ノレ 1 5 8のすベてのモデノレは, コマ ンドライン引数とのインタフエ ースを持っている。 このため, すべての作業をバッチフアイル化可 能である。
(ビルド実行部 1 2 2)
C + +システムモデルのビルド実行部 1 2 2は, 上述のよ うに設 計された C + +システムモデル 1 4 6に対し, 汎用の C + +コンパ イラ 1 4 8を用いて, ビルド実行を行う。 ビルド実行の結果, C + +実行形式 1 5 0が生成される (第 2図のステップ S 3 )。 ここで, C + +コンパイラ 1 4 8は汎用のものを用いることができるので, 安価であるとともに, 高度な専門知識を必要とせずに実行手順を習 得可能である。 また, 高速なシミ ュ レーショ ンを実現可能である。
(システム検証部 1 2 3 )
システム検証部 1 2 3は, ライブラリ部 1 1 0に格納されたシス テム検証ライブラリ 1 1 2を用いて, 上述のよ うに生成された C + +実行形式 1 5 0のシステム検証を行い, 検証結果 1 5 2を生成す る (第 2図のステップ S 4)。 システム検証とは, 抽象度の高いシス テムレベルで検証を行う ことをいう。 また, 設計者は, テンプレート 1 44に所定のアルゴリズムを与 えてコーディングを行い, C + +機能モデル 1 5 4を生成する。 機 能モデルとは,回路化する機能を擬似的にモデル化したものである。 上述のよ うに, C + +機能モデル 1 5 4は, コマンドライン引数と のィンタフェースを持っており, 作業をバッチファイル化可能であ る。
(C + +モデル変換部 1 2 4)
C + +モデル変換部 1 2 4は, 上述のように設計された C + +機 能モデル 1 5 4をモデル変換して, HD L— R T Lモデル 1 5 6を 生成する (第 2図のステップ S 5 )。 このように, C + +モデル変換
部 1 2 4は, システムレベルに抽象化したソース · プログラムを R T Lレベルまたはネッ トリ ス トまで具現化する処理, いわゆる高位 合成を行い, H D L— R T Lモデル 1 5 6を生成する。 生成された H D L— R T Lモデル 1 5 6を論理合成することによりネッ トリ ス トが生成される (第 2図のステップ S 6 )。 さらにまた, 設計者は, テンプレート 1 4 4に所定のァルゴリズ ムを与えてコーディングを行い, C + +検証モデル 1 5 8を生成す る。 検証モデルとは,. 回路を検証するための試験内容を擬似的にモ デル化したものである。上述のように, C + +検証モデル 1 5 8は, コマンドライン引数とのインタフェースを持っており, 作業をバッ チフアイル化可能である。
(ビルド実行部 1 2 5 )
C + +検証/機能モデルのビルド実行部 1 2 5は, 上述のように 設計された C + +機能モデル 1 5 4および C + +検証モデル 1 5 8 に対し, 汎用の C + +コンパイラ 1 6 0を用いて, ビルド実行を行 う。 ビルド実行の結果, C + +実行形式 1 6 2が生成される。 ここ で, C + +コンパイラ 1 6 0は, 上述の C + +コンパイラ 1 4 8 と 実質的に同様であり, 汎用のものを用いることができるので, 安価 であるとともに, 高度な専門知識を必要とせずに実行手順を習得可 能である。 また, 高速なシミ ュ レーショ ンを実現可能である。
(論理検証部 1 2 6 )
論理検証部 1 2 6は, ライブラリ部 1 1 0に格納された論理検証 ライブラリ 1 1 3を用いて, 上述のように生成された C + +実行形 式 1 6 2の論理検証を行い, 検証結果 1 6 4が生成される。 論理検
証とは, 論理レベルや R T L レベルのソース ♦ プログラムを検証す ることをいう。
(検証結果出力部 1 3 0 )
検証結果出力部 1 3 0は, システム検証部 1 2 3により得られた 検証結果 1 5 2と, 論理検証部 1 2 6により得られた検証結果 1 6 4とを一つの検証結果として出力する。 第 1図に示した例では, 検 証結果は, 高速波形ビューァなどの表示部 1 3 2により映像的に表 示されるとともに, プリンタなどの印刷部により紙面 1 6 6に印刷 される。 高速波形ビューァとは, 数ギガバイ トレベルや今後は数テ ラバイ トのファイル要領となるシミ ユレーショ ン結果ファイルを波 形として高速に表示する装置である。 第 3図は, 表示部 1 3 2に映像的に表示され, あるいは, 紙面に 印刷された検証結果を示す説明図である。第 3図に示した一例では, 信号名表示ビュー 1 3 4, 信号値表示ビュー 1 3 6 , および波形表 示ビュー 1 3 8などからなる。 設計者は, この検証結果を参照する こ とによ り , C + +システムモデル.1 4 6 , C + +機能モデル 1 5 4, あるいは検証モデル 1 5 8の再構築などを行うことができる。 第 4図は, コーディング量に関して, 本実施の形態と従来技術と の比較を示す説明図であり, ( a ) は従来技術, (b ) は本実施の形 態を示している。 従来技術では, 第 4図 ( a ) に示したように, 処理アルゴリズム, フアイル読み込み制御などをすベて設計者が自分で記述しなければ ならなかった。 これにより, 入力データ (例えば, 入力画像) はシ
ステム検証されて出力データ (例えば, 出力画像) として得られる。 これに対し, 本実施の形態では, 第 4図 (b ) に示したように, テ ンプレートにより予め記述された部分があるため, 設計者は処理ァ ルゴリズムのみを記述すればよいことになる。 ここで, テンプレー ト部には, ファイル読み込み制御などのほか, RT L検証用フアイ ル出力制御が記述されている。このことにより,本実施の形態では, 入力データ (例えば, 入力画像) はシステム検証されて, 出力デー タ (例えば, 出力画像) と次工程用データが得られる。
(コンピュータシステム 2 0 0)
上述の論理検証システムは, 一般のコンピュータシステムにおい て実現可能である。 第 5図は, 本実施の形態にかかる論理検証シス テムを実現可能なコンピュータシステムのハードウェア構成の一例 を示す説明図である。 このコンピュータシステム 2 0 0は, C PU 2 1 0 , メモリ 2 2 0 , およびハードディスク (HD) 2 3 0を含むコンピュータ本体
2 4 0と, コンピュータ本体 2 4 0に接続されるキーボードゃマゥ スなどの入力手段 2 5 0により構成されている。 第 5図に示した一 例では必要最小限の構成要素を示しており, 検証結果 2 6 0を出力 するモニタなどの表示手段やプリンタなどの印刷手段, 論理検証プ ログラム 2 7 0や C + +コンパイラ 2 8 0 (第 1図の C + +コンパ イラ 1 4 8 , 1 6 0に相当) を記録媒体から読み取るための読み取 り手段ゃィンタフェースなどは図示していない。 上述の論理検証方法を実行するための論理検証プログラム 2 7 0 は, 例えばフロッピーディスクや C D— R O Mなどのコンピュータ
本体 2 4 0により読み取り可能な記録媒体に格納されている。 この 論理検証プログラム 2 7 0がハードディスク 2 3 0に格納されるこ とにより, このコンピュータシステム 2 0 0において上述の論理検 証方法を実行可能となる。 なお, 論理検証プログラム 2 7 0には, 上述の論理検証方法を実行するためのプログラムのほか, 論理デー タゃテス トパターンなど必要なデータがすべて含まれているものと する。 コンピュータシステム 2 0 0においては, C P U 2 1 0がハー ド ディスク 2 3 0に格納された論理検証プログラム 2 7 0を読み出し てメモリ 2 2 0上に展開して実行する。上述の論理検証方法に従い, 入力手段 2 5 0により処理実行コマンドおよび入力指定または出力 指定を入力して処理を行うことにより, 検証結果 2 6 0を出力する ように動作する。 以上説明したように, 本実施の形態によれば以下の効果が得られ る。
( a ) ライブラリ群の効果
ライブラリ群 1 1 0に手順や確認方法おょぴノゥハウを埋め込ん でおき, それを用途別に自動生成することで, コーディング量を格 段に減らすことが可能である。 このようにして, 設計スピー ドおよ び設計品質の向上を図ることができる。 特に, ソフ トウェア · プロ グラミング言語として C + +言語を用いることで, C + +システム モデル 1 4 6, C + +機能モデル 1 5 4, および C + +検証モデル 1 5 8の記述の効率化と高品質化を図ることができる。 発明者の見 知によれば, コーディング量は従来の 5分の 1以下となり, 設計ス
ピードおよび設計品質は 5倍以上になる。 また, L S Iの用途別にライブラリ群 1 1 0を構築することによ つて, 短期間で製品化を図ることができ, また, ライブラリ群 1 1 0の拡張性も高い。 発明者の見知によれば, 本発明の研究開発を開 始して約半年という短い期間でその有用性を立証できた点で, 従来 技術の約 2 0倍の速さで製品化可能である。 さらにまた, ライブラリ群 1 1 0にシステム検証ライブラリ 1 1 2と論理検証ライブラリ 1 1 2を含むようにしたことで, C + +言 語のソースレベルで (モデル変換しないで) システム検証おょぴ論 理検証を実行することが可能である。 C + +言語のソースは, シス テム検証おょぴ論理検証の後, H D Lソースへ変換可能である。
( b ) テンプレー トの効果
テンプレート生成部 1 2 1を備えたことによって, C + +言語を 用いた設計者に自由な無限の組合せの設計を可能にする。すなわち, テンプレート生成は設計者にとって一種の設計制約となるが, 利便 性を兼ね備えた構造および関数群を骨組みとして提供することで, 設計制約による不利益以上の利益を設計者に与えることが可能であ る。 このように, C + +言語のネイティブなコンパイラ 1 4 8, 1 6 0でビルド実行が可能であり, 不具合が生じることが少なく, かつ 性能も高い。 また, システムレベルシミ ュレーショ ンおよび高位合 成用に開発された拡張 C言語などを用いることがないため, 高額な 機器や専用のコンパイラを必要とせず, また, 使いこなすために高
度な専門知識を必要としない。 また, 拡張 C言語による高位合成が専用のコンパィラの開発を必 要とし, 一般にその開発のためにかかる研究開発者が数十人である のに対し, 例えば, 本発明で利用可能なネイティブな C + +コンパ イラの研究開発者は数百人であるとされている。 このようなコンパ ィラ開発に対するリ ソース差からみても, 本発明の性能の優位性は 圧倒的であると言える。
( c ) .システム検証部 1 2 3, 論理検証部 1 2 6の効果 ' システム検証部 1 2 3はシステム検証ライブラリ 1 1 2を参照す ることによって, テンプレー トを基に生成された実行形式のシステ ム検証を行い, また, 論理検証部 1 2 6は論理検証ライブラリ 1 1 3を参照することによってテンプレートを基に生成された実行形式 の論理検証を行うことができる。このような論理検証方法によれば, C + +システムモデル 1 4 6, C + +機能モデル 1 5 4, および C + +検証モデル 1 5 8 の 「完全な状態」 でない箇所を設計者に明確 に知らせることができ, 設計者のアイディアによる問題解決を支援 することが可能である。 '
( d ) その他の効果
その他の効果としては,以下に挙げた実社会的な効果が得られる。 1 ) システム検証および論理検証を普及率の高い C + +言語で行う ことができ, グローバル化社会に対応可能である。
2 ) L S I開発向け C + +言語技術者として新規雇用形態を創出す ることが可能である。
3 ) アルゴリ ズム研究向け C + +言語と, L S I開発向け C + +言
語をシームレスに橋渡し可能である。
4) 画像処理向け L S I開発用アルゴリズムおよぴィンプリメント を C + +言語で効率的に行うことが可能である。
5 )装置メーカ側が UML (U n i f i e d Mo d e l i n g L a n g u a g e (登録商標):統一モデリング言語) など 使用した 企画検討へ資源集中可能である。 以上,添付図面を参照しながら本発明にかかる論理検証システム, 論理検証方法, およびその関連発明の好適な実施形態について説明 したが, 本発明はかかる例に限定されない。 当業者であれば, 特許 請求の範囲に記載された技術的思想の範疇内において各種の変更例 または修正例に想到し得ることは明らかであり, それらについても 当然に本発明の技術的範囲に属するものと了解される。 以上説明したように, 本発明によれば, ソースを記述するための ソフ トウェア ' プログラミング言語そのものを拡張することなく, すなわち, 拡張されたソフ トウ ア · プログラミング言語専用のコ ンパイラを開発することなく, もともと存在するネィティプなコン パイラを使用することができ, これにより, 効率的かつ安価に RT Lモデル生成および論理検証を行うことが可能である。 さらに,本発明によれば, ソースを記述するためのソフ トウ ア · プロダラミング言語で意図した通りに論理回路を具現化できていな い場合, その具現化できていない箇所を特定して設計者に明確に知 らせることができ, 設計者のアイディァによる問題解決を支援する ことが可能である。
さらに, 本発明によれば, 上記発明の実施の形態の効果として説 明した様々な効果を得ることができ, 近年におけるモパイル機器や ディジタル情報家電による第 2のダウンサイジング革命を背景に, 特異なシステム L S I需要が創出されることが予測され, 本発明を 製品として具現化した際における普及拡大は計り知れない。 産業上の利用の可能性 本発明は論理検証システム, 論理検証方法, およびその周辺技術 として適用可能である。 特に, 本発明は, HD L (H a r d w a r e D e s c r i p t i o n L a n g u a g e ) |S r支援シスァ ムに適用可能である。