论文部分内容阅读
随着集成电路的飞速发展,芯片的规模不断增大,复杂度不断提高,验证的难度、工作量和重要性也随之急剧增加。验证贯穿整个芯片设计流程,一般情况下,其工作量占到整个设计研发过程的70%-80%,成为了影响芯片上市时间和研发费用的关键因素。数字IC芯片验证主要分为数字前端的功能验证和数字后端的时序验证。本文主要研究的是数字IC验证中的核心——前端功能验证。论文分析当前主流的验证语言SystemVerilog和验证方法UVM(Universal Verification Methodology),并对SystemVerilog的优势以及UVM类库地图、树形结构和一些重要机制进行研究。以SMBus接口为研究对象,对SMBus总线协议进行分析,总结SMBus总线的基本特征和传输方式。通过对SMBus接口设计需求的分析,设计SMBus接口整体结构,用Verilog完成SMBus接口的设计并对内部各模块进行分析说明。根据需求分析与UVM验证方法设计SMBus接口验证平台整体结构,并确定各组件功能。用SystemVerilog验证语言和UVM验证方法以分层次的方式编写SMBus验证平台中的各个验证组件,主要包括:连接待测设计SMBus和验证平台的interface、产生激励的sequence、将sequence发送给driver的sequencer、驱动激励到interface的driver、从interface上检测数据并进行包处理后发送给reference model的monitor、模仿待测设计功能的reference model、检测待测设计正确性的scoreboard、衡量验证进度的function coverage等,提高验证平台的重用性。采用TML基于事务的通信方式实现各个组件之间的通信,降低各组件之间的依赖性,提高验证平台的效率。对验证平台进行优化,使其灵活性和可重用性进一步得到提高。完成验证平台的搭建工作后,根据SMBus设计规范总结并列出所需验证的各个功能点,完成各种testcase的编写。利用编译仿真工具VCS对验证平台进行调试,并对待测设计进行仿真与回归测试,收集代码覆盖率和功能覆盖率,并生成覆盖率报告,实现对验证进度的监测作用。本文用SystemVrilog和UVM验证方法搭建了SMBus接口验证平台,编写了各种测试激励,通过往复的补充、修改与测试,使最终的代码覆盖率和功能覆盖率均达到了100%,完成了SMBus接口的验证工作。此外,使用分层次的方式编写验证组件,并通过TML端口实现各个组件之间的通信,提高了验证平台的重用性和高效性。