FPGA IO驱动能力设置对设计的影响
2009年6月5日
后注:后来用示波器看了一下IO上的波形,当驱动能力为12mA时的近端波形如图2所示:
从图2波形可以看到:
在上升沿和下降沿的中间由于信号的反射导致电平在阈值附近震荡,从而出现了前面在逻辑分析仪中看到的波形。
后又看了下将驱动能力设为24mA时的近端波形,如图3所示:
图3中可以看到反射虽然依然存在,但位置有所变动,已经离开了中间的敏感区域,从而可以在逻辑分析仪中得到干净的波形。这也解释了为什么设计会受到IO驱动能力的影响。
想要彻底的消除近端反射,同时保证在远端可以信号的信号质量,目前还没想到什么办法,看来只有修改设计,避免设计在向外Drive总线时,同时直接检测IO上的波形。
图2中现象为:轨道塌陷。
原因是:由于低电平到高电平的转换过程,电源需要一定的时钟反应,如果转换速度超过了电源的反应时间,会导致输出引脚处在低电平到高电平转换过程中出现充电不足的现象,即图2中现象——电平由低到高转换过程中包含两次充电过程。
问题分析:出现图2现象的问题归根于电平由低到高转换过程电源能力不足未能及时供给电流,解决问题的方法也应该从电源、电流入手。
解决方法:提高电源及时供给能力可以采用在芯片电源引脚周围加入较大电容储能,如FPGA电源引脚周边加入100u、68u的大电容解决上述问题。当然,可以采用直接提高IO引脚输出电流也是一种方法,可以一定程度上解决上述图2问题。
PS:上述作者认为的信号反射问题,在图中表现并不明显,图2及图3中可以认为是串扰或者其它干扰导致的波动。反射现象是电平转换时波形幅度从大到小逐渐变化。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
作者观点:
今天在调试ADF5901的时候,射频能够出来,但是功率不够,检测时序无果找不到错误,就用示波器观测时域波形,发现时钟上出现抖动,然而ADF对时钟抖动特别敏感,ADF的配置时钟是由内部分频且用通用管教做的输出
通过更改io输出的驱动能力,降低了时钟的抖动,从而解决问题:
在ucf的clk管教上添加dirver驱动为2