一种基于多fanout逻辑的高效率低耦合的设计拆分方法技术

技术编号:37052435 阅读:10 留言:0更新日期:2023-03-29 19:29
本发明专利技术公开一种基于多fanout逻辑的高效率低耦合的设计拆分方法,属于芯片设计的技术领域,包括(1)开始并根据多fanout器件构建模块;(2)分析网表的输入和输出;(3)根据器件层级关系构建模块;(4)根据模块的fanout器件数量合并模块;(5)是否调整模块大小:如无需调整,则直接步骤(6);如需调整,则调整模块;(6)结束。本发明专利技术基于逻辑网表拆分的耦合关系指标,提出一种线性复杂度、能够高效的通过较低的耦合强度拆分网表的方法,适用于任何由一组器件构成的网表,可以实现高效率的模块拆分,满足模块低耦合度、模块大小均衡等要求。模块大小均衡等要求。模块大小均衡等要求。

【技术实现步骤摘要】
一种基于多fanout逻辑的高效率低耦合的设计拆分方法


[0001]本专利技术公开一种基于多fanout逻辑的高效率低耦合的设计拆分方法,属于芯片设计的


技术介绍

[0002]拆分在EDA领域中指将逻辑网表按照一定的方法、规则进行拆分,拆分目的是将大的网表拆分为几个小的模块,以便于对网表进行并行处理或分块处理,拆分的要求通常是各模块之间的耦合关系越小越好,耦合关系通常可以用模块间连接的wire的多少来衡量:模块内部的连接越多,模块间的连接wire数量越少,模块间的独立性越强,拆分结果越理想。
[0003]现有拆分的方法通常分为两种:一种是直接通过逻辑网表的hierarchy关系进行拆分,优点是拆分边界清晰,缺点是拆分结果很难直接满足拆分要求,比如拆分要求模块间的独立性强,模块间的耦合关系弱一些,即模块间的连接关系尽量少一点;再比如拆分要求各模块的大小相近等等,而hierarchy关系往往根据设计的模块功能进行划分,并不能保证满足上述耦合关系、模块大小的要求,并且若设计本身是flatten的,不是hierarchy的,那么就无法利用hierarchy关系进行拆分,因此利用hierarchy关系进行拆分具有一定的局限性和不足。
[0004]另外一种拆分方法则是通过分析网表的结构关系进行拆分,优点是可以适用于flatten设计和hierarchy设计,缺点是由于网表间的关系复杂,一般启发式的算法通常具有执行时间较长、效率低、难以找到较好的结果等问题。
[0005]如附图1所示,展示了一个网表的连接关系举例,整个网表由20个器件相互连接组成,每个器件都有各自的编号,从1到20,器件之间存在复杂的连接关系,举例说明如下:图1中,器件与器件之间的连线(wire)代表二者之间的连接,器件1通过连线(wire)连接到器件4,且连线(wire)的箭头由器件1指向器件4,表示器件1的输出(fanout)去了器件4,即器件1的输出(fanout)器件是器件4,器件4的输入(fanin)来自器件1,即器件4的输入(fanin)器件是器件1。
[0006]图1中可以看到,有的器件只有输出(fanout)器件,没有输入(fanin)器件,如器件1,此类器件被称为网表的输入;有的器件只有输入(fanin)器件,没有输出(fanout)器件,如器件18,此类器件被称为网表的输出;除了网表的输入输出外的其他器件,可以有1个或多个输入(fanin)器件,一个或多个输出(fanout)器件。
[0007]fanout和fanin分别指器件的扇入和扇出,如附图1中器件11的fanin器件是器件20,器件11的fanout器件是器件13、14和17,即器件11有1个fanin器件和3个fanout器件,当器件的fanout器件多于1个时,称为多fanout器件。
[0008]综上,在拆分过程中,拆分后模块间的耦合关系通常是拆分的关键指标之一,不管是在FPGA原型验证过程中,还是在数字后端布局布线过程中,拆分后模块之间的连接关系越少,越有利于功能的实现、性能的提升等;对于逻辑优化过程,模块间连接关系越少,可优
化的模块间逻辑就越少,也有利于逻辑优化流程的实现,因此如何高效率的将网表拆分为耦合强度低的模块成为很多场景下需要考虑的重要技术问题。

技术实现思路

[0009]针对现有技术的问题,本专利技术提供了一种基于多fanout逻辑的高效率低耦合的设计拆分方法。基于逻辑网表拆分的耦合关系指标,本专利技术设计了一种线性复杂度、能够高效的通过较低的耦合强度拆分网表的方法,本专利技术适用于任何由一组器件构成的网表,可以实现高效率的模块拆分,满足模块低耦合度、模块大小均衡等要求。
[0010]本专利技术详细的技术方案如下:一种基于多fanout逻辑的高效率低耦合的设计拆分方法,其特征在于,包括:本专利技术适用于任何由一组器件构成的网表,拆分方法流程如图2所示,流程中的“器件或模块”中的“器件”是指未被添加进模块的器件;(1)开始并根据多fanout器件构建模块;(2)分析网表的输入和输出;(3)根据器件层级关系构建模块;(4)根据模块的fanout器件数量合并模块;(5)是否调整模块大小:如无需调整,则直接步骤(6);如需调整,则调整模块;(6)结束。
[0011]根据本专利技术优选的,所述步骤(1)根据多fanout器件构建模块的具体方法包括:分析步骤如图3所示:(1

1)开始并遍历网表中的每个器件,获取遍历到的器件;(1

2)判断获取到的器件是否有多个fanout器件:如果该器件只有一个fanout器件,继续遍历网表中的其余器件;如果该器件有多个fanout器件,继续执行步骤(1

3);(1

3)判断具有多个fanout的器件是否已经被添加到模块中:如果所述器件已被添加到模块中,则获取当前器件所在的模块;如果所述器件未被添加到模块中,则构建一个新模块,并将当前器件添加到构建的新模块中;(1

4)将当前器件的fanout器件添加到当前器件所在的模块中;(1

5)检查是否遍历完网表中的全部器件:如果尚未遍历完成,则继续遍历;如果遍历完毕,则执行步骤(1

6);(1

6)结束,得到新的网表。
[0012]上述步骤执行完成之后,获得的新的网表中,未被添加进模块的器件和模块共存;未被添加进模块的器件只会有一个输出,模块可能有多个输出。
[0013]根据本专利技术优选的,针对步骤(2)分析网表的输入和输出的具体步骤如下:(2

1)遍历网表中的每个器件或模块,获取遍历到的器件或模块;
(2

2)判断遍历到的器件或模块是否只有fanin器件:如果只有fanin器件,则标记为输出;如果否,继续执行步骤(2

3);(2

3)判断遍历到的器件或模块是否只有fanout器件:如果只有fanout器件,则标记为输入并存放起来,留待后续使用;如果否,继续执行步骤(2

4);(2

4)检查是否遍历完网表中的全部器件:如果尚未遍历完成,则返回步骤(2

1)继续遍历;如果遍历完毕,则执行步骤(2

5)结束;(2

5)结束。
[0014]上述步骤执行完成之后,标记了网表中的输入和输出,同时得到了网表中的输入器件或模块。
[0015]根据本专利技术优选的,所述步骤(3)根据器件层级关系构建模块的具体方法包括:(3

1)开始并创建一个模块A,将步骤(2

3)中标记为输入的输入器件或模块放入其中;(3

2)判断模块A是否有fanout器件或模块:如果没有,则意味着所述模块A是网表的最后一层模块,执行步骤(3

5)结束;如果有,则本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多fanout逻辑的高效率低耦合的设计拆分方法,其特征在于,包括:(1)开始并根据多fanout器件构建模块;(2)分析网表的输入和输出;(3)根据器件层级关系构建模块;(4)根据模块的fanout器件数量合并模块;(5)是否调整模块大小:如无需调整,则直接步骤(6);如需调整,则调整模块;(6)结束。2.根据权利要求1所述一种基于多fanout逻辑的高效率低耦合的设计拆分方法,其特征在于,所述步骤(1)根据多fanout器件构建模块的具体方法包括:(1

1)开始并遍历网表中的每个器件,获取遍历到的器件;(1

2)判断获取到的器件是否有多个fanout器件:如果该器件只有一个fanout器件,继续遍历网表中的其余器件;如果该器件有多个fanout器件,继续执行步骤(1

3);(1

3)判断具有多个fanout的器件是否已经被添加到模块中:如果所述器件已被添加到模块中,则获取当前器件所在的模块;如果所述器件未被添加到模块中,则构建一个新模块,并将当前器件添加到构建的新模块中;(1

4)将当前器件的fanout器件添加到当前器件所在的模块中;(1

5)检查是否遍历完网表中的全部器件:如果尚未遍历完成,则继续遍历;如果遍历完毕,则执行步骤(1

6);(1

6)结束,得到新的网表。3.根据权利要求1所述一种基于多fanout逻辑的高效率低耦合的设计拆分方法,其特征在于,针对步骤(2)分析网表的输入和输出的具体步骤如下:(2

1)遍历网表中的每个器件或模块,获取遍历到的器件或模块;(2

2)判断遍历到的器件或模块是否只有fanin器件:如果只有fanin器件,则标记为输出;如果否,继续执行步骤(2

3);(2

3)判断遍历到的器件或模块是否只有fanout器件:如果只有fanout器件,则标记为输入并存放起来,留待后续使用;如果否,继续执行步骤(2

4);(2

4)检查是否遍历完网表中的全部器件:如果尚未遍历完成,则返回步骤(2

1)继续遍历;如果遍历完毕,则执行步骤(2

5)结束;(2

5)结束。4.根据权利要求1所述一种基于多fanout逻辑的高效率低耦合的设计拆分方法,其特征在于,所述步骤(3)根据器件层级关系构建模块的具体方法包括:
(3

1)开始并创建一个模块A,将步骤(2

3)中标记为输入的输入器件或模块放入其中;(3

2)判断模块A是否有fanout器件或模块:如果没有,则意味着所述模块A是网表的最后一层模块,执行步骤(3

5)结束;如果有,则继续执行步骤(3

3);(3

3)创建一个模块B,将所述模块A的所有fanout器件或模块放入;(3

4)将当前B模块记为A模块,返回步骤(3

2),继续判断A模块是否有fanout器件或模块;(3

5)结束,得到新的网表。5.根据权利要求1所述一...

【专利技术属性】
技术研发人员:刘奎毛忠亮王鸿儒唐兴达潘姿仪孙绍涛轩辕思思
申请(专利权)人:山东启芯软件科技有限公司
类型:发明
国别省市:

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

1