CN110728098B - Fpga重配置分区优化方法及系统 - Google Patents

Fpga重配置分区优化方法及系统 Download PDF

Info

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
Application number
CN201810701280.7A
Other languages
English (en)
Other versions
CN110728098A (zh
Inventor
梅文庆
李淼
杨胜
邱岳烽
郭赞
杨烁
罗云飞
凡林斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Zhuzhou Institute Co Ltd
Original Assignee
CRRC Zhuzhou Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CRRC Zhuzhou Institute Co Ltd filed Critical CRRC Zhuzhou Institute Co Ltd
Priority to CN201810701280.7A priority Critical patent/CN110728098B/zh
Publication of CN110728098A publication Critical patent/CN110728098A/zh
Application granted granted Critical
Publication of CN110728098B publication Critical patent/CN110728098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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重配置分区优化方法及系统。
背景技术
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任一所述方法的步骤。
CN201810701280.7A 2018-06-29 2018-06-29 Fpga重配置分区优化方法及系统 Active CN110728098B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的布局方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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