CN116663492A - 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 - Google Patents
交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 Download PDFInfo
- Publication number
- CN116663492A CN116663492A CN202310920129.3A CN202310920129A CN116663492A CN 116663492 A CN116663492 A CN 116663492A CN 202310920129 A CN202310920129 A CN 202310920129A CN 116663492 A CN116663492 A CN 116663492A
- Authority
- CN
- China
- Prior art keywords
- cross
- bin
- dimensional
- variable
- bins
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013507 mapping Methods 0.000 claims abstract description 13
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 3
- 238000012795 verification Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
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)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及芯片验证技术领域,尤其涉及一种交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质,方法包括步骤S1、获取用户定义的交叉仓对应的变量;步骤S2、构建变量取值和变量仓id的映射关系,建立N维坐标系,每一维度对应一个变量An;步骤S3、获取覆盖组中的用户定义的交叉仓;步骤S4、确定每一Bm中每一An对应的变量仓id集合;步骤S5、生成Bm对应的N维矩形集合,在N维坐标系中构建每一Bm对应的N维矩形生成所有Bm对应的N维矩形所覆盖的区域;步骤S6、基于扫描线算法获取所有Bm对应的N维矩形所覆盖的区域对应的交叉点数,确定交叉仓所覆盖的交叉项数量。本发明能够快速准确获取交叉仓所覆盖的交叉项数量。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质。
背景技术
在芯片的软件仿真验证过程中, 芯片验证语言system verilog 的功能覆盖率(functional coverage)模块尤为重要,它涉及到验证设计是否按照预期工作。验证工程师需要通过编写功能覆盖组(covergroup)去覆盖数据、地址和控制信号等以验证激励是否达到目的。交叉覆盖(cross)是功能覆盖组的一个重要概念。交叉覆盖的功能覆盖组中存在用户定义一个或多个交叉仓(cross bin),每个用户定义的交叉仓会覆盖一部分交叉项(cross product),对于没有被与用户定义的交叉仓覆盖到的交叉项都会独立创建一个自动的仓(bin)。
当需要获取交叉覆盖组的覆盖率时,需要先确定被命中(hit)的交叉仓的数量、用户定义的交叉仓的数量、自动生成的交叉仓的数量以及用户定义的交叉仓所覆盖的交叉项的数量。其中,被命中的交叉仓的数量、用户定义的交叉仓的数量均能快速准确获取,自动生成的交叉仓的数量需要根据所有覆盖点所被交叉的仓的数量和用户定义的交叉仓所覆盖的交叉项的数量获取。所有覆盖点所被交叉的仓的数量也能够能快速准确获取,但用户定义的交叉仓中可能存在多个重复的交叉项,因此,用户定义的交叉仓所覆盖的交叉项的数量无法直接获取。由此可知,如何快速准确获取用户定义的交叉仓所覆盖的交叉项的数量,来确定交叉覆盖组的覆盖率,成为亟待解决的技术问题。
发明内容
本发明目的在于,提供一种交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质,能够快速准确获取交叉仓所覆盖的交叉项数量,进而快速准确地确定交叉覆盖组的覆盖率。
根据本发明第一方面,提供了一种交叉仓所覆盖的交叉项数量的获取方法,包括:
步骤S1、获取用户定义的交叉仓所对应的N个变量{A1,A2,…,An,…,AN},An为用户定义的交叉仓所对应的第n个变量,n的取值范围为1到N;
步骤S2、将每一An划分为f(n)个变量仓,每一变量仓对应一个变量仓id,构建变量取值和变量仓id的映射关系,建立N维坐标系,每一维度对应一个变量An,在An对应的坐标轴上,每一整数值对应一个An的变量仓id;
步骤S3、获取覆盖组中的用户定义的M个交叉仓{B1,B2,…,Bm,…,BM},Bm为覆盖组中的第m个用户定义的交叉仓,m的取值范围为1到M,Bm中设置了A1,A2,…,An,…,AN对应的取值范围;
步骤S4、基于变量取值和变量仓id的映射关系确定每一Bm中每一An对应的变量仓id集合;
步骤S5、基于Bm中所有An对应的变量仓id集合生成Bm对应的N维矩形集合,基于每一Bm对应的N维矩形集合,在所述N维坐标系中构建每一Bm对应的N维矩形生成所有Bm对应的N维矩形所覆盖的区域;
步骤S6、基于扫描线算法获取所有Bm对应的N维矩形所覆盖的区域对应的交叉点数,将所有Bm对应的N维矩形所覆盖的区域对应的交叉点数确定为交叉仓所覆盖的交叉项数量。
根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
根据本发明第三方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明第一方面所述的方法。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明将每一变量取值划分为多个仓,并构建变量取值和变量仓id的映射关系,并构建N维坐标系,基于用户定义的交叉仓在N维坐标系中构建N维矩形,通过扫描线算法获取N维矩形所对应的交叉点数从而确定交叉仓所覆盖的交叉项数量,本发明能够快速准确获取交叉仓所覆盖的交叉项数量,进而快速准确地确定交叉覆盖组的覆盖率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的交叉仓所覆盖的交叉项数量的获取方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明第一方面,提供了一种交叉仓所覆盖的交叉项数量的获取方法,如图1所示,包括:
步骤S1、获取用户定义的交叉仓所对应的N个变量{A1,A2,…,An,…,AN},An为用户定义的交叉仓所对应的第n个变量,n的取值范围为1到N。
其中,具体从芯片验证源代码中获取用户定义的交叉仓所对应的N个变量,所述芯片验证源代码包括变量定义和功能覆盖组定义,变量定义中定义了所有变量,用户定义的交叉仓设置在功能覆盖组定义中,可能涉及所有变量,也可能涉及一部分变量。{A1,A2,…,An,…,AN}为用户定义的交叉仓所对应的所有变量。
步骤S2、将每一An划分为f(n)个变量仓,每一变量仓对应一个变量仓id,构建变量取值和变量仓id的映射关系,建立N维坐标系,每一维度对应一个变量An,在An对应的坐标轴上,每一整数值对应一个An的变量仓id。
需要说明的是,每一变量均有对应的取值范围,如果直接基于变量的取值范围在坐标系构建N维矩形,会导致数据量庞大,处理缓慢。因此,本发明实施例在生成N维矩形之前,先将所有变量划分对应的仓,后续基于仓id来构建N维矩形,降低处理复杂度。每一变量可独立划分仓,不同变量的仓中对应的数值数量可以相同,也可以不同。
步骤S3、获取覆盖组中的用户定义的M个交叉仓{B1,B2,…,Bm,…,BM},Bm为覆盖组中的第m个用户定义的交叉仓,m的取值范围为1到M,Bm中设置了A1,A2,…,An,…,AN对应的取值范围。
需要说明的是,每一Bm可以对一个变量An设置一个或多个取值范围,或者不设置,若Bm中没有设置变量An的取值范围,则默认为Bm中对应的An的取值范围为An对应的变量定义范围。Bm中若设置有An的取值范围,则Bm中设置的An的取值范围一定在An对应的变量定义范围内。
步骤S4、基于变量取值和变量仓id的映射关系确定每一Bm中每一An对应的变量仓id集合。
需要说明的是,基于变量取值和变量仓id的映射关系,将Bm中每一An对应的变量取值范围转换为了变量仓id的范围。
步骤S5、基于Bm中所有An对应的变量仓id集合生成Bm对应的N维矩形集合,基于每一Bm对应的N维矩形集合,在所述N维坐标系中构建每一Bm对应的N维矩形生成所有Bm对应的N维矩形所覆盖的区域。
步骤S6、基于扫描线算法获取所有Bm对应的N维矩形所覆盖的区域对应的交叉点数,将所有Bm对应的N维矩形所覆盖的区域对应的交叉点数确定为交叉仓所覆盖的交叉项数量。
作为一种实施例,可以在功能覆盖组定义中设置内部约束信息,通过内部约束信息来划将每一An划分为f(n)个变量仓,作为一种实施例,步骤S2中,将每一An划分为f(n)个变量仓,包括:
步骤S21、若An对应的内部约束信息包括仓划分标识bin An[f(n)],f(n)为An对应的变量仓数量,将An对应的变量定义范围内的dn个数值均匀划分至f(n)个仓中,生成An对应的f(n)个仓,dn为An对应的变量定义范围内的数值个数。
若An不存在对应的内部约束信息,则执行步骤S22:
步骤S22、将An对应的变量约束范围内的数值均匀划分至V个仓中,生成An对应的C个仓,C为预设的默认仓数量。
作为一种实施例,Bm中An对应的取值范围为{[a1 mn,a2 mn],[a3 mn,a4 mn],…,[ay mn,ay+1 mn],…,[ag(mn) mn,ag(mn)+1 mn]},[ay mn,ay+1 mn]为Bm中An对应的第y个取值范围,y的取值范围为1到g(mn),g(mn)为Bm中An对应的取值范围总数,a1 mn≤a2 mn≤a3 mn≤a4 mn≤…≤ay mn≤ay+1 mn,…, ≤ag(mn) mn≤ag(mn)+1 mn,需要说明的是,An对应的取值范围有可能是一个范围,也可能是一个点,当为一个点时,可以看做是ay mn=ay+1 mn的一个取值范围。所述步骤S4包括:
步骤S41、基于变量取值和变量仓id的映射关系,确定Bm中每一[ay mn,ay+1 mn],所对应的变量仓id范围[by mn,by+1 mn],生成Bm中每一An对应的变量仓id集合{[b1 mn,b2 mn],[b3 mn,b4 mn],…,[by mn,by+1 mn],…,[bg(mn) mn,bg(mn)+1 mn]}。
需要说明的是,by mn为ay mn所在变量仓的id, by+1 mn为ay+1 mn所在变量仓的id。可以理解的是,b1 mn≤b2 mn≤b3 mn≤b4 mn≤…≤by mn≤by+1 mn≤…≤bg(mn) mn≤bg(mn)+1 mn。
作为一种实施例,所述步骤S5中,基于Bm中所有An对应的变量仓id集合生成Bm对应的N维矩形集合,包括:
步骤S51、构建Bm对应的N个叶子节点Dn m,Dn m用于存储Bm中An对应的变量仓id集合,设置n=1,执行步骤S52。
步骤S52、基于D1 m和D2 m中存储的变量仓id集合生成Bm的二维矩形集合,将所述Bm的二矩形集合存储在D1 m和D2 m的父节点E2 m中,设置n=2,执行步骤S53。
步骤S53、基于En m中存储的Bm的n维矩形集合和Dn+1 m对应的变量仓id生成Bm的(n+1)维矩形集合,将Bm的(n+1)维矩形集合存储在En m和Dn+1 m的父节点En+1 m中。
步骤S54、若n=N-1,则生成Bm的N维矩形集合,若n<N-1, 则设置n=n+1,返回执行步骤S53。
由此可知,可以通过步骤S51-步骤S54,生成每一Bm对应的树结构,从底向上遍历树,生成每个Bm对应的N维矩形集合。
扫描线算法用于处理二维封闭图形的填充、裁剪和光栅化等问题,基于扫描线的概念,将图形分解为多个线段,每个线段可以看作是由一条垂直于扫描线的线段和两个交点组成。通过对每条扫描线进行遍历,将每个线段与扫描线相交的情况记录下来,得到每条线与图形相交的线段集合,从而进行所需要的各种计算,在只有2个变量的情况下,本发明实施例得到的所有Bm对应的N维矩形所覆盖的区域为二维矩形,当变量数量大于2时,得到的多维矩形更为复杂,基于此,本发明实施例先选取扫描轴,生成扫描面(可以理解的是,当降至二维和一维时,为扫描线),遍历扫描面进行扫描,遇到相交区域,则返回继续扫描。如果维度降低为1维,则计算线段上的点的个数,再依次返回,计算的到相交区域的点的个数,累计所有计算的点数,得到交叉仓所覆盖的交叉项总数。作为一种实施例,所述步骤S6包括:
步骤S61、以垂直于A1的扫描面扫描所有Bm对应的N维矩形所覆盖的区域,获取所有A1=by m1扫描面所截取的(N-1)维矩形,设置n=2,执行步骤S62。
需要说明的是,以垂直于A1的扫描面扫描所有Bm对应的N维矩形所覆盖的区域能够得到[b1 m1,b2 m1],[b3 m1,b4 m1],…,[by m1,by+1 m1],…,[bg(mn) m1,bg(mn)+1 m1]所对应的所有变量仓id数量个(N-1)维矩形,但由于by m1和by+1 m1之间的变量仓id对应的(N-1)维矩形所覆盖的交叉项点数都相同,且等于by m1或by+1 m1所截取的(N-1)维矩形,因此,仅需获取所有A1=by m1扫描面所截取的(N-1)维矩形即可,减少了数据处理量。
步骤S62、以垂直于An的扫描面分别扫描每一(N-n+1)维矩形,获取所有An=by mn扫描面扫截取的(N-n)维矩形。
需要说明的是,与步骤S61解释原理类似,by mn和by+1 mn之间的变量仓id对应的(N-n)维矩形所覆盖的交叉项点数都相同,且等于by mn或by+1 mn所截取的(N-1)维矩形,因此,仅需获取所有A1=by m1扫描面所截取的(N-1)维矩形即可,减少了数据处理量。
步骤S63、若n=N-1,则执行步骤S64,否则,设置n=n+1,返回执行步骤S62。
可以理解的是,当n=N-1时,步骤S62中已经截取到了每一二维矩形对应的线段,因此,可以基于线段上交叉点的个数递归回去计算每一二维矩形覆盖的交叉点,再基于二维矩形的交叉点计算三维矩形的交叉点,以此类推,直至计算出N为矩形所覆盖的交叉点数量。
步骤S64、获取每一by mN对应的线段上的交叉点数Pby mN,基于所有Pby mN获取所有以垂直于AN-1的扫描面扫描截取的每一二维矩形对应的交叉点数。
步骤S65、基于所有(N-n+2)维矩形对应的交叉点数获取所有以垂直于An-2的扫描面扫描截取的每一(N-n+3)维矩形的交叉点数。
步骤S66、若n=3,则将(N-n+3)维矩形的交叉点数确定为交叉仓所覆盖的交叉项总数,若n>3,则设置n=n-1,返回执行步骤S65。
作为一种实施例,所述步骤S64包括:
步骤S641、对于每一以垂直于AN-1的扫描面扫描截取的二维矩形:获取by mN和by+1 mN之间在AN轴上对应的点数Uy mN,确定by mN和by+1 mN之间对应的点所对应的线段上的交叉点数PUy mN,PUy mN等于Pby mN或Pby+1 mN。
步骤S642、基于by mN、Uy mN、PUy mN确定每一垂直于AN-1的扫描面扫描截取的二维矩形对应的交叉点数sum2:
。
需要说明的是,由于by mN和by+1 mN之间在AN轴上对应的点数相等,且等于Pby mN或Pby+1 mN,因此直接基于Pby mN或Pby+1 mN即可确定PUy mN,再基于by mN、Uy mN、PUy mN确定二维矩形对应的交叉点数sum2。
作为一种实施例,所述步骤S65包括:
步骤S651、对于每一以垂直于An-2的扫描面扫描截取的(N-n+3)维矩形:获取by m(n -1)和by+1 m(n-1)之间在An-2的轴上对应的点数Gy m(n-1),确定by m(n-1)和by+1 m(n-1)之间对应的扫描面所截取的(N-n+2)维矩形对应的交叉点数PGy m(n-1),PGy m(n-1)等于by m(n-1)对应的(N-n+2)维矩形的交叉点数或者by+1 m(n-1)对应的(N-n+2)维矩形的交叉点数。
步骤S652、每一by m(n-1)对应的(N-n+2)维矩形的交叉点数为Ty m(n-1),基于Ty m(n-1)、Gy m (n-1)、PGy m(n-1)确定每一(N-n+3)维矩形的交叉点数sum(N-n+3):
。
需要说明的是,由于by m(n-1)和by+1 m(n-1)之间对应的扫描面所截取的(N-n+2)维矩形对应的交叉点数相等,且等于by m(n-1)对应的(N-n+2)维矩形的交叉点数或者by+1 m(n-1)对应的(N-n+2)维矩形的交叉点数,因此直接基于by m(n-1)对应的(N-n+2)维矩形的交叉点数或者by+1 m(n-1)对应的(N-n+2)维矩形的交叉点数即可确定PGy m(n-1),再基于Ty m(n-1)、Gy m(n-1)、PGy m(n -1)确定二维矩形对应的交叉点数sum2。
以下通过一个示例对本发明进行进一步说明,芯片验证源代码包括:
bit [7:0] a;
bit [7:0] b;
bit [7:0] c;
covergroup cg;
cr : cross a, b {
bins crb1 = binsof(a) intersect{[0:63]}&&binsof(b) intersect {[200:255]}&&binsof(c) intersect {[100:155]};
bins crb2 = binsof(a) intersect {[31:78]}&&binsof(b) intersect{[128:230]};
}
Endcovergroup
基于步骤S1获取用户定义的交叉仓所对应的N个变量具体为a、b和c。根据a、b和c的变量定义可知,a、b和c变量定义范围均为[0,255]。本示例中,没有对a、b和c设置内部约束信息,因此,所述步骤S2,将a、b和c变量定义范围均划分为默认数量的变量仓,默认数量设为64,则每个变量仓中划分4个数值。构建三维坐标系,变量a对应X轴,变量b对应Y轴,变量c对应Z轴,则X轴上的0-63表示变量a对应的64个变量仓id,Y轴上的0-63表示变量b对应的64个变量仓id,Z轴上的0-63表示变量c对应的64个变量仓id。可以理解的是,X轴上的0对应的a变量的取值为{0,1,2,3},X轴上的1对应的a变量的取值为{4,5,6,7},依此类推,建立变量取值和变量仓id的映射关系,即X轴上的0与{0,1,2,3}相对应。通过步骤S3取覆盖组中的用户定义的交叉仓bins crb1和bins crb2,并分别提取每个用户定义的交叉仓对应的取值范围:
bins crb1中a的取值范围为[0:63],b的取值范围为[200:255],c的取值范围为[100:155]。
bins crb2中a的取值范围为[31:78],b的取值范围为[128:230],由于没有设置c的取值范围,因此bins crb2中c的取值范围为c的变量定义范围[0:255]。
基于变量取值确定对应的变量仓id的范围:
bins crb1中a的变量仓id的范围为[0,16] ,b的变量仓id的范围为[51,64], c的变量仓id的范围为[26,39]。
bins crb2中a的变量仓id的范围为[8,20] ,b的变量仓id的范围为[33,58], c的变量仓id的范围为[0,63]。
通过步骤S5可以得到bins crb1中对应的三维矩形坐标(0,51,26),(16,64,39),通过这两个坐标可以生成一个bins crb1对应的三维矩形,可以理解的是,三维矩形即为一个立方体。通过步骤S5可以得到bins crb2中对应的三维矩形坐标(8,33,0),(20,58,63),通过这两个坐标可以生成一个bins crb2对应的三维矩形,在三维坐标系统,bins crb1对应的三维矩形和bins crb2对应的三维矩形覆盖的区域即为交叉仓所覆盖的交叉项数量。接来来通过步骤S6,以垂直于X轴的扫描面扫描,获取X=0,X=8,X=16,X=20对应的二维矩形。然后对每一二维矩形,以垂直于Y轴的扫描线扫描,获取Y=33,Y=51,Y=58,Y=64对应的一维矩形(即线段),然后获取Y=33,Y=51,Y=58,Y=64对应的线段对应的交叉点数;再基于每一二维矩形中Y=33,Y=51,Y=58,Y=64对应的线段对应的交叉点数获取每一二维矩形的交叉点,再基于每一二维矩形的交叉点,获取三维矩形的交叉点,最终获取交叉仓所覆盖的交叉项数量。
作为一种实施例,所述步骤S6之后包括:
步骤S7、基于预设的交叉覆盖组的覆盖率公式确定交叉覆盖组的覆盖率:
其中,Ci为交叉覆盖组的覆盖率,binscovered为被命中的交叉仓的数量,Bc为自动生成的交叉仓的数量,Bu为用户定义的交叉仓的数量,Bj为第j个覆盖点所被交叉的仓的数量,为所有Bj的乘积,所有Bj的乘积为整个交叉覆盖组所包含的交叉项个数,Bb为用户定义的交叉仓所覆盖的交叉项的数量。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明实施例所述的方法。
本发明实施例将每一变量取值划分为多个仓,并构建变量取值和变量仓id的映射关系,并构建N维坐标系,基于用户定义的交叉仓在N维坐标系中构建N维矩形,通过扫描线算法获取N维矩形所对应的交叉点数从而确定交叉仓所覆盖的交叉项数量,本发明能够快速准确获取交叉仓所覆盖的交叉项数量,进而快速准确地确定交叉覆盖组的覆盖率。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (9)
1.一种交叉仓所覆盖的交叉项数量的获取方法,其特征在于,包括:
步骤S1、获取用户定义的交叉仓所对应的N个变量{A1,A2,…,An,…,AN},An为用户定义的交叉仓所对应的第n个变量,n的取值范围为1到N;
步骤S2、将每一An划分为f(n)个变量仓,每一变量仓对应一个变量仓id,构建变量取值和变量仓id的映射关系,建立N维坐标系,每一维度对应一个变量An,在An对应的坐标轴上,每一整数值对应一个An的变量仓id;
步骤S3、获取覆盖组中的用户定义的M个交叉仓{B1,B2,…,Bm,…,BM},Bm为覆盖组中的第m个用户定义的交叉仓,m的取值范围为1到M,Bm中设置了A1,A2,…,An,…,AN对应的取值范围;
步骤S4、基于变量取值和变量仓id的映射关系确定每一Bm中每一An对应的变量仓id集合;
步骤S5、基于Bm中所有An对应的变量仓id集合生成Bm对应的N维矩形集合,基于每一Bm对应的N维矩形集合,在所述N维坐标系中构建每一Bm对应的N维矩形生成所有Bm对应的N维矩形所覆盖的区域;
步骤S6、基于扫描线算法获取所有Bm对应的N维矩形所覆盖的区域对应的交叉点数,将所有Bm对应的N维矩形所覆盖的区域对应的交叉点数确定为交叉仓所覆盖的交叉项数量。
2.根据权利要求1所述的方法,其特征在于,
Bm中An对应的取值范围为{[a1 mn,a2 mn],[a3 mn,a4 mn],…,[ay mn,ay+1 mn],…,[ag(mn) mn,a g(mn)+1 mn] },[ay mn,ay+1 mn]为Bm中An对应的第y个取值范围,y的取值范围为1到g(mn), g(mn)为Bm中An对应的取值范围总数,a1 mn≤a2 mn≤a3 mn≤a4 mn≤…≤ay mn≤ay+1 mn,…,≤ag(mn) mn≤ag(mn)+1 mn,所述步骤S4包括:
步骤S41、基于变量取值和变量仓id的映射关系,确定Bm中每一[ay mn,ay+1 mn],所对应的变量仓id范围[by mn,by+1 mn],生成Bm中每一An对应的变量仓id集合{[b1 mn,b2 mn],[b3 mn,b4 mn],…,[by mn,by+1 mn],…,[bg(mn) mn,bg(mn)+1 mn] }。
3.根据权利要求2所述的方法,其特征在于,
所述步骤S5中,基于Bm中所有An对应的变量仓id集合生成Bm对应的N维矩形集合,包括:
步骤S51、构建Bm对应的N个叶子节点Dn m,Dn m用于存储Bm中An对应的变量仓id集合,设置n=1,执行步骤S52;
步骤S52、基于D1 m和D2 m中存储的变量仓id集合生成Bm的二维矩形集合,将所述Bm的二矩形集合存储在D1 m和D2 m的父节点E2 m中,设置n=2,执行步骤S53;
步骤S53、基于En m中存储的Bm的n维矩形集合和Dn+1 m对应的变量仓id生成Bm的(n+1)维矩形集合,将Bm的(n+1)维矩形集合存储在En m和Dn+1 m的父节点En+1 m中;
步骤S54、若n=N-1,则生成Bm的N维矩形集合,若n<N-1, 则设置n=n+1,返回执行步骤S53。
4.根据权利要求3所述的方法,其特征在于,
所述步骤S6包括:
步骤S61、以垂直于A1的扫描面扫描所有Bm对应的N维矩形所覆盖的区域,获取所有A1=by m1扫描面所截取的(N-1)维矩形,设置n=2,执行步骤S62;
步骤S62、以垂直于An的扫描面分别扫描每一(N-n+1)维矩形,获取所有An=by mn扫描面扫截取的(N-n)维矩形;
步骤S63、若n=N-1,则执行步骤S64,否则,设置n=n+1,返回执行步骤S62;
步骤S64、获取每一by mN对应的线段上的交叉点数Pby mN,基于所有Pby mN获取所有以垂直于AN-1的扫描面扫描截取的每一二维矩形对应的交叉点数;
步骤S65、基于所有(N-n+2)维矩形对应的交叉点数获取所有以垂直于An-2的扫描面扫描截取的每一(N-n+3)维矩形的交叉点数;
步骤S66、若n=3,则将(N-n+3)维矩形的交叉点数确定为交叉仓所覆盖的交叉项总数,若n>3,则设置n=n-1,返回执行步骤S65。
5.根据权利要求4所述的方法,其特征在于,
所述步骤S64包括:
步骤S641、对于每一以垂直于AN-1的扫描面扫描截取的二维矩形:获取by mN和by+1 mN之间在AN轴上对应的点数Uy mN,确定by mN和by+1 mN之间对应的点所对应的线段上的交叉点数PUy mN,PUy mN等于Pby mN或Pby+1 mN;
步骤S642、基于by mN、Uy mN、PUy mN确定每一垂直于AN-1的扫描面扫描截取的二维矩形对应的交叉点数sum2:
。
6.根据权利要求4所述的方法,其特征在于,
所述步骤S65包括:
步骤S651、对于每一以垂直于An-2的扫描面扫描截取的(N-n+3)维矩形:获取by m(n-1) 和by+1 m(n-1) 之间在An-2的轴上对应的点数G y m(n-1),确定by m(n-1)和by+1 m(n-1)之间对应的扫描面所截取的(N-n+2)维矩形对应的交叉点数PG y m(n-1),PG y m(n-1) 等于by m(n-1)对应的(N-n+2)维矩形的交叉点数或者by+1 m(n-1)对应的(N-n+2)维矩形的交叉点数;
步骤S652、每一by m(n-1)对应的(N-n+2)维矩形的交叉点数为T y m(n-1),基于T y m(n-1) 、G y m(n-1) 、PG y m(n-1)确定每一(N-n+3)维矩形的交叉点数sum(N-n+3):
。
7.根据权利要求1所述的方法,其特征在于,
所述步骤S6之后包括:
步骤S7、基于预设的交叉覆盖组的覆盖率公式确定交叉覆盖组的覆盖率:
,
;
其中,Ci为交叉覆盖组的覆盖率,binscovered为被命中的交叉仓的数量,Bc为自动生成的交叉仓的数量,Bu为用户定义的交叉仓的数量,Bj为第j个覆盖点所被交叉的仓的数量,为所有Bj的乘积,Bb为用户定义的交叉仓所覆盖的交叉项的数量。
8.一种电子设备,其特征在于,包括:
至少一个处理器;
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310920129.3A CN116663492B (zh) | 2023-07-26 | 2023-07-26 | 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310920129.3A CN116663492B (zh) | 2023-07-26 | 2023-07-26 | 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116663492A true CN116663492A (zh) | 2023-08-29 |
CN116663492B CN116663492B (zh) | 2023-10-13 |
Family
ID=87717338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310920129.3A Active CN116663492B (zh) | 2023-07-26 | 2023-07-26 | 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116663492B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070935A1 (en) * | 2008-09-15 | 2010-03-18 | Synopsys, Inc. | Method and Apparatus for Merging EDA Coverage Logs of Coverage Data |
US20100070940A1 (en) * | 2008-09-15 | 2010-03-18 | Synopsys, Inc. | Method and Apparatus for Merging EDA Coverage Logs of Coverage Data |
US20140180649A1 (en) * | 2012-12-20 | 2014-06-26 | Fair Isaac Corporation | Scorecard Models with Measured Variable Interactions |
US20190050516A1 (en) * | 2017-08-11 | 2019-02-14 | Synopsys, Inc. | Unified functional coverage and synthesis flow for formal verification and emulation |
CN112560390A (zh) * | 2020-12-23 | 2021-03-26 | 海光信息技术股份有限公司 | 自动生成交叉覆盖点中的忽略仓的方法、装置、设备 |
CN114492258A (zh) * | 2022-01-25 | 2022-05-13 | 杭州云合智网技术有限公司 | 随机约束和覆盖组同步方法 |
CN115952762A (zh) * | 2022-12-12 | 2023-04-11 | 爱芯元智半导体(上海)有限公司 | 一种芯片仿真功能覆盖率检测方法、装置及检测系统 |
-
2023
- 2023-07-26 CN CN202310920129.3A patent/CN116663492B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070935A1 (en) * | 2008-09-15 | 2010-03-18 | Synopsys, Inc. | Method and Apparatus for Merging EDA Coverage Logs of Coverage Data |
US20100070940A1 (en) * | 2008-09-15 | 2010-03-18 | Synopsys, Inc. | Method and Apparatus for Merging EDA Coverage Logs of Coverage Data |
US20140180649A1 (en) * | 2012-12-20 | 2014-06-26 | Fair Isaac Corporation | Scorecard Models with Measured Variable Interactions |
US20190050516A1 (en) * | 2017-08-11 | 2019-02-14 | Synopsys, Inc. | Unified functional coverage and synthesis flow for formal verification and emulation |
CN112560390A (zh) * | 2020-12-23 | 2021-03-26 | 海光信息技术股份有限公司 | 自动生成交叉覆盖点中的忽略仓的方法、装置、设备 |
CN114492258A (zh) * | 2022-01-25 | 2022-05-13 | 杭州云合智网技术有限公司 | 随机约束和覆盖组同步方法 |
CN115952762A (zh) * | 2022-12-12 | 2023-04-11 | 爱芯元智半导体(上海)有限公司 | 一种芯片仿真功能覆盖率检测方法、装置及检测系统 |
Non-Patent Citations (1)
Title |
---|
白龙飞;樊晓桠;张萌;孙立超;: "龙腾Stream流处理器验证", 计算机工程与应用, no. 15 * |
Also Published As
Publication number | Publication date |
---|---|
CN116663492B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chiang et al. | Dynamic algorithms in computational geometry | |
US6947913B1 (en) | Systems and methods for generating string correlithm objects | |
Pardoux et al. | Stochastic differential equations | |
JP2838968B2 (ja) | 半導体デバイスシミュレータのメッシュ生成方法 | |
Maurer et al. | A linear time algorithm for computing exact Euclidean distance transforms of binary images in arbitrary dimensions | |
US8098244B2 (en) | Evolutionary direct manipulation of free form deformation representations for design optimization | |
Eason et al. | A parallelized multi-degrees-of-freedom cell mapping method | |
CN105528784A (zh) | 一种前景背景分割的方法和装置 | |
Hammond | Parallel point defect identification in molecular dynamics simulations without post-processing: a compute and dump style for LAMMPS | |
Wang et al. | An O(n\logn)-Time Algorithm for the k-Center Problem in Trees | |
Dassi et al. | Efficient geometric reconstruction of complex geological structures | |
CN116663492B (zh) | 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 | |
Yildirim et al. | Stochastic simulations of ocean waves: An uncertainty quantification study | |
Davidson et al. | Texture synthesis and pattern recognition for partially ordered Markov models | |
Griewank et al. | Automatic evaluations of cross-derivatives | |
Bertram et al. | Adaptive smooth scattered-data approximation for large-scale terrain visualization | |
JP2920195B2 (ja) | 形状変換方法及び装置 | |
Haran et al. | An experimental study of point location in planar arrangements in CGAL | |
CN111353248B (zh) | 电磁仿真优化方法及系统 | |
Sliwinski et al. | Computational algorithms for wavelet identification of nonlinearities in Hammerstein systems with random inputs | |
Meyer | Direct and iterative one-dimensional front tracking methods for the two-dimensional Stefan problem | |
CN112071376A (zh) | 一种直接生成对数正态随机场的模拟方法 | |
Nekrich | I/O-efficient point location in a set of rectangles | |
Mills et al. | Software issues and performance of a parallel model for stock option pricing | |
Kumar et al. | A homotopic approach to domain determination and solution refinement for the stationary Fokker–Planck equation |
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 |