デバイス古今東西(6) ―― 徐々に存在感が高まっている検証用IP

山本 靖

tag: 半導体 電子回路

コラム 2009年10月29日

 ディジタルLSIの開発に使われる半導体IP(Intellectual Property)は,設計対象物の設計データそのものである「設計用IP」と,設計したものを検証するために必要な情報を持つ「検証用IP」に二分できます.前者の特徴は,本コラムの第2回「半導体IPと知識社会に向けた新しいビジネスの形態」で述べました.今回は,検証用IPに注目します.

●Verification & Validationに対応する半導体IP

 半導体IPの議論の中で出てくる検証用IPの「検証」とは,一般には「Verification」と解釈されています.Verificationとは,それが正しい(Correct)か否(False)かを検証することを意味します.半導体設計における対象物を考えると,その対象物がある入力に対して正しい出力を生成するか否か,ということになります.正しい出力とは,検証を行う人が期待している出力(期待値)と同じ出力を生成しているということです.

 一方,Verificationに対して,「Validation」という似た概念があります.Validationとは,法律あるいは何らかの規格や仕様に照らして,それが妥当か否かをチェックするときに使われます.昨今では,顧客の要求する仕様以外に,IEEE(米国電気電子学会)で業界標準となったマニュアルやプロトコルなどを正しく反映しているかどうかを確認する検証用IPへの需要がみられます.つまり,現在の検証用IPは,VerificationだけでなくValidationの機能を含んでいる場合があります.

 検証用IPは,「論理シミュレーション用のモデル」と「テストベンチ環境のモデル」に分類できます.

 論理シミュレーション用のモデルとは,いわば実際の部品や回路と同一の機能,同一の時間の概念を持たせた仮想的なモデルです.市販のシミュレータ上でこのモデルを実行し,利用者はそのふるまいを確認します.

 テストベンチは,実験室でオシロスコープやはんだごてなどを持って作業を行う腰掛け(ベンチ)から派生した言葉です.そしてテストベンチ環境とは,技術者がそのベンチに腰掛けて,設計の対象物の出力が正しく生成されているかどうかを確認するための仮想のテスト装置と考えることができます.

 ここで述べた二つの検証用IPは性格が異なっています.論理シミュレーション用のモデルは,あくまでも設計の対象物を構成する一要素のふるまいを再現するものです.一方,テストベンチ環境のモデルは,設計対象物の構成要素ではなく,それを取り巻く環境のふるまいを模擬します.二つの検証用IPの共通点は,どちらもすでに正しく検証・較正(こうせい)されていることを前提として使われる点です.

 以下では,これら二つのモデルについて,さらに話を進めます.


●最近は検証用のSystemCモデルを用意

 論理シミュレーション用のモデルには,いくつかのタイプがあります.

 一つ目は,VHDLやVerilog HDLで記述したハードウェア記述言語のモデルです.このモデルは,ビヘイビア・レベル,レジスタ・トランスファ・レベル(RTL),ゲート・レベルと,設計抽象度が下がるに従ってモデルの精度(ふるまいの忠実度)が高くなります.反面,設計抽象度が下がると,シミュレータの処理時間は長くなります.

 二つ目は,VHDLやVerilog HDLのシミュレータの実行中にPLI(Programming Language Interface)などのAPI(Application Programming Interface)を経由して呼び出すC言語ベースの実行モデルです.古くはプロセッサやASSP(Application Specific Standard Products)などのビヘイビア・モデルである米国Logic Automation社のSmartModelが,最近ではメモリに特化した米国Denali Software社Memory Modelerなどがあります.

 三つ目は,実チップを使ってふるまいを再現するハードウェア・モデラと呼ばれる装置です.APIを経由する仕組みは,二つ目のC言語ベースの実行モデルと同じです.ただし実際の部品を使用するので,シェルと呼ばれる外枠を準備しておけば,モデルの中身の動きを(C言語などで)記述する必要はありません.ハードウェア・モデラは1980年後半から1990年代にかけて,米国Valid Logic Systems社や米国Logic Modeling社から提供されていた装置の中に組み込まれ,当時のシステム検証で効果を上げていました.

 また昨今は,4番目の新しいモデルが登場しています.ディジタル民生機器の領域を中心として,SystemC言語で記述した検証用IPが利用されています.SystemCは,C++のクラスを用いてハードウェアを記述できるシステム設計言語です.SystemCはRTL設計だけではなく,それより上流のTLM(Transaction Level Modeling)の設計を行えることが大きな特徴です.そもそもTLMでは,レジスタ間の細かいタイミングを考えずに設計できるため,アーキテクチャの設計に適しています.SystemCは,幅広い抽象度(RTLからTLMまで)で記述できることから,アルゴリズムの検討からLSIの実装まで,一貫した対応が可能です.

 抽象度の高いTLMで設計と検証を行えることには,多くのメリットがあります.例えば,RTLに比べて約1/10のステップ数で記述できるため,コーディングなどの時間を短縮できます.また,ビット単位の細かい処理が減るので,コンパイラの負荷も1/100程度になると言われています.さらに,設計に使用するライブラリが無償で提供されていることも大きなメリットです.C++ベースであるため,ソフトウェアとハードウェアの協調検証を行いやすいという特徴もあります.


●テストベンチ環境が売りものになる時代に

 テストベンチ環境のモデルでは,設計の対象物からの出力が正しく生成されているかどうかを確認します.テストベンチから設計対象物に対して信号(刺激)が与えられ,その入力に対して生成される出力がテストベンチに返ります.入力から出力への変換は,設計対象物が実行する処理あるいは手続きによります.そして,出力があらかじめ準備していた期待値と一致するかどうかをチェックします.

 ここで問題となるのは,「あらかじめ準備していた期待値の照合だけで十分なのか」ということです.例えば,検証漏れはないのか,設計不良やバグは取り除かれたのか,機能の作り込みに抜けはないのか,規格に準拠していることを保証できるだけの完全な入出力を用意できるのか,といったことです.

 USB 1.0準拠の製品が市場に出回る直前の1996年に,筆者はUSBの半導体IPを業界で初めて提供したIPベンダのライセンス業務に携わりました.ライセンスしていたのは,論理合成が可能な設計用IPでした.ほぼすべての日本の半導体メーカに対してビジネスが成立しました.欧米にはすでにUSBの設計用IPを提供する企業がいくつかありましたが,筆者らが販売していたIPが選択された理由の一つは,充実した検証用IPが付属していた点にありました.つまり,上述の問題を解決しうるほどさまざまなテスト・シナリオを再現できる環境が用意されていたのです.設計用IPだけでなく,それを十分にテストできる環境を持ち合わせていたことから,顧客の信頼を得ることができ,高付加価値のビジネスを行うことができました.

 現在では,汎用のテストベンチ環境のモデルだけでも売りものになる時代となっています.客観的見地に立った設計品質の向上,ならびに開発期間の短縮が重要となっているからです.開発者は独自の付加価値を持つ機能の設計と検証に注力し,Serial ATAやPCI Express,USBといった標準バスの検証は,むしろ外部から調達した検証用IPに任せたい,と考える設計者は少なくないでしょう.

 さて,今回は検証用IPの分類について述べました.かつて検証用IPは,設計データそのものである設計用IPと比べると陰の薄い存在でした.しかしLSIの大規模化と複雑化が進行している今日では,検証用IPは半導体設計に不可欠の存在となっています.

 


筆者プロフィール
山本 靖(やまもと・やすし).半導体業界,ならびに半導体にかかわるソフトウェア産業で民間企業の経営管理に従事.1989年にVHDLの普及活動を行う.その後,日米で数々のベンチャ企業を設立し,経営責任者としてオペレーションを経験.日米ベンチャ企業の役員・顧問に就任し,経営戦略,製品設計,プロジェクト管理の指導を行っている.慶應義塾大学工学部卒,博士(学術)早稲田大学院.
 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日