自主FPGA芯片软件时序参数提取方法

2021-07-29 10:58周洋洋王新晨武亚恒
电子与封装 2021年7期
关键词:测试用例时序延时

胡 凯,虞 健,周洋洋,王新晨,武亚恒

(中科芯集成电路有限公司,江苏无锡 214072)

1 引言

在FPGA应用开发方面,静态时序分析通过分析用户设计的建立保持时间来指导用户进行FPGA应用开发。在FPGA配套软件方面,静态时序分析通过分析计算电路中每条时序路径的延时,指导布局布线进行时序优化,为FPGA应用开发提供有效的技术保障[1]。

在静态时序分析工具中算法引擎影响时序分析的效率,时序参数影响最终时序分析的正确性。FPGA每一个型号芯片针对不同的设计结构和生产工艺,时序参数存在巨大差异。因此针对每一个型号芯片,软件都会有一套相对应的时序参数库,作为时序分析引擎的输入。在时序参数提取方面,由于参数数量巨大、精度要求高、仿真负载情况等原因,经常会出现仿真时序参数与实际芯片时序表现出入比较大的现象[2-4]。

目前国外Xilinx公司在FPGA时序参数提取技术方面最为成熟,其准确度被大家公认。而国内针对软件时序参数提取方法的研究还处于起步阶段,没有形成系统规范性的方法论。随着中美贸易冲突等因素影响,实现EDA软件自主可控已经迫在眉睫。

针对以上情况,本文基于自主FPGA配套软件,提出了一种以仿真时序参数为基础、选取典型路径进行实测,并通过分析实测延时与仿真数据、进行简单的推算和数据拟合,得到比较准确的时序参数值的方法。该方法得到的时序参数通过与Xilinx软件时序参数进行误差对比测试,证明该方法具有一定的有效性和可替代性。

2 软件时序参数提取流程设计

时序参数提取流程如图1所示,软件时序参数提取主要分为以下步骤:(1)软件根据硬件逻辑单元结构构建软件时序模型;(2)硬件根据软件时序模型进行时序仿真,获得仿真时序参数;(3)将芯片选定固定路径进行实测,修正仿真数据,作为最终的软件时序参数;(4)将没有实测到的数据以模块为单位进行数据拟合,得到相应数据。

图1 时序参数提取流程图

2.1 软件时序参数模型建立

软件静态时序分析根据硬件设计模型来建立软件时序参数模型,由硬件根据相关配置进行时序仿真并提取时序参数,输入标准库文件。以DICE模块的CIN端口输入到COUT输出为例(如图2硬件模型中红色标记所示),根据硬件模型建立软件模型,如图2软件模型所示。根据软件模型输入输出端口及相关配置,可以建立一条软件时序参数模型:

图2 软硬件模型转换图

tarc.set-name TCINCOUT combinational{(160,210)}{CIN}{COUT}-switch_cfg{COUTUSET=0}其中的(160,210)表示信号从CIN端口输入到COUT端口输出所需要的延时时间,160表示该段路径最小延时时间为160 ps,210表示该段路径最大延时时间为210 ps[5]。

2.2 时序参数仿真

软件时序参数中的基础参数由硬件仿真先提供基础版本数据。根据软件时序参数模型和配置属性,电路设计通过后仿真方式提取指定路径的时序参数值。时序仿真流程如图3所示,每个模块首先根据上文描述的模块时序软件模型构建指定路径的设计用例;然后通过Cadence工具Virtuoso建立电路仿真环境,接上电路相应的输入输出负载,导出相应的网表文件;打通需要仿真的指定路径开关进行时序仿真;最后通过工具Wave_view测量指定路径输入输出波形差来确定指定路径延时值[6]。

通过时序仿真,在不同的温度、电压条件下,每条特定路径可以得到一个不同的延时值。选取其中最大最小的2个值作为该条路径的最小最大延时填入图3所示的lib文件中。

图3 时序仿真流程图

2.3 时序参数实测修正方法

仿真数据是在理想状态下的测量值,由于芯片生产工艺等因素,实际芯片门延时和线延时会有一定的差异,因此在样品批次需要对芯片进行实测来修正仿真数据,并建立芯片速度等级。

芯片内部模块的路径延时值非常小,一般为皮秒级,由于测量仪器精度原因很难在开发板上进行实测且实际测量误差会非常大,因此本文采用指定路径多级串联的方式进行实测,以减少测量误差,保证延时数据的正确性。时序参数实测修正方法如图4所示,如测量DICE中CIN-COUT的延时,首先通过测试脚本构建2个测试用例carry_337和carry_537,carry_337含有337个DICE,carry_537含有537个DICE,保证每个DICE中都打通相同的CIN到COUT通路。每个测试用例根据布线资源使用相同的路径将DICE进行串联,保证2个测试连接方式相同;然后分别测量carry_337和carry_537的延时数据,根据d=(d537-d337)/(537-337),计算出DICE上CIN-COUT的延时数据[7-9]。

测试时,测试用例设计采用固定信号从IO端口进入,然后经过需要测试的组合逻辑,最后从IO端口输出的模式,如图4所示。

图4 延时实测示意图

实测环境如图5所示,主要由PC机、示波器、信号源、开发板、芯片、下载器等组成。

图5 实测环境图

上板测试时通过外加低频100 kHz的波形信号,示波器测量信号经过上述逻辑后的波形位移差来确定指定路径的延时,测量结果如图6、7所示,337个slice打通从CIN到COUT端口串联的实测延时为106.20 ns,537个slice打通从CIN到COUT端口串联的实测延时为144.47 ns。

图6 信号延时示波器测量图(337个slice)

图7 信号延时示波器测量图(537个slice)

将用来对比的2个测试用例实测延时做差,从而可以去除输入连接线及IO的差异。将差值除以2个对比测试用例相同路径差异个数便可以得出每一段需要测量的指定路径延时。如上文中的2个对比测试用例carry_337和carry_537,通过做差除以2个测试用例的串联从CIN到COUT端口的数量差,可以得出每个CIN到COUT的实测延时为191 ps。通过这个算出的实测值,就可以去修正原来仿真得出的仿真时序参数。比如原先仿真值认为该段延时为180 ps,则需要根据实测情况,将仿真值进行一定比例的扩大形成最终值,使得最终值应该略大于最差条件下测量出来的实测值。

2.4 数据拟合

由于整个芯片路径数量巨大,实际测试不可能做到全部覆盖。本文主要做了DICE、DSP、IOB等主要模块的主要通路的实测分析。每一个模块通过实测主要通路,得出一个实测与仿真的比例系数,应用到该模块的其他通路中。最后通过大量测试用例实测与时序分析对比,进行特定参数修正,形成最终与芯片相符合的软件时序参数,作为静态时序分析工具的输入。由于同一芯片不同生产批次生产的芯片具有一定的差异性,因此需要对每一批次生产的芯片进行重要模块时序参数测量,并与基准参数作对比,形成大概的比例系数,并以比例系数的形式导入软件,软件可以根据不同批次的芯片特点,动态选择比例系数进行时序报告。

3 试验结果与讨论

为了证明本文提出的方法具有一定的合理性及对Xilinx软件时序参数的可替代性,本文采用了自主芯片与Xilinx芯片软硬件对比测试方法。采用确定性布线方式分别在自主FPGA芯片和Xilinx的XC5VLX330芯片上进行对比性测试,通过分析路径延时值来反映相应延时参数的准确性,测试流程如图8所示。

图8 对比测试流程图

XC5VLX330芯片测试流程为:(1)XC5VLX330芯片对确定性布线测试用例进行确定路径实测延时;(2)Xilinx ISE软件对测试用例进行静态时序分析,得出软件分析延时;(3)分析Xilinx软件时序分析结果与实测数据的误差。

自主FPGA芯片测试流程为:(1)自主FPGA芯片对确定性布线测试用例进行确定路径实测延时;(2)采用自主的亿芯软件对测试用例进行静态时序分析,得出软件分析延时;(3)分析自主软件时序分析结果与实测数据误差。

在做时序分析时,时序分析软件的效率由时序分析算法引擎确定,而分析的准确性由时序参数确定,时序参数最终决定某一条确定路径时序分析报告报多少。一般时序分析的结果都会略悲观于实测值,但是不能过分悲观,需要在一定的误差范围内。如一个设计实际可以运行到100 MHz的运行频率,过于悲观的时序分析报告结果认为只能运行到20 MHz,这个结果可以确保设计没有时序问题,可靠性可以,但是会大大影响用户设计方案,不具备指导用户设计的作用,缺乏有效性。通常时序分析原则是在芯片最恶劣条件下、时序分析结果略悲观于最恶劣条件下的实测值[7]。本文针对自主FPGA芯片中不同模块的主要路径,专门构造了22个不同路径的测试用例。每个测试用例以逻辑串联的方式,将需要测量的路径以串联方式连接起来,如测试用例carry137串联了137个carry,专门用于测量和软件时序分析DICE中carry模块的CIN端口到COUT端口延时。XC5VLX330和自主FPGA芯片测试结果如表1、表2所示,其中测试用例序号1~11为DICE模块的主要路径测试用例;序号12~18为DSP模块主要路径测试用例,序号19~20为IOB模块主要路径测试用例[8],序号21~22为BUFG模块主要路径测试用例。将同样的测试用例分别下载到Xilinx芯片和自主芯片,实际测量路径延时值,然后将本文提出方法提取的时序参数导入到自主时序分析软件,进行软件时序分析,得出软件时序分析结果,并与Xilinx软件针对Xilinx芯片的软件时序分析结果进行对比。XC5VLX330芯片实测延时与软件报告延时的整体平均误差在高温条件下为47.21%,常温条件下为56.39%,低温条件下为45.99%。自主FPGA芯片实测与软件报告的平均误差在高温条件下为37.85%,常温条件下为46.87%,低温条件下为42.48%。在相同测试用例条件下,自主软件利用本文方法提取的时序参数平均误差小于Xilinx软件的误差,并且每个测试用例软件分析延时都大于芯片最差工作条件下的实测延时,从而可以保证芯片在最恶劣条件下时序分析的有效性。

表1 XC5VLX330测试表

表2 自主FPGA芯片测试表

4 总结

本文提出了一种针对自主FPGA芯片提取软件时序参数的方法。通过测试,提取的软件时序参数误差在有限范围内,可以保证时序分析的有效性,并且在芯片最恶劣条件下可以满足芯片时序分析的需求,从而保证了时序分析的有效性。试验结果表明,该方法在实际工程领域具有一定的可行性,并且具有替代Xilinx软件时序参数分析的可行性。但是本方法也存在一定的局限,如在实测验证方面,首先需要手动建立特定路径的测试用例,没有形成自动化测试流程,没办法满足覆盖整个芯片所有逻辑资源的大规模测试要求。其次,由于测量仪器的精度问题,如示波器的测量单位是纳秒,而一般一段延时单位是皮秒级,因此许多没有办法串联起来的路径无法做到准确测试,只能通过所在逻辑单元其他可以测量的延时参数形成比例系数,进行数据拟合,这类参数的准确度无法保证。针对上述问题,后续需要进一步提出改进方案,提高时序参数的准确度。

续表2

猜你喜欢
测试用例时序延时
清明
基于级联步进延时的顺序等效采样方法及实现
基于SmartUnit的安全通信系统单元测试用例自动生成
基于不同建设时序的地铁互联互通方案分析
日光灯断电关闭及自动延时开关设计
基于混合遗传算法的回归测试用例集最小化研究
基于FPGA 的时序信号光纤传输系统
基于模体演化的时序链路预测方法
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
基于依赖结构的测试用例优先级技术