项目需要,需要用逻辑门搭一个基本的RS触发器,因为基本RS触发器是由交叉耦合的与非门构成,所以肯定要有组合逻辑环,在DC中生成标准时序格式的文件时,DC强制退出,并且工具显示:
warning:timing update failed because design has loops,the tool has just encountered a fatal error.
解决方案:
对于同步电路来说,loop是一种异类,你最好想办法从设计上去除。往往有等效的电路去掉环,只不过会多用一些寄存器。环本身的问题是DC无法进行时序分析。比如一个环的延时为Nt,那么包含这个换的路径延时为Lt+N*Nt这里的N可以为任何整数。显然DC就无法分析了。如果你的设计里面必须存在环,DC在时序分析里面打破环并不影响逻辑功能,但是时序就没有办法完全保证了较安全的做法是手动打破环,用set_disable_timing约束,可以使用(report_timing -loops)找到loop,找一个时序最不关键的位置,打破环。一般来说,在反馈路径上打破环是合适的不过反馈路径一旦被打破,反馈路径本身就不受约束所以在后仿的时候要特别小心的验证这个反馈路径不存在时序问题。STA在这种情况下也已经失效了。 set_disable_timing是时序分析时去掉约束的一种方法。时序分析并不会改变电路设计。也就是说,你本来的设计中,这里有个环路,disable_timing只是说对环路的某个位置不做约束。环路仍然是存在的。需要注意的是时序反标时的后仿真时序问题。