2017-08-17 5 views
0

私はuvm_regを読み書きするときに常に追加のuvm_reg書き込みアクセスを追加する方法を探しています。フローは疑似コードで示されます。additonal uvm_regを各レジスタマップアクセスに追加するにはどうすればよいですか?

擬似コード:

reg_map.MY_REGS.REG1.write(status, <my data >); 

これはいつものようになります。

reg_map.MY_CTRL_REG.CFG (status, <data>); 
reg_map.MY_REGS.REG1.write(status, <data>); 

アイデアは、代替frontdoorアクセス​​がrw_infoからアドレスを取得し、追加の書き込みを追加使用していたが、このため、これは失敗します再帰呼び出しです。

reg_mapの読み取り、書き込み、および更新コマンドをカスタマイズし、元のアクセス権にプライベートuvm_regを追加する方法はありますか?

答えて

2

UVMレジスタコールバッククラス-uvm_reg_cbsを使用できます。 https://www.vmmcentral.com/uvm_vmm_ik/files3/reg/uvm_reg_cbs-svh.html

1)は、このクラスを拡張し、あなたのpre_write仮想関数

2を移入)あなたがそれを使用したいreg_blockであなたのコールバッククラスを登録します。 (uvm_callbackを見てください::追加)

https://www.vmmcentral.com/uvm_vmm_ik/files3/base/uvm_callback-svh.html#uvm_callback

幸運を!