书接上回,Multi-bit的实现方法和应用 (上),闲言少叙,ICer GO!

In-place MBFF实现
相较于仅基于逻辑连接的MBFF封装,如果考虑到布局的实际情况,那么就有physical aware的in-place的MBFF封装实现,这种思路可以应用在常见的DCT/DCG/genus_PLE 等综合流程。
和in-compilre相比,这种in-place的MBFF封装,最大的优势,就是physical aware。譬如如下示意图:

可见,工具将距离较近的SBFF封装成了MBFF,简单而言,工具的在封装MBFF时候会更为谨慎(严苛),相应的MBFF的封装比率也自然会下降。
这里以DCT为例,它提供了一种in-place的MBFF实现方式:一种基于综合结果的MBFF封装方法。具体实现方法如下
set_multibit_options -mode none
compile_ultra -gate_clock -scan -spg
identify_register_banks
source MBFF_SCR
compile_ultra -gate_clock -scan -incremental -spg
和In-compile相比,这里需要注意两个地方
- 在compile命令中,跳过MBFF封装步骤
- 使用spg模式运行compile命令
- 基于综合结果使用命令identify_register_banks,完成MBFF的in-place体交换。效果见下图:

PS:封装后的MBFF的坐标,是在原始SBFF的中间位置 - MBFF优化后,需要使用compile -incremental进行进一步增量优化,来平抑MBFF带来的QoR影响
这种in-place的MBFF替换有下列好处
- 基于实际物理布局的情形进行MBFF有效替换:
- 相较常规的MBFF有了物理布局影响的考量,可以有针对性地进行MBFF封装,这个对于最终的物理实现有很好的帮助
- 传统的in-compilre的MBFF封装,先做封装,在做优化,这样很有可能导致优化受限
- 可选择的基于WNS的封装方式,可以有效控制MBFF封装对WNS的影响
综上可以看出,如果是使用了in-place方式进行MBFF优化,那么这个布局的结果,一定是要传递给后端版图工具,所以需要SYN和APR联动起来,S家的流程如下:
# SYN flow:
dc_shell> set hdlin_infer_multibit never\|default_none
dc_shell> compile_ultra -gate_clock

本文详细介绍了in-placeMBFF封装在DCT流程中的应用,对比了与in-compile方法的区别,强调了物理布局敏感性,并给出了SYN和APR流程的整合示例。针对APR阶段的MBFF封装,展示了不同工具如ICC和Invs的实现方式,以及推荐的SYN-APRMBFFflow用于有效利用MBFF提升设计性能。
最低0.47元/天 解锁文章
5343

被折叠的 条评论
为什么被折叠?



