码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UVM实战——02构建一个简单的UVM平台_1 UVM平台中的关键组件


    UVM平台中的关键组件

    • 1. driver激励驱动
    • 2. sequencer
    • 3. monitor
    • 4. agent
    • 5. reference modle参考模型
    • 6. slave agent
    • 7. scoreboard
    • 8. env
    • 9. testcase测试案例
    • 10. 构成平台的结构组件
    • 11. 组件间的通信端口
    • 12. 类比举例
    • 13. 简化UVM平台
      • 13.1 简化1—去掉slave agent
      • 13.2 简化2—去掉scoreboard
      • 13.3 简化3—去掉reference modle(参考模型)
      • 13.4 简化4—去掉DUT

    第二节目录
    UVM平台的主要组件
    创建用户所需的transaction(事务)
    创建sequence
    创建sequencer
    创建driver
    创建monitor
    创建agent
    创建environment
    创建testcase
    运行仿真

    1. driver激励驱动

    driver:将接收到的事务,转化为pin级信号,通过接口,驱动到被测设计的端口上
    在这里插入图片描述

    2. sequencer

    sequencer:sequencer启动后,会产生事务,将事务转发给driver
    在这里插入图片描述

    3. monitor

    monitor:监视接口上的信号,包括被测设计的输入、输出信号;将获取的pin级信号转化为事务及对象,然后给其他组件进行处理。
    在这里插入图片描述

    4. agent

    在这里插入图片描述

    5. reference modle参考模型

    reference modle:模拟DUT的功能行为,根据输入的激励产生相应的结果,该结果称为参考值或者期望值。

    master agent中的monitor会将DUT的输入收集下来,发送给参考模型,作为参考模型的输入
    在这里插入图片描述

    6. slave agent

    slave agent中的monitor收集DUT的输出信息,将获取的pin级信号转化为事务及对象,然后发送给其他组件进行分析。
    在这里插入图片描述
    一般情况下,slave agent不需要驱动DUT,只包含monitor。

    7. scoreboard

    scoreboard:从两个地方获取数据,一个是参考模型发过来的期望值,另外一个是slave agent发来的DUT输出值,在积分板中,对这两个值进行比较,由此来判断DUT的功能是否正确。
    同时可以将功能覆盖率嵌入scoreboard中,以实现覆盖率的收集。
    在这里插入图片描述

    8. env

    各个组件存在数据通信,将各个组件用某种方式连接起来。
    一旦env完成,在后续的测试案例中,不能对其进行更改。如果需要更改env,那么之前通过的测试案例需要重新执行。
    在这里插入图片描述

    9. testcase测试案例

    在一个测试项目中,测试案例可以有多个,但env只有一个,并且env一旦确定,就不能随意更改。
    对整个平台的配置,都是在testcase中完成滴,因此,在构建env的时候,需要事先配置好接口,env具有可配置性。
    在这里插入图片描述

    10. 构成平台的结构组件

    从基类扩展
    在这里插入图片描述
    参考模型需要从uvm_component扩展
    在这里插入图片描述

    11. 组件间的通信端口

    UVM需要建立某种机制,将需要通信的接口连接起来,使用通信端口来建立组件之间的连接。
    uvm的端口有很多中,根据不同的场合,不同的需求来选用。

    • uvm_*_port
    • uvm_*_import
    • uvm_*_export
    • uvm_fifo
    • uvm_*_socket
      在这里插入图片描述

    12. 类比举例

    类比举例:组件比作工厂的流水线的设备,事务就是穿梭于设备中的产品;事务是组件的操作对象
    在这里插入图片描述

    13. 简化UVM平台

    13.1 简化1—去掉slave agent

    在这里插入图片描述

    13.2 简化2—去掉scoreboard

    在这里插入图片描述

    13.3 简化3—去掉reference modle(参考模型)

    在这里插入图片描述

    13.4 简化4—去掉DUT

    在这里插入图片描述
    最后,只剩下了一个master agent,实现的功能:仅产生事务,并把事务发送到driver上。

  • 相关阅读:
    day15_集合_ArrayList
    ORACLE RAC的一些基本理论知识
    mongoose搭建mqtt客户端
    python字典
    每天五分钟深度学习:解决for循环效率慢的关键在于向量化
    pandas读取文件
    大二Web课程设计期末考试——基于HTML+CSS+JavaScript+jQuery电商类化妆品购物商城
    deployment滚动更新时副本减少的分析
    git reset soft mixed hard keep区别
    3296:【例50.2】 计算书费《信息学奥赛一本通编程启蒙(C++版)》
  • 原文地址:https://blog.csdn.net/weixin_42454243/article/details/126274943
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号