FPGA设计开发与验证解决方案立项申请通用公开Word文档格式.docx
《FPGA设计开发与验证解决方案立项申请通用公开Word文档格式.docx》由会员分享,可在线阅读,更多相关《FPGA设计开发与验证解决方案立项申请通用公开Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
仿真调试纠错过程变得自动化,缩减仿真所用时间,提出可疑点的建议值
利用机器学习和数据分析来加速时序收敛和设计优化。
2.实验对象
2.1实验的主要目标和原因
当前FPGA开发流程,如下图:
当前阶段,随着FPGA的功能越来越强大,设计规模也越来越大,设计上逐渐向ASIC设计流程靠拢。
开发流程上,无论是ASIC设计还是FPGA设计都逐渐向ESL级别迁移。
目前主流的ESL设计流程中,主要有Model语言和C/C++语言作为设计输入。
如同过去从原理图设计转化到RTL设计一样,未来设计会大量迁移到ESL设计流程上,比如XILINX就在大力推广其C/C++自动生成RTL的HLS工具,Matlab也推出其模型自动生成RTL代码的工具。
如何保证转换的正确性,一致性,需要有形式化的验证工具来保证其转换的正确性和一致性。
代码静态分析在当代FPGA流程中起到越来越重要的作用。
其可以提高代码的可靠性,减少设计迭代,加速产品的上市时间。
随着代码量的增加,调试所占用的时间大幅度上升,迫切需要自动化的辅助工具,帮助工程师快速的定位设计中的问题。
FPGA速度越来越快,功能越来越复杂,时序分析成为工程师无法绕过的一道坎,如何做到快速的时序收敛和设计优化也是一个重要的问题。
综上所述,FPGA设计面临着如此多的问题,北京航泰信科科技有限公司精选全球范围内各种优秀的EDA工具组成了一个完整的解决方案,用于解决上面所提到的诸多问题。
如下为航泰信科的完整方案。
3.对同类产品的评估
对于FPGA设计开发和验证,主要由厂商的工具和特定的点工具组成,理论上厂商的工具(如XILINX的ISE和Vivado,Altera的QuartusII等)即可以完成完整的设计开发流程,但是由于FPGA开发的复杂性,在一些特定的流程上需要引入一些专业的工具来提高设计的效率。
本FPGA设计开发与验证解决方案,主要由厂家的工具(ISE,Vivado,QuartusII)作为主流程,针对FPGA开发过程中的难点,提供组合的工具来解决,总体上提供了针对FPGA设计的完整的解决方案。
此方案具有极大的先进性,提前布置ESL的设计流程,让投资更加有效。
同时紧扣FPGA开发的难点,具有极强的针对性。
目前其他厂商都没有办法提供全套的解决方案。
XILINX和Altera的代理商只能提供他们自己的工具,其他的厂商也都是提供单个点的工具解决方案。
4.建设方案
4.1Vivado/ISE/QuartusII
Vivado/ISE/QuartusII的主要功能包括设计输入、仿真、综合、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。
4.2ESL流程
当前设计逐渐迁移到ESL流程上,设计输入不再是单纯的RTL,同时需要支持高层次设计语言作为输入。
本建设方案支持两种高层次设计输入。
Model语言设计输入:
支持Matlab/Simulink的模型语言作为设计输入,直接转换成可读的RTL代码。
C/C++语言设计输入:
支持C/C++作为设计输入,直接转换成RTL代码。
4.3C/C++与RTL的形式化验证工具
随着FPGA设计逐渐迁移到ESL级别,C/C++作为设计输入将变得流行,XILINX提供了HLS工具来将C/C++的代码自动转换成RTL。
作为此流程,需要有形式化验证工具来保证转换结果的一致性和正确性。
本方案形式化验证工具的原理,是将C/C++和RTL分别编译,变成表达式,根据程序语言的语义,建立形式化模型,并利用多种数理逻辑/代数方法,证明两个模型相等:
证明成功:
则两个模型相等。
即:
对于所有可能的输入,两个模型输出都相同。
证明失败:
会给出导致不等的反例(输入激励),用于侦错(debug)。
(1)C/C++编译器
支持标准的C/C++语言。
编译器把程序首先转化成一种内部定义的中间表达,然后等价变换成形式化模型,该模型在功能上与最初的C/C++程序等价,表达方式上区别于过程式语言描述,是纯粹的数学表达式。
编译器支持高层次综合,支持对循环等特殊语言结构的定制综合。
支持C/C++语言的断言。
对于所有用户嵌入源程序的断言,可以自动尝试去证明,如果证明失败,会给出相应的程序输入用于侦错。
这对黄金参考模型的正确性提供了有力保障。
(2)Verilog编译器
Verilog前端支持1995/2001Verilog标准。
前端经过形式化的方式综合后,跟据RTL设计的延迟信息,经过符号仿真处理,将设计转换成一种内部定义的中间表达。
该表达随后被翻译成统一的形式化模型。
支持word-level的综合和符号仿真,可以有效防止由于综合到网表而带来的巨大内存消耗,同时,设计模型紧凑的表达也使求解速度大大加快。
(3)后端求解引擎
后端形式化求解引擎的输入是两个形式化模型。
专有算法会建立两个模型之间的对应,调用多种优化技术,对其求解。
自定义内部表达支持语言的紧凑表示,可以支持上近上百万行的程序表示。
优化形式化验证引擎可以求解千万级节点数的问题求解。
逻辑错误大部分在10分钟之内找到;
对于浮点优化的引擎可以完成大部分浮点运算的自动证明。
4.4FPGA静态代码分析工具
在当前FPGA代码越来越复杂的情况下,对代码做静态分析成为十分重要的一环。
很多的设计问题,其实就是由很小的错误所导致,但是一旦走完综合布局布线之后再发现的话,就会浪费大量的时间,最好迭代可以在代码静态分析阶段就完成。
这样就可以节省大量的时间。
除此之外,在代码的继承性,规范性上也必须提出一定的要求,这样有助于保证代码的质量和可靠性。
本方案提供的代码分析工具主要针对于FPGA设计,具有如下特点:
提供众多规则集的代码检查功能。
规则集包括RMM,STARC,DO-254,Ultrafast(此规则集是XILINX的最新方法学)
提供丰富的CDC检查功能。
除了支持普通的CDC检查之外,使用其Greycell专利技术可以解决跨IP之间的CDC检查,突破了市面上所有其他工具只能把IP当成黑盒处理的传统方法。
可以自动生成伪路径和多周期路径的SDC约束文件。
提供综合前的最长路径分析。
提供丰富的FSM分析
是FPGA静态代码分析的Sign-off工具。
4.5RTL自动纠错工具
在FPGA代码越来越复杂的今天,Debug所花费的时间越来越多,已经成为RTL验证的瓶颈,而且以每年26%的速度增加,如何快速纠错也成为一个必须考虑的问题。
本解决方案提供一款RTL自动纠错工具,可以节约60%的纠错时间。
用户只需要告诉工具,什么时间,什么信号,以及该信号的期望值,那么工具自动在允许纠错的时间内对导致该信号错误的所有路径进行形式化处理,排除不可能的出错的路径。
并且给出可疑点及如何处理的方法。
传统纠错需要分析源代码和波形图,全程手动往回追寻错误源头
使用自动纠错工具,全自动分析错误来源,错误生成过程和路径,同时提出修改建议。
其主要性能指标:
在源代码和电路图中回放错误生成路径
在电路图和波形表中回放修改的效应
帮助用户决定在什么地方,什么时间和怎样作出修改
自动查找RTL中的可疑点
在波形图中显示模拟数值和建议数值
用生成路径分析来追踪可疑点
4.6TMR工具
在航空航天等特殊场合,需要采用一些特殊的技术,TMR就是其中最重要的一种。
本方案提供的TMR工具是在NASA的指导下开发,引入一流的,基于综合的减少射线影响的解决方案,目的是减少功能性错误的风险,包含由SEU(singleeventupset)引起的软错误,和由SET(singleeventtransient)导致的中断。
产品支持XILINX和Actel的反熔丝,基于Flash和基于RAM的FPGA。
设计者可以采用三种不同的TMR:
LocalTMR,DistributedTMR和GlobalTMR.
自动生成三模冗余结构电路,有效降低人工插入相关电路的复杂度与危险性;
支持方便灵活的设计约束方式,可以通过层次化浏览器、原理图、图形化窗口、命令行以及约束文件等多种方式加载约束条件;
交互式静态时序分析,支持SDC标准约束格式与多时钟电路分析,支持Xilinx的DCM(数字时钟管理),支持增量方式分析;
降低风险提高低等级芯片的抗单粒子翻转能力;
支持FPGA资源编译后重新分配,使得用户可以随意调整各种资源的比例;
支持的厂商列表:
4.7时序收敛和设计优化
在FPGA设计中,时序分析是很重要的一环,同时时序分析也是FPGA设计的一个很大的挑战,设计师必须在时序收敛,面积优化和功耗分析上做出取舍。
同时当前的设计越来越大,时序往往是决定程序成败的关键因素。
当前时序分析的方法是人工分析代码,这需要有相当丰富的经验,或者是尝试不同的设置参数,但是这样又会花费大量的尝试时间。
本方案提供一款工具可以加速时序收敛。
其特点是不用修改代码,利用机器学习和大数据分析来解决时序收敛和设计优化。
本工具和ISE,Vivado,QuartusII无缝接口,利用这些厂家工具的软件选项,做各种组合,通过其特有的机器学习算法,自动寻找最优的时序选项策略,整个过程中不需要修改代码。
4.8FPGA技术支持服务
综上所述,航泰信科从工具角度提供了FPGA设计开发和验证的完整的解决方案。
但是大家都知道,工具只是辅助手段,FPGA设计还面临着大量的开发难题。
FPGA是世界上更新最快的器件,其工艺,技术都走在最前列。
这样就有大量的新器件的采用。
FPGA有大量的新工具,新方法需要去学习,其与我们产品的上市时间形成冲突。
需要尽快的掌握新技术。
开发过程中碰到很多的技术问题,会消耗大量的调试时间,而由于种种原因没有办法得到厂家的支持而只能自己痛苦的调试。
本解决方案除了提供工具之外,还提供为期一年的FPGA设计的技术支持服务,从而让FPGA设计无后顾之忧。
五.价格分析及评估
项目
设备
CIF(美金)
1
Vivado/ISE/QuartusII
2
Matlab/SimulinktoRTL转换工具
3
C/C++toRTL转换工具
4
C/C++与RTL的形式化验证工具
5
符合FPGA规范的静态代码检查工具
6
RTL代码的自动纠错工具
7
TMR工具
8
时序收敛和设计优化工具
9
为期一年的FPGA开发技术支持服务