首页 > 其他分享 >2.2.4 加入virtual interface

2.2.4 加入virtual interface

时间:2024-05-17 11:31:19浏览次数:15  
标签:set get virtual phase build interface 2.2 tb

为了保证验证平台的可移植性,在根本上来说应该杜绝在验证平台中使用绝对路径

1.使用宏(这里不提)

2.使用interface

定义完interface之后,在top_tb中实例化DUT时就可以直接使用:

上面是在top_tb中使用interface,那如何在driver中使用interface呢?

在类中不能直接使用interface,只有在module中可以这样使用。

在类中应该使用virtual interface


可以看到driver中的路径都用vif代替了,大大提高了代码的可移植性。

还剩下一个问题:

如何把top_tb中的input_if 和 my_driver中的vif对应起来?

config_tb机制:

在这个机制中,分为set和get操作(寄信和写信)
在top_tb中执行set操作,在driver中执行get操作。

其中的bulid_phase与main_phase一样,也是属于UVM中的内建的一个phase。当UVM启动后,会自动启动build_phase。执行顺序是先new函数,再bulid_phase,再main_phase。在build_phase中主要通过config_db的set和get操作来传递一些数据,以及实例化成员变量等。

14:这里显示调用了super.build_phase是因为其在父类的build_phase中执行了一些必要的操作。

build_phase是一个函数phase,而main_phase是一个任务phase,build_phase是不消耗仿真时间的,总在仿真时间为0时执行。

17:uvm_fatal:这个也是用来打印的,但是与uvm_info不同的是在执行完这个语句后会自动finish,只有在验证平台出现重大问题无法继续时用这个。

config_tb的set和get都有四个参数,两个函数的第三个参数要求必须完全一致

标签:set,get,virtual,phase,build,interface,2.2,tb
From: https://www.cnblogs.com/tomako123/p/18196361

相关文章

  • RAG Project with Ollama and LangChain via Gradio Interface
    RAGProjectwithOllamaandLangChainviaGradioInterfacehttps://github.com/fanqingsong/rag-ollama-langchainThisrepositoryhoststheimplementationofaRetrieval-AugmentedGeneration(RAG)projectleveragingthecapabilitiesofOllamatorunopen-so......
  • 2.2.3 加入objection机制
    先分析前面的:上一节中虽然输出了"main_phaseiscalled",但是"dataisdrived"并没有输出。但是既然进入了main_phase,应该会把这一整个任务执行完成才对,但是这里好像在执行的过程中被外力kill掉了?UVM中通过objection来控制验证平台的关闭在上一节中并没有调用finish语句,但是在......
  • IDEA2021.2.2使用Spring Initializr创建springboot项目
    使用SpringInitializr创建Springboot项目第一步:输入项目名称、项目所在路径等信息 在选择Java一项时,只有17、21、22选项。其中ProjectSDK一项,代表本地安装的JDK版本。Java一项,代表创建Spring工程时默认的JAVA版本。当选择最低值17时,点击下一步会弹出错误页面,提示“iThere......
  • 2.2.2加入factory机制
    driver代码:这里的factory机制被集成在了一个宏中:uvm_comphonent_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏,就相当于把这个类注册到了这个表中。在给driver加入这个机制后......
  • Cisco Secure Web Appliance Virtual 15.2.0 GD - 适用于网络安全的思科高级威胁防护
    CiscoSecureWebApplianceVirtual15.2.0GD-适用于网络安全的思科高级威胁防护AsyncOSforWSA15GeneralDeployment(GD)请访问原文链接:CiscoSecureWebApplianceVirtual15.2.0GD-适用于网络安全的思科高级威胁防护,查看最新版。原创作品,转载请保留出处。作者主......
  • Cisco Secure Email Virtual Gateway 15.5.1 GD - 电子邮件安全
    CiscoSecureEmailVirtualGateway15.5.1GD-电子邮件安全AsyncOSforESA15GeneralDeployment(GD)请访问原文链接:CiscoSecureEmailVirtualGateway15.5.1GD-电子邮件安全,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSecureEmail提供高级......
  • Cisco Secure Email and Web Manager Virtual 15.5.1 GD - 集中管理思科安全设备
    CiscoSecureEmailandWebManagerVirtual15.5.1GD-集中管理思科安全设备AsyncOSforSMA15GeneralDeployment(GD)请访问原文链接:CiscoSecureEmailandWebManagerVirtual15.5.1GD-集中管理思科安全设备,查看最新版。原创作品,转载请保留出处。作者主页:sysin.......
  • Python - pyenv, virtualenv, pipenv
    Pyenv可托管多个不同的Python版本。Installpyenv:gitclonehttps://github.com/pyenv/pyenv.git~/.pyenvAdd~/.pyenv/bintoPATH:if[[$(echo$PATH|grep'pyenv'|wc-l)-eq0]];thenPATH=$PATH:~/.pyenv/binfi 查看当前系统上已经安装和正在使用的......
  • virtualbox在命令行下用vboxmanage添加新磁盘
    创建debian12虚拟机后,想添加一块新磁盘搞实验。于是,就搜了一下,看看如何添加,找到下面命令:VBoxManagecreatehd--filename"C:\Users\<username>\VirtualBoxVMs\<vm_name>\NewDisk.vdi"--size20480但是看vboxmanage的帮助好像没有这个命令。VBoxManagehelp|findstrcrea......
  • TypeScript 中使用type与interface定义类型分别有什么区别?
    在TypeScript中,使用type和interface都可以用来定义自定义类型,但它们之间存在一些区别:语法:type使用 type 关键字定义类型别名,后跟自定义类型的名称interface 使用 interface 关键字定义接口,后跟自定义类型的名称用途:type 主要用于创建类型别名,可以给现有的类......