CN113312246A - 验证环境的控制方法、装置、平台、设备和存储介质 - Google Patents

验证环境的控制方法、装置、平台、设备和存储介质 Download PDF

Info

Publication number
CN113312246A
CN113312246A CN202110631913.3A CN202110631913A CN113312246A CN 113312246 A CN113312246 A CN 113312246A CN 202110631913 A CN202110631913 A CN 202110631913A CN 113312246 A CN113312246 A CN 113312246A
Authority
CN
China
Prior art keywords
module
verification environment
state information
verification
running state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110631913.3A
Other languages
English (en)
Other versions
CN113312246B (zh
Inventor
张良
尚铮
刘世鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110631913.3A priority Critical patent/CN113312246B/zh
Publication of CN113312246A publication Critical patent/CN113312246A/zh
Application granted granted Critical
Publication of CN113312246B publication Critical patent/CN113312246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种验证环境的控制方法、装置、平台、设备和存储介质,该方法包括:获取验证环境中执行模块的运行状态信息;根据所述运行状态信息,判断所述验证环境的运行是否存在故障;当所述验证环境的运行存在故障时,控制所述验证环境的停止运行。本申请可以对验证环境仿真挂死进行快速的报警并停止仿真,从而大大地减少仿真挂死运行时的时间损耗,加快芯片验证的迭代。

Description

验证环境的控制方法、装置、平台、设备和存储介质
技术领域
本申请涉及芯片验证技术领域,具体而言,涉及一种验证环境的控制方法、装置、平台、设备和存储介质。
背景技术
芯片验证,就是采用相应的验证语言、验证工具、验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷。
随着集成电路产业的快速发展,芯片的规模以及复杂度越来越大,与此同时,验证环境的规模及复杂度也大大增加。在验证环境仿真运行的过程中,由于芯片设计内部的死锁或竞争,或者验证平台内部可能存在的死循环、无效等待等问题,环境仿真遇到挂死的情况越来越频繁。因此,当验证环境仿真遇到仿真挂死时,快速的停止仿真运行,就变得非常有必要。
传统的验证平台,对挂死错误的处理方是设置一个全局的仿真运行时间上限,当遇到死锁等错误情况导致仿真无法正常停止时,则等待仿真时间到达设置好的上限,强制停止仿真并将此错误上报。例如,基于UVM(Universal Verification Methodology,通用验证方法学)的验证平台中,通过设置UVM_TIMEOUT参数来设定仿真运行时间上限,当仿真运行到达该时间上限时,仿真运行会停止。但是,如果传统的验证环境仿真运行遇到挂死的情况,只能等到仿真时间到达TIMEOUT时间参数值,仿真才能停止,而其中从遇到仿真挂死到仿真停止的这段时间,就被白白浪费掉。并且实际场景中,由于要兼顾所有的仿真用例,默认的环境仿真时间上限必须设置为一个较大的值,当出现错误时需要等待很长的时间才可以停止仿真,导致无法快速复现错误,影响验证效率。
发明内容
本申请实施例的目的在于提供一种验证环境的控制方法、装置、平台、设备和存储介质,可以对验证环境仿真挂死进行快速的报警并停止仿真,从而大大地减少仿真挂死运行时的时间损耗,加快芯片验证的迭代。
本申请实施例第一方面提供了一种验证环境的控制方法,包括:获取验证环境中执行模块的运行状态信息;根据所述运行状态信息,判断所述验证环境的运行是否存在故障;当所述验证环境的运行存在故障时,控制所述验证环境停止运行。
于一实施例中,所述获取验证环境中执行模块的运行状态信息,包括:周期性获取所述验证环境中所述执行模块的所述运行状态信息。
于一实施例中,所述获取验证环境中执行模块的运行状态信息,包括:在芯片验证过程中,当预定事件发生时,获取验证环境中执行模块的运行状态信息。
于一实施例中,所述运行状态信息为所述执行模块执行操作的活跃度;所述根据所述运行状态信息判断所述验证环境的运行是否存在故障,包括:判断所述活跃度是否小于或等于预设阈值;若所述活跃度小于或等于所述预设阈值,确定所述验证环境的运行存在故障,否则,确定所述验证环境的运行不存在故障。
于一实施例中,在所述根据所述运行状态信息判断所述验证环境的运行是否存在故障之后,还包括:清除已记录的所述运行状态信息。
于一实施例中,在所述获取验证环境中执行模块的运行状态信息之前,还包括:将所述验证环境中的所有执行模块进行注册,为每个所述执行模块创建运行状态指针,用于记录每个所述执行模块的运行状态信息。
于一实施例中,还包括:当所述验证环境的运行存在故障时,发出警报。
本申请实施例第二方面提供了一种验证环境的控制装置,包括:第一获取模块,用于获取验证环境中执行模块的运行状态信息;判断模块,用于根据所述运行状态信息,判断所述验证环境的运行是否存在故障;控制模块,用于当所述验证环境的运行存在故障时,控制所述验证环境停止运行。
于一实施例中,所述第一获取模块用于:周期性获取所述验证环境中所述执行模块的所述运行状态信息。
于一实施例中,所述第一获取模块用于:在芯片验证过程中,当预定事件发生时,获取验证环境中执行模块的运行状态信息。
于一实施例中,所述运行状态信息为所述执行模块执行操作的活跃度;所述判断模块用于:判断所述活跃度是否小于或等于预设阈值;若所述活跃度小于或等于所述预设阈值,确定所述验证环境的运行存在故障,否则,确定所述验证环境的运行不存在故障。
于一实施例中,还包括:清除模块,用于在所述根据所述运行状态信息判断所述验证环境的运行是否存在故障之后,清除已记录的所述运行状态信息。
于一实施例中,还包括:注册模块,用于在所述获取验证环境中执行模块的运行状态信息之前,将所述验证环境中的所有执行模块进行注册,为每个所述执行模块创建运行状态指针,用于记录每个所述执行模块的运行状态信息。
于一实施例中,还包括:第二获取模块,用于当所述验证环境的运行存在故障时,获取所述验证环境中当前未完成的验证信息。
于一实施例中,还包括:报警模块,用于当所述验证环境的运行存在故障时,发出警报。
本申请实施例第三方面提供了一种验证环境的控制装置,包括:记录模块,用于记录验证环境中每个执行模块的运行状态信息;触发模块,用于基于配置的触发条件,生成触发信号;检查模块,分别连接所述记录模块和所述触发模块,用于在接收到所述触发信号时,获取所述记录模块中记录的每个所述执行模块的运行状态信息,并基于所述运行状态信息判断所述验证环境的运行是否存在故障;报警模块,连接所述检查模块用于在所述验证环境的运行存在故障时,发出警报;清零模块,分别连接所述记录模块和所述检查模块,用于在所述检查模块判断所述验证环境的运行是否存在故障之后,将所述记录模块记录的每个所述执行模块的运行状态信息清零。
本申请实施例第四方面提供了一种验证平台,包括:本申请实施例第二方面及其任一实施例的验证环境的控制装置或者本申请第三方面及其任一实施例的验证环境的控制装置,以及还包括:待测模块;激励生成器,分别连接所述待测模块和所述控制装置,用于所述待测模块生成激励信号,并向所述控制装置上报所述激励生成器的运行状态信息;收集模块,分别连接所述待测模块和所述控制装置,用于收集所述待测模块的输入端口和/或输出端口的数据,并向所述控制装置上报所述收集模块的运行状态信息;计分模块,分别连接所述收集模块和所述控制装置,用于对所述输入端口和/或输出端口的数据进行检验,并向所述控制装置上报所述计分模块的运行状态信息。
本申请实施例第五方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请实施例第六方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的验证环境的控制方法、装置、平台、设备和存储介质,通过在芯片验证过程中,记录验证各模块的运行状态,并对其进行运行状态检查,从而判断出当前验证环境仿真过程是否遇故障情况,当遇到仿真故障时,及时控制验证环境停止仿真运行。如此,可以对验证环境仿真挂死等故障情况进行快速的监测,并及时停止仿真,从而大大地减少仿真挂死运行时的时间损耗,加快芯片验证的迭代。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2为本申请一实施例的验证平台的结构示意图;
图3A为本申请一实施例的验证环境的控制装置结构示意图;
图3B为本申请一实施例的验证平台的结构示意图;
图4为本申请一实施例的验证环境的控制方法的流程示意图;
图5为本申请一实施例的验证环境的控制装置的结构示意图。
附图标记:
2-验证平台,20-验证环境的控制装置,DUT-待测模块,Stimulus-激励生成器,Monitor-收集模块,Scoreboard-计分模块,21-记录模块,HB-Trigger-触发模块,HB-Checker-检查模块,HB-Alertor-报警模块,HB-Cleaner-清零模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以对验证环境的仿真运行进行故障监测和控制。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型计算系统等设备。
如图2所示,其为本申请一实施例的验证平台2,包括:验证环境的控制装置20、待测模块DUT、激励生成器Stimulus、收集模块Monitor和计分模块scoreboard,其中:
待测模块DUT可以是待验证的芯片电路设计,以基于UVM的验证平台2为例,待测模块DUT可以是例化在验证平台2中的待测硬件模块,每个DUT中可以包括多个可以独立完成某项操作功能的子模块,比如子模块ip_a至子模块ip_c。
激励生成器Stimulus,分别连接待测模块DUT和控制装置,用于待测模块DUT生成激励信号,并向控制装置上报激励生成器Stimulus的运行状态信息。在实际验证场景中,激励生成器Stimulus用于为DUT中的子模块产生不同的场景激励。在实际芯片验证过程中,激励生成器Stimulus每次提供激励数据时,其工作状态都会上报给控制装置。
收集模块Monitor,分别连接待测模块DUT和控制装置,用于收集待测模块DUT的输入端口和/或输出端口的数据,并向控制装置上报收集模块Monitor的运行状态信息。实际场景中,收集模块Monitor用于对待测模块DUT的输入端口和输出端口的数据进行收集,并将该收集到的数据传输到计分模块scoreboard中进行比对。另外,收集模块Monitor会采集DUT内部信号,并在每次采集到信号数据时,将自己的工作状态告诉控制装置。
计分模块scoreboard,分别连接收集模块Monitor和控制装置,用于对输入端口和/或输出端口的数据进行检验,并向控制装置上报计分模块scoreboard的运行状态信息。计分模块scoreboard可以采用记分牌实现,计分模块scoreboard接收收集模块Monitor送来的信息,从而对待测模块DUT的电路设计各阶段运行的结果进行检查。另外,当计分模块scoreboard执行各阶段的功能时,会向控制装置报告自己的工作状态。
如图3A所示,其为本申请一实施例的验证环境的控制装置20,如图3B所示,其为本申请一实施例的搭载有验证环境的控制装置20的验证平台2。下面结合图3A和图3B,详细描述本实施例的技术方案:
如图3A所示,该验证环境的控制装置20可以应用于如图2所示的验证平台2中,该装置20可以包括:记录模块21、触发模块HB-Trigger、检查模块HB-Checker、报警模块HB-Alertor和清零模块HB-Cleaner,其中:
记录模块21,用于记录验证环境中每个执行模块的运行状态信息。比如,记录模块21可以通过一个表格Busy Node Table来实现,表格内每条entry记录验证平台2中对应执行模块的工作状态。执行模块可以是上述待测模块DUT、激励生成器Stimulus、收集模块Monitor和计分模块scoreboard中的一个或多个。可以通过表格Busy Node Table为每个执行模块实现一个运行状态计数器Counter,用于记录对应执行模块的工作繁忙程度。在仿真开始后,验证平台2的各模块在执行各function/task等操作时,会将自己每次操作的状态报告给记录模块21的上述表格Busy Node Table,表格为该模块对应的计数器Counter加1。
于一实施例中,记录模块21也可以由硬件电路实现,比如可以由基本的计数单元和一些控制门组成计数器Counter,用于记录对应执行模块的工作繁忙程度。计数单元可以由一系列具有存储信息功能的各类触发器构成,比如触发器包含但不限于:RS触发器(复位/置位触发器)、T触发器、D触发器及JK触发器。触发模块HB-Trigger,用于基于配置的触发条件,生成触发信号。触发模块HB-Trigger可以为检查模块HB-Checker提供触发信号,让检查模块HB-Checker检查当前记录模块21的表格Busy Node Table内每个计数器Counter的计数值。
于一实施例中,触发模块HB-Trigger可以采用固定周期性的触发模式,比如每个固定时间段,触发模块HB-Trigger会向检查模块HB-Checker发出触发信号。当然,触发模式还可以采用动态周期性触发、特殊事件触发等模式。
于一实施例中,触发模块HB-Trigger可以由硬件电路实现,比如可以是由两个或非门、两个输入端和两个输出端组成的RS触发器。也可以是复杂一些的有带时钟(CLK)段和D(Data)端,在CLK端为高电平时跟随D端状态,而在CLK端变为低电平的瞬间锁存信号的D触发器。也可以是T触发器或者JK触发器,也可以是两个D触发器级联而成的在时钟下跳沿锁存信号的边缘D触发器等。本实施例中对实现触发模块HB-Trigger的触发器类型不做限定。
检查模块HB-Checker,分别连接记录模块21和触发模块HB-Trigger,用于在接收到触发信号时,获取记录模块21中记录的每个执行模块的运行状态信息,并基于运行状态信息判断验证环境的运行是否存在故障。在实际场景中,检查模块HB-Checker在收到触发模块HB-Trigger送来的触发信号后,会检查记录模块21中表格Busy Node Table内各计数器Counter的计数值,并且根据当前控制装置20的工作模式,判断当前验证环境是否遇到仿真挂死等故障情况。这里提到的控制装置20的工作模式是可配置的,可以配置为期望仿真遇到挂死状态的模式、期望仿真正常状态的模式、以及其他状态的模式。比如,如果配置为期望仿真正常状态的模式,如果遇到仿真进入了挂死状态,检查模块HB-Checker会给报警模块HB-Alertor提供检查结果信号,以使报警模块HB-Alertor执行报警功能。
于一实施例中,如果配置为期望仿真遇到挂死状态的模式,如果遇到仿真进入了挂死状态,或者如果仿真中DUT进入了低功耗工作模式,使得仿真中验证环境所有模块都没有响应,检查模块HB-Checker不会给报警模块HB-Alertor提供检查结果信号,此时HB-Alertor不会执行报警功能。同时,配置为期望仿真遇到挂死状态的工作模式,可以使验证环境的控制装置20当作一种检查DUT进入类似于低功耗、静默模式等场景工作的检测方法装置。
于一实施例中,检查模块HB-Checker每次检查完成后,都会给清零模块HB-Cleaner发出清零信号,以使清零模块HB-Cleaner将记录模块21的表格Busy Node Table中所有计数器Counter归零。
于一实施例中,检查模块HB-Checker也可以由硬件电路实现,比如8051单片机、AVR单片机或MSP430单片机等,也可以是MCU(Microcontroller Unit,微控制单元)控制器或者嵌入式控制器,当然也可以是通过逻辑门电路和运算电路组成的电路结构,本实施例对检查模块HB-Checker电路类型不做限定,只要是能够实现上述检查模块HB-Checker功能的电路均可以。
报警模块HB-Alertor,连接检查模块HB-Checker用于在验证环境的运行存在故障时,发出警报。如图3B所示,报警模块HB-Alertor在接收到检查模块HB-Checker发来的信号后,会通知验证平台2执行验证环境挂死退出程序,及时停止当前的仿真运行。
于一实施例中,报警模块HB-Alertor也可以由硬件电路实现,比如采用555定时器芯片以及外围电路组成,当接收到查模块HB-Checker发来的存在故障的信号时,触发555定时器芯片生成用于报警的脉冲给验证平台2。当然,也可以采用其他报警器电路结构实现报警模块HB-Alertor,本实施例对报警模块HB-Alertor电路类型不做限定,只要是能够实现上述报警模块HB-Alertor功能的电路均可以。
于一实施例中,在验证平台2接到报警信息后,可以先打印出当前验证环境的工作状态,方便错误定位,然后调用结束命令$finish,停止仿真运行。
清零模块HB-Cleaner,分别连接记录模块21和检查模块HB-Checker,用于在检查模块HB-Checker判断验证环境的运行是否存在故障之后,将记录模块21记录的每个执行模块的运行状态信息清零。于一实施例中,清零模块HB-Cleaner在收到检查模块HB-Checker发来的检查结果信号后,将记录模块21的表格Busy Node Table中所有计数器Counter归零。
于一实施例中,清零模块HB-Cleaner也可以由硬件电路实现,比如假设检查模块HB-Checker由MCU控制器实现,则清零模块HB-Cleaner可以利用该MCU控制器实现,每次MCU控制器检查一次表格Busy Node Table,就发出清零信号给记录模块21的计数器,使其清零。比如可以通过将计数器复位端口电平拉低来实现计数器清零。当然,清零模块HB-Cleaner也可以由独立的控制芯片来实现,本实施例对清零模块HB-Cleaner电路类型不做限定,只要是能够实现上述清零模块HB-Cleaner功能的电路均可以。
在实际场景中,假设以软件形式实现控制装置20,在验证平台2创建时,可以将图3A所示的控制装置20例化在验证平台2中,并配置相应参数,例如配置触发模块HB-Trigger的工作模式,配置触发模块HB-Trigger的时间窗口大小等。上述验证环境的控制装置20可以用于DataFabric(数据结构)片上网路电路的验证平台2中,另外,其还适用于其他片上总线的电路的验证平台2,比如包括AMBA(Advanced Microcontroller Bus Architecture,先进微控制器总线体系结构)片上总线、Wishbone总线、CoreConnect总线、Avalon总线、OCP总线等电路的验证平台2。
于一实施例中,假设以硬件电路形式实现控制装置20,则可以将控制装置20的各个模块的电路接口与验证平台2的电路接口连接,比如可以通过总线将相应的电路接口进行连接。也可以通过无线的方式将控制装置20的各个模块的电路接口与验证平台2的电路接口连接。并对控制装置20进行相关参数配置。
请参看图4,其为本申请一实施例的验证环境的控制方法,该方法可由图1所示的电子设备1作为验证环境的控制装置20来执行,或者由如图3A所示的硬件组成的验证环境的控制装置20来执行,并可以应用于如图2至图3B所示的验证平台2的验证环境的控制场景中,以对验证环境的仿真运行进行故障监测和控制。该方法包括如下步骤:
步骤401:将验证环境中的所有执行模块进行注册,为每个执行模块创建运行状态指针,用于记录每个执行模块的运行状态信息。
在本步骤中,执行模块可以是验证平台2的待测模块DUT、激励生成器Stimulus、收集模块Monitor和计分模块scoreboard中的一个或多个。在一些实施例中,在验证平台2各模块创建时,可以先注册到控制装置20中,以使控制装置20可以获取到需要记录工作状态的计数器指针。当验证平台2进入run_phase()后,验证环境中至少存在两个并行的线程,一个是当前控制装置20的执行线程,另外的线程是验证平台2的其他执行模块的工作线程。这两个线程的工作状态信息在记录模块21的表格Busy Node Table中进行交互。
步骤402:获取验证环境中执行模块的运行状态信息。
在本步骤中,运行状态信息可以是过去一段时间内执行模块的运行状态信息,也可以是指从上一次仿真检查到本次仿真检查触发这一时间段内各执行模块的运行状态信息;每个执行模块在控制装置20的表格Busy Node Table内均有一个计数器,计数器的值表示该执行模块的运行状态信息,因此可以读取计数器的计数值来获取执行模块的运行状态,。
于一实施例中,验证平台2各执行模块在各自的线程工作时,如果某个执行模块执行操作,会向控制装置20报告自己的工作状态,此时控制装置20的表格Busy Node Table将该执行模块对应的计数器加1。
于一实施例中,可以依据每次收到触发模块HB-Trigger送来的触发信号,来触发检查模块HB-Checker读取表格Busy Node Table内所有计数器的计数值。
仿真过程中,触发模块HB-Trigger会根据配置的触发模式,判断是否到达触发条件。如果触发条件满足,触发模块HB-Trigger会向检查模块HB-Checker发出信号。触发条件可以有多种形式选择。
于一实施例中,可以在芯片验证的过程中,周期性获取验证环境中执行模块的运行状态信息。即触发模块HB-Trigger周期性的发出触发信号给检查模块HB-Checker。比如可以是固定周期式触发,即预先设置固定的时钟步长数。触发模块HB-Trigger通过对验证平台2时钟计数,每当时钟计数到达配置的固定时钟步长数时,触发模块HB-Trigger会将向下游检查模块HB-Checker给出触发信号。当然还可以采用动态调整的周期式触发。
于一实施例中,在芯片验证过程中,也可以当预定事件发生时,获取验证环境中执行模块的运行状态信息。即特殊事件发生时,触发模块HB-Trigger发出触发信号给检查模块HB-Checker。也可以选择随机触发等方式,增加触发的灵活性。
于一些实施例中,预定事件可以是Reset_n信号(复位信号)拉低或者Reset信号拉高;也可以是在读取DUT内部状态寄存器时,确定验证环境系统进入了低功耗状态,比如静默状态或者其他特殊状态;再或者也可以是验证环境系统收到了中断请求或者Barrier请求等。当然,预定事件不限于上述举例,在实际应用中,可以根据实际需求自定义预定事件,当预定事件发生时,触发模块HB-Trigger发出触发信号给检查模块HB-Checker。
步骤403:根据运行状态信息,判断验证环境的运行是否存在故障。若是,进入步骤404,否则进入步骤406。
在本步骤中,检查模块HB-Checker可以根据预设的配置文件所规定的检查模式,根据验证场景需求,对所述运行状态信息进行综合评判,给出运行检查结果,然后根据运行状态信息的检查结果判断当前仿真运行是否进入挂死状态。比如在芯片验证中,验证场景通常期望看到各执行模块的运行状态为静默(即非工作)状态,可以根据配置的期望值,选择是否需要向报警模块HB-Alertor给出触发报警的信号。如果检查模块HB-Checker发现仿真运行正常,则不会向报警模块HB-Alertor发信号,进入步骤406,否则,进入步骤404。
于一实施例中,运行状态信息为执行模块执行操作的活跃度。步骤403可以包括:判断活跃度是否小于或等于预设阈值。若活跃度小于或等于预设阈值,确定验证环境的运行存在故障,否则,确定验证环境的运行不存在故障。
在实际场景中,活跃度可以由每个执行模块对应的计数器计数值来表征,在一个计数周期内,计数值越大,表明对应的执行模块活跃度越大,反之,表明活跃度较小。当活跃度小于或等于一定预设阈值时,说明验证平台2的各执行模块有很大一部分没有正常运行,可以认为当前仿真过程出现了故障。
于一实施例中,活跃度可以是表格Busy Node Table内全部计数器的计数值之和,预设阈值可以为零,当表格Busy Node Table内全部计数器的计数值之和为零时,说明验证环境当前仿真过程已出现挂死故障。预设阈值也可以是其他任何自然数值,当表格BusyNode Table内全部计数器的计数值之和小于或等于预设阈值时,说明验证环境当前仿真过程已出现挂死故障。
步骤404:获取验证环境中当前未完成的验证信息。
在本步骤中,当验证环境的运行存在故障时,比如当前芯片验证过程出现死循环、无效等待、步骤缺少等因素引起仿真运行挂死等故障时,报警模块HB-Alertor会收到检查模块HB-Checker发来的信号,然后将仿真故障信息及时通知给验证平台2。验证平台2在收到信号后,可以先调用相关的信息收集函数,打印出未完成的验证信息,比如数据请求,以便于为后期故障定位提供数据。然后进入步骤405。
于一实施例中,可以预先配置是否需要执行步骤404,如果不需要执行步骤404,则当步骤403判定验证环境的运行存在故障时,也可以直接进入步骤405,及时停止验证环境的运行。
步骤405:控制验证环境停止运行。
在本步骤中,可以通知验证平台2调用$finish命令(仿真结束命令),及时停止验证环境的仿真运行。
于一实施例中,当验证环境的运行存在故障时,可能不确定具体哪个环节出现故障,为了避免浪费仿真资源,可以先通知验证平台2停止仿真,并发出警报,以便工作人员及时排查故障来源。
在一些实施例中,在执行步骤405后,可以进入步骤406。
步骤406:清除已记录的运行状态信息。
在本步骤中,无论当前芯片验证过程是否故障,检查模块HB-Checker每次检查后都会发送清零信号给清零模块HB-Cleaner,要求清零模块HB-Cleaner对记录模块21表格Busy Node Table内所有计数器清零,以清除已记录的运行状态信息。便于进入下一个计数周期。
上述验证环境的控制方法,通过在芯片验证过程中,记录验证各模块的运行状态,并对其进行运行状态检查,从而判断出当前验证环境仿真过程是否遇故障情况,当遇到仿真故障时,及时控制验证环境停止仿真运行。如此,可以对验证环境仿真挂死等故障情况进行快速的监测,有效地对验证环境由于死循环、无效等待、步骤缺少等因素引起仿真运行挂死进行报警,避免长时间等待,缩短了验证仿真时间,从而大大地减少仿真挂死运行时的时间损耗,提高了验证环境的仿真效率。并且有效地缩短无效的验证等待时间,进而减少验证环境挂死时期所产生的仿真文件的大小,从而节省服务器磁盘空间,减少空间浪费。另外也可以当作一种检查DUT是否进入Suspended(悬停)状态的手段,增强验证环境的调试手段。
另外,与现有技术相比,上述验证环境的控制方法还具备如下优点:
现有技术中,通过为验证环境设置一个仿真时间上限值,来进行报错,当需要生成log(日志)和仿真波形时,由于仿真时间太长,会导致log和波形文件占用大量磁盘空间。当出现超时错误时,一般需要将log输出等级设置为较高级别并重现错误,会导致log文件中出现大量无效信息,影响debug效率。而且不同项目间所需要的timeout上限不同,需要花费时间评估出合适的值,影响可移植性。
本实施例的报警方法可以避免无效的仿真时间太长,进而避免导致log和波形文件占用大量磁盘空间。具有良好的兼容性,不依赖验证环境的框架。具有良好的可移植性,可适用于各种DUT的验证平台2。
请参看图5,其为本申请一实施例的验证环境的控制装置500,该装置可应用于图1所示的电子设备1,并可以应用于如图2至图3B所示的验证平台2的验证环境的控制场景中,以对验证环境的仿真运行进行故障监测和控制。该装置包括:第一获取模块501、判断模块502和控制模块504,各个模块的原理关系如下:
第一获取模块501,用于获取验证环境中执行模块的运行状态信息。详细参见上述实施例中对步骤402的描述。
判断模块502,用于根据运行状态信息,判断验证环境的运行是否存在故障。详细参见上述实施例中对步骤403的描述。
控制模块504,用于当验证环境的运行存在故障时,控制验证环境的停止运行。详细参见上述实施例中对步骤405的描述。
于一实施例中,第一获取模块501用于:周期性获取验证环境中执行模块的运行状态信息。
于一实施例中,第一获取模块501用于:在芯片验证过程中,当预定事件发生时,获取验证环境中执行模块的运行状态信息。
于一实施例中,运行状态信息为执行模块执行操作的活跃度。判断模块502用于:判断活跃度是否小于或等于预设阈值。若活跃度小于或等于预设阈值,确定验证环境的运行存在故障,否则,确定验证环境的运行不存在故障。
于一实施例中,还包括:第二获取模块503,用于当所述验证环境的运行存在故障时,获取所述验证环境中当前未完成的验证信息。详细参见上述实施例中对步骤404的描述。
于一实施例中,还包括:清除模块505,用于在根据运行状态信息判断验证环境的运行是否存在故障之后,清除已记录的运行状态信息。详细参见上述实施例中对步骤406的描述。
于一实施例中,还包括:注册模块506,用于在获取验证环境中执行模块的运行状态信息之前,将验证环境中的所有执行模块进行注册,为每个执行模块创建运行状态指针,用于记录每个执行模块的运行状态信息。详细参见上述实施例中对步骤401的描述。于一实施例中,还包括:报警模块507,用于当验证环境的运行存在故障时,发出警报。
上述验证环境的控制装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (17)

1.一种验证环境的控制方法,其特征在于,包括:
获取验证环境中执行模块的运行状态信息;
根据所述运行状态信息,判断所述验证环境的运行是否存在故障;
当所述验证环境的运行存在故障时,控制所述验证环境停止运行。
2.根据权利要求1所述的方法,其特征在于,所述获取验证环境中执行模块的运行状态信息,包括:
周期性获取所述验证环境中所述执行模块的所述运行状态信息。
3.根据权利要求1所述的方法,其特征在于,所述获取验证环境中执行模块的运行状态信息,包括:
在芯片验证过程中,当预定事件发生时,获取验证环境中执行模块的运行状态信息。
4.根据权利要求1所述的方法,其特征在于,所述运行状态信息为所述执行模块执行操作的活跃度;所述根据所述运行状态信息判断所述验证环境的运行是否存在故障,包括:
判断所述活跃度是否小于或等于预设阈值;
若所述活跃度小于或等于所述预设阈值,确定所述验证环境的运行存在故障,否则,确定所述验证环境的运行不存在故障。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述运行状态信息判断所述验证环境的运行是否存在故障之后,还包括:
清除已记录的所述运行状态信息。
6.根据权利要求1所述的方法,其特征在于,在所述获取验证环境中执行模块的运行状态信息之前,还包括:
将所述验证环境中的所有执行模块进行注册,为每个所述执行模块创建运行状态指针,用于记录每个所述执行模块的运行状态信息。
7.根据权利要求1所述的方法,其特征在于,还包括:当所述验证环境的运行存在故障时,获取所述验证环境中当前未完成的验证信息。
8.根据权利要求1所述的方法,其特征在于,还包括:当所述验证环境的运行存在故障时,发出警报。
9.一种验证环境的控制装置,其特征在于,包括:
第一获取模块,用于获取验证环境中执行模块的运行状态信息;
判断模块,用于根据所述运行状态信息,判断所述验证环境的运行是否存在故障;
控制模块,用于当所述验证环境的运行存在故障时,控制所述验证环境停止运行。
10.根据权利要求9所述的装置,其特征在于,所述运行状态信息为所述执行模块执行操作的活跃度;所述判断模块用于:判断所述活跃度是否小于或等于预设阈值;若所述活跃度小于或等于所述预设阈值,确定所述验证环境的运行存在故障,否则,确定所述验证环境的运行不存在故障。
11.根据权利要求9所述的装置,其特征在于,还包括:清除模块,用于在所述根据所述运行状态信息判断所述验证环境的运行是否存在故障之后,清除已记录的所述运行状态信息。
12.根据权利要求9所述的装置,其特征在于,还包括:注册模块,用于在所述获取验证环境中执行模块的运行状态信息之前,将所述验证环境中的所有执行模块进行注册,为每个所述执行模块创建运行状态指针,用于记录每个所述执行模块的运行状态信息。
13.根据权利要求9所述的装置,其特征在于,还包括:第二获取模块,用于当所述验证环境的运行存在故障时,获取所述验证环境中当前未完成的验证信息。
14.一种验证环境的控制装置,其特征在于,包括:
记录模块,用于记录验证环境中每个执行模块的运行状态信息;
触发模块,用于基于配置的触发条件,生成触发信号;
检查模块,分别连接所述记录模块和所述触发模块,用于在接收到所述触发信号时,获取所述记录模块中记录的每个所述执行模块的运行状态信息,并基于所述运行状态信息判断所述验证环境的运行是否存在故障;
报警模块,连接所述检查模块用于在所述验证环境的运行存在故障时,发出警报;
清零模块,分别连接所述记录模块和所述检查模块,用于在所述检查模块判断所述验证环境的运行是否存在故障之后,将所述记录模块记录的每个所述执行模块的运行状态信息清零。
15.一种验证平台,其特征在于,包括:如权利要求9至13中任一项所述的验证环境的控制装置,以及还包括:
待测模块;
激励生成器,分别连接所述待测模块和所述控制装置,用于所述待测模块生成激励信号,并向所述控制装置上报所述激励生成器的运行状态信息;
收集模块,分别连接所述待测模块和所述控制装置,用于收集所述待测模块的输入端口和/或输出端口的数据,并向所述控制装置上报所述收集模块的运行状态信息;
计分模块,分别连接所述收集模块和所述控制装置,用于对所述输入端口和/或输出端口的数据进行检验,并向所述控制装置上报所述计分模块的运行状态信息。
16.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至8中任一项所述的方法。
17.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至8中任一项所述的方法。
CN202110631913.3A 2021-06-07 2021-06-07 验证环境的控制方法、装置、平台、设备和存储介质 Active CN113312246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110631913.3A CN113312246B (zh) 2021-06-07 2021-06-07 验证环境的控制方法、装置、平台、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110631913.3A CN113312246B (zh) 2021-06-07 2021-06-07 验证环境的控制方法、装置、平台、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113312246A true CN113312246A (zh) 2021-08-27
CN113312246B CN113312246B (zh) 2023-04-11

Family

ID=77378097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110631913.3A Active CN113312246B (zh) 2021-06-07 2021-06-07 验证环境的控制方法、装置、平台、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113312246B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546823A (zh) * 2021-12-27 2022-05-27 芯华章科技股份有限公司 用于重现逻辑系统设计的调试场景的方法及相关设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819480A (zh) * 2011-06-08 2012-12-12 联想(北京)有限公司 一种监控计算机存储器的方法和计算机
US20170115969A1 (en) * 2015-10-21 2017-04-27 Vayavya Labs Pvt. Ltd System and method for automatically generating device drivers for run time environments
CN106708687A (zh) * 2015-11-12 2017-05-24 青岛海信电器股份有限公司 一种基于可执行文件的芯片验证方法和装置
CN107729242A (zh) * 2017-10-12 2018-02-23 郑州云海信息技术有限公司 一种自动化测试方法、系统、装置及计算机存储介质
CN109412890A (zh) * 2018-10-17 2019-03-01 哈尔滨工业大学 基于dds的联合试验平台中间件节点状态检测方法
CN109960657A (zh) * 2019-03-26 2019-07-02 浪潮商用机器有限公司 一种测试环境部署方法及相关装置
CN110704281A (zh) * 2019-10-14 2020-01-17 山东超越数控电子股份有限公司 一种监控系统运行的方法
CN112015665A (zh) * 2020-09-30 2020-12-01 北京百度网讯科技有限公司 测试验证的回溯方法、装置、电子设备及存储介质
CN112905429A (zh) * 2021-02-20 2021-06-04 北京物芯科技有限责任公司 一种系统仿真的监控方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819480A (zh) * 2011-06-08 2012-12-12 联想(北京)有限公司 一种监控计算机存储器的方法和计算机
US20170115969A1 (en) * 2015-10-21 2017-04-27 Vayavya Labs Pvt. Ltd System and method for automatically generating device drivers for run time environments
CN106708687A (zh) * 2015-11-12 2017-05-24 青岛海信电器股份有限公司 一种基于可执行文件的芯片验证方法和装置
CN107729242A (zh) * 2017-10-12 2018-02-23 郑州云海信息技术有限公司 一种自动化测试方法、系统、装置及计算机存储介质
CN109412890A (zh) * 2018-10-17 2019-03-01 哈尔滨工业大学 基于dds的联合试验平台中间件节点状态检测方法
CN109960657A (zh) * 2019-03-26 2019-07-02 浪潮商用机器有限公司 一种测试环境部署方法及相关装置
CN110704281A (zh) * 2019-10-14 2020-01-17 山东超越数控电子股份有限公司 一种监控系统运行的方法
CN112015665A (zh) * 2020-09-30 2020-12-01 北京百度网讯科技有限公司 测试验证的回溯方法、装置、电子设备及存储介质
CN112905429A (zh) * 2021-02-20 2021-06-04 北京物芯科技有限责任公司 一种系统仿真的监控方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546823A (zh) * 2021-12-27 2022-05-27 芯华章科技股份有限公司 用于重现逻辑系统设计的调试场景的方法及相关设备
CN114546823B (zh) * 2021-12-27 2023-09-12 芯华章科技股份有限公司 用于重现逻辑系统设计的调试场景的方法及相关设备

Also Published As

Publication number Publication date
CN113312246B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
US6944796B2 (en) Method and system to implement a system event log for system manageability
TWI317868B (en) System and method to detect errors and predict potential failures
US6532552B1 (en) Method and system for performing problem determination procedures in hierarchically organized computer systems
JP6602354B2 (ja) バスハング検出
CN104850485A (zh) 一种基于bmc远程诊断服务器开机故障的方法及系统
CN112286709A (zh) 一种服务器硬件故障的诊断方法、诊断装置及诊断设备
CN113312246B (zh) 验证环境的控制方法、装置、平台、设备和存储介质
US20040225973A1 (en) Post-silicon test coverage verification
CN116049249A (zh) 报错信息处理方法、装置、系统、设备和存储介质
US6457145B1 (en) Fault detection in digital system
CN115373997A (zh) 一种多核SoC的板卡固件异常监测及核心数据导出方法
Bojan et al. Functional coverage measurements and results in post-Silicon validation of Core™ 2 duo family
Lei et al. Validating direct memory access interfaces with conformance checking
Qian et al. Load balancing on generalized hypercube and mesh multiprocessors with LAL
CN114003416B (zh) 内存错误动态处理方法、系统、终端及存储介质
US11762033B2 (en) Power failure monitoring device and power failure monitoring method
CN100369009C (zh) 使用系统管理中断信号的监控系统及方法
CN113742113A (zh) 一种嵌入式系统健康管理方法、设备及储存介质
CN114138600A (zh) 一种固件关键信息的存储方法、装置、设备及存储介质
CN111459734A (zh) 一种故障监控周期的测试方法、系统及计算机存储介质
CN113836035B (zh) 电池管理系统测试方法、装置及电子设备
CN118132359B (zh) 一种服务器自动化宕机诊断方法及装置
CN117076183B (zh) 一种错误上报方法、片上系统、计算机设备及存储介质
US8392860B1 (en) Identifying speed binning test vectors during simulation of an integrated circuit design
CN116882334B (zh) 判断仿真结束的方法及计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant