请教一个关于CTS时插入buffer过多的问题
学习了,之前做了2年模拟,现在刚接触数字,不知道为什么我始终CTS都是失败
CTS之前要准备什么?是place的原因还是SDC本身就不对啊,还是哪些option的问题,求解答
sdc/cts option 或者是design本身有问题吧
SDC没问题,CTS option指的是那一项呢?
skew/transition/level。
你是指timing setup的设置吗?我现在对transition的值如何确定还不是很清楚,只知道设大了会导致插入buffer过多,这个design的频率大概50M这样,transition的值我设置为1,其他的参数应该都用了默认值,不知道这样有没有问题?
CTS的时候最后显示warning:no buffer/inverter's LEQ classes in CG,然后就fail了
我在添加命令里,show buffers/inverters 却没有任何cell
在search里选了一些cell,再运行CTS时,又提示 “忽略掉我选的cell 因为没有延时”为什么buffer 和inverter没有延时啊?
不知道怎么弄了
有点怀疑high fanout synthesis是不是没有做,如果没做的话很有可能就会有这样的情况
有可能是没remove 掉ideal network吧?
关注,学习!
提供一种思路.
buffer插入过多. 我认为多数情况下是因为skew过大引起的. 工具努力去balance 不同clock之间的skew. 只能加大insertion delay.
造成skew过大可能有几种原因.
一种是不需要同步的clock你去balance了.
一种是无法balance的去balance了: 比如片内和片外时钟.
建议理清时钟结构再去cts.
感謝大大問了我一直以來想要問的問題
学习了
我也是进来学习的,进来一直在学APR,哈哈!
需要remove 掉ideal network?
1、cts做不了。很有可能是没有remove掉ideal network
2、楼上有人回答插入buffer过多时因为skew偏大引起的,理论上skew是越小越好,所以工具就会尽量的插入buffer来减小各个路径之间的偏差,buffer数量就多。lattency值也会变大。
建议:仔细查找时钟树路径级各级buffer,检查时钟树综合文件看是否有问题。
个人理解,如有问题还请指正!
详细点,我也想问问
正解
CG应该是clockgate吧,libary是不是正确?
有些BUF在时序库里面没有延迟信息,需要设置set_dont_use,不然工具一直会调用它导致优化不过
在balance skew时选择local的不要选global,这样可以少一些buffer,不足是时间比较长。
学习。
留名,学习中
先做做平, 再修drc 试试
不知道你的问题解决了没,
应该是reference lib 中的 “TIM” view 出问题了