らんらん技術日記

日々の学習メモに

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だと思います。認証が通れば、適当にサンプルプロジェクトを試してみましょう。

f:id:yukirunrun:20200106204844p:plain

サンプルはどれでもいいですが、とりあえずUVM Hello Worldを選びます。
サンプルプロジェクトが開いたら、Testbench + DesignをSystemVerilog/Verilogに。UVM/OVMをUVM1.2に。Tools&SimulatorsにSynopsys VCSを指定。
そのあとRunボタンを押しましょう。

f:id:yukirunrun:20200106205303p:plain

すると、なんかログにいろいろでてきますね。
ログの最後の方、以下みたいなメッセージがでていれば成功です。

--- 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は、もはや諦めかけてたもんなー。これで試せるようになります!