【问题标题】:How factory is implemented inside UVM?工厂是如何在 UVM 内部实现的?
【发布时间】:2014-12-09 04:18:16
【问题描述】:

在UVM,工厂是最重要的。那么它是如何在里面实现的。表示它如何存储各种对象并创建一个通用数据库。

我知道它有一些关联数组,一个以键作为对象名称,另一个以键作为对象类型。但是我不知道这2个数组如何构建数据库?甚至我都不知道我的信息是否正确。

还请列出一些工厂实现和修改的相关类。 (也许 umv_resource 就是其中之一。)

【问题讨论】:

    标签: verilog system-verilog uvm


    【解决方案1】:

    这篇 DVcon 论文Using Parameterized Classes and Factories: The Yin and Yang of Object-Oriented Verification 是在公开发布之前考虑到 UVM 工厂编写的。所有相同的原则都适用。

    【讨论】:

    • 谢谢@dave_59。还有一个问题,这个工厂数据库,uvm_config_db数据库,uvm_resource_pool数据库都是同一个数据库吗?
    • 非常感谢那篇论文,它对工厂提供了一个很好的想法,但我不明白工厂类可以做什么(根据论文)也可以通过分层访问来完成.就像如果我们想改变排序器中的事务,那么我们可以创建一个派生事务的对象并在排序器类中分层替换它(env.agent.sequencer.trans = new_trans_object)。那么factory的具体用途是什么??
    • @dave_59,请在您的答案中添加要点。仅链接的答案被认为是低质量的,并且有被标记的风险。链接应该添加到答案中(支持文档、引用、进一步阅读等),而不是答案。
    • 工厂的关键特性是它允许您更改代码的行为方式而无需更改代码。在 UVM 中,覆盖可以在顶级测试中进行,甚至可以从命令行动态进行。通过分层访问进行修改并不总是可能的,因为您不知道较低级别的代码何时会构造一个新对象。 工厂设计模式在面向对象编程中很常见。
    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多