和一切的数字电路相同,毛刺也是FPGA电路中的扎手问题,它的呈现会影响电路作业的稳定性,可靠性,严峻时会导致整个数字体系的误动作和逻辑紊乱。
信号在FPGA器材中经过逻辑单元连线时,必定存在延时。延时的巨细不只和连线的长短和逻辑单元的数目有关,并且也和器材的制作工艺、作业电压、温度等有关。别的,信号的凹凸电平转化也需求必定的过渡时刻,因为存在这两方面的要素,多路信号的电平值发生改变时,在信号改变的瞬间,组合逻辑的输出有先后顺序,并不是一起改变,往往会呈现一些不正确的尖峰信号,这些尖峰信号便是“毛刺”。任何组合电路,反应电路和计数器都或许。
潜在的毛刺信号发生器。
电路布线长短不同形成各端口输入信号延时不一致,有竞赛冒险,会发生毛刺。分立元件之间存在分布电容和电感能够滤掉这些毛刺,所以用分立元件规划电路时,很少考虑竞赛冒险和毛刺问题,但PLD/FPGA内部没有分布电容和电感,不能滤掉任何毛刺(哪怕不到1ns)。
举个简略的比如:
规划的一个二输入与门,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输入端,只需数据不呈现在时钟的上长升沿,并满意数据的树立坚持时刻,就不会对体系形成损害,而当毛刺信号成为体系的发动信号,操控信号,握手信号,触发器的清零信号,预置信号,时钟信号,或锁存器的输入信号时就会发生逻辑过错。因而,判别逻辑电路中是否存在冒险以及怎么防止冒险是规划人员有必要考虑的问题。