FPGA器件的竞争与冒险现象及消除方法
扫描二维码
随时随地手机看文章
摘 要:现场可编程门阵列(FPGA)由于其内部构成,容易引起竞争冒险现象,从而使电路工作的稳定性大受影响,电路也容易产生误动作,以致产生意想不到的后果。本文详细介绍了冒险现象的产生,并结合实例介绍了消除竞争冒险现象的各种方法。这些方法主要通过改变设计,破坏毛刺产生的条件来减少毛刺的发生。他能够使FPGA设计中毛刺的出现几率减到最小,大大减少了逻辑错误,加强了电路工作的稳定性,有效地抑制了干扰,使设计也更加优化、合理。
关键词:FPGA;竞争冒险;毛刺;逻辑错误
在数字电路设计中,经常需要考虑竞争和冒险现象带来的问题。尤其是采用FPGA器件后,这个问题尤为明显,为了改善系统性能,加强系统的稳定性,有效地抑制干扰,使得设计更加优化、合理,本文将对竞争与冒险带来的问题与消除方法加以详细讨论。
1 FPGA中的冒险现象
在使用分立元件设计数字系统时,由于PCB走线时存在分布电感和电容,所以几纳秒的毛刺将被自然滤除,而在PLD内部无分布电感和电容,所以在PLD/FPGA设计中,竞争和冒险问题将变得尤为突出,电路工作的稳定性也大受影响。
由于信号在FPGA器件内部通过连线和逻辑单元时都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。另外信号高低电平的转换也需要一定的过渡时间。所以多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺“出现,就说明该电路存在“冒险”。
由于无法保证所有连线的长度一致,所以即使4个输入信号在输入端同时变化,但经过PLD内部的走线到达或门的时间也是不一样的,必然产生毛刺。概括来说,只要输入信号同时变化,经过内部走线后,组合逻辑必将产生毛刺。如将他们的输出直接连接到时钟输入端、清零或置位端口,就可能会导致严重的后果。所以在设计电路时必须检查设计中所有时钟、清零和置位等对毛刺十分敏感的输入端口,确保输入不会含有任何毛刺。
2 毛刺的消除
可以通过改变设计,破坏毛刺产生的条件来减少毛刺的发生。毛刺并不是对所有的输入都有危害,对于D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且不满足数据的建立和保持时间,就不会对系统造成危害,因此可认为D触发器的D输入端对毛刺不敏感。根据这个特性,应当在系统中尽可能采用同步电路,因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间。
这种方法可以大大减少毛刺,但他并不能完全消除毛刺,必须手工修改电路来去除毛刺。一般,冒险出现在信号发生电平转换的时刻,即在输出信号的建立时间内会发生冒险,而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行“采样”,就可以消除毛刺信号的影响。
“采样”可通过两种方法实现:一种是在输出信号的保持时间内,用一定宽度的高电平脉冲与输出信号做逻辑“与”运算,由此获取输出信号的电平值。
TEST端引出的是一个带有毛刺的信号,由于有采样脉冲SAMPLE的输入,在SAMPLE为高电平前,输出端与门关闭,OUT端没有输出。从前面的分析看出,由于毛刺信号主要存在于输出信号的建立时间内,所以可通过控制SAMPLE信号在TEST信号建立时间后再开放与门的方法来消除毛刺。从图4所示仿真图中可以看出OUT端得到的不带毛刺的信号。
上述方法的一个缺点是必须人为地保证SAMPLE信号必须在合适的时间中产生,否则仍不能得到满意的结果。另一种实现方法是可利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用D触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。图5给出了应用这种方法的电路实例。
从以上分析看出,通过上述的电路处理可以有效减少毛刺的产生,从而减少逻辑错误,提高芯片工作的稳定性。
3 结 语
FPGA在数字电路设计中虽功能强大,修改灵活,但内部易产生冒险而出现工作不稳定情况,采取以上措施,可有效减少毛刺的产生,从而减少逻辑错误,大大提高芯片工作的稳定性。
来源:零八我的爱0次