« FPGAプロトタイピング | Main | Virtual Machine Design and Implementation in C/C++ »

2007.07.11

ソフトウェアとハードウェアの検証

ESL D&V Chap11 から

「ソフトウェアとハードウェアにおいて、検証の役割は違う。ハードウェアの検証として使えるソフトウェアの技術は多くはない。」

現実を見るとそうなのかもと思い始めた。HDLになればソフトウェアの検証手法がどんどん取り入れられるはずだったが、実際はそれほどでもなかった。部品をライブラリとして再利用という点では、HDLの特性はあまり生かされていないように見える。パラメタライズが上手く効いているのはSRAM/CPUのキャッシュ/乗算器とかもともとそれ単独で部品だったものばっかりじゃないか。さらにそれらは高速化が必要なのでテクノロジー依存になっている。やっぱりソフトウェアとハードウェアは開発という点から見ると違うんだ。ハードウェアで有効な検証手法っていうのは、この本に書いてあるとおり、等価性(equivalece)のチェックやら、ランダム検証など、ソフトウェアの検証とは違う方向に進んでいる。どちらかというと数学的なバックグラウンドを必要としている。ソフトウェアの世界では、爆発する組み合わせをオブジェクト指向や、コンポーネント、フレームワークといった抽象化/標準化の技術でで乗り切ろうとしたのと比較すると面白い。

かなり目が覚めた。ハードウェアの検証はソフトウェアの検証に比べて遅れているんじゃない、方向が違うんだ。90年にデヴィッド・カトラーとリーナスが行ったドッグフードと毎日リリースとか沢山の目玉とか、そういうのは今の半導体業界だと無理なんだ。

そこでbluespecですよ。ソフトウェアではC++とJavaが成功したけど、ハードウェアではrule-baseが成功するかもしれない背景がここにある。

とはいえ、ソフトウェアを動かずCPUはハードウェアだし、ソフトウェアの無いCPUはただの半導体だ。方向性が違うソフトもハードも一緒にして検証できる日がくるのはまだまだ先なのかも。

|

« FPGAプロトタイピング | Main | Virtual Machine Design and Implementation in C/C++ »

Comments

>ハードウェアの検証はソフトウェアの検証に比べて遅れているんじゃない
むかし勤めてた客先に逆のことを言われたことがあった。
ソフトウェアはハードよりバグが多いとかそんなこと。
でも普通に考えてソフトとハードが同じものであるわけないので比べることことは無意味だろと突っ込んだが…
しかしソフトもハード汎用性を高めると近い物になるような気がすることはある

Posted by: あん | 2007.07.16 at 10:13 PM

あんさん
こんにちは。

ハードウェアの汎用性があがり、ソフトウェアの並列性が上がってくると検証手法は似てくると思います。
ただ、ソフトウェアの並列性はこれからどんどん高くなると思いますが、ハードウェアの汎用性は、
まだまだ今のままだと思います。ソフトとハードと同じように検証するのはまだまだ難しいでしょうね。

Posted by: なつたん | 2007.07.18 at 06:10 PM

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/15725290

Listed below are links to weblogs that reference ソフトウェアとハードウェアの検証:

« FPGAプロトタイピング | Main | Virtual Machine Design and Implementation in C/C++ »