uvm_pool.svh中实现了两个class,其一是uvm_pool,另一是在uvm_pool基础上派生出可通过字符串对动态关联数组进行索引的通用类uvm_object_string_pool。uvm中用到uvm_object_string_pool的地方有uvm_event_pool、uvm_barrier_pool等。
uvm_pool直接派生自uvm_object,实现了一个动态关联数组的基类,可根据需求对稀疏数组进行定位、传递及存储。uvm_pool实现的主要方法有:
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | get_global_pool | 返回global pool,为空的话先new再返回 |
| 2 | get | 返回指定key的item,若item不存在先new再返回 |
| 3 | get_global | 返回global pool中指定key的item,若item不存在先new再返回 |
| 4 | add | 添加item到指定key中,若key的item已存在,则覆盖 |
| 5 | num | 返回pool中非重复key的item总数 |
| 6 | delete | 从pool中删除指定key的item,不存在key会报warning |
| 7 | exist | 判断pool中是否存在指定key,存在返回1,不存在返回0 |
| 8 | first | 获取pool中第一个item的key,若pool为空返回0,非空返回1 |
| 9 | last | 获取pool中最后一个item的key,若pool为空返回0,非空返回1 |
| 10 | next | 获取pool中下一个item的key,若下一item不存在返回0,存在返回1 |
| 11 | prev | 获取pool中上一个item的key,若下一item不存在返回0,存在返回1 |
| 12 | get_type_name | 获取type_name |
| 13 | do_copy | 先cast再copy |
| 14 | do_print | 调用printer打印所有pool中所有key的item |
本文介绍了UVM中的两种池类:uvm_pool 和 uvm_object_string_pool。详细解释了它们的功能与用途,并列举了uvm_pool提供的核心方法,如获取、添加、删除项目等操作。
1058

被折叠的 条评论
为什么被折叠?



