论文部分内容阅读
随着芯片的设计越来越复杂,前期RTL级功能验证在芯片开发过程中愈发重要。基于USB接口的电子产品在日常生活中被普遍使用,为满足大规模存储快速发展的需求,USB组织不断进行技术升级,USB标准协议已经由1.0、2.0、3.0发展到3.1,其数据传输速度已提升至1OGb每秒。随着性能的大幅提升,为了确保SoC芯片功能的正确性,对USB 3.1 IP进行完备的功能验证十分必要。针对上述情况,本论文对目前广泛使用的验证方法学进行了分析,由SystemVerilog发展而来的UVM验证架构,以其可扩展性和可复用性而被多家IC设计公司采用,是目前业内最先进的验证方法学。根据项目特点和验证需求,本论文选择了 UVM方法学来实现USB 3.1的功能验证。在验证环境的实现过程中,首先对USB 3.1协议进行研究与分析,包括协议中规定的USB3.1系统架构以及物理层、链路层、协议层内容,并根据协议内容及项目需求提出功能测试点。之后根据功能测试点规划验证环境,使用基于UVM的验证组件搭建验证平台,并使用UVM提供的TLM方法完成了各个验证组件之间的连接,使环境中形成完整的数据通路。之后针对提出的功能测试点编写测试激励,并利用System Verilog的随机特性创建了随机测试用例。最终实现了一个基于UVM验证方法学的可重用的、参数化的随机验证环境,并使用该验证环境对USB 3.1系统级功能进行了可靠、完整的验证。最后根据仿真结果分析覆盖率,通过修改或添加定向激励的方法,追加未覆盖到的功能验证点,保证了产品质量。一般情况下,验证环境通过向DUT的输入端施加激励,然后观察DUT内部信号的状态和响应激励的输出信号来判断DUT功能是否正确。但是对于复杂的IP验证而言,即使通过大量的随机测试依然无法很好地监测DUT中所有关键信号的状态。对此,本文提出了一种基于UVM验证组件的SVA模块设计方法,在UVM验证组件中增加断言模块,既解决了传统的激励验证带来的局限性,又使断言模块具有可重用性。