论文部分内容阅读
随着科技的日益发展,支付功能变得多样化,带有nfc功能的sim卡应用越来越广。虽然sim卡的市场大部分被国外公司所占领,但是随着国内的芯片设计技术及安全算法的发展,我国自主研发的高端sim卡也受到越来越多的客户的欢迎。在这种背景下,国内已经出现了大批的专注于智能卡业务的公司。本文主要内容就是根据公司实习期间参与的sim卡验证工作进行论述的。此产品是基于ARM架构,采用7816接口作为主通信接口的sim卡,内部集成了大量的加密模块及功能模块。由于人们对功能及安全性的需求日益增加,芯片的规模越来越大,功能越来越复杂。所以一款能满足市场需求的的芯片需要大量的验证工作来确保其功能的正确性及可靠性,这种特征也推动着验证方法学进一步的发展。本文就对这款芯片的7816接口验证环境的搭建、使用及特点进行了论述。验证环境采用目前业内使用最为普遍的UVM验证方法学进行搭建,较之前的基于Verilog架构的验证环境有很多的优点及特点。例如,加入了register model方法,使得对DUT中寄存器的操作更加灵活和方便;将平台内各个功能单元进行分类,使得环境的架构清晰且易于修改;同时由于UVM是基于面向对象编写的方法学,所以环境具有灵活性高、功能继承与扩展方便等特点,易于验证环境的移植与集成。工作内容主要是验证7816接口在chip-level的DUT(除CPU外)中是否实现其正常功能。验证环境的DUT中并不包含CPU,主要原因是CPU要想对AHB及APB总线进行一个实际的控制要经过取指、译码等阶段,需要耗费大量的仿真时间,但是UVM平台可以很快的产生激励来模拟AMBA总线协议对AHB及APB总线进行控制。所以我们用UVM搭建一个模拟AHB及APB总线行为的环境来实现对DUT中AHB及APB总线的操作。所以该环境仿真速度相对基于CPU控制的仿真速度要快上很多,这大大减少了仿真所需的时间,加快项目进度。同时,由于UVM环境可以对事件的操作进行精确的时间控制及激励产生,所以验证场景的实现更加容易。该环境除了可以进行功能验证外还可以进行覆盖率的收集。环境中通过在sequence中使用covergroup方法进行功能覆盖点的指定来进行功能覆盖率收集。在覆盖率收集过程中可以通过分析覆盖点的收集情况来调整随机参数的随机权重,使得覆盖率的收集速度大大提高,这对于项目后期的多次regression十分重要。基于此方法可以很好的完成功能覆盖率的收集任务。由于本文主要针对芯片的7816接口进行chip-level的验证且芯片基于AMBA总线架构进行设计,所以寄存器读写、AMBA总线数据传输与信息收集是通过验证平台中ahb_if_uvc及apb_if_uvc(平台中的一部分组件)进行控制的。7816接口的数据传输与信息收集是通过7816接口对应的7816_if_uvc(平台中的一部分组件)进行控制的。所以论文中平台搭建的主要内容就是描述AHB总线、APB总线及7816接口对应验证环境的搭建,然后对7816接口在整个系统中能否实现其正常功能进行验证并完成覆盖率的收集。