CN110728098B - Fpga重配置分区优化方法及系统 - Google Patents
Fpga重配置分区优化方法及系统 Download PDFInfo
- Publication number
- CN110728098B CN110728098B CN201810701280.7A CN201810701280A CN110728098B CN 110728098 B CN110728098 B CN 110728098B CN 201810701280 A CN201810701280 A CN 201810701280A CN 110728098 B CN110728098 B CN 110728098B
- Authority
- CN
- China
- Prior art keywords
- reconfiguration
- fpga
- partitions
- partition
- links
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005192 partition Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000005457 optimization Methods 0.000 title claims abstract description 12
- 230000003993 interaction Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000452 restraining effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及智能芯片技术领域,公开了一种FPGA重配置分区优化方法及系统,以提升FPGA的整体性能。本发明方法包括:确定重配置分区的数量和各所述重配置分区之间的输入输出接口连接关系;在相连接的两重配置分区之间,插入寄存器,并对各所述重配置分区的输入数据和输出数据转换为寄存器类型;对各所述重配置分区内相应各寄存器的位置进行约束,以保证配置分区之间的数据交互在物理上是最短路径,凭此减少延时。
Description
技术领域
本发明涉及智能芯片技术领域,尤其涉及一种FPGA重配置分区优化方法及系统。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
其中,布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。在现有的FPGA开发中,通常不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。然而,如果任由布线器自由布线,无法保证配置分区之间的数据交互在物理上是最短路径,从而不利于时延的精确控制。
发明内容
本发明目的在于公开一种FPGA重配置分区优化方法及系统,以提升FPGA的整体性能。
为实现上述目的,本发明公开了一种FPGA重配置分区优化方法,包括:
确定重配置分区的数量和各所述重配置分区之间的输入输出接口连接关系;
在相连接的两重配置分区之间,插入寄存器,并对各所述重配置分区的输入数据和输出数据转换为寄存器类型;
对各所述重配置分区内相应各寄存器的位置进行约束,以保证配置分区之间的数据交互在物理上是最短路径。
优选地,本发明可利用FPGA编译软件的约束语句对各所述重配置分区内相应各寄存器的位置进行约束。
与上述方法相对应的,本发明还公开FPGA重配置分区优化系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明具有以下有益效果:
针对各重配置分区之间复杂的链路关系,对各重配置分区的输入数据和输出数据转换为寄存器类型,并通过对各重配置分区内相应各寄存器的位置进行约束以保证配置分区之间的数据交互在物理上是最短路径,减少了延时,提升了FPGA的整体性能。
下面将参照附图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明优选实施例的FPGA重配置分区优化方法流程图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
实施例1
本实施例公开一种FPGA重配置分区优化方法,该方法可在基于FPGA执行算法处理时进行应用,以通过FPGA进行算法的硬件加速。优选地,在具体开发的过程中,可以MATLAB进行算法建模,并借助HDL Workflow Advisor实现模型到Verilog语言的自动生成,并利用HDLCoder将MATLAB建模时采用的是浮点数转换成FPGA执行的定点数。藉此,则可以延续既有算法设计工程师利用C语言等高级综合工具的开发习惯,其无需过多了解FPGA设计相关知识,从而有利于缩短开发周期。
如图1所示,本实施例分区优化方法包括:
步骤S1、确定重配置分区的数量和各所述重配置分区之间的输入输出接口连接关系。
在该步骤中,各重配置分区的内容可以被更新,并且不影响其他分区的正常运行。从而让算法调度成为现实。例如:利用ICAP接口,实现算法模型配置切换。
步骤S2、在相连接的两重配置分区之间,插入寄存器,并对各重配置分区的输入数据和输出数据转换为寄存器类型。
在本实施例中,重配置分区之间的链路可以划分为串行链路和并行链路。例如:分区1的输出接到分区2,分区2的输出接到分区3,则这条链路就是串联的;如果分区2的输出不仅接到分区3还同时接到分区1,则这种链路就是并联的。重配置分区如果更多,这种数据的串并联交互会更复杂,为了保证数据交互走的是最短的路径保证延时最小,需要对输入输出接口进行位置约束;藉此,本实施例通过对各重配置分区的输入数据和输出数据转换为寄存器类型。
步骤S3、对各重配置分区内相应各寄存器的位置进行约束,以保证配置分区之间的数据交互在物理上是最短路径。
优选地,该步骤具体可利用FPGA编译软件的约束语句对各所述重配置分区内相应各寄存器的位置进行约束。
优选地,本实施例方法还包括:
步骤S4、判断各重配置分区之间的链路是否满足时序需求,对于延时超过时序需求的路径,择取至少一个重配置分区中的组合逻辑单元切割成至少两个组合逻辑子单元,并在相邻逻辑子单元之间采用Pipeline的方式插入寄存器;并重新确定该重配置分区的执行时间。相对应的,本实施例方法还可以进一步包括:
步骤S5、在重新确定一个重配置分区的执行时间后,基于全局时钟同步考虑,对相关的其他重配置分区或传输链路也插入寄存器以保证同步性,并计算得出系统最大时钟频率。
综上,本实施例方法针对各重配置分区之间复杂的链路关系,对各重配置分区的输入数据和输出数据转换为寄存器类型,并通过对各重配置分区内相应各寄存器的位置进行约束以保证配置分区之间的数据交互在物理上是最短路径,减少了延时,提升了FPGA的整体性能。
实施例2
与上述方法实施例相对应的,本实施例公开一种FPGA重配置分区优化系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述方法的步骤。
同理,本实施例系统针对各重配置分区之间复杂的链路关系,对各重配置分区的输入数据和输出数据转换为寄存器类型,并通过对各重配置分区内相应各寄存器的位置进行约束以保证配置分区之间的数据交互在物理上是最短路径,减少了延时,提升了FPGA的整体性能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种FPGA重配置分区优化方法,其特征在于,包括:
确定重配置分区的数量和各所述重配置分区之间的输入输出接口连接关系;
在相连接的两重配置分区之间,插入寄存器,并对各所述重配置分区的输入数据和输出数据转换为寄存器类型;
对各所述重配置分区内相应各寄存器的位置进行约束,以保证配置分区之间的数据交互在物理上是最短路径;
判断各所述重配置分区之间的链路是否满足时序需求;
对于延时超过时序需求的路径,择取至少一个重配置分区中的组合逻辑单元切割成至少两个组合逻辑子单元,并在相邻逻辑子单元之间采用Pipeline的方式插入寄存器;并重新确定该重配置分区的执行时间。
2.根据权利要求1所述的FPGA重配置分区优化方法,其特征在于,利用FPGA编译软件的约束语句对各所述重配置分区内相应各寄存器的位置进行约束。
3.根据权利要求1所述的FPGA重配置分区优化方法,其特征在于,所述链路包括串行链路和并行链路;所述方法还包括:
在重新确定一个重配置分区的执行时间后,基于全局时钟同步考虑,对相关的其他重配置分区或传输链路也插入寄存器以保证同步性,并计算得出系统最大时钟频率。
4.根据权利要求3所述的FPGA重配置分区优化方法,其特征在于,还包括:
在基于FPGA执行算法处理时,以MATLAB进行算法建模,并借助HDL Workflow Advisor实现模型到Verilog语言的自动生成,并利用HDLCoder将MATLAB建模时采用的是浮点数转换成FPGA执行的定点数。
5.一种FPGA重配置分区优化系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至4任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810701280.7A CN110728098B (zh) | 2018-06-29 | 2018-06-29 | Fpga重配置分区优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810701280.7A CN110728098B (zh) | 2018-06-29 | 2018-06-29 | Fpga重配置分区优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110728098A CN110728098A (zh) | 2020-01-24 |
CN110728098B true CN110728098B (zh) | 2023-12-29 |
Family
ID=69216807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810701280.7A Active CN110728098B (zh) | 2018-06-29 | 2018-06-29 | Fpga重配置分区优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110728098B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732620B (zh) * | 2021-01-12 | 2022-03-18 | 东科半导体(安徽)股份有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
CN113127078B (zh) * | 2021-03-30 | 2023-04-25 | 山东英信计算机技术有限公司 | 一种cpld的配置选定方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778439A (en) * | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
US6211695B1 (en) * | 1999-01-21 | 2001-04-03 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks with registered address and data input sections |
WO2013178543A1 (fr) * | 2012-06-01 | 2013-12-05 | Flexras Technologies | Prototypage multi-fpga d'un circuit asic |
CN105680848A (zh) * | 2014-11-19 | 2016-06-15 | 京微雅格(北京)科技有限公司 | 基于区域时钟的优化fpga芯片布局的方法 |
CN106682294A (zh) * | 2016-12-15 | 2017-05-17 | 西安交通大学 | 一种动态可重构fpga的布局方法 |
-
2018
- 2018-06-29 CN CN201810701280.7A patent/CN110728098B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778439A (en) * | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
US6211695B1 (en) * | 1999-01-21 | 2001-04-03 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks with registered address and data input sections |
WO2013178543A1 (fr) * | 2012-06-01 | 2013-12-05 | Flexras Technologies | Prototypage multi-fpga d'un circuit asic |
CN105680848A (zh) * | 2014-11-19 | 2016-06-15 | 京微雅格(北京)科技有限公司 | 基于区域时钟的优化fpga芯片布局的方法 |
CN106682294A (zh) * | 2016-12-15 | 2017-05-17 | 西安交通大学 | 一种动态可重构fpga的布局方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110728098A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296696B1 (en) | Method and apparatus for performing simultaneous register retiming and combinational resynthesis during physical synthesis | |
KR102596637B1 (ko) | 상호작용형 다단계 물리적 합성 | |
US10678979B2 (en) | Method and apparatus for implementing a system-level design tool for design planning and architecture exploration | |
US9026967B1 (en) | Method and apparatus for designing a system on multiple field programmable gate array device types | |
EP2627005B1 (en) | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration | |
US9292638B1 (en) | Method and apparatus for performing timing closure analysis when performing register retiming | |
US10102172B1 (en) | Method and apparatus for performing a single pass compilation for systems with dynamically reconfigurable logic blocks | |
US20140173343A1 (en) | Method and Apparatus For Supporting A Unified Debug Environment | |
US10586004B2 (en) | Method and apparatus for utilizing estimations for register retiming in a design compilation flow | |
US8954906B1 (en) | Method and apparatus for performing parallel synthesis on a field programmable gate array | |
CN110728098B (zh) | Fpga重配置分区优化方法及系统 | |
JP5779237B2 (ja) | 合成中に非同期および同期リセット解除を実行するための方法および装置 | |
US7873934B1 (en) | Method and apparatus for implementing carry chains on field programmable gate array devices | |
US9275184B1 (en) | Method and apparatus for performing timing closure analysis when performing register retiming | |
US9230047B1 (en) | Method and apparatus for partitioning a synthesis netlist for compile time and quality of results improvement | |
US8443334B1 (en) | Method and apparatus for generating graphical representations of slack potential for slack paths | |
US8904318B1 (en) | Method and apparatus for performing optimization using don't care states | |
US10146898B1 (en) | Method and apparatus for designing a system using weighted-cost interconnect synthesis | |
US10223488B2 (en) | Method and apparatus for improving system operation by replacing components for performing division during design compilation | |
US9355198B1 (en) | Method and apparatus for performing late binding of control status registers in a design compilation flow | |
US8281271B1 (en) | Method and apparatus for performing lutmask based delay modeling | |
US10474441B1 (en) | Method and apparatus for performing automatic data compression algorithm selection during high-level compilation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |