乒乓配置电路的随机验证方法、装置、上位机及存储介质
文献发布时间:2023-06-19 19:35:22
技术领域
本发明涉及随机控制领域,特别是涉及一种乒乓配置电路的随机验证方法、装置、上位机及存储介质。
背景技术
目前的集成电路的设计和优化思路主要基于PPA(power功耗,performance性能,area面积)进行,对于其中的性能设计和优化而言,通常是使用pipeline流水设计,具体是将整个集成电路划分成两份功能相同的逻辑电路作乒乓配置,当集成电路需要按顺序执行多个任务时,集成电路中的两个逻辑电路交叉执行这些任务,以此来提高集成电路的性能和效率;为了保证集成电路的正常使用,在集成电路出厂时,需要对集成电路进行功能验证。现有技术在对集成电路进行功能验证时,通常是预先为集成电路中的两个逻辑电路分别设定一个任务列表,在开始验证时,让这两个逻辑电路按照预先设定的顺序依次执行这些任务,从而确定集成电路的功能是否正常。但是,在实际应用中,用户的操作并非是有规律的,用户操作的非规律性会导致集成电路在随机时间开始执行随机数量的随机种类的任务,按照预设顺序执行任务的验证方式无法验证出集成电路在实际应用场景中的功能是否正常。
发明内容
本发明的目的是提供一种乒乓配置电路的随机验证方法、装置、上位机及存储介质,可以简单且准确地表现出实际应用中用户在随机时间做出的随机操作这一动作,还可以准确地对乒乓配置的集成电路进行校验。
为解决上述技术问题,本发明提供了一种乒乓配置电路的随机验证方法,应用于上位机中的处理器,所述上位机分别与集成电路中的第一电路和第二电路连接,其中的所述第一电路和所述第二电路的功能相同,所述验证方法包括:
当接收到随机验证指令时,在所述集成电路的预设任务库中获取n个随机任务,n为正整数;
将n个所述随机任务中的一个随机分配给所述第一电路或所述第二电路;
控制接收到所述随机任务的电路执行所述随机任务,同时,将n个所述随机任务中的随机一个未被执行的随机任务写入另一个电路中,以便当前正在执行的所述随机任务执行完毕后控制所述另一个电路执行所述随机任务;
当所有的所述随机任务执行完毕后,确定所述集成电路的功能正常。
优选的,在将n个所述随机任务中的一个随机分配给所述第一电路或所述第二电路之前,还包括:
将n个所述随机任务中的随机一个任务作为当前任务,并将n-1个所述随机任务作为待执行任务;
将n-1个所述待执行任务中的x个作为所述第一电路的待执行任务,并将y个作为所述第二电路的待执行任务,x和y均为自然数且x+y=n-1;
将n个所述随机任务中的一个随机分配给所述第一电路或所述第二电路,包括:
将所述当前任务随机分配给所述第一电路或所述第二电路;
将n个所述随机任务中的随机一个未被执行的随机任务写入另一个电路中,包括:
将所述另一个电路对应的所有未被执行的所述待执行任务中的随机一个任务写入所述另一个电路。
优选的,将n-1个所述待执行任务中的x个作为所述第一电路的待执行任务,并将y个作为所述第二电路的待执行任务,包括:
分别确定所述第一电路的第一标识符和所述第二电路的第二标识符;
将所述第一标识符分配给x个所述随机任务,并将所述第二标识符分配给y个所述随机任务。
优选的,将n个所述随机任务中的一个随机分配给所述第一电路或所述第二电路,包括:
将n个所述随机任务中的一个随机写入所述第一电路或所述第二电路的fifo存储器中。
优选的,在控制接收到所述随机任务的电路执行所述随机任务之后,还包括:
判断所述电路执行所述随机任务的结果是否正确;
若否,则生成提示信号,并将所述提示信号发送给提示模块,以便所述提示模块发出提示。
优选的,在控制接收到所述随机任务的电路执行所述随机任务之前,还包括:
将接收到所述随机任务的电路的旗语设定为表示禁止写入的旗语;
在控制接收到所述随机任务的电路执行所述随机任务之后,还包括:
将执行所述随机任务完毕的所述电路的旗语设定为表示允许写入的旗语。
优选的,在控制接收到所述随机任务的电路执行所述随机任务之前,还包括:
判断所述随机任务是否存在于所述电路中;
若是,在进入控制接收到所述随机任务的电路执行所述随机任务的步骤;
若否,则将所述随机任务写入所述电路,并进入控制接收到所述随机任务的电路执行所述随机任务的步骤。
本申请还提供一种乒乓配置电路的随机验证装置,包括:
存储器,用于存储计算机程序;
控制器,用于执行所述计算机程序时实现如上述的乒乓配置电路的随机验证方法的步骤。
本申请还提供一种上位机,包括上位机本体,还包括如上述的乒乓配置电路的随机验证装置;
所述上位机本体与所述乒乓配置电路的随机验证装置连接。
本申请还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的乒乓配置电路的随机验证方法的步骤。
本申请提供一种乒乓配置电路的随机验证方法、装置、上位机及存储介质,涉及随机控制领域,通过在集成电路的预设任务库中获取多个随机任务,将这些随机任务中的一个随机分配给第一电路或第二电路,控制接收到随机任务的电路执行随机任务,同时,将这些随机任务中的随机一个未被执行的随机任务写入另一个电路中,以便当前正在执行的随机任务执行完毕后控制另一个电路执行随机任务,以此作为循环让两个电路交替地执行任务,当所有的随机任务执行完毕后,确定对集成电路的随机控制结束。通过获取随机数量的随机任务的方式,可以简单且准确地表现出实际应用中用户在随机时间做出的随机操作这一动作,同时通过两个电路交替执行任务的方式可以准确地对乒乓配置的集成电路进行校验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种乒乓配置电路的随机验证方法的流程图;
图2为本申请提供的一种乒乓配置电路的随机验证装置的结构示意图。
具体实施方式
本发明的核心是提供一种乒乓配置电路的随机验证方法、装置、上位机及存储介质,可以简单且准确地表现出实际应用中用户在随机时间做出的随机操作这一动作,还可以准确地对乒乓配置的集成电路进行校验。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前的集成电路主要基于PPA(power功耗,performance性能,area面积)进行设计优化,在性能优化中,最优的方式是进行pipeline流水设计,针对这一点,通常是将整个集成电路分成两大部分,这两部分电路的内部结构可能存在不同,但实现的功能是一样的,通过设计两套电路逻辑进行乒乓处理,实现提高集成电路性能的目的。在这种集成电路出厂投入使用之前,为了保证这些集成电路的良品率和稳定性,需要对这些集成电路进行验证,考虑到用户的使用习惯,集成电路会在随机时间需要执行随机任务,因此上位机在对集成电路进行验证时,需要进行随机控制。但是,由于集成电路内部元件数量多且种类多,时序控制较复杂,上位机在对其验证时较难产生完善的随机时序,较难验其完备性。
为了解决上述技术问题,请参照图1,图1为本申请提供的一种乒乓配置电路的随机验证方法的流程图,应用于上位机中的处理器,上位机分别与集成电路中的第一电路和第二电路连接,其中的第一电路和第二电路的功能相同,验证方法包括:
S1:当接收到随机验证指令时,在集成电路的预设任务库中获取n个随机任务,n为正整数;
S2:将n个随机任务中的一个随机分配给第一电路或第二电路;
S3:控制接收到随机任务的电路执行随机任务,同时,将n个随机任务中的随机一个未被执行的随机任务写入另一个电路中,以便当前正在执行的随机任务执行完毕后控制另一个电路执行随机任务;
S4:当所有的随机任务执行完毕后,确定对集成电路的功能正常。
为了实现随机控制和验证,本申请中,通过随机时间获取随机数量的随机任务来体现,可以理解的是,在实际应用时,由于不同用户的需求、使用习惯、使用时间等不同,集成电路可能会在任何时间点接收到来自用户的任何命令,因此,在进行出厂前验证时,需要通过随机控制来模拟实际应用中的用户操作。集成电路能够实现的功能很多,可以预先将集成电路所有能够实现的功能所对应的任务都存储到预设任务库中,在进行验证时,上位机在某个随机的时间点从预设任务库中取出随机数量个任务,具体取出来的任务的类型及其对应的功能也都是随机且不重复的,通过这一点表现出用户在实际使用时的随机时间随机操作这一动作。
在获取到n个随机任务后,由于集成电路中有两套功能相同的第一电路和第二电路,第一电路和第二电路具体可以是两块结构不同(或相同)但是实现功能相同的FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)或CPLD(ComplexProgrammable logic device,复杂可编程逻辑器件)等电路,将第一电路和第二电路设置在同一块电路板上或者拼凑在一起形成了上述的集成电路。由于在获取到任务之前的这两个电路都是空闲的,因此,在用户对于任务完成的顺序没有要求的前提下,可以将n个随机任务中的随机1个任务分配到随机一个电路上,以便在该电路上写入该任务后执行;此时,为了验证集成电路的乒乓设计,在电路执行随机任务的同时,对于另一边的没有在执行任务的电路而言,需要将剩余的n-1个随机任务中的随机1个任务写入到该电路中,当上述的电路执行随机任务完毕后,该另一边的电路则接着执行下一个任务,通过节省写入随机任务的时间来提高效率。例如,总共有4个随机任务,首先将其中1个随机任务分配给了第一电路,则需要将该随机任务写入到第一电路中以便控制其执行;同时,在剩下的3个未被执行的随机任务中选取1个随机任务分配给第二电路,并将其写入到第二电路中,当第一电路执行完第一个随机任务后,第二电路则可以直接执行第二个随机任务,省去了写入所需要的时间;此时同理,在剩下的2个未被执行的随机任务中选取1个随机任务写入到第一电路中,以此类推。
通过这种一个电路正在执行任务的同时将下一个任务写入另一个电路的方式,实现pipeline流水设计,当集成电路本身正常时,这些随机任务都能够正常且顺利地执行完毕,当所有的随机任务都执行完毕后则可以结束对集成电路的随机控制,判定该集成电路合格且正常,若其中发现有任务无法顺利执行,则可以生成提示信号来提示工作人员,以便工作人员及时发现问题。
综上,在接收到随机验证指令时,通过在集成电路的预设任务库中获取多个随机任务,将这些随机任务中的一个随机分配给第一电路或第二电路,控制接收到随机任务的电路执行随机任务,同时,将这些随机任务中的随机一个未被执行的随机任务写入另一个电路中,以便当前正在执行的随机任务执行完毕后控制另一个电路执行随机任务,以此作为循环让两个电路交替地执行任务,当所有的随机任务执行完毕后,确定对集成电路的功能正常。通过获取随机数量的随机任务的方式,可以简单且准确地表现出实际应用中用户在随机时间做出的随机操作这一动作,同时通过两个电路交替执行任务的方式可以准确地对乒乓配置的集成电路进行校验。
在上述实施例的基础上:
作为一种优选的实施例,在将n个随机任务中的一个随机分配给第一电路或第二电路之前,还包括:
将n个随机任务中的随机一个任务作为当前任务,并将n-1个随机任务作为待执行任务;
将n-1个待执行任务中的x个作为第一电路的待执行任务,并将y个作为第二电路的待执行任务,x和y均为自然数且x+y=n-1;
将n个随机任务中的一个随机分配给第一电路或第二电路,包括:
将当前任务随机分配给第一电路或第二电路;
将n个随机任务中的随机一个未被执行的随机任务写入另一个电路中,包括:
将另一个电路对应的所有未被执行的待执行任务中的随机一个任务写入另一个电路。
为了简单地分配随机任务,本申请中,可以预先将这些随机任务分配好其对应的电路。具体的,首先将这些随机任务中的一个作为第一个要执行的当前任务,其余任务则作为待执行任务,第一个要执行的任务将会随机写入到某个电路里,其余的任务则可以随机进行分配,在进行分配时,考虑到虽然两个电路可以实现的功能相同,但两个电路的性能可能存在高低之分,所以两个电路分配到的待执行任务的数量可以相等或近似,也可以是根据两个电路之间的性能的高低来设定每个任务分配到哪个电路的概率。在预先分配好任务后,在一个电路执行其对应的随机任务时,另一个电路则是写入其对应的待执行任务,不需要实时在随机任务中再选取一个任务写入,节省了选取任务的时间。基于此,可以简单地分配随机任务。
作为一种优选的实施例,将n-1个待执行任务中的x个作为第一电路的待执行任务,并将y个作为第二电路的待执行任务,包括:
分别确定第一电路的第一标识符和第二电路的第二标识符;
将第一标识符分配给x个随机任务,并将第二标识符分配给y个随机任务。
为了简单地分配随机任务,本申请中,可以通过标识符的方式来分配,首先确定第一电路和第二电路的标识符,然后为每个随机任务在第一标识符和第二标识符中选取一个作为该随机任务的标识符,以此来标记上这些随机任务,表明其属于哪个电路需要执行的任务。进一步的,还可以通过标识符来表示这些随机任务是否被执行过,例如,给未被执行过的随机任务标记为0,已经执行过的随机任务标记为1,以此来简单地表示随机任务是否被执行过。基于此,可以简单地分配随机任务。
作为一种优选的实施例,将n个随机任务中的一个随机分配给第一电路或第二电路,包括:
将n个随机任务中的一个随机写入第一电路或第二电路的fifo存储器中。
Fifo(First Input First Output,先入先出)存储器是一个先入先出的双口缓冲器,即第一个进入fifo存储器的任务会第一个被执行,每个任务都是按照其进入fifo的顺序来输出和执行的,通过这种方式将写入到电路中的数据和任务集中起来进行进栈和存储,可避免错误发生的并行总线操作,减轻电路的运行负担。
作为一种优选的实施例,在控制接收到随机任务的电路执行随机任务之后,还包括:
判断电路执行随机任务的结果是否正确;
若否,则生成提示信号,并将提示信号发送给提示模块,以便提示模块发出提示。
为了简单地提示工作人员,上位机还可以检测电路执行随机任务后的执行结果,通过比较该随机任务的实际执行结果与预先存储的参考执行结果相对比,可以确定该随机任务是否正常且成功地执行;当发现执行异常和失败时,则通过提示模块提示工作人员。提示模块可以是设置在上位机上的声音提示模块或者灯光提示模块等,也可以是设置在集成电路上的提示模块,本申请对此不做限定。基于此,可以简单地提示工作人员。
作为一种优选的实施例,在控制接收到随机任务的电路执行随机任务之前,还包括:
将接收到随机任务的电路的旗语设定为表示禁止写入的旗语;
在控制接收到随机任务的电路执行随机任务之后,还包括:
将执行随机任务完毕的电路的旗语设定为表示允许写入的旗语。
为了避免多任务写入的情况,本申请中,通过旗语来控制任务是否可以写入到电路中。具体的,当一个任务被写入到一个电路中时,将旗语semphore_(x)_reg get用作表示该电路在执行任务前不能再写入其他任务的标识,当一个随机任务被执行完毕后,将旗语semphore_(x)_reg put,用作表示该电路可以继续写入其他任务的标识,其中的x是该电路的标识符。当一个电路正在执行随机任务时,由于有旗语的限制,可以保证上位机在将后续的随机任务写入到另一个电路时不会误写入正在执行随机任务的电路中,进一步还可以将旗语与fifo配合,可以避免多任务写入和执行的情况发生。
作为一种优选的实施例,在控制接收到随机任务的电路执行随机任务之前,还包括:
判断随机任务是否存在于电路中;
若是,在进入控制接收到随机任务的电路执行随机任务的步骤;
若否,则将随机任务写入电路,并进入控制接收到随机任务的电路执行随机任务的步骤。
为了提高效率,本申请中,在控制电路执行随机任务之前,还需要判断此时分配给该电路的随机任务是否之前被写入过该电路,如果没有则先写入该电路后再执行;如果已经写入,则可以直接控制该电路执行该随机任务,不需要再次写入。基于此,考虑到集成电路在实际应用中的长期使用效率,在向其中某个电路分配随机任务时,若该随机任务是该电路第一次执行,需要将其写入到该电路中才可以执行,执行完毕后不清除该随机任务,而是将该随机任务的配置信息存储在该电路中,等后续再次在该电路上执行该随机任务时,则不需要再次写入该随机任务就可以直接执行,节省了再次写入随机任务的时间。
请参照图2,图2为本申请提供的一种乒乓配置电路的随机验证装置的结构示意图,包括:
存储器21,用于存储计算机程序;
控制器22,用于执行计算机程序时实现如上述的乒乓配置电路的随机验证方法的步骤。
对于本申请提供的一种乒乓配置电路的随机验证装置的详细介绍,请参照上的乒乓配置电路的随机验证方法的实施例,本申请在此不再赘述。
本申请还提供一种上位机,包括上位机本体,还包括如上述的乒乓配置电路的随机验证装置;
上位机本体与乒乓配置电路的随机验证装置连接。
对于本申请提供的一种上位机的详细介绍,请参照上的乒乓配置电路的随机验证方法的实施例,本申请在此不再赘述。
本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的乒乓配置电路的随机验证方法的步骤。
对于本申请提供的一种存储介质的详细介绍,请参照上的乒乓配置电路的随机验证方法的实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
- 基于规则引擎的验证方法、验证设备、存储介质及装置
- 存储空间配置方法、装置、计算机设备及存储介质
- 同步配置的方法、同步配置的装置、存储介质和处理器
- 射频电路仿真方法、射频电路仿真装置及存储介质
- 配置信息的切换方法、装置、电子装置、系统及存储介质
- 基于可验证随机数的彩票验证方法、装置及存储介质
- 触控电路检测方法、系统、上位机、装置及存储介质