CN108829903B - 判定fpga冗余设计的代码与综合后电路一致性的方法和系统 - Google Patents

判定fpga冗余设计的代码与综合后电路一致性的方法和系统 Download PDF

Info

Publication number
CN108829903B
CN108829903B CN201711096856.3A CN201711096856A CN108829903B CN 108829903 B CN108829903 B CN 108829903B CN 201711096856 A CN201711096856 A CN 201711096856A CN 108829903 B CN108829903 B CN 108829903B
Authority
CN
China
Prior art keywords
consistency
fpga
integrated circuit
module
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
CN201711096856.3A
Other languages
English (en)
Other versions
CN108829903A (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.)
China General Nuclear Power Corp
China Techenergy Co Ltd
Original Assignee
China General Nuclear Power Corp
China Techenergy 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 China General Nuclear Power Corp, China Techenergy Co Ltd filed Critical China General Nuclear Power Corp
Priority to CN201711096856.3A priority Critical patent/CN108829903B/zh
Publication of CN108829903A publication Critical patent/CN108829903A/zh
Application granted granted Critical
Publication of CN108829903B publication Critical patent/CN108829903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明属于核电控制的技术领域,为了解决现有技术中综合后仿真方法和形式化一致性验证方法分别存在的不足,提供一种判定FPGA冗余设计的代码与综合后电路一致性的方法和系统;所述方法包括:S1、分别检索FPGA代码中的第一关键词和综合电路对应网表文件中的第二关键词;S2、判断FPGA代码中第一关键词检索得到的第一信号名集合是否属于网表文件中第二关键词检索得到的第二信号名集合的子集;如果是,则综合后电路的信号一致性检测通过;S3、判断FPGA代码文件中声明的所有信号,在综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接;如果是,则综合后电路的逻辑一致性检测通过。

Description

判定FPGA冗余设计的代码与综合后电路一致性的方法和系统
技术领域
本发明涉及核电控制的技术领域,尤其涉及核电控制系统用现场可编程门阵列的技术领域,更具体地,涉及一种判定FPGA冗余设计的代码与综合后电路一致性的方法和系统。
背景技术
随着FPGA(现场可编程门阵列)技术在核安全级仪控系统中的广泛应用,对FPGA逻辑设计的一致性提出很高的要求,特别是为了保证可靠性而对关键功能进行的冗余设计,在综合后的功能一致性日益成为核行业中重点关注的问题;现有技术中,常用的分析FPGA冗余设计的代码与综合后电路功能一致性方法主要包括综合后仿真方法和形式化一致性验证方法。
综合后仿真方法是把综合生成的延时文件反标到综合仿真模型中,将模拟的测试激励输入被测对象的带有器件延时信息的仿真模型中仿真运行,通过比较仿真输出和预期输出的结果判定综合后的电路在功能上是否正确;但是由于受到激励覆盖率和仿真成本的约束,只能在一定程度上保证代码与综合电路的一致性,不能完全保证,尤其是对于代码中的冗余设计是否被一致转换为电路问题上,通过综合后仿真不容易识别。
形式化一致性验证方法,通过比较代码与综合后电路,识别代码与综合后电路不一致的设计,该方法通过把综合后电路划分为一系列的逻辑锥(logic cone),然后通过比较点把代码和综合后电路的逻辑锥一一对应起来,再通过比较相对应的逻辑锥的功能是否一致来验证代码和综合后电路的功能是否一致,如果所有的逻辑锥的功能都是一致的,那么两个设计就是等价的;但是由于在综合过程中对电路结构进行了改变,使得比较点无法匹配,而导致比较失败,需进行严格的约束参数设置才能比较成功。
发明内容
本发明为了解决现有技术中综合后仿真方法和形式化一致性验证方法分别存在的不足,提供一种判定FPGA冗余设计的代码与综合后电路一致性的方法和系统,具有覆盖率高、约束条件少等优点。
为了实现上述效果,本发明提供的技术方案包括:
本发明一方面提供一种判定FPGA冗余设计的代码与综合后电路一致性的方法,其特征在于,包括:
S1、分别检索FPGA代码中的第一关键词和综合电路对应网表文件中的第二关键词;
S2、判断所述FPGA代码中第一关键词检索得到的第一信号名集合是否属于所述网表文件中第二关键词检索得到的第二信号名集合的子集;如果是,则综合后电路的信号一致性检测通过;
S3、判断所述FPGA代码文件中声明的所有信号,在所述综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接;如果是,则综合后电路的逻辑一致性检测通过;
S4、当所述综合后电路的信号一致性检测和所述综合后电路的逻辑一致性检测都通过时,则判定所述FPGA冗余设计的代码与综合后电路一致性通过。
本发明实施例优选地,所述步骤S2还包括:如果所述第一信号名集合不属于所述第二信号名集合的子集,则提示报警信息,并显示丢失的信号名。
本发明实施例优选地,所述步骤S3包括:如果有一个或者多个信号只连接到IO端口单元时,提示报警信息,并显示信号和连接信息;如果有一个或者多个信号没有连接元件库中的任一逻辑单元时,发出错误提醒信息。
本发明实施例优选地,所述步骤S3中判断所述FPGA代码文件中声明的所有信号,在所述综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接包括:判断FPGA代码冗余设计与综合后电路是否一致的比较准则为关联信号在所述综合后电路对应网表文件中是否有空接、关联信号在所述综合后电路对应网表文件中是否丢失、关联信号在所述综合后电路对应网表文件中是否连接到VCC或GND定值上。
本发明实施例优选地,所述方法还包括:分别对所述FPGA代码与综合后电路编译前后基本信息的一致性检查和编译后变量是否被优化的检查。
本发明实施例进一步优选地,所述编译前后基本信息的一致性检查包括:模块名称一致性检查、模块内端口信息检查和模块内局部变量检查。
本发明实施例进一步优选地,所述编译后变量是否被优化的检查包括:对顶层文件的端口进行检查和对其它模块的局部变量进行检查。
本发明实施例优选地,所述第一关键词包括模块节点信息、模块参节点信息、模块端口节点信息、局部变量节点信息。
本发明实施例优选地,所述第二关键词包括单元格信息节点信息、单元格的端口节点信息、单元格的用例节点信息、单元格的网络节点信息。
本发明另一方面还提供一种判定FPGA冗余设计的代码与综合后电路一致性的系统,其特征在于,包括:
第一输入模块,设置成输入所述FPGA代码对应的文件;
第二输入模块,设置成输入所述综合后电路对应网表文件;
控制器,设置成用于加载并执行上述任意一种所述的判定FPGA冗余设计的代码与综合后电路一致性的方法。
采用本申请提供的上述技术方案,可以至少获得以下有益效果中的一种:
1、与综合后仿真方法相比,本发明针对整个电路的所有信号进行识别和验证,覆盖率高达100%,能够对冗余设计涉及到的所有信号进行检测;本发明不需要建立复杂的测试平台和设计用例,采用静态文件内容比较的方法,比动态综合后仿真的效率更高;例如,8000行代码,13个输入的设计,从建立仿真平台到仿真执行完成,约需要20天,本申请实施例提供的技术方案,只需1天即可完成一致性验证和确认结果。
2、与形式化一致性验证方法相比,本发明冗余设计一致性判断的准则简单,误判率较低;使用自研工具直接导入.v文件和综合后电路文件一致性判断,不需要置任何参数进行约束,直接进行比较,给出比较结果,使用便利;基于输入文件比较判断的方式进行验证,不需要导入任何库模型,支持不同厂商综合工具综合后的电路文件,扩展本发明的应用范围。
发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书变得显而易见,或者通过实施本发明的技术方案而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构和/或流程来实现和获得。
附图说明
图1为本发明实施例提供的一种判定FPGA冗余设计的代码与综合后电路一致性方法的流程图。
图2为本发明实施例提供的一种判定FPGA冗余设计的代码与综合后电路一致性方法中信号一致性检测的流程图。
图3为本发明实施例提供的一种判定FPGA冗余设计的代码与综合后电路一致性方法中逻辑一致性检测的流程图。
图4为本发明实施例提供的模块名称一致性检查算法对应的流程图。
图5为本发明实施例提供的模块内端口信息检查算法对应的流程图。
图6为本发明实施例提供的模块内局部变量一致性检查对应的流程图。
图7为本发明实施例提供的对顶层文件的端口进行检查算法对应的流程图。
图8为本发明实施例提供的其它模块的局部变量进行检查算法对应的流程图。
图9为本发明实施例提供的一种判定FPGA冗余设计的代码与综合后电路一致性系统的示意图。
图10为本发明另一实施例提供的FPGA代码的示意图。
图11为本发明另一实施例提供的综合后电路网表文件的示意图。
图12为本发明另一实施例提供的综合后电路网表文件中综合后的门级网表的示意图。
图13为本发明另一实施例提供的使用一致性验证工具的第一示意图。
图14为本发明另一实施例提供的使用一致性验证工具的第二示意图。
图15为本发明又一实施例提供的FPGA代码的示意图。
图16为本发明又一实施例提供的综合后电路网表文件的示意图。
图17为本发明又一实施例提供的综合后电路网表文件中综合后的门级网表的示意图。
图18为本发明又一实施例提供的使用一致性验证工具的第一示意图。
图19为本发明又一实施例提供的使用一致性验证工具的第二示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,这些具体的说明只是让本领域普通技术人员更加容易、清晰理解本发明,而非对本发明的限定性解释;并且只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组控制器可执行指令的控制系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
下面通过附图和具体实施例,对本发明的技术方案进行详细描述:
实施例
基于FPGA技术的核安全级仪控系统,往往在FPGA逻辑上增加冗余设计以提高可靠性和安全性,但在使用工具将FPGA代码综合为电路的过程中,会出现综合工具将冗余设计优化删除,使得代码与综合后电路不一致的问题,本实施例提供的技术方案用于验证FPGA冗余设计的代码与综合后电路文件一致性。本申请实施例提供技术方案的设计思路包括:通过检测FPGA冗余功能代码中涉及的信号在综合后电路的连接状态,判断冗余设计是否在电路综合过程中被删除掉,保证FPGA冗余设计的代码与综合后电路保持一致。
具体地,如图1所示,本实施例提供一种判定FPGA冗余设计的代码与综合后电路一致性的方法,该方法包括:
S1、分别检索FPGA代码中的第一关键词和综合电路对应网表文件中的第二关键词;其中,第一关键词用于表征FPGA代码文件中的所有信号名称,第二关键词用于表征综合后电路对应网标文件中的信号名;本实施例优选地,第一关键词包括模块节点信息、模块参节点信息、模块端口节点信息、局部变量节点信息;本实施例优选地,第二关键词包括单元格信息节点信息、单元格的端口节点信息、单元格的用例节点信息、单元格的网络节点信息。
S2、判断FPGA代码中第一关键词检索得到的第一信号名集合(v_signal)是否属于网表文件中第二关键词检索得到的第二信号名集合的子集;如果是,则综合后电路的信号一致性检测通过(n_signal);如图2所示,信号一致性检测功能,是指代码文件中的信号,在通过开发软件综合后,在综合后网表文件中都有体现,没有被优化,删除,遗失;具体包括:
1、在代码文件中检索关键字“input”、“output”、“inout”、“wire”、“reg”后的信号名(S201),需注意信号宽度,得到的集合称为v_signal集合(S202);
2、在综合后的网表文件中检索(library work)括号内关键字“port”后,或语句“port(array(rename XXX”signal[0:0]”……)”中蓝色的信号名(S211),得到的集合称为n_signal集合(S212);
3、判断v_signal是n_signal的子集(S220),如果是,则信号一致性检测通过,如果信号有丢失,则提示报警,并显示丢失的信号名。
S3、判断FPGA代码文件中声明的所有信号,在综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接;如果是,则综合后电路的逻辑一致性检测通过;具体地,综合后电路对应网表文件中有FPGA元件库的描述,描述了项目中所使用到的元件单元。其中包括:1)、IO端口单元:输入缓冲、输出缓冲、时钟缓冲、电源和接地逻辑;2)、基本逻辑:与门、或门、触发器等有实际逻辑功能的元件单。逻辑一致性检测是对FPGA代码文件中声明的所有信号,在综合后网表文件中都与一个或多个有用逻辑单元所连接;具体包括:
1、在综合后网表文件中,首先找FPGA元件库(library***);
注:[***代表芯片型号,不能是work]。
2、在库文件(library***)内检索关键字“cell”(S310),后面的字符即为元件单元。
3、其中名为“INBUF”、“OUTBUF”、“BIBUF”、“CLKBUF”、“VCC”、“GND”的元件单元作为IO端口单元,其他元件单元作为基本逻辑单元(S308);
4、在(library work)内检索代码中的信号名,(S302)
例如,“H2L_Sig”信号,搜索到结果中以关键字“net”开头的字符段(S303),如:
Figure BDA0001462417450000081
Figure BDA0001462417450000091
上述代码表示,以信号H2L_Sig为名的网络连接状态,其中语句“(portRef C(instanceRef i_RNO_0_4))”表示信号H2L_Sig连接到元件单元i_RNO_0_4的C引脚,其他类似语句以此类推;
5、在(library work)中检索飘蓝的所有元件单元名,(S304)
例如搜索“i_RNO_0_4”,找到如下关键字“instance(rename”开头的语句(S305):
(instance(rename i_RNO_0_4"i_RNO_0[4]")(viewRef prim(cellRef NOR3B(libraryRef PA3))))
搜索“H2L_F2_RNIL52J”,找到如下关键字“instance”开头的语句:
(instance H2L_F2_RNIL52J(viewRef prim(cellRef NOR3B(libraryRefPA3))))
搜索结果只会以上述两种情况之一出现。
上述语句表示:元件单元i_RNO_0_4对应(或调用)PA3元件库的NOR3B逻辑单元。元件单元H2L_F2_RNIL52J对应(或调用)PA3元件库的NOR3B逻辑单元。
6、通过上述步骤可以得到信号与H2L_Sig相连的所有元件单元,且能得到对应PA3元件库中所使用的基本逻辑单元,如NOR3B等(S306)。
7、证明代码中的所有信号都和元件库中的基本逻辑单元有链接,当信号只连接到IO端口单元时,提示“warning”,并显示信号和连接信息;当信号没有连接元件库中的任一逻辑单元时,发出报警“Error”。
S4、当综合后电路的信号一致性检测和综合后电路的逻辑一致性检测都通过时,则判定FPGA冗余设计的代码与综合后电路一致性通过。
需要说明的是,上述检索FPGA代码中的第一关键词和综合电路对应网表文件中的第二关键词没有先后顺序,对后续信号一致性、逻辑一致性也不严格要求先后顺序,所有顺序的变化都属于本实施例技术方案保护的范围。
本实施例优选地,步骤S2还包括:如果第一信号名集合不属于第二信号名集合的子集,则提示报警信息,并显示丢失的信号名。
本实施例优选地,步骤S3包括:如果有一个或者多个信号只连接到IO端口单元时,提示报警信息,并显示信号和连接信息;如果有一个或者多个信号没有连接元件库中的任一逻辑单元时,发出错误提醒信息。
本实施例优选地,步骤S3中判断FPGA代码文件中声明的所有信号,在综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接包括:判断FPGA代码冗余设计与综合后电路是否一致的比较准则为关联信号在综合后电路对应网表文件中是否有空接、关联信号在综合后电路对应网表文件中是否丢失、关联信号在综合后电路对应网表文件中是否连接到VCC或GND定值上。
本实施例优选地,方法还包括:分别对FPGA代码与综合后电路编译前后基本信息的一致性检查和编译后变量是否被优化的检查。
本实施例进一步优选地,编译前后基本信息的一致性检查包括:模块(也简称module)名称一致性检查、模块内端口信息检查和模块内局部变量检查。
上述一致性验证的技术方案通过识别关键字和语法规则的算法实现信号的连接关系和状态的验证。
从源文件.v文件中提取以下信息:module节点信息、module形参节点信息、module端口节点信息、局部变量节点信息。
.v文件(FPGA代码文件的一种体现)提取信息存储内容如下:
a)、module(模块)节点信息,包括module名称,module的形参列表,module的端口哈希表,module的局部变量哈希表。将提取的每一个module模块信息,存储一个哈希表(V文件module哈希表)中,该哈希表的每一个键值对中,键为module的名称,值为module模块节点信息。
b)、module(模块)中的形参节点,存储形参的参数名。
c)、module(模块)中的端口节点,存储端口的名称、方向、类型和位宽。
d)、module(模块)中的变量节点,存储局部变量的名称、方向、类型和位宽。
.edn文件(综合后电路网表文件的一种体现)提取信息存储内容如下:
a)、cell(单元格)节点信息,包括cell的名称、cell的端口列表、cell的instance列表、net列表和cell对应的module名称;
b)、cell(单元格)的端口节点信息,包括端口名和端口方向;
c)、cell(单元格)的instance节点信息,包括instance的名称和instanceRef名称;
d)、cell(单元格)的net节点信息,包括net名称和portRef列表;
e)、portRef节点信息,包括portRef名称和instanceRef名称。
从.v文件和.edn文件中提取基本信息,是对编译环节进行形式化检查的前提。此处形式化检查包括两种类型的检查:a、编译前后基本信息的一致性检查;b、编译后变量是否被优化的检查。
编译前后基本信息的一致性检查,包括模块名称一致性检查、模块内端口信息检查和模块内局部变量检查。
如图4所示,模块名称一致性检查算法过程如下:
a)、获取从V文件中提取的module列表内容;(S401、S402)
b)、判断module列表中是否还有未处理元素(S403),如果有则跳转到c)(S404),否则跳转到g)(S411);
c)、从module列表中取出一个module信息节点,并将该元素标记为已处理,读取module的名称;(S404)
d)、获取从edn文件中提取的cell列表;(S405)
e)、判断cell列表是否还有未处理元素(S406),如果有则执行f)(S407),否则标记当前检查的模块名一致性检查不通过(S410),并跳转到b);
f)、从cell列表中取出一个未处理元素,并将该元素标记为已处理,读取该cell节点的module定义名(S407),如果该module定义名与c步读取的module名称相(S408)同,则该标记当前检查的模块名一致性检查通过(S409),并跳转到b),否则跳转e);
g)、结束。(S411)
如图5所示,模块内端口信息检查算法过程如下:
a)、获取从edn文件中提取的cell列表;(S501)
b)、判断cell列表是否还有未处理元素,如果有则执行c),否则跳转到g);(S502)
c)、从cell列表中取出一个未处理元素,判断cell列表是否还有未处理元素,如果有则执行f),读取该cell节点的module定义名;(S503)
d)、利用c)步取出的module定义名,从V文件提取的module列表中取出同名module信息节点;(S504)
e)、在对cell节点的端口列表信息与modul节点的端口列表信息,按端口名进行比较,比较内容包括端口名、位宽、信号方向(S505),如果有任意一个端口的任意特性不一致,则标记该cell的端口检查不通过(S507);如果所有端口的所有特性检查都一致,则标记该cell的端口检查通过(S506);
f)、跳转到b);(S508)
g)、结束。(S509)
如图6所示,模块内局部变量一致性检查过程如下:
a)、获取从V文件中提取的module列表内容和从edn文件中提取Cell列表内容;(S601)
b)、判断module列表中是否还有未处理元素,如果有则跳转到c),否则跳转到f);(S602)
c)、获取从module节点中的变量列表,同时获取cell节点中的net列表;(S603)
d)、判断module节点的变量列表是否还有未处理变量,如果有则转到e)否则跳转到b);(S604)
e)、判断cell节点的net列表中是否存在与取出的变量节点有关联的net节点(S605),如果存在则,标记该变量检查通过(S607),否则标记为该变量检查不通过(S606);然后跳转到d;
f)、结束。(S608)
本实施例进一步优选地,编译后变量是否被优化的检查,主要是针对综合后电路文件(edn文件)进行;编译后变量是否被优化的检查包括:对顶层文件的端口进行检查和对其它模块的局部变量进行检查。
如图7所示,对顶层文件的端口进行检查算法如下:
a)、从library PA3内容中提取所有基本cell信息,获取所有基本cell的名称组成一个集合,并从该集合中去除“VCC、OUTBUF、INBUF、GND、CLKBUF、BIBUF”形成的一个cell名集合,作为有效检查集合(checkSet);(S701)
b)、获取从顶层文件中提取的端口l列表;同时从获取从edn文件提取的顶层cell节点的net列表;(S702)
c)、判断扩展端口列表是否还有未处理元素;(S703)
d)、判断net节点的portRef列表是否还有未处理元素;(S704)
e)、检查cellRef信息的名称是否在checkSet,如果在checkSet中则表示该端口检查通过;(S705)
f)、判断从edn文件中提取的cell节点列表是否还有未处理的cell节点;(S706)
g)、判断“cell节点2”中是否包含ednPortName的net点;(S707)
h)、判断该net节点的portRef列表是否还有未处理元素;(S708)
i)、检查cellRef信息的名称是否在checkSet,如果在checkSet中则表示该端口检查通过;(S709)
j)、标记被检查的portNode检查不通过;跳转到c);(S710)
k)、结束。(S711)
如图8所示,其它module(组件)的局部变量进行检查算法如下:
a)、取出V文件中的某个非顶层的module节点,同时取出在edn文件中存在module定义名与其名称相同的cell节点;(S801)
b)、判断变量列表是否还有未处理元素;(S802)
c)、判断net节点的portRef列表是否还有未处理元素,如果有则执行d),否则标记该变量检查不通过,并跳转到b);(S803)
d)、检查cellRef信息的名称是否在checkSet,如果在checkSet中则表示该端口检查通过,跳转到b),否则跳转到c);(S804)
e)、结束。(S805)
如图9所示,本实施例还提供一种判定FPGA冗余设计的代码与综合后电路一致性的系统,该系统包括:
第一输入模块100,设置成输入FPGA代码对应的文件;
第二输入模块200,设置成输入综合后电路对应网表文件;
控制器300,设置成用于加载并执行上述任意一种的判定FPGA冗余设计的代码与综合后电路一致性的方法。
采用本申请提供的上述技术方案,可以至少获得以下有益效果中的一种:
1、与综合后仿真方法相比,本发明针对整个电路的所有信号进行识别和验证,覆盖率高达100%,能够对冗余设计涉及到的所有信号进行检测;本发明不需要建立复杂的测试平台和设计用例,采用静态文件内容比较的方法,比动态综合后仿真的效率更高;例如,8000行代码,13个输入的设计,从建立仿真平台到仿真执行完成,约需要20天,本申请实施例提供的技术方案,只需1天即可完成一致性验证和确认结果。
2、与形式化一致性验证方法相比,本发明冗余设计一致性判断的准则简单,误判率较低;使用自研工具直接导入.v文件和综合后电路文件一致性判断,不需要置任何参数进行约束,直接进行比较,给出比较结果,使用便利;基于输入文件比较判断的方式进行验证,不需要导入任何库模型,支持不同厂商综合工具综合后的电路文件,扩展本发明的应用范围。
下面结合图10-图19进一步解释本申请技术方案,本申请实施例中包括为一个有冗余功能的工程,软件工具为Libero 15.0,综合工具为Synplify Pro I-2014.03M-SP1,开发语言为Verilog HDL语言;并且假设FPGA设计为三层模块设计,其中底层模块做加法逻辑,中间层模块调用2个底层模块做冗余,在顶层模块中判断两个底层模块的输出是否一致,并输出判断的结果;在默认状态下,综合器会自动将设计中的逻辑进行分析,将冗余设计的逻辑删除,并根据逻辑功能和芯片内逻辑单元结构进行编译和优化,改变了设计初衷,所以需要在代码中加入综合约束命令,避免综合器删除冗余逻辑;并且本实施例用两个工程作为对比,一个例子是冗余设计在综合后电路中被优化删除(图10-图14),另一个例子冗余设计通过综合约束保留在综合后电路中(图15-图19)。
如图10-图14所述,本申请实施例使用使用的方法验证冗余设计被优化的过程如下:
a)、设计代码如图10所示,代码中需要关注两类元素:顶层模块的端口信号、底层模块的reg型变量。
b)、综合工具Synplify综合后的RTL级网表如图11所示,由图11可知,综合后的RTL级网表示意图正确的反映了代码的功能,体现了RTL级网表文件与代码的一致性。
c)、综合工具Synplify综合后的门级网表检查:
i)、在综合工具综合后的门级网表(edn文件)中查找顶层代码的端口信号,如in1_t,在门级网表文件中可查到in1_t的网表连接信息如下:
Figure BDA0001462417450000161
综合器将in1_t通过in1_t_pad单元改名为in1_t_c,检查in1_t_c,得到in1_t_c连接到实例out1_2_2,具体如下:
Figure BDA0001462417450000171
实例out1_2_2引用的是芯片中的基本逻辑单元XOR2,如下:
Figure BDA0001462417450000172
ii)、在综合工具综合后的门级网表(edn文件)中查找底层模块的reg型变量,如out1,在门级网表文件中可查到out1在网表文件中的实例化信息如下:
Figure BDA0001462417450000173
其中,实例out1调用的是芯片中的基本寄存器单元DFN1C0。
如图12所示,综合器将设计中的逻辑进行编译优化后,保留了原设计中的逻辑,没有删除任何代码中所体现出来的逻辑,体现了门级网表文件与代码的一致。
使用一致性验证工具检测如图13所示:
a)、导入FPGA代码文件.v,以及综合后电路文件.edn;
b)、点击“执行一致性性检查”按钮,开始运行一致性验证;
c)、查看运行结果(如图14所示),验证结果为“通过”,表示FPGA冗余设计的代码与综合后电路一致。
冗余设计被优化删除的例子如图15-图19所示;具体地:
a)、设计代码如下如图15所示,代码中也需要关注两类元素:顶层模块的端口信号、底层模块的reg型变量。
b)、综合工具Synplify综合后的RTL级网表示意图如图16所示,由图16可知,综合后的RTL级网表示意图正确的反映了代码的功能,体现了RTL级网表文件与代码的一致性。
c)、综合工具Synplify综合后的门级网表检查:
i)在综合工具综合后的门级网表(edn文件)中查找顶层代码的端口信号,如in1_t,在门级网表文件中可查到in1_t的网表连接信息如下:
Figure BDA0001462417450000181
如上,可以发现in1_t信号未与任何芯片基本单元相连。
ii)、如图17所示,在综合工具综合后的门级网表(edn文件)中查找底层模块的reg型变量,如out1,在门级网表文件中检查out1在网表文件中的实例化信息,未发现out1变量,说明out1变量在综合过程中被综合删除了。
如图17所示,综合器将设计中的逻辑进行编译优化后,删除了原设计中的逻辑,即删除了底层模块中定义的reg型变量,顶层模块中的输入信号未连接任何逻辑单元,输出信号通过OUTBUF将信号置为高电平。由此可知,经过综合器综合后的门级网表文件未能与代码保持一致。
如图18所述,使用一致性验证工具检测包括:
a)、导入FPGA代码文件.v,以及综合后电路文件.edn;
b)、点击“执行一致性性检查”按钮,开始运行一致性验证;
c)、查看运行结果,验证结果为“不通过”(图19),FPGA代码中的冗余设计在综合后电路中被优化删除。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后需要说明的是,上述说明仅是本发明的最佳实施例而已,并非对本发明做任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围内,都可利用上述揭示的做法和技术内容对本发明技术方案做出许多可能的变动和简单的替换等,这些都属于本发明技术方案保护的范围。

Claims (8)

1.一种判定FPGA冗余设计的代码与综合后电路一致性的方法,其特征在于,包括:
S1、分别检索FPGA代码中的第一关键词和综合电路对应网表文件中的第二关键词;
S2、判断所述FPGA代码中第一关键词检索得到的第一信号名集合是否属于所述网表文件中第二关键词检索得到的第二信号名集合的子集;如果是,则综合后电路的信号一致性检测通过;
S3、判断所述FPGA代码文件中声明的所有信号,在所述综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接;如果是,则综合后电路的逻辑一致性检测通过;
S4、当所述综合后电路的信号一致性检测和所述综合后电路的逻辑一致性检测都通过时,则判定所述FPGA冗余设计的代码与综合后电路一致性通过;
其中,所述第一关键词包括模块节点信息、模块参节点信息、模块端口节点信息、局部变量节点信息;并且所述第二关键词包括单元格信息节点信息、单元格的端口节点信息、单元格的用例节点信息、单元格的网络节点信息。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:如果所述第一信号名集合不属于所述第二信号名集合的子集,则提示报警信息,并显示丢失的信号名。
3.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:如果有一个或者多个信号只连接到IO端口单元时,提示报警信息,并显示信号和连接信息;如果有一个或者多个信号没有连接元件库中的任一逻辑单元时,发出错误提醒信息。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3中判断所述FPGA代码文件中声明的所有信号,在所述综合后电路对应网表文件中是否分别都有一个或多个有用逻辑单元与相应的信号连接包括:判断FPGA代码冗余设计与综合后电路是否一致的比较准则为关联信号在所述综合后电路对应网表文件中是否有空接、关联信号在所述综合后电路对应网表文件中是否丢失、关联信号在所述综合后电路对应网表文件中是否连接到VCC或GND定值上。
5.根据权利要求1所述的方法,其特征在于,还包括:分别对所述FPGA代码与综合后电路编译前后基本信息的一致性检查和编译后变量是否被优化的检查。
6.根据权利要求5所述的方法,其特征在于,所述编译前后基本信息的一致性检查包括:模块名称一致性检查、模块内端口信息检查和模块内局部变量检查。
7.根据权利要求5所述的方法,其特征在于,所述编译后变量是否被优化的检查包括:对顶层文件的端口进行检查和对其它模块的局部变量进行检查。
8.一种判定FPGA冗余设计的代码与综合后电路一致性的系统,其特征在于,包括:
第一输入模块,设置成输入所述FPGA代码对应的文件;
第二输入模块,设置成输入所述综合后电路对应网表文件;
控制器,设置成用于加载并执行如权利要求1-7中任意一种所述的判定FPGA冗余设计的代码与综合后电路一致性的方法。
CN201711096856.3A 2017-11-09 2017-11-09 判定fpga冗余设计的代码与综合后电路一致性的方法和系统 Active CN108829903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711096856.3A CN108829903B (zh) 2017-11-09 2017-11-09 判定fpga冗余设计的代码与综合后电路一致性的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711096856.3A CN108829903B (zh) 2017-11-09 2017-11-09 判定fpga冗余设计的代码与综合后电路一致性的方法和系统

Publications (2)

Publication Number Publication Date
CN108829903A CN108829903A (zh) 2018-11-16
CN108829903B true CN108829903B (zh) 2021-11-05

Family

ID=64153946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711096856.3A Active CN108829903B (zh) 2017-11-09 2017-11-09 判定fpga冗余设计的代码与综合后电路一致性的方法和系统

Country Status (1)

Country Link
CN (1) CN108829903B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668259A (zh) * 2020-12-24 2021-04-16 北京华大九天科技股份有限公司 一种后仿真网表的系统验证方法
CN113343615B (zh) * 2021-05-19 2023-08-01 中天恒星(上海)科技有限公司 基于fpga的原型验证方法与编码装置
CN113255258B (zh) * 2021-06-23 2021-10-01 上海国微思尔芯技术股份有限公司 逻辑综合方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495356A (zh) * 2011-11-30 2012-06-13 福州大学 扫描链异步复位寄存器复位端口处理方法
CN102831273A (zh) * 2012-08-30 2012-12-19 锐迪科科技有限公司 包含双边沿触发器的数字集成电路设计方法
CN102857213A (zh) * 2011-07-01 2013-01-02 阿尔特拉公司 可重构逻辑块
CN105137454A (zh) * 2015-07-22 2015-12-09 北京航空航天大学 一种基于协方差矩阵特征分解的抗干扰算法的fpga实现方法及实现装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785872B2 (en) * 2002-01-22 2004-08-31 Hewlett-Packard Development Company, L.P. Algorithm-to-hardware system and method for creating a digital circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857213A (zh) * 2011-07-01 2013-01-02 阿尔特拉公司 可重构逻辑块
CN102495356A (zh) * 2011-11-30 2012-06-13 福州大学 扫描链异步复位寄存器复位端口处理方法
CN102831273A (zh) * 2012-08-30 2012-12-19 锐迪科科技有限公司 包含双边沿触发器的数字集成电路设计方法
CN105137454A (zh) * 2015-07-22 2015-12-09 北京航空航天大学 一种基于协方差矩阵特征分解的抗干扰算法的fpga实现方法及实现装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RTL到门级网表的等价性验证方法;田素雷等;《中国集成电路》;20150331(第190期);第22-25页 *

Also Published As

Publication number Publication date
CN108829903A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
US6931611B2 (en) Design verification system for avoiding false failures and method therefor
US7685545B2 (en) Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow
KR101580258B1 (ko) 생산용 칩 디자인 워크플로우에서의 셀 무결성, 변경 및 기점에 대한 독립적인 평가 방법 및 장치
US7404161B2 (en) Fullchip functional equivalency and physical verification
CN108829903B (zh) 判定fpga冗余设计的代码与综合后电路一致性的方法和系统
US20050188336A1 (en) System and method for waiving a verification check
US20100281447A1 (en) Method for detecting contradictory timing constraint conflicts
US20030221173A1 (en) Method and apparatus for detecting connectivity conditions in a netlist database
US6732340B1 (en) Method for designing a semiconductor integrated circuit which includes consideration of parasitic elements on critical data paths
CN103365772B (zh) 软件测试自动评价装置以及方法
CN115113927A (zh) 寄存器模型处理方法、装置、计算机设备和存储介质
US9529962B1 (en) System and method for generating and using sibling nets model for shared delay calculation across multi-instantiated blocks in the circuit design
JP2000242672A (ja) 形式的論理検証装置および形式的論理検証方法
US7219317B2 (en) Method and computer program for verifying an incremental change to an integrated circuit design
US6308301B1 (en) System and method for detecting multiplexers in a circuit design
US20120317526A1 (en) Verification method, computer-readable recording medium, and design verification apparatus
CN111045948A (zh) 模块间接口信号的检查方法、设备和存储介质
Brayton et al. A toolbox for counter-example analysis and optimization
JP3195031B2 (ja) テスト仕様生成方法及び半導体装置検査装置及び半導体装置検査方法
CN116245076A (zh) Drc测试版图库的自动构造方法及drc方法、系统、可读存储介质
US10234502B1 (en) Circuit defect diagnosis based on sink cell fault models
JP2013077124A (ja) ソフトウェアテストケース生成装置
US10055341B2 (en) To-be-stubbed target determining apparatus, to-be-stubbed target determining method and non-transitory recording medium storing to-be-stubbed target determining program
US8554522B2 (en) Detection of design redundancy
US6718522B1 (en) Electrical rules checker system and method using tri-state logic for electrical rule checks

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