微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 讨论一下 DC 中的组合逻辑环路!

讨论一下 DC 中的组合逻辑环路!

时间:10-02 整理:3721RD 点击:
大家好,我在DC综合过程中遇到很多警告,如下:Warning: Disabling timing arc between pins 'A' and 'Z' on cell 'i_bctop/i_def/i_cce/C3339'
to break a timing loop. (OPT-314)
这是不是意味着我的设计里面真的存在组合逻辑环路?
我有以下疑问:
1,如果真的在设计中存在组合逻辑环路,为什么我的后仿真是完全正常的?是因为这个组合逻辑环路没有被触发吗?
2,我觉得组合逻辑环路应该是个很严重的问题,为什么DC就这么给个警告就完事了,而不是给个错误?难道设计中有组合逻辑环路是很正常的事情吗?
此外,我还从别的论坛找到个针对这个问题的分析,大家参考。
Re: warning in synopsys DC
DC disables timing arc automatically when there is a combinational feedback between the output pin and one in the input pins in that case DC disables timing arc between thoose two pins in the cell
timing arc : between each input and output pin in any cell there is a timing arc which represents the output transition
what you should do is to check your design and detect the combinational feedback and try to break it
hope this helps


欢迎大家讨论下这个问题,这个问题也是在DC综合中很典型的一个问题,大家多多讨论!

找到一个以前的帖子这样解释:
综合工具将loop打断指的是他分析时序的时候不会将loop放进去参与时序的计算....实际的loop仍然存在的.
如果你要用这个话,你自己得先有把握保证时序不会有问题!
大家参考,谁有更明确的解释,希望继续讨论!

呵呵,我天天和loop打交道
对于同步电路来说,loop是一种异类,你最好想办法从设计上去除。往往有等效的电路去掉环,只不过会多用一些寄存器。
环本身的问题是DC无法进行时序分析。比如一个环的延时为Nt,那么包含这个换的路径延时为Lt+N*Nt这里的N可以为任何整数。显然DC就无法分析了。
如果你的设计里面必须存在环,DC在时序分析里面打破环并不影响逻辑功能,但是时序就没有办法完全保证了
较安全的做法是手动打破环
用disable_timing约束,找一个时序最不关键的位置,打破环。一般来说,在反馈路径上打破环是合适的
不过反馈路径一旦被打破,反馈路径本身就不受约束
所以在后仿的时候要特别小心的验证这个反馈路径不存在时序问题。STA在这种情况下也已经失效了。

多谢 benjaminweber 大侠的解释!我现在对这个问题理解更深刻了。
而且很高兴的是我的问题也得到解决了,和大家分享一下(是个很典型的问题,也许别的同志也会遇到):
问题的原因在于系统的MBist测试模块,这个模块的代码是用Mentor的MbistArchiect工具生成的,我用的命令为 Set Scan Logic -Combinational, 这样的命令导致扫描链模式下的Memory旁路电路是组合逻辑的,从输入直接组合到输出,而我设计中DC报出的组合逻辑环路正是经过这个旁路电路的。而且,这个组合逻辑环路只有在测试模式下才被触发,正常模式下被“抑制”住的,因此可以解释为什么我的后仿真功能完全正常,因为我当时仿真的是正常模式而非测试模式。
在我用 Set Scan Logic 命令代替 Set Scan Logic -Combinational 生成测试模块之后,问题圆满解决!

good
better
best

thankyou verymuch

我也遇到类似问题,学习下,希望能手动去掉。

kkkkkkkkkkkk

能否设置为 set_false_path。

要用set_case_analysis工设定工作模式

帮助很大,正在学习

help me so much
Thanks for sharing

有道理, pt碰到loop和dc一样的, 工具自动break 这个loop,
看来 还是要前端看一下的

学习了!

我在FPGA上也遇到过combinatorial feedback loops 功能仿真都过不去
╮(╯▽╰)╭

学习了!

讲解的还不错

请问一下:用disable_timing是将环打断,还是只是不分析这条路径的时序呢?谢谢!

谢谢 ,学习了!

disable_timing是时序分析时去掉约束的一种方法。时序分析并不会改变电路设计。也就是说,你本来的设计中,这里有个环路,disable_timing只是说对环路的某个位置不做约束。环路仍然是存在的。

学习了

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

网站地图

Top