uvm_misc,UVM杂货铺,定义了uvm用到但不好归类的杂散的task、function、class。
uvm_void
,基类,所有uvm类都直接或间接扩展自uvm_void。uvm_void中没有任何成员变量或方法,是个抽象类,其作用与C语言中的void相似。
uvm_scope_stack
,用局部字符串类型队列m_stack实现了堆栈,用来存放uvm路径(scope)。该类中主要实现了以下方法:
序号 | 方法 | 描述 |
---|---|---|
1 | depth | 获取堆栈m_stack的size |
2 | set_arg | 设置m_arg,无法设置为空字符串 |
3 | get_arg | 返回字符串m_arg |
4 | set_arg_element | set_arg只有一个string类型的输入参数arg,set_arg_element增加了一个int类型的输入参数ele,讲ele转换为字符串后,m_arg = arg[ele] |
5 | unset_arg | 清空字符串m_arg。只有当unset_arg的输入参数arg与m_arg相同时才清空 |
6 | set | 清空队列m_stack及m_arf,然后把指定字符串压入队尾 |
7 | get | 获取字符串队列m_stack内所有字符串并用点号“.”对各字符串进行拼接。若某字符串以“[”“(”“{”其开头,追加到前一字符串尾部且不以点号分隔。 |
8 | up | 从m_stack队尾取scope并清空m_arg |
9 | down | 指定scope压入队尾并清空m_arg |
10 | up_element | 跟up的区别:从队尾取出scope后再压入队尾 |
11 | down_element | 跟down的区别:传入的scope为int类型 |
uvm_status_container
,用来存储automation方法状态的类。
序号 | 方法 | 描述 |
---|---|---|
1 | do_field_check | 检测field数组中是否存在指定的field,不存在则报error |
2 | get_function_type | 返回指定参数代表的type,如参数有枚举变量UVM_COPY、UVM_COMPARE、UVM_PRINT、UVM_RECORD、UVM_PACK、UVM_UNPACK、UVM_FLAGS、UVM_SETINT、UVM_SETOBJ、UVM_SETSTR等,返回其对应的字符串 |
3 | get_full_scope_arg | 调用uvm_scope_stack的get函数返回m_stack内所有字符串 |
4 | m_do_cycle_check | cycle check,具体使用时再介绍吧 |
uvm_utils
,基类,此类中临时存放了一些比较重要的方法:
序号 | 方法 | 描述 |
---|---|---|
1 | find_all | 调用uvm_root::find_all,在uvm_component队列中查找所有start(用户指定的component)之后的已经例化的component |
2 | find | 调用了find_all,但只返回第一个查找到的component |
3 | create_type_by_name | 调用uvm_factory的create_object_by_name,根据name创建object |
4 | get_config | 获取指定uvm_component的所有config |
在本文件实现的变量还有:
序号 | 方法 | 描述 |
---|---|---|
1 | uvm_global_random_seed | 全局随机seed |
2 | uvm_seed_map | |
3 | uvm_instance_scope | 返回uvm lib所在的层级(import uvm_pkg::*的地方) |
4 | uvm_oneway_hash | 单向哈希算法,多用于用以生成随机seed |
5 | uvm_create_random_seed | 生成随机seed,此处就用了oneway hash,生成的seed会加入seed_table中 |
6 | uvm_object_value_str | 把指定uvm_object类型的object转换为字符串str,返回字符串@str |
7 | uvm_leaf_scope | 获取uvm的叶子节点 |
8 | uvm_bitstream_to_string | 比特流转字符串,可指定转换字符串的数字进制 |
9 | uvm_integral_to_string | 整型转字符串,可指定转换字符串的数字进制 |
10 | uvm_vector_to_string | 向量参数转字符串,调用uvm_bitstream_to_string实现 |
11 | uvm_get_array_index_int | 检测指定字符串是否为整型数组的索引 |
12 | uvm_get_array_index_string | 检测指定字符串是否为字符串数组的索引 |
13 | uvm_is_array | 判断是否为数组(检测最后一位字符是否为“]”) |
14 | uvm_has_wildcard | 判断是否有通配符 |
15 | process_container_c | 进程容器 |
16 | m_uvm_string_queue_join | 把指定字符串队列加入到字符串m_uvm_string_queue_join中 |