UVM-1.1学习(一)——uvm代码的分类

UVM基于功能将classes/utilities分为以下几大类:

Globals
在uvm_pkt的scope中定义了少量types、variables、functions和tasks。
相关文件:

  • base/uvm_globals.svh
  • base/uvm_object_globals.svh

Base
定义了搭建环境所需要的components、transactions、ports。
其中比较特殊的是uvm_root,它作为所有uvm_components的顶层,对所有uvm_components提供phasing的控制和其它全局的服务。

Reporting
为发布一致性的报告提供了工具。其中,uvm_report_hander根据verbosity的设定决定哪些报告可以送至uvm_report_server做进一步的格式处理。
在这里插入图片描述
Factory
在这里插入图片描述
uvm_factory基于用户需求,创建objects和components。
Phasing
定义了uvm components中的phase机制,让uvm components能够按照一定顺序执行。
Configuration and Resources
Configuration and Resource类提供了一个可配置的数据库(database),用于存储和提取特定的数据。
Synchronization
在这里插入图片描述
UVM提供了event and barrier synchronization类用于管理并发的进程。
其中,uvm_barrier用于防止仿真中进程无休止的增加下去。
Containers
Container类定义了参数化的数据结构,以实现比systemverilog更高效的数据共享:原因在于Container类之间的复制是基于reference的拷贝,而不是基于原始数据。

  • uvm_queue #(T)和systemverilog中的queue类似;
  • uvm_pool #(T)和systemverilog中的associative array类似。

Policies
为uvm_object-based objects的printing、comparing、recording、packing和unpacking函数制定策略(policy)。这些策略的实现与uvm_object的实现是分开的,因此你可以在不修改objects代码的情况下改变这些函数的行为。

  • uvm_printer:提供了几个可供选择的子类用于指定打印策略:uvm_table_printer、uvm_tree_printer、uvm_line_printer,打印效果可以从名字中看出。
  • uvm_comparer:基于该策略指定哪些数据需要compare以及如何报告miscompares。
  • uvm_recorder:将uvm_object-based objects记录到transaction database中,这部分开放给EDA vendor实现。
  • uvm_packer:用于指定pack和unpack的策略。

TLM
TLM library中定义了基于transaction级别的抽象接口用于简化uvm component之间的通信。
Components
uvm components是uvm中最重要的一部分,Components类将driver、scoreboard等进行了行为级的封装,便于我们继承和使用。
Sequencers
Sequencer作为一个仲裁者,为多个stimulus generators产生数据流提供了控制。
Sequence
在这里插入图片描述
Sequences将用户定义的多个数据包封装。这些sequences可以继续被重用、扩展、随机以及组合。uvm提供sequence的目的在于将仿真行为抽象级别提升。我们可以将DUT初始化数据、压力测试流、网络协议控制等封装为sequences,在接下来的验证活动中,基于这些sequences来编写测试用例,让编码更简便且更容易触发corner。
Macros
提供Macros的目的在于使验证活动更高效地开展。
Register Layer
当寄存器模型被正确建立后,Register Layer类可以帮助我们将总线操作抽象为对registers和memories的读写访问。
Command Line Processor
提供了对仿真参数的处理接口。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: uvm-1.1a.tar.gz是一个库文件,它是Universal Verification Methodology(UVM)的开源版本,旨在帮助硬件验证工程师实现更高效、更准确的系统级验证工作。该版本的发布包括完整的UVM框架和示例代码,它们可以被应用于各种验证环境中。其中包含了基于SystemVerilog的类库、通用模型、事务级建模器和随机验证,同时也包括了DPI、OVM等不同验证中间件框架的支持。该版本提供了更多的互操作性和可扩展性,让用户能够快速开发和部署大规模验证工作。UVM已经成为ASIC和FPGA验证领域的事实标准,可以在不同的平台和工具上进行移植。因为它的开源特性和流行度,UVM支持社区持续创新和最佳实践的分享,不断提高Verilog验证技术的水平和效率。 ### 回答2: uvm-1.1a.tar.gz是一种开源的验证方法学框架,为现代芯片验证提供了一种完整而灵活的解决方案。它提供了一套可重用的Class Library,包括了各种验证组件,如监控,分析器,交通形成器和交通收集器,并提供了一种现代的验证方法学,包括创建可重用的测试用例和环境。UVM框架是基于SystemVerilog语言的,是目前工业界最常用的验证环境之一。该框架可以帮助芯片设计者和验证工程师更有效地制定验证计划和执行测试,缩短开发周期,提高产品质量和可重复性。同时,UVM也在学术界和研究机构中广泛应用,为芯片验证方法学的研究和发展提供了有力的支持和平台。总之,uvm-1.1a.tar.gz是一个非常有用的开源验证方法学框架,为芯片验证提供了强大的支持和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值