ic验证笔记-20天挑战day12

本文详细介绍了集成电路验证中UVM框架的核心概念,包括uvm_object的基本方法如copy和clone,phase机制的9个阶段及其执行顺序,config配置机制以及消息管理和报告处理。此外,还讲解了uvm_top的角色以及uvm_objection在控制仿真退出中的作用。
摘要由CSDN通过智能技术生成

1.核心基类

uvm_object继承自uvm_void, 但是uvm_void是一个虚类,没有任何的变量和方法。

继承自uvm_void,有两个类,一个是uvm_object,还有一个是uvm_port_base

uvm_object核心方法:

copy

clone

compare
print

pack/unpack

class box extends uvm_object;

        int volume = 120;

        color_t color = WHITE;

        string name = "box";

        `uvm_object_utils_begin(box)

                `uvm_field_int(volume,UVM_ALL_ON)

                `uvm_field_enum(color_t, color, UVM_ALL_ON)

                `uvm_field_string(name, UVM_ALL_ON) //域自动化

       `uvm_object_utils_end

endclass

copy()和clone()的区别,copy默认对象已经创建,而clone会创建新的对象 b2.copy(b1)

do_copy()是copy()的回调函数,自动调用

compare() b2.compare(b1)相同返回1,不同返回0

uvm_default_comparer,uvm_default_printer,uvm_default_packer

pack和unpack

pack是为了将自动化声明的变量打包为比特流(bit stream)

unpack将串行数据解包变为原有的各自域

sim和fpga通信的接口有pci/usb/jtag/uart

2.phase机制

 例化的先后顺序,组件在例化之后的连接,顶层到底层的配置

9个phase机制

 bulid,connect,run比较常用,build是自顶向下的

只有run是task

class subcomp extends uvm_component

        `uvm_component_utils(subcomp)

        function new(string name, uvm_component parent);

                super.new(name,parent);

        endfunction

        function void build_phase(uvm_phase phase);

                `uvm_info("build_phase", "",UVM_LOW)

        endfunction

endclass

class topcomp extends subomp;

        subcomp c1, c2;

        function void build_phase(uvm_phase phase);

                `uvm_info("build_phase", "",UVM_LOW)

                c1 = subcomp::type_id::create("c1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值