Vengineerの妄想(準備期間)

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

Verilog HDL Transaction Recording

Verification Engineerの戯言

CadenceがIEEE Verilog BTFVerilog HDLに対するTransaction Recording機能をPLIを使って提案したものがDraft Standard for Verilog Transaction Recording Extensionsにあります。
Copyrightが2003年になっているので、
まだ、SystemVerilogが3.0から3.1ぐらいでまだ標準化されていないときですね!

このTransaction Recording機能では、PLIを使って、次のようなシステムタスクと関数を定義しています。
    $tr_open: Open a transaction recording file
    $tr_close: Close a recording file 
    $tr_set_recording: Enable/disable transaction recording at a specified scope
    $tr_stream: Create a transaction stream
    $tr_generator: Create a transaction generator in a stream 
    $tr_begin_attribute: Define an attribute of a generator 
                         that is set at the beginning of a transaction 
    $tr_end_attribute: Define an attribute of a generator 
                         that is set at the end of a transaction 
    $tr_begin: Begin a transaction 
    $tr_end: End a transaction 
    $tr_record_attribute: Record an attribute on a transaction
    $tr_get_transaction_handle: Get a transaction handle from a stream
    $tr_link: Link two transactions

これらを見ると、SystemC Verification Library(SCV)のTransaction Recording同等の機能ではないでしょうか?
でも、SCVのおおもとはTestBuilderですよね!
TestBuilderは、PLIを使って、C++でテストベンチを構築しましたよね!
ということは、TestBuilderで使っていたTransation Recording部分をうまくPLIで使えるようにすればいいのです。

再利用ができているのであれば、グー、グー、グー

検証、Verification、Verilog HDL