首页> 中国专利> FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统

FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统

摘要

本发明揭示了一种FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统,所述生成方法包括:将整个FPGA原型验证系统划分为若干个验证子系统;各验证子系统能进行设定功能和性能的FPGA验证;将综合后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统。修正或者修改设定的验证子系统;对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统。本发明提出的FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统,将原有的验证系统划分为若干子系统,每个子系统可以独立同步综合,可降低综合的复杂度,减少综合时间,提高综合效率。

著录项

  • 公开/公告号CN112906328A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 博流智能科技(南京)有限公司;

    申请/专利号CN202110158911.7

  • 发明设计人 陈朋芳;武继好;侯松;

    申请日2021-02-05

  • 分类号G06F30/33(20200101);

  • 代理机构31242 上海金盛协力知识产权代理有限公司;

  • 代理人王松

  • 地址 211800 江苏省南京市江北新区研创园团结路99号孵鹰大厦C座426室

  • 入库时间 2023-06-19 11:14:36

说明书

技术领域

本发明属于集成电路技术领域,涉及一种验证系统,尤其涉及一种FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统。

背景技术

FPGA原型验证是指通过将RTL移植到现场可编程门阵列(FPGA)来验证专用集成电路(ASIC)和片上系统(SoC)的功能和性能。FPGA原型验证可以在集成电路(IC)流片前对芯片功能和性能做出评估,不仅可以确保集成电路(IC)实现模型与期望的设计性能相匹配,提高流片成功率,同时,还可以给软件设计人员提供验证平台,使得软件和芯片同时开发,加速了产品的面市时间。FPGA原型验证在SoC和ASIC系统验证中,起着非常重要的作用。

随着集成电路(IC)相关产业高速发展,市场竞争也日趋激烈,对于FPGA原型验证效率也提出新的需求和挑战。此外,专用集成电路(ASIC)和片上系统(SoC)功能越来越复杂,由于受到成本和资源的限制,现有的验证架构无法满足FPGA原型验证的需求。

一个典型的现有FPGA原型验证架构如图1所示。在该架构中,FPGA原型验证系统由三部分组成:

(1)FPGA RTL综合设备,负责将RTL源码综合成FPGA门级网表。

(2)FPGA硬件平台,专用集成电路(ASIC)或片上系统(SoC)的功能硬件载体,包括验证ASIC或SoC功能或者性能而必备的辅助硬件设备。

(3)FPGA原型验证平台,包括验证软件,软件集成开发环境,调试器等设备。

现有FPGA原型验证系统至少存在下面三个问题:

(1)在大规模的SoC或者ASIC验证中,FPGA原型验证系统综合速度比较慢,花费时间比较长,验证效率低。

(2)如果验证系统中某个模块存在问题,需要修改重新验证,那么需要将整个系统重新综合,重新综合的时间长,效率低。

(3)如果SoC或者ASIC规模比较大,需要的FPGA资源较多,由于单个FPGA验证系统资源的限制,现有的FPGA原型验证架构无法满足验证需求。

有鉴于此,如今迫切需要设计一种新的FPGA原型验证系统,以便克服现有FPGA原型验证系统存在的上述至少部分缺陷。

发明内容

本发明提供一种FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统,可降低综合的复杂度,减少综合时间,提高综合效率。

为解决上述技术问题,根据本发明的一个方面,采用如下技术方案:

一种FPGA原型验证系统生成方法,所述生成方法包括:

步骤S1、将整个FPGA原型验证系统划分为若干个验证子系统;

步骤S2、每个验证子系统独立、同步进行综合处理;

步骤S3、将综合处理后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统;所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译、转换、调度、分配、控制器综合和结果的生成;所述资源指综合处理的结果,即综合处理生成的网表文件;

步骤S4、对完整的验证系统进行功能和性能的验证;

步骤S5、判断是否验证成功;如果验证成功,则结束验证工作;如果某个或某些验证子系统需要修正或者修改,则执行步骤S6;

步骤S6、对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统;转至步骤S4。

根据本发明的另一个方面,采用如下技术方案:一种FPGA原型验证系统生成方法,所述生成方法包括:

将整个FPGA原型验证系统划分为若干个验证子系统;各验证子系统能进行设定功能和性能的FPGA验证;

对各验证子系统进行综合处理;将综合处理后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统。

作为本发明的一种实施方式,所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译步骤、转换步骤、调度步骤、分配步骤、控制器综合步骤和结果生成步骤;所述资源指综合处理的结果,即综合处理生成的网表文件。

编译步骤中,将由硬件描述语言编写的行为特性描述经过编译生成为一个适合自动综合的中间表示格式,包括控制流图、数据流图以及控制数据流图;

转换步骤中,对设计的行为描述进行优化;包括编译优化、增加操作并行度、将复杂的多周期操作转换为简单操作、减少控制数据流图中关键路径和指定路径上的操作个数;

调度步骤中,将操作赋给控制步;控制步是一个时序单位,对应若干个时钟周期;调度的目的是在满足约束条件下使得器件完成所有功能所需时间最少,即确定每个操作发生的时刻;

分配步骤中,定义系统中部件和部件之间互连的过程;包括分配寄存器或RAM存储器来存放数据值,分配功能部件来执行特定的操作,分配互连路径在部件之间传输数据;建立一个功能块级模块组成的数据通路,使所占用的硬件资源花费最少,尽量共享;

控制器综合步骤中,按调度要求驱动数据通路的控制器;

结果生成步骤中,将设计转换为硬件结构的物理实现。

作为本发明的一种实施方式,所述生成方法进一步包括:修正或者修改设定的验证子系统。

作为本发明的一种实施方式,所述生成方法进一步包括:对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统。

根据本发明的又一个方面,采用如下技术方案:一种FPGA原型验证方法,所述验证方法包括:

FPGA验证分配模块为各个FPGA验证子系统分配验证流程;各个FPGA验证子系统根据分配的验证流程进行设定功能和性能的FPGA验证。

根据本发明的又一个方面,采用如下技术方案:一种FPGA原型验证系统生成系统,所述生成系统包括:

至少两个验证子系统,用以进行设定功能和性能的FPGA验证;

综合模块,用以综合各个验证子系统,将综合后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统。

作为本发明的一种实施方式,所述生成系统进一步包括:数据修改模块,用以修正或者修改设定的验证子系统。

作为本发明的一种实施方式,所述综合模块用以对修正或者修改后的验证子系统重新进行综合处理;将综合处理后的验证子系统资源下载到对应的FPGA验证子系统。所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译、转换、调度、分配、控制器综合和结果的生成;所述资源指综合处理的结果,即综合处理生成的网表文件。

所述综合模块包括:

编译单元,用以将由硬件描述语言编写的行为特性描述经过编译生成为一个适合自动综合的中间表示格式,包括控制流图、数据流图以及控制数据流图;

转换单元,用以对设计的行为描述进行优化;包括编译优化、增加操作并行度、将复杂的多周期操作转换为简单操作、减少控制数据流图中关键路径和指定路径上的操作个数;

调度单元,用以将操作赋给控制步;控制步是一个时序单位,对应若干个时钟周期;调度的目的是在满足约束条件下使得器件完成所有功能所需时间最少,即确定每个操作发生的时刻;

分配单元,用以定义系统中部件和部件之间互连的过程;包括分配寄存器或RAM存储器来存放数据值,分配功能部件来执行特定的操作,分配互连路径在部件之间传输数据;建立一个功能块级模块组成的数据通路,使所占用的硬件资源花费最少,尽量共享;

控制器综合单元,用以按调度要求驱动数据通路的控制器;

结果生成单元,用以将设计转换为硬件结构的物理实现。

根据本发明的又一个方面,采用如下技术方案:一种FPGA原型验证系统,所述验证系统包括:

FPGA验证分配模块,用以为各个FPGA验证子系统分配验证流程;

至少两个FPGA验证子系统,用以根据所述FPGA验证分配模块分配的验证流程进行设定功能和性能的FPGA验证。

本发明的有益效果在于:本发明提出的FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统,将原有的验证系统划分为若干子系统,每个子系统可以独立同步综合,可降低综合的复杂度,减少综合时间,提高综合效率。

同时,本发明可以将一个大规模的SoC或者ASIC原型,划分为多个子系统,解决了单个FPGA原型验证系统资源无法满足验证需求的问题。本发明可以有效地缩短FPGA原型验证过程中,因SoC或者ASIC功能修正或修改而需要重新综合的时间,提高验证效率。亦可解决单个FPGA验证平台资源无法满足大规模SoC或者ASIC验证需求的问题。

此外,本发明可以将容易出错或者大概率需要修改的模块划分为独立的子系统,在该子系统需要修正或者修改时,只综合该子系统的RTL代码,其它子系统保持不变,不必综合整个系统;这样就减少了综合的时间,提升整个验证流程的效率。本发明可以将若干个子系统组建成一个大的FPGA原型验证系统,解决单个FPGA验证系统资源无法满足验证需求的问题。

附图说明

图1为现有FPGA原型验证系统的组成示意图。

图2为本发明一实施例中FPGA原型验证系统的组成示意图。

图3为本发明一实施例中FPGA原型验证系统的组成示意图。

图4为本发明一实施例中FPGA原型验证系统生成方法的流程图。

具体实施方式

下面结合附图详细说明本发明的优选实施例。

为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。

该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。

说明书中各个实施例中的步骤的表述只是为了方便说明,本申请的实现方式不受步骤实现的顺序限制。说明书中的“连接”既包含直接连接,也包含间接连接。

本发明揭示了一种FPGA原型验证系统生成方法,所述生成方法包括:

将整个FPGA原型验证系统划分为若干个验证子系统;各验证子系统能进行设定功能和性能的FPGA验证;

对各验证子系统进行综合处理;将综合处理后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统。

在一实施例中,所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译、转换、调度、分配、控制器综合和结果的生成;所述资源指综合处理的结果,即综合处理生成的网表文件。

在本发明的一实施例中,编译步骤中,将由硬件描述语言(HDL)编写的行为特性描述经过编译生成为一个适合自动综合的中间表示格式(如可以包括控制流图、数据流图以及控制数据流图)。

转换步骤中,对设计的行为描述进行优化;包括编译优化、增加操作并行度、将复杂的多周期操作转换为简单操作、减少控制数据流图中关键路径和指定路径上的操作个数等。

调度步骤中,将操作赋给控制步;控制步是一个时序单位,对应若干个时钟周期;调度的目的是在满足约束条件下使得器件完成所有功能所需时间最少。通俗地讲,就是确定每个操作发生的时刻。

分配步骤中,定义系统中部件和部件之间互连的过程;包括分配寄存器或RAM存储器来存放数据值,分配功能部件来执行特定的操作,分配互连路径在部件之间传输数据;建立一个功能块级模块组成的数据通路,使所占用的硬件资源花费最少,尽量共享。

控制器综合步骤中,按调度要求驱动数据通路的控制器;结果生成步骤中,将设计转换为硬件结构的物理实现。

在本发明的一实施例中,所述生成方法进一步包括:修正或者修改设定的验证子系统。在一实施例中,所述生成方法还可以包括:对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统。

图4为本发明一实施例中FPGA原型验证系统生成方法的流程图;请参阅图4,在本发明的一实施例中,所述生成方法包括:

步骤S1、将整个FPGA原型验证系统划分为若干个验证子系统;

步骤S2、每个验证子系统独立、同步进行综合处理;

步骤S3、将综合处理后的各个验证子系统资源下载到各个FPGA验证子系统,构成一个完整的验证系统;所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译、转换、调度、分配、控制器综合和结果的生成;所述资源指综合处理的结果,即综合处理生成的网表文件;

步骤S4、对完整的验证系统进行功能和性能的验证;

步骤S5、判断是否验证成功;如果验证成功,则结束验证工作;如果某个或某些验证子系统需要修正或者修改,则执行步骤S6;

步骤S6、对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统;转至步骤S4。

本发明揭示一种FPGA原型验证方法,所述验证方法包括:FPGA验证分配模块为各个FPGA验证子系统分配验证流程;各个FPGA验证子系统根据分配的验证流程进行设定功能和性能的FPGA验证。

本发明揭示一种FPGA原型验证系统生成系统,图2、图3为本发明一实施例中FPGA原型验证系统的组成示意图;请参阅图2、图3,所述生成系统包括:至少两个验证子系统1及综合模块2。各验证子系统1用以进行设定功能和性能的FPGA验证;综合模块2用以综合处理各个验证子系统1,将综合处理后的各个验证子系统1资源下载到各个FPGA验证子系统1,构成一个完整的验证系统。在一实施例中,所述综合处理指将RTL代码转换为门级网表文件或程序,包括编译、转换、调度、分配、控制器综合和结果的生成;所述资源指综合处理的结果,即综合处理生成的网表文件。

在本发明的一实施例中,所述综合模块2包括:编译单元21、转换单元22、调度单元23、分配单元24、控制器综合单元25及结果生成单元26。

编译单元21用以将由硬件描述语言(HDL)编写的行为特性描述经过编译生成为一个适合自动综合的中间表示格式,如可以包括控制流图、数据流图以及控制数据流图。

转换单元22用以对设计的行为描述进行优化;包括编译优化、增加操作并行度、将复杂的多周期操作转换为简单操作、减少控制数据流图中关键路径和指定路径上的操作个数。

调度单元23用以将操作赋给控制步;控制步是一个时序单位,对应若干个时钟周期;调度的目的是在满足约束条件下使得器件完成所有功能所需时间最少,即确定每个操作发生的时刻。

分配单元24用以定义系统中部件和部件之间互连的过程;包括分配寄存器或RAM存储器来存放数据值,分配功能部件来执行特定的操作,分配互连路径在部件之间传输数据;建立一个功能块级模块组成的数据通路,使所占用的硬件资源花费最少,尽量共享。

控制器综合单元25用以按调度要求驱动数据通路的控制器;结果生成单元26用以将设计转换为硬件结构的物理实现。

在本发明的一实施例中,所述生成系统进一步包括:数据修改模块,用以修正或者修改设定的验证子系统。在一实施例中,所述综合模块用以对修正或者修改后的验证子系统重新进行综合;将综合后的验证子系统资源下载到对应的FPGA验证子系统。

本发明揭示一种FPGA原型验证系统,所述验证系统包括:FPGA验证分配模块及至少两个FPGA验证子系统。FPGA验证分配模块用以为各个FPGA验证子系统分配验证流程;各FPGA验证子系统用以根据所述FPGA验证分配模块分配的验证流程进行设定功能和性能的FPGA验证。

综上所述,本发明提出的FPGA原型验证系统生成方法及系统、FPGA原型验证方法及系统,将原有的验证系统划分为若干子系统,每个子系统可以独立同步综合,可降低综合的复杂度,减少综合时间,提高综合效率。

基于该架构,本发明可以将容易出错或者修改概率较大的模块划分为单独的子系统,在需要修改该模块时,只综合该模块的RTL代码而不必综合整个系统,可以大大缩减FPGA重新综合的时间,提高验证效率。

同时,本发明可以将一个大规模的SoC或者ASIC原型,划分为多个子系统,解决了单个FPGA原型验证系统资源无法满足验证需求的问题。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施;例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中;例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现;例如,作为与处理器配合从而执行各个步骤或功能的电路。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。实施例中所涉及的效果或优点可因多种因素干扰而可能不能在实施例中体现,对于效果或优点的描述不用于对实施例进行限制。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号