Felix

技术源于积累,成功始于执着! 个人邮箱:justlxy@mail.dhu.edu.cn QQ:1576109464

Diamond无法完成PAR的解决方案

0
阅读(3381)

当RTL逻辑较为复杂时,尤其是使用了多个EBR和MULT时,采用Diamond默认的Strategy时,有的时候会无法成功的PAR(P and R, Place and Route),或者PAR的速度特别慢。这个时候,我们可以尝试修改Strategy来解决这一问题。

Diamond默认生成的Strategy为:

121801.png

如图所示:默认的Placement迭代的随机数种子为1,默认的Placement迭代次数为1,默认的Routing算法为NBR,默认时禁止“Stop Once Timing is Met”的。

当遇到本文开头描述的问题时,可以先尝试修改Placement迭代的随机数种子(Placement Iteration Start Pt),比如说把1换为2,3,4,5……等等,可以多尝试几次。或者将Placement的迭代此时增加,但此时PAR的时间会显著变长,因为Diamond会进行多次的PAR,并从中选取最好的结果,如果用户只是希望能够PAR成功即可,可以将“Stop Once Timing is Met”选项设置为Ture,此时一旦有某一次迭代成功的进行了PAR,Diamond则会自动地停止Placement的迭代。

如果在多次尝试以上过程,仍无法PAR成功的话,还可以尝试将Routing的算法修改为另一种,即CDR算法。然后再重复进行上述过程。