微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 如何使用timing borrow来手动解决timing violation问题

如何使用timing borrow来手动解决timing violation问题

时间:10-02 整理:3721RD 点击:
timing borrow的原理大家应该都比较清楚;
想请问下,如果寄存器之间的path有violation,如何使用timing borrow来手动解决呢,直接用swap_cell或size_cell将寄存器替换成
latch吗?还是如何处理?

如果已经是寄存器到寄存器之间,可以使用useful skew.
swap_cell/size_cell是替换不了的,因为工具会做一些简单的检查,告诉你两个cell的功能/timing arc不一致。
如果没有换成latch, 那必须和前段designer确认,确保功能正确,然后可以走function eco 的flow.

(1) 也就是说如果不通过前端,在icc中是不可以手动将DFF替换成Latch的 是吗?
(2) 你所说的 eco flow是指 place_eco_cells+route_zrt_eco吗?

1. 可以通过change_link直接换,前提是你要保证Function还是正确的。因为这样换过cell 后lec不会过。
2. Function eco flow指得是因为要fix一些功能上面的bug而出的eco file,一般前端rtl会改,后端的netlist也要改。每个公司的流程不一样,叫法也可能不一样。

通过change_lnik之后 lec一般都不能过吗?我只是将其中一个DFF替换成latch,功能应该没问题的;

time borrow首先必须design里面有latch,
人工换latch的方法没用过,需要和前端确认,功能不一定能保证的

DFF和latch完全不一样的,你怎么知道完全没问题

DFF和latch完全不一样?有点太绝对了吧,都可以锁存数据,一个是edge触发,一个是电平触发

太高深,没玩过。

这个区别还不够大吗?

会影响pipeline功能的,肯定是不能简单替换的,
latch是latch, flop是flop

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top