uvm中关联数组的注册

在编写uvm验证环境时,xaction中时常会使用到关联数组.为了方便copy、compare,会使用uvm_field_aa_*相关的宏定义来完成注册.
1.宏定义简介
联合数组有两大识别标志,一是索引的类型,二是存储数据的类型.在宏定义中第一个出现的类型是存储数据的类型,第二个是索引类型.例如uvm_field_aa_string_int,它声明了存储数据的类型是string,索引类型是int.
2.宏定义
uvm_filed_aa_int_string uvm_field_aa_object_string
uvm_field_aa_int_int uvm_field_aa_int_int_unsigned uvm_field_aa_int_integer等等
3.使用说明
在注册关联数组时,需要注意类型要匹配.
例如bit [2:0] m_data_as[bit [2:0]],用uvm_field_aa_int_int注册便会报如下的错误.
在这里插入图片描述
用uvm_field_aa_int_int_unsigned注册就ok.

例如int [2:0] m_data_as[bit [2:0]],用uvm_field_aa_int_int注册会上报同样的错误.
用uvm_field_aa_int_int_unsigned注册就ok.

分析出现的错误,查阅资料知道在system verilog中bit类型是无符号整数,而int是有符号整数,类型不匹配的原因应该在这里;个人认为第一个类型用来存储数据所以其类型的匹配要求不高,而第二个是索引匹配要求很高,类型不对会报错.


版权声明:本文为weixin_39662684原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。