innovus笔记——快速评估congestion,减少mem的摆放迭代次数,缩短run time

在工作中遇见的congestion问题:

1、模块congestion比较严重,想通过调整mem的摆放来缓解由于mem摆放导致的congestion情况。mem的数量达到几百片,调整时间长;

2、只能按照经验提前预估拐角处congestion,其他地方难以比较直观评估congestion;

3、调整了mem的摆放后,正常run一轮place需要几天的时间,也就是说需要几天后才能比较准确评估自己调整的mem是不是对congestion友好,迭代太慢;

第一反应我该怎么办呢?

工具能不能有一种方法,可以用几个小时就能比较准确评估新调整好的FP的congestion情况呢?这样就可以快速知道新摆放的mem是否对congestion友好,从而来决策有没有必要是否按照这版FP继续run place了;

解决方案:

使用innovus的fast place可以比较准确解决上述问题;

解决流程:

1、首先需要完成FP阶段的所有工作、包括mem摆放,boundray cell摆放,welltap cell摆放,所有的power stripe都需打上。这一步主要是为了更加准确的评估绕线情况。实现真正place后的correlation一致性;

2、设置正常的绕线情况,需要设置上你真实的绕线层次;

3、设置和你正常place一样的max density的值,当然如果有module padding也是需要一并设置上。同时一些在place阶段设置的place blockage也需要设置上,目的就是为了和真实的place阶段达到最高的匹配度;

3、调整fast place mode,想要开启fast place来快速评估congestion,需要对place mode做一些特殊的设置;

具体设置:

第一步:完成设置开始摆放inst

#首先设置绕线层次,注意需要设置和正常place阶段相同的绕线层次
setRouteMode -earlyGlobalMaxRouteLayer 7
setRouteMode -earlyGlobalMinRouteLayer 2

setNanoRouteMode -routeTopRoutingLayer 7
setNanoRouteMode -routeBottomRoutingLayer 2

#该命令是fast place的核心
setPlaceMode -place_design_floorplan_mode true

#为了和正常place阶段跑出来的congestion correlation达到最好,需要将影响inst摆放以及congestion相关#的设置都设置上
setPlaceMode -place_gloabl_max_density 0.6
setPlaceMOde -place_global_cong_effort medium

#放置inst,使用该命令后,inst的状态是global place,会出现inst overlap的情况
setMultiCpuUsage -local 16
place_design

#为了将overlap的inst合理放置,使用下面的命令
refinePlace

第二步:开始绕线

#inst合理摆放后,就可以使用earlyGlobalRoute进行绕线
earlyGlobalRoute

第三步:大功告成

此时你就可以使用gui来展示congestion map的展示啦。

你可能感兴趣的:(数字后端知识分享,后端,笔记)