UVM1.2 和UVM1.1

  • 新功能和更改功能

变量uvm_sequence_base::starting_phase已弃用,并由两个新方法set_starting_phase和get_starting_phase取代,这些方法阻止在phase中间修改starting_phase。此更改与UVM 1.1不向后兼容,但变量starting_phase虽然已弃用,但尚未从基类库中删除。

新方法uvm_sequence_base::set_automatic_phase_objection将在在sequence执行前后自动调用raise_objection和drop_objection,从而避免在一种常见情况下手动调用raise / drop_objection。

消息系统改造提供基于对象的API以向报告添加属性,使用新的宏uvm_info_begin /uvm_info_end等等。现在可以扩展uvm_report_server类,并且可以链接扩展报表服务器。

记录系统改造以为类uvm_recorder提供基于对象的API。

现在可以通过显式恢复默认类型来撤消工厂覆盖。

标准工厂可以替换为用户定义的工厂,例如提供改进的调试功能。

可以使用新方法uvm_objection::set_propagate_mode关闭objections的分层传播(通常是冗余的),以加快执行速度。objections的传播最终将被弃用。

新方法uvm_phase::get_objection_count提供了一种清除所有异议的方法,即

phase.drop_objection(this,“msg”,phase.get_objection_count(this));

用于phase计划内省的新方法uvm_phase :: get_adjacent_predecessor / successor_nodes。

新的回调类uvm_phase_cb允许在phase时进行回调。

现在扩展自uvm_object的每个类都必须具有构造函数。

现在uvm_event类使用(可选)事件有效内容的类型进行参数化。

类型uvm_bitstream_t已被策略对象和字段宏中的类型uvm_integral_t替换。

新类uvm_reg_transaction_order_policy用于指定超宽寄存器访问时的总线事务的顺序。

前缀UVM_已添加到类型为uvm_sequence_state_enum和uvm_sequencer_arb_mode的枚举值中。

new version宏UVM_MAJOR_REV,UVM_MINOR_REV等。

  • 下列特性成为官方标准的一部分

内置运行时phase(例如reset_phase)的进入和退出标准已记录在类参考手册中。

类uvm_sequence_library现已记录并正式发布。

变量uvm_sequence :: req和rsp现已记录并正式发布。

uvm_sequencer#():: get_next_item,try_next_item,item_done,get,peek和put方法现已记录在案并正式发布。

  • 不推荐的功能

set / get_config_int,set / get_config_string,set / get_config_object不建议使用。

不推荐使用uvm_component :: status,kill和do_kill_all。

不推荐使用stop_request,global_stop_request,set_global_timeout,set_global_stop_timeout和stop_timeout。

uvm_component :: stop_phase和变量enable_stop_interrupt已弃用。

不推荐使用变量uvm_test_done。

不推荐使用宏uvm_sequence_utils,uvm_declare_sequence_lib和`uvm_update_sequence_lib。

不推荐使用配置数据库参数“default_sequence”,“count”,“max_random_count”和“max_random_depth”。

不推荐使用方法uvm_sequencer_base :: add_sequence,get_seq_kind和get_sequence。

有新的迁移脚本可替换某些已修改或已弃用的功能。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UVM(Universal Verification Methodology)是基于SystemVerilog的功能强大的验证方法学。UVM 1.1和1.2是UVM验证方法学的两个不同版本,它们在某些方面有所不同。 首先,UVM 1.2对UVM 1.1进行了一些改进和扩展。UVM 1.2版本引入了一些新的功能和特性,包括“UVM RAL”(寄存器抽象层)的完全支持,允许开发人员更方便地验证和访问寄存器。此外,UVM 1.2还引入了一些新的基本类,如uvm_block和uvm_component,在组织结构上更灵活且更易于重用。 其次,UVM 1.2版本还更加关注验证的互操作性和可重用性。它提供了与其他验证组件和方法学(如Portable Stimulus、Functional Coverage和Formal Verification)的无缝集成,使验证工程师能够更方便地扩展和共享他们的验证环境和测试套件。 此外,UVM 1.2还对已知的编码和设计问题进行了修复和改进,提高了验证过程的效率和可靠性。更多的错误修复和改进使UVM 1.2版本更加稳定和可靠。 总之,UVM 1.2是对UVM 1.1的改进和扩展,它提供了更多的功能和特性,改善了验证的可重用性和互操作性。这两个版本在实现虚拟验证方案和验证环境时有所不同,所以根据具体的项目需求选择适合的版本是很重要的。 ### 回答2: UVM(Universal Verification Methodology,通用验证方法)是一种用于验证芯片设计的开源验证框架。在UVM的发展过程中,经历了多个版本的更新和改进,其中包括了UVM1.1和UVM1.2两个主要版本。以下是它们之间的一些区别: 1. UVM1.1的推出时间早于UVM1.2,它是UVM的一个较早的版本。而UVM1.2则是一个相对较新的版本。 2. UVM1.2相对于UVM1.1在一些功能上进行了增强和改进。例如,UVM1.2引入了新的构造函数和任务,使用户在编写测试代码时更加方便和灵活。 3. UVM1.1和UVM1.2在错误报告方面也有一些不同。UVM1.1使用了一种较为简单的错误报告机制,而UVM1.2引入了新的报告体系结构,提供了更加集中和丰富的错误报告功能。 4. 在序列化方面,UVM1.1和UVM1.2也存在一些差异。UVM1.2在序列化的过程中使用了新的系统变量,提供了更好的灵活性和可扩展性。 5. UVM1.1和UVM1.2同时支持的语言版本也有所不同。UVM1.1支持SystemVerilog 2005,而UVM1.2则针对SystemVerilog 2012进行了优化和兼容。 总的来说,UVM1.2相对于UVM1.1在一些功能和性能上进行了改进和优化,提供了更加强大和方便的验证环境。但是,具体使用哪个版本取决于用户的需求和实际情况。 ### 回答3: UVM(Universal Verification Methodology)是一种广泛采用的硬件验证方法学。UVM 1.1和1.2是UVM的不同版本。下面是它们之间的一些区别: 1. 兼容性:UVM 1.2与UVM 1.1具有向后兼容性,即使用UVM 1.2编写的测试环境也可以在UVM 1.1中运行。这保证了旧版本环境的可重用性。 2. 新功能:UVM 1.2相对于UVM 1.1引入了一些新的功能和改进。例如,UVM 1.2提供了更丰富的消息和记录功能,以便更好地调试和分析验证环境中的问题。 3. 代码可读性:UVM 1.2相对于UVM 1.1对代码的可读性进行了优化。它提供了更好的组织和结构化测试环境的方法,使得代码更易于理解和维护。 4. 错误修复:UVM 1.2还修复了一些UVM 1.1中的错误和缺陷,提供了更稳定和可靠的验证环境。 5. 性能提升:UVM 1.2相对于UVM 1.1对性能进行了改进。它提供了更高效的实现和一些性能优化,以提高验证环境的执行速度。 综上所述,UVM 1.2是UVM 1.1的一个升级版本,引入了一些新的功能、改进了代码可读性以及修复了一些错误和缺陷。它还提供了更好的性能,使得硬件验证工程师能够更轻松地开发复杂的验证环境。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值