一种信号的驱动和负载的验证方法及系统与流程

文档序号:32817189发布日期:2023-01-04 03:48阅读:43来源:国知局
一种信号的驱动和负载的验证方法及系统与流程

1.本发明涉及电子设计自动化技术领域,特别是涉及一种信号的驱动和负载的验证方法及系统。


背景技术:

2.在集成电路设计前端eda仿真软件产品测试中,信号的驱动和负载的测试尤其关键。测试人员需要验证电子设计自动化软件查找信号的驱动和负载的正确性和高效性。大型asic系统的设计使用硬件描述语言来描述电路的功能。信号之间的连接关系非常复杂,定位错误非常耗时,前端仿真软件可以帮助客户快速定位问题,因此前端仿真软件的正确性和效率就是关键因素。
3.但目前没有高效的方法来验证仿真软件的结果,开发测试人员无法保证测试软件查找信号驱动和负载的效率、正确性、完备性。


技术实现要素:

4.针对上述技术问题,本发明采用的技术方案为:一种信号的驱动和负载的验证方法,所述方法包括以下步骤:s100,获取待测电路e,所述待测电路e包括q层电路{e1,e2,

,eq,

,eq},eq为第q层电路,q的取值范围为1到q,q为正整数;eq包括h个子电路模块pq={p
q,1
,p
q,2
,

,p
q,h
,

,p
q,h
},p
q,h
为eq中第h个子电路模块,h的取值范围为1到h,h为正整数;p
q,h
为第(q-1)层电路e
q-1
中第y个子电路模块p
q-1,y
的子电路模块,y的取值范围为1到y,y为e
q-1
中子电路模块的数量。
5.s200,当e
q+1
中不包括p
q,h
的子电路模块时,查找p
q,h
中所有的j个信号s
q,h
={s
q,h,1
,s
q,h,2
,

,s
q,h,j
,

,s
q,h,j
},其中,s
q,h,j
为p
q,h
中的第j个信号,j的取值范围为1到j,j为p
q,h
中信号的数量;并获取p
q,h
的模块所属关系rp
q,h
={p
q,h
,p
q-1,y
,

,p
q-i,f
,

,p
1,1
},其中,i的取值范围为1到q,p
q-i,f
表示p
q,h
为第q-i层电路e
q-i
中第f个子电路模块的子电路模块。
6.s300,以s
q,h,j
作为负载信号,计算生成s
q,h,j
的t个驱动信号d
q,h,j
,得到s
q,h,j
的映射关系mr
q,h,j
={d
q,h,j
,s
q,h,j
,adr
q,h,j
,dp
q,h
};其中,adr
q,h,j
为s
q,h,j
的驱动信号在待测电路中的位置;获取s
q,h
中所有信号的映射关系,得到p
q,h
的映射关系表mr(p
q,h
)={mr
q,h,1
,mr
q,h,2
,

,mr
q,h,j
,

,mr
q,h,j
}。
7.s400,比较p
q,h
的映射关系表mr(p
q,h
)与标准映射关系表mr0(p
q,h
)是否相同,若相同,则p
q,h
验证通过;否则,记录mr
q,h,j

8.s500,对待测电路e中每个子电路模块执行s200-s400,得到待测电路e的验证结果。
9.此外,本发明还提供了一种信号驱动和负载的验证系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述
生成信号的驱动和负载的验证方法。
10.本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种信号的驱动和负载的验证方法及系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:本发明提供了一种信号的驱动和负载的验证方法及系统,其通过获取待测电路的不同层中的子电路模块,对于不包括子模块的子模块电路进行查找信号并获取模块的所属关系,以查找得到的信号为负载信号,计算生成负载信号的t个驱动信号,进而得到驱动信号、负载信号、驱动信号在待测电路中的位置以及子电路模块所属关系的映射关系,比较该映射关系与标准的映射关系是否相同,不相同时记录映射关系,否则该映射关系验证通过,通过该方法能够自动查找电路中的所有信号,依次比较待验证的映射关系表和标准映射关系表,保证验证生成信号的负载和驱动的功能的正确性、完备性和效率,在测试不同电路的过程中只需要更换指定的待测电路的名称,而不需要重新设计整个测试流程,测试的效率高。
附图说明
11.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1为本发明实施例提供的一种信号的驱动和负载的验证方法流程图。
具体实施方式
13.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
14.请参阅图1,图1示出了一种信号的驱动和负载的验证方法流程图,该方法包括以下步骤:s100,获取待测电路e,所述e包括q层电路{e1,e2,

,eq,

,eq},eq为第q层电路,q的取值范围为1到q,q为正整数;eq包括h个子电路模块pq={p
q,1
,p
q,2
,

,p
q,h
,

,p
q,h
},p
q,h
为eq中第h个子电路模块,h的取值范围为1到h,h为正整数;p
q,h
为第q-1层电路e
q-1
中第y个子电路模块p
q-1,y
的子电路模块,y的取值范围为1到y,y为e
q-1
中子电路模块的数量。
15.需要说明的是,待测电路是通过硬件描述语言描述的电路,例如verilog语言。每个子电路模块都预先配置有一个唯一的标签,该标签可以是模块的名称,也可以是模块的唯一编号。
16.优选的,p
q,1
,p
q,2


,p
q,h


,p
q,h
通过将eq按照子电路模块的功能划分得到。
17.可以理解的是,待测电路在设计时是按照分层设计的思想进行分层设计的,第一层包括整个待测电路,该待测电路作为一个整体功能的电路模块,该待测电路具有一个模块标签;第二层包括通过将第一层按照功能分解得到的多个子电路模块,第二层中的每个
子电路模块都具有唯一的模块标签;第三层包括将第二层中的子功能模块分别进行进一步分解得到的多个子电路模块,第三层中的每个子功能模块同样具有唯一的模块标签;以此类推,直至得到不能再分出子模块的最小功能模块为止。以模块作为节点,以所属关系为边,能够得到一个树形结构,在该树中,树的根节点为第一层中待测电路作为一个整体得到的电路模块,树的节点为子电路模块,树的叶子节点为不可再分的最小功能模块。其中,模块标签是提前为模块赋予的唯一的名称或者唯一编号,根据模块标签可以访问该树状结构。
18.其中,在树形结构中p
q,h
为p
q-1,y
的一个子节点。
19.优选的,s100之前还包括:s010,查找待测电路e中未命名的子模块,得到k个未命名的子模块。
20.s020,按照标准仿真器中的命名规则对未命名的子模块重新命名。
21.标准仿真器在获取到未命名的子电路模块时,会根据标准仿真器内预设的命名规则对未命名的子电路模块进行命名。由于两者的待测电路实质上是相同的,若待验证仿真器获取的未命名的子电路模块的名称与标准仿真器不同,最终在比对验证的结果时是比对的字符串是否相同,但若未命名的子电路模块字符串不同,则会对验证的结果产生较大的偏差。因此,待验证仿真器按照标准仿真器中的命名规则对未命名的子模块重新命名。
22.s200,当e
q+1
中不包括p
q,h
的子电路模块时,查找p
q,h
中所有的j个信号s
q,h
={s
q,h,1
,s
q,h,2
,

,s
q,h,j
,

,s
q,h,j
},其中,s
q,h,j
为p
q,h
中的第j个信号,j的取值范围为1到j,j为p
q,h
中信号的数量;并获取p
q,h
的模块所属关系rp
q,h
={p
q,h
,p
q-1,y
,

,p
q-i,f
,

,p
1,1
},其中,i的取值范围为1到q,p
q-i,f
表示p
q,h
为第q-i层电路e
q-i
中第f个子电路模块的子电路模块。
23.可以理解的是,当e
q+1
中不包括p
q,h
的子电路模块时,说明p
q,h
为最小功能模块。
24.其中,每个子电路模块中都包含相应的信号,每个信号都具有相应的名称。
25.其中,rp
q,h
是指模块之间的所属关系,例如在第一层中包括一个模块p
1,1
,在第二层中包括将p
1,1
分解得到的模块p
2,1
和p
2,2
,在第三层中包括将p
2,1
分解得到的p
3,1
和p
3,2
、将p
2,2
分解得到的p
3,3
和p
3,4
,当在第四层中不包括p
3,4
的子电路模块时,得到p
3,4
的所属关系rp
3,4
={p
3,4
,p
2,2
,p
1,1
}。
26.s300,以s
q,h,j
作为负载信号,计算生成s
q,h,j
的t个驱动信号d
q,h,j
,得到s
q,h,j
的映射关系mr
q,h,j
={d
q,h,j
,s
q,h,j
,adr
q,h,j
,dp
q,h
};其中,adr
q,h,j
为s
q,h,j
的驱动信号在待测电路中的位置;获取s
q,h
中所有信号的映射关系,得到p
q,h
的映射关系表mr(p
q,h
)={mr
q,h,1
,mr
q,h,2
,

,mr
q,h,j
,

,mr
q,h,j
}。
27.其中,负载信号和驱动信号是一个相对的概念,在当前信号作为一个电路模块的输入信号生成第一输出信号时,当前信号对于第一输出信号来说为驱动信号,第一输出信号对当前信号来说为负载信号。同样,第一输出信号还可以作为另一个电路模块的输入信号生成第二输出信号,那么第一输出信号对于第二输出信号来说为驱动信号,第二输出信号对第一输出信号来说为负载信号,以此类推。
28.作为一个示例,对于一个实现与门的逻辑电路,与门输入的两个输入信号分为a1和a2,输出的结果为b,相应的表达式为b=a1+a2。则对于b来说,输入信号a1和a2均为b的驱动信号,而b也同时分别为a1和a2的负载信号,b同时也作为下一个信号的驱动信号。再如,d=b-c,对于d来说,b和c分别为d的驱动信号,而d也同时分别为b和c的负载信号,以此类推,
得到所有信号的驱动和负载的映射关系。可以理解的是,对于大规模集成电路来说,一个功能电路的驱动信号可以有几千个。
29.需要说明的是,一个电路模块可以包括多个输出和多个输入,因此,对于一个输出信号来说,其驱动信号可以有多个;对于一个输入信号,其负载信号也可以有多个。
30.优选的,adr
q,h,j
包括s
q,h,j
的驱动信号所属文件和在待测电路中的位置标签。例如,位置标签为驱动信号在所属文件的待测电路中的行号。
31.其中,现有技术中计算生成驱动信号和负载信号的算法均在本发明的保护范围之内。
32.s400,比较p
q,h
的映射关系表mr(p
q,h
)与标准映射关系表mr0(p
q,h
)是否相同,若相同,则p
q,h
验证通过;否则,记录mr
q,h,j

33.优选的,标准映射关系表是标准仿真器根据待测电路e计算得到的p
q,h
的映射关系表。
34.优选的,比较p
q,h
的映射关系表mr(p
q,h
)与标准映射关系表mr0(p
q,h
)是否相同的步骤包括:比较映射关系表mr(p
q,h
)与标准映射关系表mr0(p
q,h
)中的字符串是否相同。
35.s500,对待测电路e中每个子模块执行s200-s400,得到待测电路e的验证结果。
36.当待测电路e中所有子模块的验证结果均为通过时,待测电路的验证通过,也即待验仿真器的自动生成信号的驱动和负载的功能验证通过。否则,验证不通过,根据记录的验证结果对待验证的仿真器做进一步的改进。
37.综上所述,本发明实施例通过获取待测电路的不同层中的子电路模块,对于不包括子模块的子模块电路进行查找信号并获取模块的所属关系,以查找得到的信号为负载信号,计算生成负载信号的t个驱动信号,进而得到负载信号、驱动信号、驱动信号在待测电路中的位置以及子电路模块所属关系的映射关系,比较该映射关系与标准的映射关系是否相同,不相同时记录映射关系,否则该映射关系验证通过,通过该方法能够自动查找电路中的所有信号,依次比较待验证仿真器和标准仿真器的结果,保证验证待验证仿真器生成信号的负载和驱动的功能的正确性、完备性和效率,在测试不同电路的过程中只需要更换指定的待测电路的名称,而不需要重新设计整个测试流程,因此测试的效率高。
38.基于与上述方法实施例相同的发明构思,本发明实施例还提供了一种信号驱动和负载的验证系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述实施例提供的一种生成信号驱动及负载的验证方法,其中一种生成信号驱动及负载的验证方法在上述实施例中已经详细说明,不再赘述。
39.虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1