• 收藏
  • 加入书签
添加成功
收藏成功
分享

芯片验证自动调度与数据分析系统设计实现

石松华
  
大通媒体号
2024年26期
此芯科技 上海 有限公司 上海 310000

打开文本图片集

摘要:本文介绍了一种针对芯片验证回归的自动调度与数据分析系统设计与实现。现有系统在大规模复杂芯片研发中面临一些问题,特别是在随机测试法中,覆盖率数据较为杂乱,难以判断验证阶段和下一步方向。针对这些问题,本文设计了一种自动调度与数据分析系统,通过使用PHP、Python和csh编程语言,结合Perforce版本管理工具、PostgreSQL数据库以及前后台交互技术,实现了芯片验证回归的自动调度和数据分析功能。系统设计包括自动调度平台与Perforce代码管理平台和LSF集群的结合,开发了系统资源自适应调度功能,通过CentOS的Crontab定时执行任务,实现了回归任务的自动生成与提交。系统还实现了状态监控与异常任务处理机制,检测、分类和处理各种异常情况,确保测试结果的准确性和可靠性。此外,系统提供了基于回归结果的数据分析与优化功能,通过数据收集、分析和图表展示,帮助设计人员快速诊断和定位问题,提高验证效率和质量。

关键词:自动调度;数据分析;系统设计;实现

一、引言

1. 芯片验证自动调度系统概述

芯片验证自动调度系统(Automated Scheduling System for Chip Verification)旨在优化和管理芯片设计验证流程,以应对随着芯片设计复杂性增加而带来的验证工作量和难度的提升。通过自动化工具和算法,该系统可以有效地管理大量验证任务,协调资源分配,监控验证进度,并提供详细的报告和分析。

系统主要功能包括任务分配和调度、资源管理、进度监控、优先级管理、错误处理和重试机制以及数据分析和报告。任务分配和调度功能能够根据预定义策略和资源情况,将验证任务自动分配给合适的验证平台,如仿真器或硬件验证平台。资源管理则确保资源使用最大化,避免浪费。进度监控功能实时监控验证任务的进展情况,并提供详细的进度报告和日志。优先级管理根据任务的重要性合理安排执行顺序,确保关键任务优先完成。错误处理和重试机制自动检测验证过程中的错误,并根据预设策略进行重试或任务转移。数据分析和报告模块则自动收集和分析验证数据,生成详细报告,帮助设计团队识别问题和优化设计。

芯片验证自动调度系统的主要优点在于提高验证效率、优化资源利用、提高验证覆盖率以及提供实时监控和反馈。通过自动化调度和资源优化,系统显著提高验证效率,减少验证时间,同时有效管理和利用验证资源,降低验证成本。优化调度策略确保关键功能和边界条件得到充分验证,实时的验证进度和反馈帮助团队及时发现和解决问题。然而,该系统也面临一些挑战,包括管理复杂性、解决资源冲突以及保证系统在高负载情况下的稳定性和可靠性。总的来说,芯片验证自动调度系统是芯片设计验证过程中不可或缺的重要工具,通过自动化和智能化的手段,大大提高了验证效率和质量。

2.当前验证调度系统存在的问题

在大规模复杂芯片研发中,依靠定向测试方法来编写一套完整的激励集去测试设计功能已变得不实用,通常都会采用随机测试法对设计功能进行验证。随机测试法通过施加随机激励和约束生成测试方案,在仿真完成后收集覆盖率数据,来判断功能验证是否完备。这种方法所带来的问题是,所搜集的覆盖率数据比较杂乱,验证工程师无法基于这些数据来判断验证到达了哪一个阶段、下一步的验证方向应该是什么,以及最终的验证是否完备等。基于这种问题,本文设计了一种芯片验证回归自动调度与数据分析系统。

二、自动调度系统与数据分析系统设计

1.系统总体设计

本文所设计系统通过使用PHP、Python和csh编程语言,并融合了Perforce版本管理工具、PostgreSQL数据库以及网站前后台交互等技术实现了芯片验证回归的自动调度和数据分析功能。同时,该系统还集成了jira 项目与事务跟踪工具,将jira中的提交的每一个硬件故障进展同验证仿真的结果同步展示在平台上,做到每个bug 都可以快速的定位到问题模块及RTL bug 的修复进度,以图形化的方式实现芯片研发过程中发现的各类问题进行实时追踪。最终,该系统能够实现了验证的高透明度,提高芯片验证回归测试所使用资源的利用率[4],在保证回归质量的同时有效节约研发资源成本和时间。

2.各模块设计

(1)系统资源自适应调度与任务分配机制设计

自动调度平台与Perforce代码管理平台和LSF(Load Sharing Facility) 集群紧密结合。Perforce用于研发代码版本管理,通过Perforce的changelist机制指定各验证模块的代码,确保每次回归都是指定的RTL代码和最新的测试用例。由于EDA License等软件资源和LSF集群等硬件资源是芯片研发中有限的资源,为了能够最大程度的提高资源的利用率,开发了系统资源自适应调度功能[5]。该系统实现了芯片验证仿真任务的自动生成与提交,如图2.1所示,该系统是用过CentOS 的Crontab 定时执行任务触发执行归回平台生成的回归任务脚本来实现任务的定时执行,生成的regression脚本文件在执行时会首先自动创建回归任务的工作路径。

然后,系统会调用相应的Perforce代码下载脚本完成回归模块的代码下载并完成相关EDA工具的配置,然后将回归任务提交到LSF集群中,如图2.1中黄色圆点所示需提交的任务,绿色圆点表示待分配到LSF集群任务,图中的节点是指LSF集群中的执行任务的计算节点。

最后,调用LSF接口将回归任务提交到集群节点中完成回归测试用例的仿真并将每个测试用例的数据更新到数据库中。

(2)状态监控与异常任务处理机制的功能实现

芯片regression系统是一种用于测试芯片性能的系统,它可以通过大量的测试用例来检测芯片的稳定性和可靠性。在这个系统中,异常处理机制是非常重要的一部分,它可以帮助系统及时发现和处理各种异常情况,确保测试结果的准确性和可靠性。在我们的回归系统中,异常处理机制主要包括以下几个模块:

1. 异常检测模块:回归系统会监控各种测试过程中出现的异常情况,例如测试用例执行异常结束、测试结果与预期结果不符等[6]。当系统检测到异常情况时,会立即记录并以邮件的方式通知相关人员进行处理。

2. 异常分类模块:系统会将不同类型的异常进行分类。例如硬件故障、EDA软件错误、LSF集群机器异常等。根据不同的异常类型,系统会采取不同的处理方式,对于硬件故障和EDA软件错误,系统会重新运行失败的测试用例,如果再次出错回归结果会以邮件的方式通知回归负责人。LSF集群机器异常导致测试用例的结果不符合预期的,系统会重新运行失败的测试用例,如果再次出错会邮件通知回归负责人。

3. 异常处理模块:系统会根据异常类型和严重程度,采取相应的处理措施。对于一些已知的异常问题,如LSF机器异常、网络波动导致仿真等导致仿真异常结束的系统可以自动重新执行测试用例;对于一些系统未知的回归异常,系统会邮件通知相关人员进行紧急处理。

4. 异常记录和分析:系统会对所有的异常情况进行记录和分析,并通过网页图表的方式在系统上进行分类展示,以便后期进行设计故障的追踪。

(3)结果的数据分析与优化

基于芯片验证regression结果的数据分析与优化是指通过对芯片验证regression结果进行分析,找出其中存在的问题,并采取相应的优化措施,以提高芯片验证的效率和准确性;同时在回归系统的网页上实时展示回归状态和历史数据,便于研发人员实时查看各模块回归验证的状态。

具体来说,基于芯片验证regression结果的数据分析与优化主要包括数据收集与整理、数据的分析与统计和数据展示三个部分,首先,需要收集和整理芯片验证regression的结果数据,包括测试用例的执行情况、错误日志、性能指标等;然后,对收集到的数据进行分析和统计,找出其中存在的问题,如测试用例执行失败、性能指标低下等[7]。最后,将一个回归测试中所有测试用例的相关信息以图表的方式展示给设计人员,便于设计人员快速的对问题进行诊断和定位,找出设计中存在的问题。通过以上步骤,实现了基于芯片验证regression结果的数据分析与优化,从而提高芯片的验证效率和质量。

首先,验证数据的收集与整理工作是在测试用例执行的过程中进行的,在验证流程中我们新增了测试用例状态记录功能,在用例执行结束后解析出错误日志、警告信息,执行时间等信息后记录在数据库中,数据库内的库表是按照三层结构的方式建立,如图2.3所示,第一层数据表记录了项目名称、回归模块、执行者等信息,该表格是回归信息记录的根目录,包含所有项目回归测试的基础信息,如图中第一个表格。在第一个表格的最后一个字段记录了第二层表的表名,在第二层表中会详细记录某类回归测试的详细信息。第二层数据表记录了每条回归包含的测试用例执行次数、起止时间、状态和回归结果的日志路径等信息,如图中第二层的表格最后一个字段记录了第三层表的表名,在第三层表中会详细记录某此的详细信息。第三层数据表记录了每个测试用例的、名字、状态信息,包括起止时间,测试结果、日志路径等信息。回归系统图表中的信息大部分数据都是来自这三层数据表中,这些信息是进行数据分析和展示的基础。

数据的分析和统计是通过将一类回归类型的历史数据进行清洗后将有效数据传递给展示模块用于展示,它是从数据的收集到数据展示的中间模块。结果展示模块是回归系统的重要部分,它能够直观的展示出芯片设计的进展。该模块是以PHP、Javascript和HTML分别进行后端和WEB前端的开发。数据来源除了仿真结束时保存的测试用例和回归的相关信息外,还会同步调用JIRA项目与事务跟踪工具数据的信息,将硬件故障的发现、提交和结束统一展示在回归系统的数据与分析模块上[8]。如图2.4所示是所有回归的动态展示界面,在该界面展示了所有回归的最新状态,按照回归类型分类sanity回归和nightly回归,每条回归中展示了、项目名称、回归名称、所使用代码版本号、运行状态、运行实时通过率和历史通过次数等信息,研发人员可以通过该页面实时的掌握最新各模块的验证状态[9[10]。点击回归名称跳转到每类回归的历史状态信息展示界面,包括运行次数、每次回归的开始和结束时间、通过率以及失败测试用例的日志等信息。此外,在report界面实时展示了各IP的最新通过率和测试用例数,如图2.5所示,横坐标是IP名,左纵坐标是回归测试用例的通过率,右边纵坐标是测试用例的数目。

三、总结

本文设计并实现了一种芯片测试自动调度与数据分析系统,旨在解决现有集成电路自动测试系统在大规模复杂芯片研发中的不足。通过使用PHP、Python和csh编程语言,结合Perforce版本管理工具、PostgreSQL数据库以及前后台交互技术,系统实现了高效的自动调度和精确的数据分析。该系统通过资源自适应调度功能,优化了有限资源的利用率,确保了每次回归任务的高效执行。同时,系统集成了状态监控与异常任务处理机制,能够及时检测和处理各种异常情况,保证测试结果的准确性和可靠性。此外,系统通过数据收集、分析和图表展示,实现了回归结果的全面评估和优化,有助于设计人员快速诊断和定位问题,提高验证效率和质量。

参考文献

[1].唐云鹏, 等. (2015). "基于FPGA的数字信号处理技术在集成电路测试系统中的应用研究." 电子技术应用, 41(3), 88-91.

[2].刘娜, 张华. (2019). "一种基于机器学习的芯片验证自动调度方法." 电子学报, 47(12), 2456-2463.

[3].陈刚, 赵鹏. (2021). "集成电路验证中的自动化调度技术研究." 微电子学, 51(4), 569-575.

[4].李志强, 吴昊. (2018). "面向多核处理器的验证自动化系统设计与实现." 计算机科学, 45(9), 87-93.

[5].张丽, 王雷. (2017). "基于遗传算法的芯片验证任务调度策略研究." 系统仿真学报, 29(11),

[6].Bushnell, M. L., & Agrawal, V. D. (2000). Essentials of Electronic Testing for Digital, Memory and Mixed-Signal VLSI Circuits. Springer.

[7].Shen, J., & Abramo, L. (2008). Testing of Digital Systems. Springer.

[8].Maxim, A., & Zorian, Y. (2000). "Testing of Digital and Mixed-Signal Integrated Circuits." Proceedings of the IEEE, 88(6), 849-868.

[9].Chen, K., & Chiang, C. Y. (2014). "Test Scheduling for System-on-Chip Designs." IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 33(10), 1574-1587.

[10].Jervan, G., & Talmatsky, E. (2018). "Efficient Testing of Reconfigurable FPGA-Based Systems." Journal of Electronic Testing: Theory and Applications (JETTA), 34(3), 283-294.

*本文暂不支持打印功能

monitor