一种基于FPGA的集成电路验证系统及方法与流程

文档序号:15924336发布日期:2018-11-14 00:59阅读:244来源:国知局

本发明涉及集成电路技术领域,特别是涉及一种基于fpga的集成电路验证系统及方法。

背景技术

随着集成电路技术不断发展更新,工艺水平不断提高,集成电路设计的规模和复杂度也越来越大,目前在集成电路设计中,常大量的采用ip复用技术,将多种功能的电路集成在一起,使得集成电路设计规模更加庞大。

集成电路验证是集成电路设计过程中的重要环节,现有技术中,集成电路的验证方式主要通过仿真软件实现,通过集成电路代码将需要验证的集成电路构建在仿真模块中,然后通过对构建的仿真电路施加测试信号,最后根据输出信号确定集成电路的功能。

然而,随着集成电路规模的逐渐增大,需要验证的电路结构增多,通过在仿真软件中建立完整的集成电路并进行验证将会耗费大量的时间,影响集成电路验证效率。



技术实现要素:

本发明实施例中提供了一种基于fpga的集成电路验证系统及方法,以解决现有技术中集成电路验证效率低的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

本发明第一方面提供了一种基于fpga的集成电路验证系统,包括:通过总线连接的仿真模块和fpga板,所述仿真模块中包括接口单元,所述接口单元与所述fpga板通过总线连接,所述接口单元用于实现所述仿真模块与fpga板的数据交互,所述仿真模块中设置有待验证集成电路的周边电路,所述fpga板上烧录有待验证集成电路的功能电路。

优选地,所述系统包括多块fpga板,每块fpga板上烧录有多个单元电路。

优选地,多块所述fpga板分别通过总线与接口单元连接。

本发明第二方面提供了一种基于fpga的集成电路验证方法,包括:

获取待验证集成电路;

将所述待验证集成电路划分为多个单元电路;

将所述多个单元电路分别设置于仿真模块及fpga板上;

从所述仿真模块端进行验证;

获取集成电路输出结果;

对所述输出结果进行功能分析。

优选地,将所述待验证集成电路划分为多个单元电路具体包括:

将集成电路根据逻辑功能划分为多个功能电路;

将剩余电路及信号输入电路划分为周边电路。

优选地,将所述多个单元电路分别设置于仿真模块及fpga板上具体包括:

将多个功能电路设置于fpga板上;

将周边电路设置于仿真模块中。

优选地,从所述仿真模块端进行验证具体包括:

对所述仿真模块中的单元电路施加测试激励:

将施加测试激励后的所述单元电路的输出传输至所述fpga板;

将所述fpga板上多个单元电路的输出传输至所述仿真模块;

从所述仿真模块端输出验证结果。

优选地,所述方法还包括:

分别记录多个单元电路的输出。

优选地,对所述输出结果进行功能分析具体包括:

如果输出结果与预期结果相同则集成电路设计正确;

如果输出结果与预期结果不相同则获取各个单元电路的输出,确定设计错误的单元电路。

由以上技术方案可见,本发明中将待验证的集成电路根据功能划分为多个单元电路,单元电路中包括了实现复杂逻辑功能的功能电路以及连接各功能电路并接收输入信号的周边电路,功能电路烧录在fpga板上,周边电路设置在仿真模块中,fpga板与仿真模块之间通过总线连接,在验证时在仿真模块中对周边电路施加测试激励,周边电路会将信号通过总线发送给fpga板上的对应功能电路,每个功能电路的输出再通过总线发送回仿真模块,最终通过仿真模块输出验证结果,通过将集成电路划分后分别设置在仿真模块以及fpga板上能够实现集成电路的分别验证,提供验证效率。

附图说明

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

图1为本发明实施例提供的一种基于fpga的集成电路验证系统的结构示意图;

图2为本发明实施例提供的一种基于fpga的集成电路验证方法的流程示意图;

图3为本发明实施例提供的从仿真模块端进行验证的方法的流程示意图;

图4为本发明实施例提供的另一种基于fpga的集成电路验证系统的流程示意图。

具体实施方式

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

参见图1,为本发明实施例提供的一种基于fpga的集成电路验证系统的结构示意图,如图1所示,本发明实施例提供的基于fpga的集成电路验证系统,包括:仿真模块和fpga板。

仿真模块和fpga板通过总线连接,所述仿真模块中包括接口单元,所述接口单元与所述fpga板通过总线连接,所述接口单元用于实现所述仿真模块与fpga板的数据交互,所述仿真模块中设置有待验证集成电路的周边电路,所述fpga板上烧录有待验证集成电路的功能电路。

通过对集成电路的设计系统进行分析,依据电路逻辑功能复杂程度及时序路径长短将设计分成模功能电路和周边电路,功能电路用于实现某些特定的逻辑功能,例如,在异步时序电路中,各存储单元的状态改变不是同时发生的,时钟脉冲只控制存储电路中的部分存储单元,时序设计复杂,此部分电路应划分功能电路,而对于一些简单的组合逻辑电路,逻辑门数目少,此部分可划分进周边电路。

周边电路、接口单元及测试激励运行在仿真模块中,功能电路烧录进fpga板中,仿真模块与fpga板通过总线连接实现数据进行通信,本发明实施例中接口单元可以采用systemverilog语言进行编写,主要完成两个接口功能:一是保持与fpga板相同的端口信号,代替fpga板上的功能电路与仿真模块中的周边电路进行通信,另一是实现高速总线接口,完成高速总线上数据的接收与发送,从而整个系统软件和硬件部分通过总线进行数据的交换,以软硬协同的方式对集成电路的设计进行仿真验证。

在现有技术中对fpga进行烧录常用的方法对编写好的程序代码进行烧录,本发明实施例中也通过代码将划分好的功能电路烧录进fpga板中,但是因为集成电路的规模越来越大,且fpga板的容量有限,因此,难以保证可以将全部的功能电路烧录在一块fpga板上,故需要根据需要烧录的代码的容量选择多个fpga板,在进行时,因为fpga板与仿真模块之间通过总线连接,因此不需要将功能电路按实际电路连线的顺序进行烧录,而是按照每个功能电路在烧录时占用的存储空间在多个fpga板上进行合理的分配,且多个fpga板分别通过总线与接口单元连接,从而实现多个fpga板与仿真模块间的数据交互。

参见图2,为本发明实施例提供的一种基于fpga的集成电路验证方法的流程示意图,如图2所示,本发明实施例提供的基于fpga的集成电路验证方法,包括:

s10:获取待验证集成电路。

用户获取的待验证集成电路可能是二维图纸也可能是实际的电路板,但是我们需要将其抽象为具体的逻辑器件的连线。

s20:将所述待验证集成电路划分为多个单元电路。

将待验证的集成电路抽象成具体的逻辑器件的连线之后需要对集成电路进行功能分析,确定每个逻辑器件的功能,多个器件连接之后所实现的功能,然后将这些功能进行划分,将每个实现特定功能的电路划分为一个单元电路,例如,对于时序电路来说,要实现一定进制的计数使用的触发器个数需要通过2n来计算,对于2进制以上的计数,需要使用的计数器个数大于2个,因此,对于一个m进制的时序电路来说会包括多个触发器,则这个多个触发器直接组合使用才可以实现特定的进制,因此,需要进行统一的划分作为一个单元电路并将这种可以实现特定功能的电路定义为功能电路,根据相关公知常识,实现某功能的电路除了主要期间外还包括外围电路,同样的对于时序电路而言还包括时钟电路或其他的门电路了,这些电路结构简单且不需要组合使用,因此可以划分为一个单元单元定义为周边电路。

s30:将所述多个单元电路分别设置于仿真模块及fpga板上。

划分出的功能电路是进行集成电路验证的主要部分,而且测试激励需要通过仿真模块发送,因此,需要将周边电路设置在仿真模块中,将功能电路设置在fpga板上。

s40:从所述仿真模块端进行验证。

如果从fpga板端开始验证的话就需要向fpga板施加测试激励,但是测试激励可以由仿真软件产生,为了便于测试且周边电路设置于仿真模块中,因此,从仿真模块端开始验证,参见图3,为本发明实施例提供的从仿真模块端进行验证的方法的流程示意图,如图3所示,从仿真模块端进行验证具体包括:

s41:对所述仿真模块中的单元电路施加测试激励。

s42:将施加测试激励后的所述单元电路的输出传输至所述fpga板。

s43:将所述fpga板上多个单元电路的输出传输至所述仿真模块。

s44:从所述仿真模块端输出验证结果。

验证开始后,仿真模块根据用户设置的信号发生顺序想周边电路中的信号接受端口发送测试激励,周边电路接受到信号并进行相应的处理后通过接口单元发送到内存然后通过总线发送给fpga板上的具体功能电路,该功能电路的数据处理完成之后在通过总线发送到内存中,然后接口单元从内存获取到信号之后在发送给仿真模块或者下一个功能单元,当验证结束后,从仿真模块输出验证结果。

s50:获取集成电路输出结果。

验证结果从仿真模块输出,可以直接发送到相关的验证结果分析工具或者直接显示给用户,便于下一步的结果分析。

s60:对所述输出结果进行功能分析。

用户在进行集成电路验证时会先人工判断出其预期输出值,当获取到验证结果后与预期输出值比较,如果一直则说明集成电路功能与预期一致,即设计正常,如果不一致则说明该电路设计异常。

参见图4,为本发明实施例提供的另一种基于fpga的集成电路验证系统的流程示意图,如图4所示,所述方法还包括:

s70:分别记录多个单元电路的输出。

因为会存在验证后发现集成电路设计异常的情况,但是具体是哪部分设计异常不得而知,因此,在仿真过程中,仿真模块会将每个功能电路的输出进行保存,如果验证结果与预期输出一致则不需要查看各个功能电路的输出,但输出结果与预期输出不一致时,则需要查看各个功能电路的输出,将其与各个功能电路的预期输出比较,确定设计异常的功能电路,在后续进行修改时只需要修改设计异常的功能电路即可。

本发明中将待验证的集成电路根据功能划分为多个单元电路,单元电路中包括了实现复杂逻辑功能的功能电路以及连接各功能电路并接收修输入信号的周边电路,功能电路烧录在fpga板上,周边电路设置在仿真模块中,fpga板与仿真模块之间通过总线连接,在验证时在仿真模块中对周边电路施加测试激励,周边电路会将信号通过总线发送给fpga板上的对应功能电路,每个功能电路的输出再通过总线发送回仿真模块,最终通过仿真模块输出验证结果,通过将集成电路划分后分别设置在仿真模块以及fpga板上能够实现集成电路的分别验证,提供验证效率。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1