CN103886118B - 一种针对集成电路异质型逻辑单元的重综合方法 - Google Patents

一种针对集成电路异质型逻辑单元的重综合方法 Download PDF

Info

Publication number
CN103886118B
CN103886118B CN201210559839.XA CN201210559839A CN103886118B CN 103886118 B CN103886118 B CN 103886118B CN 201210559839 A CN201210559839 A CN 201210559839A CN 103886118 B CN103886118 B CN 103886118B
Authority
CN
China
Prior art keywords
cut
function
input
dsd
logical block
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
CN201210559839.XA
Other languages
English (en)
Other versions
CN103886118A (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 UPTOPS DESIGN TECHNOLOGIES Inc
Institute of Microelectronics of CAS
Original Assignee
BEIJING UPTOPS DESIGN TECHNOLOGIES Inc
Institute of Microelectronics of CAS
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 UPTOPS DESIGN TECHNOLOGIES Inc, Institute of Microelectronics of CAS filed Critical BEIJING UPTOPS DESIGN TECHNOLOGIES Inc
Priority to CN201210559839.XA priority Critical patent/CN103886118B/zh
Publication of CN103886118A publication Critical patent/CN103886118A/zh
Application granted granted Critical
Publication of CN103886118B publication Critical patent/CN103886118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种针对集成电路异质型逻辑单元的重综合方法,包括:逆拓扑序排列工艺映射后网表中所有节点;计算每个节点的cut;计算每个cut的函数f(X);对函数f(X)进行分解;用功能性等价的LUTs结构与函数f(X)进行布尔匹配。利用本发明,能充分利用异质型逻辑单元中所有逻辑资源,从而减少所使用的LUT数。本发明能够广泛应用于工艺映射后重综合,能够在不损害电路延时的情况下去减小电路面积,降低设计成本,具有广阔的市场前景和应用价值。

Description

一种针对集成电路异质型逻辑单元的重综合方法
技术领域
本发明涉及微电子领域中的集成电路设计和电子设计自动化技术领域,特别涉及一种针对集成电路异质型逻辑单元的重综合方法。
背景技术
近年来,现场可编程门阵列(Field Programmable Gate Array,FPGA)在速度、容量及功能性方面有显著提升,因此在诸多应用领域逐渐取代专用集成电路(applicationspecific integrated circuit,ASIC),FPGA的应用和广泛普及为数字系统的设计带来极大的灵活性。当前大多数FPGA的逻辑块结构(configurable logic block,CLB)基于查找表(lookup table,LUT),一个k输入LUT(k-LUT)包含有2k个静态存储器(static randomaccess memory,SRAM)单元,可实现任意输入数不大于k的逻辑。为进一步提高CLB的配置灵活性,目前商用FPGA的CLB结构增加了很多辅助单元用来更高效的实现各种功能。比如使用MUX和XOR来辅助实现快速进位链,使用MUX来组合宽输入的LUT等。
以Xilinx公司的CLB结构为例,1个CLB包含两个逻辑片(SLICE),每个SLICE包含两个基本逻辑单元(logic cell,LC),每个LC由一个k-LUT和一个时序元件组成,如图1所示[1]。
对于一个LUT基CLB结构,假如CLB/SLICE能实现任意k输入函数,那么定义k的最大值为CLB的特征数值。对于变量数大于特征数值k的函数,定义该函数为相对于CLB/SLICE的宽函数(wide funtion)。
以k-LUT的k值等于4为例,如图1所示,每个SLICE中含有两个LUT(F和G),1个2选1MUX(multiplexer,多路选择器)H,用于将SLICE中的两个4-LUT组合成5-LUT,则该SLICE的特征数值k为5,每个SLICE可实现输入数不大于5的任意逻辑,或者1个4选1MUX,或者输入数在6到9之间的部分逻辑(宽函数)。类似的,2选1MUX I将两个H的输出组合,则CLB的特征数值k为6,使得1个CLB可以实现输入数不大于6的任意逻辑,或者1个8选1MUX,或者输入数介于7到19之间的部分宽函数。
由几个k-LUT组成的网表通常被称作LUTs结构(LUT structures),如图2所示。从广义上讲,SLICE和CLB也属于LUTs结构。有效地判断完全定义的宽函数能否用LUTs结构实现,即宽函数与LUTs结构之间的布尔匹配问题,是FPGA重综合算法中的核心问题。
目前国内外学术界对FPGA工艺映射算法,大多集中在将一般的布尔逻辑网表映射为由k-LUT组成的网表,k的实际数值由实际的工艺库决定。但是这些算法都无法有效地利用如图1所示的现代FPGA芯片的异构特性,因此需要在已有基于LUT映射方法的基础上进行扩充或改进。
参考文献:
Xilinx.Virtex Data Sheets[EB/OL].(2002-12-09)[2012-08-14].http://china.xilinx.com/support/documentation/data_sheets/ds003.pdf.
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种针对集成电路异质型逻辑单元的重综合方法,以解决工艺映射算法无法有效利用CLB结构里所有逻辑资源的问题。
(二)技术方案
为达到上述目的,本发明提供了一种针对集成电路异质型逻辑单元的重综合方法,包括:
步骤A,逆拓扑序排列工艺映射后网表中所有节点;
步骤B,计算每个节点的cut;
步骤C,计算每个cut的函数f(X);
步骤D,对函数f(X)进行分解;
步骤E,用功能性等价的LUTs结构与函数f(X)进行布尔匹配。
上述方案中,所述步骤A包括:对工艺映射后的网表进行分析,将所有LUTs节点从输出到输入按逆拓扑顺序排列,其中,所述输出是原始输出和触发器的输入,所述输入是原始输入和触发器的输出。
上述方案中,步骤B中所述计算每个节点的cut包括:
计算出每个节点只包含根节点的cut,然后新的cut的获得方法是从当前存在的cut往原始输入方向扩展;
计算所有cut的权重cutWeight,计算方法是:
cutWeight(c)=[numCovered(c)-numDups(c)]/numLuts(c) 公式1
其中:
numLuts(c)=ceiling[(numLeaves(c)-1/(K-1)] 公式2
公式1中numCovered表示cut所覆盖的所有节点的数量,numDups表示cut覆盖但是不属于根节点的最大扇出自由锥(Maximum fanout freecone,MFFC)的节点的数量;公式2中numLeaves表示cut的所有叶节点的数量;
根据cutWeight对所有cut进行优先级排序,并过滤掉对重综合有益性小的cut。
上述方案中,步骤C中所述计算每个cut的函数f(X)是计算每个cut的真值表。
上述方案中,步骤D中所述对函数f(X)进行分解包括:
(a)支持集最小化,移除无意义的变量,并返回f(X)的新的支持集;
(b)基于MUX的分解;
(c)分析DSD的可能性,尝试进行DSD,计算出所有k可行的约束集,从中选出最好的约束集,最后返回DSD树;
(d)基于DSD的分解;
(e)重复上述步骤(a)到(d),直到f(X)分解完全。
上述方案中,步骤(b)中所述基于MUX的分解,是对布尔函数和SLICE/CLB之间进行布尔匹配,由香农展开式获得,具体包括:
定理1:1个SLICE能够实现f(X),当且仅当存在相对于xH∈X的香农展开式因此,给定一个宽函数,首先遍历输入集合中的每个信号,将其作为MUX的选择信号,对该信号进行香农展开,获得两个余因子的输入集合数;遍历结束后将两个余因子的输入集合总数最小的信号作为选择信号;如果香农展开式中两个余因子的输入集合分别不大于|XF|和|XG|,则可获得对于SLICE的一个匹配;如果遍历输入集合结束后,未获得对于SLICE的一个匹配,则尝试去寻求该宽函数对CLB的匹配;
定理2:f(X)不能用1个SLICE实现,而能用1个CLB实现,当且仅当存在相对于xH∈X的香农展开式
如果宽函数对SLICE的布尔匹配失败,则对f(X)的输入集合总数最小的两个余因子分别进行进一步处理,如果两个余因子的输入集合数都大于LUT的输入数,则对两个余因子分别进行香农展开,则可获得f(X)的4个子余因子;如果只有一个余因子的输入集合数大于LUT的输入数,则只对这一个余因子进行香农展开,则可获得f(X)的3个子余因子;如果获得的所有子余因子的输入集合数都不大于LUT的输入数,则获得宽函数f(X)对CLB的一个布尔匹配。
上述方案中,步骤(d)中所述的基于DSD的分解包括:如果步骤(c)得出的DSD树不为空,并且得出的约束集大小为k或k-1,则对函数f(X)进行DSD分解,分解成约束集B-sets和自由集F-sets。在DSD分解过程中一次分解出多个大小为k的约束集。
上述方案中,步骤E中所述用功能性等价的LUTs结构与函数f(X)进行布尔匹配,包括:将cut的根节点和叶节点之间形成的锥(cone),与步骤D中对函数f(X)成功进行分解后新的LUTs结构进行比较,如果新的LUTs结构比cone所包含的节点数目少,并且替换后网络的关键路径延时不会增加,则将cone替换成新的LUTs结构。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的这种针对集成电路异质型逻辑单元的重综合方法,对工艺映射后网表中的宽函数进行布尔匹配,使其在目标FPGA结构上重新实现,能充分利用集成电路异质型逻辑单元中所有逻辑资源,从而减少所使用的LUT数。
2、本发明提供的这种针对集成电路异质型逻辑单元的重综合方法,能够在不损害电路延时的情况下去减小电路面积,降低设计成本,具有广阔的市场前景和应用价值。
附图说明
图1是现有技术中包含两个SLICE的CLB结构示意图。
图2是依照本发明实施例的LUTs结构的示意图。
图3是依照本发明实施例的针对集成电路异质型逻辑单元的重综合的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于所述值。
本发明提供了一种针对集成电路异质型逻辑单元的重综合方法,包括以下步骤:
步骤A,逆拓扑序排列工艺映射后网表中所有节点;
对工艺映射后的网表进行分析,将所有LUTs节点从输出到输入按逆拓扑顺序排列,其中,所述输出是原始输出和触发器的输入,所述输入是原始输入和触发器的输出。
步骤B,计算每个节点的cut;
计算出每个节点只包含根节点的cut,然后新的cut的获得方法是从当前存在的cut往原始输入方向扩展;
计算所有cut的权重cutWeight,计算方法是:
cutWeight(c)=[numCovered(c)-numDups(c)]/numLuts(c) 公式1
其中:
numLuts(c)=ceiling[(numLeaves(c)-1/(K-1)] 公式2
公式1中numCovered表示cut所覆盖的所有节点的数量,numDups表示cut覆盖但是不属于根节点的最大扇出自由锥(Maximum fanout freecone,MFFC)的节点的数量;公式2中numLeaves表示cut的所有叶节点的数量;
根据cutWeight对所有cut进行优先级排序,并过滤掉对重综合有益性小的cut。
步骤C,计算每个cut的函数f(X);所述计算每个cut的函数f(X)是计算每个cut的真值表。
步骤D,对函数f(X)进行分解;即使用基于MUX(multiplexer,多路选择器)的分解算法和基于DSD(disjoint-support decomposition,不相交支持集分解)的分解算法来分解f(X),具体包括:
(a)支持集最小化,移除无意义的变量,并返回f(X)的新的支持集;
(b)基于MUX的分解;
(c)分析DSD的可能性,尝试进行DSD,计算出所有k可行的约束集,从中选出最好的约束集,最后返回DSD树;
(d)基于DSD的分解;
(e)重复上述步骤(a)到(d),直到f(X)分解完全。
其中,步骤(b)中所述基于MUX的分解,是对布尔函数和SLICE/CLB之间进行布尔匹配,由香农展开式获得,使用f(X)表示布尔函数f(x1,x2,...,xn),其中X={x1,x2,...,xn};对于给定的f(X),使用表示f(X)相对于xi的余因子(cofactor);f(X)相对于多个变量的余因子的定义类似,例如f(X)相对于xi的香农展开式为f(X)相对于多个变量的香农展开式的定义类似;在图1中,将F、G和H的输入信号集合分别表示为XF、XG和XH,|XF|和|XG|分别表示LUT F和LUT G的大小(即输入数),输出信号分别表示为oF、oG和oH,MUX H选择oF还是oG作为输出取决于外部选择信号xH;使用图1中1个SLICE来实现f(X)时,可以将f(X)表征为即f(X)相对于变量xH的香农展开式,其中XF∪XG∪{xH}=X。具体包括:
定理1:1个SLICE能够实现f(X),当且仅当存在相对于xH∈X的香农展开式因此,给定一个宽函数,首先遍历输入集合中的每个信号,将其作为MUX的选择信号,对该信号进行香农展开,获得两个余因子的输入集合数;遍历结束后将两个余因子的输入集合总数最小的信号作为选择信号;如果香农展开式中两个余因子的输入集合分别不大于|XF|和|XG|,则可获得对于SLICE的一个匹配;如果遍历输入集合结束后,未获得对于SLICE的一个匹配,则尝试去寻求该宽函数对CLB的匹配;
定理2:f(X)不能用1个SLICE实现,而能用1个CLB实现,当且仅当存在相对于xH∈X的香农展开式
如果宽函数对SLICE的布尔匹配失败,则对f(X)的输入集合总数最小的两个余因子分别进行进一步处理,如果两个余因子的输入集合数都大于LUT的输入数,则对两个余因子分别进行香农展开,则可获得f(X)的4个子余因子;如果只有一个余因子的输入集合数大于LUT的输入数,则只对这一个余因子进行香农展开,则可获得f(X)的3个子余因子;如果获得的所有子余因子的输入集合数都不大于LUT的输入数,则获得宽函数f(X)对CLB的一个布尔匹配。
步骤(d)中所述的基于DSD的分解包括:如果步骤(c)得出的DSD树不为空,并且得出的约束集大小为k或k-1,则对函数f(X)进行DSD分解,分解成约束集B-sets和自由集F-sets。在DSD分解过程中一次分解出多个大小为k的约束集。
所述基于DSD的分解,需要了解的关于DSD的一些概念有:
定义1:一个完全定义函数F,如果存在一种输入组合,当其中一个变量值切换时,F的值发生变化,则称该变量值为F的必要依赖项(essentially depends)。
定义2:F的支持集(support)定义为F的所有必要依赖项的集合。
定义3:如果两个函数不包含相同的变量,则称这两个函数的支持集不相交(disjoint)。
定义4:一个完全定义函数的分解(decomposition)定义为一个只包含一个原始输出(primary output,PO)的布尔网络,该布尔网络与原函数在功能性上等价。
定义5:不相交支持集分解(disjoint-support decomposition,DSD)是指一个完全定义函数分解得到的布尔网络,该网络中各节点(node)的支持集相互之间不相交。
根据定义5,DSD通常结果是一个树形结构(每个节点只含有一个扇出),每个叶节点的支持集称为约束集(bound set),其余变量称为自由集(freeset)。如果DSD之后,每个节点都不能再进行DSD,则称这个DSD为一个极大DSD(maximal DSD)。
步骤E,用功能性等价的LUTs结构与函数f(X)进行布尔匹配;
将cut的根节点和叶节点之间形成的锥(cone),与步骤D中对函数f(X)成功进行分解后新的LUTs结构进行比较,如果新的LUTs结构比cone所包含的节点数目少,并且替换后网络的关键路径延时不会增加,则将cone替换成新的LUTs结构。
本发明针对集成电路异质型逻辑单元的重综合方法的一个较佳实施例,如图3所示,该方法具体包括如下步骤:
步骤S301、输入工艺映射后的网表,将网表中所有LUTs节点从输出(原始输出和触发器的输入)到输入(原始输入和触发器的输出)按逆拓扑顺序排列。
步骤S302、计算出每个节点的权重比较高的一部分截(cut)。
在对k-LUT的工艺映射中,对cut的选择是不大于k。而在重综合中,为了有效地实现对宽函数的布尔匹配,需要计算更大的cut。因此工艺映射中的cut计算方法在重综合中并不适用。本发明采用的是自顶向下的cut计算方法:首先计算出每个节点只包含根节点的cut,然后新的cut的获得方法是从当前存在的cut往原始输入方向扩展。
在重综合过程中,可以跳过一些对重综合有益性比较小的cut,从而可以减小运行时。为过滤掉无益的cut,并对其它cut进行优先级排序,本发明对每个cut计算其权重cutWeight,计算方法是:
cutWeight(c)=[numCovered(c)-numDups(c)]/numLuts(c) (1)
其中:
numLuts(c)=ceiling[(numLeaves(c)-1/(K-1)] (2)
式(1)中numCovered表示cut所覆盖的所有节点的数量,numDups表示cut覆盖但是不属于根节点的MFFC(Maximum fanout free cone,最大扇出自由锥)的节点的数量。式(2)中numLeaves表示cut的所有叶子的数量。
根据cut的cutWeight对所有cut进行优先级排序,选择优先级比较高的cut形成节点的cut集合。
步骤S303、遍历每个节点的cut集合,对每个cut计算出cut的函数f(X)(真值表)。
步骤S304、对f(X)进行分解,输入是完全定义函数f(X)和用于限制分解模块的支持集大小的限制数k。
(1)支持集最小化。
移除无意义的变量,并返回f(X)的新支持集。例如,对于f(X)=acd,如果其支持集为(a,b,c,d),则b是f(X)的无意义变量。因此,将变量b从f(X)的支持集中移除,新的支持集大小为3。
(2)基于MUX的分解。
对布尔函数和图1中SLICE/CLB之间进行布尔匹配,可以由香农展开式获得。
定理1:1个SLICE能够实现f(X),当且仅当存在相对于xH∈X的香农展开式
因此,给定一个宽函数,首先遍历输入集合中的每个信号,将其作为MUX的选择信号,对该信号进行香农展开,获得两个余因子的输入集合数。遍历结束后将两个余因子的输入集合总数最小的信号作为选择信号。
如果香农展开式中两个余因子的输入集合分别不大于|XF|和|XG|,则可获得对于SLICE的一个匹配。如果遍历输入集合结束后,未获得对于SLICE的一个匹配,则尝试去寻求该宽函数对CLB的匹配。
定理2:f(X)不能用1个SLICE实现,而能用1个CLB实现,当且仅当存在相对于xH∈X的香农展开式
如果宽函数对SLICE的布尔匹配失败,则对f(X)的输入集合总数最小的两个余因子分别进行进一步处理,如果两个余因子的输入集合数都大于LUT的输入数,则对两个余因子分别进行香农展开,则可获得f(X)的4个子余因子;如果只有一个余因子的输入集合数大于LUT的输入数,则只对这一个余因子进行香农展开,则可获得f(X)的3个子余因子。如果获得的所有子余因子的输入集合数都不大于LUT的输入数,则获得宽函数f(X)对CLB的一个布尔匹配。
(3)分析DSD的可能性。
尝试进行DSD,计算出所有k可行的约束集,从中选出最好的约束集,最后返回DSD树。
(4)基于DSD的分解。
如果(3)得出的DSD树不为空,并且得出的约束集大小为k或k-1,则对函数f(X)进行DSD,分解成约束集B-sets和自由集F-sets。本发明的特点是,DSD分解过程中尽可能的一次分解出多个大小为k的约束集。以图2(a)为例,对于给定的12输入完全定义函数,在第一次DSD分解后,得到三个大小为k的约束集,分别用A、B、C三个节点来实现。此时自由集已为空,小于k,不需要做进一步分解,只需要新增一个D节点,使其扇入分别为A、B、C节点即可。至此,给定的宽函数用图2(a)匹配成功。
(5)重复步骤(1)到(4),只到f(X)分解完全。
假如进行DSD分解后,自由集大于k,则需要对自由集做进一步分解。以图2(b)为例,对于给定的12输入完全定义函数,在第一次DSD分解后,B-sets用A节点来实现,此时F-sets含有8个变量,大于k,因此重复步骤(1)到(4)对F-sets做进一步的分解。假设步骤(2)基于MUX的分解成功,则将F-sets用B节点(SLICE)来实现(如果MUX分解失败,则需要进行步骤(3)、(4))。至此,给定的宽函数用图2(b)匹配成功。
步骤S305、LUTs结构的替换。
以图2为例,假设cut的根节点和叶节点之间形成的锥(cone)为图2(a),而匹配成功后新的LUTs结构为图2(b),图2(b)比图2(a)所包含的节点数目少。如果替换后网络的关键路径延时不会增加,则把cone替换成新的LUTs结构。也就是说,本发明的针对集成电路异质型逻辑单元的重综合方法的目标是在不损害电路延时的情况下去减小面积。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种针对集成电路异质型逻辑单元的重综合方法,其特征在于,包括:
步骤A,逆拓扑序排列工艺映射后网表中所有节点;
步骤B,计算每个节点的cut;
步骤C,计算每个cut的函数f(X);
步骤D,对函数f(X)进行分解;
步骤E,用功能性等价的LUTs结构与函数f(X)进行布尔匹配;
其中,步骤D中所述对函数f(X)进行分解包括:
(a)支持集最小化,移除无意义的变量,并返回f(X)的新的支持集;
(b)基于MUX的分解;
(c)分析DSD的可能性,尝试进行DSD,计算出所有k可行的约束集,从中选出最好的约束集,最后返回DSD树;
(d)基于DSD的分解;
(e)重复上述步骤(a)到(d),直到f(X)分解完全;
步骤(b)中所述基于MUX的分解,是对布尔函数和SLICE/CLB之间进行布尔匹配,由香农展开式获得,具体包括:
定理1:1个SLICE能够实现f(X),当且仅当存在相对于xH∈X的香农展开式因此,给定一个宽函数,首先遍历输入集合中的每个信号,将其作为MUX的选择信号,对该信号进行香农展开,获得两个余因子的输入集合数;遍历结束后将两个余因子的输入集合总数最小的信号作为选择信号;如果香农展开式中两个余因子的输入集合分别不大于|XF|和|XG|,则可获得对于SLICE的一个匹配;如果遍历输入集合结束后,未获得对于SLICE的一个匹配,则尝试去寻求该宽函数对CLB的匹配;
定理2:f(X)不能用1个SLICE实现,而能用1个CLB实现,当且仅当存在相对于xH∈X的香农展开式
f ( X ) = x I ‾ · ( x H 0 ‾ · y 01 ( X F 0 ) + x H 0 · y 02 ( X G 0 ) ) + x I · ( x H 1 ‾ · y 11 ( X F 1 ) + x H 1 · y 12 ( X G 1 ) ) ;
如果宽函数对SLICE的布尔匹配失败,则对f(X)的输入集合总数最小的两个余因子分别进行进一步处理,如果两个余因子的输入集合数都大于LUT的输入数,则对两个余因子分别进行香农展开,则可获得f(X)的4个子余因子;如果只有一个余因子的输入集合数大于LUT的输入数,则只对这一个余因子进行香农展开,则可获得f(X)的3个子余因子;如果获得的所有子余因子的输入集合数都不大于LUT的输入数,则获得宽函数f(X)对CLB的一个布尔匹配。
2.根据权利要求1所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,所述步骤A包括:
对工艺映射后的网表进行分析,将所有LUTs节点从输出到输入按逆拓扑顺序排列,其中,所述输出是原始输出和触发器的输入,所述输入是原始输入和触发器的输出。
3.根据权利要求1所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,步骤B中所述计算每个节点的cut包括:
计算出每个节点只包含根节点的cut,然后新的cut的获得方法是从当前存在的cut往原始输入方向扩展;
计算所有cut的权重cutWeight,计算方法是:
cutWeight(c)=[numCovered(c)-numDups(c)]/numLuts(c) 公式1
其中:
numLuts(c)=ceiling[(numLeaves(c)-1/(K-1)] 公式2
公式1中numCovered表示cut所覆盖的所有节点的数量,numDups表示cut覆盖但是不属于根节点的最大扇出自由锥MFFC的节点的数量;公式2中numLeaves表示cut的所有叶节点的数量;
根据cutWeight对所有cut进行优先级排序,并过滤掉对重综合有益性小的cut。
4.根据权利要求1所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,步骤C中所述计算每个cut的函数f(X)是计算每个cut的真值表。
5.根据权利要求1所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,步骤(d)中所述的基于DSD的分解包括:
如果步骤(c)得出的DSD树不为空,并且得出的约束集大小为k或k-1,则对函数f(X)进行DSD分解,分解成约束集B-sets和自由集F-sets。
6.根据权利要求5所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,在DSD分解过程中一次分解出多个大小为k的约束集。
7.根据权利要求1所述的针对集成电路异质型逻辑单元的重综合方法,其特征在于,步骤E中所述用功能性等价的LUTs结构与函数f(X)进行布尔匹配,包括:
将cut的根节点和叶节点之间形成的锥,与步骤D中对函数f(X)成功进行分解后新的LUTs结构进行比较,如果新的LUTs结构比锥所包含的节点数目少,并且替换后网络的关键路径延时不会增加,则将锥替换成新的LUTs结构。
CN201210559839.XA 2012-12-21 2012-12-21 一种针对集成电路异质型逻辑单元的重综合方法 Active CN103886118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210559839.XA CN103886118B (zh) 2012-12-21 2012-12-21 一种针对集成电路异质型逻辑单元的重综合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210559839.XA CN103886118B (zh) 2012-12-21 2012-12-21 一种针对集成电路异质型逻辑单元的重综合方法

Publications (2)

Publication Number Publication Date
CN103886118A CN103886118A (zh) 2014-06-25
CN103886118B true CN103886118B (zh) 2017-03-29

Family

ID=50955010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210559839.XA Active CN103886118B (zh) 2012-12-21 2012-12-21 一种针对集成电路异质型逻辑单元的重综合方法

Country Status (1)

Country Link
CN (1) CN103886118B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326507B (zh) * 2015-06-24 2019-07-16 中国科学院微电子研究所 一种模拟集成电路约束提取方法及系统
CN107391896B (zh) * 2017-09-21 2019-12-24 电子科技大学 一种低开销的fpga硬件木马设计方法
CN111125993B (zh) * 2019-12-30 2022-05-24 北京华大九天科技股份有限公司 一种满足最小Cut数量约束的布线方法
CN113987979A (zh) * 2021-10-28 2022-01-28 厦门大学 一种面向模拟集成电路的子电路匹配方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375905A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种针对改进逻辑单元的集成电路的工艺映射方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1444616A4 (en) * 2001-10-16 2005-08-24 Leopard Logic Inc CORE CELL OF AN ON-LINE PROGRAMMABLE GATE ARRAYS WITH EFFICIENT LOGIC PACK

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375905A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种针对改进逻辑单元的集成电路的工艺映射方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Fast Boolean matching for LUT structures;Alan Mishchenko等;《Berkeley:UC Berkeley》;20071231;第6.1节 *
Improvements to Technology Mapping for LUT-Based FPGAs;Alan Mishchenko等;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20070228;第26卷(第2期);第240-253页的第4.4节和第5.2节 *
Post-mapping topology rewriting for FPGA area minimization;Lei Chen;《waterloo : Department of Electrical and Computer Engineering》;20091231;摘要、第18、21、25、47-48页 *
针对FPGA复杂可编程逻辑单元的快速布尔匹配方法研究;章淳;《中国博士学位论文全文数据库 信息科技辑》;20111215;第2011年卷(第12期);第I135-84页 *

Also Published As

Publication number Publication date
CN103886118A (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
Chen et al. DAG-Map: Graph-based FPGA technology mapping for delay optimization
Cong et al. Cut ranking and pruning: Enabling a general and efficient FPGA mapping solution
CN103886118B (zh) 一种针对集成电路异质型逻辑单元的重综合方法
Ray et al. Mapping into LUT structures
Anderson et al. Technology mapping for large complex PLDs
CN103324796B (zh) 一种大规模集成电路设计中的绕障直角斯坦纳树构造方法
Kubica et al. Technology mapping oriented to adaptive logic modules
Kubica et al. SMTBDD: new form of BDD for logic synthesis
Besana et al. Cell decomposition of almost smooth real algebraic surfaces
CN103366401B (zh) 多层次虚拟服饰试穿的快速显示方法
CN101656535A (zh) 针对多模式逻辑单元可编程门阵列的工艺映射方法
CN101833553B (zh) 对数据进行聚类的方法、设备和系统
Fang et al. A hierarchical functional structuring and partitioning approach for multiple-FPGA implementations
Chrzanowska-Jeske et al. A regular representation for mapping to fine-grain, locally-connected fpgas
Huang et al. Compatible class encoding in Roth-Karp decomposition for two-output LUT architecture
Amouri et al. Efficient multilevel interconnect topology for cluster-based mesh fpga architecture
Sharma et al. Improved BDD compression by combination of variable ordering techniques
Yang et al. Yet another many-objective clustering (YAMO-Pack) for FPGA CAD
CN109684761A (zh) 一种宽同或电路优化方法
Pandey et al. Low power technology mapping for LUT based FPGA-a genetic algorithm approach
Ling et al. Scalable synthesis and clustering techniques using decision diagrams
Gaillardon et al. Matrix nanodevice-based logic architectures and associated functional mapping method
Tu et al. Lookup Table Merging for FPGA Technology Mapping
Farooq et al. The effect of LUT and cluster size on a tree based FPGA architecture
Hsu et al. An efficient hybrid lut/sop reconfigurable architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant