multi-FPGA系统的EDA工具设计方法和装置转让专利

申请号 : CN201110132650.8

文献号 : CN102789512B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张倩莉李艳陈亮于芳

申请人 : 中国科学院微电子研究所

摘要 :

本发明公开了一种multi-FPGA系统的EDA工具设计方法和装置,属于现场可编程门阵列及电子设计自动化设计技术领域。所述方法包括:根据FPGA逻辑基本单元库和约束条件,生成综合结果文件;根据综合结果文件和约束条件对电路进行分割,生成多个网表文件;根据约束条件,对每个网表文件进行映射,生成映射结果文件;根据映射结果文件和约束条件,进行布局布线,生成布局布线结果文件;根据布局布线结果文件和约束条件,生成配置文件且下载到FPGA芯片中。本发明还提供了一种multi-FPGA系统的EDA工具设计装置。本发明通过用户干涉和借助用户约束文件指导,使整个multi-FPGA系统设计过程清晰明朗。

权利要求 :

1.一种multi-FPGA系统的EDA工具设计方法,其特征在于,所述方法包括:根据FPGA逻辑基本单元库和第一、第二、第三约束条件,结合所述multi-FPGA系统的电路结构,生成综合结果文件;

根据所述综合结果文件和第一、第三约束条件对电路进行分割,生成多个网表文件;

根据第四约束条件,对每个网表文件进行映射,生成映射结果文件;

根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线,生成布局布线结果文件;

根据所述布局布线结果文件和第一约束条件,生成对应不同FPGA芯片的配置文件,并将所述配置文件分别下载到所述FPGA芯片中;所述第一约束条件为模块数量划分约束条件,所述第二约束条件为时钟及控制信号约束条件,所述第三约束条件为模块名称及编号约束条件,所述第四约束条件为映射及布局布线约束条件;所述第一、第二、第三和第四约束条件预先存储在用户约束文件中;

所述模块数量划分约束条件的内容包括:所述multi-FPGA系统中的FPGA芯片的个数,其中包括一个主模块和若干个子模块;所述时钟及控制信号约束条件的内容包括:时钟信号的名称及频率、以及控制信号的名称及频率;所述模块名称及编号约束条件的内容包括:每个模块的名称及其在所述multi-FPGA系统中对应的FPGA芯片的编号;所述映射及布局布线约束条件的内容包括:每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定;

根据所述综合结果文件和第一、第三约束条件对电路进行分割的步骤具体包括:根据第一约束条件中FPGA芯片的个数,遍历所述multi-FPGA系统中的所有逻辑单元;根据所述综合结果文件和第三约束条件中模块的名称,将所述逻辑单元进行分割;所述逻辑单元分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。

2.如权利要求1所述的multi-FPGA系统的EDA工具设计方法,其特征在于,所述控制信号包括置位信号和复位信号。

3.如权利要求1所述的multi-FPGA系统的EDA工具设计方法,其特征在于,所述根据第四约束条件,对每个网表文件进行映射的步骤具体为:根据第四约束条件,将每个网表文件中的逻辑单元按照其所属模块编号映射到不同模块中,将未标注编号的逻辑单元分配到主模块中。

4.如权利要求1所述的multi-FPGA系统的EDA工具设计方法,其特征在于,所述根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线的步骤具体包括:读取第一约束条件中FPGA芯片的个数和所述映射结果文件,并根据第四约束条件中的布局布线约束条件,将每个映射结果布局布线到相应的FPGA芯片中;

根据第二约束条件,将时钟信号及控制信号单独布线。

5.一种multi-FPGA系统的EDA工具设计装置,其特征在于,所述装置包括:综合结果生成模块,用于根据FPGA逻辑基本单元库和第一、第二、第三约束条件,结合所述multi-FPGA系统的电路结构,生成综合结果文件;

网表文件生成模块,用于根据所述综合结果文件和第一、第三约束条件对电路进行分割,生成多个网表文件;

映射结果生成模块,用于根据第四约束条件,对每个网表文件进行映射,生成映射结果文件;

布局布线结果生成模块,用于根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线,生成布局布线结果文件;

配置下载模块,用于根据所述布局布线结果文件和第一约束条件,生成对应不同FPGA芯片的配置文件,并将所述配置文件分别下载到所述FPGA芯片中;

所述第一约束条件为模块数量划分约束条件,所述第二约束条件为时钟及控制信号约束条件,所述第三约束条件为模块名称及编号约束条件,所述第四约束条件为映射及布局布线约束条件;

所述模块数量划分约束条件的内容包括:所述multi-FPGA系统中的FPGA芯片的个数,其中包括一个主模块和若干个子模块;所述时钟及控制信号约束条件的内容包括:时钟信号的名称及频率、以及控制信号的名称及频率;所述模块名称及编号约束条件的内容包括:每个模块的名称及其在所述multi-FPGA系统中对应的FPGA芯片的编号;所述映射及布局布线约束条件的内容包括:每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定;

根据所述综合结果文件和第一、第三约束条件对电路进行分割具体包括:根据第一约束条件中FPGA芯片的个数,遍历所述multi-FPGA系统中的所有逻辑单元;根据所述综合结果文件和第三约束条件中模块的名称,将所述逻辑单元进行分割;所述逻辑单元分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。

6.如权利要求5所述的multi-FPGA系统的EDA工具设计装置,其特征在于,所述装置还包括:用户约束文件存储模块,用于存储第一、第二、第三和第四约束条件。

说明书 :

multi-FPGA系统的EDA工具设计方法和装置

技术领域

[0001] 本发明涉及现场可编程门阵列及其配套电子设计自动化设计技术领域,特别涉及一种multi-FPGA系统的EDA工具设计方法和装置。

背景技术

[0002] 随着专用集成电路(ASIC,Application Specific Integrated Circuit)掩模板成本的日益增加,以及现场可编程门阵列(FPGA,Field Programmable Gate Array)在性能方面与ASIC差距的逐渐减小,并且FPGA芯片具有市场周期短,模板成本低等重大优势,使得FPGA逐渐成为了各种实时设计的平台。
[0003] 目前,利用FPGA完成大规模单片系统(SoC,System-On-a-Chip)的设计仍然存在一定的挑战。其中的一个难点在于:与ASIC相比,FPGA的资源是有限的。在ASIC的设计过程中,设计人员不需要担心系统子模块之间连线的数量,并且在门级布局和门的数量上具有很大的灵活性。但是由于FPGA在I/O(输入/输出)和可配置逻辑模块(CLB,Configurable Logic Block)的数量上都是固定的,因此设计者只有在设计一定规格的SoC时,才可以使用FPGA作为平台。然而使用多FPGA(multi-FPGA)系统去实现上述大规模SoC,问题就迎刃而解了。
[0004] 在multi-FPGA应用中,电子设计自动化(EDA,Electronic Design Automation)工具成为了设计multi-FPGA系统的重要途径。EDA工厂需要分析各方面难点,并提供必要工具,使multi-FPGA系统设计变得更为简洁。由于用于multi-FPGA系统的EDA工具设计需要参照multi-FPGA系统的硬件结构,即印刷电路板(PCB,Printed Circuit Board)的设计结构,因此在multi-FPGA系统设计过程中不能按照传统设计方法那样在系统设计结束之后再设计PCB板,而要同步进行multi-FPGA系统和PCB板的设计及修正。
[0005] 现阶段对multi-FPGA系统的设计主要是在EDA工具的布局布线阶段进行,即将multi-FPGA系统当做一个整体,根据尽量减少子模块之间连线的原则,适当地调整模块和连线,进行布局布线,以达到将延迟降到最低的目的。在分割过程中通常采用以下方法:
[0006] 1.共享资源的分割:先将寄存器阵列这样的逻辑块拆分,再将这些逻辑块和它们所控制的逻辑块集成在一起。这样,就不需要在不同FPGA边界之间设置宽的总线,从而减少了FPGA在I/O总数上的限制。
[0007] 2.重新分组逻辑块以减少FPGA之间的连接。
[0008] 3.复制逻辑块以减少FPGA之间的连接。
[0009] 4.对FPGA边界的I/O采用时分复用。
[0010] 5.复制时钟和重置逻辑:时钟信号和重置信号是FPGA器件内部逻辑块工作所必须的信号,这两部分可以在FPGA内部重新生成。这样,时序工具只需要解决由于FPGA内部重新产生的时钟信号所引起的偏差,而在实际应用中,这种时序偏差要远小于FPGA芯片之间的延迟。
[0011] 然而现有技术仍存在以下缺点:分割过程是在寄存器级划分,而没有按照模块划分,这样分割后的各网表之间连线数目较多并且multi-FPGA系统中各个FPGA芯片的功能不够清晰独立。在布局布线过程是以整个multi-FPGA系统为对象,增大了布局布线的难度与复杂性。

发明内容

[0012] 为了解决单个FPGA芯片由于逻辑块和I/O数目限制,难以满足大规模电路设计需要的问题,本发明提供了一种multi-FPGA系统的EDA工具设计方法,所述方法包括:
[0013] 根据FPGA逻辑基本单元库和第一、第二、第三约束条件,结合所述multi-FPGA系统的电路结构,生成综合结果文件;
[0014] 根据所述综合结果文件和第一、第三约束条件对电路进行分割,生成多个网表文件;
[0015] 根据第四约束条件,对每个网表文件进行映射,生成映射结果文件;
[0016] 根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线,生成布局布线结果文件;
[0017] 根据所述布局布线结果文件和第一约束条件,生成对应不同FPGA芯片的配置文件,并将所述配置文件分别下载到所述FPGA芯片中。
[0018] 所述第一约束条件为模块数量划分约束条件,所述第二约束条件为时钟及控制信号约束条件,所述第三约束条件为模块名称及编号约束条件,所述第四约束条件为映射及布局布线约束条件;所述第一、第二、第三和第四约束条件预先存储在用户约束文件中。
[0019] 所述模块数量划分约束条件的内容包括:所述multi-FPGA系统中的FPGA芯片的个数,其中包括一个主模块和若干个子模块;所述时钟及控制信号约束条件的内容包括:时钟信号的名称及频率、以及控制信号的名称及频率;所述模块名称及编号约束条件的内容包括:每个模块的名称及其在所述multi-FPGA系统中对应的FPGA芯片的编号;所述映射及布局布线约束条件的内容包括:每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定。
[0020] 根据所述综合结果文件和第一、第三约束条件对电路进行分割的步骤具体包括:根据第一约束条件中FPGA芯片的个数,遍历所述multi-FPGA系统中的所有逻辑单元;根据所述综合结果文件和第三约束条件中模块的名称,将所述逻辑单元进行分割。所述逻辑单元分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。
[0021] 所述控制信号包括置位信号和复位信号。
[0022] 所述根据第四约束条件,对每个网表文件进行映射的步骤具体为:根据第四约束条件,将每个网表文件中的逻辑单元按照其所属模块编号映射到不同模块中,将未标注编号的逻辑单元分配到主模块中。
[0023] 所述根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线的步骤具体包括:
[0024] 读取第一约束条件中FPGA芯片的个数和所述映射结果文件,并根据第四约束条件中的布局布线约束条件,将每个映射结果布局布线到相应的FPGA芯片中;
[0025] 根据第二约束条件,将时钟信号及控制信号单独布线。
[0026] 本发明还提供了一种multi-FPGA系统的EDA工具设计装置,所述装置包括:
[0027] 综合结果生成模块,用于根据FPGA逻辑基本单元库和第一、第二、第三约束条件,结合所述multi-FPGA系统的电路结构,生成综合结果文件;
[0028] 网表文件生成模块,用于根据所述综合结果文件和第一、第三约束条件对电路进行分割,生成多个网表文件;
[0029] 映射结果生成模块,用于根据第四约束条件,对每个网表文件进行映射,生成映射结果文件;
[0030] 布局布线结果生成模块,用于根据所述映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线,生成布局布线结果文件;
[0031] 配置下载模块,用于根据所述布局布线结果文件和第一约束条件,生成对应不同FPGA芯片的配置文件,并将所述配置文件分别下载到所述FPGA芯片中;
[0032] 所述第一约束条件为模块数量划分约束条件,所述第二约束条件为时钟及控制信号约束条件,所述第三约束条件为模块名称及编号约束条件,所述第四约束条件为映射及布局布线约束条件。
[0033] 所述模块数量划分约束条件的内容包括:所述multi-FPGA系统中的FPGA芯片的个数,其中包括一个主模块和若干个子模块;所述时钟及控制信号约束条件的内容包括:时钟信号的名称及频率、以及控制信号的名称及频率;所述模块名称及编号约束条件的内容包括:每个模块的名称及其在所述multi-FPGA系统中对应的FPGA芯片的编号;所述映射及布局布线约束条件的内容包括:每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定。
[0034] 根据所述综合结果文件和第一、第三约束条件对电路进行分割具体包括:根据第一约束条件中FPGA芯片的个数,遍历所述multi-FPGA系统中的所有逻辑单元;根据所述综合结果文件和第三约束条件中模块的名称,将所述逻辑单元进行分割;所述逻辑单元分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。
[0035] 所述装置还包括:用户约束文件存储模块,用于存储第一、第二、第三和第四约束条件。
[0036] 本发明通过用户干涉和借助用户约束文件指导,从最初的综合阶段就将电路模块化,进而到映射阶段完成了电路文件的分配和分割,从布局布线开始到配置文件生成下载过程,都是针对multi-FPGA系统中单个的FPGA芯片,从而使整个设计过程清晰明朗。

附图说明

[0037] 图1是本发明实施例multi-FPGA系统的EDA工具设计方法流程图;
[0038] 图2是本发明实施例9芯片的multi-FPGA系统电路结构示意图;
[0039] 图3是本发明实施例multi-FPGA系统的EDA工具设计装置结构示意图。

具体实施方式

[0040] 为了深入了解本发明,下面结合附图及具体实施例对本发明进行详细说明。
[0041] 在进行multi-FPGA系统的EDA工具设计之前,用户需要按照EDA工具规定的格式及电路设计的内容,设置用户约束文件(UCF,User Constraint File)的内容。UCF的内容包括:根据multi-FPGA系统的结构,设置该系统被划分的模块数量N(N为自然数),也就是FPGA芯片的个数,其中包括一个主模块和若干个子模块;系统的时钟及控制信号,包括时钟信号的名称及频率、以及控制信号的名称及频率,控制信号包括置位信号和复位信号;模块名称及编号,包括每个模块的名称及其在multi-FPGA系统中对应的FPGA芯片的编号;映射及布局布线约束条件,包括每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定。设置UCF的目的在于:用户可以更加了解自己的设计和需求,通过这种方式的约束,可以使设计结果更贴切自己的预期结果。
[0042] multi-FPGA系统设计的核心问题是将电路文件模块化,使每个模块对应multi-FPGA系统中每一个FPGA芯片。针对这一核心问题,本发明实施例提出了一种基于单个FPGA的multi-FPGA系统的EDA工具设计方法,具体包括以下步骤,如图1和图2所示:
[0043] 步骤101:根据FPGA逻辑基本单元库和UCF内容中的模块数量、时钟及控制信号、模块名称及编号,结合UCF中约束过的确定归属的multi-FPGA系统电路结构,利用描述电路的硬件描述语言(VHDL或Verilog)生成且输出后缀为.EDIF的综合结果文件。
[0044] 通常情况下,需要结合multi-FPGA系统的结构来进行EDA工具设计,图2示出了9芯片的multi-FPGA系统电路结构示意图,本实施例将以此为例进行描述。如图2所示,预先设置的UCF的内容包括:①由于使用的是9芯片的multi-FPGA系统,因此整个电路被划分成9个模块,即N=9;②整个电路的时钟信号为ck、控制信号为sr;③根据电路描述文件,确定全部或部分电路结构被划分的模块名称及编号为:chip0,chip1,chip2,chip3,chip4,chip5,chip6,chip7,main-chip;④根据映射及布局布线阶段的特殊要求,设置每个芯片在映射及布局布线阶段的约束条件。9个模块的名称作为综合后生成的逻辑单元的一种特殊标志,以供后面步骤的辨识。UCF中没有指定归属的逻辑单元,会根据逻辑功能和连线紧密程度,对所属模块进行标记;其中,连接关系最复杂且具有核心功能的逻辑单元组会被标记为主模块(main-chip)。经过综合后,生成一个后缀为.EDIF的文件作为输出。这种综合工具设计方法的优点在于:通过对模块进行分类,会使电路功能体现得更加清晰,使得电路模块之间的连接相对较少,功能关联较少,连接更加紧密,易于分割且不影响整个电路的性能。
[0045] 步骤102:根据.EDIF文件和UCF内容中划分的模块个数、模块名称及编号约束条件,遍历所有逻辑单元,根据逻辑单元所属模块的标志对电路进行分割,生成多个独立的网表文件。
[0046] 根据电路连线的需要,以不改变电路功能为准则,按照每个模块的标志进行电路网表的分割,分割过程要结合multi-FPGA系统结构,对网表中的模块进行适当的删减、改变或增加,最终生成N个独立的网表文件。图2示出的multi-FPGA系统的电路被划分成9个模块,按照每个模块的标志进行电路分割生成9个网表文件。电路分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。例如,分割前的网表文件中存在两个有连接关系的逻辑块Logic1和Logic2,它们所属模块的标志分别是chip1和main-chip。分割后Logic1和Logic2之间的连线会成为chip1和main-chip的两个pin,它们之间的连线通过chip1和main-chip之间pin的连接实现。当遇到分割后两个模块在multi-FPGA系统中没有直接连线途径的情况,例如chip0和main-chip,映射工具会在分割的过程中在chip1中加入一个连接传输线,在chip0中的信号通过chip0的pin输出,经过系统连线,进入chip1的pin,再经由连接传输线从chip1的pin输出经过系统连线通过main-chip的pin进入main-chip。
[0047] 步骤103:根据UCF内容中的映射约束条件,利用映射算法对多个网表文件进行映射,生成对应于多个网表文件的后缀为.net的映射结果文件。
[0048] 根据映射约束条件,利用映射算法将每个网表文件中的逻辑单元按照其所属模块编号映射到不同模块中,将未标注编号的逻辑单元分配到主模块中。图2示出的multi-FPGA系统的电路结构被分割成9个网表文件,根据UCF内容中的映射约束条件,利用映射算法对9个网表文件进行映射,生成9个分别对应于9个芯片的后缀为.net的文件。这种映射工具设计方法的优点在于:将一个multi-FPGA系统设计的复杂问题简化成了对N个FPGA芯片设计的简单问题,并且将映射过程之后的EDA工具设计过程都简化成了针对单个FPGA芯片设计的问题。
[0049] 步骤104:根据后缀为.net的文件和UCF内容中的模块数量、时钟及控制信号、布局布线约束条件,利用布局布线算法分别对每个芯片进行布局布线,生成多组对应于多个FPGA芯片的后缀为.p和后缀为.r的文件。
[0050] 读取UCF内容中的模块数量(FPGA芯片的个数)和.net文件,并根据布局布线约束条件,利用布局布线算法将每个.net文件布局布线到相应的FPGA芯片中;根据时钟及控制信号约束条件,将时钟信号及控制信号单独布线。如图2所示,分别读取9个.net文件和UCF内容中的模块数量、时钟及控制信号、布局布线约束条件,按照约束条件和布局布线算法分别对每个芯片进行布局布线,生成9组分别对应于9个芯片的后缀为.p和后缀为.r的文件。其中,根据UCF内容中时钟及控制信号约束条件和multi-FPGA系统结构,对时钟及控制信号作统一单独布线,以减小延迟,提高整个系统的同步性。
[0051] 布局布线是根据UCF内容中的约束条件,将每一个网表和系统上每一个芯片对应着进行布局布线,其中时钟信号和置位复位信号统一布线,以保证整个系统的同步性。在进入布局布线工具设计阶段后,multi-FPGA系统电路的分配及分割工作已经完成,布局布线只是面向单个FPGA芯片进行布局布线,可以提高性能,减少延迟。
[0052] 步骤105:根据每组后缀为.p和后缀为.r的文件以及UCF内容中的模块数量约束条件,生成对应不同FPGA芯片的配置文件。
[0053] 例如,分别读取9组后缀为.p和后缀为.r的文件以及UCF中的模块划分约束条件,生成9个分别对应于9个芯片(chip0,chip1,chip2,chip3,chip4,chip5,chip6,chip7,main-chip)的配置文件。
[0054] 步骤106:将不同的配置文件分别下载到multi-FPGA系统的每个FPGA芯片中,对系统进行配置,完成用户设计的大规模集成电路的功能。
[0055] 例如,将9个配置文件下载到multi-FPGA系统的9个FPGA芯片中,对系统进行配置,完成用户设计的大规模集成电路的功能。
[0056] 参见图3,本发明实施例还提供了一种multi-FPGA系统的EDA工具设计装置,该装置包括:
[0057] 综合结果生成模块,用于根据FPGA逻辑基本单元库和第一、第二、第三约束条件,结合multi-FPGA系统的电路结构,生成综合结果文件;
[0058] 网表文件生成模块,用于根据综合结果文件和第一、第三约束条件对电路进行分割,生成多个网表文件;
[0059] 映射结果生成模块,用于根据第四约束条件,对每个网表文件进行映射,生成映射结果文件;
[0060] 布局布线结果生成模块,用于根据映射结果文件和第一、第二、第四约束条件,分别对FPGA芯片进行布局布线,生成布局布线结果文件;
[0061] 配置下载模块,用于根据布局布线结果文件和第一约束条件,生成对应不同FPGA芯片的配置文件,并将配置文件分别下载到FPGA芯片中。
[0062] 第一约束条件为模块数量划分约束条件,第二约束条件为时钟及控制信号约束条件,第三约束条件为模块名称及编号约束条件,第四约束条件为映射及布局布线约束条件。
[0063] 其中,模块数量划分约束条件的内容包括:multi-FPGA系统中的FPGA芯片的个数,其中包括一个主模块和若干个子模块;时钟及控制信号约束条件的内容包括:时钟信号的名称及频率、以及控制信号的名称及频率;模块名称及编号约束条件的内容包括:每个模块的名称及其在multi-FPGA系统中对应的FPGA芯片的编号;映射及布局布线约束条件的内容包括:每个模块需要的逻辑块、连线和管脚进行映射以及布局布线的约束和规定。
[0064] 其中,根据综合结果文件和第一、第三约束条件对电路进行分割具体包括:根据第一约束条件中FPGA芯片的个数,遍历multi-FPGA系统中的所有逻辑单元;根据综合结果文件和第三约束条件中模块的名称,将逻辑单元进行分割;逻辑单元分割的原则是:将任意两个有连接关系但所属不同模块的逻辑单元分割开。
[0065] 进一步地,该装置还包括:用户约束文件存储模块,用于存储第一、第二、第三和第四约束条件。
[0066] 本发明通过用户干涉和借助用户约束文件指导,从最初的综合阶段就将电路模块化,进而到映射阶段完成了电路文件的分配和分割,从布局布线开始到配置文件生成下载过程,都是针对multi-FPGA系统中单个的FPGA芯片,从而使整个设计过程清晰明朗。
[0067] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。