CN115392168B - 一种用于fpga芯片的装箱方法 - Google Patents

一种用于fpga芯片的装箱方法 Download PDF

Info

Publication number
CN115392168B
CN115392168B CN202211066822.0A CN202211066822A CN115392168B CN 115392168 B CN115392168 B CN 115392168B CN 202211066822 A CN202211066822 A CN 202211066822A CN 115392168 B CN115392168 B CN 115392168B
Authority
CN
China
Prior art keywords
primitive
primitives
special
num
boxing
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
CN202211066822.0A
Other languages
English (en)
Other versions
CN115392168A (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.)
Beijing Technology and Business University
Original Assignee
Beijing Technology and Business University
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 Beijing Technology and Business University filed Critical Beijing Technology and Business University
Priority to CN202211066822.0A priority Critical patent/CN115392168B/zh
Publication of CN115392168A publication Critical patent/CN115392168A/zh
Application granted granted Critical
Publication of CN115392168B publication Critical patent/CN115392168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及一种用于FPGA芯片的装箱方法,属于电子设计自动化技术领域。该方法执行如下步骤:1)归类特殊原语,将FPGA中的用户网表中符合特殊原语判定条件的DSP和RAM归类为特殊原语;2)预处理,将部分原语打包;3)判断是否有未装箱分子,若无则结束,若有则下一步;4)通过种子收益模型选择收益值最大的原语作为种子;5)根据待装箱Tile与原语之间的连接关系使用不同的装箱收益模型;6)引脚利用率判断,若符合要求返回步骤3)。本发明通过特殊原语判定条件,确定了特殊原语的适用条件,既不会因电路中RAM和DSP的比重高,导致周围原语选择性少;也不会因电路中加法器比重高,致使原语对电路划分会影响其吸收原语,造成资源消耗增加。

Description

一种用于FPGA芯片的装箱方法
技术领域
本发明涉及一种用于FPGA芯片的装箱方法,属于电子设计自动化技术领域。
背景技术
FPGA芯片上逻辑资源可以被划分为若干Tile,例如通用逻辑块(CLB),块存储单元(RAM)以及乘法器(DSP)。每个Tile类型都包含了若干Site,例如CLB下的SLICE。每个Site下还包含多个基本逻辑单元(BLE)。基本逻辑单元中包含逻辑上不可拆分的原语,比如查找表(LUT)、触发器(FF)。此外,Tile之间通过可配置的开关矩阵和互连线进行连接。
在使用芯片设计电路时,用户首先用硬件描述语言(HDL)将待实现的电路进行文本化描述。然后,使用电子设计自动化软件(EDA)对电路进行编译,最终将电路转为比特流。最后,比特流对芯片内部的结构进行配置,从而在芯片上实现目标电路功能。FPGA的EDA流程通常包括综合、装箱、布局和布线。综合是将用户电路转换为LUT、FF等原语级网表。装箱将LUT、FF等原语打包成Tile模块,比如CLB。布局则是将Tile级模块放置到合适的位置。布线作为最后一步,将Tile模块通过布线资源连接。装箱作为综合后的第一步,其结果影响着布局布线的质量。
早期FPGA的结构较简单,BLE由LUT与FF组成。针对此结构,BETZ V在1997年提出了VPACK算法,首先将LUT与FF打包成基本逻辑单元(BLE),再将BLE打包成CLB。ROSE J在1999年提出了T-VPACK算法,在VPACK的基础上加入了时序优化,与VPACK相比,关键路径延时降低了7%,使用的通道数减少了12%。DPPACK在T-VPACK的代价函数中加入了曼哈顿距离,布局布线后比T-VPACK减少了16%的总线长以及8%的关键路径延时。
随着工艺的进步,FPGA的结构变得复杂,BLE中已经包含了可拆分LUT和可配置的FF,BLE之间加入了多路选择器以及加法器。针对复杂结构,Luu J在2014年提出了AAPACK算法,在装箱之前先进行预装箱,即先将原语打包成分子,再对分子进行装箱。RSVPACK算法是Travis Haroldsen在2016年提出的,针对XILINX V6架构,拉近了学术界与工业界的距离,但不具有通用性。BETZ V团队在2020年的VTR8.0中对AAPACK算法进行了改进,在种子选取、吸引力函数等方面进行了优化。
现代FPGA中不仅包含CLB和IO,还引入了DSP与RAM。随着DSP、RAM等模块的引入,用户设计的电路有了新的特性。这类原语的面积较大,是CLB的几倍或者几十倍甚至更高。原语的端口较多且端口之间关联性较差。
发明内容
本发明要解决的技术问题是:针对DSP和RAM的特性对装箱算法进行改进,一种用于FPGA芯片的装箱方法的方法。
为了解决上述技术问题,本发明提出的技术方案是:一种用于FPGA芯片的装箱方法,执行如下步骤:
1)归类特殊原语,将FPGA中的用户网表中符合特殊原语判定条件的DSP和RAM归类为特殊原语;
所述特殊原语判定条件,
其中numDSP为用户网表中DSP的数量,numRAM为用户网表中RAM的数量,numadder为用户网表中加法器的数量,numtotal为用户网表中原语的总数量,thre为阈值;
2)预处理,将部分原语打包;采用现有技术论文“Architecture-Aware Packingand CAD Infrastructure for Field-Programmable Gate Array”中第61页的4.3.3节Pre-Packing部分。
3)判断是否有未装箱分子,若无则结束,若有则下一步;
4)通过种子收益模型选择收益值最大的原语作为种子;
所述种子收益模型为,
seed_gain=w1*numin+w2*numused_in+w3*numblock+w4*crit+w5*ispecial
其中,numin为作为种子的原语的输入引脚数与所有原语中最大输入引脚数的比值,numused_in为作为种子的原语使用的输入引脚数与原语的输入引脚数的比值,numblock为作为种子的原语所在分子内的原语数与最大分子内原语数量的比值,crit为原语引脚的延时,ispecial用于判断当前原语是否为特殊原语,w1、w2、w3、w4、w5为权值;
5)根据待装箱Tile与原语之间的连接关系使用不同的装箱收益模型;
所述装箱收益模型分别为,与所述待装箱Tile直接连接的原语装箱收益模型、与所述待装箱Tile通过特殊原语间接连接的原语装箱收益模型、与所述待装箱Tile通过普通原语间接连接的原语装箱收益模型、所述待装箱Tile通过高扇出连接的原语装箱收益模型;
6)引脚利用率判断,若符合要求返回步骤3)。
上述技术方案的改进是:步骤4)中的所述w1、w2、w3、w4、w5分别为0.5、0.2、0.2、0.1和0.1。
上述技术方案的改进是:所述FPGA芯片中DSP、RAM以及加法器的总占比小于20%。
本发明带来的有益效果是:给出了特殊原语判定条件,并确定了特殊原语的适用条件,既不会因电路中RAM和DSP的比重高,导致周围原语选择性少;也不会因为电路中加法器比重高,导致使用原语对电路划分会影响其吸收原语,造成资源消耗增加。并增加了特殊原语的权重,使特殊原语优先装箱。改进通过特殊原语与当前Tile间接连接的原语的吸引力函数。
附图说明
下面结合附图对本发明作进一步说明。
图1是本发明实施例的一种用于FPGA芯片的装箱方法的流程示意图。
图2是本发明实施例的一种用于FPGA芯片的装箱方法中提到的原语与Tile的三种连接关系示意图。
图3是本发明实施例的一种用于FPGA芯片的装箱方法中间接连接的三种方式的示意图。
图4是本发明的一种用于FPGA芯片的装箱方法的电路中DSP、RAM和加法器的比重对关键路径延时的影响的示意图。
图5是本实施例的ndir变化对关键路径延时的影响示意图。
图6是本实施例的wport变化对关键路径延时的影响示意图
具体实施方式
实施例
本实施例的运行环境为Linux服务器,CPU为16核32线程3GHz的AMD EPYC 7302P,运行内存为64G。本发明采用的FPGA架构为VTR提供的类Agilex架构,但布线结构采用的是类Stratix IV。本发明采用的测试案例来自KOIOS测试集。KOIOS测试集包含20个深度学习相关电路,均为中型或大型电路,适用于架构研究与EDA算法研究。本发明在运行KOIOS的中型电路时通道宽度为200,大型电路的通道宽度为300。
如图1所示,本实施例的一种用于FPGA芯片的装箱方法,执行如下步骤:
1)归类特殊原语,将FPGA中的用户网表中符合特殊原语判定条件的DSP和RAM归类为特殊原语;
所述特殊原语判定条件,
其中numDSP为用户网表中DSP的数量,numRAM为用户网表中RAM的数量,numadder为用户网表中加法器的数量,numtotal为用户网表中原语的总数量,thre为阈值;
其他为满足上述条件的DSP和RAM归为普通原语。
2)预处理,将部分原语打包;对用户网表中的原语进行预处理,将部分原语打包在一起,用于减少装箱时的复杂度并减少装箱失败的情况。
3)判断是否有未装箱分子,若无则结束,若有则下一步;
4)通过种子收益模型择收益值最大的原语作为种子;
所述种子收益模型为,
seed_gain=w1*numin+w2*numused_in+w3*numblock+w4*crit+w5*ispecial
其中,numin为作为种子的原语的输入引脚数与所有原语中最大输入引脚数的比值,numused_in为作为种子的原语使用的输入引脚数与原语的输入引脚数的比值,numblock为作为种子的原语所在分子内的原语数与最大分子内原语数量的比值,crit为原语引脚的延时,ispecial用于判断当前原语是否为特殊原语,w1、w2、w3、w4、w5为权值;,其中w1、w2、w3、w4、w5分别为0.5、0.2、0.2、0.1和0.1。
根据所述种子收益模型,选择收益值最大的原语作为种子。
5)根据待装箱Tile与原语之间的连接关系使用不同的装箱收益模型;
所述装箱收益模型分别为,与所述待装箱Tile直接连接的原语装箱收益模型、与所述待装箱Tile通过特殊原语间接连接的原语装箱收益模型、与所述待装箱Tile通过普通原语间接连接的原语装箱收益模型、所述待装箱Tile通过高扇出连接的原语装箱收益模型;
构建装箱收益模型,用于表示待装箱的Tile周围的原语吸收进Tile之后对电路的影响。原语与Tile的连接关系有三种:直接连接、间接连接以及高扇出连接。直接连接是指原语与Tile直接相连并且相连的网络扇出小。原语与Tile没有直接相连,但是都与同一个Tile相连,此类连接关系为间接连接。高扇出连接是指原语与Tile直接相连但相连的网络扇出大。
参照图2,假设LUT1为种子,组成了待装箱Tile。FF1与Tile直接连接,FF3与Tile是高扇出连接,FF6与FF5与Tile是间接连接。若RAM为特殊原语,则FF6是通过特殊Tile与待装箱Tile间接连接,FF5是通过普通Tile与待装箱Tile间接连接。
所述装箱收益模型根据Tile与原语的连接关系分为4类。第一类为与当前Tile直接连接的原语,模型为
其中nets(p,B)是分子p与当前Tile结构B的共享节点数量,而connections(p,B)和p的引脚与B的连接关系紧密关联,公式如下
其中ext(p,B)是p与TileB相连的引脚连接的原语中未装箱的数量,packed(p)为p与TileB相连的引脚连接的原语中已装入其它Tile的数量。
第二类为与当前Tile通过特殊原语间接连接的原语。当前Tile与原语通过特殊Tile间接连接的方式有三种。一是通过同一个port间接连接,如图3中FF1。二是通过不同port的引脚,但引脚方向相同的原语,如图3中FF2。三是通过不同port的引脚且引脚方向不同的原语,如图3中LUT1。
通过特殊Tile间接连接的原语模型为
Aff=wport*numport+wdir*numdir+wrev*numrev
其中,wport为通过同一个port间接连接原语的权重,wdir为间接连接的引脚方向相同但不属于同一个port的原语权重,wrev为间接连接的引脚方向不同的原语的权重,numport,numdir和numrev分别为三种间接连接原语的连接次数。wdir公式如下
其中,ndir为正整数。
第三类为与当前Tile通过普通原语间接连接的原语,模型为
Aff=windir*numindir
其中windir为原语与待装箱Tile通过普通Tile间接连接的权重,numindir为原语与待装箱Tile通过普通Tile间接连接的个数。式中,windir取值0.003。
第四类为高扇出连接的原语。当直接连接和间接连接的原语均被装箱且当前Tile的限制条件还未满足时,装箱引擎会将高扇出的原语放入当前Tile中。
根据所述装箱收益模型,不断选择收益值最大的原语吸收进当前Tile,直到Tile的限制条件不再满足或者周围的原语均被装箱时结束。
6)引脚利用率判断,以确定当前Tile的引脚利用率,若符合要求返回步骤3)。
在实际使用中,DSP和RAM不同端口往往连接着不同功能的电路,同一端口间接连接的电路关联性较强。根据DSP和RAM在应用电路中的特性,装箱引擎可以将通过DSP和RAM间接连接的电路进行优先级划分。装箱主要针对CLB中的原语进行打包。电路中RAM和DSP的比重高,会使其周围原语装箱时选择变少,尤其对于含有加法器的CLB,进而导致资源消耗和关键路径延时增加。因此本实施例要求电路中DSP、RAM以及加法器总占比不超过20%。
如图4所示,左侧坐标为电路中DSP、RAM和加法器的比重,右侧坐标为关键路径延时的优化率。在图4中DSP、RAM以及加法器的占比小于20%的12个电路中,有11个电路的关键路径延时都有优化;占比超过20%的8个电路中,有4个电路关键路径延时有增加。以上比较均较于VTR8.0的算法,关键路径延时降低了。
从图5和图6可以看出,在测试集中,符合特殊原语条件的电路在wport为0.03,wdir为0.005,wrev为0.001时关键路径延时取得较优结果。表1为本发明装箱方法与VTR8.0在布局布线后的结果对比,其中的电路均为符合特殊原语适用条件的电路,相较于VTR8.0,本发明在资源消耗和运行时间少量增长的代价下,关键路径延时平均降低了8.45%。对不符合特殊原语条件的电路,本发明不改进DSP和RAM周围的原语的装箱优先级,所以资源消耗以及关键路径延时与VTR8.0相同。
表1本发明装箱方法与VTR8.0在布局布线后的结果对比

Claims (3)

1.一种用于FPGA芯片的装箱方法,其特征在于执行如下步骤:
1)归类特殊原语,将FPGA中的用户网表中符合特殊原语判定条件的DSP和RAM归类为特殊原语;
所述特殊原语判定条件,
其中numDSP为用户网表中DSP的数量,numRAM为用户网表中RAM的数量,numadder为用户网表中加法器的数量,numtotal为用户网表中原语的总数量,thre为阈值;
2)预处理,将部分原语打包为分子;
3)判断是否有未装箱的原语,若无则结束,若有则下一步;
4)通过种子收益模型择收益值最大的原语作为种子;
所述种子收益模型为,
seed_gain=w1*numin+w2*numused_in+w3*numblock+w4*crit+w5*ispecial
其中,numin为作为种子的原语的输入引脚数与所有原语中最大输入引脚数的比值,numused_in为作为种子的原语使用的输入引脚数与原语的输入引脚数的比值,numblock为作为种子的原语所在分子内的原语数与最大分子内原语数量的比值,crit为原语引脚的延时,ispecial用于判断当前原语是否为特殊原语,w1、w2、w3、w4、w5为权值;
5)根据待装箱Tile与原语之间的连接关系使用不同的装箱收益模型;
所述装箱收益模型分别为,与所述待装箱Tile直接连接的原语装箱收益模型、与所述待装箱Tile通过特殊原语间接连接的原语装箱收益模型、与所述待装箱Tile通过普通原语间接连接的原语装箱收益模型、所述待装箱Tile通过高扇出连接的原语装箱收益模型;
6)引脚利用率判断,若符合要求返回步骤3)。
2.根据权利要求1所述的用于FPGA芯片的装箱方法,其特征在于:步骤4)中的所述w1、w2、w3、w4、w5分别为0.5、0.2、0.2、0.1和0.1。
3.根据权利要求1所述的用于FPGA芯片的装箱方法,其特征在于:所述FPGA芯片中DSP、RAM以及加法器的总占比小于20%。
CN202211066822.0A 2022-09-01 2022-09-01 一种用于fpga芯片的装箱方法 Active CN115392168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211066822.0A CN115392168B (zh) 2022-09-01 2022-09-01 一种用于fpga芯片的装箱方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211066822.0A CN115392168B (zh) 2022-09-01 2022-09-01 一种用于fpga芯片的装箱方法

Publications (2)

Publication Number Publication Date
CN115392168A CN115392168A (zh) 2022-11-25
CN115392168B true CN115392168B (zh) 2023-07-25

Family

ID=84124756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211066822.0A Active CN115392168B (zh) 2022-09-01 2022-09-01 一种用于fpga芯片的装箱方法

Country Status (1)

Country Link
CN (1) CN115392168B (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675309B1 (en) * 2000-07-13 2004-01-06 Xilinx, Inc. Method for controlling timing in reduced programmable logic devices
CN1786968A (zh) * 2005-12-08 2006-06-14 复旦大学 Fpga逻辑单元的功能模型和通用性逻辑单元装箱算法
US10782918B2 (en) * 2018-09-06 2020-09-22 Advanced Micro Devices, Inc. Near-memory data-dependent gather and packing
US10936286B2 (en) * 2018-11-13 2021-03-02 Microsemi Soc Corp. FPGA logic cell with improved support for counters
US11356100B2 (en) * 2019-07-12 2022-06-07 Arizona Board Of Regents On Behalf Of Arizona State University FPGA with reconfigurable threshold logic gates for improved performance, power, and area
CN111459877B (zh) * 2020-04-02 2023-03-24 北京工商大学 基于FPGA加速的Winograd YOLOv2目标检测模型方法
CN114329659A (zh) * 2021-12-14 2022-04-12 山东芯慧微电子科技有限公司 一种基于vpr的预装箱方法

Also Published As

Publication number Publication date
CN115392168A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
Lemieux et al. Using sparse crossbars within LUT
US6080201A (en) Integrated placement and synthesis for timing closure of microprocessors
Zhang et al. Cache configuration exploration on prototyping platforms
US9740808B2 (en) Method and apparatus for implementing a system-level design tool for design planning and architecture exploration
US10102172B1 (en) Method and apparatus for performing a single pass compilation for systems with dynamically reconfigurable logic blocks
CN111079362A (zh) 一种利用层次化信息的并行综合算法
US8042083B2 (en) Methods and systems for FPGA rewiring
US8954906B1 (en) Method and apparatus for performing parallel synthesis on a field programmable gate array
US8504970B1 (en) Method and apparatus for performing automated timing closure analysis for systems implemented on target devices
Roy-Neogi et al. Multiple FPGA partitioning with performance optimization
CN104182556A (zh) 芯片的布局方法
US8578306B2 (en) Method and apparatus for performing asynchronous and synchronous reset removal during synthesis
Vishnu et al. Clock tree synthesis techniques for optimal power and timing convergence in soc partitions
CN115392168B (zh) 一种用于fpga芯片的装箱方法
Xiong et al. Constraint driven I/O planning and placement for chip-package co-design
Srinivasan et al. Placement optimization for NoC-enhanced FPGAs
CN109800468B (zh) 一种基于寄存器重定时的多流水级时序电路装箱操作方法
Minz et al. Block-level 3-D global routing with an application to 3-D packaging
Lee et al. Automated generation of all-digital I/0 library cells for system-in-package integration of multiple dies
Khoozani et al. Titan 2.0: Enabling Open-Source CAD Evaluation with a Modern Architecture Capture
Hatirnaz et al. Early wire characterization for predictable network-on-chip global interconnects
US20230205960A1 (en) Design for testability circuitry placement within an integrated circuit design
Pentapati et al. Tier partitioning and flip-flop relocation methods for clock trees in monolithic 3D ICs
US10331827B1 (en) Method and apparatus for processing data and performing crosstalk simulation
Isshiki et al. High-performance datapath implementation on field-programmable multi-chip module (FPMCM)

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