论文部分内容阅读
随着集成电路设计复杂度的不断提升和设计规模的快速发展,功能验证已成为芯片设计过程中不可或缺的一部分。本论文来源于作者实习公司面向物联网核心数据处理和交换芯片的市场应用项目,主要任务为完成对千兆以太网MAC控制器的功能验证,根据待验设计的协议规范,设计实现了基于通用验证方法学(UVM)的验证平台。千兆以太网MAC控制器的主要功能是实现物理层和逻辑控制子层的数据帧传输,同时支持DMA完成MAC层与逻辑控制子层的数据突发读写。待验设计功能执行的正确性体现为数据帧内容未丢失且正确完成传输。因此本文将验证目标划分为三个部分:GMAC功能、数据突发读写及数据帧预处理,当所有验证目标都达到要求时,才能确定设计功能完备。首先根据验证目标确定验证方案,本文采用灰盒验证方法并利用监视器、断言检查项和比较器共同实现验证检查机制,对各个子模块交互端口设立检查机制来进行数据帧核对和行为检查。同时结合接口协议对验证平台中的接口驱动组件进行设计,实现了可复用的时钟和复位通用组件、GMAC接口UVC、APB接口UVC和AXI接口UVC组件,分别模拟时钟和复位行为、物理层收发以太网数据帧行为、外部系统配置行为和数据突发读写传输行为。然后实现配置和激励组件完善验证平台,对于寄存器的配置组件设计,单纯采用APB总线访问寄存器配置验证目标需要耗费大量的仿真时间,对此本文设计了寄存器模型并通过前门访问和后门访问两种机制实现了对寄存器的访问配置,同时建立了寄存器激励以实现快速的寄存器访问操作,提高验证效率。针对数据突发传输的配置组件设计,在axi_driver中定义了五个传输通道缓存空间,以支持验证平台中AXI UVC的读写传输,并建立了DMA UVC实现外部系统对数据突发传输中的初始化配置和内存分配行为,在dma_cfg中定义了需要随机化的配置信息,并通过dma_driver将随机化配置信息发送至AXI UVC对应缓存和寄存器模型。对于激励组件的实现,设计了可产生四层以太网协议报文的激励产生组件ether_seq,在本文搭建的验证平台上,该组件产生的激励可同时发送到GMAC UVC、AXI UVC和DMA UVC的底层驱动器完成信号驱动,有效验证了激励组件的正确性和复用性。最后设计了检查组件包括断言检查项和功能覆盖组。基于以上方案,完成了千兆以太网MAC控制器的验证工作。覆盖率结果是判断设计功能是否完备的重要度量。对覆盖率结果进行分析,可以有效评估当前验证工作的进程。为了及时获取验证结果,实现对覆盖率的实时监控,本文建立了基于验证计划的覆盖率跟踪工具VPM(验证计划管理),通过VPM可随时得到图表形式的覆盖率结果。由VPM生成的缺陷曲线可知,随着验证周期推进,所有缺陷均被修复。最终待验设计的代码覆盖率为91%,断言覆盖率和功能覆盖率达到100%,结合波形分析和覆盖率结果可知当前测试功能点均完成设计要求。