DC综合的组合逻辑环强退问题

本文介绍如何使用逻辑门搭建基本的RS触发器,解决由交叉耦合的与非门引起的组合逻辑环问题,导致Design Compiler在生成时序文件时出现错误。文章提供了去除环路的方法以及在必要时如何手动打破环路并使用set_disable_timing约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要,需要用逻辑门搭一个基本的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只是说对环路的某个位置不做约束。环路仍然是存在的。需要注意的是时序反标时的后仿真时序问题。

 

转载于:https://www.cnblogs.com/ssliu/p/8612057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值