微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 遇到了几个奇怪的问题,encounter崩溃退出

遇到了几个奇怪的问题,encounter崩溃退出

时间:10-02 整理:3721RD 点击:
小弟在做一个芯片的数字后端,之前RTL里面的memory是用寄存器阵列替代的,前几天拿到了memory的库加到了RTL之后发现DC会有setup违例,分析后发现原因是memory是双口的,有两个时钟一个读一个写,RTL里面这两个时钟pin接的是同一个时钟,是经过外部时钟分频后的一个generated clock,然后DC会对这两个时钟pin之间进行setup检查,由于那个generated clock同时还驱动了好多别的寄存器,所以负载很大就导致延时超大,所以就违例了,大概就是图里面这样子:


然后我就设了个ideal network,DC的违例没了,可是走到encounter的时候一进行CTS,encounter就会崩溃退出。(我用的EDI 13.19,从官网下的)。研究了好几天后发现在取消掉ideal network的约束后就不出错了。但是这样DC的违例要如何解决?

另外:当时为了debug这个问题又新建了个小的design,用一个时钟驱动了几万个寄存器同时驱动这个出问题的memory,发现如果不设generated clock的话,DC会自动进行CTS,设置了generated clock的话就不会了。这又是什么原因?
求小编大大帮忙解答~感激不尽!

通常clkA,clkB之间的path在place阶段肯定是false的 ,尤其是因为你在U41/Z 这里有个highfanout clknet,引起大delay ,
在place阶段,可以设置set_ideal_network -no_prop [all_fanout -clock_tree -flat ]
cts完了,这种path就没了,因为hfn解掉了,
更简单的:disable clka/clkb之间的timing arc

人工置顶。
现在主要的问题就是
1.为什么encounter会出现崩溃。
2.对于双口的memory,时钟约束应该怎么写?只能用ideal_clock? 另外为了DFT还在时钟进入memory前加了一个mux,ideal_network好像穿不过去。
3. DC到底会不会对时钟信号加buffer做时钟树综合?

晕刚网崩了没看到回复。谢谢小编大哥!我去试试……

如果不设ideal network,dont touch,肯定会对该net做buffertree的, dc 综合的时候

你可以修改一下sdc constrain 加一个generated clock 在clkG端口 应该就可以了divided by 1

后来又实验了一下明白了!谢谢~

这样应该也可以。最后是按照icfbicfb说的加了个set_disable_timing,解决了我的问题,dc没有违例,encounter也不会崩溃了。
多谢多谢~

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

网站地图

Top