FPGAプロトタイピング
ESL D&V 10.6.3 The Role of Prototypingより
筆者はFPGAによる検証を constitute rigorous verificationじゃないと主張している。その根拠として以下を上げている。
・Visibitiry 信号みれない
・Repetability 問題の再現性が無い
・Coverage カバレッジ悪い
・Nagative Verification シミュレータと違って環境を変えるのが難しい
・Turnarount Time コンパイル時間かかるよね
4番目を除いて理由としては筋が通っている。しかし、実データでの検証、実際に接続される物が検証環境と一緒になって動くというメリットは、これらのデメリットを十分に打ち消す。プロセッサを開発したら、ICEが動くかどうかでシミュレータのみで十分なのか?実際のICEが繋がって、ブレークかけられる方が良いに決まっている。今までこの本の中でさんざん言っているプログラマからの視点(PV)がここだけ全く抜けている。プログラマから見れば、ICEが動けばそれは実物の検証環境と同じだ。物が繋がっていればHDDだってアクセスできるし、スピーカから流れてくる音で音質を判断できる。プロトでしかできないことがいっぱいあるんだ。シミュレーションモデルのHDDがDMAを行うより、最終製品で使うHDDが実際に回転してDMA転送する方が検証の質は高い。どこそこの信号がHとかLになるなんてプログラマには関係ない、今目の前にあるHDDから指定の時間内にデータを持ってこれるかが重要なんだ。これこそ、この本で言っている一番大事なspecification requirementだ。
4番目の「Nagative Verification」に関しては全くの勘違い。HDDを変えてみるとか、入力信号にノイズを乗せてみるとかは、シミュレータよりも簡単に状況を変えられる。シミュレーションで使うノイズが、現実のノイズの正確なモデルになっているなんてありえない。実際にノイズを乗せることでノイズが乗った時の動きがわかる。これはモデルじゃない、本物のノイズだ。FPGAプロトタイピングは、rigorousじゃないけど、十分practicalなのです。
Intelのプロトボードを見るまでもなく、マルチコアになった時点でシミューレータでの検証はすぐに破綻すると思うよ。
The comments to this entry are closed.
Comments
FPGAによる検証は、必ずしも必要ではありませんが、
実S/Wで動作確認をしたいのであれば、EmulatorよりFPGAのようがいいと思います。
Virtex4/5を使えば、かなりの回路は入れこれますし、
ただ、シミュレータに比べでデバッグするのが結構手間がかかります。
この部分をノウハウでカバーできれば、シミュレータよりFPGAの方が遥かにメリットがありますね!
over Verification 3.0は、もしかしたら、FPGAがキーになるかもしれません。
シミュレータもマルチコア(マルチスレッド)対応で高速になってくれないかなー。
今は、いくらコアがあっても、1つのコアでしかシミュレータが動いてくれません。
(新興ベンダーでは、マルチスレッド対応シミュレータが出ていますが、
いつも使っているシミュレータはまだです。。。。)
P.S
ゆうゆ、年齢をそれなりに重ねていますが、かわいいですね!
Posted by: 原山みや | 2007.07.11 08:47 AM
原山みやさん、こんにちは
FPGAの場合、弱点は既に分かっているのでどうそれを克服する、もしくは
どうやって受け入れるかですね。
> シミュレータもマルチコア(マルチスレッド)対応で高速になってくれないかなー。
> 今は、いくらコアがあっても、1つのコアでしかシミュレータが動いてくれません。
> (新興ベンダーでは、マルチスレッド対応シミュレータが出ていますが、
> いつも使っているシミュレータはまだです。。。。)
配置配線等と違って、並列に処理できる部分が少ないんだと思います。
SW/HWのCo-simulationと同じ問題ですが、分散処理したときの同期をどうやって
取るのかだと思います。SystemCでも各プロセス、スレッドは並列化
できても、キモのスケジューラは並列化しにくいのと同じだと思います。
Posted by: なつたん | 2007.07.11 06:06 PM