CN110059391B - 待测器件验证装置及相关产品 - Google Patents

待测器件验证装置及相关产品 Download PDF

Info

Publication number
CN110059391B
CN110059391B CN201910288745.5A CN201910288745A CN110059391B CN 110059391 B CN110059391 B CN 110059391B CN 201910288745 A CN201910288745 A CN 201910288745A CN 110059391 B CN110059391 B CN 110059391B
Authority
CN
China
Prior art keywords
instruction
current
instruction sequence
interval
current target
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.)
Active
Application number
CN201910288745.5A
Other languages
English (en)
Other versions
CN110059391A (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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201910288745.5A priority Critical patent/CN110059391B/zh
Publication of CN110059391A publication Critical patent/CN110059391A/zh
Application granted granted Critical
Publication of CN110059391B publication Critical patent/CN110059391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种待测器件验证装置及相关产品,该待测器件验证装置用于进行机器状态验证,本申请实施例通过根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,可准确、快速地对待验证器件的指令序列中的所有指令进行验证,确定导致错误的指令所在的位置,提高机器状态验证的效率。

Description

待测器件验证装置及相关产品
技术领域
本申请涉及电子技术领域,具体涉及一种待测器件验证装置及相关产品。
背景技术
随着硅材料半导体工艺接近物理极限,在单位面积的硅材料芯片上集成更多的晶体管变得越来越困难。电子器件中集成电路集成的功能越来越多,处理器需要执行的指令数量也越来越多,这就使执行器中的指令集的验证越来越复杂,对验证技术提出了新的挑战,因此,在对待验证器件进行验证时,如何准确、高效地对待验证器件进行验证成为需要考虑的问题。
发明内容
本申请实施例提供了一种待测器件验证装置及相关产品,可针对集成指令数量较多的待检测器件,自动、准确地进行机器状态验证,提升机器状态验证效率。
第一方面,提供一种待测器件验证装置,所述待测器件验证装置包括执行器、预测器和比较器,其中,
所述预测器,用于根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间;
所述执行器,用于根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点,得到所述当前目标指令区间的起始端点的第一机器状态快照;
所述比较器,用于根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确;
所述预测器,还用于在所述当前目标指令区间的起始端点的执行结果正确时,将所述当前目标指令区间的起始端点和终止端点之间的指令序列作为所述当前指令序列,并继续根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令。
第二方面,本申请实施例提供了一种待测器件验证方法,应用于待测器件验证装置,应用于待测器件验证装置,所述待测器件验证装置包括执行器、预测器和比较器,所述方法包括:
所述预测器根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间;
所述执行器根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点,得到所述当前目标指令区间的起始端点的第一机器状态快照;
所述比较器根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确;
所述预测器在所述当前目标指令区间的起始端点的执行结果正确时,将所述当前目标指令区间的起始端点和终止端点之间的指令序列作为所述当前指令序列,并继续根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,之后重复调用执行器和比较器,直至获得所述导致错误的指令。
可选地,所述根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,包括:
所述预测器根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,其中,所述当前目标指令区间的起始端点对应的指令序号大于或等于所述当前指令序列的起始指令的指令序号,且所述当前目标指令区间的起始端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号;所述当前目标指令区间的终止端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号。
可选地,所述指令序列信息包括所述当前指令序列的起始指令的指令序号ai,以及终止指令的指令序号bi,所述根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,包括:
所述预测器预测所述当前目标指令区间的起始端点的指令序号为
Figure BDA0002023385010000021
所述当前目标指令区间的终止端点对应的指令序号为bi;或者,
所述预测器根据所述目标函数确定所述当前目标指令区间的起始端点和终止端点,其中,所述目标函数根据预设的概率信息确定;或者,
所述预测器获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
所述预测器将所述当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,所述k为超参数,所述L1为所述当前标记序列的长度。
可选地,所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间,包括:
若所述当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号,所述预测器则将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,所述当前指令序列的终止指令的指令序号不变,根据二分法预测所述当前指令序列的当前目标指令区间;
若所述当前目标指令区间的终止端点的指令序号不等于所述当前指令序列的终止指令的指令序号,且所述当前目标指令区间内指令的执行结果均正确时,所述预测器将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变;之后,根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间,或者,根据二分法预测所述当前目标指令区间。
可选地,所述方法还包括:
所述执行器根据所述当前目标指令区间的起始端点的机器状态快照,运行所述当前目标指令区间中的指令序列;
所述比较器确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确;在所述当前目标指令区间的终止端点的机器状态快照的执行结果正确时,则确定所述当前目标指令区间内指令的执行结果均正确。
可选地,所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确时,所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间,包括:
所述预测器将所述当前目标指令区间的终止端点的指令序号作为所述当前指令序列的终止指令的指令序号,将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,根据所述二分法预测所述当前指令序列的当前目标指令区间。
可选地,所述方法还包括:
在所述当前目标指令区间的起始端点的执行结果不正确时,所述预测器将所述当前目标指令区间的终止端点对应的指令序号作为所述当前指令序列的终止指令的指令序号,所述当前目标指令序列的起始指令的指令序号不变;
所述预测器根据预设的目标函数重新预测所述当前目标指令区间,或者,通过预设的深度神经网络重新预测所述当前目标指令区间;或者,根据二分法重新预测所述当前目标指令区间;
之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令。
可选地,所述根据所述当前指令序列执行前的机器状态执行所述当前指令序列至所述当前目标指令区间的起始端点,包括:
若所述起始端点前面存在至少一个同步点,所述执行器确定所述至少一个同步点中距离所述起始端点最近的目标同步点,根据所述目标同步点对应的指令执行前的机器状态执行所述当前指令序列至所述起始端点。
第三方面,本申请实施例提供了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第二方面所述的方法步骤。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如第二方面所述的方法步骤。
第五方面,本申请实施例提供了一种芯片,该芯片包括上述第一方面所述待测器件验证装置。
第六方面,本申请实施例提供了一种芯片封装结构,该芯片封装结构包括上述第五方面所述的芯片;
可以看出,本申请实施例的待测器件验证装置,通过预测器根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,执行器根据当前指令序列中起始指令运行之前的机器状态,执行当前指令序列至所述当前目标指令区间的起始端点,得到当前目标指令区间的起始端点的第一机器状态快照,比较器根据第一机器状态快照确定当前目标指令区间的起始端点的执行结果是否正确,预测器在当前目标指令区间的起始端点的执行结果正确时,将当前目标指令区间的起始端点和终止端点之间的指令序列作为所述当前指令序列,并继续根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,之后重复调用执行器和比较器,直至获得所述导致错误的指令,本申请实施例通过预测导致错误的指令所在的当前目标指令区间,反复验证当前目标指令区间对应的指令序列,不断缩小当前目标指令区间的范围,通过反复验证指令序列,获得导致当前指令序列运行出现比较结果错误的目标指令,从而,可准确、快速地对指令序列进行验证,确定导致错误的指令所在的位置,提高机器状态验证的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种待测器件验证装置的结构示意图;
图2A是本申请实施例提供的一种待测器件验证方法的流程示意图;
图2B是本申请实施例提供的一种根据目标算法重新预测当前目标指令区间的演示示意图;
图2C是本申请实施例提供的一种根据二分法重新预测当前目标指令区间的演示示意图;
图2D是本申请实施例提供的一种根据目标算法预测所述当前指令序列的当前目标指令区间的演示示意图;
图2E是本申请实施例提供的一种根据二分法预测所述当前指令序列的当前目标指令区间的演示示意图;
图2F是本申请实施例提供的一种根据目标算法预测所述当前指令序列的当前目标指令区间的演示示意图;
图2G是本申请实施例提供的一种指令序列的演示示意图;
图3是本申请实施例提供的一种组板卡的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
目前,为了应对集成功能复杂、数量庞大的指令集的待验证器件(DUT)等较为复杂的验证场景,申请人着眼于提升待验证器件的可观测性和可控制性,提出使用保存机器状态快照的方法来使验证更为灵活便捷。
其中,待验证器件的可观测性是指验证人员对待验证器件内部的观测能力。验证人员可以通过仿真波形和环境打印观测仿真过程中待验证器件的机器状态。对于存储空间较大的RAM,采用文件保存的形式会更为易于分析。待验证器件的可控制性是指验证人员对待验证器件机器状态的控制能力。例如,验证人员可以使用SystemVerilog中的force语句对待验证器件中的信号进行强制赋值操作、或者通过改变待验证器件接口信号来改变待验证器件的运行状态、或者通过后门访问的方法为待验证器件内部的存储器赋值等等。对于复杂的异构多核系统,提升待验证器件的可观测性和可控制性,有利于验证人员分析问题。从这个观点出发,我们提出一种利用机器状态快照来提升验证效率的方法。其中,机器状态是指,在运行过程中待验证器件中RAM、寄存器、接口信号的取值和模块内部状态机的状态。机器状态快照是指将机器状态用文件形式保存起来。文件可以按待验证器件的结构组织,便于验证人员分析。
然而,在验证过程中,由于待验证器件的设计和环境搭建方法等原因,并不是每一种激励的输出都能被比较。例如,一些指令的结果在写入RAM时可能存在乱序,使得验证人员在抓取输出信号时难以确定输出属于哪一个指令。又如,不同种类的指令可能共用同一个功能部件,由于功能部件中复杂的时序关系难以确定其输出属于哪一个指令。再如,比较每一种指令的输出可能导致验证环境过于复杂,不便于维护。这些原因可能导致在验证过程中的比对过程是不完全的,也就是说,当一段输入激励输入待验证器件后若其输出结果与参考模型不一致,很可能不是激励序列中最后最后环境报错的输入激励所导致的,而可能是激励序列中环境报错的输入激励之前的激励导致的。在激励序列中间定位导致待验证器件运行出错的激励很可能是一个非常花费时间的过程。例如,在冗长的指令序列中有两条输入输出IO指令发生了数据竞争,导致待验证器件和参考模型的模拟结果之间的比较结果不一致。由于发生数据竞争的位置可能被反复读写过,使得最后出错的位置离发生数据竞争的位置可能相距甚远,寻找出错的原因是一件非常耗费时间的事情。
针对上述问题,可将待验证器件中的指令集中的指令分为两种:可以实时对比结果的指令和不能实时对比结果的指令。其中,可以实时对比结果的指令是指在待验证器件仿真过程中,指令执行完之后,验证环境能从待验证器件中抓取某些信号取得其运行结果并进行比对的指令,也就是说环境能实时地知道指令执行的对错。不能实时对比结果的指令则是环境无法在待验证器件仿真过程中抓取信号从而比对其结果的指令。对于不能实时比较结果的指令,若其在仿真过程中的运行发生错误,环境对该错误的检测会有延迟,如通过在指令运行完之后比较RAM中存留的数据发现。所以,对于可以实时对比结果的指令和不能实时对比结果的指令的混合序列,若在指令序列运行完之后发现RAM或寄存器中存留数据等最终机器状态不正确,而指令序列运行过程中未发现错误,那么就需要回溯是指令序列中哪个指令导致运行错误。即使是在运行过程中发现可以实时对比结果的指令运行错误,也有可能是因为可以实时对比结果的指令与其之间的不能实时对比结果的指令之间存在联系(如数据相关等),由这些存在联系的不能实时对比结果的指令运行错误所导致。因此,为了能快速定位导致待验证器件仿真结果出错的指令,本申请提出用机器状态快照针对复杂的异构多核系统的待检测器件进行验证的方案。
下面介绍本申请使用的待测器件验证装置。参阅图1,提供了一种待测器件验证装置,该待测器件验证装置包括处理器101和存储单元102,其中,处理器101包括执行器10、预测器11、比较器12,所述存储单元102包括寄存器21和随机存取存储器RAM22。其中,
所述预测器11,用于根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间;
所述执行器10,用于根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点,得到所述当前目标指令区间的起始端点的第一机器状态快照;
所述比较器12,用于根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确;
所述预测器11,还用于在所述当前目标指令区间的起始端点的执行结果正确时,根据目标算法重新预测导致错误的指令所在的当前目标指令区间,之后重复调用所述执行器10和所述比较器12,直至获得所述导致错误的指令。
其中,机器状态包括:在运行过程中待验证器件中RAM的状态、寄存器的状态、接口信号的取值和模块内部状态机的状态等等。机器状态快照是指将机器状态用文件形式保存起来。文件可以按待测器件的结构组织,便于验证人员分析。例如,待测器件的结构组织可以是树型结构,该机器状态快照也可以按照与所述待测器件一致的树形结构进行存储。
其中,所述寄存器21和所述RAM22,用于存储待验证的原始指令序列中每一指令的操作数和输出结果,所述指令序列中包含n个指令,n为大于1的整数。
其中,比较器12可根据第一机器状态快照确定当前目标指令区间的起始端点的执行结果是否正确,可选地,比较器12可通过存储单元102预先存储指令序列中每一指令运行时对应的正确结果,进而,在得到当前目标指令区间的起始端点的第一机器状态快照后,可将第一机器状态快照中当前目标指令区间的起始端点的执行结果与预先存储的上述当前目标指令区间的起始端点对应的指令正确结果进行比较,若执行结果与正确结果一致,比较器12可确定当前目标指令区间的起始端点的执行结果正确。若执行结果与正确结果不一致,比较器12可确定当前目标指令区间的起始端点的执行结果不正确。
其中,若起始指令是指令序列中的第一条指令,则起始指令运行之前的机器状态为指令序列验证之前的初始状态;若起始指令是指令序列中除第一条指令以外的其他指令,则起始指令运行之前的机器状态为起始指令前一指令对应的机器状态,例如,若起始指令为第50条指令,则起始指令运行之前的机器状态是指第49条指令对应的机器状态。
其中,导致错误的指令表示,存在指令本身出错导致指令序列执行错误的指令,或者,也有可能是存在触发硬件出现bug导致指令序列执行出错的指令。
在一个可能的实施例中,待测器件验证装置还包括参考模型(Reference model),参考模型用于在执行器10执行指令序列中的指令时,同步获取正在执行的指令,并根据所述指令进行模拟,得到模拟的正确结果。即,参考模型可以同步执行指令序列中的指令,并获得该指令序列中各个指令的执行结果(该执行结果可以是各个指令对应的机器状态快照)。本申请实施例认为参考模型的执行结果总是正确的。进一步地,比较器12可根据第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确,具体地,比较器12可将第一机器状态快照中当前目标指令区间的起始端点的执行结果与参考模型中模拟的正确结果进行比较,若执行结果与正确结果一致,可确定当前目标指令区间的起始端点的执行结果正确。若执行结果与正确结果不一致,可确定当前目标指令区间的起始端点的执行结果不正确。
在一个可能的实施例中,在所述根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间方面,所述预测器11具体用于:
根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,其中,所述当前目标指令区间的起始端点对应的指令序号大于或等于所述当前指令序列的起始指令的指令序号,且所述当前目标指令区间的起始端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号;所述当前目标指令区间的终止端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号。即所述当前目标指令区间为所述当前指令序列中的子区间。
在一个可能的实施例中,所述指令序列信息包括所述当前指令序列的起始指令的指令序号ai,以及终止指令的指令序号bi,在根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点方面,所述预测器具体用于:
预测所述当前目标指令区间的起始端点的指令序号为
Figure BDA0002023385010000081
所述当前目标指令区间的终止端点对应的指令序号为bi;或者,
根据所述目标函数确定所述当前目标指令区间的起始端点和终止端点,其中,所述目标函数根据预设的概率信息确定;或者,
获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
将所述当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,所述k为超参数,所述L1为所述当前标记序列的长度。
在一个可能的实施例中,在所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间方面,所述预测器具体用于:
若所述当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号,则将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,所述当前指令序列的终止指令的指令序号不变,根据二分法预测所述当前指令序列的当前目标指令区间;
若所述当前目标指令区间的终止端点的指令序号不等于所述当前指令序列的终止指令的指令序号,且所述当前目标指令区间内指令的执行结果均正确时,将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变;之后,根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间,或者,根据二分法预测所述当前目标指令区间。
在一个可能的实施例中,所述执行器,还用于根据所述当前目标指令区间的起始端点的机器状态快照,运行所述当前目标指令区间中的指令序列;
所述比较器,还用于确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确;在所述当前目标指令区间的终止端点的机器状态快照的执行结果正确时,则确定所述当前目标指令区间内指令的执行结果均正确。
在一个可能的实施例中,在所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确时,在所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间方面,所述预测器具体用于:
将所述当前目标指令区间的终止端点的指令序号作为所述当前指令序列的终止指令的指令序号,将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,根据所述二分法预测所述当前指令序列的当前目标指令区间。
在一个可能的实施例中,所述预测器还用于:
在所述当前目标指令区间的起始端点的执行结果不正确时,将所述当前目标指令区间的终止端点对应的指令序号作为所述当前指令序列的终止指令的指令序号,所述当前目标指令序列的起始指令的指令序号不变;
根据预设的目标函数重新预测所述当前目标指令区间,或者,通过预设的深度神经网络重新预测所述当前目标指令区间;或者,根据二分法重新预测所述当前目标指令区间;
之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令。
在一个可能的实施例中,在所述根据所述当前指令序列执行前的机器状态执行所述当前指令序列至所述当前目标指令区间的起始端点方面,所述执行器具体用于:
若所述起始端点前面存在至少一个同步点,确定所述至少一个同步点中距离所述起始端点最近的目标同步点,根据所述目标同步点对应的指令执行前的机器状态执行所述当前指令序列至所述起始端点。
在一个可能的实施例中,所述存储单元102,用于将来自于所述执行器10的机器状态快照按照与所述待测器件的架构一致的树结构进行存储。
如图2A所示,图2A为本申请实施例提供的一种待测器件验证方法的流程示意图,应用于待测器件验证装置,所述待测器件验证装置包括执行器、预测器和比较器;所述方法包括:
201、预测器根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间。
本申请实施例中,为了保证准确地对指令序列进行验证,寻找实际导致比对结果出现错误的位置,可分多轮对指令序列进行验证,每一轮可根据当前指令序列当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间。
可选地,上述步骤201中,根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,具体可包括以下步骤:
21、预测器根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,其中,所述当前目标指令区间的起始端点对应的指令序号大于或等于所述当前指令序列的起始指令的指令序号,且所述当前目标指令区间的起始端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号;所述当前目标指令区间的终止端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号。
其中,当前指令序列的指令序列信息可包括当前指令序列中指令的指令序号以及当前指令序列运行过程中指令的执行结果等等,具体地,当前指令序列的指令序列信息可包括当前指令序列的起始指令的指令序号、当前指令序列的终止指令的指令序号。本申请实施例中,预测器可根据当前指令序列的指令序列信息,确定当前目标指令区间的起始端点和终止端点,例如,当前指令序列为(Iai,Ibi),i=0,1,2,3...,可确定当前目标指令区间为(ci,di),其中,Iai为当前指令序列的起始指令,ai为当前指令序列的起始指令的指令序号,Ibi为当前指令序列的终止指令,bi为当前指令序列的终止指令的指令序号,ci为当前目标指令区间的起始端点的指令序号,di为当前目标指令区间的终止端点的指令序号,其中,ai<ci<di≤bi
可选地,所述指令序列信息包括所述当前指令序列的起始指令的指令序号ai,以及终止指令的指令序号bi,上述步骤21中,根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,可包括以下步骤:
预测器预测所述当前目标指令区间的起始端点的指令序号为
Figure BDA0002023385010000101
所述当前目标指令区间的终止端点对应的指令序号为bi
可选地,上述步骤21中,根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,可包括以下步骤:
预测器根据预设的目标函数确定所述当前目标指令区间的起始端点和终止端点,其中,所述目标函数根据预设的概率信息确定。
其中,上述目标函数为根据所述当前指令序列的起始指令的指令序号与终止指令的指令序号确定所述目标指令区间的起始端点和结束端点的函数,具体地,预测器可将当前指令序列的起始指令的指令序号ai与bi代入预设的目标函数中,得到当前目标指令区间的起始端点的指令序号ci和终止端点的指令序号di。具体地,预测器可根据概率统计可以获得概率较高的概率上限值和概率下限值,则根据该统计出来的概率和指令的起始指令位置和终止指令位置,确定出目标指令区间。例如,概率的上下限为分别x,y,起始指令位置为ai,终止指令位置为bi,则ci=x*(bi-ai)+ai;di=y*(bi-ai)+ai;(ci,di)即为确定出的目标指令区间。
可选地,上述步骤21中,根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,可包括以下步骤:
预测器获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
将所述当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,所述k为超参数,所述L1为所述当前标记序列的长度。
其中,针对当前指令序列,预测器可将当前指令序列中可以实时比对结果的指令标记为1,将当前指令序列中不能实时比对结果的指令标记为0,从而可将当前指令序列转换为0/1标记组成的当前标记指令序列,然后将当前标记指令序列输入深度神经网络,通过采用深度神经网络对当前标记指令序列进行运算(如正向推理运算),得到输出结果,输出结果为当前目标指令区间的起始端点的指令序号和终止端点的指令序号。
202、执行器根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点,得到所述当前目标指令区间的起始端点的第一机器状态快照。
本申请实施例中,在执行原指令序列之前,执行器可根据待测器件的初始状态快照执行指令序列,并将该初始状态快照作为当前指令序列中起始指令运行之前的机器状态。进一步地,本申请实施例中可以认为该初始状态快照为正确的。然后,执行器根据起始指令运行之前的机器状态执行指令序列至当前目标指令区间的起始端点Ici,并保存Ici对应的第一机器状态快照,本申请实施例中,起始端点对应的第一机器状态快照是指,运行原指令序列的起始指令运行至目标指令区间的起始端点之间的指令序列,获得的机器状态快照。其中,第一机器状态快照包括在运行所述执行器的过程中所述RAM的状态、所述寄存器的状态、接口信号的取值和模块内部状态机的状态,第一机器状态快照用于记录指令的执行结果。
203、比较器根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确。
其中,比较器可根据第一机器状态快照确定当前目标指令区间的起始端点的执行结果是否正确,具体地,比较器可通过存储单元102预先存储指令序列中每一指令运行时对应的正确结果,进而,在得到当前目标指令区间的起始端点的第一机器状态快照后,可将第一机器状态快照中当前目标指令区间的起始端点的执行结果与预先存储的上述当前目标指令区间的起始端点的正确结果(可以是指令对应的正确的机器状态快照)进行比较,若执行结果与正确结果一致,可确定当前目标指令区间的起始端点的执行结果正确。若执行结果与正确结果不一致,可确定当前目标指令区间的起始端点的执行结果不正确。
可选地,待测器件验证装置还包括参考模型,参考模型可在执行器执行指令序列中的指令时,同步获取正在执行的指令,并根据所述指令进行模拟,得到模拟的正确结果。即,参考模型可以同步执行指令序列中的指令,并获得该指令序列中各个指令的执行结果(该执行结果可以是各个指令对应的机器状态快照)。本申请实施例认为参考模型的执行结果总是正确的。进一步地,比较器可根据第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确,具体地,比较器可将第一机器状态快照中当前目标指令区间的起始端点的执行结果与参考模型中模拟的正确结果进行比较,若执行结果与正确结果一致,可确定当前目标指令区间的起始端点的执行结果正确。若执行结果与正确结果不一致,可确定当前目标指令区间的起始端点的执行结果不正确。
204、预测器在所述当前目标指令区间的起始端点的执行结果正确时,根据目标算法重新预测导致错误的指令所在的当前目标指令区间,之后返回步骤202,重复执行步骤202-204,直至获得所述导致错误的指令。
其中,目标算法是指预先设定的用于重新预测当前目标指令区间的算法,目标算法可以为以下任意一种:二分法,根据目标函数预测当前目标指令区间的算法,或者,根据深度神经网络预测当前目标指令区间的算法。
其中,目标函数为通过统计当前目标指令区间的上限值和下限值的概率值确定的函数,具体地,统计针对不同的指令序列的起始指令的指令序号、终止指令的指令序号,当前目标指令区间的上限值和下限值的概率值,进而根据概率较高的当前目标指令区间的上限值和下限值和指令序列的起始指令的指令序号、终止指令的指令序号之间的对应关系进行拟合得到的目标函数。
其中,深度神经网络是指通过机器学习算法从多次运行目标函数的运算中发现导致错误的指令分布的规律的深度神经网络,其中,通过机器学习算法学习目标函数之后,可以得到的导致错误的指令所在的当前目标指令区间的起始端点和终止端点的分布规律。
其中,二分法是指获得当前指令序列的中点的指令序号,并根据当前指令序列的中点的指令序号、当前指令序列的起始指令的指令序号及终止指令的指令序号,确定当前目标区间的方式。
其中,导致错误的指令是指导致所述当前指令序列运行出现比较结果错误的指令。
请参阅图2B,图2B为本申请实施例提供的一种根据目标算法重新预测当前目标指令区间的演示示意图,其中,当前指令序列的当前起始指令为Iai,当前终止指令为Ibi,在当前目标指令区间的起始端点Ici的执行结果正确时,预测器可根据目标算法重新预测导致错误的指令所在的当前目标指令区间,然后,重复调用所述执行器和所述比较器,直至获得导致错误的指令。具体地,预测器可对当前指令序列进行更新,得到下一起始指令Iai+1和下一终止指令Ibi+1,将下一起始指令Iai+1至下一终止指令Ibi+1的指令序列作为更新后的当前指令序列,然后根据目标算法重新确定更新后的当前指令序列的当前目标指令区间的起始端点和终止端点,如此,每次重新预测的当前目标指令区间的范围会逐渐缩小,直到获得导致错误的指令。
可选地,本申请实施例中,在每次对当前指令序列进行更新后,还可进一步确定当前指令序列的终止指令的指令序号与起始指令的指令序号的差值是否大于1,若差值不大于1,则终止“重复执行步骤202-204”的步骤。
可选地,上述步骤204中,预测器根据目标算法重新预测导致错误的指令所在的当前目标指令区间,可包括以下步骤:
41、若所述当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号,则将所述当前目标指令区间的起始端点作为所述当前指令序列的起始指令的指令序号,所述当前指令序列的终止指令的指令序号不变,预测器根据二分法预测所述当前指令序列的当前目标指令区间。
其中,在当前目标指令区间的起始端点Ici的执行结果正确,且当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号时,预测器可对当前指令序列进行更新,新的当前指令序列的起始指令的指令序号为当前目标指令区间的起始端点,新的当前指令序列的终止指令的指令序号不变,进而,可根据二分法预测所述当前指令序列的当前目标指令区间。
可选地,上述步骤41中,根据所述二分法预测所述当前指令序列的当前目标指令区间,所述预测器具体用于:
预测器预测所述当前目标指令区间的起始端点的指令序号为
Figure BDA0002023385010000121
所述当前目标指令区间的终止端点对应的指令序号为bi,其中,ai为所述当前指令序列的起始指令的指令序号,bi为所述当前指令序列的终止指令的指令序号。
请参阅图2C,图2C为本申请实施例提供的一种根据二分法重新预测当前目标指令区间的演示示意图,如图2C所示,当前起始指令为Iai,当前终止指令为Ibi,在当前目标指令区间的起始端点Ici的执行结果正确,且当前目标指令区间的终止端点的指令序号等于当前指令序列的终止指令的指令序号时,预测器可对当前指令序列进行更新,得到下一起始指令Iai+1和下一终止指令Ibi+1,将下一起始指令Iai+1至下一终止指令Ibi+1的指令序列作为更新后的当前指令序列,然后根据二分法重新预测更新后的当前指令序列的当前目标指令区间的起始端点的指令序号ci+1和终止端点的指令序号di+1,其中,
Figure BDA0002023385010000131
di+1=bi,Iai+1为更新后的当前指令序列的起始指令,Ibi+1为更新后的当前指令序列的终止指令。
可选地,本申请实施例中,在当前目标指令区间的起始端点Ici的执行结果正确,且当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号时,预测器还可根据预设的目标函数重新预测当前目标指令区间,或者,通过预设的深度神经网络重新预测当前目标指令区间,或者,根据所述二分法预测所述当前目标指令区间。
可选地,上述步骤204中,预测器根据目标算法重新预测导致错误的指令所在的当前目标指令区间,可包括以下步骤:
42、若所述当前目标指令区间的终止端点的指令序号不等于所述当前指令序列的终止指令的指令序号,且所述当前目标指令区间内指令的执行结果均正确时,预测器将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变;
43、预测器根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间,或者,根据所述二分法预测所述当前目标指令区间。
请参阅图2D,图2D为本申请实施例提供的一种根据目标算法预测所述当前指令序列的当前目标指令区间的演示示意图,如图2D所示,当前起始指令为Iai,当前终止指令为Ibi,在当前目标指令区间的终止端点的指令序号不等于当前指令序列的终止指令的指令序号,且当前目标指令区间内指令的执行结果均正确时,预测器可对当前指令序列进行更新,得到下一起始指令Iai+1和下一终止指令Ibi+1,将下一起始指令Iai+1至下一终止指令Ibi+1的指令序列作为更新后的当前指令序列,具体地,可将当前目标指令区间的终止端点作为新的当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变,然后根据目标函数、深度神经网络或者二分法重新预测更新后的当前指令序列的当前目标指令区间的起始端点的指令序号ci+1和终止端点的指令序号di+1
其中,针对更新后的当前指令序列,预测器可根据概率统计可以获得概率较高的概率上限值和概率下限值,则根据该统计出来的概率和更新后的当前指令序列的起始指令位置Iai+1和终止指令位置Ibi+1,确定出目标指令区间。例如,概率的上下限为分别x,y,起始指令位置为ai+1,终止指令位置为bi+1,则ci+1=x*(bi+1-ai+1)+ai+1;di+1=y*(bi+1-ai+1)+ai+1;(ci+1,di+1)即为确定出的目标指令区间。
或者,预测器可通过预设的深度神经网络重新预测所述当前目标指令区间。
可选地,上述步骤43中,所述预测器通过预设的深度神经网络重新预测所述当前目标指令区间,可包括以下步骤:
A1、预测器获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
A2、预测器将所述当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,所述k为超参数,所述L1为所述当前标记序列的长度。
其中,针对更新后的当前指令序列,可获取当前指令序列对应的当前标记指令序列,当前指令序列中可以实时比对结果的指令标记为1,将当前指令序列中不能实时比对结果的指令标记为0,将当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的当前目标指令区间的起始端点和终止端点,所述k为超参数,L1为所述当前标记序列的长度。
或者,预测器还可根据所述二分法预测所述当前目标指令区间。即预测器预测所述当前目标指令区间的起始端点的指令序号为
Figure BDA0002023385010000141
所述当前目标指令区间的终止端点对应的指令序号为bi,其中,ai为所述当前指令序列的起始指令的指令序号,bi为所述当前指令序列的终止指令的指令序号。
可选地,本申请实施例中,在执行步骤42之前,该方法还可包括以下步骤:
B1、执行器根据所述当前目标指令区间的起始端点的机器状态快照,运行所述当前目标指令区间中的指令序列;
B2、比较器确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确;在所述当前目标指令区间的终止端点的机器状态快照的执行结果正确时,则确定所述当前目标指令区间内指令的执行结果均正确。
其中,在当前目标指令区间的起始端点Ici的执行结果正确,且当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号时,执行器可继续执行当前指令序列至当前目标指令序列的终止端点对应的指令Idi,并由比较器确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确,若正确,则执行步骤42中,将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变的步骤。
可选地,上述步骤204中,在所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确时,预测器根据目标算法重新预测导致错误的指令所在的当前目标指令区间,可包括以下步骤:
44、预测器将所述当前目标指令区间的终止端点的指令序号作为所述当前指令序列的终止指令的指令序号,将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,根据所述二分法预测所述当前指令序列的当前目标指令区间。
请参阅图2E,图2E为本申请实施例提供的一种根据二分法预测所述当前指令序列的当前目标指令区间的演示示意图,如图2E所示,当前起始指令为Iai,当前终止指令为Ibi,在当前目标指令区间的终止端点的指令序号不等于当前指令序列的终止指令的指令序号,且当前目标指令区间的终止端点Idi的机器状态快照的执行结果不正确时,可对当前指令序列进行更新,得到下一起始指令Iai+1和下一终止指令Ibi+1,将下一起始指令Iai+1至下一终止指令Ibi+1的指令序列作为更新后的当前指令序列,具体地,将当前目标指令区间的终止端点的指令序号作为当前指令序列的终止指令的指令序号,将当前目标指令区间的起始端点的指令序号作为当前指令序列的起始指令的指令序号,然后根据二分法重新预测更新后的当前指令序列的当前目标指令区间的起始端点的指令序号ci+1和终止端点的指令序号di+1
可选地,本申请实施例中,在执行步骤203后,还可包括以下步骤:
C1、所述预测器在所述当前目标指令区间的起始端点的执行结果不正确时,将所述当前目标指令区间的终止端点对应的指令序号作为所述当前指令序列的终止指令的指令序号,所述当前目标指令序列的起始指令的指令序号不变;
C2、根据预设的目标函数重新预测所述当前目标指令区间,或者,通过预设的深度神经网络重新预测所述当前目标指令区间;或者,根据所述二分法重新预测所述当前目标指令区间;
C3、之后重复调用所述执行器和所述比较器,返回步骤202,重复执行步骤202、203以及步骤C1~C3,直至获得所述导致错误的指令。
请参阅图2F,图2F为本申请实施例提供的一种根据目标算法预测所述当前指令序列的当前目标指令区间的演示示意图,如图2F所示,当前起始指令为Iai,当前终止指令为Ibi,在所述当前目标指令区间的起始端点Ici的执行结果不正确时,可对当前指令序列进行更新,得到下一起始指令Iai+1和下一终止指令Ibi+1,将下一起始指令Iai+1至下一终止指令Ibi+1的指令序列作为更新后的当前指令序列,具体地,将当前目标指令区间的终止端点对应的指令序号作为当前指令序列的终止指令的指令序号,当前目标指令序列的起始指令的指令序号不变,然后根据二分法、目标函数或者深度神经网络重新预测更新后的当前指令序列的当前目标指令区间的起始端点的指令序号ci+1和终止端点的指令序号di+1
可选地,本申请实施例中,在所述预测器用于根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间的步骤之前,还可包括以下步骤:
D1、所述预测器在所述当前指令序列的长度大于预设指令序列长度时,根据所述预设指令序列长度确定所述当前指令序列的起始指令和终止指令。
其中,可确定当前执行次数,若所述当前执行次数满足如下预设条件:
Figure BDA0002023385010000151
j为正数,j为所述当前执行次数,n为原始指令序列的指令长度,L2为预设指令序列长度;
确定所述当前指令序列的终止指令的指令序号为((j+1)*L2-1);
若所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确,确定所述当前指令序列的起始指令的指令序号为j*L2,所述当前指令序列的终止指令的指令序号不变,之后返回所述获取所述当前指令序列对应的当前标记指令序列的步骤;
若所述当前执行次数不满足如下预设条件:
Figure BDA0002023385010000161
针对指令对序号大于bi的所有指令,执行所述获取所述当前指令序列对应的当前标记指令序列的步骤。
请参阅图2G,图2G为本申请实施例提供的一种指令序列的演示示意图,如图2G所示,指令序列包含可以实时对比结果的指令以及不能实时对比结果的指令,本申请实施例中,原始指令序列的长度为n,若n较大,且预设的深度神经网络能接受的指令序列长度为L2,则,需要将原指令序列切分为多个指令序列,切分后的指令序列的长度不大于L2。进而,针对切分后的多段指令序列可依次进行验证,具体地,可针对每一段指令序列,将每一段指令序列作为当前指令序列,然后,通过获取所述当前指令序列对应的当前标记指令序列,将所述当前标记序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点的步骤,以确定当前目标指令区间的起始端点和终止端点。
举例说明,为了便于说明,假定原始指令序列的长度n为100,预设的深度神经网络能接受的指令序列长度L2为30,j的初始值为0,可以看出,当j=0,1,2,3时,满足如下条件:
Figure BDA0002023385010000162
则j=0时,ai=1,bi=(j+1)*L2-1=29,将(0,29)的指令序列作为当前指令序列;若当前目标指令区间的终止端点的机器状态快照的执行结果不正确,确定所述当前指令序列的起始指令的指令序号为j*L=0,当前指令序列的终止指令的指令序号不变,即bi=29;若当前目标指令区间的终止端点的机器状态快照的执行结果正确,继续执行指令序列,j=1时,ai=30,bi=(j+1)*L2-1=59,若当前目标指令区间的终止端点的机器状态快照的执行结果不正确,确定所述当前指令序列的起始指令的指令序号为j*L=30,当前指令序列的终止指令的指令序号不变,即bi=59;若当前目标指令区间的终止端点的机器状态快照的执行结果正确,继续执行指令序列,j=2时,ai=60,bi=(j+1)*L2-1=89,若当前目标指令区间的终止端点的机器状态快照的执行结果不正确,确定所述当前指令序列的起始指令的指令序号为j*L=60,当前指令序列的终止指令的指令序号不变,即bi=89;若当前目标指令区间的终止端点的机器状态快照的执行结果正确,继续执行指令序列,j=3时,不满足如下条件:
Figure BDA0002023385010000163
因此,可针对指令对序号大于bi的所有指令,执行所述获取所述当前指令序列对应的当前标记指令序列的步骤,即,执行90至100的指令。
可选地,本申请实施例中,在步骤203中,根据所述当前指令序列执行前的机器状态执行所述当前指令序列至所述当前目标指令区间的起始端点,可包括以下步骤:
若所述起始端点前面存在至少一个同步点,所述执行器确定所述至少一个同步点中距离所述起始端点最近的目标同步点,根据所述目标同步点对应的指令执行前的机器状态执行所述当前指令序列至所述起始端点。
本申请实施例中,指令序列中可能存在至少一个同步点,其中,同步点可以是同步指令,同步点也可以是待测器件所支持的同步操作,在进行机器验证的过程中,同步点能够保证在其之前的指令已经全部被执行完毕,同步点之后的指令对应的快照能够用于恢复模拟过程,因此,可在每一轮执行当前指令序列过程中,确定至少一个同步点中距离当前目标指令区间的起始端点最近的目标同步点,例如,当前目标指令区间(ci,di),在当前指令序列(ai,bi)中存在多个同步点,可确定距离ci最近的目标同步点,从而,无需重复执行从ai到目标同步点的指令,而直接从目标同步点开始执行当前目标指令区间的指令至当前目标指令区间的起始端点Ici
可选地,本申请实施例中,所述待测器件验证装置还包括存储单元,所述方法还包括:
存储单元将来自于所述执行器的机器状态快照按照与所述待测器件的架构一致的树结构进行存储。
其中,机器状态快照可以通过与待测器件的架构一致的树结构进行存储,从而便于找到验证人员感兴趣的部件对应的机器状态快照。具体地,一个部件的机器状态快照可以存储在一个单独的字典内,因此包含多个部件的硬件系统可以包含多个子字典。此外,为便于机器状态快照的查找,可以设置一个包括所有机器状态快照的路径的索引文件,帮助验证人员进行查找。
可以看出,本申请提供的技术方案通过预测器根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,执行器根据当前指令序列中起始指令运行之前的机器状态,执行当前指令序列至所述当前目标指令区间的起始端点,得到当前目标指令区间的起始端点的第一机器状态快照,比较器根据第一机器状态快照确定当前目标指令区间的起始端点的执行结果是否正确,预测器在当前目标指令区间的起始端点的执行结果正确时,将当前目标指令区间的起始端点和终止端点之间的指令序列作为所述当前指令序列,并继续根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,之后重复调用执行器和比较器,直至获得导致当前指令序列运行出现比较结果错误的目标指令,本申请实施例通过预测导致错误的指令所在的当前目标指令区间,反复验证当前目标指令区间对应的指令序列,不断缩小当前目标指令区间的范围,通过反复验证指令序列,获得导致当前指令序列运行出现比较结果错误的目标指令,从而,可准确、快速地对指令序列进行验证,确定导致错误的指令所在的位置,提高机器状态验证的效率。
本申请还揭露了一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行如图2A示的待测器件验证方法的步骤。
本申请还揭露了一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如图2A所示的待测器件验证方法的步骤。
在一些实施例里,还公开了一种芯片,其包括了上述待测器件验证装置。
在一些实施例里,公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,公开了一种板卡,其包括了上述芯片封装结构。请参阅图3,图3提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子装置,其包括了上述芯片或者上述板卡。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种待测器件验证装置,其特征在于,所述待测器件验证装置包括执行器、预测器和比较器,其中,
所述预测器,用于根据当前指令序列的指令序列信息,预测导致错误的指令所在的当前目标指令区间;
所述执行器,用于根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点之间的指令序列,得到所述当前目标指令区间的起始端点的第一机器状态快照;
所述比较器,用于根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确;
所述预测器,还用于在所述当前目标指令区间的起始端点的执行结果正确时,根据目标算法重新预测导致错误的指令所在的当前目标指令区间,之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令;
其中,在所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间方面,所述预测器具体用于:
若所述当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号,则将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,所述当前指令序列的终止指令的指令序号不变,
若所述当前目标指令区间的终止端点的指令序号不等于所述当前指令序列的终止指令的指令序号,且所述当前目标指令区间内指令的执行结果均正确时,将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变;
之后,所述预测器还用于根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间,或者,根据二分法预测所述当前目标指令区间。
2.根据权利要求1所述的装置,其特征在于,在所述根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间方面,所述预测器具体用于:
根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,其中,所述当前目标指令区间的起始端点对应的指令序号大于或等于所述当前指令序列的起始指令的指令序号,且所述当前目标指令区间的起始端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号;所述当前目标指令区间的终止端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号。
3.根据权利要求2所述的装置,其特征在于,所述指令序列信息包括所述当前指令序列的起始指令的指令序号ai,以及终止指令的指令序号bi,在根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点方面,所述预测器具体用于:
预测所述当前目标指令区间的起始端点的指令序号为
Figure 441472DEST_PATH_IMAGE001
,所述当前目标指令区间的终止端点对应的指令序号为bi;或者,
根据目标函数确定所述当前目标指令区间的起始端点和终止端点,其中,所述目标函数根据预设的概率信息确定;或者,
获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
将所述当前标记指令序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,其中,k为超参数,L1为所述当前标记指令 序列的长度。
4.根据权利要求1所述的装置,其特征在于,
所述执行器,还用于根据所述当前目标指令区间的起始端点的机器状态快照,运行所述当前目标指令区间中的指令序列;
所述比较器,还用于确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确;在所述当前目标指令区间的终止端点的机器状态快照的执行结果正确时,则确定所述当前目标指令区间内指令的执行结果均正确。
5.根据权利要求4所述的装置,其特征在于,在所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确时,在所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间方面,所述预测器具体用于:
将所述当前目标指令区间的终止端点的指令序号作为所述当前指令序列的终止指令的指令序号,将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,根据所述二分法预测所述当前指令序列的当前目标指令区间。
6.根据权利要求1所述的装置,其特征在于,所述预测器还用于:
在所述当前目标指令区间的起始端点的执行结果不正确时,将所述当前目标指令区间的终止端点对应的指令序号作为所述当前指令序列的终止指令的指令序号,所述当前目标指令区间的起始指令的指令序号不变;
根据预设的目标函数重新预测所述当前目标指令区间,或者,通过预设的深度神经网络重新预测所述当前目标指令区间;或者,根据二分法重新预测所述当前目标指令区间;
之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令。
7.根据权利要求1-6任一项所述的装置,其特征在于,在所述根据所述当前指令序列执行前的机器状态执行所述当前指令序列至所述当前目标指令区间的起始端点方面,所述执行器具体用于:
若所述起始端点前面存在至少一个同步点,确定所述至少一个同步点中距离所述起始端点最近的目标同步点,根据所述目标同步点对应的指令执行前的机器状态执行所述当前指令序列至所述起始端点之间的指令序列。
8.一种待测器件验证方法,其特征在于,应用于待测器件验证装置,所述待测器件验证装置包括执行器、预测器和比较器,所述方法包括:
所述预测器根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间;
所述执行器根据所述当前指令序列中起始指令运行之前的机器状态,执行所述当前指令序列至所述当前目标指令区间的起始端点之间的指令序列,得到所述当前目标指令区间的起始端点的第一机器状态快照;
所述比较器根据所述第一机器状态快照确定所述当前目标指令区间的起始端点的执行结果是否正确;
所述预测器在所述当前目标指令区间的起始端点的执行结果正确时,根据目标算法重新预测导致错误的指令所在的当前目标指令区间,之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令;
其中,所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间,包括:
若所述当前目标指令区间的终止端点的指令序号等于所述当前指令序列的终止指令的指令序号,所述预测器则将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,所述当前指令序列的终止指令的指令序号不变,根据二分法预测所述当前指令序列的当前目标指令区间;或者根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间;
若所述当前目标指令区间的终止端点的指令序号不等于所述当前指令序列的终止指令的指令序号,且所述当前目标指令区间内指令的执行结果均正确时,所述预测器将所述当前目标指令区间的终止端点作为当前指令序列的起始指令,所述当前指令序列的终止指令的指令序号不变;之后,根据预设的目标函数重新预测所述当前目标指令区间;或者,通过预设的深度神经网络重新预测所述当前目标指令区间,或者,根据二分法预测所述当前目标指令区间。
9.根据权利要求8所述的方法,其特征在于,所述根据当前指令序列的指令序列信息预测导致错误的指令所在的当前目标指令区间,包括:
所述预测器根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,其中,所述当前目标指令区间的起始端点对应的指令序号大于或等于所述当前指令序列的起始指令的指令序号,且所述当前目标指令区间的起始端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号;所述当前目标指令区间的终止端点对应的指令序号小于或等于所述当前指令序列的终止指令的指令序号。
10.根据权利要求9所述的方法,其特征在于,所述指令序列信息包括所述当前指令序列的起始指令的指令序号ai,以及终止指令的指令序号bi,所述根据所述当前指令序列的指令序列信息,确定所述当前目标指令区间的起始端点和终止端点,包括:
所述预测器预测所述当前目标指令区间的起始端点的指令序号为
Figure 774365DEST_PATH_IMAGE001
,所述当前目标指令区间的终止端点对应的指令序号为bi;或者,
所述预测器根据目标函数确定所述当前目标指令区间的起始端点和终止端点,其中,所述目标函数根据预设的概率信息确定;或者,
所述预测器获取所述当前指令序列对应的当前标记指令序列,其中,所述当前指令序列中可以实时比对结果的指令标记为1,将所述当前指令序列中不能实时比对结果的指令标记为0;
所述预测器将所述当前标记指令序列输入预设的深度神经网络,得到宽度为L1*1/k的所述当前目标指令区间的起始端点和终止端点,其中,k为超参数,L1为所述当前标记指令序列的长度。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述执行器根据所述当前目标指令区间的起始端点的机器状态快照,运行所述当前目标指令区间中的指令序列;
所述比较器确定所述当前目标指令区间的终止端点的机器状态快照的执行结果是否正确;在所述当前目标指令区间的终止端点的机器状态快照的执行结果正确时,则确定所述当前目标指令区间内指令的执行结果均正确。
12.根据权利要求11所述的方法,其特征在于,所述当前目标指令区间的终止端点的机器状态快照的执行结果不正确时,所述根据目标算法重新预测导致错误的指令所在的当前目标指令区间,包括:
所述预测器将所述当前目标指令区间的终止端点的指令序号作为所述当前指令序列的终止指令的指令序号,将所述当前目标指令区间的起始端点的指令序号作为所述当前指令序列的起始指令的指令序号,根据所述二分法预测所述当前指令序列的当前目标指令区间。
13.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述当前目标指令区间的起始端点的执行结果不正确时,所述预测器将所述当前目标指令区间的终止端点对应的指令序号作为所述当前指令序列的终止指令的指令序号,所述当前目标指令区间的起始指令的指令序号不变;
所述预测器根据预设的目标函数重新预测所述当前目标指令区间,或者,通过预设的深度神经网络重新预测所述当前目标指令区间;或者,根据二分法重新预测所述当前目标指令区间;
之后重复调用所述执行器和所述比较器,直至获得所述导致错误的指令。
14.根据权利要求8-13任一项所述的方法,其特征在于,所述根据所述当前指令序列执行前的机器状态执行所述当前指令序列至所述当前目标指令区间的起始端点,包括:
若所述起始端点前面存在至少一个同步点,所述执行器确定所述至少一个同步点中距离所述起始端点最近的目标同步点,根据所述目标同步点对应的指令执行前的机器状态执行所述当前指令序列至所述起始端点之间的指令序列。
15.一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求8-14任一项所述的方法。
CN201910288745.5A 2019-04-10 2019-04-10 待测器件验证装置及相关产品 Active CN110059391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910288745.5A CN110059391B (zh) 2019-04-10 2019-04-10 待测器件验证装置及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910288745.5A CN110059391B (zh) 2019-04-10 2019-04-10 待测器件验证装置及相关产品

Publications (2)

Publication Number Publication Date
CN110059391A CN110059391A (zh) 2019-07-26
CN110059391B true CN110059391B (zh) 2022-12-09

Family

ID=67317579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910288745.5A Active CN110059391B (zh) 2019-04-10 2019-04-10 待测器件验证装置及相关产品

Country Status (1)

Country Link
CN (1) CN110059391B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938228B1 (en) * 2001-07-20 2005-08-30 Synopsys, Inc. Simultaneously simulate multiple stimuli and verification using symbolic encoding
CN101103333A (zh) * 2004-11-22 2008-01-09 高通股份有限公司 经由分支校正进行预解码错误处理
CN101604289A (zh) * 2009-07-10 2009-12-16 杭州电子科技大学 一种嵌入式系统的错误侦测和修复方法
CN104573228A (zh) * 2015-01-06 2015-04-29 中国人民解放军国防科学技术大学 面向兼容设计的微处理器硅后验证装置与验证方法
CN106021040A (zh) * 2016-05-04 2016-10-12 中国人民解放军国防科学技术大学 一种基于线形汇编指令差异性变换的dsp软错误检测方法
CN107688468A (zh) * 2016-12-23 2018-02-13 北京国睿中数科技股份有限公司 推测执行处理器中分支指令与分支预测功能的验证方法
CN109032879A (zh) * 2017-06-09 2018-12-18 展讯通信(上海)有限公司 多核处理器访存数据检测验证系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10108107A1 (de) * 2001-02-21 2002-08-29 Philips Corp Intellectual Pty Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung
JP2009157457A (ja) * 2007-12-25 2009-07-16 Optim Corp 端末装置、故障診断方法およびプログラム
JP4334598B1 (ja) * 2008-04-16 2009-09-30 株式会社東芝 情報処理装置およびエラー訂正方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938228B1 (en) * 2001-07-20 2005-08-30 Synopsys, Inc. Simultaneously simulate multiple stimuli and verification using symbolic encoding
CN101103333A (zh) * 2004-11-22 2008-01-09 高通股份有限公司 经由分支校正进行预解码错误处理
CN101604289A (zh) * 2009-07-10 2009-12-16 杭州电子科技大学 一种嵌入式系统的错误侦测和修复方法
CN104573228A (zh) * 2015-01-06 2015-04-29 中国人民解放军国防科学技术大学 面向兼容设计的微处理器硅后验证装置与验证方法
CN106021040A (zh) * 2016-05-04 2016-10-12 中国人民解放军国防科学技术大学 一种基于线形汇编指令差异性变换的dsp软错误检测方法
CN107688468A (zh) * 2016-12-23 2018-02-13 北京国睿中数科技股份有限公司 推测执行处理器中分支指令与分支预测功能的验证方法
CN109032879A (zh) * 2017-06-09 2018-12-18 展讯通信(上海)有限公司 多核处理器访存数据检测验证系统及方法

Also Published As

Publication number Publication date
CN110059391A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
JP4885316B2 (ja) 試験装置および試験方法
CN113076227A (zh) Mcu验证方法、系统和终端设备
CN109032879A (zh) 多核处理器访存数据检测验证系统及方法
CN103970634A (zh) 一种大型互连芯片用基于添加检测逻辑的背靠背环回验证方法
CN110261758B (zh) 待测器件验证装置及相关产品
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
US20150137839A1 (en) Flexible test site synchronization
CN110059391B (zh) 待测器件验证装置及相关产品
CN112579373B (zh) 用于分支预测器的验证方法、系统、设备以及存储介质
CN111383704A (zh) 一种存储器内建自测试电路和对存储器的测试方法
WO2022109873A1 (zh) 时序裕量确定方法、装置、测试电路系统及可读存储介质
CN110059390B (zh) 待测器件验证装置及相关产品
CN110083532B (zh) 基于深度学习框架的融合模式下运行错误定位方法及装置
US20180039571A1 (en) Semiconductor test apparatus for controlling tester
CN115732025A (zh) Ram访问冲突的验证方法及验证装置
CN109144793A (zh) 一种基于数据流驱动计算的故障校正装置和方法
US11023357B1 (en) Method and system for sequential equivalence checking
CN114896105A (zh) 电子设备的可靠性评估方法、装置、设备和介质
CN113033760B (zh) 用于测试神经网络中算子精度的方法、测试装置及其系统
US20210173989A1 (en) Simulation signal viewing method and system for digital product
CN112131811A (zh) 一种fpga的时序参数提取方法
CN114077538A (zh) 程序调试方法、装置及可读存储介质
US20210173994A1 (en) Method and system for viewing simulation signals of a digital product
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
CN111353595A (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
CB02 Change of applicant information

Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences

Applicant after: Zhongke Cambrian Technology Co.,Ltd.

Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences

Applicant before: Beijing Zhongke Cambrian Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant