基于UVM的千兆网络适配器IP的验证环境
2016-05-30许诺
许诺
摘 要:目前嵌入式系统的流行,使得SOC的设计在业界越来越多,而且于此带来的验证挑战也越来越大,本文描述了一种基于AXI4.0总线接口的以太网IP设计和验证环境。
关键词:UVM AXI4.0 千兆网络适配器;嵌入式系统;以太网IP设计
1 设计框图和功能介绍
本设计功能见图1。
媒介访问控制器:主要实现GMII接口数据的协议检查、封装和解封装等,并对接收到的数据进行完整性检查,对发送的数据包添加校验码。
包处理器:实现了本设计中绝大部分的关于数据包的处理,接收端的数据包解析和匹配,IP数据包的校验码解析和检查,TCP/UDP数据报的报文解析,校验码计算和检查等。发送端实现了TCP数据包的大包分片,TCP和IP校验码的计算, VLAN的插入和替换。
DMA引擎:为了降低CPU处理网络数据的负载,除了在数据包处理部分硬件卸载了很多CPU的操作,本设计还具有自带DMA功能,此DMA可以节约SOC设计中额外的DMA引擎,大大节约硬件资源。
AXI控制器:AXI接口控制器根据收到的DMA读写请求,转换成AXI 4.0总线的读地址、读数据、写地址、写数据和写应答操作。
2 验证平台介绍
2.1 UVM通用验证架构介绍
UVC的验证架构主要由driver,monitor和sequencer组成。
2.2 总体验证平台的架构(图2)
本设计的验证环境见图 2所示,本验证环境由以太网UVC,AXI 接口UVC,APB接口UVC,设计的参考模型和数据处理结果检查器组成。
以太网UVC:用于驱动DUT的gmac输入端,并收集接收到的和发送出去的数据,分别送参考模型和检查器中。
AXI 接口UVC:用于驱动AXI接口信号,将各种以太网数据包转化成AXI4.0接口的时序并驱动给DUT,同时,收集发送出去的以太网数据包,送至参考模型中处理。
APB接口UVC:用于将所有对DUT的寄存器配置转化成DUT的寄存器接口时序,并驱动。
设计参考模型:本设计参考模型由接收端处理模型和发送端处理模型,以及寄存器模型组成。从Gmac接收的数据包,经过参考模型的处理,送至检查器。AXI端发送出来的数据包,也经过参考模型的处理,送至检查器。
检查器:用于检查接收端和发送端的数据,经过参考模型处理后,是否和DUT处理的结果一致。
Virtual Sequencer:用于调度各个UVC,分别按照验证的要求发送到对应UVC。
2.3上层集成的方法
本验证环境采用标准的UVM方法学推荐的方法,将每个接口的UVC分别开发,并最终集成到设计的顶层验证环境中。通过用虚拟sequencer来调度和发送各个不同UVC的sequence,来达到不同的测试用例的数据包发送。通过将参考模型和检查器分开,细分模块的功能,易于多人并行开发。最终整个顶层的验证环境集成全部的UVC,虚拟sequencer,参考模型和检查器。对于IP的使用者,只需要将IP的验证环境顶层实例化到上层的验证环境中去,可以集成IP的验证环境,并且可以重复利用开发好的sequence,用于做更高层的测试。
3 总结
本设计适用于基于AXI 4.0接口协议兼容的网络适配器,支持多种CPU卸载功能,极大的降低了CPU在处理网络数据的负载,让CPU有更多的时间和资源去处理其他数据。
验证环境采用目前业界最流行的SV验证语言和UVM的平台框架,UVM的便利性和易于集成性,使得本验证环境能够非常容易的被更高级别的验证环境所集成,极大的减少高层验证的工作量和时间,缩短产品研发周期。
参考文献:
[1]张军,常国锋.基于UVM的高效SOC验证环境[J].科技通报,第28卷第12期2012年12.