pack与unpack的用法
时间:10-02
整理:3721RD
点击:
小弟最近尝试应用uvm仿真一些简单模块,主要参考《UVM_1.1_Class_Reference_Final》;
在应用到pack和unpack时,发现解包出来的数据和根据数据打的包都不对。
而且《UVM_1.1_Class_Reference_Final》中关于unpack_field_int的使用,感觉他自己的说明和给出的例子有些出入。
比如,例子中unpack_field_int给出的是2个参数,如下图
而对于unpack_field_int这个函数的说明中,却只有一个参数,
virtual function logic[63:0] unpack_field_int(int size)
求高人不吝解答,能给出具体使用pack和unpack的方法与实例更是感激不尽。
在应用到pack和unpack时,发现解包出来的数据和根据数据打的包都不对。
而且《UVM_1.1_Class_Reference_Final》中关于unpack_field_int的使用,感觉他自己的说明和给出的例子有些出入。
比如,例子中unpack_field_int给出的是2个参数,如下图
而对于unpack_field_int这个函数的说明中,却只有一个参数,
virtual function logic[63:0] unpack_field_int(int size)
求高人不吝解答,能给出具体使用pack和unpack的方法与实例更是感激不尽。
看看C++,类的构造函数可以自动根据参数的数量和类型来决定用哪个构造函数。system verilog是一样的。你看的这俩地方的unpack函数,其实是两个函数,只是功能类似。
笔误
请参考mentor的uvm cookbook,不推荐使用packer进行pack/unpack,推荐书使用宏`uvm_pack_int/`uvm_unpack_int等。