CN116595918B - 快速逻辑等价性验证方法、装置、设备及存储介质 - Google Patents

快速逻辑等价性验证方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116595918B
CN116595918B CN202310875980.9A CN202310875980A CN116595918B CN 116595918 B CN116595918 B CN 116595918B CN 202310875980 A CN202310875980 A CN 202310875980A CN 116595918 B CN116595918 B CN 116595918B
Authority
CN
China
Prior art keywords
module
arithmetic
logic
sub
information
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
CN202310875980.9A
Other languages
English (en)
Other versions
CN116595918A (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.)
Qijie Technology Shenzhen Co ltd
Original Assignee
Qijie Technology Shenzhen Co 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 Qijie Technology Shenzhen Co ltd filed Critical Qijie Technology Shenzhen Co ltd
Priority to CN202310875980.9A priority Critical patent/CN116595918B/zh
Publication of CN116595918A publication Critical patent/CN116595918A/zh
Application granted granted Critical
Publication of CN116595918B publication Critical patent/CN116595918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及集成电路等价性验证领域,公开了一种快速逻辑等价性验证方法、装置、设备及存储介质,用于提高逻辑等价性验证的效率。包括:读取目标电路的RTL文件及第一综合门级网表,将RTL文件作为参考文件;对第一综合门级网表进行数据提取,生成第一信息集合,通过第一信息集合进行中间操作逻辑分析,生成中间操作逻辑集合;通过中间操作逻辑集合进行模块数据提取,生成子模块逻辑数据集合;通过子模块逻辑数据集合对参考文件进行代码匹配,得到对应的RTL代码;过预置的内部综合器对RTL代码进行代码重组,生成第二综合门级网表;对第一综合门级网表及第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。

Description

快速逻辑等价性验证方法、装置、设备及存储介质
技术领域
本发明涉及集成电路等价性验证领域,尤其涉及一种快速逻辑等价性验证方法、装置、设备及存储介质。
背景技术
形式化等价性验证基本流程解决方案分为两种:第一种是基于门级网表结构比较的传统算法。第一步,读取RTL文件作为参考文件,同时读入对应的综合后的门级网表作为目标文件。第二步,将第一步读入的RTL文件转换为门级网表,同时将这门级网表作为新的参考文件。第三步,将新的参考文件和目标文件进行对比,找到两个网表的匹配点对。第四步,针对每对匹配点,使用相关的算法验证其逻辑功能是否等价。第二种算法则是基于综合工具提供的信息进行验证。第二种算法和第一种算法的区别在于,在第二步将转换RTL文件转换为新的门级网表时,这个算法的内部综合器会基于先前在对目标文件综合时获得的先验知识,对于RTL中的局部的算术逻辑进行单独综合替换。如果获得的部分门级网表电路与目标文件中的算术逻辑部分的结构实现完全相同,则验证能很快完成。
现有的两种逻辑验证方法方法,面对算术逻辑时,都是通过重新对RTL文件里的算术模块进行单独综合,使用这个算术模块的门级电路,与目标文件的门级电路进行对比,从而实现对门级电路里的算术逻辑电路进行逻辑验证。第一种的传统算法严重依赖于参考文件和目标文件的结构相似程度。如果遇到参考文件和目标文件的结构差异极大的情况,算法复杂度可能达到指数级别,验证时间大幅增加甚至在合理时间内无法得到结果。算术逻辑可以有多种实现结构,因此RTL文件中算术逻辑综合后的结果和目标门级网表中的算术逻辑结构差异很可能比较大,从而导致上文描述的验证复杂度变大的情况很容易出现。第二种算法的不足之处在于极度依赖综合工具。综合工具的版本、综合策略、优化策略的改变均可能导致验证工具无法再进行快速验证。对综合工具版本维护以及综合工具和验证工具的相互协同有很高的要求。如果用户之前使用的是第三方的综合工具,则无法使用这个算法进行验证。如果电路进行后续逻辑功能改变影响了算术逻辑部分,则难以对改变后的目标门级网表进行验证。
发明内容
本发明提供了一种快速逻辑等价性验证方法、装置、设备及存储介质,用于提高逻辑等价性验证的效率。
本发明第一方面提供了一种快速逻辑等价性验证方法,所述快速逻辑等价性验证方法包括:读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
结合第一方面,在本发明第一方面的第一实施方式中,所述通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包输入边界信息、输出边界信息以及内部结构信息,包括:通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息;通过所述输入边界信息对所述第一综合门级网表进行内部结构识别,得到对应的内部结构信息;通过所述输入边界信息对所述第一综合门级网表进行算术子模块边界识别,确定对应的输出边界信息;将所述输入边界信息、输出边界信息以及内部结构信息合并为所述第一信息集合;通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合。
结合第一方面第一实施方式,在本发明第一方面的第二实施方式中,所述通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息,包括:通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块识别,确定对应的多个算术子模块;对多个所述算术子模块进行边界识别,确定对应的输入边界信息。
结合第一方面的第二实施方式,在本发明第一方面的第三实施方式中,所述对多个所述算术子模块进行边界识别,确定对应的输入边界信息,包括:对多个所述算术子模块进行类型识别,确定每个所述算术子模块对应的模块类型;基于每个所述算术子模块对应的模块类型对多个所述算术子模块进行模块筛选,得到模块筛选结果;当所述模块筛选结果为存在乘法器算术子模块时,对多个所述算术子模块中至少一个乘法器算术子模块进行编码方式识别,得到至少一个所述乘法器算术子模块对应的编码方式;基于至少一个所述乘法器算术子模块对应的编码方式,对多个所述算术子模块中至少一个乘法器算术子模块进行输入边界识别,得到对应的乘法器输入边界信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器输入边界信息;将所述乘法器输入边界信息以及所述加法器输入边界信息合并为所述输入边界信息。
结合第一方面的第三实施方式,在本发明第一方面的第四实施方式中,在所述将所述乘法器输入边界信息以及所述加法器输入边界信息合并为所述输入边界信息之后,还包括:通过所述输入边界信息对至少一个乘法器算术子模块进行部分乘积识别,确定对应的乘积识别结果;通过所述乘积识别结果对至少一个所述乘法器算术子模块进行内部结构识别,得到对应的乘法器内部结构信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器内部结构信息;将所述乘法器内部结构信息以及所述加法器内部结构信息合并为所述内部结构信息。
结合第一方面,在本发明第一方面的第五实施方式中,所述通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码,包括:基于所述子模块逻辑数据集合进行算术逻辑匹配,生成对应的算术逻辑集合;基于所述算术逻辑集合,对所述参考文件进行代码匹配,得到对应的RTL代码。
结合第一方面的第五实施方式,在本发明第一方面的第六实施方式中,所述基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表,包括:对所述算术逻辑集合进行数学表达式构建,生成对应的数学表达式;将所述内部结构信息以及所述子模块逻辑数据集合进行数据合并,得到合并数据集合;基于所述数学表达式以及所述合并数据集合,通过所述内部综合器对所述RTL代码进行代码重组,生成所述第二综合门级网表。
本发明第二方面提供了一种快速逻辑等价性验证装置,所述快速逻辑等价性验证装置包括:
读取模块,用于读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;
提取模块,用于通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;
生成模块,用于通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;
匹配模块,用于通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;
重组模块,用于基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;
验证模块,用于对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
本发明第三方面提供了一种快速逻辑等价性验证设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述快速逻辑等价性验证设备执行上述的快速逻辑等价性验证方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的快速逻辑等价性验证方法。
本发明提供的技术方案中,读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。通过识别目标文件中算术逻辑,并使用参考文件生成与目标文件中算术逻辑一致的实现结构,极大提升了验证流程的效率。本解决方案旨在摆脱对综合工具的综合策略和优化策略等先验知识的依赖。目标电路中的算术电路是否被打散不会影响验证效率,算术电路中进行增量式优化或逻辑功能变更也不会影响验证的效率。
附图说明
图1为本发明实施例中快速逻辑等价性验证方法的一个实施例示意图;
图2为本发明实施例中对第一综合门级网表进行算术子模块边界识别的流程图;
图3为本发明实施例中对多个算术子模块进行边界识别的流程图;
图4为本发明实施例中进行内部结构识别的流程图;
图5为本发明实施例中快速逻辑等价性验证装置的一个实施例示意图;
图6为本发明实施例中快速逻辑等价性验证设备的一个实施例示意图;
图7为本发明实施例中参考RTL文件与提取出算术逻辑的目标门级网表示意图;
图8为本发明实施例中参考RTL文件重新综合后的门级网表与提取出算术逻辑的目标门级网表示意图。
具体实施方式
本发明实施例提供了一种快速逻辑等价性验证方法、装置、设备及存储介质,用于提高逻辑等价性验证的效率。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中快速逻辑等价性验证方法的一个实施例包括:
S101、读取目标电路的RTL文件以及第一综合门级网表,并将RTL文件作为参考文件;
可以理解的是,本发明的执行主体可以为快速逻辑等价性验证装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
具体的,服务器读取预置的RTL文件进行文件综合分析,读取得到对应的第一综合门级网表,通过识别RTL文件中算术逻辑,并使用参考文件生成与RTL文件中算术逻辑一致的实现结构,极大提升了验证流程的效率。通过快速识别不同结构的算术逻辑,从而可以在合理的时间内完成验证,极大提高验证效率。本实施例无需来自综合器的先验知识,使得验证流程摆脱了对于综合工具的依赖。服务器将输入的RTL文件作为参考文件,以及对应的综合后的门级网表(也就是,第一综合门级网表)作为目标文件。服务器对参考RTL文件中的算术逻辑进行重新综合,得到第一综合门级网表。
S102、通过预置的逻辑识别算法对第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;
具体的,服务器通过预置的逻辑识别算法对第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息;通过输入边界信息对第一综合门级网表进行内部结构识别,得到对应的内部结构信息,通过输入边界信息及内部结构信息对第一综合门级网表进行算术子模块输出边界识别,确定对应的输出边界信息;将输入边界信息、输出边界信息以及内部结构信息合并为第一信息集合;通过第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合。
S103、通过中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;
S104、通过子模块逻辑数据集合对参考文件进行代码匹配,得到对应的RTL代码;
具体的,服务器基于所述子模块逻辑数据集合进行算术逻辑匹配,生成对应的算术逻辑集合;服务器基于所述算术逻辑集合,对所述参考文件进行代码匹配,得到对应的RTL代码。
S105、基于内部结构信息以及子模块逻辑数据集合,通过预置的内部综合器对RTL代码进行代码重组,生成第二综合门级网表;
具体的,服务器对所述算术逻辑集合进行数学表达式构建,生成对应的数学表达式;服务器将所述内部结构信息以及所述子模块逻辑数据集合进行数据合并,得到合并数据集合;服务器基于所述数学表达式以及所述合并数据集合,通过所述内部综合器对所述RTL代码进行代码重组,生成所述第二综合门级网表。
S106、对第一综合门级网表以及第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
具体的,服务器对包含算术逻辑的门级网表电路与RTL电路进行快速逻辑等价性验证。本实施例通过输入RTL文件作为参考文件,以及对应的综合后的门级网表作为目标文件。通过逻辑识别算法提取出第一综合门级网表中的算术逻辑及其内部实现,用于对参考RTL文件中的算术逻辑进行重新综合,获得新的参考文件。将新的参考文件和目标文件进行对比,找到第一综合门级网表以及第二综合门级网表的匹配点对。服务器针对每对匹配点对,使用预置的算法验证其逻辑功能是否等价,得到对应的逻辑等价性验证结果。本发明实施例中,目标电路中的算术电路是否被打散不会影响验证效率,算术电路中进行增量式优化或逻辑功能变更也不会影响验证的效率。
本发明实施例中,读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。通过识别目标文件中算术逻辑,并使用参考文件生成与目标文件中算术逻辑一致的实现结构,极大提升了验证流程的效率。本解决方案旨在摆脱对综合工具的综合策略和优化策略等先验知识的依赖。目标电路中的算术电路是否被打散不会影响验证效率,算术电路中进行增量式优化或逻辑功能变更也不会影响验证的效率。
在一具体实施例中,执行步骤S102的过程可以具体包括如下步骤:
(1)通过预置的逻辑识别算法对第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息;
(2)通过输入边界信息对第一综合门级网表进行内部结构识别,得到对应的内部结构信息;
(3)通过输入边界信息对第一综合门级网表进行算术子模块边界识别,确定对应的输出边界信息;
(4)将输入边界信息、输出边界信息以及内部结构信息合并为第一信息集合;
(5)通过第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合。
具体的,服务器通过预置的逻辑识别算法,对第一综合门级网表中的基础算术子模块的边界进行识别,其中,基础算术子模块的输入边界有独特的模式,尤其是算术子模块,采用不同的编码方式的算术子模块在算术逻辑的边界上会有不同模式的部分乘积逻辑,因此通过识别部分乘积,就可以识别出不同编码模式的算术子模块。服务器通过找到的基础算术子模块的输入边界信息,来寻找基础算术子模块的中间操作逻辑集合以及第一信息集合,该第一信息集合包括输入边界信息、输出边界信息以及内部结构信息。算术子模块在数字电路中的实现,主要也是通过转换为部分乘积的加法来实现,因此对于算术子模块和加法器来说,这一部分逻辑都会通过构建加法器来实现。
在一具体实施例中,如图2所示,执行通过预置的逻辑识别算法对第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息步骤的过程可以具体包括如下步骤:
S201、通过预置的逻辑识别算法对第一综合门级网表进行算术子模块识别,确定对应的多个算术子模块;
S202、对多个算术子模块进行边界识别,确定对应的输入边界信息。
具体的,服务器基于第一信息集合中的编码方式集合对第一综合门级网表进行部分乘积识别,其中,多位加法器的实现结构有Wallace树加法器,同时这也多被用来构建算术子模块的部分乘积相加的操作,确定对应的多个算术子模块。当找到算术子模块的输入边界以及部分乘积后,通过找到的所有部分乘积来识别第一综合门级网表中已建立的Wallace树加法器。先对目标门级网表进行分析,识别其中的算术逻辑,从图7可以看出,本方法识别出了一个Booth乘法器和一个Non-Booth乘法器。如图所示,图7中左侧为参考RTL文件,右侧是目标门级网表。而图8中左侧则是参考RTL文件重新综合后的第一综合门级网表。该第一综合门级网表中有一个Booth乘法器和一个Non-Booth乘法器,这两个算术子模块的区别在于输入编码采用的方法不同。图中Booth和Non-Booth是指Booth乘法器和Non-Booth乘法器的输入编码部分。CSA(Carry Save Adder)是进位保存加法器。CLA(CarryLookahead Adder)是超前进位加法器。算术子模块在实际电路中的常见结构构成,就是由最开始的输入编码部分,进位保存加法器(CSA)和超前进位加法器(CLA)共同组成。其中,进位保存加法器(CSA)这部分电路,也被称作Wallace树加法器。
在一具体实施例中,如图3所示,执行步骤S202的过程可以具体包括如下步骤:
S301、对多个算术子模块进行类型识别,确定每个算术子模块对应的模块类型;
S302、基于每个算术子模块对应的模块类型对多个算术子模块进行模块筛选,得到模块筛选结果;
S303、当模块筛选结果为存在乘法器算术子模块时,对多个算术子模块中至少一个乘法器算术子模块进行编码方式识别,得到至少一个乘法器算术子模块对应的编码方式;
S304、基于至少一个乘法器算术子模块对应的编码方式,对多个算术子模块中至少一个乘法器算术子模块进行输入边界识别,得到对应的乘法器输入边界信息;
S305、对多个算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器输入边界信息;
S306、将乘法器输入边界信息以及加法器输入边界信息合并为输入边界信息。
具体的,服务器通过输入边界信息进行输出边界匹配,得到对应的输出边界信息,通过找到的基础算术子模块的输入边界,来寻找基础算术子模块的中间操作逻辑以及输出边界,基于输入边界信息以及输出边界信息生成对应的基础算术子模块集合。算术子模块在数字电路中的实现,主要也是通过转换为部分乘积的加法来实现,因此对于算术子模块和加法器来说,这一部分逻辑都会通过构建加法器来实现。
在一具体实施例中,如图4所示,在执行步骤S306之后,可以具体包括如下步骤:
S401、通过输入边界信息对至少一个乘法器算术子模块进行部分乘积识别,确定对应的乘积识别结果;
S402、通过乘积识别结果对至少一个乘法器算术子模块进行内部结构识别,得到对应的乘法器内部结构信息;
S403、对多个算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器内部结构信息;
S404、将乘法器内部结构信息以及加法器内部结构信息合并为内部结构信息。
具体的,通过输入边界信息对至少一个乘法器算术子模块进行部分乘积识别,确定对应的乘积识别结果:根据输入边界信息,识别乘法器算术子模块中的部分乘积。乘法器通常包含多个部分乘积单元,每个单元将输入信号进行部分乘积运算。通过分析输入边界信息,可以确定哪些部分乘积单元参与了乘积运算,并得到对应的乘积识别结果。根据乘积识别结果,对乘法器算术子模块进行内部结构识别。乘法器的内部结构包括各个部分乘积单元的连接方式、运算规则等信息。通过分析乘积识别结果,可以推断出乘法器的内部结构,并得到相应的内部结构信息。对多个算术子模块中的至少一个加法器算术子模块进行内部结构识别。加法器是执行加法运算的算术子模块。通过分析加法器算术子模块的输入输出关系、运算规则等信息,可以确定加法器的内部结构,并得到对应的内部结构信息。将之前得到的乘法器内部结构信息和加法器内部结构信息进行合并。通过将这两种算术子模块的内部结构信息整合在一起,得到完整的内部结构信息。
在一具体实施例中,执行步骤S104的过程可以具体包括如下步骤:
(1)基于子模块逻辑数据集合进行算术逻辑匹配,生成对应的算术逻辑集合;
(2)基于算术逻辑集合,对参考文件进行代码匹配,得到对应的RTL代码。
具体的,基于子模块逻辑数据集合进行算术逻辑匹配,通过算法,从输入的门级网表中提取算术逻辑并且获得其的内部结构实现,生成对应的算术逻辑集合。根据算术逻辑集合,对参考文件进行代码匹配,得到对应的RTL代码,通过在作为参考文件的RTL文件中找到相应的RTL代码,将RTL代码和获得的信息用于指导内部综合器将这部分RTL代码转换为门级网表,同时保证与目标文件中实现结构一样。在目标门级网表中,无需先验知识,来搜寻算术模块模式,例如基础的加法器和算术子模块。对于综合后的加法器和算术子模块的算术逻辑,它们始终会有一些固定的模式。该算法通过识别不同的模式,来判断加法器和算术子模块的算术逻辑以及其相关的综合策略。
在一具体实施例中,执行步骤S105的过程可以具体包括如下步骤:
(1)对算术逻辑集合进行数学表达式构建,生成对应的数学表达式;
(2)将内部结构信息以及子模块逻辑数据集合进行数据合并,得到合并数据集合;
(3)基于数学表达式以及合并数据集合,通过内部综合器对RTL代码进行代码重组,生成第二综合门级网表。
具体的,对算术逻辑集合进行数学表达式构建,生成对应的数学表达式,基于数学表达式,通过内部综合器对RTL代码进行代码重组,生成第二综合门级网表,将其与目标门级网表进行验证比较。
上面对本发明实施例中快速逻辑等价性验证方法进行了描述,下面对本发明实施例中快速逻辑等价性验证装置进行描述,请参阅图5,本发明实施例中快速逻辑等价性验证装置一个实施例包括:
读取模块501,用于读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;
提取模块502,用于通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;
生成模块503,用于通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;
匹配模块504,用于通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;
重组模块505,用于基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;
验证模块506,用于对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
通过上述各个组成部分的协同合作,读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。通过识别目标文件中算术逻辑,并使用参考文件生成与目标文件中算术逻辑一致的实现结构,极大提升了验证流程的效率。本解决方案旨在摆脱对综合工具的综合策略和优化策略等先验知识的依赖。目标电路中的算术电路是否被打散不会影响验证效率,算术电路中进行增量式优化或逻辑功能变更也不会影响验证的效率。
上面图5从模块化功能实体的角度对本发明实施例中的快速逻辑等价性验证装置进行详细描述,下面从硬件处理的角度对本发明实施例中快速逻辑等价性验证设备进行详细描述。
图6是本发明实施例提供的一种快速逻辑等价性验证设备的结构示意图,该快速逻辑等价性验证设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对快速逻辑等价性验证设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在快速逻辑等价性验证设备600上执行存储介质630中的一系列指令操作。
快速逻辑等价性验证设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的快速逻辑等价性验证设备结构并不构成对快速逻辑等价性验证设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种快速逻辑等价性验证设备,所述快速逻辑等价性验证设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述快速逻辑等价性验证方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述快速逻辑等价性验证方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种快速逻辑等价性验证方法,其特征在于,所述快速逻辑等价性验证方法包括:
读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;
通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;具体包括:通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息;通过所述输入边界信息对所述第一综合门级网表进行内部结构识别,得到对应的内部结构信息;通过所述输入边界信息对所述第一综合门级网表进行算术子模块边界识别,确定对应的输出边界信息;将所述输入边界信息、输出边界信息以及内部结构信息合并为所述第一信息集合;通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合;其中,通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块识别,确定对应的多个算术子模块;对多个所述算术子模块进行边界识别,确定对应的输入边界信息;其中,对多个所述算术子模块进行类型识别,确定每个所述算术子模块对应的模块类型;基于每个所述算术子模块对应的模块类型对多个所述算术子模块进行模块筛选,得到模块筛选结果;当所述模块筛选结果为存在乘法器算术子模块时,对多个所述算术子模块中至少一个乘法器算术子模块进行编码方式识别,得到至少一个所述乘法器算术子模块对应的编码方式;基于至少一个所述乘法器算术子模块对应的编码方式,对多个所述算术子模块中至少一个乘法器算术子模块进行输入边界识别,得到对应的乘法器输入边界信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器输入边界信息;将所述乘法器输入边界信息以及所述加法器输入边界信息合并为所述输入边界信息;其中,通过所述输入边界信息对至少一个乘法器算术子模块进行部分乘积识别,确定对应的乘积识别结果;通过所述乘积识别结果对至少一个所述乘法器算术子模块进行内部结构识别,得到对应的乘法器内部结构信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器内部结构信息;将所述乘法器内部结构信息以及所述加法器内部结构信息合并为所述内部结构信息;
通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;
通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;
基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;
对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
2.根据权利要求1所述的快速逻辑等价性验证方法,其特征在于,所述通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码,包括:
基于所述子模块逻辑数据集合进行算术逻辑匹配,生成对应的算术逻辑集合;
基于所述算术逻辑集合,对所述参考文件进行代码匹配,得到对应的RTL代码。
3.根据权利要求2所述的快速逻辑等价性验证方法,其特征在于,所述基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表,包括:
对所述算术逻辑集合进行数学表达式构建,生成对应的数学表达式;
将所述内部结构信息以及所述子模块逻辑数据集合进行数据合并,得到合并数据集合;
基于所述数学表达式以及所述合并数据集合,通过所述内部综合器对所述RTL代码进行代码重组,生成所述第二综合门级网表。
4.一种快速逻辑等价性验证装置,其特征在于,所述快速逻辑等价性验证装置包括:
读取模块,用于读取目标电路的RTL文件以及第一综合门级网表,并将所述RTL文件作为参考文件;
提取模块,用于通过预置的逻辑识别算法对所述第一综合门级网表进行数据提取,生成对应的第一信息集合,并通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合,其中,所述第一信息集合包括输入边界信息、输出边界信息以及内部结构信息;具体包括:通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块边界识别,得到对应的输入边界信息;通过所述输入边界信息对所述第一综合门级网表进行内部结构识别,得到对应的内部结构信息;通过所述输入边界信息对所述第一综合门级网表进行算术子模块边界识别,确定对应的输出边界信息;将所述输入边界信息、输出边界信息以及内部结构信息合并为所述第一信息集合;通过所述第一信息集合进行中间操作逻辑分析,生成对应的中间操作逻辑集合;其中,通过预置的逻辑识别算法对所述第一综合门级网表进行算术子模块识别,确定对应的多个算术子模块;对多个所述算术子模块进行边界识别,确定对应的输入边界信息;其中,对多个所述算术子模块进行类型识别,确定每个所述算术子模块对应的模块类型;基于每个所述算术子模块对应的模块类型对多个所述算术子模块进行模块筛选,得到模块筛选结果;当所述模块筛选结果为存在乘法器算术子模块时,对多个所述算术子模块中至少一个乘法器算术子模块进行编码方式识别,得到至少一个所述乘法器算术子模块对应的编码方式;基于至少一个所述乘法器算术子模块对应的编码方式,对多个所述算术子模块中至少一个乘法器算术子模块进行输入边界识别,得到对应的乘法器输入边界信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器输入边界信息;将所述乘法器输入边界信息以及所述加法器输入边界信息合并为所述输入边界信息;其中,通过所述输入边界信息对至少一个乘法器算术子模块进行部分乘积识别,确定对应的乘积识别结果;通过所述乘积识别结果对至少一个所述乘法器算术子模块进行内部结构识别,得到对应的乘法器内部结构信息;对多个所述算术子模块中至少一个加法器算术子模块进行内部结构识别,得到对应的加法器内部结构信息;将所述乘法器内部结构信息以及所述加法器内部结构信息合并为所述内部结构信息;
生成模块,用于通过所述中间操作逻辑集合进行模块数据提取,生成对应的子模块逻辑数据集合;
匹配模块,用于通过所述子模块逻辑数据集合对所述参考文件进行代码匹配,得到对应的RTL代码;
重组模块,用于基于所述内部结构信息以及所述子模块逻辑数据集合,通过预置的内部综合器对所述RTL代码进行代码重组,生成第二综合门级网表;
验证模块,用于对所述第一综合门级网表以及所述第二综合门级网表进行逻辑等价性验证,得到对应的逻辑等价性验证结果。
5.一种快速逻辑等价性验证设备,其特征在于,所述快速逻辑等价性验证设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述快速逻辑等价性验证设备执行如权利要求1-3中任一项所述的快速逻辑等价性验证方法。
6.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-3中任一项所述的快速逻辑等价性验证方法。
CN202310875980.9A 2023-07-18 2023-07-18 快速逻辑等价性验证方法、装置、设备及存储介质 Active CN116595918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310875980.9A CN116595918B (zh) 2023-07-18 2023-07-18 快速逻辑等价性验证方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310875980.9A CN116595918B (zh) 2023-07-18 2023-07-18 快速逻辑等价性验证方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116595918A CN116595918A (zh) 2023-08-15
CN116595918B true CN116595918B (zh) 2023-12-08

Family

ID=87608444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310875980.9A Active CN116595918B (zh) 2023-07-18 2023-07-18 快速逻辑等价性验证方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116595918B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117371386B (zh) * 2023-12-08 2024-04-02 奇捷科技(深圳)有限公司 电路布局更新方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993730B1 (en) * 2001-01-10 2006-01-31 Tempus Fugit, Inc. Method for rapidly determining the functional equivalence between two circuit models
CN102831273A (zh) * 2012-08-30 2012-12-19 锐迪科科技有限公司 包含双边沿触发器的数字集成电路设计方法
CN112069754A (zh) * 2020-09-08 2020-12-11 海光信息技术股份有限公司 芯片设计方法、系统、设备以及存储介质
CN113486611A (zh) * 2021-06-30 2021-10-08 海光信息技术股份有限公司 芯片设计方法、芯片设计装置及非暂时性存储介质
CN114048701A (zh) * 2022-01-12 2022-02-15 湖北芯擎科技有限公司 网表eco方法、装置、设备及可读存储介质
CN114417754A (zh) * 2022-03-31 2022-04-29 芯行纪科技有限公司 组合逻辑单元的形式化识别方法及相关设备
CN115796093A (zh) * 2023-01-03 2023-03-14 摩尔线程智能科技(北京)有限责任公司 电路时序优化方法、装置、电子设备及存储介质
CN116050309A (zh) * 2021-12-31 2023-05-02 海光信息技术股份有限公司 数字电路的设计方法、装置、电子设备、存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117576B2 (en) * 2008-03-05 2012-02-14 Rambus Inc. Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US9141740B2 (en) * 2011-03-31 2015-09-22 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing full-chip optimization with reduced physical design data
US9547733B2 (en) * 2015-03-31 2017-01-17 Xpliant Identifying inversion error in logic equivalence check
US10762261B2 (en) * 2016-01-22 2020-09-01 Yu-Liang Wu Methods and apparatus for transforming the function of an integrated circuit
US11409916B2 (en) * 2016-01-22 2022-08-09 Easy-Logic Technology Ltd. Methods and apparatus for removing functional bugs and hardware trojans for integrated circuits implemented by field programmable gate array (FPGA)
US10460060B2 (en) * 2017-11-27 2019-10-29 Mellanox Technologies, Ltd. Checking equivalence between changes made in a circuit definition language and changes in post-synthesis nets

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993730B1 (en) * 2001-01-10 2006-01-31 Tempus Fugit, Inc. Method for rapidly determining the functional equivalence between two circuit models
CN102831273A (zh) * 2012-08-30 2012-12-19 锐迪科科技有限公司 包含双边沿触发器的数字集成电路设计方法
CN112069754A (zh) * 2020-09-08 2020-12-11 海光信息技术股份有限公司 芯片设计方法、系统、设备以及存储介质
CN113486611A (zh) * 2021-06-30 2021-10-08 海光信息技术股份有限公司 芯片设计方法、芯片设计装置及非暂时性存储介质
CN116050309A (zh) * 2021-12-31 2023-05-02 海光信息技术股份有限公司 数字电路的设计方法、装置、电子设备、存储介质
CN114048701A (zh) * 2022-01-12 2022-02-15 湖北芯擎科技有限公司 网表eco方法、装置、设备及可读存储介质
CN114417754A (zh) * 2022-03-31 2022-04-29 芯行纪科技有限公司 组合逻辑单元的形式化识别方法及相关设备
CN115796093A (zh) * 2023-01-03 2023-03-14 摩尔线程智能科技(北京)有限责任公司 电路时序优化方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116595918A (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
Pugh The Omega test: a fast and practical integer programming algorithm for dependence analysis
JP6533746B2 (ja) データレコード選択
Jonsson et al. Recursive blocked algorithms for solving triangular systems—Part II: Two-sided and generalized Sylvester and Lyapunov matrix equations
US20150032759A1 (en) System and method for analyzing result of clustering massive data
CN116595918B (zh) 快速逻辑等价性验证方法、装置、设备及存储介质
US20050240645A1 (en) Generation of test cases with range constraints for floating point add and subtract instructions
CN108459965B (zh) 一种结合用户反馈和代码依赖的软件可追踪生成方法
CN115576999B (zh) 基于云平台的任务数据处理方法、装置、设备及存储介质
Stoffel et al. Equivalence checking of arithmetic circuits on the arithmetic bit level
McKenney et al. A parallel plane sweep algorithm for multi-core systems
US10133839B1 (en) Systems and methods for estimating a power consumption of a register-transfer level circuit design
CN112529543A (zh) 工作流互斥关系的校验方法、装置、设备及存储介质
Benmaghnia et al. Code generation for neural networks based on fixed-point arithmetic
Stoffel et al. Verification of integer multipliers on the arithmetic bit level
CN106569734B (zh) 数据洗牌时内存溢出的修复方法及装置
CN115130043B (zh) 基于数据库的数据处理方法、装置、设备及存储介质
CN115688853A (zh) 一种流程挖掘方法及系统
Solé et al. Incremental process discovery
CN113946717A (zh) 一种子图指标特征获得方法、装置、设备及存储介质
Diao et al. Coupling reverse engineering and SAT to tackle NP-complete arithmetic circuitry verification in∼ O (# of gates)
US11281458B2 (en) Evaluation of developer organizations
Ray et al. An optimized HPWL model for VLSI analytical placement
Abdollahi Signature based Boolean matching in the presence of don't cares
Kundu et al. Rectilinear Steiner Tree construction techniques using PB-SAT-based methodology
Ma et al. Applying a code clone detection method to domain analysis of device drivers

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Diao Yi

Inventor after: Wei Xing

Inventor after: Lin Deji

Inventor after: Yuan Feng

Inventor after: Yang Xiaoqing

Inventor before: Diao Yi

Inventor before: Wei Xing

Inventor before: Lin Deji