UVM知识点3

news2025/1/17 21:33:44

Vim 中如何去掉 ^M 字符?

基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n如果win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m) 如果是单个文档的话,可以用vi打开,执行 :%s/^M//g 来去掉^M,但如里批量去除的话就不能用vi了,
方法1: 用dos2unix工具,把win文档转换成linux下文档命令:find ./ -type f -print0 | xargs -0 dos2unix如果想把linux下的文档转换成win下的:find ./ -type f -print0 | xargs -0 unix2dos
方法2: 用sed命令把win文档转换成linux下文档:find ./ -type f print0 | xargs -0 sed -i 's/^M$//'把linux下的文档转换成win下的fild ./ -type f print0 | xargs -0 sed -i 's/$/^M/'

链接:https://www.zhihu.com/question/22130727/answer/33814375
在这里插入图片描述

void‘($cast(env, p_sequencer.m_parent));

void'($cast(env, p_sequencer.m_parent)); 在UVM和SystemVerilog的上下文中看起来是一个尝试强制类型转换的操作。

这里简要解释一下你给出的代码:

  1. $cast: 这是一个SystemVerilog的系统函数,用于尝试将一个类的对象强制转换为另一个类的类型。

  2. env: 这应该是你想要转换到的目标类型的一个变量或者对象。

  3. p_sequencer.m_parent: 这应该是你想要从中进行类型转换的源对象。在UVM中,p_sequencer 可能是一个与sequence相关的sequencer,而m_parent则是它的父对象。

  4. void'(...): 这个是一个特殊的语法,通常用于在SystemVerilog中消除未使用的返回值导致的警告。$cast函数返回一个boolean值,表示转换是否成功。如果你不关心这个返回值,并且想要避免任何关于未使用的返回值的警告,你可以使用void'来丢弃这个返回值。

所以,你的代码尝试将p_sequencer.m_parent转换为env的类型,并且丢弃了转换是否成功的结果。

为了确保代码的正确性,你应确保以下几点:

  • env已经被正确地声明并且是你期望的目标类型。
  • p_sequencer.m_parent确实是一个可以被转换为env类型的对象。
  • 如果你关心转换是否成功,应该处理$cast的返回值,而不是使用void'来丢弃它。

Virtual Sequence & Virtual Sequencer

https://zhuanlan.zhihu.com/p/369681031#%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E9%9C%80%E8%A6%81%E4%B8%80%E4%B8%AAvirtual%20Sequencer%EF%BC%9F

?

1

extern virtual function void configure_complex_agent(complex_agent_config cfg)

function void tesr_base::configure_complex_agent(complex_agent_config cfg);
agt_cfg.active = UVM_ACTIVE;

set 与 get 函数的参数

1.写信
在这里插入图片描述

1)第一个和第二个参数联合起来组成目标路径,与此路径符合的目标才能收信。

2)第一个参数必须为uvm_component 的实例的指针。

3)第二个参数是相对于此实例的路径。

2.收信

在这里插入图片描述

1)第一个参数必须为uvm_component 的实例的指针。

2)第二个参数是相对于此实例的路径。如果第一个设置为 this,第二个可以是空的字符串。
3)第三个参数必须和set中的严格一样。

3.在top_tb 中,set virtual interface 的第一个参数是null。UVM会自动把它替换成uvm_root::get(),即uvm_top。(uvm_root是全局的,get是静态的)

4.既然是第一个和第二个参数联合起来的,set 也可以是下面:
在这里插入图片描述

5 get也可以这样,比如driver的build_phase:
在这里插入图片描述

https://blog.csdn.net/tingtang13/article/details/46458869

uvm_info

uvm_info 是 UVM(Universal Verification Methodology)中的一个宏,用于在测试过程中输出信息级别的日志。这个宏的语法是:

systemverilog
`uvm_info(tag, message, verbosity)
其中:

tag:是一个字符串,用于标识日志的来源或分类。通常会传递当前执行代码的上下文信息,如方法名、模块名等。
message:是一个字符串,表示要输出的消息内容,用于描述操作或状态。
verbosity:是一个表示日志详细程度的枚举值,用于控制日志的显示级别。UVM 提供了不同的 verbosity 级别,如 UVM_NONE、UVM_LOW、UVM_MEDIUM、UVM_HIGH 等。

`uvm_info("TEST123", $sformatf("get configure random_total %d", cfg.total_random), UVM_LOW)

uvm_info:这是一个 UVM 宏,用于输出信息级别的日志。
“TEST123”:这是日志的标签(tag),表示日志的来源或分类。
$sformatf(“get configure random_total %d”, cfg.total_random):这是通过 $sformatf 函数将字符串和变量格式化为一个字符串。在这里,它会格式化成类似于 “get configure random_total 10” 的消息,其中 10 是 cfg.total_random 的值。
UVM_LOW:这是日志的详细程度(verbosity)。在这个示例中,使用了 UVM_LOW,表示这是一个低级别的信息日志。
总之,这段代码的作用是在 UVM 中输出一个信息级别的日志,标签为 “TEST123”,消息为 “get configure random_total” 以及 cfg.total_random 的值,日志的详细程度设置为低级别。这样的日志输出可以帮助测试工程师在调试和分析测试时了解特定配置信息的状态。

uvm_report_objection report = this;

在 UVM(Universal Verification Methodology)中,您提供的代码片段中涉及了一些 UVM 相关的概念和语法。我将逐个解释每个部分的含义:

  1. bit manage_objection = 1;

    • 这行代码声明了一个名为 manage_objection 的位变量,并将其初始化为 1。
    • 这个变量可能会用来控制是否启用 UVM 的报告异议管理(objection management)功能。
  2. uvm_report_objection report = this;

    • 这行代码声明了一个名为 report 的 UVM 报告异议(objection)对象,并将其初始化为 this
    • 在 UVM 中,报告异议是一种机制,用于收集和管理报告的信息,可以用于控制消息的显示和统计。
  3. protected bit isrunning;

    • 这行代码声明了一个名为 isrunning 的受保护(protected)位变量。
    • 受保护成员只能在同一个类或类的派生类中访问。
    • 这个变量可能用于跟踪某个过程或功能是否正在运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/944108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比

时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比效果一览基本描述程序设计参考资料 效果一览 基本描述 MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比。 1.Matlab实现PSO-BiLSTM和BiLSTM…

无涯教程-Android - Activity

Activity代表具有用户界面的单个屏幕,就像Java的窗口或框架一样。Android Activity 是ContextThemeWrapper类的子类。 如果您使用过C,C或Java编程语言,那么您一定已经看到您的程序从 main()函数开始。与之非常相似,Android系统以 …

五、多表查询-4.3子查询-列子查询

一、概述 子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。 常用的操作符:in、not in、any、some、all 二、演示 【例1】查询“销售部”和“市场部”的所有员工信息 1、查询销售部和市场部的部门ID 返回的结果是…

highcharts 修改 箱线图每个箱子的颜色

在js中添加以下代码 plotOptions: {series: {colorByPoint: true},boxplot: {fillColor:null,colorBorPoint:true,colors: [red,#000000]),}}, 综合网上多方材料,得出

Linux之超强16进制命令:xxd(三十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

基于ssm+vue汽车售票网站源码和论文

基于ssmvue汽车售票网站源码和论文088 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让…

英文科技论文写作与发表-论文结构(第1章)

第1章 论文结构 不同科技领域论文的组织结构不尽相同。 各专业领域专家公认的一个要点是:论文的前一页半到两页最为重要,决定了读者是否愿意继续读下去,也是审稿人得出初步结论的依据。 着手之前,先组织论文结构,把…

基于web的仓库管理系统jsp商品进销存java源代码Mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于web的仓库管理系统 系统有2权限:管理…

软件测试面试题有什么经常被问到的?

软件测试面试,常问的问题如下: 1、自我介绍 2、公司的测试流程 3、测试用例设计方法的区别及应用场景 4、测试计划怎么写,包含哪些内容?和测试方案的区别是什么? 5、bug的处理机制和bug的定级 6、敏捷测试下的工作流程…

【漏洞复现】瑞友应用虚拟化系统 SQL注入

漏洞描述 瑞友天翼应用虚拟化系统(GWT System)是国内具有自主知识产权的应用虚拟化平台,是基于服务器计算(Server-based Computing)的应用虚拟化平台。瑞友天翼应用虚拟化系统存在SQL注入漏洞。 免责声明 技术文章…

谁能笑傲江湖:聊聊8月份中国数据库排行榜与国产数据库选型

引言 天下风云出我辈,一入江湖岁月催。 有人说,有数据库的地方,就有“江湖”。 曾经多少前辈满腔热血投入国产数据库事业中,悠悠数十载,又如白驹过隙,最终不知几家欢喜几家愁。 截止2023年8月份&#xf…

Spring 事务是什么 ?事务的传播机制?

目录 1. 什么是事务? 1. Spring 事务三大基础设施 1.1 PlatformTransactionManager 平台事务管理器 1.2 TransactionDefinition 事务属性定义 1.3 TransactionStatus 事务状态 3. Transaction 注解 4. Spring 事务角色 5. Transaction 注解属性 5.1 事务的回…

WebGPU加载Wavefront .OBJ模型文件

在开发布料模拟之前,我想使用 WebGPU 开发强大的代码基础。 这就是为什么我想从 Wavefront .OBJ 文件加载器开始渲染 3D 模型。 这样,我们可以快速渲染 3D 模型,并构建一个简单而强大的渲染引擎来完成此任务。 一旦我们有了扎实的基础&#x…

山西电力市场日前价格预测【2023-08-30】

日前价格预测 预测明日(2023-08-30)山西电力市场全天平均日前电价为317.95元/MWh。其中,最高日前电价为373.07元/MWh,预计出现在19: 45。最低日前电价为248.17元/MWh,预计出现在13: 30。 价差方向预测 1: 实…

手机云控设计思路

本系统为任务分发系统,上游发布任务或者接受其他平台系统分发的任务,对任务进行规则引擎处理后分类,由核心分发系统部分进行对存活的空闲终端进行分发任务,终端做完任务后进行反馈给任务系统. 核心要处理的点是终端存活与空闲的统计、任务平均分布下发给终端的算法,保证分布的…

RK3562 VS A40i 性能对比

RK3562作为瑞芯微新推出的低功耗、高性价比的通用SOC,在智能商显和工业控制领域又为深圳触觉智能增加了一款强有力的高性价比产品。RK3562是一款专为智能显示设备设计的高性能、低功耗四核应用处理器,其工规版本RK3562J还具备CAN FD接口,工作…

基于SSM的旅游管理系统jsp房源信息java源代码Mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于SSM的旅游管理系统 系统有2权限:管理…

创作与合作:AI绘画API与艺术家的共舞

引言 在数字时代,技术和艺术之间的界限正在变得越来越模糊。人工智能(AI)绘画API是一个典型的例子,它已经开始改变我们对创作和艺术的理解方式。然而,与传统艺术手法相比,AI绘画API并不是要取代艺术家&…

JavaScript原型链污染

前言 在浏览某个论坛的时候,第一次看到了JavaScript原型链污染漏洞。当时非常的好奇,当时我一直以为js作为一种前端语言,就算存在漏洞也是针对前端,不会危害到后端,因此我以为这种漏洞危害应该不大。可当我看到他的漏…