CN101246511A - 可编程逻辑器件快速逻辑块映射方法 - Google Patents
可编程逻辑器件快速逻辑块映射方法 Download PDFInfo
- Publication number
- CN101246511A CN101246511A CNA2008100340351A CN200810034035A CN101246511A CN 101246511 A CN101246511 A CN 101246511A CN A2008100340351 A CNA2008100340351 A CN A2008100340351A CN 200810034035 A CN200810034035 A CN 200810034035A CN 101246511 A CN101246511 A CN 101246511A
- Authority
- CN
- China
- Prior art keywords
- circuit
- primitive
- centerdot
- plb
- fpga
- 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.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明属于电子技术领域,具体为一种FPGA快速逻辑块映射方法。提出对可编程逻辑单元分层分类映射以降低算法的复杂度、引入匹配度系数以提高算法的性能,得到了一种高性能的快速FPGA逻辑块映射方法。实验数据表明,本发明的性能与传统的子图同构匹配映射算法相比提高了12.59%,算法复杂度大大降低,由O(mn)降至O(mn/2),可广泛地应用于现代主流FPGA逻辑单元结构的映射,并极大地提高FPGA逻辑块映射模块在整个FPGA CAD流程中的运行效率及算法可扩展性。这种高性能快速FPGA逻辑块映射方法还可以指导FPGA可编程逻辑单元硬件结构设计,使得硬件设计工程师在流片前的就可以预估可编程逻辑单元的结构优劣,大大缩短设计周期,提高新器件的设计成功率,节约设计成本。
Description
技术领域
本发明属于电子技术领域(Electronic Design Automation,EDA),具体涉及一种可编程逻辑器件(FPGA)结构的软件设计及实现方法。
技术背景
FPGA设计包括其芯片结构设计和配套软件系统设计两大部分,其中软件系统设计必须与芯片硬件结构相匹配。一套高效的CAD系统是使用FPGA的必要条件。在传统的FPGA设计中,不同的硬件结构往往配以不同的软件算法:如专用映射算法lut2xc3k用以处理XILINX XC3000 FPGA可编程逻辑块PLB(Programming Logic Block),专用映射算法lut2xc4k用以处理XILINX XC4000 FPGA可编程逻辑单元,这两种专用算法被集成在一个称为RASP(Rapid System Prototyping)系统中【1】。这种不同的硬件结构配以不同的专用映射算法的实现策略带来的直接好处是可以得到比较好的性能,但因可重用性差,往往造成软件系统的设计周期长、开发成本昂贵,严重制约着FPGA新器件的上市时间。另一方面,随着FPGA应用的不断深入以及CMOS工艺技术的不断进步,主流FPGA可编程逻辑单元可实现的逻辑功能越来越完备,各种高性能、高容量的FPGA器件结构不断涌现。图1是传统的XC4000系列可编程逻辑结构,图2是Spartan II系列可编程逻辑单元结构。图1和图2比较不难发现,Spartan II系列器件不但包含了XC4000系列所包含的LUT、DFF、MUX和快速进位链等常规元件,而且还含F5MUX,AND门和XOR门等为实现特殊功能而增加的元件,包含的电路元件种类增多、可实现的组合和时序逻辑功能更加丰富,相应地对算法设计提出了更高的要求。之前针对于特定结构的专用逻辑单元映射工具【2】已不能适应现在新型的硬件结构。基于数学中图模式匹配的概念,提出了一种对含LUT、DFF、MUX和快速进位链的FPGA可编程逻辑单元都能有较好适应性的映射算法FDUMAP【3】,从而在算法通用性方面取得了一定的突破。但存在的问题是,随着逻辑单元基本功能元件种类的增加,该算法的复杂度成指数规律增加,在运行时间上是不可接受的。另外,该算法在性能上也无法与专用映射算法相比拟。
发明内容
本发明的目的在于提出一种能够提高逻辑块映射性能,极大地缩短映射模块的运行时间的FPGA结构的高性能快速逻辑块映射方法。
基于上述的发明目的,本发明提出匹配度的概念,以提高逻辑块映射的性能;并采用对电路进行分层,即将时序电路部分和组合电路部分分开处理的方法,以提高映射的速度。
本发明针对现代主流FPGA逻辑单元结构特征进行了共性分析【4,5】,提取出具有共性的元件,如:LUT、DFF、MUX,F5MUX,AND门和XOR门,提出的映射方法不但能处理含LUT、DFF、MUX和快速进位链的逻辑单元,而且还能处理现代FPGA逻辑单元中经常出现的、专门为实现特殊电路功能的元件如F5MUX,AND门和XOR门等,因而具有更广泛的适应性,能很好地处理现代FPGA逻辑单元的结构特征,并且适用于任意规模,包含任意种元件类型的新型芯片结构。为了降低算法的复杂度,本文提出了对可编程逻辑单元分层、分类的映射思想;为了提高逻辑单元的映射效率,在映射过程中引入了匹配度系数,从而在算法的复杂度和性能方面得到了大幅度的提高,使映射模块的运行时间大大缩短。
子图同构【6,7】是一个经典的数学问题,就是在一个给定的目标图中,找出另一个样本图同构的像。该问题是NP完全问题,若目标图中的顶点个数是m,样本图中的顶点个数是n(m>n),则试验次数的最坏情况是O(mn)。由此可见,要降低子图同构算法的复杂度,有两个途径:一是减少样本图中的顶点个数;二是减少目标图中的顶点个数。在提高性能方面,这里采用一个目标函数,来记录用户电路的某些部分和一个功能电路的匹配度,找到整个用户电路的最大的匹配度时用可编程逻辑单元块PLB将用户电路进行替换。
A)降低复杂度方法
下面将针对降低子图同构算法复杂度的两个方面——减少样本图和目标图中顶点个数进行改进。
(1)减少样本图的顶点个数
对于一个复杂度为O(mn)的算法来说,减少样本图的顶点个数n,就可以降低该算法的复杂度。这里n的个数就是组成可编程逻辑单元的基本元件数。分析考虑到现存的主流FPGA的PLB硬件结构特点,在映射的时候将与DFF无关的组合电路部分和与DFF有关的时序电路部分分开,先考虑组合电路部分的映射,组合电路映射完成之后,将DFF映射到与他的输入端所接的LUT相应的PLB中去。采用这种分类映射的方法,样本图的顶点个数将大大减少,从而有效地降低了其复杂度。
(2)减少目标图的顶点个数
对于一个复杂度为O(mn)的算法来说,底数m对整个算法复杂度起着主导的作用。
对于现存的FPGA的逻辑单元结构进行研究,发现一个逻辑单元往往仅包含单层LUT,所以,在这里引入分层的思想:将同层次LUT的电路划分为一个层次,从而进行各个层次的PLB映射。图3是对一个简单的用户电路进行层次划分的示意图。
B)提高PLB的利用率
上面提到的一些做法是基于时间性能考虑,下面主要研究基于映射结果优劣的考虑。
在这里提出匹配度M(Matching Degree)的概念,即一个基本元件与一个功能电路的匹配系数。在考虑将某几个元件映射到一个PLB中去时,会同时考虑这几个元件与该功能电路的匹配度,只有当这几个元件的匹配度之和达到最大时,才将其映射至该PLB中去。这样可以避免最终映射结果PLB的个数的增加、性能变差。具体如下:
设线网e的权重设置为:
其中n表示和线网e连接的引脚数目。
定义每个原语的度D(degree)为和该原语相连线网的个数,每个原语的分离度S(separation)定义为所有和该原语相连线网所含的引脚数的平均值。每个原语的连接因子c(connectivity factor)定义为原语的分离度和原语的度之比,即:
比较小的c值表示有较多的原语与给定的原语紧密连接。
选择那些和PLB连接最紧密的原语映射到PLB内,这些原语被装入到PLB之后,将有较多的线网被吸收。通过原语单元L和PLB单元P之间相连的线网e来量化它们之间连接的紧密程度,即:
A(L,P,e)=w(e)(1+ae)..............(3)
其中,ae表示该线网有多少个引脚在PLB之内。本文的目的是为了减少最后PLB的个数。目标函数(3)体现了线网对原语的增益与线网的权重成正比关系。该线网上所含的引脚在PLB内部的越多,那么就表示该线网和PLB内部的原语连接的数目越多,也就是线网和PLB连接越紧密。
如果原语单元L和PLB单元P有多条线网相连的话,那么PLB单元对原语的吸引计算公式为:
将PLB单元P对原语单元L的直接吸引转化为该原语被映射到当前PLB的概率,即匹配度M的概念。
计算每个PLB的匹配度之和,迭代计算并求出匹配度的最大值,至此才用使∑M值最大的PLB集合来覆盖用户电路。
根据上述内容,本发明的实现步骤归纳如下:
1将电路中的组合电路部分和时序电路部分分开;
2存储时序电路部分;
3对组合电路部分进行功能电路的匹配;
4将时序电路部分加入到匹配后的电路中;
5结束。
其中第3步对组合电路部分进行匹配的具体步骤为:
3.1将原始电路的输出端口集作为待匹配子电路的输出端口集;
3.2从待匹配子电路的输出端口集出发,找到该层子电路及该层子电路的输入端口集;
3.3对该层子电路进行功能电路匹配;
3.4检查该子电路的输入端口集是否是原始电路的输入端口集的子集,是的话,转到步骤3.6;
3.5将该层子电路的输入端口集置为下层待匹配子电路的输出端口集,转到步骤3.2;
3.6结束。
其中3.3对子电路进行匹配的具体步骤为:
3.3.1将该层子电路的最大匹配度置为0;
3.3.2搜索待匹配子电路,找到所有的中间线网,按照该线网的输入输出端口所对应的元件对该线网进行重标记;组成待匹配电路的路径集;
3.3.3组合待匹配电路中的路径集,首先按照贪婪算法,寻找最大的可匹配的路径子集进行匹配,循环进行,直至所有的路径都被匹配;
3.3.4计算该层子电路的匹配度;
3.3.5检查计算所得的匹配度是否为最大,否的话,转到步骤3.3.3;
3.3.6存储匹配好的所有编程点信息;
3.3.7结束。
技术效果
本发明所提出的技术方案已经用C++编程语言实现。实验证明,本方法映射结果与FDUMAP相比,PLB的使用总数减少了12.59%,相应的PLB的利用率大大增加了。和针对XC4000硬件结构的专用的逻辑单元映射算法lut2xc4k相比【1】,该方法在PLB的使用率上提高了0.46%;而和针对SpartanII结构的专用逻辑单元通用工具ISE MAP相比,该方法在Slice的使用率上提高了4.04%;由此可见,本发明提出的方法可以和专用的逻辑单元映射算法相媲美。在速度方面,由以前的的复杂度O(mn)降至其平方根的时间O(mn/2),显然这种运行时间上的降低是显著的。本发明
附图说明
图1 XC4000可编程逻辑单元结构。
图2 Spartan II可编程逻辑块结构(Slice)。
图3 对电路进行层次划分的示意。
图4 原始用户电路示例。
图5 图4中将时序电路部分去除后的电路示意图
同时也是图2所示的SpartanII可编程逻辑块结构的一种功能电路。
图6 图2所示的SpartanII可编程逻辑块结构的另外一种功能电路。
具体实施方式
图4所示为一个用户电路的简单用例,在这里我们以SpartanII系列的芯片结构为例介绍一下整个匹配映射的过程。
首先将用户电路中的时序电路部分和组合电路部分分开,存储时序电路部分信息。图5所示为将图4所示的用户电路中的时序电路部分去除后的结果示意图。
下一步是将用户电路中剩余的组合电路部分和功能电路进行匹配映射。
图5同时也是SpartanII系列芯片的一个功能电路,对比图2和图5即可知。图6所示为SpartanII系列芯片的另一个功能电路。
在进行匹配的过程中,1)我们可以将用户电路用一个如图5所示的SpartanII逻辑块单元进行实现,2)也可以用两个如图6所示的逻辑块单元进行实现。显然,第一种情况的PLB利用率高于第二种,同时PLB的数目也大大减小,所以第一种情况是我们理想的结果。通过加入匹配度M的计算,我们得到第一种情况的M大于第二种情况下的M,所以在计算好匹配度之后,我们采用匹配度较大的第一种解决方案作为最终匹配映射的结果。这就是我们提出匹配度M的意义。
参考文献:
[1]J.Cong,and Y.Hwang,″Boolean Matching for LUT-based Logic Blocks with Applicationto Architecture Evaluation and Technology Mapping,”[J].IEEE Trans.on CAD of IC &System,Vol.20,No.9,pp.1077-1090,Sept.2001.
[2]Jason Cong,John Peck and Yuzheng Ding,“RASP:A General Logic Synthesis System forSRAM-based FPGAs”[C].Proc.ACM 4th Int’l Symp.On FPGA,Feb.1996.
[3]倪刚,来金梅,童家榕.一种基于图模式匹配的逻辑单元映射算法[J].计算机辅助设计与图形学报,Vol.18,No.12,Dec.,2006.
[4]Xilinx Co..Virtex-II Pro TM X Platform FPGAs:Complete Data Sheet.Mar.2004.
[5]Altera Co..Stratix II Device Handbook,Volume 1.Feb.2004.
[6]J.R.Ullmann.An algorithm for subgraph isomorphism[J].J.ACM,23(1):31-42,1976.
[7]Gabriel Valiente,Conrado Martinez.An algorithm for graph pattern-matching[C].In Proc.Fourth South American Workshop on String Processing,volume 8 of International InformaticsSeries,Carleton University Press(1997),pp.180--197.
Claims (2)
1、一种可编程逻辑器件的快速逻辑块映射方法,其特征在于具体步骤如下:
(1)将电路中的组合电路部分和时序电路部分分开;
(2)存储时序电路部分;
(3)对组合电路部分进行功能电路的匹配;
(4)将时序电路部分加入到匹配后的电路中;
(5)结束;
其中第(3)步对组合电路部分进行匹配的具体步骤为:
(3.1)将原始电路的输出端口集作为待匹配子电路的输出端口集;
(3.2)从待匹配子电路的输出端口集出发,找到该层子电路及该层子电路的输入端口集;
(3.3)对该层子电路进行功能电路匹配;
(3.4)检查该子电路的输入端口集是否是原始电路的输入端口集的子集,是的话,转到步骤(3.6);
(3.5)将该层子电路的输入端口集置为下层待匹配子电路的输出端口集,转到步骤(3.2);
(3.6)结束;
其中第(3.3)步对子电路进行匹配的具体步骤为:
(3.3.1)将该层子电路的最大匹配度置为0;
(3.3.2)搜索待匹配子电路,找到所有的中间线网,按照该线网的输入输出端口所对应的元件对该线网进行重标记;组成待匹配电路的路径集;
(3.3.3)组合待匹配电路中的路径集,首先按照贪婪算法,寻找最大的可匹配的路径子集进行匹配,循环进行,直至所有的路径都被匹配;
(3.3.4)计算该层子电路的匹配度;
(3.3.5)检查计算所得的匹配度是否为最大,否的话,转到步骤(3.3.3);
(3.3.6)存储匹配好的所有编程点信息;
(3.3.7)结束。
2、根据权利要求1所述的可编辑逻辑器件的快速逻辑块映射方法,其特征在于所述计算子电路匹配度的步骤为:
设线网e的权重设置为:
其中n表示和线网e连接的引脚数目;
定义每个原语的度D为和该原语相连线网的个数,每个原语的分离度S定义为所有和该原语相连线网所含的引脚数的平均值。每个原语的连接因子c定义为原语的分离度和原语的度之比,即:
比较小的c值表示有较多的原语与给定的原语紧密连接;
通过原语单元L和PLB单元P之间相连的线网e来量化它们之间连接的紧密程度,即:
A(L,P,e)=w(e)(1+ae)..............(3)
其中,ae表示该线网有多少个引脚在PLB之内;
原语单元L和PLB单元P有多条线网相连,那么PLB单元对原语的吸引计算公式为:
将PLB单元P对原语单元L的直接吸引转化为该原语被映射到当前PLB的概率,即匹配度M:
再计算每个PLB的匹配度之和,迭代计算并求出匹配度的最大值,然后用使∑M值最大的PLB集合来覆盖用户电路;这里PLB为可编程逻辑块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100340351A CN101246511B (zh) | 2008-02-28 | 2008-02-28 | 可编程逻辑器件快速逻辑块映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100340351A CN101246511B (zh) | 2008-02-28 | 2008-02-28 | 可编程逻辑器件快速逻辑块映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101246511A true CN101246511A (zh) | 2008-08-20 |
CN101246511B CN101246511B (zh) | 2010-12-15 |
Family
ID=39946962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100340351A Expired - Fee Related CN101246511B (zh) | 2008-02-28 | 2008-02-28 | 可编程逻辑器件快速逻辑块映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101246511B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426538A (zh) * | 2011-08-26 | 2012-04-25 | 深圳市迪威视讯股份有限公司 | 一种中断响应装置及其方法 |
CN105426314A (zh) * | 2014-09-23 | 2016-03-23 | 京微雅格(北京)科技有限公司 | 一种fpga存储器的工艺映射方法 |
CN105718679A (zh) * | 2016-01-22 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种fpga的资源布局方法及装置 |
CN106528927A (zh) * | 2016-09-29 | 2017-03-22 | 北京深维科技有限公司 | 输入输出i/o工艺映射方法和装置 |
CN110313002A (zh) * | 2015-12-28 | 2019-10-08 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
CN114741784A (zh) * | 2022-03-28 | 2022-07-12 | 大连理工大学 | 一种圆柱壳加筋结构优化方法、装置、计算机和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003034289A2 (en) * | 2001-10-16 | 2003-04-24 | Leopard Logic Inc. | Field programmable gate array core cell with efficient logic packing |
US7111273B1 (en) * | 2003-07-03 | 2006-09-19 | Xilinx, Inc. | Softpal implementation and mapping technology for FPGAs with dedicated resources |
-
2008
- 2008-02-28 CN CN2008100340351A patent/CN101246511B/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426538A (zh) * | 2011-08-26 | 2012-04-25 | 深圳市迪威视讯股份有限公司 | 一种中断响应装置及其方法 |
CN105426314A (zh) * | 2014-09-23 | 2016-03-23 | 京微雅格(北京)科技有限公司 | 一种fpga存储器的工艺映射方法 |
CN105426314B (zh) * | 2014-09-23 | 2018-09-11 | 京微雅格(北京)科技有限公司 | 一种fpga存储器的工艺映射方法 |
CN110313002A (zh) * | 2015-12-28 | 2019-10-08 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
CN110313002B (zh) * | 2015-12-28 | 2023-02-24 | 京微雅格(北京)科技有限公司 | 一种基于plb的fpga芯片布线方法 |
CN105718679A (zh) * | 2016-01-22 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种fpga的资源布局方法及装置 |
CN105718679B (zh) * | 2016-01-22 | 2018-10-26 | 深圳市紫光同创电子有限公司 | 一种fpga的资源布局方法及装置 |
CN106528927A (zh) * | 2016-09-29 | 2017-03-22 | 北京深维科技有限公司 | 输入输出i/o工艺映射方法和装置 |
CN106528927B (zh) * | 2016-09-29 | 2019-07-30 | 京微齐力(北京)科技有限公司 | 输入输出i/o工艺映射方法和装置 |
CN114741784A (zh) * | 2022-03-28 | 2022-07-12 | 大连理工大学 | 一种圆柱壳加筋结构优化方法、装置、计算机和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101246511B (zh) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246511B (zh) | 可编程逻辑器件快速逻辑块映射方法 | |
US7039882B2 (en) | Technology dependent transformations for Silicon-On-Insulator in digital design synthesis | |
US8832614B2 (en) | Technology mapping for threshold and logic gate hybrid circuits | |
Kocan et al. | Logic modules with shared SRAM tables for field-programmable gate arrays | |
Benini et al. | A survey of Boolean matching techniques for library binding | |
CN107784136B (zh) | 一种标准单元库的创建方法及系统 | |
Eldafrawy et al. | FPGA logic block architectures for efficient deep learning inference | |
US20060161413A1 (en) | Methods for fast and large circuit simulation | |
US8082529B2 (en) | Method and system for mapping a boolean logic network to a limited set of application-domain specific logic cells | |
Li et al. | A novel SAT all-solutions solver for efficient preimage computation | |
CN112036104A (zh) | 一种基于rtl网表的有限状态机识别及提取方法 | |
US11443089B1 (en) | Timing verification of non-standard library blocks | |
Pistorius et al. | Benchmarking method and designs targeting logic synthesis for FPGAs | |
CN110070182B (zh) | 适合人工智能的平台芯片及其制造和设计方法 | |
CN116050311B (zh) | 一种基于完备仿真的组合运算电路等价性验证方法及系统 | |
US8904318B1 (en) | Method and apparatus for performing optimization using don't care states | |
CN112862080B (zh) | EfficientNet的注意力机制的硬件计算方法 | |
US7543265B1 (en) | Method for early logic mapping during FPGA synthesis | |
Chrzanowska-Jeske et al. | Mapping of symmetric and partially-symmetric functions to the CA-type FPGAs | |
Reddy et al. | Sensor Signal Processing using High-Level Synthesis and Internet of Things with a Layered Architecture | |
US7191412B1 (en) | Method and apparatus for processing a circuit description for logic simulation | |
Wanna et al. | Multiplier Optimization via E-Graph Rewriting | |
Yan et al. | A reconfigurable heterogeneous computing-hardware design with Aimed VGG16 acceleration | |
US20240176943A1 (en) | Auto-creation of custom standard cells | |
Jabir et al. | GfXpress: A Technique for Synthesis and Optimization of $\hbox {GF}(2^{m}) $ Polynomials |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101215 Termination date: 20140228 |