论文部分内容阅读
随着芯片设计规模的快速发展,制约芯片设计的主要瓶颈不再是人们的想象力和工艺技术水平,而是芯片的验证。验证贯穿芯片设计的整个流程,占据了绝大多数时间。对于企业而言,科学而高效的验证可以保证设计的正确性,从而提高产品的良品率,避免因设计缺陷带来的损失,为芯片最终成为商品带来经济效益提供了强力的保证。对于用户而言,验证提高了产品的可靠性,可以大大改善使用体验。总而言之,验证技术的提高对于当前发展程度的芯片领域来说,占据了越来越重要的地位。本文主要是对蓝牙逻辑链路层内存控制器模块(Bt_mem_ctrl)进行研究,并进行数字功能验证。首先通过资料了解验证的意义和重要性,对国内外的SOC研究现状进行了解。研究验证的历史发展,总结验证方法和每种方法的适用和特点,接着分析目前验证遇到的挑战,从而确定本文以功能验证为核心的中心思想。System Verilog验证语言和UVM方法学是数字验证必不可少的知识储备和工具。SV集成了面向对象编程的技术特点,UVM则是以SV为基础建立的一个库,它提供了创建验证平台的所需要的一系列接口和规则,帮助我们建立逻辑性强,可重用性高且易读的验证平台。该内存控制器应用于蓝牙下层协议的链路控制器中,主要是对HCI层的数据收发进行控制。主机控制接口(HCI)主要负责主机和控制层之间数据传输,是连接蓝牙上层协议(主机)和下层协议(控制器)的关键通道。数据的运输通常由软件控制,而该内存控制器是对原本由软件控制的数据运输进行优化,可以起到替代CPU完成数据搬运的作用。它对固件里面的内存管理模块进行硬化,将由软件处理的任务交给硬件管理,以达到节省时间的目的,从而减轻CPU的负担,降低功耗。本文的重点是对内存控制器模块建立以UVM为基础的验证平台并进行功能验证。先研究了蓝牙技术的协议,着重了解蓝牙下层控制器协议。再分析内存控制器的设计规范,深入理解它的原理和内部设计构造,以及RX和TX两种工作模式,总结它的功能,列出验证计划。通过对协议的研究与内存控制模块设计的深入理解,规划验证平台的主要架构,结合SV验证语言和UVM方法学建立验证平台,采用虚拟激励完成对多种激励的调度,然后针对功能点创建测试用例,除了正常激励,还要注入非正常激励,实现验证的完备性,然后进行仿真,仿真过程中,不断进行debug来找出DUT和验证平台的错误,加以维护。仿真全部通过后,最后进行覆盖率的测量,主要测量代码覆盖率和功能覆盖率,通过不断完善测试用例与激励产生方式,代码综合覆盖率达到了90%以上,功能覆盖率达到100%,可以认为完成了对内存控制器模块的验证。