やまものブログ

メモ書きブログです (^_^;A

EDA Playground で UVM

EDA PlaygroundUVM(Universal Verification Methodology)を使えることを確認しました。

UVM は技術系ではニッチな領域で使われるライブラリなので、ご存じの方は少数派だと思います。

私は本職でこのあたりよく関わるのですが、最近、UVMが提供する仕組みでその出来の良さに感銘を受けたものがありました。で、その感銘を伝えられるようなサンプルを作れないものかと妄想中です

サンプルの構成とかまだ全然考えていませんが、、、
それが出来たとしたら、、、
お披露目できる場所があるのか?
という疑問が先行してしまい、冒頭で述べた EDA Playground を試しました。

EDA Playground会員資格は2種類あるようです。
 ・Google/Facebook アカウントで代用する資格
 ・正式登録

前者には商用シミュレータが使えないという制限があります
試した範囲では、UVM を使えるのは商用シミュレータだけのようでした
つまり、UVMを使うには後者の正式な登録が必要です。

正式に登録すると、こんな感じで簡単なUVMを動かせました
イメージ 1

見づらいですが、ソースコードとログの両方に
my test is running
という文字列があるので、ちゃんと動いているのが分かります。

サンプルコードは上記のスクショに映っているので全部です。短いので下記にも引用してしまいます。
module test;
  `include "uvm_macros.svh"
  import uvm_pkg::*;

   class my_test extends uvm_component;
     `uvm_component_utils(my_test)
     function new(string name="my_test", uvm_component parent=null);
       super.new(name, parent);
     endfunction
     virtual task run();
       super.run();
       `uvm_info(get_type_name(), "my test is running.", UVM_LOW)
     endtask
   endclass: my_test

  initial run_test("my_test");
endmodule


このトピック、次のアップデートがいつになるかは分かりません
業務時間外でホソボソとUVMコードと格闘しないといけないので