基于抗辐照xxMHz芯片仿真验证技术研究
2018-05-14何彩霞夏开华王巍韩学涛梁富
何彩霞 夏开华 王巍 韩学涛 梁富
摘要:本文设计了基于抗辐照xxMHz芯片全套仿真验证流程,包括FPGA代码验证、芯片板级验证和抗辐照试验验证。首先重点介绍了FPGA代码验证,从验证在现代IC流程中的重要地位开始,到验证的基本方法,仿真验证平台的搭建,FPGA后端验证,提炼了高效通用的仿真验证平台的搭建。其次简单介绍了芯片板级验证。最后简单介绍了抗辐照试验验证。
关键词:抗辐照芯片;FPGA代码验证;芯片板级验证;抗辐照试验验证;高效通用的仿真验证平台
中图分类号:TP332 文献标识码:A 文章编号:1007-9416(2018)02-0101-03
1 引言
驗证技术在集成电路设计中非常关键,并贯穿于整个设计过程。随着集成电路复杂度的提高,验证工作的复杂度和工作量呈指数上升,能否及时发现设计中存在的错误对保证设计正确性和缩短芯片上市时间至关重要[1]。
xxMHz芯片是我所第一颗数字信号处理,算法复杂,宇航级的芯片。由于国外对宇航级芯片的禁运,SRAM型FPGA器件在空间环境应用中极易受到高能粒子的影响,产生单粒子翻转(SEU),从而影响星载设备的正常工作,长期的研究证明,SRAM型FPGA受单粒子翻转影响的区域最主要为加载存储区,大概占FPGA内部存储单元的98%以上。数字ASIC芯片无加载存储区,受SEU的影响较小,因此数字ASIC芯片的需求越来越迫切。芯片算法是已有的,在多个课题中都应用过,其算法复杂,接口众多,若做成芯片,出错的概率大大增加,有些错误可能引起灾难性的后果,如奔腾芯片中一个算术设计错误使得Intel公司损失5亿美元。硬件设计不像软件设计容易挽回Bug的损失。因此,快速、系统、完备的验证体系是保证芯片设计投片成功的关键。研究新的、高效的验证方法,建立完善通用的验证平台对xxMHz芯片的验证至关重要。
2 FPGA代码验证
一个芯片制作的成功与否,FPGA代码验证起到了核心的作用,故详细介绍。
2.1 验证在现代IC/FPGA流程中的位置
现代IC(Integrated circuit,集成电路)前端的设计流程如图1所示。IC设计是从一份需求说明或者任务书开始的,这份需求来自于分机负责人。从任务书开始,IC工程师(或FPGA工程师)会把他们细化为特性列表。设计工程师根据特性列表,将其转化为设计规格说明书,详细阐述自己的设计方案,详细描述清楚功能,性能,接口属性及时序,可靠性安全性要求等。验证工程师根据特性列表,写出验证说明。验证说明书包含仿真验证计划、仿真验证说明和仿真验证报告,在验证说明书中,会明确如何搭建验证平台,如何保证验证完备性,如何测试每一条特性,如何测试异常情况等。
当设计说明书完成后,设计人员开始使用Verilog/VHDL将特征列表转为RTL代码,而验证人员则开始使用验证语言(System Verilog,目前最先进的FPGA仿真验证语言)搭建验证平台。验证人员开始验证这些代码,通常被称为DUT(Design Under Test)的正确性,验证主要保证从特征列表到RTL转化的正确性,包含但不限于以下几点[2]:
(1)DUT的行为表现是否与特征列表中要求的一致。
(2)DUT是否实现了所有特征列表中列出的特性。
(3)DUT对于异常状况的反应是否与特征列表和设计规格说明书中的一致。
(4)DUT是否足够稳健,能够从异常状态中恢复到正常的工作模式。
2.2 验证基本方法
FPGA仿真验证主要有三种方法[3]:
(1)黑盒(Black-Box)验证。黑盒验证法不需要了解目标设计的内部结构和实现方法,仅通过目标设计的外部接口和整体特征,对目标设计进行仿真验证。黑盒验证法的优点是仿真验证代码不依赖于目标设计的内部结构,可以直观的反应设计要求。缺点是无法做覆盖率分析,会导致代码的某些BUG不会被发现。
(2)白盒(White-Box)验证。白盒验证法需要详细了解目标设计的内部结构和实现方法,其仿真代码与目标代码紧密联系,具有完全可控性和可观察性。优点是百盒验证法有利于定位和分析仿真验证过程中出现的错误,做覆盖率分析,测试具体全面。缺点是对验证人员要求高,工期长。
(3)灰盒(Grey-Box)验证。灰盒验证法是黑盒验证法和白盒验证法的折中。优缺点介于二者之间。
介于三种验证方法的优缺点,抗辐照xxMHz芯片代码采用白盒验证。
2.3 测试平台的搭建
传统验证方式,设计人员送入激励,观察波形,来判断设计的正确性。下面介绍一种新的、高效的、通用的仿真验证平台。仿真验证平台会把整个待测设计包围起来,如图2所示。
验证平台模块里有很多的总线功能模型(BFM),即验证平台构件。如果实际应用中设备被连接到AMBA、USB、PCI和SPI总线上,那么就必须在验证平台中建立能够产生激励并校验响应的等效模型,如图3所示。这些构件并不是带有细节的可综合模型,而是遵循协议并且执行速度更快的高层事务处理[4]。
根据项目的实际情况搭建完整的验证平台,完整的验证平台如图4所示,包括激励发生器、参考模型和检查器:
(1)激励发生器负责待测设计的输入;
(2)参考模型用于计算输入激励的预期结果;
(3)检查器用于收集待测设计和参考模型的输出,并进行比较。
验证平台设计说明中,应说明验证平台中各构件的功能,以及各构件对应的被测信号,仿真输入激励和验证比较项,如表1所示。
xxMHz芯片的外围接口有工作时间,AD接口等,具体外部接口见图5。和图4完整平台的关系是:仿系统时钟、仿AD模块、仿节拍模块、仿配置系统对应的是激励发生器;仿SRAM对应的是参考模型;仿PDW接收、仿采集数据传输、仿测向模块对应检查器。每一个激励做成单独的模块,利于以后同种类型的测试调用和复用。
2.4 FPGA后端验证
流程如下:FPGA库->fundary库->综合网表->仿真(无时序)->布局布线(人工)->后仿(布线图有延时)->芯片制作厂去流片->晶圆->封装。封装先进行塑封,后进行陶封。若芯片在塑封测试合格的话,即芯片的功能和性能满足需求,不需要更改后,让芯片进行下一步的陶封。若芯片测试不合格的话,这时候就停止芯片的后续制作,开始对问题的追溯和改正,进行下一轮的芯片制作,在芯片塑封开始测试,达到节约钱的目的,也是流片中很重要的一环。
3 芯片板级验证
测试板如图6所示,红色框框内的是塑封的xxMHz芯片,测试板完全是根据芯片功能制作的,同时参照了航天以往的板子,外围设备完全一致,保证芯片的可移植性。xxMHz芯片在塑封时发现了一个功能错误,每2048个点的原始数据出现一次0点,错误。故在塑封结束第一次制作,经过整改代码后,第二次制作才成功的。
4 抗辐照试验验证
在兰州中科院近代物理研究所进行的单粒子辐照试验。辐照试验全景图如图7所示。
芯片分三个阶段进行单粒子实验,总共注入超过730万个Xe粒子。在低剂量(2000倍注量率)条件下,芯片无故障,功能运行正常。在高剂量(8000-12000倍注量率)条件下,芯片出现单粒子翻转导致的功能性错误,但芯片可继续运行并正确输出结果。在极高剂量(15000倍注量率)情况下,芯片出现功能中断,程序结果出错,并且无法继续运行。相对于航天产品部FPGA芯片在20倍(无配置刷新等抗SEU加固措施)和500倍(有配置刷新等抗SEU加固措施)注量率条件下出现功能性错误的结果,xxMHz芯片的抗单粒子辐照效果明显提升。
5 结语
本文针对抗辐照xxMHz芯片仿真验证技术进行了研究,从FPGA代码验证到芯片板级验证最后到抗辐照试验验证,全面阐述了抗辐照xxMHz芯片验证的过程。由于FPGA代码验证的重要性,在整个流片中起到决定性的作用,故重点介绍了FPGA代码验证,此验证平台后续在上百个FPGA仿真验证中经过了验证,达到了通用高效效果,效果显著好用。
參考文献
[1]胡建国.高性能微处理器的验证技术研究[D].国防科学技术大学研究生院,2004.
[2]张强.UVM实战[M].机械工业出版社,2016.
[3]任晓东,等.CPLD/FPGA高级应用开发指南[M].电子工业出版社,2003.
[4][美]克里斯斯皮尔著.SystemVerilog验证[M].科学出版社,2012.