FPGA软件验证技术(上)
- 格式:ppt
- 大小:401.50 KB
- 文档页数:26
高性能M C U的F P G A原型验证系统研究与平台实现贺龙龙,杨立新,牛彬,黎金旺,张彦欣,李猛(北京智芯微电子科技有限公司,北京102200)摘要:本文研究并实现了一种基于C o r t e x A7核的高性能M C U在F P G A原型阶段的验证平台㊂该设计研究可以针对高性能M C U芯片或其F P G A原型验证阶段的软硬件验证环境快速搭建,通过交互式㊁软硬件协同的方式对M C U芯片各个模块功能进行实时㊁可靠的功能验证㊂高效的F P G A原型验证可以提高M C U研发速度㊁缩短验证时间㊁提高验证效率㊁及时发现芯片设计的缺陷㊁缩短芯片研发周期㊂关键词:F P G A原型;高性能M C U;芯片验证;F P G A验证中图分类号:T N492文献标识码:AR e s e a r c h a n d I m p l e m e n t a t i o n o f F P G A P r o t o t y p e V e r i f i c a t i o n S y s t e m f o r H i g h P e r f o r m a n c e M C UH e L o n g l o n g,Y a n g L i x i n,N i u B i n,L i J i n w a n g,Z h a n g Y a n x i n,L i M e n g(B e i j i n g S m a r t c h i p M i c r o e l e c t r o n i c s T e c h n o l o g y C o m p a n y L i m i t e d,B e i j i n g102200,C h i n a)A b s t r a c t:T h i s p a p e r s t u d i e s a n d i m p l e m e n t s a v e r i f i c a t i o n p l a t f o r m o f h i g h-p e r f o r m a n c e M C U b a s e d o n C o r t e x-A7c o r e i n F P G A p r o t o-t y p e s t a g e.T h e d e s i g n r e s e a r c h c a n q u i c k l y s e t u p t h e s o f t w a r e a n d h a r d w a r e v e r i f i c a t i o n e n v i r o n m e n t o f t h e h i g h-p e r f o r m a n c e M C U c h i p o r i t s F P G A p r o t o t y p e v e r i f i c a t i o n s t a g e,a n d p e r f o r m r e a l-t i m e a n d r e l i a b l e f u n c t i o n a l v e r i f i c a t i o n o f t h e f u n c t i o n s o f e a c h m o d u l e o f t h e M C U c h i p t h r o u g h i n t e r a c t i v e a n d s o f t w a r e-h a r d w a r e c o l l a b o r a t i o n.T h e e f f i c i e n t F P G A p r o t o t y p e v e r i f i c a t i o n c a n i m p r o v e M C U R&D, s h o r t e n v e r i f i c a t i o n t i m e,a n d i m p r o v e v e r i f i c a t i o n e f f i c i e n c y.I t c a n f i n d d e f e c t s i n c h i p d e s i g n i n t i m e a n d s h o r t e n t h e c h i p d e v e l o p m e n t c y c l e. K e y w o r d s:F P G A p r o t o t y p e;h i g h-p e r f o r m a n c e M C U;c h i p v e r i f i c a t i o n;F P G A v e r i f i c a t i o n0引言微控制单元(M i c r o c o n t r o l l e r U n i t,M C U)在嵌入式系统中占据核心位置㊂随着时代的发展,M C U正在从工业控制㊁汽车电子㊁家电行业过渡到智能行业及物联网行业,因此M C U将为嵌入式产品提供更高的性能㊁更多面化的功能㊂而M C U芯片的研发周期较长,在研发过程中,验证环节占的比重越来越大,对于高性能M C U来说更是如此,开发一种可以提高高性能M C U芯片在F P G A 阶段验证效率的验证平台,对于整个M C U芯片的研发具有极为重要的意义㊂1系统概述本文介绍了一套基于C o r t e x A7内核的高性能M C U在F P G A阶段的原型验证平台的设计和实现㊂该验证系统具有功能完善㊁可靠性高㊁易扩展㊁易移植等特点,可以提高M C U的验证效率,缩短芯片研发周期㊂通过移植后可以直接应用到芯片中,加快后期流片样品芯片的验证工作㊂以C o r t e x A7为核心的高性能M C U具有更强大的功能㊁更全面的外围设备接口㊁更高的总线速度㊁更大的存储空间,在特定的嵌入式应用和市场需求中具有强大的竞争力㊂本研究设计F P G A平台上所能实现的M C U模块包含U S B O T G2.0㊁E MA C㊁D D R㊁P WM㊁U A R T㊁T i m e r㊁R T C㊁N A N D㊁S P I㊁q S P I㊁WD T㊁G P I O㊁C R C㊁A E S㊁E C C㊁S H A㊁D MA㊂本设计的F P G A验证所使用的硬件由S2C 公司的S i n g l e E V7硬件板㊁U S B P H Y子板㊁GMA C P H Y 子板以及自研的通用接口子板组成㊂本F P G A原型验证的总体结构示意图如图1所示㊂2硬件环境搭建F PG A S i n g l e E V7L o g i c M o d u l e的主要架构如图2所示㊂该模块的I/O接口分为三种类型:D e d i c a t e d I/O㊁G T I/O㊁D D R3S O D I MM I/O㊂和本设计验证相关的I/O为D e d i c a t e d I/O和D D R3S O D I MM I/O㊂D e d i c a-t e d I/O通过S a m t e c120p i n C o n n e c t o r与各子板连接, D D R3S O D I MM I/O通过S O D I MM S o c k e t与内存条连接㊂图1 本F P G A原型验证总体结构示意图图2 S i n g l e E V 7L o gi c M o d u l e 通用架构3 软件架构设计与实现软件架构分为两部分,一部分为类B o o t R o m 的引导程序设计与实现,另一部分为测试程序t e s t c d l 的设计与实现㊂3.1 软件环境搭建基于C o r t e x A 7核的软件程序开发不能通过K e i l 软件实现,目前K e i l 所支持的芯片核不包括C o r t e x A 系列㊂本设计使用的软件环境为E c l i p s e ㊁g c c a r m ㊁C y g w i n 环境㊂E c l i p s e 为编程工具,g c c a r m 为编译器,C y gw i n环境具有在W i n d o w s 下使用g c c 进行编译的接口功能㊂将g c c a r m 和C y g w i n 安装后的目录配置到E c l i ps e 的B u l i d s o p t i o n 项的P A T H 中,在E c l i ps e 的t o o l c h a i n s 中选择C y gw i n G C C ,b u i l d e r 使用G n u M a k e B u i l d e r ㊂E c l i p s e 版本为官方网站的e c l i p s e c p p ma r s 2w i n 32x 86_64.z i p 或以上版本,另外E c l i ps e 需要J a v a 的支持,本设计使用的版本为j d k 12.0.1_w i n d o w s x 64_b i n .z i p ,安装完以上工具后Ec l i ps e 环境就搭建好了,但是需要对A r m C o r t e x A 7进行编译,所以还需要A R ME m b e d d e d 的工具链,本设计使用g c c a r m n o n e e a b i5_32016q 120160330w i n 32.z i p ,可以在官网上搜索下载,进行配置后使用㊂与工具配合的还需要C y gw i n 64,通过下载s e t u p x86_64.e x e 进行安装,并下载完整的p a c k a g e ,最后设置相关P A T H ㊂相关的P A T H 设置如图3所示㊂图3 软件环境P A T H 设置通过配置软件环境后,可以对C o d e 进行编译,完成编译后会生成对应的b i n 文件,完成环境搭建后的编译结果如图4所示㊂3.2 引导程序模块设计与实现本设计中的引导程序的作用与B o o t R o m 类似,用于初始化芯片时钟㊁堆栈㊁R AM 等操作,用于向验证程序t e s t c d l 跳转㊂本验证设计中引导程序的执行程序为0地址,验证程序使用的存储地址为0x 4600000㊂引导程序的流程图如图5所示㊂程序上电启动时先进行r a m ㊁s t a c k 等的初始化操作,关闭c a c h e 和MMU ,进行中断向量表的设置,关闭F I Q 和I R Q 中断,初始化O T P ㊁P L L ㊁WD T ㊁全局变量,最后程序跳转到t e s t c d l 中,运行t e s t c d l 的验证程序㊂本模块是为了体现高性能M C U 软硬件的完整性而图4软件环境配置成功后的结果图5 引导程序流程图设计的,如果只是为了验证也可以不要此引导程序,将该部分内容整合到t e s t c d l 的程序中㊂3.3 测试程序t e s t c d l 的架构设计与实现测试程序t e s t c d l 的主要功能是通过U a r t 2接收到测试指令进行指令分发,对应的子模块进行下一级菜单式的选择,最后通过模块特定的测试命令进行相应的功能测试,通过内部寄存器的状态位或者其他指示位的判断,程序通过打印验证结果信息,并返回上一级菜单㊂主程序框架图如图6所示㊂本测试程序软件引入程序模块化思想㊂将硬件驱动程序与测试程序c a s e 库分离,方便代码的移植和维护㊂在硬件驱动库及测试c a s e 代码中分别再次进行模块化处理,保证每一个I P 都有自己对应的软件模块㊂硬件驱动程序是硬件I P 的接口,测试程序c a s e 只有通过这个接口才能操作硬件动作,没有硬件驱动程序,硬件将无法工作㊂该部分程序可以封装库函数,可以A P I图6 主程序架构框图接口的形式提供给用户使用㊂测试程序c a s e 是基于驱动程序,针对各个模块的特定功能而开发的测试程序,对F P G A 设计中的各个模块进行功能和性能验证㊂该部分在实际使用时可以根据实际应用场景移植为应用程序㊂软件程序结构实际如图7所示㊂图7 软件程序结构实图由于F P G A 与实际电路存在区别,因此本验证系统在F P -G A 阶段验证的是数字模块,但一个良好的系统设计会在后期轻松加入模拟模块㊂本验证系统包含的数字模块包括U S BO T G 2.0㊁E MA C ㊁D D R ㊁P WM ㊁U A R T ㊁T i m e r ㊁R T C ㊁N A N D ㊁S P I ㊁q S P I ㊁WD T ㊁G P I O ㊁C R C ㊁A E S ㊁E C C ㊁S H A ㊁D MA ㊂各个模块的功能验证设计就不在本文论述了㊂通过此F P G A 验证系统的设计可以实现高性能M C U 的软硬件协同验证㊂高M C U 软硬件协同验证是在M C U 进行流片制造之前,验证嵌入式软件在硬件上是否正确运行㊁硬件是否能正常工作的一种过程㊂通过P C 进行测试程序的编写㊁编译,通过J l i n k 将编译后的程序下载到验证板的存储模块㊂C o r t e x A 7核读取并执行存储模块中的指令,控制各个模块的工作,验证人员此时可以对模块的设计是否符合要求进行判断㊂4 验证结果4.1 程序的编译下载建立正确的软件环境后,可以对所编写的验证代码和程序引导代码进行编译,并生成对应的b i n 文件㊂通过正确的J l i n k 连接后,J l i n k 可以在F P G A 检测到C o r t e x A 7核,并通过J T A G 接口与F P G A 建立连接㊂通过J l i n k 的l o a d b i n 命令将b i n 文件下载到对应的地址后,通过J l i n k 的 s e t p c 和 g命令使程序运行㊂J l i n k 的指令序列使用如下:"c o n n e c t ",e n t e r ,u n t i l l "C o r t e x A 7i d e n t i f i e d ."s h o w."l o a d b i n /b o o t _r o m _201115_4C D L .b i n 0"(f u l l pa t h )"l o a db i n /t e s t _cd l .b i n 4600000"(f u l l pa t h )"s e t pc 0""g"4.2 外设模块程序通过J l i n k 下载并执行后,程序正确运行后,会通过U a r t 2打印提示信息,由使用者通过U a r t 2进行各个模块的验证选择㊂通过串口查看程序正确运行的结果信息如图8所示㊂图8 通过串口查看程序正确运行的结果信息经验证,各个模块均能正常产生波形和数据,U S BO T G 2.0㊁E MA C ㊁D D R ㊁P WM ㊁U A R T ㊁T i m e r ㊁R T C ㊁N A N D ㊁S P I ㊁qS P I ㊁WD T ㊁G P I O ㊁C R C ㊁A E S ㊁E C C ㊁S H A ㊁D MA 这些模块I P 功能正常㊂通过串口的交互性输入及串口提示信息可以大大提高各个模块的验证效率㊂当出现错误或者指令参数出现问题后,能正常产生提示,功能验证通过后会有相应的s u c c e s s 提示,以WD T 为例的验证结果如图9所示㊂图9 W D T 为例的验证结果5 结 语针对传统的普通M C U 验证系统手段不易直接应用于高性能M C U 的验证,且验证方法繁琐㊁验证结果表现不明确㊁误差大,本研究提出并设计了基于C o r t e x A 7核的高性能M C U 在F P G A 阶段的原型验证系统的实现方法,以及该系统的编译调试方法㊂验证结果表明,采用本设计提出的编译调试方法容易对C o r t e x A 7核的芯片进行编程及下载,通过串口进行各个模块的命令式的输入,各模块验证的实现结果与预期相符,其验证的效率㊁验证结果的表达及精准度都有提高,最终实现了一套基于C o r t e x A 7核与F P G A 的高性能M C U 功能验证系统,具有一定的优势㊂参考文献[1]唐志敏.高端处理器芯片的技术趋势与可持续发展[J ].电子产品世界,2017,24(4):2729.[2]J a n i c k B e r g e r o n ,A n d r e w N i g h t i n ga l e .V e r i f i c a t i o n m e t h o d o l -o g y m a n u a l f o r s y s t e m v e r i l o g [M ].N e w Y o r k :S p r i n ge r S c i -e n c e +B u s i n e s s M e d i a I n c ,2006.[3]陈大科.一种采用F P G A 实现C o r t e x M 0I P 核验证的方法[J ].微电子学与计算机,2018,35(3):135139.[4]范学仕,刘云晶.一种M C U 可测性优化设计[J ].电子与封装,2018,18(8):2832.[5]王欣宇.M C U 技术及市场发展趋势分析[J ].集成电路应用,2019,36(10):13.贺龙龙(中级工程师),主要从事芯片集成电路的F P G A 验证和芯片样品验证系统的设计与实现㊂(责任编辑:薛士然 收稿日期:2020-09-28)意法半导体携手微软利用S T M 32C u b e 生态系统推进智能物联网设备开发意法半导体(S TM i c r o e l e c t r o n i c s ,简称S T )与微软签署促进智能家电控制器和物联网设备(I o T )开发的合作协议㊂使用S TM 32微控制器(M C U )的开发人员现在可以利用M i c r o s o f t A z u r e R T O S (实时操作系统)提供的即用型服务来管理应用程序㊂S TM 32C u b e 开发生态系统整合开发工具和软件,全程支持客户项目开发,完全支持M i c r o s o f t A z u r e R T O S ,实现无缝连接㊂在包括产品原型和量产商品在内的S TM 32微控制器上,合法部署的M i c r o s o f t A z u r e R T O S 映像免许可使用费㊂意法半导体微控制器事业部副总裁R i c a r d o d e S a E a r p 表示:S TM 32和A z u r e R T O S 这次合作是强强联合,可以让客户更好地释放创造力㊂有了我们的解决方案,客户在将高性能㊁功能丰富㊁可靠㊁安全的富有想象力的新型物联网产品推向市场时会比以往任何时候都更轻松㊁更快速㊂微软A z u r e I o T 业务集团副总裁S a m G e o r ge 表示: 将A z u r e R T O S 整合为智能互联设备设计人员的首选平台是我们的使命,作为M C U 市场的全球领导者,S T 是我们达成这一使命的重要合作伙伴㊂此外,用户可以通过S TM 32C u b e 开发工具访问与我们的A z u r e I o T 平台无缝集成的A z u r e R T O S ,这为I o T 端点和边缘设备上云变得更简单㊁便利㊂ 资源丰富的S TM 32C u b e 生态系统为用户提供免费的开发工具㊁软件模块和软件扩展包,可以处理从选择合适的设备㊁初始化项目,到代码编写㊁烧录㊁测试以及按需缩放和移植设计的所有开发工作㊂作为一个好评最多的M C U 开发生态系统,S TM 32C u b e 结合丰富的产品组合,是S TM 32M C U 产品家族成功的关键㊂目前S TM 32产品家族已有1000余款产品,涵盖各种处理性能㊁集成功能和封装尺寸㊂S TM 32C u b e 生态系统还具有各种嵌入式软件库,以及100多个由S T 和合作伙伴开发的软件包㊂现在A z u r eR T O S 的加入将进一步加快最终应用的开发速度㊂意法半导体和微软之间的合作使客户可以利用A z u r e R T O S 的丰富服务,满足轻巧的智能互联网设备的开发需求㊂双方合作包括内存占用空间很小的适合深度嵌入式应用的A z u r e R T O S T h r e a d X 实时操作系统,还包括F i l e X F A T 文件系统㊁N e t X 和N e t X D u o T C P /I P 网络协议栈以及U S B X U S B 协议栈㊂。
《基于深度学习的交通标志识别方法及FPGA验证》篇一一、引言随着人工智能技术的快速发展,深度学习在交通标志识别领域的应用逐渐受到广泛关注。
交通标志识别是智能交通系统的重要组成部分,对于提高道路安全、辅助驾驶和自动驾驶技术具有重要意义。
本文提出了一种基于深度学习的交通标志识别方法,并利用FPGA(现场可编程门阵列)进行验证。
二、交通标志识别的重要性交通标志是道路交通设施的重要组成部分,它们为驾驶员提供了重要的道路信息和交通规则。
然而,由于道路环境的复杂性和多变性,传统的交通标志识别方法往往难以满足实际需求。
因此,研究基于深度学习的交通标志识别方法具有重要意义。
三、基于深度学习的交通标志识别方法1. 数据集准备:首先,需要准备一个包含各种交通标志的图像数据集。
数据集应包括不同类型、不同大小、不同背景和不同光照条件下的交通标志图像。
2. 模型选择与训练:选择合适的深度学习模型进行训练。
常用的模型包括卷积神经网络(CNN)、循环神经网络(RNN)等。
通过大量数据集的迭代训练,使模型能够学习到交通标志的特征和规律。
3. 特征提取与分类:在模型训练完成后,可以利用模型的输出进行特征提取和分类。
通过提取交通标志的形状、颜色、纹理等特征,实现交通标志的准确识别和分类。
四、FPGA验证1. 硬件平台设计:为了实现基于FPGA的交通标志识别系统,需要设计相应的硬件平台。
包括FPGA芯片、图像传感器、存储器等组件的选型和连接。
2. 软件算法实现:在硬件平台的基础上,需要编写相应的软件算法实现交通标志识别的功能。
利用高级编程语言(如C/C++)对深度学习模型进行优化和加速,使其能够在FPGA上高效运行。
3. 验证与测试:通过实际道路环境的测试,验证基于FPGA 的交通标志识别系统的性能和准确性。
比较系统在不同光照、不同背景和不同速度下的识别效果,评估系统的实时性和鲁棒性。
五、实验结果与分析通过实验验证了本文提出的基于深度学习的交通标志识别方法及FPGA验证的可行性。
SRAM型FPGASEU缓解与验证技术分析郑㊀丹ꎬ胡胜旺ꎬ封㊀亮ꎬ崔红军(中国电子科技集团公司第三十二研究所测评中心ꎬ上海201808)摘㊀要:SRAM型FPGA产品在空间应用中易受单粒子翻转(SEU)影响而产生系统失效ꎮ分析了FPGA器件SEU的故障模式ꎬ并结合工程实践对三模冗余(TMR)技术㊁纠错编码(EDAC)技术㊁配置刷新技术三类FPGA单粒子效应缓解措施和基于故障注入的验证手段进行了研究和比较分析ꎬ阐述了不同技术的适用范围和优缺点ꎬ给从事空间应用系统的设计和测试人员提供参考ꎮ关键词:FPGAꎻ单粒子翻转ꎻ验证中图分类号:TP303㊀㊀㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀㊀㊀DOI:10.19358/j.issn.2096 ̄5133.2019.09.001引用格式:郑丹ꎬ胡胜旺ꎬ封亮ꎬ等.SRAM型FPGASEU缓解与验证技术分析[J].信息技术与网络安全ꎬ2019ꎬ38(9):1 ̄4ꎬ13.AnalysisofSRAM ̄basedFPGASEUmitigationandverificationtechnologyZhengDanꎬHuShengwangꎬFengLiangꎬCuiHongjun(The32rdResearchInstituteofChinaElectronicsTechnologyGroupCorporationꎬShanghai201808ꎬChina)Abstract:SRAM ̄basedFieldProgrammableGateArray(FPGA)productsarevulnerabletosingleeventupset(SEU)inspaceapplica ̄tionsꎬresultinginsystemfailure.ThispaperanalyzesthefailuremodeofSEUbasedonFPGAdevice.Combinedwithengineeringprac ̄ticeꎬthreekindsofFPGASEUmitigationmeasuresandfaultinjectionverificationmethodsarestudiedandcomparedforTripleModularRedundancy(TMR)technologyꎬErrorDetectingAndCorrecting(EDAC)technologyandconfigurationrefreshtechnology.Theapplica ̄tionscopeꎬadvantagesanddisadvantagesofthesedifferenttechnologiesarepresentedꎬprovidingreferencefordesignandtestpersonnelengagedinspaceapplicationsystem.Keywords:FPGAꎻSEUꎻverification0㊀引言现场可编程逻辑门阵列(FieldProgrammableGateArrayꎬFPGA)由于其灵活性和高计算能力ꎬ在嵌入式㊁网络㊁信息系统等领域中得到了广泛的应用ꎮ在航空航天应用中ꎬ传统上人们更倾向于使用对辐射高耐受性的反熔丝型FPGAꎮ近年来ꎬ由于低成本㊁高性能和飞行中的可重构性ꎬ基于静态随机存取存储器(StaticRandom ̄AccessMemoryꎬSRAM)的FPGA在空间嵌入式系统中的应用越来越受到关注ꎮ然而ꎬSRAM型FPGA由于其定义用户电路的配置存储区易受单粒子翻转效应(SingleEventUpsetꎬSEU)的影响ꎬ对辐射特别敏感ꎬ易引起系统失效ꎮ根据对商用飞机的问题统计ꎬ有20%的 不可重现 问题来源于SEU导致的软错误ꎮ2011年ꎬ美国联邦航空局DO ̄254认证文档第6节ꎬ明确要求在验证和确认阶段ꎬ能够验证目标系统SEU缓解对策的有效性[1]ꎮ2014年ꎬ波音等航电设备厂商ꎬ专门发布了针对SEU的航电设备安全性认证报告ꎮ美国联邦航空局(FederalAviationAdministra ̄tionꎬFAA)㊁欧洲航空安全局(EuropeanAviationSafetyAgencyꎬEASA)等监管机构也已经开始将单粒子防护设计和评价要求纳入工程化标准或适航要求ꎮ国内针对抗SEU设计需求分析和验证要求写入了国标㊁国军标规范:2017年5月31日发布的GB/T33781«可编程逻辑器件软件开发通用要求»ꎬ2018年8月1日发布的GJB9432«军用可编程逻辑器件软件开发通用要求»在需求分析阶段指出需针对抗状态翻转开展必要和可行性分析ꎬ并明确抗状态翻转技术方法ꎮ同期发布的GB/T33783«可编程逻辑器件软件测试指南»㊁GJB9433«军用可编程逻辑器件软件测试要求»在安全性测试中也明确要求 测试抗状态翻转措施的有效性 ꎮ本文基于SRAM型FPGA对三模冗余技术㊁纠错编码技术㊁配置刷新技术三类SEU缓解技术进行深入研究和分析ꎬ并从仿真验证与故障注入两种验证方法展开探讨ꎮ1㊀三模冗余技术三模冗余防护方法(TripleModularRedundan ̄cyꎬTMR)由于有工具支持㊁使用方便ꎬ因此是较常用的SEU缓解技术ꎮTMR建立硬件冗余结构ꎬ对关键电路复制三份ꎬ通过对三路输出结果表决来屏蔽任何一路的SEU故障ꎮFPGA厂商Xilinx推出RTL级的TMR设计工具TMRTool帮助实现基于综合后网表的三模冗余加固ꎮ目前国内可购买的TMRTool最高版本为9.2iꎬ支持XilinxV1~V5系列ꎬ适配ISE9.2及其之前的版本ꎮ此外ꎬ更简单经济的方式是使用带TMR功能的第三方综合工具ꎮ例如Men ̄torGraphics的综合工具PrecisionHi ̄Rel提供三模冗余功能ꎬ支持用户电路TMR插入ꎬ需做抗SEU加固设计的FPGA设计可通过关联第三方综合器实现TMRꎮLibero开发环境中适配Synopsys公司的Syn ̄plify/SynplifyPro综合器支持在模块或寄存器声明后添加三模冗余属性设置 /∗synthesissyn_radhardlevel="tmr"∗/ ꎬ完成模块级或寄存器级的三模冗余电路设计ꎮ考虑到资源开销ꎬ目前常用的三模冗余方式只对时序电路复制三份ꎬ三模前后对比如图1所示ꎬ图(b)中PS0_1㊁PS0_1_tmr2㊁PS0_1_tmr3为在图(a)基础上复制的三份电路ꎬPS0_1_maj为表决电路ꎮTMR对SEU引起的功能错误缓解效果较好ꎬ但逻辑资源开销较大ꎬ且三模冗余的引入对时序会造成一定影响ꎬ一般对关键寄存器或者关键模块进行三模冗余ꎮ对于空间应用领域使用较多的Xilinx器件ꎬ可通过厂商提供的TMRTool进行基于综合后网表的TMRꎬ结合刷新技术可防止SEU错误累积ꎻ对于Actel器件ꎬ可在RTL源码中添加TMR属性设定ꎬ实现综合后网表的三模冗余ꎬ后者在灵活性上更胜一筹ꎮ文献[2]分别基于Xilinx和Actel器件的TMR实现效果进行分析比较ꎮ2㊀纠错编码技术通过TMR加固的FPGA系统发生SEU后ꎬ关键电路的错误状态可能暂时不会传入下一级ꎬ但在系统长时间运行条件下ꎬ错误状态可能进行累积从而图1㊀基于时序逻辑TMR三模前后对比导致系统失效ꎮ引入纠错编码技术(ErrorDetectingAndCorrectingꎬEDAC)可对各模块关键信号实时监测ꎬ并将检测到的错误信号及时纠正ꎬ防止了空间辐照对系统的影响ꎮ具有单比特错误纠正㊁双比特错误检测(SingleErrorCorrection ̄DoubleErrorDe ̄tectionꎬSEC ̄DED)功能的汉明码EDAC技术已被证明是保护内部配置存储器和其他外部易失性存储器的有效方法ꎮ目前ꎬ用于加固的EDAC电路多通过线性分组码实现ꎬ在编码过程中生成待编码信息数据的校验位ꎬ校验位与数据一同存储ꎬ利用译码过程与编码过程中产生校验位的异或结果对错误进行纠正ꎮ从资源占用和性能考虑ꎬ相比于TMRꎬEDAC更适合防护RAM器件ꎬ纠错编码技术与TMR均属于用户电路加固技术[3]ꎮ文献[4]提出了TMR与EDAC相结合的技术ꎬ可纠正双比特错误ꎮ3㊀配置刷新技术针对SEU的SRAM型FPGA故障模式如图2所示:BRAM翻转故障将改变用户数据ꎬ可通过EDAC校验检测ꎻ组合逻辑故障㊁时序逻辑故障㊁互连关系故障将改变电路逻辑结果ꎬ可通过TMR方式缓解用户数据故障ꎮ但由于组合/时序逻辑及其内连关系由配置编程点决定ꎬ一旦配置区受SEU影响ꎬ直到原始配置位流重新载入到FPGA中用户数据才能恢复ꎮ且配置存储容量占FPGA存储资源的85%以上ꎬ因此需要结合配置刷新技术防止配置存储区的SEU效应ꎮ图2㊀SRAM型FPGA故障模式配置刷新是指系统配置成功后ꎬ按预定时间间隔或帧校验结果ꎬ将配置区数据重写入FPGAꎬ以消除已有SEU错误积累的方法ꎬ刷新的对象为FPGA内部CLB配置ꎮ配置刷新的基本流程为:回读数据帧 ̄>与原始帧数据比对 ̄>校正帧中的错误位 ̄>写回数据帧至FPGAꎬ如图3所示ꎮ图3㊀配置刷新流程㊀㊀配置刷新依赖于外部刷新或内部刷新电路ꎮ以Xilinx器件为例ꎬJTAG接口㊁SelectMAP接口为外部刷新ꎬ需要外部刷新电路通过FPGA外部引脚进行读写[5]ꎮ(1)使用JTAG接口占用外部引脚少ꎬ且具有其他配置接口中的最高优先级ꎬ甚至可以中断正在运行的重新配置过程ꎮ该接口以串行模式传输ꎬ最大速率为24Mb/sꎬ相对读取配置数据时间长ꎮ(2)SelectMAP为并行接口ꎬ读取配置数据时间短ꎬ占用FPGA外部引脚较多ꎬ对于高输出引脚利用率的应用是个缺点ꎮ(3)ICAP接口为内部刷新接口ꎬ使用内部刷新方式无需占用FPGA外部接口ꎬ读写配置寄存器时间短ꎬ配置速率可达3.2Gb/sꎮ目前ꎬ空间应用系统中常用的XilinxV2~V5系列器件多采用SelectMAP方式ꎬV7系列器件采用ICAP方式进行配置刷新ꎮ根据刷新方式不同ꎬ可分为全局复位刷新㊁盲刷新㊁配置回读刷新ꎬ其刷新过程和优缺点分析如表1所示ꎮ表1㊀配置刷新方式及优缺点刷新方式过程优点缺点外部刷新全局复位刷新定期拉低FPGA的复位管脚进行复位ꎬ实现上电重配置实现简单无纠错功能ꎬ且FPGA功能中断盲刷新/周期刷新从外部存储器读取原始数据 ̄>将数据按帧写入配置区 ̄>配置控制器执行配置刷新FPGA功能不受影响ꎬ控制逻辑简单需要外部存储区ꎬ不进行检测纠错ꎬ写入操作多ꎬ在写入过程中发生故障概率大配置回读刷新JTAG/SelectMAP顺序读取帧数据 ̄>执行CRC校验结果比对或直接比对 ̄>写回纠错后数据FPGA功能不受影响ꎬ发生出错时仅对单帧刷新纠错ꎬ写操作时间较短比盲刷新实现方式复杂ꎬ需要外部存储区内部刷新配置回读刷新ICAP通过ICAP接口回读帧数据 ̄>利用ECC算法检测错误 ̄>帧纠错 ̄>通过ICAP接口写回纠错后数据FPGA功能不受影响ꎬ无需外部存储器㊁配置控制器ꎬ不受外部引脚约束ꎬ读写配置寄存器时间较短内部刷新电路占用一定空间ꎬ依赖于刷新电路的稳定性4 验证技术验证SRAM型FPGA设计抗翻转措施有效性的手段通常包括辐射实验和故障注入ꎮ辐射实验成本高ꎬ实验周期长ꎬ目前国内能做模拟单粒子轰击的实验室不多ꎬ且辐射实验对发现问题难以定位故障点ꎮ故障注入方式具有周期短㊁成本低㊁可测试性高等优点ꎬ是评估SEU缓解措施有效性的一种重要手段ꎮ4.1㊀仿真环境下故障注入针对加固设计(如TMR)的仿真验证手段可通过门级仿真实现ꎬ门级仿真能够发现三模冗余失效㊁异常情况下状态机死锁㊁特殊用途寄存器被优化等问题ꎮ在针对综合后网表的门级仿真环境下模拟单比特或多比特翻转ꎬ能验证冗余设计的有效性ꎮ例如模拟关键模块的状态机寄存器出现单粒子翻转故障ꎬ通过仿真命令(如force)修改某一时刻的状态寄存器进入无效状态ꎬ查看仿真波形确定状态机是否能回到有效的状态ꎬ之后的状态机迁移是否正确ꎬ没有出现死锁ꎮ针对配置刷新的SEU缓解设计通常包括一个外部存储器存放原始配置位流ꎬ可参照图4的仿真测试验证框架对其进行验证ꎬ对加载控制㊁回读判定㊁刷新功能进行验证ꎬ仿真测试还能测试接口时序㊁重载时间㊁回读周期和刷新周期等ꎮ图中PROM仿真模型能模拟外部存储器(存放原始配置位流)的接口时序ꎮ配置区仿真模型存储配置数据ꎬ模拟selectMAP接口时序与被测件(DeviceUnderTestꎬDUT)交互ꎮ上电复位后ꎬDUT应能从PROM中读出配置数据实现加载过程ꎻ拉低PROG信号ꎬDUT应能从PROM中读出配置数据实现配置重载ꎮ图4㊀仿真测试验证框架FPGA特有的配置电路加载过程包括上电过程(设备上电㊁清配置区等)㊁配置位流加载过程(同步㊁设备ID检测㊁加载配置数据㊁CRC检测等)㊁启动过程ꎮ针对配置回读检测刷新设计的验证流程包括去除同步位㊁写回读指令㊁读取配置区位流和外部存储区原始配置位流㊁数据比较[6]ꎮ测试人员应关注回读配置数据与PROM数据一致时ꎬDUT是否不会重载ꎻ设置配置数据出现SEU错误ꎬ查看被测设计是否能检测到单比特或者多比特翻转ꎬ并在检测失败后能够控制接口时序进行PROM原始配置数据重载ꎮ4.2㊀配置存储器故障注入试验证工具XRTCFaultInjectorꎬ这也是当前业界使用的功能最齐全㊁最具代表性的FPGA故障注入测试系统ꎬ每分钟能自动测试1000+配置编程点ꎮ欧空局支持开发的FLIPPER工具能评估基于XilinxSRAM型FPGA的SEU和MBU(MultiBitsUpset)效应ꎮ此外ꎬ通过FLIPPER工具收集导致功能故障所需的配置存储器中随机注入故障概率分布ꎬ有助于定义配置刷新率ꎮ文献[7]中对FLIPPER与静态分析工具STAR进行实验对比ꎬ并提出可通过STAR工具产生用于故障注入的点ꎬ结合FLIPPER进行故障注入ꎬ评估加载用户应用的SRAM型FPGA设计SEU缓解措施是否有效ꎮ配置存储器故障注入已被广泛用于空间应用系统的失效率统计ꎬ以及加固设计的有效性评估上[8]ꎮ这类故障注入系统通常由三部分组成:用于控制故障注入过程的控制板(基于FPGA)㊁测试板(DUT)㊁用于在线调试的PCꎮ配置存储器故障注入流程如图5所示ꎮ图5㊀故障注入流程图配置存储器故障注入系统具有测试速度快㊁统计效率高等特点ꎬ但由于需要搭建额外电路结构ꎬ更适合于研制单位测试产品抗SEU特性ꎮ5㊀结论本文对针对易受软错误影响的SRAM型FPGA进行深入研究分析ꎬ阐述了三模冗余㊁纠错编码㊁配置刷新三种主流软错误缓解措施的原理和方法ꎬ以及基于故障注入的验证手段ꎮ随着FPGA在空间系统的广泛应用ꎬFPGA软件针对软错误缓解措施的技术和验证方法亟需加强ꎮ参考国内外研究现状ꎬ结合FPGA软件研制工作的实际特点ꎬ选择合理的加固或刷新手段ꎬ对于切实提高空间应用FPGA软件研制质量具有重要意义ꎮ参考文献[1]RTCA.DesignassuranceguidanceforairborneelectronichardwareꎬDO ̄254[S].WashingtonDC:RTCAIncꎬ2000.(下转第13页)dedSystems(SIES).IEEEꎬ2017[41]YITꎬZONGAꎬYUMꎬetal.Anti ̄debuggingframeworkbasedonhardwarevirtualizationtechnology[C].Interna ̄tionalConferenceonResearchChallengesinComputerScience.IEEEComputerSocietyꎬ2009.[42]QIZꎬLIBꎬLINQꎬetal.SPAD:softwareprotectionthroughanti ̄debuggingusinghardware ̄assistedvirtualiza ̄tion[J].JournalofInformationScienceandEngineeringꎬ2012ꎬ28(5):813 ̄827.[43]TANGZꎬLIMꎬYEGꎬetal.VMGuards:anovelvirtualmachinebasedcodeprotectionsystemwithVMsecurityasthefirstclassdesignconcern[J].AppliedSciencesꎬ2018ꎬ8(5):771.(收稿日期:2019 ̄06 ̄29)作者简介:吴极(1998-)ꎬ男ꎬ本科ꎬ主要研究方向:信息安全ꎮ王逍(1973-)ꎬ通信作者ꎬ男ꎬ硕士ꎬ讲师ꎬ主要研究方向:信息安全㊁网络安全ꎮE ̄mail:136868000@qq.comꎮ肖植灿(1997-)ꎬ男ꎬ本科ꎬ主要研究方向:信息安全ꎮ(上接第4页)[2]陈金秀ꎬ董超ꎬ王有政.空间FPGA系统的三模冗余设计[A].中国通信学会卫星通信委员会.第九届卫星通信学术年会论文集[C].中国通信学会卫星通信委员会:中国通信学会ꎬ2013:8.[3]李巍ꎬ刘栋斌.空间辐照环境下的FPGA可靠性设计技术[J].单片机与嵌入式系统应用ꎬ2011ꎬ11(10):12 ̄14. [4]于善鹏ꎬ占丰ꎬ姜连祥.基于FPGA的高可靠EDAC系统设计[J].质量与可靠性ꎬ2019(02):29 ̄33. [5]兰风宇.XilinxVirtex ̄7FPGA软错误减缓技术研究[D].哈尔滨:哈尔滨工业大学ꎬ2016. [6]祝周荣ꎬ姜丽梅ꎬ刘国斌ꎬ等.抗SEU动态刷新FPGA的仿真验证技术研究[J].数字技术与应用ꎬ2018ꎬ36(2):40 ̄42.[7]ALDERIGHIMꎬCASINIFꎬDᶄANGELOSꎬetalꎬSofterrorsinSRAM ̄FPGAs:acomparisonoftwocomplementaryap ̄proaches[P].9thEuropeanConferenceonRadiationandItsEffectsonComponentsandSystemsꎬRADECS2007ꎬ2007.[8]王忠明.SRAM型FPGA的单粒子效应评估技术研究[D].北京:清华大学ꎬ2011.(收稿日期:2019 ̄06 ̄14)作者简介:郑丹(1985-)ꎬ通信作者ꎬ女ꎬ硕士ꎬ高级工程师ꎬ主要研究方向:嵌入式软件与FPGA测试技术㊁FPGA设计验证体系ꎮE ̄mail:315054090@qq.comꎮ胡胜旺(1978-)ꎬ男ꎬ硕士ꎬ高级工程师ꎬ主要研究方向:嵌入式软件测试技术㊁FPGA设计验证体系ꎮ封亮(1977-)ꎬ男ꎬ学士ꎬ高级工程师ꎬ主要研究方向:软件测试方法与技术㊁软件测试项目管理ꎮ。
FPGA核心知识详解(3):那些让FPGA初学者纠结的仿真核心提示:对于FPGA初学者而言,如何正确了解并理解FPGA的仿真是关键。
应广大FPGA初学者和爱好者要求,编辑根据多名在FPGA领域有过多年工作经验的前辈介绍,特此为大家整理并分享以下关于FPGA各种仿真的简洁介绍。
若大家有任何需要补充的或本文有任何不当之处,欢迎在评论中加以说明。
同时也可加入FPGA技术交流群(QQ:263281510)跟大家一起探讨,更欢迎大家加入论坛参与互动。
初学者学习FPGA,必定会被它的各种仿真弄的晕头转向。
比如,前仿真、后仿真、功能仿真、时序仿真、行为级仿真、RTL级仿真、综合后仿真、门级仿真、布局布线后仿真等。
Quartus和Modelsim软件的仿真形式Quartus II有两种仿真形式:1、功能仿真;2、时序仿真。
Quartus II调用Modelsim的两种仿真形式为:1、RTL级仿真;2、Gate-level仿真。
以下内容均经过资料查证,详细如下:理解方法一当用quartus进行仿真时,分为功能仿真(al)和时序仿真(TIming);当用Modelsim-Altera时,分为功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。
其中,功能仿真又称为前仿真,布局布线仿真又称为后仿真。
注:此处的功能仿真(RTL)与1中的功能仿真(al)是不一样的,前者是HDL级仿真,后者是门级网表的功能仿真。
(1)当在quartus中调用Modelsim-Altera进行RTL仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:a)编写源文件和测试文件;b)Assignment-》setTIng-》simulaTIon-》不选中run gate leve simulaTIon.。
..。
,选中nativelink-》添加测试文件,填写文件名;c)start analysiselabration;。
基于DO—254的FPGA设计验证方法学的研究作者:史光丽段煜来源:《电子技术与软件工程》2015年第21期摘要民用航空机载设备中复杂电子硬件开发过程必须按照DO-254标准进行执行,但在DO-254标准中对复杂电子硬件开发过程如何执行没有具体说明。
本文根据DO-254的要求,结合目前业界相关开发经验,简要介绍了符合DO-254适航审定各阶段要求的FPGA设计流程,以及在FPGA设计及验证中提高效率的先进方法。
【关键词】RTCA/DO-254 复杂电子硬件 FPGA RTL1 背景介绍随着硬件设计越来越复杂,验证难度也随着越来越大,联邦航空管理局(FAA)、欧洲航空安全局(EASA)和世界其他地区认证机构率先开始援引DO-254文件,使其作为针对可编程逻辑器件(如:PLD、FPGA和ASIC)开发的策略。
这使得在数年间,DO-254在商业航空项目中得到广泛的应用。
随着近年FAA/EASA正式强制要求,为民用商业航空系统提供飞行硬件的公司现在必须遵照DO-254标准开发复杂电子硬件。
DO-254标准专注于设计保证(包括质量、可追溯性和严格的配置管理),它会对开发流程和设计流程产生深远的影响。
许多公司正在努力理解标准,并占用更多的开发资源,以实现他们硬件的目标认证级别。
2 FPGA设计流程概述在DO-254中关于复杂电子硬件在硬件生命周期中的活动归结于四个过程,分别是:计划过程、设计过程、生产转换过程及确认和验证过程。
虽然在DO-254中对过程中如何进行活动的没有说明,但要求所有活动均输出相应文档用于认证机构进行评审。
计划过程:根据DO-254认证要求,拟定硬件合格审定计划(PHAC),对系统的功能构成进行描述。
针对相应研制保障等级A-C,采用不同的冗余设计,对系统的功能失效进行保护,同时对开发环境、系统测试、不同开发阶段的硬件设计工作、不同阶段的转换条件进行描述,并对后续阶段出现的衍生需求做出规定。
FPGA Serdes信号测试的方法和应用何先贵发布时间:2021-09-30T06:14:31.753Z 来源:《中国科技人才》2021年第19期作者:何先贵[导读] 本文描述了采用FPGA高速接口眼图测量的方法和性能判定标准。
京信通信网络网络系统股份有限公司广东广州 510000摘要:本文描述了采用FPGA高速接口眼图测量的方法和性能判定标准。
适用于采用Intel(原Altera)或者Xilinx FPGA作为主芯片,出Serdes接口,可以是光口或者是JESD204B接口。
在本中分别对采用Serdes接口进行通信的设备,就其光口稳定性和性能参数进行扫描,通过眼图绘制的方法直观判断信号质量情况。
引言在实际项目中,经常遇到大于10G的Serdes高速信号,如何在研发过程中判断设计的板卡是否能满足高速信号的传输需求是一件比较棘手的问题,而同时高速测量设备也是相对比较紧缺的设备,本文旨在提出使用FPGA厂家的高速信号工具来评估我们新设计板卡的高速信号是否符合要求,以及如何调整最优参数以符合要求。
1测试目的本文主要是列出只采用FPGA自带眼图测量工具,实现以下几个目标:1)寻找一个新设计板卡的光口的最优PMA参数;2)评估一个新设计板卡的光口眼图是否符合要求;3)评估一套现有收发系统的光口眼图及误码率是否符合要求;4)寻找一套现有收发系统的光口的最优PMA最优参数。
本文是基于FPGA自带的模块进行测试,所以测试点图1中A点和D点,可以比较真实反映最终实际数据采样信号的情形。
图2 系统测试框图需准备如下物料:待测试板卡 1块;标准板卡1块;光模块若干;光纤线若干;电脑 2台;下载器2个。
3 测试方法和步骤FPGA自带的高速测量软件主要有两种功能:遍历PMA参数输出报告,眼图绘制。
我们主要通过遍历PMA参数功能来获取输入或者输出的最佳值,通过眼图绘制功能来确定在最佳参数情况下,信号是否符合要求。
本章首先列出以下几个基本测试步骤集合:1)高速光口发送的最佳参数的确定;2)高速光口接收的最佳参数的确定;然后基于以上的测试步骤集,组合出待测试板卡的高速光口接收测试验证步骤和发送测试验证步骤。
FPGA简介FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
背景目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
CPLD与FPGA的关系早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA 包括了一些相对大数量的可以编辑逻辑单元。
CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。
CPLD是一个有点限制性的结构。
这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。
电气技术实践可编程逻辑器件FPGA应用开发实验报告2016年12月目录一、实验目的二、实验要求三、实验内容四、实验代码及实验结果(1)4位二进制加法计数器(2)半加器(3)LED静态显示(4)38译码器(5)点阵扫描显示(6)步进电机状态机五、实验感想六、学习并使用FPGA的心得与体会七、电气技术实践总结一、实验目的1、熟悉使用可编程逻辑器件(Altera公司FPGA Cyclone系列EP1C6Q)。
2、熟悉使用硬件描述语言VHDL。
3、掌握FPGA集成环境(Altera公司FPGA QuartusII 开发流程。
4、熟悉使用核心目标系统板与接口电路等工作原理及其功能模块绑定信息。
5、熟悉并掌握下载线方式和下载文件的选择。
二、实验要求1、学习并掌握文本、图形等输入和时序、功能仿真方法。
2、学习并熟悉门电路、组合电路、时序电路等单一模块功能。
3、学习并设计各种不同状态机逻辑功能。
4、学习并设计由单一模块→较多功能模块集成→系统集成方法。
5、学习并选择多种模式显示(发光二极管显示、米字型数码管显示、七段数码管→动态扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、LCD液晶显示各种字符和图形或静止或移动等方式)。
6、根据自已的兴趣和愿望,可从以下给定的实验目录中选取或自已设定功能题目。
7、实验数目没有要求,关键是看质量,是否是自已编写、调试、实现。
三、实验内容1、按指导书集成开发环境章节操作实现文本编程实例1和图形编程实例2全过程。
2、任选门电路、组合电路、时序电路实验各完成一个其逻辑功能,其实现方案自已规定。
在进行FPGA目标器件输入和输出引脚绑定时,输入引脚绑定高/低电平、单脉冲、各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED点阵等显示模式。
3、在完成1位十进制计数器的基础上,可增加完成2或3等多位十进制计数器逻辑功能并用多位七段数码管来显示。
4、根据状态机工作特点,设计一个有一定功能效果的例程。
芯片设计中的自动化验证技术有哪些在当今科技飞速发展的时代,芯片作为各种电子设备的核心组件,其性能和可靠性至关重要。
而芯片设计是一个极其复杂且精细的过程,其中自动化验证技术的应用对于确保芯片的正确性和可靠性起着关键作用。
首先,形式验证技术是芯片设计中一种重要的自动化验证方法。
形式验证主要包括等价性检查、模型检查和定理证明。
等价性检查用于比较两个设计描述在功能上是否等价,例如在对芯片设计进行优化或修改后,通过等价性检查可以确认修改后的设计与原始设计在功能上没有差异。
模型检查则是对设计的状态空间进行遍历,以检查是否满足特定的性质或规范。
这对于发现设计中的潜在错误和漏洞非常有帮助。
定理证明则是通过数学推理来证明设计的正确性,虽然其复杂度较高,但在处理复杂的逻辑问题时具有独特的优势。
功能仿真技术也是芯片设计中常用的自动化验证手段之一。
通过建立芯片的功能模型,输入各种激励信号,观察输出结果是否符合预期。
这种技术可以在设计的早期阶段发现功能上的错误,并且能够对不同的设计方案进行快速评估和比较。
为了提高仿真的效率,还发展出了基于事务级的仿真技术,能够在更高的抽象层次上进行仿真,大大缩短了仿真时间。
静态时序分析是芯片设计中保障时序正确性的关键自动化验证技术。
芯片中的信号传播需要在一定的时间范围内完成,否则就会导致功能错误。
静态时序分析通过对芯片的电路结构和逻辑关系进行分析,计算出信号的传播延迟,检查是否满足时序约束。
与动态仿真不同,静态时序分析不需要输入激励信号,能够快速地对整个芯片的时序进行全面检查。
硬件加速验证技术在面对大规模芯片设计时具有显著优势。
常见的硬件加速验证平台包括 FPGA 原型验证和硬件仿真器。
FPGA 原型验证将芯片设计映射到现场可编程门阵列(FPGA)上,以接近实际芯片的运行速度来验证设计的功能。
硬件仿真器则是专门设计的高速验证设备,能够提供比软件仿真更高的性能,加速验证过程。
基于断言的验证技术在芯片设计中也逐渐得到广泛应用。