尝试在寄存器字段中用相似名称设置所有人

时间:2019-03-11 20:58:14

标签: system-verilog uvm

我正在尝试在SystemVerilog中设置uvm注册字段。这是我的注册字段:

TXA
TXA1
RSVD
T4AMP

我有兴趣将所有这些设置为以TXA开头的寄存器字段。我已使用以下代码使用正则表达式

uvm_reg_field my_fields;
register1.get_fields(all_fields);
my_fields = all_fields.find(register1) 
with(!uvm_re_match("TXA*",register1.get_name()));    
//I have a loop to loop through the interested fields 
my_fields[i].set('1); 

但是,我看到了错误:

  

指定值(0xffffffffffffffff)大于字段“ TXA”的大小   (1位)

有人可以帮我吗。 在此先感谢:)

1 个答案:

答案 0 :(得分:0)

仅从错误消息来看,您似乎试图将值0xffffffffffffffff分配给TXA,该值只能容纳一位。因此,您为TXA分配了错误的值,或者TXA具有错误的类型。

顺便说一下,0xffffffffffffffff看起来像-1的无符号表示。您是否要在某处将-1分配给TXA?

如果没有,请告知错误发生在哪一行,并向我们展示代码的更多部分。