CN103885771B - 基于局部最小化robdd及面积延迟优化的工艺映射的方法 - Google Patents
基于局部最小化robdd及面积延迟优化的工艺映射的方法 Download PDFInfo
- Publication number
- CN103885771B CN103885771B CN201410075155.1A CN201410075155A CN103885771B CN 103885771 B CN103885771 B CN 103885771B CN 201410075155 A CN201410075155 A CN 201410075155A CN 103885771 B CN103885771 B CN 103885771B
- Authority
- CN
- China
- Prior art keywords
- node
- robdd
- cost
- lut
- nodes
- 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
Links
Abstract
本发明公开了一种基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,通过ROBDD的域节点来产生部分备选划分,放松非关键路径上的节点延迟来优化面积的工艺映射方法;逻辑优化部分,采用了带共享的最小化Local ROBDD的数据结构,利用ROBDD的域节点及操作提高了电路分解效率,避免了由于枚举所有备选划分而造成的时间和内存的浪费;结构优化部分,改进了经典算法Flowmap为电路中的每个节点进行延迟标记最小化的思想,关键路径上进行min‑height min‑cost覆盖,非关键路径上进行min‑cost覆盖。本发明避免了产生所有备选划分的低效性和延迟与面积相互制约的缺点,满足了现场可编程器件芯片对LUT输入个数的要求,且达到优化电路面积和延迟的目标。
Description
技术领域
本发明属于现场可编程器件SOPC开发技术领域,尤其涉及一种基于局部最小化ROBDD及面积延迟优化的工艺映射的方法。
背景技术
随着微电子技术的飞速发展,数字系统应用基本经历了分立元件,小规模集成电路(SSI)﹑中规模集成电路(MSI)﹑大规模集成电路(LSI)和超大规模集成电路(VLSI)的应用过程,数字系统应用的基本特征则经历了中小规模的标准通用集成电路﹑用户定制的专用集成电路(ASIC)和现场可编程器件(FPGA)的发展。专用集成电路(ASIC)虽然速度快、功耗低,但是其设计制造周期长,一次性投入成本高。此外,它是不可编程的,为在制造完成后,用户不能够改变它的功能。现场可编程器件(FPGA)芯片由于它的可编程特性,用户可以根据特定的应用来对电路结构进行定制,因此它的处理速度可以大大超过通过的处理器。它具有专用集成电路(ASIC)所不具备的可编程特性,速度和功耗又优于通用的处理器,且一次性投入成本很低,因此它在硬件开发领域得到了广泛的应用。
现场可编程器件(FPGA)的结构主要分为两类:基于乘积项(Product-Term)技术,EEPROM(或Flash)工艺的中小规模PLD(可编程逻辑器件);以及基于查找表(Look-UpTable)技术,SRAM工艺的大规模PLD。EEPROM工艺的PLD密度小,多用于5,000门以下的小规模设计,适合做复杂的组合逻辑,如译码。SRAM工艺的PLD,密度高,触发器多,多用于10,000门以上的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各种算法等。
基于LUT的FPGA的工艺映射方法的任务是将逻辑综合后的布尔网络转换为LUT网络,并且减小电路的面积(为LUT总数目)和延迟(关键路径为从基本输入PI到基本输出PO最长路径上LUT的数目)。工艺映射主要分为逻辑优化和结构优化两部分。
逻辑优化主要是运用逻辑提取技术对网表电路进行分解,达到LUT对输入个数的要求,产生备选划分,以便更好的进行结构优化。对于逻辑优化中电路表示的数据结构,目前,广泛应用的是AIG(与非图)和SOP(乘积项),AIG更贴近于电路结构,但是表现形式不唯一;SOP分解则过于复杂。目前逻辑优化中产生划分所采用的主要方法:先产生所有备选划分,然后从中挑选出满足约束的最优结果,这样产生的划分数量是指数级的;且这种方法本身是贪婪的,不管划分有没有用都列举出来,非常消耗时间和内存。
结构优化主要是对逻辑优化后产生的电路进行面积和延迟的优化,使用LUT对电路进行覆盖。著名的Flowmap算法,使用图论中最大流最小割的思想对电路进行覆盖,第一次从理论上找到了工艺映射的最优解。这种算法,对电路中的延迟进行了最优化,但是对面积的结果造成了一定影响。
发明内容
本发明实施例的目的在于提供一种基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,旨在解决现有工艺映射方法存在的的产生所有备选划分的低效性和延迟与面积相互制约的问题。
本发明实施例是这样实现的,一种基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,被应用于开发支持FPGA开发的电子设计自动化EDA软件开发流程中的工艺映射,它将上一步逻辑综合后生成的布尔网络转换为LUT网络,提供给下一步的打包对电路进行进一步的处理,该基于局部最小化ROBDD及面积延迟优化的工艺映射的方法包括以下步骤:
步骤一,逻辑优化,分解策略;
步骤二,结构优化,延迟和面积优化;
步骤一的逻辑优化具体步骤为:
第一步,首先读入网表blif文件,删除其中冗余的节点;
第二步,建立BDDpool以队列的形式存储将要处理的ROBDD信息,为电路中的每一个节点建立局部BDD,如果BDDpool中已经存在于该BDD表示逻辑等价的BDD,就将该等价BDD的信息存储到相应的节点中,如果不存在,就将该BDD加入到BDDpool中;
第三步,对BDDpool中的所有BDD进行重排序和化简得到ROBDD;
第四步,从BDDpool中取出一个BDD,利用域操作进行分解,将分解之后的BDD加入到BDDpool中;
第五步,重复第四步直到BDDpool中的所有BDD已经被分解到最小,为节点个数为2;
第六步,将逻辑优化后的BDD重新输入成网表形式;
步骤二的结构优化具体步骤为:
第一步,用有向无环图DAG表示网络结构,初始化集合L={PI},所有的PI节点标记赋为0;
第二步,从L中选取一个节点t,首先求节点t的cost,cost(t)=weight(t)/node_num_fanout(t),weight(t)为节点t的权重,默认为1,node_num_fanout(t)为节点t的扇出节点个数;
第三步,将节点t及其所有前驱节点构造为网络Nt,计算网络Nt中所有满足K约束的划分中,X中所有节点的cost的总和,选出其中最小的作为min-cost划分;
第四步,设p为Nt中节点的最大标记,将Nt中所有标记大于等于p的节点都合并到t中得到新的节点t’,该网络记为Nt’;
第五步,将网络Nt’中,除了s和t’外的所有节点,分裂成两个节点,分裂边的权值设为1,原有边的权值设为∞,记为网络Nt’’,根据最大流最小割定理,判断Nt’’网络中的最大流是否小于等于K,如果是,节点t的标记为p,否则为p+1;
第六步,如果满足节点t标记的划分有两个或两个以上,则按照第三步的方法计算最小cost的划分,记为min-height min-cost划分,如果只有一个这样的划分,直接记为min-height min-cost划分;
第七步,更新L,L=(L-{t})∪{node_fanout(t)},node_fanout(t)为节点t的扇出节点集合,判断L是否为空,不为空,跳至第二步,否则,向下执行;
第八步,令集合L={PI};
第九步,从集合L中取出一个节点v,标记阶段已经为每个节点生成了最小高度min-height划分和最小花费min-cost划分,判断v节点是否在关键路径上,若在,就进行min-height和min-cost划分,若不在就进行min-cost划分;使用K-LUT覆盖该节点的划分来生成新节点v’,使input(v’)=input(),
第十步,更新L,L=(L-{v})∪input(v’),判断L中是否所有节点都为PI,若是向下执行,否则跳至第九步;
第十一步,Predecessor packing:覆盖之后对网络进行进一步的面积优化,首先按拓扑顺序遍历网络,判断是否存在下述情况,K-LUT v有且只有一个输出K-LUT u,并且|{input({u,v})}|≤K,如果存在,将v合并到u中;
第十二步,Gate decomposition:再按拓扑顺序遍历上一步面积优化过的网络,判断是否存在下述情况,两个节点K-LUT v和K-LUT u都只有一个输出节点且输出节点都是K-LUT w,并且|{input({u,v})}|≤K,如果存在,将v和u合并为一个只有一个输出为K-LUT w的K-LUT。
进一步,在步骤一的第四步中从BDDpool中取出一个BDD,如果是最小化BDD,就加到BDDpool队尾,不是,首先对判断是否存在代数域节点,如果存在1-dominator就将BDD分解为两个相与的BDD;如果存在0-dominator就分解为两个相或的BDD,如果存在x-dominator就分解为两个相同或的BDD,如果不存在代数域节点,就对BDD进行布尔域划分,将划分之后的BDD都加入到BDDpool中。
进一步,在步骤二中第二步的结构优化中对节点进行min-cost求解步骤包括:
从L中选取一个节点t,首先求节点t的花费cost,cost(t)=weight(t)/node_num_fanout(t),weight(t)为节点的权重,默认为1,node_num_fanout(t)为节点t的扇出节点个数;将节点t及所有前驱节点构造为网络Nt,计算网络Nt中所有满足K约束的划分(X,__X_)中,X中所有节点的cost的总和,选出最小的作为min-cost划分。
进一步,在步骤二的结构优化中节点标记中标记节点min-height min-cost划分步骤包括:
设p为Nt中节点的最大标记,将Nt中所有标记大于等于p的节点都合并到t中得到新的节点t’,网络记为Nt’;将网络Nt’中,除了s和t’外的所有节点,分裂成两个节点,分裂边的权值设为1,原有边的权值设为∞,记为网络Nt’’,根据最大流最小割定理,判断Nt’’网络中的最大流是否小于等于K,如果是,节点t的标记为p,否则为p+1;如果满足节点t标记的划分有两个或两个以上,计算最小cost的划分,记为min-height min-cost划分,如果只有一个这样的划分,直接记为min-height min-cost划分;更新L,L=(L-{t})∪{node_fanout(t)},判断L是否为空,不为空,重新选取节点。
进一步,在步骤二中结构优化中K—LUT覆盖步骤包括:
令集合L={PI};从集合L中取出一个节点v,标记阶段已经为每个节点生成了最小高度min-height划分和最小花费min-cost划分,判断v节点是否在关键路径上,若在,就进行min-height和min-cost划分,若不在就进行min-cost划分,使用K-LUT覆盖该节点的划分来生成新节点v’,使input(v’)=input();更新L,L=(L-{v})∪input(v’),判断L中是否所有节点都为PI。
本发明提供的基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,被应用于开发支持FPGA开发的电子设计自动化EDA软件开发流程中的工艺映射中,它吸取ROBDD和AIG数据结构及Flowmap算法的优点,通过ROBDD的域节点来产生部分备选划分,放松非关键路径上的节点来优化面积的工艺映射方法。逻辑优化部分,采用了带共享的最小化LocalROBDD的数据结构,该结构考虑了ROBDD的规范表现形式和域节点的特性,采用了AIG中共享节点的思想,避免了由于枚举所有备选划分而造成的时间和内存的浪费;结构优化部分,吸取了经典算法Flowmap的思想,利用图论中的最大流最小割定理,为电路中的每个节点进行延迟最小化,在此基础上,本发明提出了释放非关键路径上节点的延迟以减小面积的面积延迟优化算法思想,为关键路径上进行min-height和min-cost覆盖,非关键路径上进行min-cost覆盖。本发明避免了产生所有备选划分的低效性,克服了延迟与面积相互制约的缺点,满足了现场可编程器件芯片对LUT输入个数的要求,且达到优化电路面积和延迟的目标。
本发明由于使用带有共享的局部最小化ROBDD作为逻辑优化部分的数据结构,利用ROBDD上域节点的操作使得逻辑优化部分不用产生所有备选划分,并且用同一ROBDD表示多个逻辑上等价的节点,使得消耗的内存和时间减小;结构优化部分,利用对关键路径上节点进行min-height和min-cost覆盖、非关键路径上节点进min-cost覆盖的思想,使得面积和延迟都得到了优化,并且将该方法应用于支持FPGA开发的电子设计自动化EDA软件的工艺映射中,最终使得支持FPGA开发的电子设计自动化EDA软件的运行效率提高,并且减小了最终EDA软件生成的下载到FPGA芯片板上的电路的面积和延迟。
附图说明
图1是本发明实施例提供的基于局部最小化ROBDD及面积延迟优化的工艺映射的方法流程图;
图2是本发明实施例提供的逻辑优化的流程图;
图3是本发明实施例提供的逻辑优化中局部ROBDD的具体分解流程图;
图4是本发明实施例提供的结构优化整体流程图;
图5是本发明实施例提供的节点标记过程示意图;
图6是本发明实施例提供的K—LUT覆盖过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
如图1所示,本发明实施例的基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,被应用于开发支持FPGA开发的电子设计自动化EDA软件开发流程中的工艺映射中,它将上一步逻辑综合后生成的布尔网络转换为LUT网络,提供给下一步的打包对电路进行进一步的处理,包括以下步骤:
S101:逻辑优化,分解策略;
S102:结构优化,延迟和面积优化;
参照图2和图3,本发明逻辑优化的主要步骤如下:
第一步,首先读入网表blif文件,删除其中冗余的节点;
第二步,建立BDDpool以队列的形式存储将要处理的ROBDD信息,为电路中的每一个节点建立局部BDD,如果BDDpool中已经存在于该BDD表示逻辑等价的BDD,就将该等价BDD的信息存储到相应的节点中,如果不存在,就将该BDD加入到BDDpool中;
第三步,对BDDpool中的所有BDD进行重排序和化简得到ROBDD;
第四步,从BDDpool中取出一个BDD,如果是最小化BDD,就加到BDDpool队尾,不是,首先对其判断是否存在代数域节点,如果存在1-dominator就将该BDD分解为两个相与的BDD;如果存在0-dominator就分解为两个相或的BDD,如果存在x-dominator就分解为两个相同或的BDD,如果不存在代数域节点,就对BDD进行布尔域划分,将划分之后的BDD都加入到BDDpool中;
第五步,重复第四步知道BDDpool中的所有BDD已经被分解到最小(为节点个数为2);
第六步,将逻辑优化后的BDD重新输入成网表形式。
参见图4,图5,图6,本发明的结构优化的具体步骤如下:
第一步,用有向无环图DAG表示网络结构,初始化集合L={PI},所有的PI节点标记赋为0;
第二步,从L中选取一个节点t,首先求节点t的cost,cost(t)=weight(t)/node_num_fanout(t),weight(t)为节点t的权重,默认为1,node_num_fanout(t)为为节点t的扇出节点个数;
第三步,将节点t及其所有前驱节点构造为网络Nt,计算网络Nt中所有满足K约束的划分(X,__X_)中,X中所有节点的cost的总和,选出其中最小的作为min-cost划分;
第四步,设p为Nt中节点的最大标记,将Nt中所有标记大于等于p的节点都合并到t中得到新的节点t’,该网络记为Nt’;
第五步,将网络Nt’中,除了s和t’外的所有节点,分裂成两个节点,分裂边的权值设为1,原有边的权值设为∞,记为网络Nt’’,根据最大流最小割定理,判断Nt’’网络中的最大流是否小于等于K,如果是,节点t的标记为p,否则为p+1;
第六步,如果满足节点t标记的划分有两个或两个以上,则类似第三步的方法计算最小cost的划分,记为min-height min-cost划分,如果只有一个这样的划分,直接记为min-height min-cost划分;
第七步,更新L,L=(L-{t})∪{node_fanout(t)},node_fanout(t)为节点t的扇出节点集合,判断L是否为空,不为空,跳至第二步否则,向下执行;
第八步,令集合L={PI};
第九步,从集合L中取出一个节点v,标记阶段已经为每个节点生成了最小高度min-height划分和最小花费min-cost划分,判断v节点是否在关键路径上,若在,就进行min-height和min-cost划分,若不在就进行min-cost划分,使用K-LUT覆盖该节点的划分来生成新节点v’,使input(v’)=input();
第十步,更新L,L=(L-{v})∪input(v’),判断L中是否所有节点都为PI,若是向下执行,否则跳至第九步;
第十一步,对网络进行进一步的面积优化,按拓扑顺序遍历网络,判断是否存在下述情况,K-LUT v有且只有一个输出K-LUT u,并且|{input({u,v})}|≤K,如果存在,将v合并到u中;
第十二步,对网络进行进一步的面积优化,按拓扑顺序遍历上一步面积优化过的网络,判断是否存在下述情况,两个节点K-LUT v和K-LUT u都只有一个输出节点且输出节点都是K-LUT w,并且|{input({u,v})}|≤K, 如果存在,将v和u合并为一个只有一个输出为K-LUT w的K-LUT。
逻辑优化的具体步骤为:
首先对输入的blif网表文件进行sweep操作,为删除电路中冗余的节点;为电路中的每个节点建立逻辑相对应的Local BDD并加入到BDDpool中,BDDpool以队列的形式存储每个节点对应的BDD,如果有多个节点表示的逻辑关系相同,那么就用同一个BDD来表示以达到共享BDD节省内存和时间的目的;然后对BDDpool中的BDD进行重排序调整变量顺序并化简BDD最终得到表现形式唯一的ROBDD;
从BDDpool中依次取出当中存储的BDD,对其进行分解,首先判断是否存在代数域划分,为可以将一个函数分为与原函数等价的没有公共变量的两部分的操作,代数域的基本操作是首先判断BDD中是否存在1-dominator,0-dominator,x-dominator节点,1-dominator节点为是所有通往终端节点1的路径上的公共节点, 同时1-dominator节点暗含了布尔函数的与运算,如果一个BDD含有1-dominator就可以将该BDD分解成两个没有公共变量独立的BDD相与;0-dominator节点为是所有通往终端节点0的路径上的公共节点,同时0-dominator节点暗含了布尔函数的或运算,如果一个BDD含有0-dominator就可以将该BDD分解成两个没有公共变量独立的BDD相或;x-dominator节点为为所有的通往终端节点0或是终端节点1的路径上的公共点,如果一个BDD含有x-dominator就可以将该BDD分解成两个没有公共变量独立的BDD相同或,如果该BDD存在代数域划分,就将该BDD用相对应的操作生成两个新的BDD,判断这两个新BDD是否存在于BDDpool中,如果不存在,添加进BDDpool中,并把分解信息存入对应相对应的节点中;
如果不存在代数域划分,对该BDD进行布尔域划分,布尔域划分为可以将一个函数分为与原函数等价的含有公共变量的两部分的操作,与之对应的域操作是generalizeddominator和generalized x-dominator,generalized dominator是原始BDD图形的一个不完整子图,将BDD划分为D和V-D两个子集,抽取D子集;对于在D子集中被割断的边,如果该边在原图中是叶子边,那么在D子集中还是将其连接到相应的终端节点,如果该边在原图中为内部边,那么在D子集中将其悬挂(danglingΓ),不连接到任何节点,由此生成的图形就是generalized dominator,将generalized dominator的所有悬挂边连接到终端节点1上得到D;在原图中将那些在D中指向0的叶子边,作为无关项进行化简得到Q;为把原BDD分解为了D与Q的形式,将generalized dominator的所有悬挂边连接到终端节点0上得到G;在原图中将那些在G中指向1的叶子边,作为无关项进行化简得到H,为把原BDD分解为了G或Q的形式,generalized x-dominator节点是一个被1边(0边)和补边同时指向的节点,generalized x-dominator的域操作为:首先找到generalized x-dominator节点,然后令其单独的为一个函数D;在原函数的BDD中将指向f的1边或0边重指向1,指向f的补边重指向0,便构成了函数Q,为把原BDD分解为D和Q同或的形式,布尔划分之后判断这两个新BDD是否存在于BDDpool中,如果不存在,添加进BDDpool中,并把分解信息存入对应相对应的节点中;
重复以上分解步骤,直到BDDpool中的所有BDD都为两输入节点,逻辑优化结束。
结构优化的具体步骤为:
首先对逻辑优化后的网表电路用有向无环图DAG表示然后进行节点标记,假定每个节点v都有一个整数标记l(v),所有的PI标记值为0,标记算法的主要思想是根据动态规划的原理,从原始输入到原始输出按拓扑顺序依次用整数标记布尔网络中的每个节点;
对节点t进行标记,网络Nt=(V(N),E(N)),假设源节点是s,接收点是t,是Nt的一个划分,s∈X,,当时,划分可行;划分的高度是指X中节点最大的标记为t的标记是Nt中最小满足K约束的划分中高度最小加1,Nt网络中所有已标记节点的最大标记为p,将网络中所有标记大于等于p的节点合并到接受节点t中,记为节点t’,新的网络记为Nt’,网络Nt存在一个k可行划分且当且仅当网络Nt’有一个K可行划分,将Nt’网络中的除源节点s和接受节点t’之外的所有节点分裂成两个节点,分裂成的两个节点用权值为1的边相连,并且保留Nt’原有的边,令其值为∞,从而形成网络Nt’’,网络Nt’存在一个K可行划分,当且仅当Nt’’存在一个划分,该划分上的边的权值总和根据最大流最小割定理为从原始节点s到接受节点t的最大流流量必须等于最小割的容量判断是否Nt’’是否存在K可行划分,若存在l(t)=p,否则l(t)=p+1;
在标记节点过程中,还要为每个节点t计算cost值,cost(t)=weight(t)/node_num_fanout(t)为计算节点t的权值和它的输出个数的比值,以此来确定节点的使用次数,然后计算Nt中满足K约束划分X中节点的cost总值,选择一个cost最小的LUT划分,当节点t的标记为p而不是p+1时,如果存在使t标记为p的两个或两个以上划分,就计算其中一个cost总值最小的划分;
网络中所有的节点都标记和计算cost值之后,进行覆盖过程,该过程从基本输出节点PO到基本输入节点PI,按关键路径的逆序,进行节点合并,先令集合L={PO},遍历L中的每个节点v,标记阶段已经为每个节点生成了最小高度min-height划分和最小花费min-cost划分,判断v节点是否在关键路径上,若在,就进行min-height和min-cost划分,若不在就进行min-cost划分,使用K-LUT覆盖该节点的划分来生成新节点v’,使同时更新L,使L=(L-{v})∪input(v’),如果K-LUT中覆盖的节点其扇出数大于2,则该节点被自动复制,重复此过程,知道L仅含PI节点;
覆盖之后对网络进行进一步的面积优化,首先按拓扑顺序遍历网络,判断是否存在下述情况,K-LUT v有且只有一个输出K-LUT u,并且|{input({u,v})}|≤K,如果存在,将v合并到u中;
再按拓扑顺序遍历上一步面积优化过的网络,判断是否存在下述情况,两个节点K-LUT v和K-LUT u都只有一个输出节点且输出节点都是K-LUT w,并且|{input({u,v})}|≤K,如果存在,将v和u合并为一个只有一个输出为K-LUTw的K-LUT,到此结构优化部分结束。
结合以下的实验对本发明的使用效果做进一步的说明:
1、实验条件
选取10个Benchmark标准网表电路blif文件进行测试;
与加州大学博客利分校开发的映射工具ABC进行对比;
每次实验重复20次,结构优化后的面积和延迟结果固定不变;
2、实验对比结果如下表,左边第2到4列为ABC的结果,右边三列是本发明的结果,如表1所示:
表1实验结果对比
通过表1的数据可以看出,本发明与现在国际上主流的映射工具ABC相比,面积提高了11%,延迟提高了3%,本发明在逻辑优化部分采用了目前最有效的电路表现形式之一ROBDD作为数据结构,利用ROBDD上的域节点特性,将其分解到最小,这样提高下一步结构优化的灵活性,为结构优化中的覆盖供了更多的可能性;结构优化中吸取了经典算法Flowmap中标记节点的方法,并加入了对节点的min-cost划分进行求解,对关键路径上节点进行min-height min-cost覆盖,对非关键路径上节点进行min-cost覆盖,因此在面积和延迟上有所提高。并且,将该方法应用于支持FPGA开发的电子设计自动化EDA软件的工艺映射中,最终使得支持FPGA开发的电子设计自动化EDA软件的运行效率提高,并且减小了最终EDA软件生成的下载到FPGA芯片板上的电路的面积和延迟。
使用FPGA芯片必须要有支持FPGA开发的电子设计自动化EDA软件,开发基于FPGA的电子设计自动化EDA软件的设计流程包括:逻辑综合,工艺映射,单元划分,逻辑单元装箱,布局,布线,编程下载等步骤。其中:
逻辑综合,将较高层次的描述自动转换到较低抽象层次描述的一种力法。这里是指将RTL级(寄存器级)的描述转换为门级网表的过程;
工艺映射,根据综合生成的网表,将用户设计嵌入FPGA芯片。这里的嵌入,实际上是在一个芯片数据库(Device Database)上进行的,而这个芯片数据库提供了FPGA芯片的所有细节;
单元划分,用于将规模大小超过FPGA容量的LUT集成单元,划分成几个能分别放进到给定的FPGA中的小的LUT单元组;
逻辑单元装箱,用于根据划分后的LUT单元组之间的互连时延信息,计算LUT之间的互连延迟并算出每个LUT的权重值,然后按照权重值的大小对LUT进行排序,将一个个LUT单元按照顺序依次装箱到可配置逻辑单元CLB中;
布局,用于将装箱之后的CLB单元映射到实际FPGA的各个逻辑位置,以达到减少CLB之间连线的交错度,缓解布线模块的压力;
布线,用于实现将CLB之间的各个连接采用FPGA内部已经存在的连线资源连接起来,使整个电路被完全映射到给定的FPGA芯片上;
编码下载,根据布线映射好的电路,通过编译生成所要使用的位数据流文件,然后将此数据文件下载到FPGA芯片中。
本发明所述的工艺映射方法是支持FPGA开发的电子设计自动化EDA软件开发流程中至关重要的部分,它将影响到最终实现电路的芯片的性能和成本等重要方面,它通常依赖于FPGA的结构,目前比较流行的FPGA结构是基于LUT的FPGA。基于LUT的FPGA的工艺映射方法根据目标不同,主要分为面积优化、延迟优化、功率优化和面积延迟共同优化四类。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,其特征在于,该基于局部最小化ROBDD及面积延迟优化的工艺映射的方法包括以下步骤:
第一步,删除电路中的冗余节点;
第二步,建立BDDpool以队列的形式存储将要处理的ROBDD信息,为电路建立局部ROBDD,并且进行重排序和化简后,加入到BDDpool中;利用局部ROBDD表示电路逻辑信息,与传统的全局ROBDD为电路的原始输出节点PO建立ROBDD相比,局部ROBDD为电路中的每一个节点包括PO和中间节点建立一个ROBDD,减小了电路分解的时间和内存消耗;
第三步,将BDDpool中的所有ROBDD分解到最小化;包括以下步骤:
步骤一,从BDDpool中取出一个ROBDD,如果是最小化ROBDD,也就是ROBDD的节点数为2,则执行步骤二,否则执行步骤三;
步骤二,将该ROBDD加到BDDpool的队尾,如果所有ROBDD都为最小化,则逻辑优化结束,否则执行步骤一;
步骤三,判断该ROBDD中是否存在代数域节点,如果存在则执行步骤四,否则执行步骤五;
步骤四,如果存在1-dominator则将ROBDD分解为两个ROBDD的合取;如果存在0-dominator则分解为两个ROBDD的析取,如果存在x-dominator则分解为两个ROBDD的同或,将分解后的ROBDD都加入到BDDpool中,执行步骤一;
步骤五,对ROBDD进行布尔域分解,将分解后的ROBDD加入到BDDpool中,执行步骤一;
第四步,用有向无环图DAG表示电路结构;
第五步,按照从原始输入到原始输出的拓扑顺序进行节点标记;节点标记过程,包括以下步骤:
(1),增加源节点s连接所有的PI,PI为电路的原始输入,初始化集合L={PI},所有的PI节点标记值赋为0;
(2),从L中选取一个节点t,首先求节点t的花费cost,cost(t)=weight(t)/node_num_fanout(t),其中weight(t)为节点t的权重,默认为1,node_num_fanout(t)为节点t的扇出节点个数;
(3),将节点t及其所有前驱节点构造为网络Nt,计算网络Nt中所有满足LUT对输入个数K约束要求的划分中,X中所有节点的cost的总和,选出其中最小的记为min-cost划分;
(4),设p为Nt中节点的最大标记,将Nt中所有标记等于p的节点都合并到t中得到新的节点t’,将该网络记为Nt’;
(5),将网络Nt’中,除了s和t’外的所有节点,分裂成两个节点,分裂边的权值设为1,原有边的权值设为∞,将该网络记为Nt”,根据最大流最小割定理,判断Nt”网络中的最大流是否小于等于K,如果是,则节点t的标记为p,否则为p+1;
(6),如果满足节点t标记的划分有两个或两个以上,则按照(2)的方法计算最小cost的划分,记为min-height min-cost划分,如果只有一个这样的划分,则直接记为min-heightmin-cost划分;
(7),更新集合L,L=(L-{t})∪{node_fanout(t)},node_fanout(t)为节点t的扇出节点集合,判断L是否为空,如果不为空,则跳至(2),否则,节点标记过程结束;
第六步,按照从原始输出到原始输入的拓扑顺序用查找表LUT对电路进行覆盖;查找表LUT覆盖过程,包括以下步骤:
1),令集合L={PO},PO为电路的原始输出;
2),从集合L中取出一个节点v,判断节点v是否在关键路径上,如果在则进行min-height min-cost覆盖,否则进行min-cost覆盖;生成新的节点v’来表示覆盖后的LUT节点;
3),更新集合L,令L=(L-{v})∪input(v’),判断L中是否所有节点都为PI,若是则结束覆盖过程,否则跳至1);
第七步,进一步的面积优化。
2.如权利要求1所述的基于局部最小化ROBDD及面积延迟优化的工艺映射的方法,其特征在于,第七步,进一步面积优化过程,包括以下步骤:
步骤一,按拓扑顺序遍历网络,判断是否存在下述情况,K-LUT v有且只有一个输出K-LUT u,并且|{input({u,v})}|≤K,如果存在,将v合并到u中;
步骤二,按拓扑顺序遍历网络,判断是否存在下述情况,两个节点K-LUT v和K-LUT u都只有一个输出节点且输出节点都是K-LUT w,并且|{input({u,v})}|≤K,如果存在,将v和u合并为一个只有一个输出为K-LUT w的K-LUT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410075155.1A CN103885771B (zh) | 2014-03-04 | 2014-03-04 | 基于局部最小化robdd及面积延迟优化的工艺映射的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410075155.1A CN103885771B (zh) | 2014-03-04 | 2014-03-04 | 基于局部最小化robdd及面积延迟优化的工艺映射的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885771A CN103885771A (zh) | 2014-06-25 |
CN103885771B true CN103885771B (zh) | 2017-05-24 |
Family
ID=50954681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410075155.1A Active CN103885771B (zh) | 2014-03-04 | 2014-03-04 | 基于局部最小化robdd及面积延迟优化的工艺映射的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885771B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10355945B2 (en) | 2016-09-21 | 2019-07-16 | International Business Machines Corporation | Service level management of a workload defined environment |
US10572310B2 (en) | 2016-09-21 | 2020-02-25 | International Business Machines Corporation | Deploying and utilizing a software library and corresponding field programmable device binary |
US10417012B2 (en) | 2016-09-21 | 2019-09-17 | International Business Machines Corporation | Reprogramming a field programmable device on-demand |
US9996334B2 (en) | 2016-09-21 | 2018-06-12 | International Business Machines Corporation | Deploying and utilizing a software library and corresponding field programmable device binary |
US10599479B2 (en) | 2016-09-21 | 2020-03-24 | International Business Machines Corporation | Resource sharing management of a field programmable device |
CN107340713A (zh) * | 2017-07-03 | 2017-11-10 | 湖南工业大学 | 一种高效的使用自适应闭环控制方法 |
CN109684761B (zh) * | 2018-12-29 | 2023-04-07 | 西安智多晶微电子有限公司 | 一种宽同或电路优化方法 |
CN109714043B (zh) * | 2018-12-29 | 2023-02-24 | 西安智多晶微电子有限公司 | 一种宽异或电路优化方法 |
CN110490322A (zh) * | 2019-08-14 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 运算节点的拆分方法和装置、电子设备和存储介质 |
CN112149376B (zh) * | 2020-09-25 | 2022-02-15 | 无锡中微亿芯有限公司 | 一种基于最大流算法的fpga布局合法化方法 |
CN112183014B (zh) * | 2020-09-25 | 2022-02-18 | 无锡中微亿芯有限公司 | 基于最大流算法进行拥挤区域展开的力导向布局方法 |
CN117350204A (zh) * | 2023-09-14 | 2024-01-05 | 苏州异格技术有限公司 | 目标网表的生成方法、装置、计算机设备及可读存储介质 |
CN117217147A (zh) * | 2023-09-21 | 2023-12-12 | 苏州异格技术有限公司 | 一种用于fpga的逻辑映射方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500216B1 (en) * | 2007-02-07 | 2009-03-03 | Altera Corporation | Method and apparatus for performing physical synthesis hill-climbing on multi-processor machines |
CN102663190A (zh) * | 2012-04-09 | 2012-09-12 | 西安电子科技大学 | Pptl符号模型检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024695B2 (en) * | 2008-02-05 | 2011-09-20 | Nangate A/S | Optimization of integrated circuit design and library |
-
2014
- 2014-03-04 CN CN201410075155.1A patent/CN103885771B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500216B1 (en) * | 2007-02-07 | 2009-03-03 | Altera Corporation | Method and apparatus for performing physical synthesis hill-climbing on multi-processor machines |
CN102663190A (zh) * | 2012-04-09 | 2012-09-12 | 西安电子科技大学 | Pptl符号模型检测方法 |
Non-Patent Citations (2)
Title |
---|
《基于域操作的工艺映射系统》;吕晋鹏;《中国优秀硕士学位论文全文数据库信息科技辑》;20090715(第7期);第11-39页 * |
《形式化验证技术在EDA软件开发中的应用》;张金磊;《中国优秀硕士学位论文全文数据库信息科技辑》;20130415(第4期);第6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103885771A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885771B (zh) | 基于局部最小化robdd及面积延迟优化的工艺映射的方法 | |
Hauck et al. | An evaluation of bipartitioning techniques | |
George | Low-energy field-programmable gate array | |
Parandeh-Afshar et al. | Rethinking FPGAs: elude the flexibility excess of LUTs with and-inverter cones | |
Ling et al. | FPGA technology mapping: a study of optimality | |
TW201100829A (en) | Statistical formal activity analysis with consideration of temporal and spatial correlations | |
Bozorgzadeh et al. | Routability-driven packing: Metrics and algorithms for cluster-based FPGAs | |
Wang et al. | Power minization in LUT-based FPGA technology mapping | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
US20130162292A1 (en) | Non-lut field-programmable gate arrays | |
Chaudhry et al. | Area-oriented synthesis for pass-transistor logic | |
CN116911227B (zh) | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 | |
Wang et al. | A survey of FPGA placement algorithm research | |
Fang et al. | A hierarchical functional structuring and partitioning approach for multiple-FPGA implementations | |
Krishnamoorthy et al. | Technology mapping algorithms for hybrid FPGAs containing lookup tables and PLAs | |
Cheng et al. | DDBDD: Delay-driven BDD synthesis for FPGAs | |
Kim et al. | A new techology mapping for CPLD under the time constraint | |
Chen et al. | Simultaneous logic decomposition with technology mapping in FPGA designs | |
Cong et al. | An efficient algorithm for performance-optimal FPGA technology mapping with retiming | |
Cong et al. | Performance-driven technology mapping for heterogeneous FPGAs | |
Chen et al. | Routability-aware placement for advanced FinFET mixed-signal circuits using satisfiability modulo theories | |
Panella et al. | A design workflow for dynamically reconfigurable multi-FPGA systems | |
Mahapatra et al. | DFG partitioning algorithms for coarse grained reconfigurable array assisted RTL simulation accelerators | |
Hu et al. | FPGA area reduction by multi-output function based sequential resynthesis | |
Tan et al. | Recent research development in metal-only ECO |
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 |