【Altera博客大赛】时序优化一例(三)

在使用两种方法(《时序优化一例(一)》《时序优化一例(二)》)对设计进行时序优化后,设计的建立时间余量从-1.070优化到-0.240,但是时序还未达到收敛,继而尝试了许多其它方法:

    (一)局部优化

         在《时序优化一例(二)》中的物理综合优化是全局的,可能对关键路径的优化还不够彻底。翻阅了一些资料,发现可以针对一个模块或者节点进行局部优化,因此可以直接对关键路径进行直接优化。方法是在QuartusII软件中,打开Assignments->Assignment Editor,如图1所示,可以在其中加入需要优化的节点或者模块,优化选项与全局优化选项类似,如图2所示,在Assignment Name下拉菜单中可选择不同的优化策略。

 

图1

 

图2

         但是遗憾的是采用局部优化后,时序还是没有收敛!

 

    (二)LogicLock

         使用Logiclock可以创建一个floorplan,用于将设计中的部分模块逻辑的布局布线限制在模块区域中。但是其主要用于增量编译中,与design partition配合使用,将一个设计分区的布局布线限定在一个Logiclock区域中,如果分区的布局布线已达到要求,可以设置保留该分区布局的布局布线信息,那下次编译时可以跳过对该设计的布局布线过程,减少了编译时间。

         但是使用Logiclock对时序性能并没有什么好处,反而可能会起到反效果。因为fitter并不对Logiclock区域之间的布线进行优化,而如果Logiclock区域划分不合理,关键路径正好处于跨区域中,那在之前对关键路径所作的时序优化算是白费了。

         在我的设计中,现阶段关键路径处于除法器IP内部,也没别的什么办法去优化这个IP了,可能是其它模块的布局布线对除法器模块产生了影响,那就“瞎猫碰死耗子”一把,试一试,万一有小惊喜呢!使用Logiclock将除法器布局布线与其它模块的布局布线隔离,将此除法器模块单独建立分区和创建Logiclock区域。分区如图3所示,可以看到Div模块因为分区被单独分离出来;Logiclock如图4所示,div模块的逻辑被限定在单独的一个Logiclock区域中布局布线。

 

图3

 

图4

         然后来check一下timing,值得欣慰的是,时序好了一些,如图5所示,建立时间余量减小到-0.224ns了,关键路径还在除法器内部。通过分区逻辑隔离、创建Logiclock区域进行布局布线隔离还是起到了意想不到的效果,尽管这效果很小。

 

图5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值