掌桥专利:专业的专利平台
掌桥专利
首页

一种硬件模块等价性验证系统

文献发布时间:2024-04-18 19:58:26


一种硬件模块等价性验证系统

技术领域

本发明涉及硬件设计技术领域,尤其涉及一种硬件模块等价性验证系统。

背景技术

随着硬件设计语言的发展,通常采用Verilog等硬件设计语言编写,生成对应的硬件模块的硬件描述代码。在硬件设计的不同阶段,硬件模块需要进行转换,但需要保证转换前后的两个模块是等价的。例如,在做模拟验证过程中,需要将硬件模块对应的ASIC(Application Specific Integrated Circuit)模块的硬件描述代码,转换为FPGA(Field-Programmable Gate Array)模块对应的硬件描述代码,由于FPGA相对于ASIC有些限制,需要在某些地方会做一个转换。

现有技术中,通常将转换前的硬件模块和转换后的硬件模块对应的硬件描述代码进行逻辑综合,生成对应的门级网表进行等价性对比,由于硬件设计规模大,复杂度高,直接基于门级网表进行等价性对比效率低,且易出错。由此可知,如何提高硬件模块等价性验证的效率和准确度成为亟待解决的技术问题。

发明内容

本发明目的在于,提供一种硬件模块等价性验证系统,提高了硬件模块等价性验证的效率和准确度。

根据本发明一方面,提供了一种硬件模块等价性验证系统,包括符号模型检查工具,存储有计算机程序的存储器和处理器,所述符号模型检查工具用于输入AIGER文件,并判断输入的AIGER文件对应的电路的输出是否可能为1;

当所述处理器执行所述计算机程序时,实现以下步骤:

步骤S1、获取第一硬件模块和第二硬件模块,所述第一硬件模块和第二硬件模块均为基于硬件描述语言描述生成的模块,所述第二硬件模块由所述第一硬件模块转换生成,所述第一硬件模块和所述第二硬件模块的输入信号相同;

步骤S2、将所述第一硬件模块转换为第一BLIF文件,将所述第二硬件模块转换为第二BLIF文件;

步骤S3、将所述第一BLIF文件转换为第一AIGER文件,将所述第二BLIF文件转换为第二AIGER文件;

步骤S4、设置异或电路,将所述第一AIGER文件的输出信号作为所述异或电路的第一输入,将所述第二AIGER文件的输出信号作为所述异或电路的第二输入,将所述第一AIGER文件、第二AIGER文件、异或电路合并生成目标AIGER文件;

步骤S5、将所述目标AIGER文件输入所述符号模型检查工具中,若判断所述目标AIGER文件对应的硬件电路可能输出1,则确定第一硬件模块和第二硬件模块不等价,否则,确定第一硬件模块和第二硬件模块等价。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种硬件模块等价性验证系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:

本发明通过将第一硬件模块和第二硬件模块进行格式转换,生成对应的第一AIGER文件和第二BLIF文件,并将第一BLIF文件和第二BLIF文件合并生成目标AIGER文件,再借助符号模型检查工具,来判断第一硬件模块和第二硬件模块的等价性,提高了硬件模块等价性验证的效率和准确度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的硬件模块等价性验证系统的验证流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种硬件模块等价性验证系统,包括符号模型检查工具,存储有计算机程序的存储器和处理器,所述符号模型检查工具用于输入AIGER文件,并判断输入的AIGER文件对应的电路的输出是否可能为1。需要说明的是,现有的符号模型检查工具全部落入本发明保护范围之内,例如ABC、nuXmv、IIMC、IC3Ref等符号模型检查工具,ABC、nuXmv、IIMC、IC3Ref均为现有的符号模型检查工具名称,在此不再展开描述。现有的符号模型检查工具可以采用Simplecar、BMC(Bounded Model Checking),IMC(InterpolationModel Checking),IC3/PDR( Property Directed Reachability)等符号模型检查算法实现符号模型检查工具。由于AIGER文件简洁,与计算机逻辑接近,因此这些符号模型检查工具的输入为AIGER文件,输入后能够判断出AIGER文件对应的电路的输出是否可能为1。AIGER文件是通过文本形式描述逻辑层电路的文件,AIGER文件所描述的逻辑电路中包括AIGER元件库中的AIGER元件,AIGER元件仅有与门、非门和一种简单的AIGER锁存器(latch)。

当所述处理器执行所述计算机程序时,实现以下步骤:

步骤S1、获取第一硬件模块和第二硬件模块,所述第一硬件模块和第二硬件模块均为基于硬件描述语言描述生成的模块,所述第二硬件模块由所述第一硬件模块转换生成,所述第一硬件模块和所述第二硬件模块的输入信号相同。

需要说明的是,所述硬件描述语言具体可以为Verilog语言。第一硬件模块和第二硬件模块为针对同一硬件模块设计在不同阶段的体现形式,例如,第一硬件模块为ASIC模块,第二硬件模块为FPGA模块。可以理解的是,若第一硬件模块和第二硬件模块等价,则对于相同输入所得到的输出应该是相同的。

步骤S2、将所述第一硬件模块转换为第一BLIF文件,将所述第二硬件模块转换为第二BLIF文件。

其中,BLIF文件是通过文本形式描述逻辑层电路的文件,BLIF文件所描述的逻辑电路中包括BLIF元件库中的BLIF元件,BLIF元件包括与门、或门、非门和五种BLIF锁存器。

步骤S3、将所述第一BLIF文件转换为第一AIGER文件,将所述第二BLIF文件转换为第二AIGER文件。

由于符号模型检查工具的输入必须为AIGER文件,因此需要把BLIF文件转换AIGER文件。

步骤S4、设置异或电路,将所述第一AIGER文件的输出信号作为所述异或电路的第一输入,将所述第二AIGER文件的输出信号作为所述异或电路的第二输入,将所述第一AIGER文件、第二AIGER文件、异或电路合并生成目标AIGER文件。

由于符号模型检查工具能够判断输入的AIGER文件对应的电路的输出是否可能为1,因此,不能将所述第一AIGER文件、第二AIGER文件直接作为符号模型检查工具的输入,而需要通过异或电路把所述第一AIGER文件、第二AIGER文件合并为目标AIGER文件。

步骤S5、将所述目标AIGER文件输入所述符号模型检查工具中,若判断所述目标AIGER文件对应的硬件电路可能输出1,则确定第一硬件模块和第二硬件模块不等价,否则,确定第一硬件模块和第二硬件模块等价。

需要说明的是,异或的两个输入相同时,输出为0,两个输入不同时,输出为1,因此可以将预设的多组第一模块和第二模块的输入信号值输入目标AIGER文件中,通过符号模型检查工具判断是否可能输出1,若有输出1的可能,则说明在第一模块和第二模块在相同输入的情况下会出现不同的输出,二者不等价。

作为一种示例,所述步骤S2包括:

步骤S21、分别对所述第一硬件模块和第二硬件模块进行语法解析,生成所述第一硬件模块对应的第一网表和所述第二硬件模块对应的第二网表。

步骤S22、分别对所述第一网表和第二网表进行逻辑综合,转换为所述第一网表对应的第一BLIF文件和所述第二网表对应的第二BLIF文件。

具体可以采用Yosys等工具来实现步骤S21-步骤S22,Yosys为现有的Verilog RTL(Register Transfer Level,寄存器传输级)综合的一个框架,能够将Verilog RTL代码映射到BLIF库中。

作为一种示例,所述第一BLIF文件包括BLIF元件和第一硬件模块的逻辑连接信息;所述第二BLIF文件包括BLIF元件和第二硬件模块的逻辑连接信息;所述第一AIGER文件包括AIGER元件和第一硬件模块的逻辑连接信息;所述第二AIGER文件包括AIGER元件和第二硬件模块的逻辑连接信息。需要说明的是,第一硬件模块的逻辑连接信息为第一硬件模块对应的逻辑电路中元件之间的连接信息,第二硬件模块的逻辑连接信息为第二硬件模块对应的逻辑电路中元件之间的连接信息。

作为一种示例,所述步骤S3包括:

步骤S31、建立所述第一BLIF文件中每一信号名称与信号数字标识的映射关系,建立所述第二BLIF文件中每一信号名称与信号数字标识的映射关系。

可以理解的是,AIGER文件中,需要采用信号数字标识来表示每一信号,因此需要先建立BLIF文件中每一信号名称与信号数字标识的映射关系。

步骤S32、将第一BLIF文件和第二BLIF文件中的BLIF元件,替换为AIGER元件。

步骤S33、基于每一信号名称与信号数字标识的映射关系,按照AIGER文件格式,将替换AIGER元件后的第一BLIF文件和第二BLIF文件分别转换为第一AIGER文件和第二AIGER文件。

作为一种示例,所述第一BLIF文件包括M个信号名称{A

所述步骤S31包括:

步骤S311、将A

优选的,X=2。以2为例,2表示A

步骤S312、将B

所述BLIF元件包括与门、或门、非门、BLIF锁存器{L

其中,L

D

所述AIGER元件包括与门、非门和AIGER锁存器L

作为一种示例,所述步骤S32包括:

步骤S321、将第一BLIF文件和第二BLIF文件中的或门,转换为与门和非门的组合:

a│b=!(!a&!b),

其中,│为或门,a和b为元件输入信号,!为非门,&为与门。

步骤S322、将第一BLIF文件和第二BLIF文件中的L

L1

具体运算过程为:L1

=!(TC

其中,i=1或2,L1为基于L

所述步骤S322中,将第一BLIF文件和第二BLIF文件中的L

步骤S323、将第一BLIF文件和第二BLIF文件中的L

L2

其中,i=3或4,L2

步骤S323、将第一BLIF文件和第二BLIF文件中的D

L3

其中,L3

RstLv

RstLv

RstLv

RstLv

RstLv

RstLv

RstLv

RstLv

c为作用在控制端的时钟信号,R为作用在复位端的复位信号。

所述步骤S323中,将第一BLIF文件和第二BLIF文件中的D

将第一BLIF文件和第二BLIF文件中的D

将第一BLIF文件和第二BLIF文件中的D

将第一BLIF文件和第二BLIF文件中的D

由于映射得到的A

步骤S41、将B

通过步骤S41可以避免第一AIGER文件和第二AIGER文件之间的信号冲突。

为了进一步说明本发明,以下通过以具体示例来进一步说明第一AIGER文件和第二AIGER文件的合并过程,需要说明的是,为了便于描述,本示例中,第一AIGER文件和第二AIGER文件相同,但可以理解的是,其他示例中,第一AIGER文件和第二AIGER文件也可能是不同的。

第一AIGER文件具体为:

aag 7 2 1 1 4

2 //第一AIGER文件的输入1

4 //第一AIGER文件的输入2

6 8 0 //第一AIGER文件的锁存器1

6 //第一AIGER文件的输出a

8 4 10 //第一AIGER文件的与门1

10 13 15 //第一AIGER文件的与门2

12 2 6 //第一AIGER文件的与门3

14 3 7 //第一AIGER文件的与门4

第二AIGER文件具体为:

aag 7 2 1 1 4

2 //第二AIGER文件的输入1

4 //第二AIGER文件的输入2

6 8 0 //第二AIGER文件的锁存器1

6 //第二AIGER文件的输出b

8 4 10 //第二AIGER文件的与门1

10 13 15 //第二AIGER文件的与门2

12 2 6 //第二AIGER文件的与门3

14 3 7 //第二AIGER文件的与门4

本示例中,第一AIGER文件和第二AIGER文件输入同为2和4,第一AIGER文件中一共有7个变量,即M=7,则将第二AIGER文件中除2和4以及对应的非(3和5)之外的其他信号数字标识加上2

目标AIGER文件具体为aag 17 2 2 1 11

2 //第一AIGER文件和第二AIGER文件相同的输入1

4 //第一AIGER文件和第二AIGER文件相同的输出2

6 8 0 //第一AIGER文件的锁存器1

20 22 0 //第二AIGER文件的锁存器1

35 //¬(¬(¬a ∧ b) ∧ ¬(a ∧¬b))新的输出

8 4 10 //第一AIGER文件的与门1

10 13 15 //第一AIGER文件的与门2

12 2 6 //第一AIGER文件的与门3

14 3 7 //第一AIGER文件的与门4

22 4 24 //第二AIGER文件的与门1

24 27 29 //第二AIGER文件的与门2

26 2 20 //第二AIGER文件的与门3

28 3 21 // 第二AIGER文件的与门4

30 7 20 // (¬a ∧ b)

32 6 21 // (a ∧¬b)

34 31 33 //¬(¬a ∧ b) ∧ ¬(a ∧¬b)

需要说明的是,上述示例中“//”的内容相应行的内容的解释。

将目标AIGER文件输入符号模型检查工具即可判断第一硬件模块和第二硬件模块的等价性。

本发明实施例所述系统通过将第一硬件模块和第二硬件模块进行格式转换,生成对应的第一AIGER文件和第二BLIF文件,并将第一BLIF文件和第二BLIF文件合并生成目标AIGER文件,再借助符号模型检查工具,来判断第一硬件模块和第二硬件模块的等价性,提高了硬件模块等价性验证的效率和准确度。

需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 硬件系统可靠性验证系统
  • 一种功率模块硬件过压保护功能有效性的测试方法及装置
技术分类

06120116487770