Hierarchical Flow和Flat Flow

 

和Hierarchical Flow对应的是Flat Flow,Flat Flow就是整块芯片一体化成型;Hierarchical Flow就是将大芯片合理化拆分,拆封成许多个小的block,将每个block都sign off后拼接到一起成为为一个full chip;将多个full chip拼接到一起就成为3D-IC了。

 

Hierarchical Flow的优势:

1、将soc上不同的子系统愤懑别类的分别做物理实现,减少了后端实现的复杂性;

2、不同子系统和子模块的前后端负责人可以高效的一对一协作,大大提高效率;

3、相当于将大象变成一块块的石头,对synthesis 和PnR tool更友好,对run time更友好;

4、如果design太大,修timing时STA signoff工具run time非常长,内存占用也极大,很可能跑不出来,即使能跑出来,迭代效率也太低了;

5、对于有特殊下电需求的模块,可以大度切出来编写upf;

6、对于有特殊绕线问题的模块可以单独切出来特殊处理(放在一个大chip中可能too很难顾及到)。

 

图1 基于C工具的hier flow流程

 

Hierarchical Flow的接口时序

 

P&R实现时,需要考虑IO接口的timing(预留timing buget),防止因接口相关的逻辑没有进行充分的优化而导致的timing violations。

 

图2 IO path示意图

 

这个timing buget怎么留,我个人理解有三种方法:

1、尽量IO 的约束(input delay 和output delay)设置的大一点,尽可能严苛;因为在子模块级别IO path只优化setup,不修hold;所以尽可能留足setup余量就可以;

 

2、如果要稍微精准,可以算一下IO前后各有多少级logic inst,然后去timing table查一下每种inst的delay大概是多少,然后把接口前后的delay算一下大概的值;就可以估算一下大概要设多少IO约束;

 

3、IO前后的两个模块先跑出来看看IO两侧的delay分别是多少,然后调整IO约束;

 

Physical Hierarchical Flow和Logical Hierarchical Flow

 

所谓Physical Hierarchical Flow就是后端基于power domain、I/O  location、Macro placement等因素决策partition划分。

 

所谓Logical Hierarchical Flow就是前端基于rtl module等因素决策partition划分。

 

实际中我看到的应该是二者的结合。

 

图3 partition示意图