首页 > 其他分享 >日常学习:override、verdi

日常学习:override、verdi

时间:2023-02-06 22:44:40浏览次数:77  
标签:base1 phase base uvm env override new verdi 日常

override不可重载的部分

由于一些原因。变量引用本身依赖于一个路径,这个路径不可变更,因此,使用以下方法获取子类的变量:
https://bbs.eetop.cn/forum.php?mod=viewthread&tid=943020&pid=10887019&page=1&extra=#pid10887019

module aaa ();
    import uvm_pkg::*;
    class base_env extends uvm_env;
        `uvm_component_utils(base_env)
        int b=5;

        function new(string name="base_env", uvm_component parent);
            super.new(name, parent);
        endfunction: new

        function void build_phase(uvm_phase phase);
            super.build_phase(phase);
            $display("base_env");
        endfunction: build_phase

        function void connect_phase(uvm_phase phase); endfunction: connect_phase
    endclass: base_env

    class base1_env extends base_env;
        `uvm_component_utils(base1_env)
        int a=10;

        function new(string name="base1_env", uvm_component parent);
            super.new(name, parent);
        endfunction: new

        function void build_phase(uvm_phase phase);
            super.build_phase(phase);
            $display("base1_env");
            $display("a is %0d",a);
        endfunction: build_phase

        function void connect_phase(uvm_phase phase);
        endfunction: connect_phase
    endclass: base1_env
    class base_test extends uvm_test;
        `uvm_component_utils(base_test)
        base_env env;

        function new(string name="base_test", uvm_component parent);
            super.new(name, parent);
        endfunction: new

        function void build_phase(uvm_phase phase);
            super.build_phase(phase);
            env = base_env::type_id::create("env", this);
        endfunction: build_phase

    endclass: base_test

    class base1_test extends base_test;
        `uvm_component_utils(base1_test)
        base1_env env1;

        function new(string name="base1_test", uvm_component parent);
            super.new(name, parent);
        endfunction: new

        function void build_phase(uvm_phase phase);
            // set_inst_override_by_type("env", base_env::get_type(), base1_env::get_type());
            set_type_override_by_type(base_env::get_type(), base1_env::get_type());
            super.build_phase(phase);
            env1 = base1_env::type_id::create("env1", this);
            
        endfunction: build_phase

        function void connect_phase(uvm_phase phase);
            $display("value a is %0d", this.env1.a);
            $display("value a is %0d", this.env.b);
            $display("value a is %0d", this.env1.b);
        endfunction: connect_phase
    endclass: base1_test

    initial begin
        run_test("base1_test");
    end
endmodule

Verdi的交互式模式

交互式模式打开后,点击运行,可以看到sequece的执行顺序和值
https://blog.csdn.net/Holden_Liu/article/details/106905170

标签:base1,phase,base,uvm,env,override,new,verdi,日常
From: https://www.cnblogs.com/bai2022/p/17096928.html

相关文章

  • 日常学习(6)gcc编译选项
    gcc编译选项-nostartfiles连接的时候不使用标准系统的启动文件。-nodefaultlibs连接的使用不使用标准系统库。-nostdlib链接的时候不使用标准的系统启动文件和系统库......
  • mongo 日常操作
    连接到mongo1或2:1#[email protected]#mongo127.0.0.1:27017/-uroot-puex@2021查看全局所有账户:useadmindb.auth('admi......
  • 2023-01-29/30/31/01 日常/小姐姐很好看
    2023-01-29周日周日,兼职工作,涂鸦的石膏到了五箱,拉了3箱放现场,2箱放仓库。志鹏下午居然也来了,跟他两个朋友一起来滨湖玩。2023-01-30周一周一,大家基本都在上班啦。万......
  • Linux系统日常进程管理与监控
    1.进程是什么进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。在LINUX系统中进程ID用PID表示,范围从0-32768,其中PI......
  • content-type的理解和日常实践
    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它......
  • SQL Server 日常维护经典应用
    SQLServer日常维护常用的一些脚本整理。1.sqlserver开启clr权限:execsp_configure'clrenabled',1GORECONFIGUREGOALTERDATABASEHWMESTCSETTRUSTWORTHYON......
  • SAP UX 用户体验师这个职位的技能要求和日常工作内容介绍
    最近有朋友向我咨询关于SAPUX用户体验或者界面设计的工作岗位的一些情况。本文简单聊一聊这个话题。注意:本文不代表SAP官方观点,仅仅是我作为一个开发人员,根据自己平时......
  • 日常运维管理-IBM监控代理安装
        应用运营监控项目 SCAPMAgent安装文档                        目录1项目概述...51.1项目背景.........
  • docker 日常命令小笔记
    目录​​常见命令​​​​启动并启动日志​​​​进入容器​​​​dockerfiles​​​​apk命令​​​​编辑网卡centos​​​​重启网卡​​​​查看防火墙的状态​​​​......
  • cpp operator override = and ==
    //book.h#pragmaonce#ifndef__book_h__#define__book_h__#include<functional>#include<iostream>classbook{public:book(conststd::uint64_t&idx......