用于大容量FPGA电路功能仿真的最优网表的生成方法与流程

文档序号:11951140阅读:1127来源:国知局
用于大容量FPGA电路功能仿真的最优网表的生成方法与流程

本发明涉及一种验证全芯片网表截取方法,尤其是一种用于大容量FPGA电路的功能仿真的最优网表的生成方法,属于可编程逻辑器件的技术领域。



背景技术:

随着半导体制造技术的不断快速发展,芯片的集成度越来越高、功能也越来越强大,随之而来的芯片验证复杂度也不断提高,一块系统芯片的测试用例从数量上就足够惊人,验证工作在整个芯片研发过程中的重要性也越来越大。FPGA芯片中包括数字电路和模拟电路,包括定制设计的电路和半定制设计的电路,同时包含大量的可编程资源。为了验证整个FPGA芯片的逻辑功能的正确性必须做大量的验证工作,但是电路的规模越大,网表文件多达700MB,采用基于candence公司的ncverilog以及synosys公司的vcs的仿真工具,运行大容量电路的功能仿真,一次验证所需要的时间可能长达一周,发现错误后重新验证又需要花同样的时间。同时,占用大量的服务器资源。因此,需要提出一种得到最优网表方法,该方法既要节省仿真资源,又要能提高仿真器运行速度,提高验证效率。



技术实现要素:

本发明的目的是克服现有技术中存在的不足,节省仿真资源,提高仿真器运行速度,提高验证效率,提供一种大规模电路全芯片网表截取方法,该方法能够根据不同的用例灵活动态配置网表。

按照本发明提供的技术方案,所述用于大容量FPGA电路功能仿真的最优网表的生成方法执行的基本过程如下:

步骤1:首先需要获取所有单元名字以及顶层单元例化名字,生成全芯片的网表配置文件;

步骤2:然后根据FPGA预先配置逻辑功能所用布局布线资源,生成所需单元的配置资源,并通过配套FPGA软件生成相应的配置文件;

步骤3:最后通过采取不同的配置文件得到最优网表,具体为将所需资源的配置文件加入到全芯片网表中,通过脚本处理即生成FPGA电路所用资源的最优网表。

具体的,步骤2通过FPGA预先配置一定的功能,定位到每个具体用例,并通过配套FPGA软件,布局布线后,选择各模块单元使用情况,并定义需要定义的配置模块,根据用例所用的模块资源、布线资源以及配置资源,生成相应的配置文件。

所述模块单元使用情况包括三种情况,其中单元名字后加“_NULL”表示此模块为空,单元名字后加“_SWB”表示只使用此模块的开关矩阵,单元名字后加“_ALL”表示利用了该模块的资源。

将FPGA需要处理资源:可编程逻辑单元CLB、数字信号处理DSP、存储单元BRAM,分为三种类型:CLB_ALL、CLB_NULL、CLB_SWB、DSP_ALL、DSP_NULL、DSP_SWB、BRAM_ALL、BRAM_NULL、BRAM_SWB,并描述需要定义配置资源的CLB_NULL、CLB_SWB、DSP_NULL、DSP_SWB、BRAM_SWB,BRAM_NULL,并通过配套FPGA软件生成相应的配置文件。

本发明的优点是:能根据验证用例需求,利用FPGA预先配置才能实现一定的功能,通过采取不同的配置文件得到最优网表。本发明具有灵活动态配置网表功能,能够节省仿真资源,提高仿真器运行速度,提高验证效率,最大限度的提高验证电路的覆盖率,能够满足大规模电路功能仿真的需求。

附图说明

图1大容量FPGA电路顶层单元结构示意图。

图2大容量FPGA电路资源利用简图。

图3大容量全芯片电路最优网表的生成流程图。

图4本发明大容量FPGA中所用BRAM资源结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

为了能够节省仿真资源,提高仿真器运行速度。本发明提出了一种用于大容量FPGA电路的功能仿真的最优网表的生成方法。

如图1所示,为大容量FPGA电路顶层单元结构示意图,由于FPGA集成了可编程逻辑单元(CLB)、数字信号处理(DSP)、时钟管理(CMT)、存储单元(Block RAM,BRAM)、时钟模块(CLK)、系统控制模块(CTRL)、高速接口等单元,其中开关矩阵Switch box(SWB)是连接CLB,DSP,BRAM,IO,CLK,高速接口等各个模块之间的互连枢纽,它由大量的MUX开关(数据选择器),配置SRAM(静态随机存取存储器)和绕线组成,遍布于FPGA芯片各个部位,因此验证整个FPGA芯片的逻辑功能的正确性所需要的网表文件很大,且一次验证所需要的时间也很长。本发明可根据不同的用例,自动选出所用的资源,其中图1阴影部分为某一具体用例所用到的资源,生成最优的功能网表,来提升仿真速度和调试的效率。即可以利用FPGA预先配置一定的功能,通过采取不同的配置文件得到最优网表。

大容量全芯片资源利用简图如图2所示,本发明可从FPGA芯片网表中,自动选择出所用单元资源,配置资源以及布线资源,生成最优网表资源,可大大节省仿真资源,提高仿真器运行速度,提高验证效率。

生成大容量全芯片电路最优网表具体流程图如图3所示,首先由cadence公司的virtuoso软件提取大规模全芯片电路的网表,通过脚本1,生成module.list,并查找大容量全芯片电路的网表中各功能模块名,再根据顶层模块的module名查找其子模块的module,如此递归进行,直到将所有的这些模块module以及子模块module全部包含到全芯片的网表,生成全芯片网表的配置文件。该配置文件包含FPGA所有模块单元名以及例化名,模块单元主要分为需要处理资源主要为(CLB,DSP,BRAM),不需要处理的资源主要为(IO,CLK,CTRL)。

其次,根据FPGA电路所用资源,通过脚本2选择需要配置资源,主要定位到每个用例,根据FPGA预先配置一定的功能,布局布线后,选择各模块单元使用情况,(一般分为三种情况,其中单元名后加“_NULL”表示此模块为空,单元名后加“_SWB”表示只使用此模块的开关矩阵Switch box,单元名后加“_ALL”表示利用了该模块的资源),并定义需要定义的配置模块。以BRAM为例,如图4所示,单元名为BRAM表示资源利用了BRAM资源以及相邻的SWB,BRAM_SWB为未使用BRAM资源,使用相邻SWB的布线资源,BRAM_NULL表示未使用BRAM资源以及SWB。将FPGA需要处理资源(CLB,DSP,BRAM)分为三种类型(CLB_ALL、CLB_NULL、CLB_SWB、DSP_ALL、DSP_NULL、DSP_SWB、BRAM_ALL、BRAM_NULL、BRAM_SWB)并描述需要定义配置资源的CLB_NULL、CLB_SWB、DSP_NULL、DSP_SWB、BRAM_SWB,BRAM_NULL,由配套FPGA软件生成相应的配置文件。

最后,通过脚本3,根据相应的配置文件搜索到需要优化的单元的例化名,自动优化单元,产生所用资源的最优网表文件。该最优网表生成方法,只针对具体的case用例,选择所用的FPGA资源,可大大提高电路仿真速度。

所述脚本1、脚本2、脚本3均为在FPGA中编写的程序。

本发明能根据验证用例需求,利用FPGA预先配置才能实现一定的功能,通过采取不同的配置文件得到最优网表。本发明具有灵活动态配置网表功能,能够节省仿真资源,提高仿真器运行速度,提高验证效率,最大限度的提高验证电路的覆盖率,能够满足大容量电路功能仿真的需求。

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