在之前的博客中,我讨论了在验证基于 AMBA 的子系统的复杂 SOC 时面临的一些关键验证挑战。据指出,建立一个可扩展的基于AMBA的核查环境确实是有益的,这种环境可以作最低限度的调整,以便可以重新用于新的系统或衍生物。
为了使 SOC 验证工程师能够创建高度可配置的 AMBA 结构,系统环境应提供占位符,用于将 DUT 与任何典型的 AMBA VIP 组件(如 AXI3/4/ACE、AHB 或 APB)挂钩。通过使用 AMBA 系统环境,我们可以将其配置为使用最少的附加代码实例化尽可能多的 AXI/AHB/APB VIP。因此,这样的环境需要封装以下内容:
气系统环境
AXI (3/4/ACE) 系统环境
AHB系统环境
APB 系统环境
虚拟序列器
AMBA 系统监视器阵列
AMBA 系统环境的配置描述符,可用于配置底层 CHI/AXI/AHB/APB 系统环境
下图显示了此类验证环境的表示形式:
让我们看看UVM中的哪些功能可以派上用场,为一些重要的系统级功能创建强大的环境:
分层虚拟序列器,以实现各种组件之间的同步:管理总线结构同步的系统序列器可以建模为虚拟序列器,并引用 CHI System Env、AXI System Env、AHB System Env 和 APB System Env 中的虚拟序列器。
利用分析端口进行系统级检查、评分板和响应处理:理想情况下,CHI、AXI、AHB 和 APB 主代理和从代理中的每个端口监视器都有一个分析端口。在事务结束时,主代理和从代理分别将完成的事务对象写入分析端口。可以指定此类上游端口和下游端口,供系统监视器用于跟踪结构中的转换和响应以及执行路由检查。
使用回调启用用户扩展并提取覆盖范围和吞吐量度量: 回调是一种访问机制,允许插入用户定义的代码,并允许在 AMBA 系统环境中访问对象以进行性能分析和吞吐量测量。
要在系统环境中的虚拟序列器上运行的综合序列库: UVM 允许将序列的逻辑集合注册到序列库,并且此集合可以在关联的序列器上执行。然后,系统级序列器协调这些序列集合在不同序列器的执行,以创建有趣的场景组合,同时针对系统级激励视角的最大覆盖范围
从验证的角度来看,系统级检查是关键。如前所述,它们可以包括:
跨 CHI、AXI、AHB 和 APB 端口的数据完整性检查
跨 CHI、AXI、AHB 和 APB 端口的事务路由检查
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !