论文部分内容阅读
随着SoC的设计复杂程度不断增加,芯片从设计到投入市场需要的时间越来越长,而市场则需要芯片尽快的投入市场,二者之间的矛盾日益加剧,在如今,芯片的功能验证已经成为集成电路设计面临的严峻挑战,使用传统的验证方法,由于无法遍历到所有可能性情况,会存在一些无法预知的漏洞。针对此问题,以SystemVerilog为基础的UVM验证平台作为一种新兴的验证方案,具有能够产生随机受约束的激励、自动收集覆盖率、分析验证结果和可重用性强等功能,相比传统的验证方案,有着明显的随机性验证和效率的提升,能够有效的查找设计问题,缩短芯片生产周期。本文以CAN总线控制器验证为研究背景,基于UVM验证方法学,采用SystemVerilog语言完成了研究对象的验证工作。本文具体研究成果如下:完成了CAN总线控制器待测电路的验证点的分解,待测电路包含标准模式和扩展模式两个工作状态,基于直接验证思维,根据其总线架构、寄存器参数配置、工作原理和报文传输的流程,在基于CAN2.0协议的基础之上完成验证点的分解。本文依据两种不同的模式情况,将验证点主要分解为发送接收状态、发送接收中断、数据溢出、仲裁捕获、错误检测、寄存器复位值及读写验证、采样多次以及状态验证等功能。完成待测电路的UVM验证平台开发,基于验证点的分解,首先对UVM验证平台进行了架构设计,主要包括监控器monitor、驱动driver、计分板scoreboard、参考模型referencemodel等组件的设计与具体实现方案,同时应用了sequence机制、phases机制、factory机制诸多关键机制,确保UVM验证平台的可重用性,最后据此搭建了具有随机约束激励和功能覆盖率收集的UVM验证平台,基于已分解而成的验证功能点编写测试用例,通过测试用例启动平台进行仿真,完成CAN总线控制器的模块级验证,使得待验证的设计功能运行正常并且符合设计规范。对验证过程进行了验证完备性的分析,其中包括功能覆盖率的收集和代码覆盖率的收集以及缺陷率的追踪。本文通过覆盖组(covergroup)的设计进行功能覆盖率的信息收集工作,通过仿真软件实现代码覆盖率的收集工作。其中,功能覆盖率达到100%,总体代码覆盖率达到95.41%(块覆盖率94.38%,表达式覆盖率94.54%,状态机覆盖率98.24%),两个覆盖率均达到规定的验证指标要求,达到了验证的目的和价值。本文缺陷率的追踪主要通过统计工具完成了缺陷率曲线的分析工作以及缺陷种类的分析工作。分析结果显示,本项目缺陷率曲线呈下降的收敛状态,所发现的缺陷种类呈基本缺陷到高级缺陷的转化趋势,达到了验证的质量要求。本文根据UVM验证方法学的结构和特性完成了CAN总线控制器验证平台的搭建,同时使用定向测试和随机测试对模块进行验证,通过NCSim等软件仿真并分析log文件及电路仿真波形图,高效率的完成了DUT电路的验证,总体上使得芯片的验证效率更高,整体缩短的芯片开发周期。