网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

验证IP用户的期望:事务建模

时间:2023-05-29 10:09

人气:

作者:admin

标签: UVM  AXI  IP 

导读:在开发和使用验证IP中都发挥了作用,我认为交易类是VIP中最重要的组成部分。事务类的质量定义了 VIP 的质量。无论是UVM还是任何其他方法,决定交易类结构都需要充分的规划,因为它...

在开发和使用验证IP中都发挥了作用,我认为交易类是VIP中最重要的组成部分。事务类的质量定义了 VIP 的质量。无论是UVM还是任何其他方法,决定交易类结构都需要充分的规划,因为它会影响整个VIP架构和验证环境。

让我列出一些我认为相关的准则:

协议的所有变体都应在事务类中定义。这使得事务类可用于生成各种可能的激励(同时驱动DUT)。然后,监视器的总线功能模型还能够从 DUT 接口中提取信息并填充事务类的相关字段。特别是对于总线协议,我们应该在事务类中具有随机属性,不仅用于信号值,还用于所有可能的延迟。这将使生成器能够使用约束随机生成来模拟不同的速度,并在交易中创建不同的延迟。然后,BFM 可以使用事务类中嵌入的信息,而不是自行生成任何信息。

pYYBAGR0COqAJmdwAAFKQ3-xOo0722.png

分层与扁平化事务模型:扁平化事务易于维护,并且更容易添加新约束。但是,当协议很复杂并且需要在程序上随机化字段时,最好让父类实例化子类对象数组。
在下面的示例中,AXI 突发类实例化特定于突发的每个节拍的数据类队列。生成突发字段后,将在突发的 post randomize() 方法中生成数据字段。如果此事务模型被平展,则axi_data类的所有字段都将是axi_burst类中的数组。这里的缺点是什么?如果必须生成随机突发,则所有数组都将并行生成。如果您有复杂的约束,这可能会导致额外的性能开销。

poYBAGR0CO6ACE4XAAJs20uZJn8146.png

配置信息应该可以从事务类中访问。任何可重用的 VIP 都必须是可配置的,并且通常具有与之关联的配置描述符。不同的交易需要根据VIP的配置生成信息。因此,通过分层选项 (VMM) 或资源/配置数据库 (UVM) 将 VIP 配置句柄作为引用传递给事务。

poYBAGR0CPKALfTjAAHkm_ZBYn4172.png

提供一组丰富的实用程序方法:UVM 提供了一组预定义的宏,这些宏定义了事务中的复制、比较、显示等实用程序方法。特别是对于验证IP中使用的事务,与要验证的总线协议相关的其他实用程序方法可能非常有用。这可用于 VIP 的不同组件。在下面的AXI示例中,方法get_trans_addr_by_idx()计算并提供“数据节拍”的地址,用户不必担心“突发”是包装型、固定型还是增量型。类似地,你可以有一个 get_data() 方法,它可以提供一个字节队列以及相应的数据。因此,用户无需在其记分牌中单独计算此信息。

pYYBAGR0CPaAf_zZAAIc_K316dI140.png

我们可以进一步完善这些。最后,重要的是要知道构建有效的事务模型将产生高效的验证IP。在这里,我放下了我的想法。根据要验证的协议和所涉及的复杂性,不同的人可能希望以不同的方式构建他们的交易类。但是,我相信上述准则可以纳入当今使用的大多数协议中。希望这对您有用,我绝对有兴趣知道您对这个主题的看法。

审核编辑:郭婷

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信