我的序列项中有两个类句柄。其中一个类包含另一个类的句柄。伪代码如下:
class seq_item extends uvm_sequence_item;
rand class_a a;
rand class_b b;
endclass// seq_item
class class_a extends uvm_object;
rand bit field_1;
rand bit field_2;
endclass//class_a
class class_b extends uvm_object;
class_a a_handle;
rand bit field_3;
rand bit field_4;
endclass // class_b
所以,当我随机化时;我希望a_handle的field_1和field_2值与seq_item中的'a'相同。我尝试在seq_item的post_randomize内克隆($ cast(b.a_handle,a.clone()),但是它不起作用。 如何确保b.a_handle.field_1,b.a_handle.field_2的值与a.field_1,a.field_2的值相同?
答案 0 :(得分:0)
您可以在seq_item内为您做一个约束
constraint fields {
a.field_1 == b.a_handle.field_1;
a.field_2 == b.a_handle.field_2;
}
您还需要在a_handle
中将rand
声明为class_b