008. スコアボードを使おう

機能検証には、ぜひスコアボードを使いましょう。理由はいろいろありますが、メリットの一つに

  • リアルタイム比較

が挙げられます。例えば100回ライトして、100回リードして、100回比較するならば、100回リードした「後」に比較することになります。まさか、100回も if 文で比較記述書きませんよね。まあ、リードと比較処 理を task 化すれば回避できますが。

では、入力信号を生成するモデルのスティミュラスはテキストファイルで読ませて、先の先にある回路の出力を受け取って応答するモデルがあって、このモデルは受け取ったデータをファイルに落とす場合はどう でしょう。この場合、ふつうはSimulation「完了後」に比較しますね。すると、どのSimulation時間で発生した比較なのか、わかる仕組みを「考えて」作っておかないと、波形を追っかけながら「んーどこの転送で 不一致かなぁ」と探すお仕事が発生します。

だけど、スコアボードってどうやって作るんだよ?とか、作るのに時間かけられないとか、まぁいろいろ思う人もいるでしょう。このサイトでは、汎用比較器という名前で、汎用的に使えるスコアボードを公開し ています。ただしこれはUVM用に組んでいます。「いや、UVMとか使わないしわからないし勉強している余裕ないし」という人、多いと思います。

では、UVMのテストベンチでも使えるし、OVMでもいいし、VMMでもいいし、とりあえずSystemVerilogをサポートするシミュレータなら使える「シンプルスコアボード」があったらどうでしょうか。

スコアボードは、考え方は難しくありません。近日中に、シンプルなスコアボードの作り方を掲載したいと思います。そんなもの書いてもぼくにはお金が入りませんが、いろんなパタンをコーディングするうち に、どんどん自分の血肉になっていくんですね。HDLに振り回されないで、HDLをうまく使っていく。まさしく「SystemVerilogで遊ぼう」なわけです。

多くの人にスコアボードを知ってほしい、使ってほしい。そして、少しでも機能検証の品質、効率の向上を願って。