Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Bluespec SystemVerilog : レジスタへのリード/ライト

Verification Engineerの戯言

Bluespec SystemVerilogが提供しているRegインターフェースには、2つのmethod(_writeと_read)があります。

    interface Reg#(type a);
      method Action _write (a x);
      method a _read;
    endinterface: Reg

_writeはActionメソッドで、_readvalueメソッド。

レジスタへのリード/ライトは上記のメソッドを直接呼ぶのではなく、

    rule ...
      r <= r + 1; 
    endrule

です。

それぞれメソッドを使うと、

    rule
      r._write (r._read() + 1);
    endrule

どこかで見覚えアリ。そう! SystemCのsc_signalに対するリード/ライトと同じね!

リファレンス・ガイド、8.4 Register reads and writes & 12.5 Registerより

検証、Verification、Bluespec SystemVerilog