私は16個のレジスタのレジスタスペースを持っています。これらは、シリアル バス (シングルおよびバースト) を介してアクセスできます。これらのレジスター用に UVM reg モデルを定義しました。ただし、バス上のバースト トランザクションをサポートする reg モデル メソッドはありません。
回避策として
- 同じスペースのメモリ モデルを宣言できます。バースト アクセスが必要なときはいつでもメモリ モデルを使用しますが、同じものに対して 2 つの別々のクラスを宣言するのは冗長なようで、このアプローチではレジスタ値が正しくミラーリングされません。
- バイト数の反復をループし、レジスタに 1 つずつアクセスする関数を作成しますが、このメソッドはバス上でバースト トランザクションを作成しません。
したがって、レジスタ モデルで burst_read および burst_write メソッドを使用する方法があるかどうかを知りたいです。burst_read と burst_write がミラーリングをサポートしていればいいのですが (現在の実装ではサポートされていません)、そうでない場合は .predict と .set を使用できるので、大きな問題ではありません。
または、レジスタ モデルのメソッドを簡単に実装して、バースト操作をサポートできますか。