当前位置: 首页 > 专利查询>复旦大学专利>正文

可编程逻辑器件快速逻辑块映射方法技术

技术编号:2826268 阅读:322 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于电子技术领域,具体为一种FPGA快速逻辑块映射方法。提出对可编程逻辑单元分层分类映射以降低算法的复杂度、引入匹配度系数以提高算法的性能,得到了一种高性能的快速FPGA逻辑块映射方法。实验数据表明,本发明专利技术的性能与传统的子图同构匹配映射算法相比提高了12.59%,算法复杂度大大降低,由O(m↑[n])降至O(m↑[n/2]),可广泛地应用于现代主流FPGA逻辑单元结构的映射,并极大地提高FPGA逻辑块映射模块在整个FPGACAD流程中的运行效率及算法可扩展性。这种高性能快速FPGA逻辑块映射方法还可以指导FPGA可编程逻辑单元硬件结构设计,使得硬件设计工程师在流片前的就可以预估可编程逻辑单元的结构优劣,大大缩短设计周期,提高新器件的设计成功率,节约设计成本。

【技术实现步骤摘要】

本专利技术属于电子
(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的权重设置为:w(e)=1n2···(1)]]>其中n表示和线网e连接的引脚数目。定义每个原语的度D(degree)为和该原语相连线网的个数,每个原语的分离度S(separation)定义为所有和该原语相连线网所含的引脚数的平均值。每个原语的连接因子c(connectivity factor)定义为原语的分离度和原语的度之比,即:c=SD···(2)]]>比较小的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单元对原语的吸引计算公式为:A(L,P)=Σ{e|L∈e,P∩e∉φ本文档来自技高网
...

【技术保护点】
一种可编程逻辑器件的快速逻辑块映射方法,其特征在于具体步骤如下:(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)结束。...

【技术特征摘要】
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....

【专利技术属性】
技术研发人员:来金梅蔡丹童家榕
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1