请教一个关于SDC的设置问题。
时间:10-02
整理:3721RD
点击:
各位物理设计的前辈们,我遇到一个在SDC设置上的一个问题,请大家指点一下。
是这样,为了防止在标准单元布置时,由于fanout过大,导致大延迟。
所以,我通过用RCP综合时候,在SDC里设置了最大fanout为15。
起初,效果还是不错的。
但是,现在,我发现其中一个lsu部件的路径,逻辑级数过多,已经成为了关键路径。(只插2级小buffer。)
我请前端的设计者改代码,前端说,他代码没问题,是我综合得不好,后端水平菜导致的问题,不肯改。
我不大懂前端,所以也不敢还嘴,只能回来想办法。
我想,可能是由于我这个部件fanout设置小了,造成逻辑级数增加。
我希望,其它的部件,像EXU,FGU这些部件等,依然max_fanout为15.
而把lsu的max_fanout设置成20,或者25.
然后,再综合。
我想请教一下各位朋友,我该如何设置呢?
在帮助文档中man set_max_fanout中
提示的是,后面可以用[get_ports 端口或模块名]
但我,设置端口名,没有问题。
但设置模块的时候
用get_ports lsu,系统说,找不到这个模块。
用get_module,系统说,没有这个命令。
而且,我担心其它都设置15,lsu设置20,系统会依照小的约束。
所以,我希望会设置Sdc的朋友,能够指点我下,我该怎么设置SDC,才能达到我想要的效果呢?
是这样,为了防止在标准单元布置时,由于fanout过大,导致大延迟。
所以,我通过用RCP综合时候,在SDC里设置了最大fanout为15。
起初,效果还是不错的。
但是,现在,我发现其中一个lsu部件的路径,逻辑级数过多,已经成为了关键路径。(只插2级小buffer。)
我请前端的设计者改代码,前端说,他代码没问题,是我综合得不好,后端水平菜导致的问题,不肯改。
我不大懂前端,所以也不敢还嘴,只能回来想办法。
我想,可能是由于我这个部件fanout设置小了,造成逻辑级数增加。
我希望,其它的部件,像EXU,FGU这些部件等,依然max_fanout为15.
而把lsu的max_fanout设置成20,或者25.
然后,再综合。
我想请教一下各位朋友,我该如何设置呢?
在帮助文档中man set_max_fanout中
提示的是,后面可以用[get_ports 端口或模块名]
但我,设置端口名,没有问题。
但设置模块的时候
用get_ports lsu,系统说,找不到这个模块。
用get_module,系统说,没有这个命令。
而且,我担心其它都设置15,lsu设置20,系统会依照小的约束。
所以,我希望会设置Sdc的朋友,能够指点我下,我该怎么设置SDC,才能达到我想要的效果呢?
get——pins不行吗?
直接把max_fanout 设到5
谢谢分享!
回复楼上的朋友。
max_fanout全设置成5,我早期的时候用过。
不过我做的设计规模太大,全5,导致了逻辑级数过多和绕线问题。
通过反复迭代,最后,确定到了18.
现在的问题是,有一个模块,内部的结构太复杂,关键路径上,纯逻辑25级。BUFFER2级
所以,我希望,能够通过适当对该模块放宽一些fanout,让它的逻辑级在RC综合时候小一些。
其它模块,依然保持max_fanout 18.000
不知道各位朋友,谁会在Sdc中这样设置,晚辈求教了。
max_fanout max_transition max_capacitance这三个要搭配使用,它们之间相互约束.满目的修改一个值是得不到好的结果.
你应该用get_cell,如果是下面层次的,用get_cell -h
谢谢大家。
很可能应该用get_cell
另外,请教一下6楼的朋友。
我对SDC了解还不深,只对fan_out和transition做了实验。
请教一下,这3者相互之间如何关联呢?
怎么设置会比较好,谢谢啦。
Xie Xie Fen Xiang
我觉得你应该看看你使用的时序库 transition可以参考时序库里的查找表再做transition的设置 不要超出表的查找范围 当然了还得根据你设计的频率和所使用的工艺来考虑 另外关键路径有多少条?不多的话可以ECO,没必要只针对fanout在优化
fanout一般设置为8左右,有问题再改
transition 一般设置在标准库的1/3
看看看看!
学习。
学习。