4compare_object ⽐较两个uvm_object类型的object 。若policy为UVM_REFERENCE,直接⽐较两个handle,否则调⽤lhs.compare(rhs, this)进⾏⽐较。lhs或rhs任意⼀个为null都会⽐较失败 5compare_string⽐较两个string类型的object,直接⽐较 6print_msg ⽐较失败时会调⽤该函数打印两个⽐较的对象...
T local_data__; /* Used for copy and compare */ \ ... 没错,就是在我们进行field注册时UVM帮我们完成的这个函数!这个时候我们带入实例看一下就更清楚了,巧了源码里就提供了我们常见的用法: //| class my_trans extends uvm_sequence_item; //| //| cmd_t cmd; //| int addr; //| int dat...
compare函数用于比较两个实例是否一样,其原型为: 代码清单3-32来源:UVM源代码externfunctionbitcompare (uvm_object rhs, uvm_comparer comparer=null); 如果要比较A与B是否一样,可以使用A.compare(B),也可以使用B.compare(A)。当两者一致时,返回1;否则为0。 pack_bytes函数用于将所有的字段打包成byte流,其原型...
copy的函数实现里除了do_copy之外第1035行的__m_uvm_field_automation(rhs, UVM_COPY, "")完成了我们在field_automation里的相关配置的实现,如果我们没有override do_copy这个函数,那么所有的copy行为都靠这个__m_uvm_field_automation函数来完成,下面我们看看这个函数的定义 所以只有我们用了uvm_field_automation注...
注2:uvm_field_*宏会调用uvm_comparer的compare_*函数,而uvm_comparer的compare_*函数在比较失败时,会调用comparer.print_msg函数,print_msg函数内会对comparer.result进行累加(comparer.result的初始值为0); comparer.result会反映到uvm_object/uvm_component的compare函数返回值上,如果comparer.result!=0,那么uvm_obj...
*查看源码可知,get_config实际上调用的是uvm_component中的get_config_object函数;而该函数最终调用的是uvm_config_db的get方法。 –uvm_object uvm_object类是所有UVM数据和层次化类的基类。它主要的角色是为像create/copy/compare/print/record这样的通用操作来定义一系列method。从uvm_object派生出来的类必须执行像...
44、_port获取transaction ,然后做 compare.这个时候需要用:'uvm_analysis_imp_decl(_ 标记)这个 macro , 然后 “write” 函数变成 函数,analysis_port所在component不用变,还是调 write()函数即可。使用macro声明class nu_scoreboarc mxtunclm u.rti_scoretjoardmy_tr=ins3C Lion expec L_queur 5uvnanalsis...
2. uvm_sequence_base中的虚函数start()调用了pre/post_start(), pre/post_body(),以及body()函数,这些函数都是虚函数,且没有定义任何操作。case0_sequence重写body()函数。 3. 当执行到main_phase()时,会执行uvm_sequencer_base中的start_phase_sequence()函数,uvm_config_db#() get::()获得case0_sequ...
两者基本函数都一样,不同之处在于BIT[10],BIT[10]代表DEEP,object field will be deep copied,比较少用(后续更新) A=ABSTRACT Y=PHYSICAL F=REFERENCE S=SHALLOW D=DEEP,object field will be deep copied; K=PACK R=RECORD P=PRINT M=COMPARE
这个类包含了compare, printer等,一般默认使用uvm_object_globals.svh中的全局变量,uvm_default_comparer, uvm_default_table_printer。也可以自己配置compare, printer中的参数,并在调用compare(), print()时传入即可或者重写do_compare, do_print函数,实现自定义功能。