数字IC验证之UVM概述

覆盖驱动验证
uvm提供了实现 覆盖驱动验证(coverage-driven verification ,cdv) 的框架。 cdv结合了自动测试向量生成,自检查和覆盖率收集,显著地缩短了用于验证设计时间。
cdv流程与传统的定向测试流程不同。cdv从验证目标开始,创建一个生成测试向量的测试平台并将其发送给dut。将覆盖率监视器添加到测试平台中以测量验证进度并确定未验证的功能。添加checker以识别错误的dut行为。
仿真在实现覆盖模型和测试平台之后启动。
可以在测试平台的基础结构上,添加约束以尽快达到验证目标。
cdv环境支持定向和随机约束测试。在编写耗时的定向测试去验证复杂的场景之前,先让随机约束测试完成大部分工作。
基于抽象层次的测试平台( 不依赖于实现细节 ),更具可读性和可重用性。
测试平台和环境
uvm测试平台由称为 验证组件 (verification components)的可重用验证环境组成。
下图显示了具有三个接口验证组件的验证环境示例。
验证组件
数据(transaction): 数据表示被测设计(dut)的输入。在测试平台中,使用systemverilog随机约束数据,以创建大量有意义的数据和最大化覆盖率。
** driver (bfm)** :driver模拟dut的逻辑。driver反复接收数据并将其驱动到dut。例如,控制读/写信号,地址总线和数据总线。
sequencer: sequencer是一种激励发生器,用于提供给driver数据。在sequencer中向数据项添加约束,用于控制随机值的分布。
monitor: monitor对dut信号进行采样但不驱动dut。 monitor收集覆盖率信息,检查dut输出是否满足协议规范。monitor收集事务(数据)。monitor从总线中提取信号信息并翻译成可供其他组件使用的事务。一般还会在monitor****中打印跟踪信息。
agent: sequencers, drivers, and monitors可以独立重用,但这需要了解每个实体的名称,配置和连接。 为了减少验证工程师的工作量和知识需求,uvm建议验证环境开发人员创建更多抽象容器agent。 agent封装了driver,sequencer, and monitor,可以驱动和监视dut。
agent应该是可配置的,以便它们可以是active或者passive。 active agents驱动事务。 passive agents仅监控dut。
environment: environment是top-level的验证组件。它包含一个或多个agents,以及其他组件。
uvm可以提供了验证流程和测试平台基础架构,用户只需要用特定于ip的组件替换一些现有的组件。
uvm类库提供了许多验证所需的功能,下图中的每个组件都是派生自相应的uvm类库的组件。
使用这些基类增加了代码的可读性,因为每个组件的角色都是由其父类预先确定的。

马斯克重回世界首富宝座 资产约1.73万亿元人民币
三星GalaxyA70手机全面评测 无疑是目前国内市场中最值得入手的中端机型之一
如何设计开关电源的保护电路
半导体产业四个未预见的“意外”
康飞宇、贺艳兵团队在固态电池电解质研究领域取得新进展
数字IC验证之UVM概述
浅谈人工智能技术军民双向转化的内涵特征
菌菇房智能控制系统
AMD进军内存市场无意义
华为5G应用将带动数字化生活和智能产业的蓬勃发展
基于卫星定位和4G技术的新型监控报警系统
3g模块端口什么意思
便携式7MHZ天线的制作
大功率无线路由器的微波器件选型指导
华为畅享9体验 虽是一款千元机但并不妨碍它对颜值的追求
小米笔记本Air详细评测:与MacBook Pro相比哪个性能更好?
贝尔机器人编程中心在第四届全国中小学创·造大赛中再创佳绩
MAX9928F/MAX9929F 高边电流检测放大器
全球机器人发展呈现出五大新的特点与趋势
中国手机在印度销量不降反升