EDA PlaygroundでUVMを試す
UVMについて
久しぶりの更新になります!前まではBLE Meshを書いていたのですが・・・しばらく中止です。最近はUVMの調査にはまっていますw
UVMとはUniversal Verification Methodologyの略です。私自身、UVMを使って業務をしているわけではないので、以降は私の理解になりますが・・・
UVMは、ASICやFPGA開発におけるHDLの検証用ライブラリです。歴史としては、半導体の微細化が進むにつれて、HDLの検証技術の大切さが増してきたと。で、検証ツールのベンダ(Synopsys、Mentor、Cadenceとか)が各々好きな検証環境を構築していくのですが・・・ユーザとしては、統一感がなくてたまったもんじゃない。紆余曲折あって、いろいろあった検証環境は統合されていき、ようやく生まれたのがUVMです。そんな訳で、UVMは検証ツールベンダの知識の結晶なわけですから、有用なことは間違いないでしょう。ついでに、いらない機能もたくさんあります(政治的な理由で)。私の理解ではだいたいこんな感じ。間違っていたらすいません。
EDA Playgroundとの出会い
さてUVMには一つ大きな問題があります。
UVMの実態はSystem Verilogで書かれたソースコード群であり、オープンソースなので無料で使えます。わーすごい!
しかし、UVMをまともにコンパイルするためのツールは有償になります。しかもツールの値段がべらぼうに高い。1千万というオーダになるんじゃないでしょうか。酷い商売ですね・・・。
私みたいに個人の学習者には、UVMは試すことすらハードルがめちゃくちゃ高いのです。
そんな時に見つけたのが、EDA PlaygroundというWebサービスになります。説明は以下のブログが一番親切かな。
uzusayuu.hatenadiary.jp
このEDA Playgroundの何がありがたいかというと、以下の有償シミュレータが無料で使えちゃうのです。
・Synopsys社 VCS
・Cadence社 Incisive
・Aldec社 Rivera Pro
このうちVCSとIncisiveはプロファイルの認証が必要です。
Rivera Proは特に手続きは不要らしいです。ただしライセンスエラーが何かで、実質的には使えません。海外のフォーラムを覗いてもそんな感じだし・・・どういうことよw
てわけでUVMを試すには、プロファイルの認証を行います。
認証にあたっては、ライセンス条項への同意が必要です。まぁ、たいしたことは書かれていません。EDA Playground上のシミュレータを商用に使うな、シミュレータの性能テストをするな、て感じですかね。UVMの学習をする分には、だまってクリックでOKだと思います。認証が通れば、適当にサンプルプロジェクトを試してみましょう。
サンプルはどれでもいいですが、とりあえずUVM Hello Worldを選びます。
サンプルプロジェクトが開いたら、Testbench + DesignをSystemVerilog/Verilogに。UVM/OVMをUVM1.2に。Tools&SimulatorsにSynopsys VCSを指定。
そのあとRunボタンを押しましょう。
すると、なんかログにいろいろでてきますね。
ログの最後の方、以下みたいなメッセージがでていれば成功です。
--- UVM Report Summary --- ** Report counts by severity UVM_INFO : 11 UVM_WARNING : 1 UVM_ERROR : 0 UVM_FATAL : 0 ** Report counts by id [] 1 [DUT] 8 [RNTST] 1 [TEST_DONE] 1 [UVM/RELNOTES] 1
いや、ほんとすごい! RandomizeやらCoverageは、もはや諦めかけてたもんなー。これで試せるようになります!