举个简单的例子:
 设计的一个二输入与门,output<=A & B;进行布局布线后仿真(此时没有加管脚约束文件)可看到:
 output_obuf_2处有一毛刺出现。毛刺高电平时间维持141ps.
 
从output_obuf到output输出处,虽消除了毛刺,但不能保证其它情况下都会消除,我想有可能是此处毛刺时间比较小的原因,所以才有output处输出是正常的。 首先毛刺的出现是由于输入端A由1到0和B由0到1的变化引起的。
 从静态时序文件中可以看到:A,B到达与门的时间相差141ps,这也正是上述中出现毛刺的原因。 下面将管脚约束文件加进去再进行后仿真:
 可看出此时output输出有明显的毛刺出现。 时序分析报告:
 对于信号A:(Trace delay of A)+AND gate internal delay=9.139ns; 对于信号B:(Trace delay of B)+AND gate internal delay=5.607ns; 即A和B到达与门的时间相差了3.532ns,下图显示毛刺的时间即正好相符。
 毛刺并不是对所有的输入都有危害,如触发器的D输入端,只要数据不出现在时钟的上长升沿,并满足数据的建立保持时间,就不会对系统造成危害,而当毛刺信号成为系统的启动信号,控制信号,握手信号,触发器的清零信号,预置信号,时钟信号,或锁存器的输入信号时就会产生逻辑错误。因此,判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须考虑的问题。
|