首页 > 其他分享 >2.3.3 加入monitor

2.3.3 加入monitor

时间:2024-05-21 15:29:14浏览次数:18  
标签:transaction monitor 加入 tb 实例 uvm 2.3 DUT

作用:

监测DUT的行为,driver负责把transaction级别的数据转变成DUT的端口级别,并驱动给DUT,monitor的行为与其相对,用于收集DUT的端口数据,并将其转换成transaction交给后续的组件如reference model,scoreboard等处理。

一些代码中用到的方法如下:

monitor代码如下:


需要注意1.所有的monitor类应该派生自uvm_monitor;2.monitor中也需要声明一个interface来连接

3.uvm_monitor在整个仿真中一直存在,它是一个component,要使用uvm_component_utils宏注册。4.monitor需要时刻收集数据,永不停歇,所以在main_phase中使用while(1)来实现这一目的。

这里的monitor将数据转换成transaction交给后续的组件处理。

当完成monitor的定义之后,还需要在env中对其进行实例化:

这里实例化了两个monitor,一个用于检测DUT的输出口,一个用于输入口,原因后面再说

现在整体的UVM树的结构如下图:


实例化完成后还需要再top_tb中使用config_tb将input_if和output_if传递给两个monitor

标签:transaction,monitor,加入,tb,实例,uvm,2.3,DUT
From: https://www.cnblogs.com/tomako123/p/18204170

相关文章

  • 【高薪诚聘】数据库精英,加入我们,共创数据未来!
    我们寻找的你:【如果你是数据库架构专家】对数据库架构有深入的了解和实践经验,能够为公司构建稳定、高效、可扩展的数据库架构;对各种数据库系统有深入的理解,包括但不限于MySQL、Oracle、SQLServer等,并能够根据实际业务需求进行选择和优化;对新技术和新架构保持敏感,有能力推动公......
  • 云原生周刊:Flux 2.3 发布 | 2024.5.20
    开源项目推荐kubeinvaderskubeinvaders专为Kubernetes用户设计。它提供了一种有趣而交互式的方式来探索和可视化您的Kubernetes集群。通过类似游戏的界面,用户可以浏览他们的集群,发现资源,甚至模拟对Pod的攻击。通过kubeinvaders,管理Kubernetes环境变得引人入胜且富有信......
  • 2.3.2加入env
    env的作用:实例化验证平台的各个组件,作为一个容器类,在这个容器里面实例化其他组件,然后再调用run_test时传递的参数就不再是my_driver,而是这个容器类,即让UVM自动创建这个容器类的实例。所有env都应该派生自uvm_env,且与my_driver一样,容器类在仿真中也一直是存在的,使用uvm_componen......
  • PowerShell脚本,可以用于自动加入或退出域:BAT批处理脚本,可以用于自动加入或退出域:
    PowerShell中创建网页版的自动加入或退出域脚本,您可以使用PowerShellWebAccess(PWA)功能。PWA允许您在Web浏览器中通过安全的HTTPS连接远程运行PowerShell命令,并可与Windows身份验证一起使用。以下是一个示例脚本,可用于创建PWA网页版的自动加入或退出域:powershellCopyCode......
  • 2.3.1---加入transaction
    transaction概念:可以简单地将transaction理解为一个包,在不同的验证平台中的transaction也不相同。一个简单的transaction如下:在这些代码中,其中dmac是48bit的以太网目的地址,smac是48bit的以太网源地址,ether_type是以太网类型,pload是其携带的数据大小,通过pload_cons约束可以看到......
  • 2.2.4 加入virtual interface
    为了保证验证平台的可移植性,在根本上来说应该杜绝在验证平台中使用绝对路径1.使用宏(这里不提)2.使用interface定义完interface之后,在top_tb中实例化DUT时就可以直接使用:上面是在top_tb中使用interface,那如何在driver中使用interface呢?在类中不能直接使用interface,只有在modu......
  • 《Linux内核完全注释》学习笔记:2.3 Linux系统定时
    在Linux0.11内核中,PC的可编程定时芯片Intel8253被设置成每隔10ms就发出一个时钟中断(IRQ0)信号。这个时间节拍就是系统运行的脉搏,我们称之为1个系统滴答。因此每经过1个滴答就会调用一次时钟中断处理程序(timer_interrupt)。该处理程序主要用来通过jiffies变量来累计自......
  • 2.2.3 加入objection机制
    先分析前面的:上一节中虽然输出了"main_phaseiscalled",但是"dataisdrived"并没有输出。但是既然进入了main_phase,应该会把这一整个任务执行完成才对,但是这里好像在执行的过程中被外力kill掉了?UVM中通过objection来控制验证平台的关闭在上一节中并没有调用finish语句,但是在......
  • nacos2.3.2部署(鲲鹏arm版)
    1.说明  本次编译是因为公司适配鲲鹏arm系列,业务涉及到了nacos-server,所以就选择最新版本进行了编译,期间也想直接使用官方镜像nacos/nacos-server:v2.1.2-slim、nacos/nacos-server:v2.2.0-slim,无一例外失败了,启动不了,所以最后只能选择源码编译,在制作镜像的方式进行。2.编......
  • 2.2.2加入factory机制
    driver代码:这里的factory机制被集成在了一个宏中:uvm_comphonent_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏,就相当于把这个类注册到了这个表中。在给driver加入这个机制后......