CN115904855B - 基于信号动态追踪确定目标驱动源码的系统 - Google Patents
基于信号动态追踪确定目标驱动源码的系统 Download PDFInfo
- Publication number
- CN115904855B CN115904855B CN202310190833.8A CN202310190833A CN115904855B CN 115904855 B CN115904855 B CN 115904855B CN 202310190833 A CN202310190833 A CN 202310190833A CN 115904855 B CN115904855 B CN 115904855B
- Authority
- CN
- China
- Prior art keywords
- source code
- time
- target
- processed
- candidate
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及芯片验证技术领域,尤其涉及一种基于信号动态追踪确定目标驱动源码的系统,实现步骤S1、获取待处理源码对应的目标追踪时间T0、目标信号标识G0和目标信号值V0;步骤S2、基于G0和V0确定待处理源码中对应的待处理模块,包括P条候选源码(E1,E2,…,Ep,…,EP),从(E1,E2,…,Ep,…,EP)中选择能够触发G0信号值为V0的候选驱动源码(C1,C2,…,Cn,…,CN);步骤S3、基于T0和波形数据库设置不同的追踪起始时间T1 n,依次执行P条候选源码,将符合在T0时刻执行,且在波形数据库对应的信号值等于V0的Cn确定为目标驱动源码。本发明提高了确定目标驱动源码的准确性。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种基于信号动态追踪确定目标驱动源码的系统。
背景技术
在芯片验证过程中,往往需要分析波形和源码之间的关系,比如分析某一个波形变化是由哪部分源码导致的,进而调试设计存在的问题点、或者理解设计的逻辑原理。但是,对于一些逻辑比较复杂的源码,比如包含复杂的条件分支、wait语句、event control语句、跳转语句、循环结构等。现有技术通常是采用静态分析的方式来寻找导致某一波形变化的目标驱动源码,只能观测到在确定的时间点某个表达式或源码路径的状态,而不能进一步分析出其前后具体的关联、变化,分析能力较弱,且只能粗略分析,预测可能为目标驱动源码的结果,难以确定准确的目标驱动源码,甚至有些例子会得到错误的结果,准确性差。由此可知,如何提高确定目标驱动源码的准确性成为亟待解决的技术问题。
发明内容
本发明目的在于,提供一种基于信号动态追踪确定目标驱动源码的系统,提高了确定目标驱动源码的准确性。
根据本发明一方面,提供了一种基于信号动态追踪确定目标驱动源码的系统,包括基于待处理源码生成的波形数据库、存储有计算机程序的存储器和处理器,其中,所述波形数据库包括M条信号记录,每一信号记录包括信号标识以及对应的信号键值对,所述信号键值对包括时间值和对应的信号值,M为所述待处理源码中包括的信号标识总数;当所述处理器执行所述计算机程序时,实现以下步骤:
步骤S1、获取待处理源码对应的目标追踪时间T0、目标信号标识G0和目标信号值V0;
步骤S2、基于G0和V0确定所述待处理源码中对应的待处理模块,所述待处理模块包括P条候选源码(E1,E2,…,Ep,…,EP),从(E1,E2,…,Ep,…,EP)中选择能够触发G0信号值为V0的候选驱动源码(C1,C2,…,Cn,…,CN),其中,Ep为待处理模块中第p条候选源码,Cn为第n个候选驱动源码,p的取值范围为1到P,P为待处理模块中的候选源码总数,n的取值范围为1到N,N为候选驱动源码总数,N≤P;
步骤S3、基于T0和所述波形数据库设置不同的追踪起始时间T1 n,依次执行E1,E2,…,Ep,…,EP,将符合在T0时刻执行,且在所述波形数据库对应的信号值等于V0的Cn确定为目标驱动源码,T1 n≤T0。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于信号动态追踪确定目标驱动源码的系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明能够信号动态追踪确定目标信号在目标追踪时间,变化为目标信号值的目标驱动源码,提高了确定目标驱动源码的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于信号动态追踪确定目标驱动源码流程图;
图2为本发明实施例一提供的待处理源码示意图;
图3为本发明实施例一提供的波形数据库示意图;
图4为本发明实施例二提供的待处理源码示意图;
图5为本发明实施例二提供的波形数据库示意图;
图6为本发明实施例三提供的待处理源码示意图;
图7为本发明实施例三提供的波形数据库示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明一方面,提供了一种基于信号动态追踪确定目标驱动源码的系统,包括基于待处理源码生成的波形数据库、存储有计算机程序的存储器和处理器。作为示例,待处理源码为Verilog源码。其中,所述波形数据库包括M条信号记录,每一信号记录包括信号标识以及对应的信号键值对,所述信号键值对包括时间值和对应的信号值,M为所述待处理源码中包括的信号标识总数,需要说明的是,所述波形数据库通过运行一次待处理源码生成。当所述处理器执行所述计算机程序时,实现以下步骤:
步骤S1、获取待处理源码对应的目标追踪时间T0、目标信号标识G0和目标信号值V0。
需要说明的是,若目标信号为单个信号,则对应的V0为唯一的取值,若G0为数组,则对应的V0可能为多个,设置的目标追踪时间通常为目标信号在T0的信号值发生了变化,且在T0时刻变成了V0。T0、G0和V0的值可以由用户指定,用户可以基于信号波形图等信息来设置目标追踪时间T0、目标信号标识G0和目标信号值V0。
步骤S2、基于G0和V0确定所述待处理源码中对应的待处理模块,所述待处理模块包括P条候选源码(E1,E2,…,Ep,…,EP),从(E1,E2,…,Ep,…,EP)中选择能够触发G0信号值为V0的候选驱动源码(C1,C2,…,Cn,…,CN),其中,Ep为待处理模块中第p条候选源码,Cn为第n个候选驱动源码,p的取值范围为1到P,P为待处理模块中的候选源码总数,n的取值范围为1到N,N为候选驱动源码总数,N≤P。
其中,所述待处理模块通常为always块,需要说明的是,本发明实施例适用于逻辑复杂的源码,复杂的条件分支、wait语句、event control语句、跳转语句、循环结构等,作为示例,所述always块包括可以多个事件触发的顺序执行候选源码。所述always块也可以包括if-else和case条件执行候选源码。所述always块还可以包括基于循环语句为数组赋值的执行。
步骤S3、基于T0和所述波形数据库设置不同的追踪起始时间T1 n,依次执行E1,E2,…,Ep,…,EP,将符合在T0时刻执行,且在所述波形数据库对应的信号值等于V0的Cn确定为目标驱动源码,T1 n≤T0。
通过步骤S1-步骤S3能够通过信号动态追踪,从可能触发G0信号值为V0的候选驱动源码中准确确定目标驱动源码。
在一些源码中,可能设置有时间延迟,作为一种示例,所述步骤S3中,基于T0和所述波形数据库设置不同的追踪起始时间T1 n,包括:
步骤S30、若待处理模块的E1和Cn之间存在时间延迟Dn,则将追踪起始时间T1 n设置为(T0-Dn),否则,将T1 n设置为T0。
可以理解的是,如果在E1和Cn之间存在时间延迟Dn,则将追踪起始时间设置在(T0-Dn)至T0之间的情况,是不能确定目标驱动源码的,设置步骤S30可以避免执行无用的计算,提高目标驱动源码确定效率。
作为一种示例,所述步骤S3包括:
步骤S31、将当前追踪时间Tn设置为T1 n,初始化p=1。
步骤S32、基于Tn从所述波形数据库中获取Ep对应的信号值,判断Ep对应的表达式是否成立,若成立,则执行步骤S33,否则,执行步骤S36。
步骤S33、若Ep≠Cn,则执行步骤S34,若Ep=Cn,则执行步骤S37。
步骤S34、判断Ep是否存在时间推进tp,若存在,则检查Ep在Tn对应的信号值是否与所述波形数据库中的一致,若一致,则设置Tn=Tn+tp,执行步骤S35,若不一致,则执行步骤S36;若不存在tp,则直接执行步骤S35。
步骤S35、设置p=p+1,返回执行步骤S32。
步骤S36、根据所述波形数据库确定距离Tn最近的上一次触发E1执行的时间TXn,设置Tn=TXn,返回执行步骤S32。
步骤S37、若Tn=T0且Ep在所述波形数据库中G0对应的信号值等于V0,则将Cn确定为目标驱动源码;否则,将Cn确定为非目标驱动源码。
需要说明的是,通过步骤S31-步骤S33能够设置准确的追踪起始时间,动态执行待处理源码,从可能触发G0信号值为V0的候选驱动源码中准确确定目标驱动源码。
作为一种示例,所述步骤S34还包括:
步骤S341、若Ep与Cn属于不同的执行分支,则直接将Cn确定为非目标驱动源码。
通过设置步骤S341能够减少无用计算,提高目标驱动源码的确定效率。
作为一种示例,所述步骤S34中,若存在时间推进tp,且Ep对应的信号值在Tn时刻发生了变化,则将Ep在Tn对应的信号值确定为变化前的信号值。
以下通过几个具体实施例来对本发明进一步进行描述,需要时说明的是,为了清楚简便的表述示例,下述实施例中采用较为简洁的源码,实际应用过程中的源码可能比本发明实施例中的更加复杂。此外,本发明实施例示出的波形数据库仅为后续计算过程中需要用到的数据,并非波形数据库中的所有数据。
实施例一、
所述always块包括可以多个事件触发的顺序执行语句,待处理源码对应的待处理模块如图2所示,对应的波形数据库如图3所示,目标追踪时间T0=50,目标信号标识G0=data,目标信号值V0=1。
1. 基于本发明所述系统确定目标驱动源码的具体步骤如下:获取所有的可能的候选驱动源码:
a)@ (ev1) data = a。
b)@ (ev3) data = a。
2. 记录目标追踪时间:T0=50。
3. 测试可能的候选驱动源码: @ (ev1) data = a。
a)找到所在的进程(process)起点:always@(posedge clk)。
b)记录可能的最晚的追踪起始时间:T1 n=50。
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=50的value,不是上升沿(posedge),检查失败。
c)根据clk的上一次值变化时间,往前更新可能的追踪起始时间:T1 n= 20。
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=20的value,不是posedge,检查失败。
d)根据clk的上一次值变化时间,往前更新可能的开始时间:T1 n= 10。
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,是posedge,检查成功。
iii. 判断是否到达目标候选驱动源码语句?-- 否。
iv. 判断是否有时间推进?-- 无。
v. 跳到下一条候选源码:@ (ev1)。
vi. 执行候选源码:
1.从波形数据库获取从Time=10之后,ev1下一次的变化时间(包括Time=10)--Time=30。
vii. 判断是否到达目标候选驱动源码语句?-- 否。
viii. 判断是否有时间推进?-- 是。
1.检查当前时间的波形数据库 value是否符合假设?-- 假设此处没有值被更新,结论为是。
ix. 跳到下一条候选源码:data = a。
x. 执行候选源码:
1.从波形数据库获取Time=30时a的值: a=1。
2.更新data在Time=30的值:data=1。
xi. 是否到达目标候选驱动源码语句?-- 是。
1.检查当前时间是否符合假设?-- 否(30≠50)-- 检查失败。
e)确定@ (ev1) data = a为非目标驱动源码,需要说明的是,对于@ (ev1) data= a,不需要再往前更新时间尝试了,因为追踪起始时间比10更早的时间,最终也一定不会匹配目标追踪时间50。
4. 测试可能的候选驱动源码:@ (ev2) data = a。
a) 找到所在的process起点:always@(posedge clk)
b)记录可能的最晚的追踪起始时间:T1 n=50。
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=50的value,不是posedge,检查失败。
c) 根据clk的上一次值变化时间,往前更新可能的开始时间:T1 n= 20
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=20的value,不是posedge,检查失败。
d) 根据clk的上一次值变化时间,往前更新可能的开始时间:T1 n= 10
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,是posedge,检查成功
iii. 是否到达目标候选驱动源码语句?-- 否。
iv. 是否有时间推进?-- 无。
v. 跳到下一条候选源码:@ (ev1)。
vi. 执行候选源码:
1.从波形数据库获取从Time=10之后,ev1下一次的变化时间(包括Time=10)--Time=30
vii. 是否到达目标候选驱动源码语句?-- 否。
viii. 是否有时间推进?-- 是。
1.检查当前时间的波形数据库 value是否符合假设?-- 假设里没有值被更新,结论为是。
ix. 跳到下一条候选源码:data = a。
x. 执行候选源码
1.从波形数据库获取Time=30时a的值: a=1。
2.更新data在Time=30的值:data=1。
xi. 是否到达目标候选驱动源码语句?-- 否。
xii. 是否有时间推进?-- 无。
xiii. 跳到下一条候选源码:@ (ev2)
xiv. 执行候选源码:
1.从波形数据库获取从Time=30之后,ev2下一次的变化时间(包括Time=30)--Time=40
xv. 是否到达目标候选驱动源码语句?-- 否。
xvi. 是否有时间推进?-- 是。
1.检查当前时间的波形数据库 value是否符合假设?
a)从波形数据库获取Time=40的data值(如果有存在value值的更新,取上一周期的value值):data=1 -- 符合假设。
xvii. 跳到下一条候选源码:data=b。
xviii. 执行候选源码:
1.从波形数据库获取Time=40时b的值 – b=2。
2.更新data在Time=40的值:data=2。
xix. 是否到达目标候选驱动源码语句?-- 否。
xx. 是否有时间推进?-- 否。
xxi. 跳到下一条候选源码:@ (ev3)。
xxii. 执行候选源码:
1.从波形数据库获取从Time=40之后,ev3下一次的变化时间(包括Time=40)--Time=50
xxiii. 是否到达目标候选驱动源码语句?-- 否。
xxiv. 是否有时间推进?-- 是。
1.检查当前时间的波形数据库 value是否符合假设?
a)从波形数据库获取Time=50的data值(如果有存在value值的更新,取上一周期的value值):data=2 -- 符合假设。
xxv. 跳到下一条候选源码:data=a。
xxvi. 执行候选源码:
1.从波形数据库获取Time=50时a的值 – a=1。
2.更新data在Time=50的值:data=1。
xxvii. 是否到达目标候选驱动源码语句?-- 是。
1.检查当前时间是否符合假设?-- 是(50=50)。
2.检查当前表达式是否成立?-- 是 (data=1,a=1)。
xxviii. 确定@ (ev2) data = a为目标驱动源码。
需要说明的是,对于实施例一,通过现有技术只能预测出@ (ev1) data = a、@(ev3) data = a均可能是目标驱动源码,但是无法准确确定目标驱动源码,基于本发明的动态分析,能够确定(ev3) data = a为目标驱动源码,提高了确定目标驱动源码的准确性。
实施例二、
所述always块也可以包括case执行语句,待处理源码对应的待处理模块如图4所示,对应的波形数据库如图5所示,目标追踪时间T0=10,目标信号标识G0=data,目标信号值V0=1。
基于本发明所述系统确定目标驱动源码的具体步骤如下:
1. 获取所有的可能的候选驱动源码:
a)2'b01: data = a。
b)2'b11: data = a。
2. 记录目标追踪时间:T0=10。
3. 测试可能的候选驱动源码: 2'b01: data = a。
a)找到所在的process起点:always@(clk)。
b) 记录可能的最晚的追踪起始时间:T1 n=10
i. 到第一条候选源码:always @(clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,有值变化,检查成功。
iii. 是否到达目标候选驱动源码语句?-- 否。
iv. 是否有时间推进?-- 无。
v. 跳到下一条候选源码:if (clk == 1)。
vi. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,值为1。因此走then分支。
vii. 是否到达目标候选驱动源码语句?-- 否。
viii. 是否有时间推进?-- 否。
ix. 跳到下一条候选源码:sel = 2'b11。
x. 执行候选源码:
1.更新sel在Time=10的值:sel=2’b11。
xi. 是否到达目标候选驱动源码语句?-- 否。
xii. 是否有时间推进?-- 无。
xiii. 跳到下一条候选源码:2'b11: data = a。
1.此时,可以判断已经走到了和目标语句的不同分支,因此可以确定 2'b01:data = a为非目标驱动源码。
4. 测试可能的候选驱动源码: 2'b11: data = a;。
a)
i. 前面流程同上述步骤3相同,不再重复。
ii. 跳到下一条候选源码:2'b11: data = a。
iii. 执行候选源码:
1.从波形数据库获取Time=10时a的值 -- a=1。
2.更新data在Time=10的值:data=1。
iv. 是否到达目标候选驱动源码语句?-- 是。
1.检查当前时间是否符合假设?-- 是(10=10)。
2.检查当前表达式是否成立?-- 是 (data=1,a=1)。
v. 确定2'b11: data = a为目标驱动源码。
需要说明的是,对于实施例二,通过现有技术只能预测出2'b01: data = a、2'b11: data = a均可能是目标驱动源码,但是无法准确确定目标驱动源码,基于本发明的动态分析,能够确定2'b11: data = a为目标驱动源码,提高了确定目标驱动源码的准确性。
实施例三、
所述always块还可以包括基于循环语句为数组赋值的执行,待处理源码对应的待处理模块如图6所示,对应的波形数据库如图7所示,目标追踪时间T0=10,目标信号标识G0=data,目标信号值V0=1。
基于本发明所述系统确定目标驱动源码的具体步骤如下:
1. 获取所有的可能的候选驱动源码:
a)if (i==0) data[i] = a。
b)else data[i]= b。
2. 记录目标追踪时间:T0=10。
3. 测试可能的候选驱动源码: if (i==0) data[i]= a。
a)找到所在的process起点:always@(posedge clk)。
b) 记录可能的最晚的追踪起始时间:T1 n=10
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,是posedge,检查成功。
iii. 是否到达目标候选驱动源码语句?-- 否。
iv. 是否有时间推进?-- 无。
v. 跳到下一条候选源码:for (i=0; i<2; ++i)。
vi. 执行候选源码:
1.i=0。
vii. 是否到达目标候选驱动源码语句?-- 否。
viii. 是否有时间推进?-- 否。
ix. 跳到下一条候选源码:if (i==0)。
x. 执行候选源码:
1.条件成立,走then分支。
xi. 是否到达目标候选驱动源码语句?-- 否。
xii. 是否有时间推进?-- 无。
xiii. 跳到下一条候选源码:data[i]= a;
xiv. 执行候选源码
1.获取Time=10时a的值:a=0。
2.更新值的变化:data[0]= 0。
xv. 是否到达目标候选驱动源码语句?-- 是。
1.检查当前时间是否符合假设?-- 是(10=10)。
2.检查当前表达式是否成立?-- 是 (data[i]=data[0]=0,a=0)。
c)确定if (i==0) data[i]= a为目标驱动源码。
4. 测试可能的候选驱动源码:else data[i]= b。
a)找到所在的process起点:always@(posedge clk)。
b)记录可能的最晚的追踪起始时间:initTime=10。
i. 到第一条候选源码:always @(posedge clk)。
ii. 执行候选源码:
1.从波形数据库获取clk的在Time=10的value,是posedge,检查成功。
iii. 是否到达目标候选驱动源码语句?-- 否。
iv. 是否有时间推进?-- 无。
v. 跳到下一条候选源码:for (i=0; i<2; ++i)。
vi. 执行候选源码:
1.i=0。
vii. 是否到达目标候选驱动源码语句?-- 否。
viii. 是否有时间推进?-- 否。
ix. 跳到下一条候选源码:if (i==0)。
x. 执行候选源码:
1.条件成立,走then分支。
xi. 是否到达目标候选驱动源码语句?-- 否。
xii. 是否有时间推进?-- 无。
xiii. 跳到下一条候选源码:data[i]= a。
xiv. 执行候选源码:
1.获取Time=10时a的值:a=0。
2.更新值的变化:data[0]= 0。
xv. 是否到达目标候选驱动源码语句?-- 否。
xvi. 跳到下一条候选源码:++i。
xvii. 执行候选源码:
1.更新i的值:i=1。
xviii. 是否到达目标候选驱动源码语句?-- 否
xix. 是否有时间推进?-- 无。
xx. 跳到下一条候选源码:i<2
xxi. 执行候选源码:
1.条件满足,继续进入for循环。
xxii. 是否到达目标候选驱动源码语句?-- 否。
xxiii. 是否有时间推进?-- 无。
xxiv. 跳到下一条候选源码:if (i==0)。
xxv. 执行候选源码:
1.条件不成立,走else分支。
xxvi. 是否到达目标候选驱动源码语句?-- 否。
xxvii. 是否有时间推进?-- 无。
xxviii. 跳到下一条候选源码:data[i]= b。
xxix. 执行候选源码:
1.获取Time=10时b的值:b=0。
2.更新值的变化:data[1]= 1。
xxx. 是否到达目标候选驱动源码语句?-- 是。
1.检查当前时间是否符合假设?-- 是(10=10)。
2.检查当前表达式是否成立?-- 是 (data[i]=data[1]=1,b=1)。
3.确定else data[i]= b为目标驱动源码。
通过实施例三可知,最终确定的目标驱动源码可能不止一个,但可以理解的是,在一些应用场景下,目标驱动源码也可能为0个。
本发明实施例所述系统能够信号动态追踪确定目标信号在目标追踪时间,变化为目标信号值的目标驱动源码,提高了确定目标驱动源码的准确性。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (7)
1.一种基于信号动态追踪确定目标驱动源码的系统,其特征在于,
包括基于待处理源码生成的波形数据库、存储有计算机程序的存储器和处理器,其中,所述波形数据库包括M条信号记录,每一信号记录包括信号标识以及对应的信号键值对,所述信号键值对包括时间值和对应的信号值,M为所述待处理源码中包括的信号标识总数;当所述处理器执行所述计算机程序时,实现以下步骤:
步骤S1、获取待处理源码对应的目标追踪时间T0、目标信号标识G0和目标信号值V0;
步骤S2、基于G0和V0确定所述待处理源码中对应的待处理模块,所述待处理模块包括P条候选源码(E1,E2,…,Ep,…,EP),从(E1,E2,…,Ep,…,EP)中选择能够触发G0信号值为V0的候选驱动源码(C1,C2,…,Cn,…,CN),其中,Ep为待处理模块中第p条候选源码,Cn为第n个候选驱动源码,p的取值范围为1到P,P为待处理模块中的候选源码总数,n的取值范围为1到N,N为候选驱动源码总数,N≤P;
步骤S3、基于T0和所述波形数据库设置不同的追踪起始时间T1 n,依次执行E1,E2,…,Ep,…,EP,将符合在T0时刻执行,且在所述波形数据库对应的信号值等于V0的Cn确定为目标驱动源码,T1 n≤T0;
所述步骤S3中包括:
步骤S30、若待处理模块的E1和Cn之间存在时间延迟Dn,则将追踪起始时间T1 n设置为(T0-Dn),否则,将T1 n设置为T0;
步骤S31、将当前追踪时间Tn设置为T1 n,初始化p=1;
步骤S32、基于Tn从所述波形数据库中获取Ep对应的信号值,判断Ep对应的表达式是否成立,若成立,则执行步骤S33,否则,执行步骤S36;
步骤S33、若Ep≠Cn,则执行步骤S34,若Ep=Cn,则执行步骤S37;
步骤S34、判断Ep是否存在时间推进tp,若存在,则检查Ep在Tn对应的信号值是否与所述波形数据库中的一致,若一致,则设置Tn=Tn+tp,执行步骤S35,若不一致,则执行步骤S36;若不存在tp,则直接执行步骤S35;
步骤S35、设置p=p+1,返回执行步骤S32;
步骤S36、根据所述波形数据库确定距离Tn最近的上一次触发E1执行的时间TXn,设置Tn=TXn,返回执行步骤S32;
步骤S37、若Tn=T0且Ep在所述波形数据库中G0对应的信号值等于V0,则将Cn确定为目标驱动源码;否则,将Cn确定为非目标驱动源码。
2.根据权利要求1所述的系统,其特征在于,
所述步骤S34还包括:
步骤S341、若Ep与Cn属于不同的执行分支,则直接将Cn确定为非目标驱动源码。
3.根据权利要求1所述的系统,其特征在于,所述步骤S34中,若存在时间推进tp,且Ep对应的信号值在Tn时刻发生了变化,则将Ep在Tn对应的信号值确定为变化前的信号值。
4.根据权利要求1所述的系统,其特征在于,
所述待处理源码为Verilog源码,所述待处理模块为always块。
5.根据权利要求4所述的系统,其特征在于,
所述always块包括多个事件触发的顺序执行语句。
6.根据权利要求4所述的系统,其特征在于,
所述always块包括if-else和case条件执行语句。
7.根据权利要求4所述的系统,其特征在于,
所述always块包括基于循环语句为数组赋值的执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190833.8A CN115904855B (zh) | 2023-03-02 | 2023-03-02 | 基于信号动态追踪确定目标驱动源码的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310190833.8A CN115904855B (zh) | 2023-03-02 | 2023-03-02 | 基于信号动态追踪确定目标驱动源码的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904855A CN115904855A (zh) | 2023-04-04 |
CN115904855B true CN115904855B (zh) | 2023-07-07 |
Family
ID=86491692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310190833.8A Active CN115904855B (zh) | 2023-03-02 | 2023-03-02 | 基于信号动态追踪确定目标驱动源码的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904855B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401989B (zh) * | 2023-06-09 | 2023-08-15 | 成都融见软件科技有限公司 | 基于芯片设计源码的信号检查方法、电子设备和介质 |
CN117093432B (zh) * | 2023-10-16 | 2024-01-26 | 成都融见软件科技有限公司 | 一种信号激活状态的判断方法 |
CN117150995B (zh) * | 2023-10-30 | 2024-01-23 | 北京云枢创新软件技术有限公司 | 驱动源码追踪方法、电子设备和介质 |
CN117150996B (zh) * | 2023-10-30 | 2024-01-19 | 北京云枢创新软件技术有限公司 | 产生毛刺信号的问题源码确定方法、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005057364A2 (en) * | 2003-12-08 | 2005-06-23 | Ebay Inc. | Custom caching |
DE102004056006B3 (de) * | 2004-11-19 | 2006-03-23 | Fujitsu Siemens Computers Gmbh | Verfahren zur Emulation eines für einen Ursprungsprozessor in einem Ursprungscode erstellten Programms auf einem Zielprozessor |
WO2022199136A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为云计算技术有限公司 | 应用改造方法、系统、集群、介质及程序产品 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4383317A (en) * | 1980-10-30 | 1983-05-10 | Bei Electronics, Inc. | Shaft angle encoder having a circuit for synthesizing a skipped track output signal |
JPH06208398A (ja) * | 1993-01-08 | 1994-07-26 | Japan Radio Co Ltd | 音源波形生成方法 |
JPH06208397A (ja) * | 1993-01-08 | 1994-07-26 | Japan Radio Co Ltd | 音源コードブックによる音源波形生成方法 |
US8331445B2 (en) * | 2004-06-01 | 2012-12-11 | Qualcomm Incorporated | Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques |
CN101082677A (zh) * | 2007-07-06 | 2007-12-05 | 福州华虹智能科技开发有限公司 | 基于嵌入式Linux的矿井巷道超前探测仪软件体系结构的装置 |
JP5050019B2 (ja) * | 2009-08-26 | 2012-10-17 | 株式会社東芝 | ソースコード解析システム |
US9043760B2 (en) * | 2012-05-08 | 2015-05-26 | International Business Machines Corporation | Creating dynamic interactive views from trace events for performing deterministic performance analysis |
CN104303133A (zh) * | 2013-03-12 | 2015-01-21 | 施政 | 互动板的系统及方法 |
US9021428B2 (en) * | 2013-05-29 | 2015-04-28 | Microsoft Technology Licensing, Llc | Troubleshooting visuals and transient expressions in executing applications |
JP6037976B2 (ja) * | 2013-08-26 | 2016-12-07 | 三菱電機株式会社 | ソースコード生成装置 |
US20180367419A1 (en) * | 2014-02-18 | 2018-12-20 | David R. Hall | Automated tracking-number based administration of access codes |
US20220179665A1 (en) * | 2017-01-29 | 2022-06-09 | Yogesh Rathod | Displaying user related contextual keywords and controls for user selection and storing and associating selected keywords and user interaction with controls data with user |
CN108809279B (zh) * | 2017-04-28 | 2021-12-21 | 展讯通信(上海)有限公司 | 占空比校准电路和射频终端 |
US11520568B2 (en) * | 2020-09-30 | 2022-12-06 | Jpmorgan Chase Bank, N.A. | Method and system for development and tracking of dynamic data lineage |
CN112463164B (zh) * | 2020-12-14 | 2024-02-13 | 记忆科技(深圳)有限公司 | SoC程序执行的显示定位方法、装置、计算机设备及存储介质 |
CN112632292A (zh) * | 2020-12-23 | 2021-04-09 | 深圳壹账通智能科技有限公司 | 业务关键词的提取方法、装置、设备及存储介质 |
CN112801252B (zh) * | 2021-04-01 | 2021-06-29 | 广云物联网科技(广州)有限公司 | 一种面向信息溯源追踪的工业控制感知物联网系统 |
CN114896173B (zh) * | 2022-07-12 | 2022-09-16 | 北京云枢创新软件技术有限公司 | 用于目标数据路径显示的数据处理系统 |
CN114896174B (zh) * | 2022-07-12 | 2022-09-16 | 北京云枢创新软件技术有限公司 | 用于后处理调试的数据处理系统 |
CN115587554B (zh) * | 2022-10-11 | 2023-05-30 | 北京云枢创新软件技术有限公司 | 组合逻辑标准单元的atpg库模型生成系统 |
CN115309374B (zh) * | 2022-10-11 | 2022-12-13 | 北京云枢创新软件技术有限公司 | Atpg库模型生成系统 |
CN115658507A (zh) * | 2022-10-28 | 2023-01-31 | 北京轩宇信息技术有限公司 | 针对实时嵌入式软件源代码覆盖率分析系统 |
-
2023
- 2023-03-02 CN CN202310190833.8A patent/CN115904855B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005057364A2 (en) * | 2003-12-08 | 2005-06-23 | Ebay Inc. | Custom caching |
DE102004056006B3 (de) * | 2004-11-19 | 2006-03-23 | Fujitsu Siemens Computers Gmbh | Verfahren zur Emulation eines für einen Ursprungsprozessor in einem Ursprungscode erstellten Programms auf einem Zielprozessor |
WO2022199136A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为云计算技术有限公司 | 应用改造方法、系统、集群、介质及程序产品 |
Non-Patent Citations (2)
Title |
---|
Arden, Bruce W.;editor;MIT Press;MIT Press.What Can Be Automated?: The Computer Science and Engineering Research Study (COSERS).What Can Be Automated?: The Computer Science and Engineering Research Study (COSERS) .2005,全文. * |
防爆设备智能管理系统数据同步的设计;李冬;殷红;王丹;林涛;;自动化与仪表(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115904855A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115904855B (zh) | 基于信号动态追踪确定目标驱动源码的系统 | |
US8612171B2 (en) | Method of automatically formulating test cases for verifying at least part of a piece of software | |
CN106227654B (zh) | 一种测试平台 | |
US20170249234A1 (en) | Data-augmented software diagnosis method and a diagnoser therefor | |
US7457786B2 (en) | Performance enhancement of optimization processes | |
US20060101383A1 (en) | Bi-directional product development process simulation | |
CN116627846B (zh) | 确定目标调用标识的位置信息的方法、电子设备和介质 | |
CN105868626A (zh) | 基于控制流粗粒度完整性的监控软件业务行为的方法 | |
CN111008154A (zh) | 一种基于强化学习的Android应用自动测试方法及系统 | |
CN110659209A (zh) | 一种基于接口调用的自动化测试方法、装置及测试系统 | |
CN114637511A (zh) | 代码测试系统、方法、装置、电子设备及可读存储介质 | |
CN114860586A (zh) | 一种基于动态插桩的二进制多执行体软件插桩方法 | |
EP3396542A1 (en) | Database operating method and device | |
Periyasamy et al. | A project tracking tool for scrum projects with machine learning support for cost estimation | |
CN109101355B (zh) | 一种提取错误现场特征测试激励的处理器调试方法 | |
CN116245055B (zh) | 基于时序型覆盖数据库的有效随机测试向量确定系统 | |
Vidal et al. | Toward automated refactoring of crosscutting concerns into aspects | |
CN104732341A (zh) | 模拟业务流程及业务流程运行的控制方法和控制系统 | |
Sun et al. | Automatically assessing and extending code coverage for NPM packages | |
CN114741260A (zh) | 接口兼容性检测方法、装置、电子设备及存储介质 | |
CN110209593B (zh) | 一种面向偏好设置的安卓应用测试方法 | |
CN112286831A (zh) | 多重循环的数据流分析方法、系统、设备及存储介质 | |
CN109271288B (zh) | 处理器硅前性能评估方法 | |
CN116881919B (zh) | 漏洞挖掘方法、装置、电子设备及存储介质 | |
Vincent et al. | Regression Testing of Object-Oriented Software: Towards a Hybrid |
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 |